Установка и настройка Dash Evonode | Dashmate
Введение
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:
Установка и настройка кошелька
В моем случае на примере Dash Core Wallet. Этот шаг включает загрузку, установку и синхронизацию кошелька с блокчейном Dash.Подготовка и настройка сервера
Необходимо подготовить серверное окружение, включая выбор операционной системы, настройку безопасности и установку необходимых библиотек и зависимостей.Установка Dashmate
Dashmate — это инструмент, который упрощает процесс установки и управления evonode . Мы рассмотрим шаги по его установке и настройке.Настройка и запуск Evonode
На этом этапе мы настроим конфигурационные файлы, запустим evonode и убедимся, что он функционирует правильно, обеспечивая все возможности сети Dash.
Примечание:
В среднем на выполнение всех описанных в статье действий в неспешном темпе уходит 90 минут.
Установка и настройка кошелька
Для регистрации evonode необходимо иметь на счету 4000+ DASH. 4000 залог за evonode, и немного DASH для Payout адреса. В моем случае, я использовал 4005 tDASH, которые являются тестовой валютой в сети Dash.
В своем примере я использовал кошелек Dash Core Wallet, за неимением аппаратного кошелька, хотя для максимальной безопасности рекомендуется именно аппаратный кошелек.
Давайте для начала установим Dash Core Wallet локально к себе на компьютер.
У меня установлен Ubuntu 24.04, для остальных систем можно посмотреть документацию dash.
Переходим на сайт и скачиваем требуемый архив (или установочный файл).
В документации рекомендуют верифицировать скачанный файл, дабы гарантировать его безопасность, ведь все релизы 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” и отображение мастернод, эти настройки нам понадобятся в дальнейшем. Не забудьте перезапустить кошелек после внесения настроек.
Давайте сделаем еще небольшую подготовку на будущее. Откроем вкладку Receive, и сделаем три кошелька, не забыв указать Label (Collateral, Owner, Voter, PayOut):
В результате вы получите четыре адреса, они пригодятся позже.
Следующий шаг предполагает пополнение кошелька, потому я бы советовал принять некоторые меры безопасности.
В первую очередь ОБЯЗАТЕЛЬНО зашифруйте (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"
]
Сохраните результат.
Теперь мы настроили кошелёк и подготовили всё для дальнейших шагов.
Подготовка и настройка сервера
Настройка 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
Создайте ключ:
ssh-keygen -t ed25519 -C "@dashuser"
Скопируйте ключ на сервер:
ssh-copy-id dashuser@ваш_сервер_ip
Для Windows
Скачайте и установите PuTTY и PuTTYgen.
Создайте ключ с помощью PuTTYgen:
Откройте PuTTYgen.
Выберите тип ключа "Ed25519".
Нажмите "Generate" и следуйте инструкциям.
Сохраните открытый и закрытый ключи.Импортируйте ключ на сервер с помощью 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
И так, нам осталось установить на сервере 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.
и вставляем её в следующую команду на вашем сервере:
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.
Перезагрузить
Теперь перезагрузите сервер:
sudo reboot now
Настройка и запуск Evonode
На данный момент у нас готово всё для запуска Dash Evonode.
Давайте перечислим:
У нас есть четыре адреса кошелька. Один для хранения залога c 4000 DASH (tDASH), один для владельца, один для голосования, и один для payout с некоторым количеством DASH (в моём случае около 5 tDASH). Для валидации перевода 4000 DASH необходимо 15 подтверждений.
Также у нас есть данные транзакции 4000 DASH (tDASH).
Заходим в консоль сервера, и вводим:
dashmate setup
Выбираем сеть (в моем случае testnet):
Далее указываем, что нам нужно именно Evonode:
Поскольку я запускаю тестнет Evonode, и делаю это чисто для примера, я сэкономил на сервере, и получил следующую ошибку (я её пропущу выбрав Yes):
В вашем случае ошибки быть не должно.
Мы регистрируем новую Evonode, потому в следующем пункте оставляем No:
Я использую Dash Core Wallet, потому выбираю этот пункт:
В следующем пункте нам нужно указать хэш транзакции с залогом 4000 DASH и её индекс. Это мы берем из данных транзакции полученных командой masternode outputs ранее.
Следующее что нас попросит dashmate, так это указать кошельки владельца, голосующего и PayOut (напоминаю, что на PayOut адресе должно быть немного DASH). Укажем полученные ранее кошельки:
Далее введите закрытый ключ оператора BLS. Вы можете ввести созданный вами (например, используя Dash Core) или полученный от хостинг-провайдера. Как вариант, можно использовать ключ, автоматически сгенерированный dashmate. Я использовал автоматически сгенерированный. Также скопировал его и сохранил в безопасности.
Если часть вознаграждения за работу evonode предполагается направлять непосредственно оператору, установите также процентное соотношение вознаграждения.
Введите ключ узла платформы. Вы можете ввести один вы создали или получили от хостинг-провайдера. Как вариант, можно использовать ключ, автоматически сгенерированный dashmate (я так и поступил, скопировав и сохранив его при этом):
Внимание:
Закрытый ключ оператора BLS и ключ ноды платформы должны иметь сохраненную копию и надежно защищены.
Dashmate автоматически определит внешний IP-адрес (проверьте что IP определён верно) и выберет порты по умолчанию для настраиваемой сети. При необходимости можно изменить эти значения, но, как правило, следует использовать значения по умолчанию.
После этого dashmate сгенерирует команду регистрации evonode. (Светло-голубой текст на скрине ниже)
Скопируйте предоставленную команду protx и запустите ее с помощью консоли Dash Core.
Для успешного ввода команды в консоль, я удалил переносы строки в ней с помощью текстового редактора (иначе падала ошибка Error: Invalid Syntax).
При удачном выполнении вы получите подобный ответ.
При вводе команды может появиться такая ошибка:
Это значит, что нужно разблокировать кошелек Settings -> Unlock Wallet
После успешного выполнения команды выберите Yes в терминале сервера. При возникновении ошибки выберите No, чтобы вернуться к предыдущим шагам и просмотреть детали.
Dash Platform требует использования SSL для обмена данными. Dashmate предоставляет несколько вариантов получения необходимого SSL-сертификата.
Самоподписанные сертификаты не могут быть использованы в mainnet. При настройке Эвонод в mainnet единственными доступными вариантами являются ZeroSSL и File on disk.
Давайте разберем варианты ZeroSSL и File on disk.
ZeroSSL
Первое что нужно сделать так это зарегистрироваться на сайте. Нажмите Get Free SSL:
Введите email и password, и перейдите к следующему шагу:
Перейдите во вкладку “Developer”, и скопируйте “ZeroSSL API Key”:
Укажем его в терминале с dashmate:
Нажав Enter запустим процесс создания и верификации сертификатов для сервера
Примечание:
Обратите внимание, что ZeroSSL ограничил доступ к своим ресурсам для некоторых IP зон. В частности для RU сектора IP, использовать ZeroSSL на момент написания гайда невозможно.
Также обратите внимание, что для верификации необходим порт 80, который может быть занят, если на сервере установлен Nginx.
File on disk
Получаем тем или иным способом файлы сертификата, закидываем их на сервер, например с помощью scp, и указываем к ним путь:
Завершение конфигурации dashmate
После завершения конфигурирования отображается сводка, показывающая сеть и тип сконфигурированной ноды. В этой сводке указаны важные параметры и информация о дальнейших действиях.
Запуск
Наконец нам остается только запустить evonode выполнив команду:
dashmate start
Проверить состояние можно выполнив команду
dashmate status
Процесс синхронизации займёт некоторое время. После чего проверьте остальные сервисы.
dashmate status core
dashmate status platform
dashmate status services
Убедиться, что evonodeзапущена, вы сможете в Dash Core Wallet во вкладке Masternodes, поставив галочку My masternodes only. Там должна отображаться ваша evonode.
Также в случае успешного запуска, в течении некоторого времени (обычно 2-3 часа), запись о вашей Evonode появится на сайте platform-explorer:
На этом настройку и запуск Dash Evonode можно считать законченной.
Как пользоваться полученным будет рассказано в дальнейших гайдах по теме.