Актуальные ноды
December 3, 2021

Chainflip Soundcheck 0.1.1

Let's Node!

⠀Chainflip — это протокол для автоматизированного обмена кросс-чейн токенами, в котором комиссия включена в свап, использующий экосистему Polkadot.


Содержание


Информация о проекте

К содержанию

Описание

⠀Chainflip — это протокол для автоматизированного обмена кросс-чейн токенами, который решает существующие проблемы децентрализованных решений, влияющие на их удобство и практичность использования. Данный протокол позволяет пользователям автоматически обменивать токены, не полагаясь на централизованных провайдеров, врапнутые токены или другое программное обеспечение. Комиссии для обеспечения ликвидности и работы сети включаются в каждый свап, что устраняет необходимость в приобретении собственных токенов для оплаты газа. Работа системы обеспечивается сетью валидаторов, консенсус обеспечивается протоколом PoS. Проект ориентирован на использование экосистемы Polkadot.

⠀Проект собрал 6м$, из примечательных фондов — Coinbase Venture.

Фазы

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

  • 1 — 7 декабря — подача заявок на участие в тестовой сети Soundcheck;
  • 7 декабря — публикация документации по запуску валидатора;
  • 15 декабря 2021 г. — запуск тестовой сети;
  • 19 января 2022 г. — завершение первого этапа тестовой сети.

Награды

Тестовая сеть закрытая и рассчитана на 150 и более участников. Было заполнено более 5000 заявок.

⠀250 000 FLIP будут распределятся согласно таблице лидеров — на основе заработанных очков. Общее количество очков — 4 000 000.

⠀Очки можно получить следующим образом:

  • Выполнение заданий;
  • Участие в обновлениях;
  • Поиск багов;
  • Обратная связь;
  • Прочие активности.

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


Требования к серверу

К содержанию

Минимальные (VDS/DS):
4 CPU, 8 GB RAM, 250 GB SSD, 1 Gbps, Ubuntu 20.04

⠀Подходящие сервера:


Регистрация

К содержанию

Регистрация закрыта. Отобранные валидаторы получили письма для прохождения KYC и письма с подтверждением верификации.

⠀Остерегайтесь мошенников.

⠀Оригинальное письмо приходит от noreply@chainflip.io и выглядит как на скриншоте ниже.

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


Подготовка

К содержанию

Приватный ключ

⠀Для запуска валидатора понадобится приватный ключ от ETH кошелька, указанного при регистрации на участие в тестовой сети.

⠀В MetaMask его можно получить следующим образом

Токены сети Rinkeby

⠀Также понадобятся 0.1 ETH в сети Rinkeby, которые можно получить, воспользовавшись одним из кранов:

Rinkeby RPC

⠀Для работы ноды необходим Rinkeby RPC. Не рекомендуется использовать Infura, поэтому стоит выбрать либо поднятие своей ноды, либо альтернативные сервисы. Наш выбор остановился на сервисе Rivet Cloud.

⠀Необходимо перейти на сайт и нажать «GET STARTED FREE»

⠀Зарегистрироваться при помощи:

  • Почты:
    • Никнейм;
    • Почта.
  • Кошелька MetaMask:
    • Разрешить подключение, нажав на кнопку;
    • Переключиться на Rinkeby сеть;
    • Нажать на кнопку регистрации ещё раз;
    • Подтвердить регистрацию в MetaMask.

⠀После попадания на панель управления:

  1. Переключить сеть на Rinkeby;
  2. Сохранить Websocket URL для дальнейшего использования.

Запуск

К содержанию

⠀Каждый подраздел — отдельный вид установки, нужно выбрать один из них.

Linux (ручной)

Для новичков

⠀Установить необходимые бинарные файлы

. <(wget -qO- https://raw.githubusercontent.com/SecorD0/Chainflip/main/multi_tool.sh)

⠀Создать папку, в которой будут храниться данные

mkdir -p $HOME/chainflip/ $HOME/chainflip_backup

⠀Выполнить команду и ввести приватный ключ от Ethereum кошелька с FLIP токенами для его записи в файл

read -rp #39;\e[40m\e[92mEnter Ethereum wallet private key:\e[0m ' pk; echo "$pk" | sed 's%0x%%' | tr -d '\n' > $HOME/chainflip_backup/ethereum_key_file; cp $HOME/chainflip_backup/ethereum_key_file $HOME/chainflip/

⠀Сгенерировать ключ валидатора

subkey generate | tee -a $HOME/chainflip_backup/signing_key.txt

⠀Добавить ID валидатора в систему в виде переменной

. <(wget -qO- https://raw.githubusercontent.com/SecorD0/utils/main/miscellaneous/insert_variable.sh) -n chainflip_validator -v `awk 'NR == 5 {printf $(NF)}' $HOME/chainflip_backup/signing_key.txt`

⠀Записать приватный ключ валидатора в файл

awk 'NR == 2 {printf $(NF)}' $HOME/chainflip_backup/signing_key.txt | sed 's%0x%%' > $HOME/chainflip_backup/signing_key_file; cp $HOME/chainflip_backup/signing_key_file $HOME/chainflip/

⠀Сгенерировать ключ ноды

echo -e "`subkey generate-node-key 2>&1`" | tee -a $HOME/chainflip_backup/node_key.txt

⠀Записать приватный ключ ноды в файл

awk 'NR == 2 {printf $1}' $HOME/chainflip_backup/node_key.txt > $HOME/chainflip_backup/node_key_file; cp $HOME/chainflip_backup/node_key_file $HOME/chainflip/

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

echo $HOME/chainflip_backup/

⠀Поместить сохранённый ранее Websocket RPC в переменную

read -rp #39;\e[40m\e[92mEnter Websocket RPC:\e[0m ' rpc

⠀Создать конфиг

sudo tee <<EOF >/dev/null $HOME/chainflip/Default.toml
[node_p2p]
node_key_file = "$HOME/chainflip/node_key_file"

[state_chain]
ws_endpoint = "ws://127.0.0.1:9944"
signing_key_file = "$HOME/chainflip/signing_key_file"

[eth]
from_block = 9810000
node_endpoint = "$rpc"
private_key_file = "$HOME/chainflip/ethereum_key_file"

[health_check]
hostname = "0.0.0.0"
port = 5555

[signing]
db_file = "data.db"
EOF

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

sudo tee <<EOF >/dev/null /etc/systemd/system/chainflipnd.service
[Unit]
Description=Chainflip Validator Node

[Service]
User=$USER
ExecStart=`which chainflip-node` \\
  --chain soundcheck \\
  --base-path $HOME/chainflip/chaindata \\
  --node-key-file $HOME/chainflip/node_key_file \\
  --in-peers 500 \\
  --out-peers 500 \\
  --port 30333 \\
  --validator \\
  --ws-max-out-buffer-capacity 3000 \\
  --bootnodes /ip4/165.22.70.65/tcp/30333/p2p/12D3KooW9yoE6qjRG9Bp5JB2JappsU9V5bck1nUDSNRR2ye3dFbU
Restart=on-failure
RestartSec=3
LimitNOFILE=65535

[Install]
WantedBy=multi-user.target
EOF

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

sudo tee <<EOF >/dev/null /etc/systemd/system/chainfliped.service
[Unit]
Description=Chainflip Validator Engine

[Service]
User=$USER
ExecStart=`which chainflip-engine` --config-path $HOME/chainflip/Default.toml
Restart=on-failure
RestartSec=3
LimitNOFILE=65535

[Install]
WantedBy=multi-user.target
EOF

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

sudo systemctl daemon-reload
sudo systemctl enable chainflipnd chainfliped
sudo systemctl restart chainflipnd chainfliped

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

  • Просмотр лога ноды;
  • Просмотр лога движка.
. <(wget -qO- https://raw.githubusercontent.com/SecorD0/utils/main/miscellaneous/insert_variable.sh) -n chainflip_node_log -v "sudo journalctl -fn 100 -u chainflipnd" -a
. <(wget -qO- https://raw.githubusercontent.com/SecorD0/utils/main/miscellaneous/insert_variable.sh) -n chainflip_engine_log -v "sudo journalctl -fn 100 -u chainfliped" -a

Linux (автоматический)

Для продвинутых

⠀Запустить скрипт, ввести Websocket RPC, приватный ключ от Ethereum кошелька с FLIP токенами (если попросит) и дождаться окончания установки

⠀При отсутствии какого-либо файла ниже, будет сгенерирован новый ключ, в ином случае файл будет восстановлен из резервной копии

echo $HOME/chainflip_backup/signing_key_file
echo $HOME/chainflip_backup/node_key_file
. <(wget -qO- https://raw.githubusercontent.com/SecorD0/Chainflip/main/multi_tool.sh) -ai


Стейкинг

К содержанию

⠀Для того, чтобы застейкать на ноду, необходимо:

  • Перейти на сайт;
  • Подключить кошелек, указанный при регистрации;
  • Нажать «Add a node»;
  • Вставить публичный ключ, который можно узнать командой
echo $chainflip_validator
  • Ввести 1000 FLIP или нажать «Max»;
  • Подтвердить транзакцию.

⠀Через некоторое время после обновления страницы сайта появится добавленная нода.


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

К содержанию

⠀Чтобы восстановить ноду, например при переносе на другой сервер, нужно поместить резервные копии следующих файлов:

  • ethereum_key_file
  • node_key_file
  • signing_key_file

⠀В специальную директорию (или поместить сохранённую директорию с этими файлами в домашнюю папку)

echo $HOME/chainflip_backup

⠀И запустить скрипт автоматической установки

. <(wget -qO- https://raw.githubusercontent.com/SecorD0/Chainflip/main/multi_tool.sh) -ai


Обновление

К содержанию

⠀Запустить скрипт и дождаться окончания работы

. <(wget -qO- https://raw.githubusercontent.com/SecorD0/Chainflip/main/multi_tool.sh) -up


Удаление

К содержанию

⠀Запустить скрипт и дождаться окончания работы

⠀Директория chainflip_backup не будет удалена

. <(wget -qO- https://raw.githubusercontent.com/SecorD0/Chainflip/main/multi_tool.sh) -un



Вклад сообщества

К содержанию

Наша команде не несёт ответственности за возможные негативные последствия, поскольку не может гарантировать безопасность использования представленных инструментов

Как сюда попасть?

⠀Чтобы попасть в этот почётный раздел необходимо написать SecorD’у сообщение с информацией об инструменте:

  • Название проекта;
  • Краткое название в 2-3 слова (будет использоваться как заголовок);
  • Описание, которое будет добавлено в статью (зачем нужно, функционал, как использовать, другая полезная информация, желательно со скриншотами).

⠀Что это даёт?

  • Пользу сообществу;
  • Возможность заявить о себе;
  • Дополнительную возможность представления доказательств контрибуции в различных проектах.

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

К содержанию

⠀Доступные переменные (при использовании убрать echo)

echo $chainflip_validator

⠀Посмотреть лог

# Нода
chainflip_node_log
sudo journalctl -fn 100 -u chainflipnd

# Движок
chainflip_engine_log
sudo journalctl -fn 100 -u chainfliped

⠀Перезапустить

# Нода
sudo systemctl restart chainflipnd
# Движок
sudo systemctl restart chainfliped

Полезные ссылки

К содержанию

Официальный сайт проекта | Официальная группа Telegram

Русскоязычная группа Telegram | Discord | Twitter

Статья о тестовой сети | UI для стейкинга


Благодарности

К содержанию

Всем из раздела «Вклад сообщества»

Команда Let’s Node! — изучение проекта, написание статьи, администрирование русскоязычного сообщества

Выразить благодарность