/apostol-dm

Bitcoin Payment Service (Deal Module)

Primary LanguageC++GNU General Public License v3.0GPL-3.0

BitDeals Payment Service: Deal Module

Модуль сделок системы учёта 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 платежей.

REST API

Документация по REST API

Протестировать API Модуля сделок можно с помощью встроенного Web-сервера доступного по адресу: localhost:4999

Авторизация:
username: module
password: <address> 

Где <address> - Bitcoin адрес модуля сделок.

СБОРКА И УСТАНОВКА

Для установки Модуля сделок Вам потребуется:

  1. Компилятор C++;
  2. CMake или интегрированная среда разработки (IDE) с поддержкой CMake;
  3. Библиотека libbitcoin-explorer (Bitcoin Cross-Platform C++ Development Toolkit);
  4. Библиотека OpenPGP (OpenPGP in C++)
  5. Библиотека 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.

CMake Configuration
GPG_COMPATIBLE=ON
USE_OPENSSL=ON
Обратите внимание на зависимости OpenPGP от других библиотек (GMP, bzip2, zlib, OpenSSL).

yaml-cpp

Для сборки yaml-cpp обратитесь к документации на сайте yaml-cpp.

BitDeals Payment Service (Deal Module)

Для того чтобы установить Модуля сделок с помощью Git выполните:

$ git clone git@github.com:ufocomp/apostol-dm.git dm

Далее:

  1. Настроить CMakeLists.txt (по необходимости);
  2. Собрать и скомпилировать (см. ниже).

Для того чтобы установить Модуля сделок (без Git) необходимо:

  1. Скачать BPS (DM) по ссылке;
  2. Распаковать;
  3. Настроить CMakeLists.txt (по необходимости);
  4. Собрать и скомпилировать (см. ниже).
Сборка:
$ 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 плавное завершение