Massa
Масса использует многопоточный блок-граф, позволяющий узлам создавать блоки параллельно и обрабатывать 10000 транзакций в секунду. С этой параллельной структурой блока, Massa является первым блокчейном, чья технология решает трилемму.
Текущий блокчейн не масштабируется. Чтобы стать жизнеспособной альтернативой классическим финансовым решениям, блокчейн должен быть в состоянии обрабатывать ряд сделок, аналогичных тем, что в классических системах. В настоящее время биткоин допускает только 5 транзакций в секунду (tx/s), в то время как эфириум допускает 15-20 tx/s. Эти цифры далеки от показателей классических финансовых систем. Например, система VISA обработала 111 миллиардов транзакций в 2017 году (в среднем 3500 tx/s).
Информация о проекте
Информационные ресурсы проекта, перейдя на которые, вы сможете более детально углубиться в суть:
- Официальный сайт — краткое описание проекта
- Блог — принцип работы блокчейна
- White paper — описание проекта
Описание
Те блокчейны, из уже имеющихся, которые масштабируются до высокой пропускной способности транзакций, централизованы, либо небезопасны. Для Massa была разработана новая архитектура под названием Blockclique, которая масштабирует пропускную способность транзакций до 10'000 транзакций в секунду без ущерба для децентрализации и безопасности. Данная архитектура основана на сегментировании транзакций в многопоточном блочном графе.
- Massa сочетает сегментирование транзакций и многопоточную архитектуру блочного графа, поддерживающую параллельные блоки с совместимыми транзакциями;
- Massa распространяет правило консенсуса Накамото на случай параллельных блоков, обеспечивая безопасный и децентрализованный консенсус с использованием Proof-of-Stake;
- Архитектура Blockclique может обрабатывать тысячи транзакций в секунду наравне с традиционными финансовыми системами.
Современные блокчейн проекты, по сути, отказались от децентрализации, чтобы достичь высокой производительности, главное отличие Massa в том, что данный проект пытается, наоборот же, создать децентрализованную сеть с большой пропускной способностью, и в то же время приемлемую в вопросе аппаратного обеспечения
"Мы стремимся снизить требования к аппаратному обеспечению нод до уровня среднего настольного компьютера (до 8 CPU, 16 GB RAM и 1 TB HDD), чтобы большое количество людей могло участвовать в жизни сети"
Инвесторы
На этапе приватной продажи в проект собрал 5.8М$ от 100 небольших фондов и частных лиц, подробнее в статье. Помимо этого проект получил два гранта от французского правительства на общую сумму около 400 тысяч долларов.
⠀Также, перед запуском основной сети планируется паблик сейл.
Фазы
На данном этапе известны следующие фазы:
- Июль 2021 г. — начало сентября 2021 г. — запуск тестовой сети в ранней фазе;
- Сентябрь 2021 г. — 4 квартал 2022 г — инсентивайзд;
- 4 квартал 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
Установка
Linux (ручная установка)
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
Добавить команды в систему в виде переменных:
- Просмотр лога ноды;
- Запуск клиента;
- Просмотр информации о ноде;
- Просмотр информации о кошельке;
- Покупка ROLL’ов.
. <(wget -qO- https://raw.githubusercontent.com/SecorD0/Massa/main/insert_variables.sh)
Запуск ноды
Изменить загрузочные данные ноды в конфиге
. <(wget -qO- https://raw.githubusercontent.com/SecorD0/Massa/main/multi_tool.sh) \ -rb
printf "[Unit] Description=Massa Node After=network-online.target [Service] User=$USER WorkingDirectory=$HOME/massa/massa-node ExecStart=$HOME/massa/massa-node/massa-node Restart=on-failure RestartSec=3 LimitNOFILE=65535 [Install] WantedBy=multi-user.target" > /etc/systemd/system/massad.service
sudo systemctl daemon-reload sudo systemctl enable massad sudo systemctl restart massad
Дождаться появления надписи Successful bootstrap
massa_log
При возникновении ошибки ниже повторить установку
thread 'main' panicked at 'called `Result::unwrap()` on an `Err` value: parsing error : public key bs58_check parsing error
Создание кошелька
massa_client
Сгенерировать новый кошелёк (использовать внутри клиента)
wallet_generate_private_key
Проверить адрес созданного кошелька (использовать внутри клиента)
wallet_info
Выйти из клиента командой (использовать внутри клиента)
exit
Пополнение кошелька
Присоединиться к Discord серверу, пройти верификацию и перейти в канал #⌠💸⌡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_cli_client -a node_add_staking_private_keys
После регистрации ключа для стейкинга нужно подождать около 1 часа 40 минут, пока ROLL станет активным.
После этого, через некоторое время, начнут накапливаться токены за стейкинг — за каждый обработанный блок даётся 1 MAS.
Возможность стейкинга для кошелька включается один раз — при последующем получении токенов и обмене их на ROLL’ы заново включать не нужно.
Информацию о ноде можно посмотреть командой
massa_node_info
Linux (автоматический)
Запустить скрипт и дождаться окончания установки
. <(wget -qO- https://raw.githubusercontent.com/SecorD0/Massa/main/multi_tool.sh)
После появления сообщения об успешной установке начать с пополнения кошелька в ручной установке.
Резервная копия
Каждую фазу (месяц) будет необходимо восстанавливать кошелёк в новой версии сети, поэтому, во избежании потери наград, необходимо сделать резервную копию файлов, сохранив их себе на ПК (команды отображают пути)
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://raw.githubusercontent.com/SecorD0/Massa/main/multi_tool.sh) \ -op
Перейти к пункту «Проверка».(ниже)
Открытие портов (ручное)
sudo systemctl stop massad
. <(wget -qO- https://raw.githubusercontent.com/SecorD0/utils/main/miscellaneous/ports_opening.sh) \ 31244 31245
⠀Проверить, открылись ли порты
ss -tulpn | grep :3303
Если ничего не выводит, значит порты не открыты, надо повторить открытие ещё раз
Записать в конфиг файл внешний IP-адрес
sudo tee <<EOF >/dev/null $HOME/massa/massa-node/config/config.toml [network] routable_ip = "`wget -qO- eth0.me`" EOF
sudo systemctl restart massad
Проверка
Проверить, запустилась ли нода
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
Обновление
Автоматическое
Запустить команду и дождаться окончания
. <(wget -qO- https://raw.githubusercontent.com/SecorD0/Massa/main/multi_tool.sh)
Создастся папка с резервной копией необходимых файлов, которую нужно сохранить себе на ПК, если резервная копия ещё не сделана (команда отображает путь)
echo $HOME/massa_backup/
Проверить версию — должна быть TEST.11.X
massa_node_info
Пополнить кошелёк и застейкать ROLL(выше)
Повторно пройти регистрацию в Discord боте(выше)
Ручное
Сделать резервную копию файлов, если ещё не сделана (команды отображают пути)
echo $HOME/massa/massa-node/config/node_privkey.key echo $HOME/massa/massa-client/wallet.dat
sudo systemctl stop massad
rm -rf $HOME/massa
Перейти к разделу «Восстановление ноды»
Повторно пройти регистрацию в Discord боте
Восстановление ноды
Имея резервную копию в виде сохранённых ранее файлов, можно восстановить ноду. Для этого нужно:
- Запустить ноду командами из пункта «1. Подготовка» и «2. Запуск ноды» или дождаться окончания автоматической установки;
- Файлы из резервной копии поместить по путям (команды отображают пути)
echo $HOME/massa/massa-node/config/node_privkey.key echo $HOME/massa/massa-client/wallet.dat
sudo systemctl restart massad
massa_cli_client -a node_add_staking_private_keys
massa_wallet_info
Удаление
Запустить команду и дождаться окончания
. <(wget -qO- https://raw.githubusercontent.com/SecorD0/Massa/main/multi_tool.sh) \ -un
⠀Директорию с резервной копией необходимых файлов (команда ниже отображает путь) при необходимости удалить вручную
echo $HOME/massa_backup
Полезные команды
Доступные переменные (при использовании убрать echo)
echo $massa_wallet_address
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