Massa. Установка ноды. Гайд от TSCR.
Описание
⠀Текущие блокчейны, которые масштабируются до высокой пропускной способности транзакций, централизованы, либо небезопасны. Для Massa была разработана новая архитектура под названием Blockclique, которая масштабирует пропускную способность транзакций до 10'000 транзакций в секунду без ущерба для децентрализации и безопасности. Данная архитектура основана на сегментировании транзакций в многопоточном блочном графе.
- Massa сочетает сегментирование транзакций и многопоточную архитектуру блочного графа, поддерживающую параллельные блоки с совместимыми транзакциями;
- Massa распространяет правило консенсуса Накамото на случай параллельных блоков, обеспечивая безопасный и децентрализованный консенсус с использованием Proof-of-Stake;
- Архитектура Blockclique может обрабатывать тысячи транзакций в секунду наравне с традиционными финансовыми системами.
Вопрос-ответ
Откуда происходит название «Massa»?
⠀У названия есть несколько истоков:
- Марсель — город, где познакомились и учились основатели проекта.
- От словосочетания «Массовое внедрение» («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 г. — запуск основной сети
Награды
⠀Как обычно никакой точной информации нет. Система будет дальше разрабатываться, в том числе чтобы наградить каждого участника за вклад по заслугам.
⠀Наиболее важные положения из статьи о наградах:
- Тестовая сеть будет делиться на «эпизоды» длиной примерно месяц. При этом будет даваться 3 дня для обновления ноды перед новым периодом (необходимо сделать резервную копию файлов wallet.dat и node_privkey.key). В каждом эпизоде нужно будет заново запрашивать тестовые токены, покупать ROLL’ы. Сделано это для того, чтобы было легче отслеживать достижения всех участников за каждый период;
- Нет необходимости в обладании более, чем 1 ROLL’ом (в оригинальной статьей приведена формула расчёта наград). Соответственно, нет смысла набирать большое количество ROLL’ов в надежде на больший размер награды;
- Будут дополнительные очки за децентрализацию (в географическом расположении IP сервера мало других нод) и за открытие портов (как это сделать описано в гайде) — более подробная информацию и формула находится в статье;
- Во избежании мультиаккаунтов при получении наград (после выхода в основную сеть) необходимым условием будет прохождение KYC. Система прохождения пока неизвестна, стоит готовиться к прохождению по видео;
- На награды будет распространяться система вестинга, чтобы избежать огромных продаж.
Что устанавливается?
Рекомендации от команды (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
⠀Присоединиться к 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
⠀Для участия в тестовой сети необходимо купить как минимум 1 ROLL и застейкать его. Курс обмена: 1 ROLL = 100 MAS.
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
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
# На весь баланс 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