Настройка, запуск, регистрация детерминированных Мастернод DIP3 Argoneum
Что такое списки детерминированных Мастернод?Списки детерминированных Мастернод - это списки Мастернод, которые полностью взяты из данных блокчейна. DIP2 и DIP3 вводят новые системы транзакций и специфические их типы, что позволит сети регистрировать и обновлять Мастерноды on-chain. Все прочие ноды получат свои списки Мастернод от этих транзакций по цепи, и все ноды придут к консенсусу относительно валидного на данный момент списка Мастернод.
Для запуска мастерноды нужно иметь 10 000 монет Аргонеум и свой сервер c постоянным IP или VPS/VDS.
Скачиваем кошелек -
https://github.com/Argoneum/argoneum/releasesНа удалленном сервере запускаем демон
argoneumd для синхронизации.
На локальном кошельке ждем окончания синхронизации, открываем консоль и вводим:
getnewaddress mn1Потом:
sendtoaddress ваш адресс 10000Ждем 6 подтверждений.
Вводим:
masternode outputsПотом
masternode genkeyРезультаты команд записываем в текстовый файл.
Следующий шаг, генерация пары BLS-ключей:
bls generateВ ответ должно выдать ответ вроде этого:
{
"secret": "395555d67d884364f9e37e7e1b29536519b74af2e5ff7b62122e62c2fffab35e",
"public": "99f20ed1538e28259ff80044982372519a2e6e4cdedb01c96f8f22e755b2b3124fbeebdf6de3587189cf44b3c6e7670e"
}Сохраняем их в текстовом файле.
Останавливаем демон на удалленом сервере, правим файл
argoneum.confrpcuser=ваш логин
rpcpassword=ваш пароль
rpcallowip=127.0.0.1
server=1
listen=1
daemon=1
port=9898
externalip=IP-адрес Вашего удалленного сервера
maxconnections=24
masternodeprivkey=7RYXkpPhTpMDDFSsgvDMbkniNnWgFn5ryDEUFHPg3LAAsR6228F
masternode=1
masternodeblsprivkey=395555d67d884364f9e37e7e1b29536519b74af2e5ff7b62122e62c2fffab35eНа локальном точно также правим этот файл.
Запускаем дальше демон и локальный кошелек.
На удалленном сервере настраиваем Sentinel.
$ sudo apt-get update
$ sudo apt-get -y install python-virtualenv git$ git clone https://github.com/argoneum/sentinel.git && cd sentinel
$ virtualenv ./venv
$ ./venv/bin/pip install -r requirements.txtПроверьте конфигурацию, запустив все тесты из папки Sentinel, в которую вы клонировали:
$ ./venv/bin/py.test ./testЗапустите Sentinel в первый раз (может занять до минуты):
$ ./venv/bin/python bin / sentinel.pyНастраиваем планировщик crontab:
$ crontab -e* * * * * cd /home/YOURUSERNAME/sentinel && ./venv/bin/python bin/sentinel.py >/dev/null 2>&1Запускаем сентинель
./venv/bin/python bin/sentinel.pyПолная инструкция по запуску сентинеля -
https://github.com/Argoneum/sentinelСледующий шаг - это регистрация мастерноды.
Подготовка транзакции ProRegTx состоит из следующих действий:Во-первых, нам нужно получить новый, неиспользуемый адрес из кошелька, который будет служить адресом ключа владельца (ownerKeyAddr). Это не то же самое, что адрес обеспечения, содержащий 10000 Аргонеум. Создайте новый адрес следующим образом:
getnewaddress okaЯ для примера назвал его сокращенно oka от ownerKeyAddr. Вы можете назвать его как захотите.
Дальше. Этот адрес также может использоваться в качестве voting key address (votingKeyAddr). Кроме того, вы можете указать адрес, предоставленный вам выбранным вами голосующим делегатом, или просто сгенерировать новый адрес ключа голосования следующим образом:
getnewaddress vkaЗатем либо сгенерируйте, либо выберите существующий адрес, чтобы получать выплаты мастерноды владельца (payoutAddress). Также можно использовать адрес, внешний по отношению к кошельку:
getnewaddress ompНа каждый из адресов переводим 1 аргонеум.
Сейчас мы подготовим неподписанную специальную
ProRegTx-транзакцию, использовав команду
protx register_prepare. Эта команда имеет следующий синтаксис:
protx register_prepare collateralHash collateralIndex ipAndPort ownerKeyAddr
operatorPubKey votingKeyAddr operatorReward payoutAddress (feeSourceAddress)Откройте текстовый редактор, например Блокнот и подготовьте эту команду. Замените каждый аргумент команды следующим образом:
•
collateralHash: txid транзакции залогового финасирования в размере 10000 AGM
•
collateralIndex: Индекс выхода транзакции финансирования на 10000 AGM
•
ipAndPort: IP-адрес и порт мастерноды в формате x.x.x.x:yyyy
•
ownerKeyAddr: Сгенерированный выше новый адрес AGM для владельца/голосования
•
operatorPubKey: Публичный BLS-ключ, сгенерированный выше (или предоставленный хостинг-сервисом)
•
votingKeyAddr: Новый адрес AGM, сгенерированный выше или адрес делегата, используемый для голосования по предложениям
•
operatorReward: Процент награды с блока, который выделен оператору в качестве оплаты
•
payoutAddress: Новый или существующий адрес AGM для получения платежей от владельца мастерноды
•
feeSourceAddress: (Необязательный) адрес, используемый для финансирования комиссий ProTx. Если не указан, то будет использоваться payoutAddress.
Обратите внимание, что оператор несёт ответственность за указание адреса, на который будет начисляться его собственная награда в отдельной транзакции update_service в случае, если вы укажете отличную от нуля награду operatorReward. Владелец залогового подтверждения не указывает адрес для выплаты оператору.
Дополнение. Убедитесь, что адрес ВЛАДЕЛЬЦА owner key address совпадает с адресом ГОЛОСОВАНИЯ voting key address, если Spork15 НЕ активен».Пример :
protx register_prepare ae7c124cc1e2e02c919c3c50226df21c3e0470d8bc72aad969bef75da9c820f0 1 188.134.24.75:9898 MWhDMQppWLJ1nuUpbLUUgAFJ8AHpoyMhvQ 036186493ffc137f515a299584ad40ff7290739dc092c0867639c4c6bc36c98cbe19fcb5bbd8210b463102793b47b228 MWhDMQppWLJ1nuUpbLUUgAFJ8AHpoyMhvQ 0 MWhDMQppWLJ6nuUpbLUUgAFJ7AHpoyMhvQВыход:
"tx": "03000100017ef4757d608ecd3df8176f5f065a606f860be63eb48462091c5ea6f4d1bdf1e50000000000feffffff0121dff505000000001976a91459ce0fce170e6dcc5e23f22a446aff522e8b5bc588ac00000000d1010000000000f020c3a95df7be69d9aa72bcd870043e1cf26d22503c9c912ce0e2c14c127cae0100000000000000000000000000ffffb99a0e4b26aa93b17d9a3cae9453284adb9f9a503b0b27b801b1036186493ffc137f515a299584ad40ff7290739dc092c0867639c4c6bc36c98cbe19fcb5bbd8210b463102793b47b2274dc656b57cf9e329a5a0ccba9716dcc2adee379d00001976a91459ce0fce170e6dcc5e23f22a446aff522e8b5bc588ac469e2842366498726e987ad81a5f797bfc6f3bc1cb31a4dee9a34c4f82615a2983",
"collateralAddress": "MWhDMQppWLJ1nuUpbLUUgAFJ8AHpoyMhvQ",
"signMessage": "MG61DvXXJgyVZFMfVXkvH6SRaEPUve6YAh|0|MMN6BtrDv9RjNCA96NFuysa93mAJLKeopq|MEzPs1tKVu74fs6gQ4bpELQv3ZWpQwJyVR|e2fbbb50c0894f026d8b6f08bee3f2283f47806a53a4d278169961ccb7ef1698"
}Теперь используем поля
collateralAddress и
signMessage для подписания транзакции и поле выхода
tx для отправления транзакции.
Подписание транзакции ProRegTxТеперь подпишем содержимое поля
signMessage используя приватный ключ для залогового адреса, указанный в
collateralAddress. Обратите внимание, что для выполнения этого шага не требуется интернет-соединение, что значит, что для подписи сообщения кошелёк может оставаться отключённым от интернета в состоянии холодного хранилища. В этом примере мы снова используем Argoneum Core. Команда имеет следующий синтаксис:
signmessage collateralAddress signMessageПример:
signmessage MWhDMQppWLJ1nuUpbLUUgAFJ8AHpoyMhvQ MG61DvXXJgyVZFMfVXkvH6SRaEPUve6YAh|0|MMN6BtrDv9RjNCA96NFuysa93mAJLKeopq|MEzPs1tKVu74fs6gQ4bpELQv3ZWpQwJyVR|e2fbbb50c0894f026d8b6f08bee3f2283f47806a53a4d278169961ccb7ef1698Выход:
H3WTc1m6bSeS41k8DqNR73EF58jnvMK0c2PAJMPPPK4jTOinBy026O2QIPioiaoz82vWq7klW2Zx+ta00hxprpQ=
Подтвердите подписанное сообщениеТеперь мы отправим специальную транзакцию ProRegTx в блокчейн для регистрации мастерноды. Эта команда должна быть отправлена из кошелька Argoneum Core, содержащего баланс на
feeSourceAddress или
payoutAddress, поскольку применяется стандартная комиссия за транзакцию. Команда имеет следующий синтаксис:
protx register_submit tx sigГде:
tx: Сериализованная транзакция, ранее возвращённая в поле выхода
tx из
protx register_preparesig: Сообщение, подписанное залоговым ключом с помощью команды
signmessageПример:
protx register_submit 03000100017ef4757d608ecd3df8176f5f065a606f860be63eb48462091c5ea6f4d1bdf1e50000000000feffffff0121dff505000000001976a91459ce0fce170e6dcc5e23f22a446aff522e8b5bc588ac00000000d1010000000000f020c3a95df7be69d9aa72bcd870043e1cf26d22503c9c912ce0e2c14c127cae0100000000000000000000000000ffffb99a0e4b26aa93b17d9a3cae9453284adb9f9a503b0b27b801b1036186493ffc137f515a299584ad40ff7290739dc092c0867639c4c6bc36c98cbe19fcb5bbd8210b463102793b47b22793b17d9a3cae9453284adb9f9a503b0b27b801b100001976a91459ce0fce170e6dcc5e23f22a446aff522e8b5bc588ac469e2842366498726e987ad81a5f797bfc6f3bc1cb31a4dee9a34c4f82615a2983 H3WTc1m6bSeS41k8DqNR73EF58jnvMK0c2PAJMPPPK4jTOinBy026O2QIPioiaoz82vWq7klW2Zx+ta00hxprpQ=Выход:
77ce8025bd8a93adf284b6389a39449db946ee64bd0e936344d992ebdca703b8Ваш мастернода теперь зарегистрирована и появится в списке детерминированных мастернод после того, как транзакция будет добыта в блоке. Вы можете просмотреть этот список на вкладке
Masternodes -> DIP3 Masternodes в кошельке Argoneum Core или в консоли, используя действительный список команд
protx list valid, где txid окончательной транзакции
protx register_submit идентифицирует вашу мастерноду.
Поздравляю, Вы запустили детерминированную мастерноду!

Эта инструкция подходит для запуска и других детерминированных мастернод разных аналогичных монет форков Dash.
Вывод мастерноды из статуса POS_Banned.В консоли набрать protx update_service "proTxHash" "ip:Port" ( ПК Мыши на адрес:порт в кошельке на вкладке мои мастерноды - копировать TxHash ), masternodeblsprivkey
Пример:
protx update_service ae7c124cc1e2e02c919c3c50226df21c3e0470d8bc72aad969bef75da9c820f0 188.134.24.75:9898 395555d67d884364f9e37e7e1b29536519b74af2e5ff7b62122e62c2fffab35eВ сеть отправится микротранзакция и статус мастерноды изменится на Enabled.