Committing updates.

This commit is contained in:
Преподобный Ален
2021-09-17 15:04:26 +03:00
parent e758e8d8dc
commit f4f4d104cf
136 changed files with 46883 additions and 79 deletions

195
README.md
View File

@@ -1,45 +1,182 @@
**Edit a file, create a new file, and clone from Bitbucket in under 2 minutes**
# BitDeals Payment Service: Deal Module
When you're done, you can delete the content in this README and update the file with details for others getting started with your repository.
**Модуль сделок** системы учёта Bitcoin платежей, исходные коды на C++.
*We recommend that you open this README in another tab as you perform the tasks below. You can [watch our video](https://youtu.be/0ocf7u76WSo) for a full demo of all the steps in this tutorial. Open the video in a new tab to avoid leaving Bitbucket.*
Построено на базе [Апостол](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-сервис
## Edit a file
ОПИСАНИЕ
-
Youll start by editing this README file to learn how to edit a file in Bitbucket.
**Модуля сделок** (dm) предоставляет интерфейсы для создания и изменения учётных записей пользователей и сделок системы учёта Bitcoin платежей.
1. Click **Source** on the left side.
2. Click the README.md link from the list of files.
3. Click the **Edit** button.
4. Delete the following text: *Delete this line to make a change to the README from Bitbucket.*
5. After making your change, click **Commit** and then **Commit** again in the dialog. The commit page will open and youll see the change you just made.
6. Go back to the **Source** page.
REST API
-
---
[Документация по REST API](./doc/REST-API-ru.md)
## Create a file
Протестировать API **Модуля сделок** можно с помощью встроенного Web-сервера доступного по адресу: [localhost:4999](http://localhost:4999)
Next, youll add a new file to this repository.
##### Авторизация:
username: module
password: <address>
1. Click the **New file** button at the top of the **Source** page.
2. Give the file a filename of **contributors.txt**.
3. Enter your name in the empty file space.
4. Click **Commit** and then **Commit** again in the dialog.
5. Go back to the **Source** page.
Где `<address>` - Bitcoin адрес модуля сделок.
Before you move on, go ahead and explore the repository. You've already seen the **Source** page, but check out the **Commits**, **Branches**, and **Settings** pages.
СБОРКА И УСТАНОВКА
-
Для установки **Модуля сделок** Вам потребуется:
---
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++)
## Clone a repository
### Linux (Debian/Ubuntu)
Use these steps to clone from SourceTree, our client for using the repository command-line free. Cloning allows you to work on your files locally. If you don't yet have SourceTree, [download and install first](https://www.sourcetreeapp.com/). If you prefer to clone from the command line, see [Clone a repository](https://confluence.atlassian.com/x/4whODQ).
Для того чтобы установить компилятор C++ и необходимые библиотеки на Ubuntu выполните:
~~~
$ sudo apt-get install build-essential libssl-dev libcurl4-openssl-dev make cmake gcc g++
~~~
1. Youll see the clone button under the **Source** heading. Click that button.
2. Now click **Check out in SourceTree**. You may need to create a SourceTree account or log in.
3. When you see the **Clone New** dialog in SourceTree, update the destination path and name if youd like to and then click **Clone**.
4. Open the directory you just created to see your repositorys files.
###### Подробное описание установки C++, CMake, IDE и иных компонентов необходимых для сборки проекта не входит в данное руководство.
Now that you're more familiar with your Bitbucket repository, go ahead and add a new file locally. You can [push your change back to Bitbucket with SourceTree](https://confluence.atlassian.com/x/iqyBMg), or you can [add, commit,](https://confluence.atlassian.com/x/8QhODQ) and [push from the command line](https://confluence.atlassian.com/x/NQ0zDQ).
### 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 |плавное завершение|