Chainflip Soundcheck 0.1.1
⠀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»
⠀Зарегистрироваться при помощи:
⠀После попадания на панель управления:
Запуск
⠀Каждый подраздел — отдельный вид установки, нужно выбрать один из них.
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
⠀Через некоторое время после обновления страницы сайта появится добавленная нода.
Восстановление
⠀Чтобы восстановить ноду, например при переносе на другой сервер, нужно поместить резервные копии следующих файлов:
⠀В специальную директорию (или поместить сохранённую директорию с этими файлами в домашнюю папку)
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
Удаление
⠀Запустить скрипт и дождаться окончания работы
. <(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! — изучение проекта, написание статьи, администрирование русскоязычного сообщества