Guides
November 19, 2022

Chainflip: Installation Guide

Chainflip — это децентрализованный протокол, который позволяет проводить кроссчейн переводы между различными блокчейнами. Chainflip соединит основные экосистемы, такие как Bitcoin, Ethereum, Polkadot, Solana или Cosmos, чтобы пользователи могли перемещаться по растущему многоцепочечному пространству.

Целью проекта является устранение пользовательских барьерьеров для обмена ваших токенов в несколько кликов без дополнительных знаний о криптографии.

Список фондов внушительный

Twitter
Discord
Website

Оглавление


Подготовка к установке

Оглавление

Характеристики сервера для запуска ноды: 4 CPU, 8 RAM 50 GB SSD. В дальнейшем может понадобиться больше места, поэтому берите с запасом, например Hetzner CPX31.

Заходим в дискорд проекта и регистрируемся в ветке #join-testnet

Также нам понадобится новый кошелек Metamask и приложение в Alchemy.

Для создания кошелька переходим по ссылке и выполняем все инструкции, сохраняем мнемоническую фразу в надежном месте.

Можно сразу запросить токены в дискорде в канале #faucet командой !drip ваш_адрес. Также вам понадобятся токены gETH, запросить их можно с крана.

Для создания приложения в Alhemy выполняем следующие шаги:

  • Переходим по ссылке и регистрируемся в Alchemy;
  • Нажимаем на кнопку CREATE APP;
  • Вводим название проекта, выбираем сеть Goerli и создаем приложение;
  • Нажимаем VIEW KEY и копируем значения HTTPS и WEBSOCKETS в блокнот, они нам понадобятся далее.

Теперь переходим непосредственно к поднятию ноды


Установка ноды

Оглавление

Загружаем GPG ключ из официального репозитория

mkdir -p /etc/apt/keyrings
curl -fsSL repo.chainflip.io/keys/gpg | sudo gpg --dearmor -o /etc/apt/keyrings/chainflip.gpg

Проверяем ключ

gpg --show-keys /etc/apt/keyrings/chainflip.gpg

Корректный вывод выглядит следующим образом

Добавляем репозиторий Chainflip в apt, обновляем и устанавливаем пакеты

echo "deb [signed-by=/etc/apt/keyrings/chainflip.gpg] https://repo.chainflip.io/perseverance/ focal main" | sudo tee /etc/apt/sources.list.d/chainflip.list
sudo apt-get update
sudo apt-get install -y chainflip-cli chainflip-node chainflip-engine

Создание ключей

Оглавление

Генерируем ключ ноды

chainflip-node key generate

Сохраняем полученную информацию в надежном месте!

Создаем каталог для хранения ключей

sudo mkdir /etc/chainflip/keys

Создаем файл ключа Ethereum

echo -n "ваша секретная фраза (secret seed) из вывода предыдущей команды" |  sudo tee /etc/chainflip/keys/ethereum_key_file

Создаем файл ключа Chainflip

SECRET_SEED=ваша секретная фраза (secret seed) из вывода предыдущей команды 
echo -n "${SECRET_SEED:2}" | sudo tee /etc/chainflip/keys/signing_key_file

Вывод должен показать вашу секретную фразу без первых двух символов (0x)

По очереди выполняем следующие команды и сохраняем оба вывода

sudo chainflip-node key generate-node-key --file /etc/chainflip/keys/node_key_file
cat /etc/chainflip/keys/node_key_file

Выдаем разрешения и очищаем историю

sudo chmod 600 /etc/chainflip/keys/ethereum_key_file
sudo chmod 600 /etc/chainflip/keys/signing_key_file
sudo chmod 600 /etc/chainflip/keys/node_key_file
history -c

Создание config файла

Оглавление

Создаем папку и пустой файл

sudo mkdir -p /etc/chainflip/config
sudo nano /etc/chainflip/config/Default.toml

Копируем текст ниже в блокнот, вносим изменения в строки ip_address, ws_node_endpoint и http_node_endpoint.

[node_p2p]
node_key_file = "/etc/chainflip/keys/node_key_file"
ip_address = "ваш_IP"
port = "8078" 

[state_chain]
ws_endpoint = "ws://127.0.0.1:9944"
signing_key_file = "/etc/chainflip/keys/signing_key_file" 

[eth]
# Ethereum RPC endpoints (websocket and http for redundancy).
ws_node_endpoint = "ваш_WEBSOCKETS"
http_node_endpoint = "ваш_HTTPS" 

# Ethereum private key file path. This file should contain a hex-encoded private key.
private_key_file = "/etc/chainflip/keys/ethereum_key_file" 

[signing]
db_file = "/etc/chainflip/data.db"

Сохраняем изменения сочетанием клавиш Ctrl+X, затем y и Enter

Чтобы узнать свой IP, выполняем команду

wget -qO- eth0.me

Значения параметров ws_node_endpoint и http_node_endpoint мы сохранили в блокнот ранее при подготовке к запуску


Запуск ноды

Оглавление

Запускаем ноду

sudo systemctl start chainflip-node

Проверяем статус ноды

sudo systemctl status chainflip-node

Проверяем логи и ожидаем завершения синхронизации

tail -f /var/log/chainflip-node.log

Подобные логи указывают, что синхронизация завершена

Запускаем chainflip-engine

sudo systemctl start chainflip-engine
sudo systemctl status chainflip-engine

Включаем ноду и движок

sudo systemctl enable chainflip-node
sudo systemctl enable chainflip-engine

Проверяем логи движка

tail -f /var/log/chainflip-engine.log

Стекинг

  • Переходим в Metamask и добавляем токен FLIP в сети Goerli. Контракт токена -0x8e71CEe1679bceFE1D426C7f23EAdE9d68e62650
  • Переходим в приложение Perseverance Staking App
  • Переходим во вкладку "My Nodes" и поключаем Metamask
  • Нажимаем "+ Add Node"
  • В появившемся окне вставляем ваш публичный ключ (SS58), количество токенов, которые хотите застейкать и нажимаем кнопку "Stake"
  • Подписываем две транзакции
  • Через несколько минут ваша нода появится во вкладке "My Nodes"

Далее необходимо зарегистрировать ключи валидатора

sudo chainflip-cli \
      --config-path /etc/chainflip/config/Default.toml \
      register-account-role Validator      

Нажимаем y и получаем в выводе хэш транзакции

Активируем аккаунт для участие в аукционе

sudo chainflip-cli \
      --config-path /etc/chainflip/config/Default.toml \
      activate

ДОбавляем возможность ротации

sudo chainflip-cli \
      --config-path /etc/chainflip/config/Default.toml rotate

Добавляем отображаемое имя

sudo chainflip-cli \
      --config-path /etc/chainflip/config/Default.toml \
      vanity-name ваш_никнейм
      

Обновление

Оглавление

sudo apt update 
sudo apt upgrade sudo 
systemctl restart chainflip-engine

Удаление ноды

Оглавление

Сохраняем файлы из каталога /etc/chainflip/keys

Удаляем ноду

sudo systemctl stop chainflip-node
sudo systemctl stop chainflip-engine
rm -rf /etc/apt/keyrings
rm -rf /etc/chainflip
sudo systemctl disable chainflip-node
sudo systemctl disable chainflip-engine

Nodera

Telegram | Discord | Twitter