Files
apostol-dm/README.md
Преподобный Ален f4f4d104cf Committing updates.
2021-09-17 15:04:26 +03:00

183 lines
7.8 KiB
Markdown
Raw Permalink Blame History

This file contains ambiguous Unicode characters
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
# BitDeals Payment Service: Deal Module
**Модуль сделок** системы учёта Bitcoin платежей, исходные коды на C++.
Построено на базе [Апостол](https://github.com/ufocomp/apostol).
СТРУКТУРА КАТАЛОГОВ
-
auto/ содержит файлы со скриптами
cmake-modules/ содержит файлы с модулями CMake
conf/ содержит файлы с настройками
doc/ содержит файлы с документацией
├─www/ содержит файлы с документацией в формате html
src/ содержит файлы с исходным кодом
├─app/ содержит файлы с исходным кодом: BitDeals Payment Service (Deal Module)
├─core/ содержит файлы с исходным кодом: Apostol Core
├─lib/ содержит файлы с исходным кодом библиотек
| └─delphi/ содержит файлы с исходным кодом библиотеки*: Delphi classes for C++
└─modules/ содержит файлы с исходным кодом дополнений (модулей)
└─WebService/ содержит файлы с исходным кодом дополнения: Web-сервис
ОПИСАНИЕ
-
**Модуля сделок** (dm) предоставляет интерфейсы для создания и изменения учётных записей пользователей и сделок системы учёта Bitcoin платежей.
REST API
-
[Документация по REST API](./doc/REST-API-ru.md)
Протестировать API **Модуля сделок** можно с помощью встроенного Web-сервера доступного по адресу: [localhost:4999](http://localhost:4999)
##### Авторизация:
username: module
password: <address>
Где `<address>` - Bitcoin адрес модуля сделок.
СБОРКА И УСТАНОВКА
-
Для установки **Модуля сделок** Вам потребуется:
1. Компилятор C++;
1. [CMake](https://cmake.org) или интегрированная среда разработки (IDE) с поддержкой [CMake](https://cmake.org);
1. Библиотека [libbitcoin-explorer](https://github.com/libbitcoin/libbitcoin-explorer/tree/version3) (Bitcoin Cross-Platform C++ Development Toolkit);
1. Библиотека [OpenPGP](https://github.com/calccrypto/OpenPGP) (OpenPGP in C++)
1. Библиотека [yaml-cpp](https://github.com/jbeder/yaml-cpp) (YAML parser and emitter in C++)
### Linux (Debian/Ubuntu)
Для того чтобы установить компилятор C++ и необходимые библиотеки на Ubuntu выполните:
~~~
$ sudo apt-get install build-essential libssl-dev libcurl4-openssl-dev make cmake gcc g++
~~~
###### Подробное описание установки C++, CMake, IDE и иных компонентов необходимых для сборки проекта не входит в данное руководство.
### libbitcoin
Для того чтобы установить libbitcoin выполните:
~~~
$ sudo apt-get install autoconf automake libtool pkg-config git
~~~
~~~
$ wget https://raw.githubusercontent.com/libbitcoin/libbitcoin-explorer/version3/install.sh
$ chmod +x install.sh
~~~
~~~
$ ./install.sh --build-boost --build-zmq --disable-shared
~~~
#### OpenPGP
Для сборки **OpenPGP** обратитесь к документации на сайте [OpenPGP](https://github.com/calccrypto/OpenPGP).
##### CMake Configuration
~~~
GPG_COMPATIBLE=ON
USE_OPENSSL=ON
~~~
###### Обратите внимание на зависимости OpenPGP от других библиотек (GMP, bzip2, zlib, OpenSSL).
#### yaml-cpp
Для сборки **yaml-cpp** обратитесь к документации на сайте [yaml-cpp](https://github.com/jbeder/yaml-cpp).
#### BitDeals Payment Service (Deal Module)
Для того чтобы установить **Модуля сделок** с помощью Git выполните:
~~~
$ git clone git@github.com:ufocomp/apostol-dm.git dm
~~~
Далее:
1. Настроить `CMakeLists.txt` (по необходимости);
1. Собрать и скомпилировать (см. ниже).
Для того чтобы установить **Модуля сделок** (без Git) необходимо:
1. Скачать **BPS (DM)** по [ссылке](https://github.com/ufocomp/apostol-dm/archive/master.zip);
1. Распаковать;
1. Настроить `CMakeLists.txt` (по необходимости);
1. Собрать и скомпилировать (см. ниже).
###### Сборка:
~~~
$ cd dm
$ ./configure
~~~
###### Компиляция и установка:
~~~
$ cd cmake-build-release
$ make
$ sudo make install
~~~
По умолчанию **Модуль сделок** будет установлен в:
~~~
/usr/sbin
~~~
Файл конфигурации и необходимые для работы файлы, в зависимости от варианта установки, будут расположены в:
~~~
/etc/dm
или
~/dm
~~~
ЗАПУСК
-
###### Если `INSTALL_AS_ROOT` установлено в `ON`.
**`dm`** - это системная служба (демон) Linux.
Для управления **`dm`** используйте стандартные команды управления службами.
Для запуска Апостол выполните:
~~~
$ sudo service dm start
~~~
Для проверки статуса выполните:
~~~
$ sudo service dm status
~~~
Результат должен быть **примерно** таким:
~~~
● dm.service - LSB: starts the Deal Module
Loaded: loaded (/etc/init.d/dm; generated; vendor preset: enabled)
Active: active (running) since Thu 2019-08-15 14:11:34 BST; 1h 1min ago
Docs: man:systemd-sysv-generator(8)
Process: 16465 ExecStop=/etc/init.d/dm stop (code=exited, status=0/SUCCESS)
Process: 16509 ExecStart=/etc/init.d/dm start (code=exited, status=0/SUCCESS)
Tasks: 3 (limit: 4915)
CGroup: /system.slice/dm.service
├─16520 dm: master process /usr/sbin/abc
└─16521 dm: worker process
~~~
### **Управление dm**.
Управлять **`dm`** можно с помощью сигналов.
Номер главного процесса по умолчанию записывается в файл `/run/dm.pid`.
Изменить имя этого файла можно при конфигурации сборки или же в `dm.conf` секция `[daemon]` ключ `pid`.
Главный процесс поддерживает следующие сигналы:
|Сигнал |Действие |
|---------|------------------|
|TERM, INT|быстрое завершение|
|QUIT |плавное завершение|
|HUP |изменение конфигурации, запуск новых рабочих процессов с новой конфигурацией, плавное завершение старых рабочих процессов|
|WINCH |плавное завершение рабочих процессов|
Управлять рабочими процессами по отдельности не нужно. Тем не менее, они тоже поддерживают некоторые сигналы:
|Сигнал |Действие |
|---------|------------------|
|TERM, INT|быстрое завершение|
|QUIT |плавное завершение|