Dash Evonode | Setup Guide

Введение

Dash — это криптовалюта, основанная на протоколе Bitcoin, но с рядом улучшений и функций, таких как приватные транзакции и децентрализованное управление. Dash был разработан для обеспечения быстрых и низкозатратных платежей по всему миру.

Я провел масштабное исследование по установке, настройке и запуску узлов Dash. Существует 2 типа узлов для получения пассивного дохода:



Masternode - это узел с залогом 1000 DASH, который снабжает и поддерживает работу таких улучшений как InstantSend и CoinJoin(PrivateSend), а также позволяет участвовать в децентрализованном управлении проектом (Dash DAO).



Evonode - это узел с залогом 4000 DASH, который также предоставляет все указанные выше сервисы, а также участвует в поддержке работы Dash Platform - второго уровня сети Dash, которая предоставляет возможность хранения NoSQL данных. Такой узел кроме получения наград в основной сети, также получает комиссии с L2 транзакциий.

Я новичок в мире биткоиноподобных блокчейнов, и настройка Dash Evonode (evonode) для блокчейн Dash может показаться сложной задачей. Однако, следуя этой инструкции, вы сможете шаг за шагом настроить Evonode, обеспечить его правильную работу и воспользоваться всеми преимуществами, которые предлагает Dash.

Настройка evonode включает в себя несколько шагов, таких как подготовка серверного окружения, установка необходимого программного обеспечения и настройка конфигурационных файлов. В этой статье я подробно объясню каждый этап этого процесса, чтобы помочь вам успешно настроить и запустить evonode для Dash.

Я выделил несколько базовых шагов, следуя которым вы сможете настроить и запустить свою Evonode для Dash:

  1. Установка и настройка кошелька
    В моем случае на примере Dash Core Wallet. Этот шаг включает загрузку, установку и синхронизацию кошелька с блокчейном Dash.

  2. Подготовка и настройка сервера
    Необходимо подготовить серверное окружение, включая выбор операционной системы, настройку безопасности и установку необходимых библиотек и зависимостей.

  3. Установка Dashmate
    Dashmate — это инструмент, который упрощает процесс установки и управления evonode . Мы рассмотрим шаги по его установке и настройке.

  4. Настройка и запуск Evonode
    На этом этапе мы настроим конфигурационные файлы, запустим evonode и убедимся, что он функционирует правильно, обеспечивая все возможности сети Dash.


Примечание:
В среднем на выполнение всех описанных в статье действий в неспешном темпе уходит 90 минут.


Установка и настройка кошелька

Dash Evonode | Dash Core Wallet setup

Для регистрации evonode необходимо иметь на счету 4000+ DASH. 4000 залог за evonode, и немного DASH для Payout адреса. В моем случае, я использовал 4005 tDASH, которые являются тестовой валютой в сети Dash.

В своем примере я использовал кошелек Dash Core Wallet, за неимением аппаратного кошелька, хотя для максимальной безопасности рекомендуется именно аппаратный кошелек.

Давайте для начала установим Dash Core Wallet локально к себе на компьютер.

У меня установлен Ubuntu 24.04, для остальных систем можно посмотреть документацию dash.

Переходим на сайт и скачиваем требуемый архив (или установочный файл).

Dash Evonode | Dash Core Wallet setup

В документации рекомендуют верифицировать скачанный файл, дабы гарантировать его безопасность, ведь все релизы Dash после 0.16.0 подписаны с помощью GPG. Я пропустил этот шаг, поскольку запускаю тестовую evonode, но настоятельно рекомендую верифицировать файл, если вы запускаете в мейннет.

В терминале переходим в директорию со скачанным файлом, далее распаковываем его, и устанавливаем бинарные файлы в директорию /usr/local/bin:

cd Downloads/

tar -xzf dashcore-20.1.1-x86_64-linux-gnu.tar.gz

sudo install -m 0755 -o root -g root -t /usr/local/bin dashcore-20.1.1/bin/*

Запустим кошелек, чтобы продолжить его настройку:

dash-qt&

Включим в настройках “coin control” и отображение мастернод, эти настройки нам понадобятся в дальнейшем. Не забудьте перезапустить кошелек после внесения настроек.

Dash Evonode | Dash Core Wallet options

Давайте сделаем еще небольшую подготовку на будущее. Откроем вкладку Receive, и сделаем три кошелька, не забыв указать Label (Collateral, Owner, Voter, PayOut):

Dash Evonode | Dash Core Wallet reseive

В результате вы получите четыре адреса, они пригодятся позже.

Следующий шаг предполагает пополнение кошелька, потому я бы советовал принять некоторые меры безопасности.

В первую очередь ОБЯЗАТЕЛЬНО зашифруйте (Settings -> Encrypt Wallet) кошелёк новым паролем и сохраните его в безопасности.
Второе что нужно сделать, так это забекапить кошелек (File -> Backup Wallet).
Обязательно удалите все незашифрованные резервные копии после того, как убедитесь, что кошелек работает!

ВСЕ ВАШИ ДЕЙСТВИЯ ПО СОХРАНЕНИЮ ПАРОЛЯ И БЭКАПА КОШЕЛЬКА В БЕЗОПАСНОСТИ ЛЕЖАТ ПОЛНОСТЬЮ НА ВАШЕЙ ОТВЕТСТВЕННОСТИ.

Мы подошли к моменту, когда нужно пополнить кошелек. Внесите депозит 4000+ DASH (в моем случае 4005 tDASH).

Ранее мы включили coin control features, потому сейчас сделаем две транзакции на те адреса, что получили до этого. Я пишу на своём примере.

1 транзакция: 4.9 tDASH на последний полученный адрес. Стоит галочка на “Subtract fee from amount”.
2 транзакция: 4000 tDASH на первый полученный адрес. НЕ стоит галочка на “Subtract fee from amount”. Так же укажите адрес с которого переводите, чтоб не задействовать адрес из первой транзакции. Это адрес с залогом за evonode.

На будущее сохраним данные транзакции с залогом. Для этого в консоли кошелька выполним (Window -> Console) следующую команду

masternode outputs

На что получите похожий ответ:

[
  "83466394b185a7ba448106b882553ff4869303ad4480b09c2fdabb38fadd798f-1"
]

Сохраните результат.

Теперь мы настроили кошелёк и подготовили всё для дальнейших шагов.

Подготовка и настройка сервера

Dash Evonode | VPS setup

Настройка VPS для Evonode — важный шаг для обеспечения безопасной и стабильной работы узла. Мы подробно рассмотрим процесс регистрации и настройки VPS.

Регистрация VPS

Выбор провайдера

Первым шагом выберите надежного провайдера, который обеспечит стабильную работу вашего сервера. Рекомендуемые провайдеры: DigitalOcean, Vultr, Linode.

Создание учетной записи

Зарегистрируйтесь на сайте выбранного провайдера и создайте учётную запись. После регистрации вы сможете создать свой виртуальный сервер (VPS).

Создание VPS

Для работы Dash evonode рекомендуется выбрать тарифный план:

  • CPU: 4 vcpu

  • RAM: 16GB

  • HDD/SSD: 200GB

Выберите операционную систему (в моем случае, Ubuntu 20.04).

Настройка VPS

Подключение по SSH

SSH используется для удаленного управления сервером. Используйте SSH-клиент (например, PuTTY для Windows или встроенный терминал Linux/Mac) для подключения к серверу с использованием данных, предоставленных провайдером.

Обновление системы

Для обеспечения безопасности и стабильности системы выполните обновление:

sudo apt update && sudo apt upgrade -y

Создание пользователя

Создайте нового пользователя для повышения безопасности, избегая работы под root:

sudo adduser dashuser

sudo usermod -aG sudo dashuser

Создание SSH-ключа и импорт на VPS

На локальной машине создайте SSH-ключ и импортируйте его на VPS.

Для UNIX

  1. Создайте ключ:

    ssh-keygen -t ed25519 -C "@dashuser"

  2. Скопируйте ключ на сервер:

    ssh-copy-id dashuser@ваш_сервер_ip

Для Windows

Скачайте и установите PuTTY и PuTTYgen.

  1. Создайте ключ с помощью PuTTYgen:

    Откройте PuTTYgen.
    Выберите тип ключа "Ed25519".
    Нажмите "Generate" и следуйте инструкциям.
    Сохраните открытый и закрытый ключи.

  2. Импортируйте ключ на сервер с помощью PuTTY:

    Откройте PuTTY.
    В разделе "Connection" -> "SSH" -> "Auth" выберите файл вашего ключа.
    Подключитесь к серверу и выполните команды для добавления ключа в ~/.ssh/authorized_keys:

    mkdir -p ~/.ssh

    chmod 700 ~/.ssh

    echo "ваш_публичный_ключ" >> ~/.ssh/authorized_keys

    chmod 600 ~/.ssh/authorized_keys

Проверьте работает ли подключение по ключу. (не должно при подключении спрашивать пароль)

Настройка SSH

Для повышения безопасности отключите вход по паролю и доступ для root. Откройте файл конфигурации SSH:

sudo vi /etc/ssh/sshd_config

Измените следующие параметры:

PermitRootLogin no
PasswordAuthentication no
ChallengeResponseAuthentication no
UsePAM no

Внимание:
После выполнения следующего пункта, вы потеряете возможность войти на vps по паролю! Убедитесь, что работает подключение по ключу!

Сохраните изменения и перезапустите SSH:

sudo systemctl reload ssh

Настройка файервола (UFW)

Для обеспечения безопасности необходимо настроить файервол и установить дополнительные пакеты:

sudo apt install ufw python3 virtualenv git unzip pv -y

Конфигурация файервола

Выберите соответствующую конфигурацию файервола в зависимости от сети, которую будет поддерживать ваш evolution masternode и введите эти команды на сервере в консоль:

Конфигурация для Mainnet:

sudo ufw allow ssh/tcp

sudo ufw limit ssh/tcp

sudo ufw allow 443/tcp

sudo ufw allow 9999/tcp

sudo ufw allow 26656/tcp

sudo ufw logging on

sudo ufw enable

Конфигурация для Testnet:

sudo ufw allow ssh/tcp

sudo ufw limit ssh/tcp

sudo ufw allow 19999/tcp

sudo ufw allow 26656/tcp

sudo ufw allow 3000/tcp

sudo ufw logging on

sudo ufw enable

Включить подкачку

Для работы evonode рекомендуют включить swap в Linux. Далее мы добавим подкачку памяти и включим ее.

sudo fallocate -l 4G /swapfile

sudo chmod 600 /swapfile

sudo mkswap /swapfile

sudo swapon /swapfile

Настроим включение файла подкачки при последующих перезагрузках:

sudo nano /etc/fstab

Добавьте следующую строку в конец файла (нажимайте клавишу Tab для разделения каждого слова/числа), затем нажмите Ctrl + X, чтобы закрыть редактор, затем нажмите Y и Enter, чтобы сохранить файл.

/swapfile none swap sw 0 0

Перезагрузить 

Теперь перезагрузите сервер:

sudo reboot now

Установка Dashmate

Dash Evonode | Dashmate setup

И так, нам осталось установить на сервере dashmate.

Установим зависимости:

sudo apt update

sudo apt install wget docker.io docker-compose docker-compose-v2 -y

sudo usermod -aG docker $USER

Теперь перейдем в репозиторий с релизами и выберем актуальный релиз dashmate (в дальнейших командах указывайте свой актуальный релиз). На текущий момент (08/2024) актуально 1.0.2

Копируем ссылку актуального релиза для нашей OS.

Dash Evonode | Dashmate download

и вставляем её в следующую команду на вашем сервере:

wget -P /tmp/ https://github.com/dashpay/platform/releases/download/v1.0.2/dashmate_1.0.2.030eb0595-1_amd64.deb

sudo apt install /tmp/dashmate_1.0.2.030eb0595-1_amd64.deb

Теперь, если введя в терминал команду dashmate вы видите следующий вывод, у вас все готово к настройке evonode.

Dash Evonode | Dasmate check

Перезагрузить 

Теперь перезагрузите сервер:

sudo reboot now

Настройка и запуск Evonode

Dash Evonode setup and launch

На данный момент у нас готово всё для запуска Dash Evonode.

Давайте перечислим:

  1. У нас есть четыре адреса кошелька. Один для хранения залога c 4000 DASH (tDASH), один для владельца, один для голосования, и один для payout с некоторым количеством DASH (в моём случае около 5 tDASH). Для валидации перевода 4000 DASH необходимо 15 подтверждений.

  2. Также у нас есть данные транзакции 4000 DASH (tDASH).

Заходим в консоль сервера, и вводим:

dashmate setup

Выбираем сеть (в моем случае testnet):

Dash Evonode | network

Далее указываем, что нам нужно именно Evonode:

Dash Evonode | evolution masternote

Поскольку я запускаю тестнет Evonode, и делаю это чисто для примера, я сэкономил на сервере, и получил следующую ошибку (я её пропущу выбрав Yes):

skip

В вашем случае ошибки быть не должно.

Мы регистрируем новую Evonode, потому в следующем пункте оставляем No:

Dash Evonode | new node

Я использую Dash Core Wallet, потому выбираю этот пункт:

Dash Evonode | wallet

В следующем пункте нам нужно указать хэш транзакции с залогом 4000 DASH и её индекс. Это мы берем из данных транзакции полученных командой masternode outputs ранее.

Dash Evonode | masternode outputs structure
Dash Evonode | collateral transaction information

Следующее что нас попросит dashmate, так это указать кошельки владельца, голосующего и PayOut (напоминаю, что на PayOut адресе должно быть немного DASH). Укажем полученные ранее кошельки:

Dash Evonode | addresses

Далее введите закрытый ключ оператора BLS. Вы можете ввести созданный вами (например, используя Dash Core) или полученный от хостинг-провайдера. Как вариант, можно использовать ключ, автоматически сгенерированный dashmate. Я использовал автоматически сгенерированный. Также скопировал его и сохранил в безопасности.

Если часть вознаграждения за работу evonode предполагается направлять непосредственно оператору, установите также процентное соотношение вознаграждения.

Dash Evonode | BLS private key

Введите ключ узла платформы. Вы можете ввести один вы создали или получили от хостинг-провайдера. Как вариант, можно использовать ключ, автоматически сгенерированный dashmate (я так и поступил, скопировав и сохранив его при этом):

Dash Evonode | node key

Внимание:
Закрытый ключ оператора BLS и ключ ноды платформы должны иметь сохраненную копию и надежно защищены.

Dashmate автоматически определит внешний IP-адрес (проверьте что IP определён верно) и выберет порты по умолчанию для настраиваемой сети. При необходимости можно изменить эти значения, но, как правило, следует использовать значения по умолчанию.

Dash Evonode | IP and ports

После этого dashmate сгенерирует команду регистрации evonode. (Светло-голубой текст на скрине ниже)

Dash Evonode | protx command

Скопируйте предоставленную команду protx и запустите ее с помощью консоли Dash Core.

Для успешного ввода команды в консоль, я удалил переносы строки в ней с помощью текстового редактора (иначе падала ошибка Error: Invalid Syntax).

При удачном выполнении вы получите подобный ответ.

Dash Evonode | registration success

При вводе команды может появиться такая ошибка:

Evolution Maser Node | unlock wallet error

Это значит, что нужно разблокировать кошелек Settings -> Unlock Wallet

После успешного выполнения команды выберите Yes в терминале сервера. При возникновении ошибки выберите No, чтобы вернуться к предыдущим шагам и просмотреть детали.

Dash Evonode | registration success on server

Dash Platform требует использования SSL для обмена данными. Dashmate предоставляет несколько вариантов получения необходимого SSL-сертификата.
Самоподписанные сертификаты не могут быть использованы в mainnet. При настройке Эвонод в mainnet единственными доступными вариантами являются ZeroSSL и File on disk.

Dash Evonode | SSL configure

Давайте разберем варианты ZeroSSL и File on disk.

ZeroSSL

Первое что нужно сделать так это зарегистрироваться на сайте. Нажмите Get Free SSL:

Dash Evonode | ZeroSSL registration

Введите email и password, и перейдите к следующему шагу:

Dash Evonode | ZeroSSL registration

Перейдите во вкладку “Developer”, и скопируйте “ZeroSSL API Key”:

Dash Evonode | ZeroSSL API Key

Укажем его в терминале с dashmate:

Dash Evonode | ZeroSSL API Key on server

Нажав Enter запустим процесс создания и верификации сертификатов для сервера

Dash Evonode | ZeroSSL certificates

Примечание:
Обратите внимание, что ZeroSSL ограничил доступ к своим ресурсам для некоторых IP зон. В частности для RU сектора IP, использовать ZeroSSL на момент написания гайда невозможно.
Также обратите внимание, что для верификации необходим порт 80, который может быть занят, если на сервере установлен Nginx.

File on disk

Получаем тем или иным способом файлы сертификата, закидываем их на сервер, например с помощью scp, и указываем к ним путь:

Dash Evonode | SSL file on disk

Завершение конфигурации dashmate

После завершения конфигурирования отображается сводка, показывающая сеть и тип сконфигурированной ноды. В этой сводке указаны важные параметры и информация о дальнейших действиях.

Dash Evonode | complete setup

Запуск

Наконец нам остается только запустить evonode выполнив команду:

dashmate start

Dash Evonode | node start

Проверить состояние можно выполнив команду

dashmate status

Dash Evonode | node status

Процесс синхронизации займёт некоторое время. После чего проверьте остальные сервисы.

dashmate status core

Dash Evonode | node status core

dashmate status platform

Dash Evonode | node status platform

dashmate status services

Dash Evonode | node status services

Убедиться, что evonodeзапущена, вы сможете в Dash Core Wallet во вкладке Masternodes, поставив галочку My masternodes only. Там должна отображаться ваша evonode.

Dash Evonode | Dash Core Wallet Masternodes tab

Также в случае успешного запуска, в течении некоторого времени (обычно 2-3 часа), запись о вашей Evonode появится на сайте platform-explorer:

Dash Evonode | Platform-Explorer site

На этом настройку и запуск Dash Evonode можно считать законченной.
Как пользоваться полученным будет рассказано в дальнейших гайдах по теме.