Как поднять ноду mina protocol

Обновлено: 02.07.2024

Благодаря самому легкому в мире блокчейну управлять нодой стало еще проще. Здесь вы найдете все необходимое для начала работы.

Программа Genesis

Как поднять ноду mina protocol

Если на вашем VPS сервере есть встроенный Фаервол, то следует там открыть порты 8302 и 8303. Если же его нет, то следуйте командам ниже:

sudo iptables -A INPUT -p tcp --dport 8302:8303 -j ACCEPT

Выберите только один вариант запуска из 2-х предложенных ниже (пункт 2.1 или 2.2).

2.1 Запуск только Производителя блоков (Block Producer):

minaprotocol/mina-daemon-baked:1.1.7-d5ff5aa-mainnet daemon \

2.1.1 Запуск Снарк Воркера (Snark Worker) к Производителю Блоков:

Если вы не хотите запускать Snark Worker вместе с Производителем Блоков. Вы можете сразу перейти к шагу 3.

Установим комиссию Воркера: set-snark-work-fee 0.025 - значение комиссии 0.025 можно сменить на любое другое.

sudo docker exec -it mina mina client set-snark-work-fee 0.025

sudo docker exec -it mina mina client set-snark-worker -address $MINA_PUBLIC_KEY

Для работы одновременно Производителя блоков (Block Producer) и Снарк Воркера (Snark Worker) можно настраивать Снарк Стоппер. Чтобы ненадолго останавливать Воркера во время производства блока.

Перейдите по ссылке ниже, чтобы настроить Снарк Стоппер.

2.2 Запуск только Снарк Воркера (без Производителя Блоков)

--name mina - имя для контейнера можно использовать любое, либо оставить так, как есть;

По умолчанию -work-selection для Снарк Воркера является случайным rand . Вы можете изменить это, добавив флаг -work-selection seq в конец команды запуска, которая будет работать с заданиями в том порядке, в котором они должны быть включены из состояния сканирования и скорее всего приведет к включению ваших снарков без потенциально длительной задержки;

set-snark-work-fee 0.025 - значение комиссии Воркера 0.025 можно сменить на любое другое.

Nodes

Внимание! Обновляйте пиры раз в 3 часа с помощью скрипта @AkiAfroo, для этого выполните следующие команды:

2. Установка ноды на Ubuntu 18.04

Для начала вам может потребоваться открыть порты на сервере, обычно они открыты, но давайте в этом убедимся:
sudo apt install ufw
sudo ufw allow 22
sudo ufw allow 8302
sudo ufw allow 8303
sudo ufw enable Далее устанавливаем саму ноду:
sudo apt-get remove -y mina-testnet-postake-medium-curves
mkdir .coda-config
sudo apt-get update
sudo apt-get install -y apt-transport-https ca-certificates
echo "deb [trusted=yes] http://packages.o1test.net release main" | sudo tee /etc/apt/sources.list.d/mina.list
sudo apt-get update
sudo apt-get install -y curl mina-testnet-postake-medium-curves=0.4.2-245a3f7 --allow-downgrades
Проверьте версию ноды командой coda version , версия должна быть [DIRTY]245a3f7d883c516f5f16742cb1ca672872612851 ,
если версия ноды отличается:
  • Данный гайд не обновлен, актуальную версию вы всегда можете проверить в официальной документации
  • Вы что-то сделали не так, повторите пункты начиная с sudo apt-get remove -y mina-testnet-postake-medium-curves

Поздравляю! Вы установили ноду Mina.

3. Подготовка к майнингу

4. Запуск ноды

Сначала нам нужно запустить отдельное окно в котором будет работать нода, выполняем команду:
sudo apt install screen
screen -S mina_node
Далее нам нужно запустить ноду:
CODA_PRIVKEY_PASS=%ваш_ключ_из_письма_на_почте% coda daemon -peer-list-file

/keys/mina-wallet -generate-genesis-proof true -file-log-level Info -run-snark-worker $MINA_PUBLIC_KEY
Ctrl + A, затем нажимаем D (все делать в английской раскладке)

* Для того, чтоб вернуться в окно с нодой (перезапустить в случае падения/посмотреть как дела) выполните команду screen -rd mina_node
Дождитесь значения Synced в строке Sync status. Поздравляю, нода работает!

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

Cнарк воркер расходует все доступные процессорные ресурсы, а данный скрипт останавливает работу снарк воркера если на подходе производство блока и возообновляет работу снарк воркера, когда производство блока закончилось.

Snark Stopper 1

Теперь настроим наш скрипт:
nano $HOME/mina-snark-stopper/config.yml

После выполнения этой команды у вас должен открыться текстовый редактор:
Нужно заменить значения параметров WORKER_PUB_KEY и WORKER_FEE:
WORKER_PUB_KEY: YOUR_PUBLIC_KEY заменить YOUR_PUBLIC_KEY на $MINA_PUBLIC_KEY
WORKER_FEE: 1 заменить 1 на 0.4-0.5 Запуск:
venv/bin/python3 snark-stopper.py
Ctrl + A, затем D (все в английской раскладке)

Snark Stopper 2

Теперь посмотрим состояния скрипта, для этого вводим команду:
screen -rd mina-snark-stopper
Результат должен быть примерно такой:

В случае ошибок убедитесь, что:

    У вас установлена последняя версия Snark Stopper, для этого выполните следующие команды:
      cd

    Выходим из просмотра:
    Ctrl + A, затем D (все в английской раскладке)
    • Статус ноды Synced
    • Установлена последняя версия ноды (проверять командой coda version , сверять с версией в шапке сайта или в официальной документации)
    • Работает Snark Stopper (если вы его настраивали)

    В таком случае поздравляю, все получилось отлично, теперь у вас работающая нода Mina!

    Дополнительно: установка нескольких снарк воркеров

    Эта процедура может быть полезна тем людям, которые хотят производить больше снарков и имеют или же арендуют большое количество серверов.
    • Несколько серверов со следующей конфигурацией:
      • Минимум 4 потока
      • Минимум 8 гигабайт оперативной памяти
      Для установки снарк воркера нам не потребуется разворачивать полноценную ноду, достаточно внести некоторые изменения в вашу основную ноду (она будет координатором для ваших дополнительных серверов).
      Нам нужно добавить следующие флаги к нашей текущей ноде:
      • -run-snark-coordinator $MINA_PUBLIC_KEY
      • -snark-worker-fee 0.5
      • -bind-ip %ip_этого_сервера%

      В результате ваша команда запуска основной ноды будет иметь такой формат:
      CODA_PRIVKEY_PASS=%ваш_ключ_из_письма_на_почте% coda daemon -peer-list-file

      /keys/mina-wallet -generate-genesis-proof true -file-log-level Info -run-snark-worker $MINA_PUBLIC_KEY -run-snark-coordinator $MINA_PUBLIC_KEY -snark-worker-fee 0.5 -bind-ip %ip_этого_сервера%
      Также нам нужно внести адреса наших серверов со снарк воркерами в белый список (это необходимо делать каждый раз при запуске ноды).
      Делается это следующей командой:
      coda advanced client-trustlist add -ip-address %IP_адрес_сервера_снарк_вокера%/32
      Повторять эту команду необходимо для каждого вашего снарк воркер сервера.

      Дополнительно: установка нескольких блок продюсеров

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

      Требования те же самые, что и для обычной ноды:

      Вам необходимо повторить пункты из разделов 1-4, но уже на другом сервере.
      В таком случае (если в системе одновременно работают 2 и более блок продюсеров с одним ключом) ваши n блок продюсеров будут одновременно производить блок, что гораздо увеличит ваши шансы на успешное производство блока.

      Полезная информация

      Ссылки
      Команды:

      База знаний

      Здесь мы собрали наши любимые практические материалы, чтобы вы могли узнать больше о том, как работает Mina.

      Описание и характеристика ноды

      Протокол Mina основан на консенсусе proof-of-stake. В отличие от других протоколов прошлого поколения, каждый участник Mina может подтверждать транзакции в качестве полной ноды, способствуя обеспечению децентрализации. Операторы нод могут выполнять две роли: производить блоки и/или создавать SNARKs.

      Две роли

      Блок-продюсеры

      Также как майнеры или участники стейкинга в других протоколах, блок-продюсеры могут быть выбраны для создания блоков и получения вознаграждения за подтверждение блоков, а также комиссий за транзакции и сетевых комиссий. Блок-продюсеры могут быть SNARK-продюсерами и генерировать собственные криптографические доказательства.

      SNARK-продюсеры

      SNARK-продюсеры помогают сжимать данные в сети, создавая SNARK-доказательства транзакций. Затем они продают SNARK-доказательства блок-продюсерам на Snarketplace, получая часть вознаграждений за создание блоков.

      Управлять нодой

      Установите Mina

      Проверьте системные требования и установите Mina. Вам понадобится 100 МБ – это меньше, чем у большинства блокчейнов, и занимает немного времени.

      Подключитесь к сети

      Настройте свою сеть и используйте имеющиеся сид-ноды для подключения к действующей p2p-сети Mina.

      Совершите транзакцию

      Создайте новый аккаунт. Запросите токены Mina из крана. Затем отправьте средства на эхо-сервис Mina. Готово!


      Тестнет

      Узнайте, что в данный момент находится на стадии бета-тестирования, примите участие в тестнет-испытаниях и зарабатывайте баллы в тестовой сети.


      Nodes

      First of all we need to create directories for keys. To do it enter the following:

      Result should be the following:

      Then we need to unzip keys, to do this enter the following:

      As a result 2 files should appear in the folder, names should be in the following format:

      To do it, type the following:

      After that we need to download the list of peers:

      Attention! Update peers once in 3 hours using @AkiAfroo script, to do this execute the following:

      In the pop-up enter 'Y' (in case you have new peers), click Enter

      Once in 3 hours you need to execute bash checkpeers command.

      2. Node Set-up with Ubuntu 18.04

      , in case it differs either:

      • This guide is outdated, the actual version you can always check in the official project docs
      • You perform some of the previous steps incorreclty, retry from the sudo apt-get remove -y mina-testnet-postake-medium-curves step.

      Congatz! You sucessfully set-up a MINA node.

      3. Mining Preparations

      Before the start we need to do the following steps: import account and unlock the key:

      coda accounts unlock -public-key $MINA_PUBLIC_KEY -->

      4. Node Launch

      In order to launch the node, enter the following commands:

      Check node status:

      In this case it will be checked every 30 secs and update automatically

      * In order to get back to the node window (restart or just to check) enter the following: screen -rd mina_node

      Congratulations, your node is working!

      5. Snark Stopper set-up (optional)

      Snark stopper is for those who set Block Producer and Snark worker on the same server.

      Snark worker uses all processing resources available, but this script stops snark worker in case we are close to block producing and resumes it when block producing is over.

      After this a text editor should appear:

      Snark Stopper 1

      Change attributes WORKER_PUB_KEY and WORKER_FEE:

      The result should be:

      Snark Stopper 2

      In case of any errors check the following:

        • You have the latest Snark Stopper version installed
            • In order to do this enter the following:

            in the SNARK WORKER attribute there should be your key:

            Snark Stopper 3

            After this your script should work correctly, otherwise please consult the development team.

            You have a working Mina node, congratulations!

            Addendum: Several Snark Workers Set-up

            This will be helpful to those who want to produce more Snarks and rent lots of servers.
            • Several servers with the following configuration:
              • CPU: min. 4
              • RAM: min 8Gb

              We need to add the following flags to the current node:

              • -run-snark-coordinator $MINA_PUBLIC_KEY
              • -snark-worker-fee 0.5
              • -bind-ip %this_server_ip%

              As a result your main node run command will look like this:

              Also we would need to white list our servers (this needs to be done every time you start the node):

              For servers which will be Snark workers we need to execute the following:

              Addendum: Several Block Producer Set-up

              This will be helpful to those who met several bugs when the block is not producing (or just want to be sure in it).

              Requirements are the same as for the general node: