# Установка матчера на Ubuntu из Deb-пакета
WX Network Matcher выполняет ордеры при покупке / продаже токенов. Каждый может развернуть матчер и начать получать вознаграждение за выполнение заказов.
Рассмотрим процесс исполнения ордера.
- Матчер получает заказ на покупку/продажу пары токенов. Ордер содержит информацию о сумме актива
A
и его цене, выраженной в сумме активаB
. - Матчер накапливает ордеры в книге ордеров. При получении нового ордера матчер сопоставляет его с существующими заказами и пытается найти взаимно удовлетворяющие заказы.
- Если найдены взаимно удовлетворяющие заказы, то матчер отправляет exchange transaction в блокчейн. В результате указанные заказы выполняются. Если взаимно удовлетворяющие заказы не найдены, то новый заказ отправляется в книгу заказов.
- Матчер получает matcher fee от отправителей за каждый выполненный заказ.
- Матчер платит комиссию за обмен майнеру. Вознаграждение за матчинг - это разница между платой за матчинг и комиссией за обмен.
В данной статье рассматривается развертывание матчера из deb-пакета. Поскольку матчер является расширением ноды, нода должна быть развернута до активации матчера.
# Системные требования
- 2 core CPU
- 4 GB RAM
- 50 GB HDD
# Проверка версии установленного OpenJDK
Убедитесь, что у вас установлен OpenJDK версии 8. Для этого выполните в консоли следующую команду:
java -version 2>&1 | grep "openjdk version \"1.8" | wc -l
Если отображается 0
, перейдите к шагу Установка OpenJDK 8.
Если отображается 1
перейдите к шагу Установка Ноды.
# Установка OpenJDK 8
Чтобы установить OpenJDK версии 8, выполните в консоли:
sudo apt-get update
sudo apt-get install openjdk-8-jre
# Установка Ноды
Загрузите последнюю версию файла
waves_<version>_all.deb
по ссылке https://github.com/wavesplatform/Waves/releases.Выполните в консоли:
sudo dpkg -i /path/to/waves_<version>_all.deb
Перейдите в папку
/var/lib/waves
выполнив в консоли:cd /var/lib/waves
# Настройка ноды
Откройте файл
/usr/share/waves/conf/waves.conf
следующей командой:sudo nano /usr/share/waves/conf/waves.conf
Решите, следует ли использовать существующую или новую учетную запись для ноды. Используйте существующую учетную запись, если планируете использовать свой ноду в качестве майнинговой ноды.
Чтобы использовать новую учетную запись, "раскомментируйте" в секции
wallet
параметрpassword
и задайте ему значение. Пример:wallet { # Password to protect wallet file password = iAmGoingToUseAnewAccount # Wallet seed as BASE58 string # seed = }
Чтобы использовать существующую учетную запись, введите в секции
wallet
пароль, SEED фразу в кодировке base58.wallet { # Password to protect wallet file password = iAmGoingToUseAnExistingAccount # Wallet seed as BASE58 string seed = 35S7EzKMHMN4JQyWnwpp84Zot1yqLoP2Q46RsbYRzgFq7n8AiV8L6skeGPq93P2NU4pGcZFeNTAT2TKJTa2XvqRwSdCmBR556MBmtZ3ggAkBtd3CCZFvZwZufz1ZqfzJQ }
Добавьте в файле
/usr/share/waves/conf/waves.conf
следующую секцию:waves.extensions = ["com.wavesplatform.dex.Matcher"]
Задайте в файле
/usr/share/waves/conf/waves.conf
в секцииrest_api
следующие параметры:enable = yes
api_key_hash = " "
rest-api { # Disable node’s REST API enable = yes … api_key_hash = " " }
Запустите ноду выполнив следующую команду:
sudo systemctl start waves
Сгенерируйте непустое значение
api_key_hash
, выполнив команду:curl -X POST --header 'Content-Type: application/json' --header 'Accept: application/json' -d '<YOUR_ARBITRARY_STRING>' '127.0.0.1:6869/utils/hash/secure'
Пожайлуйста используйте своё значение вместо
<YOUR_ARBITRARY_STRING>
. Рекомендуется сохранить его. В результате вы увидите следующий вывод:{"message": "YOUR_ARBITRARY_STRING", "hash": "3QbuM9nJP9GZQDekgfGboPGDQe4g1nsH4kmK2jbCLAFJ"}
Задайте в файле
/usr/share/waves/conf/waves.conf
в секцииrest_api
значение параметраapi_key_hash
:rest-api { … api_key_hash = “3QbuM9nJP9GZQDekgfGboPGDQe4g1nsH4kmK2jbCLAFJ” }
Перезапустите ноду, выполнив следующую команду:
sudo systemctl restart waves
Убедитесь, что блокчейн загружен. Выполните следующую команду:
sudo journalctl -u waves -f
В результате будет отображен журнал загрузки блокчейна. Если "microblock appended" записи начали появляться в журнале, значит блокчейн полностью загружен.
Нажмите Ctrl-C, чтобы закрыть журнал.
Чтобы узнать адрес аккаунта ноды, выполните команду:
curl 127.0.0.1:6869/addresses
В результате будет отображаться адрес учетной записи узла, например 3PAbvhnSesJGUd1Ry6YM1qCALTSD4pYGxG
.
Выполните следующие шаги в файле
/usr/share/waves/conf/waves.conf
:- Создайте секцию
waves.dex section
. - Задайте адрес аккаунта ноды для матчера в параметре
account
в секцииwaves.dex
, полученный в предыдущем шаге.
waves.dex { account = "3PAbvhnSesJGUd1Ry6YM1qCALTSD4pYGxG" # bind-address = "0.0.0.0" # uncomment this line to accept connections from any host }
- Создайте секцию
Другие параметры ноды не входят рамки данной статьи. Чтобы получить больше информации о параметрах ноды, изучите статью Node Configuration (opens new window).
# Установка матчера
Загрузите свежую версию файла
dex_<version>_all.deb
по ссылке https://github.com/wavesplatform/dex/releases (opens new window).Выолните в консоли следующую команду:
sudo dpkg -i /path/to/dex_<version>_all.deb
Перезапустите ноду, выполнив следующую команду:
sudo systemctl restart waves
Убедитесь, что матчер успешно запущен. Для этого выполните команду:
curl 127.0.0.1:6886/matcher
В результате будет отображен адрес аккаунта матчера. Поздравляем, вы успешно установили матчер.