Модуль сделок системы учёта Bitcoin платежей, исходные коды на C++.
Построено на базе Апостол.
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 платежей.
Протестировать API Модуля сделок можно с помощью встроенного Web-сервера доступного по адресу: localhost:4999
username: module
password: <address>
Где <address>
- Bitcoin адрес модуля сделок.
Для установки Модуля сделок Вам потребуется:
- Компилятор C++;
- CMake или интегрированная среда разработки (IDE) с поддержкой CMake;
- Библиотека libbitcoin-explorer (Bitcoin Cross-Platform C++ Development Toolkit);
- Библиотека OpenPGP (OpenPGP in C++)
- Библиотека yaml-cpp (YAML parser and emitter in C++)
Для того чтобы установить компилятор C++ и необходимые библиотеки на Ubuntu выполните:
$ sudo apt-get install build-essential libssl-dev libcurl4-openssl-dev make cmake gcc g++
Подробное описание установки C++, CMake, IDE и иных компонентов необходимых для сборки проекта не входит в данное руководство.
Для того чтобы установить 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.
GPG_COMPATIBLE=ON
USE_OPENSSL=ON
Для сборки yaml-cpp обратитесь к документации на сайте yaml-cpp.
Для того чтобы установить Модуля сделок с помощью Git выполните:
$ git clone git@github.com:ufocomp/apostol-dm.git dm
Далее:
- Настроить
CMakeLists.txt
(по необходимости); - Собрать и скомпилировать (см. ниже).
Для того чтобы установить Модуля сделок (без Git) необходимо:
- Скачать BPS (DM) по ссылке;
- Распаковать;
- Настроить
CMakeLists.txt
(по необходимости); - Собрать и скомпилировать (см. ниже).
$ cd dm
$ ./configure
$ cd cmake-build-release
$ make
$ sudo make install
По умолчанию Модуль сделок будет установлен в:
/usr/sbin
Файл конфигурации и необходимые для работы файлы, в зависимости от варианта установки, будут расположены в:
/etc/dm
или
~/dm
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
можно с помощью сигналов.
Номер главного процесса по умолчанию записывается в файл /run/dm.pid
.
Изменить имя этого файла можно при конфигурации сборки или же в dm.conf
секция [daemon]
ключ pid
.
Главный процесс поддерживает следующие сигналы:
Сигнал | Действие |
---|---|
TERM, INT | быстрое завершение |
QUIT | плавное завершение |
HUP | изменение конфигурации, запуск новых рабочих процессов с новой конфигурацией, плавное завершение старых рабочих процессов |
WINCH | плавное завершение рабочих процессов |
Управлять рабочими процессами по отдельности не нужно. Тем не менее, они тоже поддерживают некоторые сигналы:
Сигнал | Действие |
---|---|
TERM, INT | быстрое завершение |
QUIT | плавное завершение |