December 16, 2021

Massa. Установка ноды. Гайд от TSCR.

Описание

⠀Текущие блокчейны, которые масштабируются до высокой пропускной способности транзакций, централизованы, либо небезопасны. Для Massa была разработана новая архитектура под названием Blockclique, которая масштабирует пропускную способность транзакций до 10'000 транзакций в секунду без ущерба для децентрализации и безопасности. Данная архитектура основана на сегментировании транзакций в многопоточном блочном графе.

  • Massa сочетает сегментирование транзакций и многопоточную архитектуру блочного графа, поддерживающую параллельные блоки с совместимыми транзакциями;
  • Massa распространяет правило консенсуса Накамото на случай параллельных блоков, обеспечивая безопасный и децентрализованный консенсус с использованием Proof-of-Stake;
  • Архитектура Blockclique может обрабатывать тысячи транзакций в секунду наравне с традиционными финансовыми системами.

Вопрос-ответ

Откуда происходит название «Massa»?

⠀У названия есть несколько истоков:

  • Так назывались серебряные монеты, которые использовались 2500 лет назад в Массалии (ныне Марсель).
  • Марсель — город, где познакомились и учились основатели проекта.
  • От словосочетания «Массовое внедрение» («Mass adoption») — цель этой децентрализованной валюты.

Чем отличается Massa от других проектов, например Solana?

⠀Современные блокчейн проекты, по сути, отказались от децентрализации, чтобы достичь высокой производительности.

⠀Мы преследуем цели:

  • Создать децентрализованную сеть;
  • Достичь скорости 10'000 транзакции в секунду;
  • Снизить требования к аппаратному обеспечению нод до уровня среднего настольного компьютера (до 8 CPU, 16 GB RAM и 1 TB HDD), чтобы большое количество людей могло участвовать в жизни сети.

⠀Что касается Solana — это интересный проект, однако у него есть несколько проблем:

  • Высокие требования к аппаратному обеспечению нод;
  • У команды и основателей проекта сосредоточена больша́я часть токенов, из-за чего коэффициент Накамото (подсчитывает, каким количеством объектов нужно завладеть для успешной атаки на важные элементы сети) около 20, что довольно плохо.

Какие фонды инвестировали в ваш проект?

⠀На этапе приватной продажи в проект собрал 5.8М$ от 100 небольших фондов и частных лиц, подробнее в статье. Помимо этого проект получил два гранта от французского правительства на общую сумму около 400 тысяч долларов.

⠀Перед запуском основной сети планируется единственная публичная продажа.

Какие виды вознаграждений предусмотрены?

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

Когда можно присоединиться к тестовой сети?

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

Фазы

⠀На данном этапе известны следующие фазы:

  • Июль 2021 г. — начало сентября 2021 г. — тестовая сеть только запустилася и находится на ранней фазе
  • Сентябрь 2021 г. — 2 квартал 2022 г — оплачиваемая тестовая сеть
  • 2 квартал 2022 г. — запуск основной сети

Награды

⠀Как обычно никакой точной информации нет. Система будет дальше разрабатываться, в том числе чтобы наградить каждого участника за вклад по заслугам.

⠀Наиболее важные положения из статьи о наградах:

  1. Тестовая сеть будет делиться на «эпизоды» длиной примерно месяц. При этом будет даваться 3 дня для обновления ноды перед новым периодом (необходимо сделать резервную копию файлов wallet.dat и node_privkey.key). В каждом эпизоде нужно будет заново запрашивать тестовые токены, покупать ROLL’ы. Сделано это для того, чтобы было легче отслеживать достижения всех участников за каждый период;
  2. Нет необходимости в обладании более, чем 1 ROLL’ом (в оригинальной статьей приведена формула расчёта наград). Соответственно, нет смысла набирать большое количество ROLL’ов в надежде на больший размер награды;
  3. Будут дополнительные очки за децентрализацию (в географическом расположении IP сервера мало других нод) и за открытие портов (как это сделать описано в гайде) — более подробная информацию и формула находится в статье;
  4. Во избежании мультиаккаунтов при получении наград (после выхода в основную сеть) необходимым условием будет прохождение KYC. Система прохождения пока неизвестна, стоит готовиться к прохождению по видео;
  5. На награды будет распространяться система вестинга, чтобы избежать огромных продаж.

Что устанавливается?

Рекомендации от команды (VPS/VDS/DS):

4 CPU, 8 GB RAM, 100 GB SSD, Ubuntu 20.04 (~40-50$ в месяц)

Где взять сервера?


Что устанавливается?

⠀Проект состоит из нескольких приложений:

  • Нода — создаёт блоки, запускается сервисным файлом для бесперебойной работы;
  • Клиент — позволяет взаимодействовать с кошельком и сетью с помощью различных команд. Запускается при необходимости во время работающей ноды.

Ручная установка

Обновить пакеты

sudo apt update && sudo apt upgrade -y

Установить необходимые пакеты

sudo apt install wget jq git build-essential pkg-config libssl-dev -y

Скачать и распаковать бинарные файлы

massa_version=`wget -qO- https://api.github.com/repos/massalabs/massa/releases/latest | jq -r ".tag_name"`; \
wget -qO $HOME/massa.tar.gz "https://github.com/massalabs/massa/releases/download/${massa_version}/massa_${massa_version}_release_linux.tar.gz"; \
tar -xvf $HOME/massa.tar.gz; \
rm -rf $HOME/massa.tar.gz

⠀Сделать бинарные файлы исполняемыми

chmod +x $HOME/massa/massa-node/massa-node \
$HOME/massa/massa-client/massa-client

Если мы ранее задавали пароль, то он у нас сохранен в файле .bash_profile, проверить это можно следующей командой

echo "$massa_password"

Если ничего не выдает то прописываем команду следующего типа(вместо <YOUR_PASSWORD> указываем свой пароль

echo 'export massa_password="<YOUR_PASSWORD>"' >> $HOME/.bash_profile
source $HOME/.bash_profile

Если же мы задавали пароль, а по какой-то причине он не подходит к нашему кошельку, то надо его поменять командами ниже:

sed -i "/ massa_password=/d" $HOME/.bash_profile 
echo 'export massa_password="<YOUR_PASSWORD>"' >> $HOME/.bash_profile . $HOME/.bash_profile
source $HOME/.bash_profile

Пароль необходимо сохранить в надёжном месте, восстановить его невозможно.

⠀Добавить команды в систему в виде переменных:

  • Просмотр лога ноды;
  • Запуск клиента;
  • Просмотр информации о ноде;
  • Просмотр информации о кошельке;
  • Покупка ROLL’ов.
. <(wget -qO- https://raw.githubusercontent.com/MrN1x0n/MrN1x0n/main/insert_variables.sh)

⠀Создать сервисный файл

sudo tee <<EOF >/dev/null /etc/systemd/system/massad.service
[Unit]
Description=Massa Node
After=network-online.target

[Service]
User=$USER
WorkingDirectory=$HOME/massa/massa-node
ExecStart=$HOME/massa/massa-node/massa-node -p "$massa_password"
Restart=on-failure
RestartSec=3
LimitNOFILE=65535

[Install]
WantedBy=multi-user.target
EOF

⠀Запустить сервисный файл

sudo systemctl daemon-reload
sudo systemctl enable massad
sudo systemctl restart massad

⠀Дождаться появления надписи Successful bootstrap

massa_log

2. Создание кошелька

⠀Запустить клиент

massa_client

⠀Сгенерировать новый кошелёк (использовать внутри клиента)

wallet_generate_secret_key

⠀Проверить адрес созданного кошелька (использовать внутри клиента)

wallet_info

⠀Выйти из клиента командой (использовать внутри клиента)

exit

3. Пополнение кошелька

⠀Присоединиться к Discord серверу(https://discord.gg/massa), пройти верификацию и перейти в канал #⌠💸⌡testnet-faucet

⠀Отправить в него адрес кошелька, который найти в выводе команды

massa_wallet_info

⠀Обычно токены приходят быстро, в редких случаях в течение 15 минут. Если по какой-то причине они не начислились, необходимо написать в один из каналов: #general, #testnet или администраторам в личные сообщения.

⠀Проверить получение токенов можно командой

massa_wallet_info

⠀Получать токены можно каждые 24 часа. Команда проекта говорит, что достаточно получить 100 токенов (1 ROLL), чтобы быть учтённым участником тестовой сети. Балансы будут обнуляться каждую фазу, по окончании месяца.

⠀Если токены были ошибочно запрошены на неправильный адрес, то исправить ошибку можно в каналах #general, #testnet или через личные сообщения с администраторами.

⠀Если при вызове команды massa_wallet_info отображается нулевой баланс, однако в веб-кошельке по приватному ключу токены есть, то необходимо перезапустить ноду командой

sudo systemctl restart massad

4. Стейкинг

⠀Для участия в тестовой сети необходимо купить как минимум 1 ROLL и застейкать его. Курс обмена: 1 ROLL = 100 MAS.

⠀Купить ROLL’ы на весь баланс

massa_buy_rolls -mb

⠀Купить определённое количество ROLL’ов (необходимо ввести количество)

massa_buy_rolls

⠀Необходимо подождать 0.5-10 минут и проверить, появились ли купленные ROLL’ы командой

massa_wallet_info
или 
massa_node_info

⠀Далее необходимо включить возможность стейкинга для кошелька командой

massa_cli_client -a node_add_staking_secret_keys

⠀После регистрации ключа для стейкинга нужно подождать около 1 часа 40 минут, пока ROLL станет активным.

⠀После этого, через некоторое время, начнут накапливаться токены за стейкинг — за каждый обработанный блок даётся 1 MAS.

⠀Возможность стейкинга для кошелька включается один раз — при последующем получении токенов и обмене их на ROLL’ы заново включать не нужно.

⠀Позже начнут появляться запланированные слоты

massa_node_info

Резервная копия

⠀Каждую фазу (месяц) будет необходимо восстанавливать кошелёк в новой версии сети, поэтому, во избежании потери наград, необходимо сделать резервную копию файлов, сохранив их себе на ПК (команды отображают пути)

echo $HOME/massa/massa-node/config/node_privkey.key
echo $HOME/massa/massa-client/wallet.dat

⠀Если использовался скрипт для автоматической установки или обновления, то резервная копия этих файлов расположена по пути

echo $HOME/massa_backup/

Открытие портов

⠀Команда упомянула, что за открытие портов будут выдаваться дополнительные награды. Для этого необходимо открыть 31244 и 31245 порты и настроить конфиг.

⠀Открыть порты

. <(wget -qO- https://github.com/MrN1x0n/MassaNode/raw/main/multi_tool.sh) -op

Проверка

⠀Проверить, запустилась ли нода

massa_log

⠀Команда ниже показывает, открыты ли порты. Если нет, то повторить процедуру через 20-40 минут.

massa_node_info

Регистрация ноды

⠀Для регистрации в программе вознаграждений нужно:

1) Присоединиться к Discord серверу и пройти верификацию по телефону и/или капче;

2) На Discord сервере перейти в чат #⌠✅⌡testnet-rewards-registration;

3) Написать любое сообщение и дождаться, пока бот напишет в личные сообщения (взаимодействие с ботом только через них);

⠀Если бот отвечает не сразу, надо подождать — скорее всего бот нагружен.

4) Отправить боту IP сервера и дождаться ответа. IP можно узнать командой:

wget -qO- eth0.me

⠀Если неправильно указали IP, то можно его изменить отправив новый.

Не обращать внимание на любые ошибки со словами Routability test failed for unknown reason

5) На сервере выполнить команду и ввести Discord ID, выданный ботом

massa_cli_client -a node_testnet_rewards_program_ownership_proof

⠀Если команда для регистрации зависает и ничего не выводит, то необходимо:

  • Выйти из клиента
exit
  • Перезапустить ноду
sudo systemctl restart massad
  • Через 10 секунд выполнить команду регистрации заново

6) Выведенное командой значение отправить боту

7) Удостовериться, что всё сделано верно (должны быть все 3 значения), отправив боту info

Обновление

Ручное

⠀Сделать резервную копию файлов, если ещё не сделана (команды отображают пути)

echo $HOME/massa/massa-node/config/node_privkey.key
echo $HOME/massa/massa-client/wallet.dat

⠀Остановить ноду

sudo systemctl stop massad

⠀Удалить ноду

rm -rf $HOME/massa

⠀Перейти к разделу «Восстановление ноды»


Восстановление ноды

⠀Имея резервную копию в виде сохранённых ранее файлов, можно восстановить ноду. Для этого нужно:

  • Запустить ноду командами из пункта «1. Подготовка» и «2. Запуск ноды» или дождаться окончания автоматической установки;
  • Файлы из резервной копии поместить по путям (команды отображают пути)
echo $HOME/massa/massa-node/config/node_privkey.key
echo $HOME/massa/massa-client/wallet.dat
  • Перезапустить ноду
sudo systemctl restart massad
  • Проверить, правильно ли импортировался кошелёк
massa_wallet_info

Полезные команды

Посмотреть последние 100 записей лога ноды

massa_log
sudo journalctl -f -n 100 -u massad

⠀Запуск клиента

massa_client

⠀Просмотр информации о ноде

massa_node_info

⠀Просмотр информации о кошельках

massa_wallet_info

⠀Покупка ROLL’ов

# На весь баланс
massa_buy_rolls -mb
# Определённое количество (необходимо ввести количество)
massa_buy_rolls

⠀Использование других команд модернизированного клиента

massa_cli_client -a node_add_staking_private_keys
massa_cli_client -a node_testnet_rewards_program_ownership_proof

⠀Перезапуск ноды

sudo systemctl restart massad