November 22, 2022

Гайд по Chainflip

Мой телеграм канал: PRO Nodes

Установка


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

OS: Ubuntu 20.04 - Важно чтобы была эта версия, на других может не стать бода
CPU: 4 GHz | 4+ Cores
RAM: 8 GB
SSD: 50 GB (со временем может не хватить)

Создаем папку и добавляем ключи для репозитория Chainflip

sudo 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 в список источников

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

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

Создаем папку для ключей

sudo mkdir /etc/chainflip/keys

Генерируем первый ключ

echo -n "YOUR_VALIDATOR_WALLET_PRIVATE_KEY" | sudo tee /etc/chainflip/keys/ethereum_key_file

YOUR_VALIDATOR_WALLET_PRIVATE_KEY - ваш приватный ключ с кошелька ETH. Если вы используете Metamask, то его можно получить следущим образом. Открываем кошелек, нажимаем на три точки возле названия акаунта.

Должен появиться список, выбираем реквизиты счета.

Потом выбираем экспорт закрытого ключа. Вводим пароль и вуаля, вы получили свой приватный ключ.

Вставляем вместо YOUR_VALIDATOR_WALLET_PRIVATE_KEY в команде и генерируем первый ключ.

Генерируем второй ключ, для начала нужно прописать команду

chainflip-node key generate

Она генерирует важную иформацию, которую нужно будет сохранить куда-то. Она понадобится потом. Вывод команды будет похож на это:

Secret phrase:       XXX
  Network ID:        2112
  Secret seed:       0xXXX  # This is your private key. Hold onto it.
  Public key (hex):  0xXXX
  Account ID:        0xXXX 
  Public key (SS58): cFXXX # This is your Validator ID. Make sure you have it handy for staking.
  SS58 Address:      cFXXX

После прописываем команду. Вместо YOUR_CHAINFLIP_SECRET_SEED вставляем значение полученое в предыдущей команде.

SECRET_SEED=YOUR_CHAINFLIP_SECRET_SEED

И генерируем второй ключ:

echo -n "${SECRET_SEED:2}" | sudo tee /etc/chainflip/keys/signing_key_file
Для того чтобы сгенерировать третий ключ, нужно прописать одну команду
sudo chainflip-node key generate-node-key --file /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

Теперь можно перейти к файлу конфигурации. Создаем папку для него и открываем текстовый редактор

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

Вот что должно быть в конфиг файле:

# Default configurations for the CFE
[node_p2p]
node_key_file = "/etc/chainflip/keys/node_key_file"
ip_address="IP_ADDRESS_OF_YOUR_NODE"
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 = "WSS_ENDPOINT_FROM_ETHEREUM_CLIENT"
http_node_endpoint = "HTTPS_ENDPOINT_FROM_ETHEREUM_CLIENT"
​
# 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"

Копируем и редактируем файл под себя.

IP_ADDRESS_OF_YOUR_NODE ставим адрес сервера на котором вы ставите ноду.

Теперь нужно настроить эндпоинты. На выбор есть три клиента, которые можно использовать: Rivet, Infura, Alchemy. Мы выбрали Alchemy. Заходим на сайт, регистрируемся и создаем проект. Важно при создании выбрать сеть как на скриншоте.

После того как создали проект жмем кнопку VIEW KEY и получаем ваши эндпоинты. Нас интересует

Нас интересует две ссылки WEBSOCKETS и HTTPS, копируем и вставляем в конфигурации соответственно вместо WSS_ENDPOINT_FROM_ETHEREUM_CLIENT и HTTPS_ENDPOINT_FROM_ETHEREUM_CLIENT.

Сохраняем конфиг и выходим с редактора

Теперь можно запустить ноду

sudo systemctl enable chainflip-node
sudo systemctl start chainflip-node
sudo systemctl status chainflip-node

Логи проверяем командой

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

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

💤 Idle (15 peers), best: #3578 (0xcf9a…d842), finalized #3576 (0x6a0e…03fe), ⬇ 27.0kiB/s ⬆ 25.5kiB/s
✨ Imported #3579 (0xa931…c03e)

После можно запустить двигатель

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

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

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

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

!drip Ваш_адрес_кошелька

Но для того чтобы застейкать полученые токены на вашу ноду необходимо будет заплатить комиссию в сети) Для того чтобы у нас было за что ее заплатить идем на сайт и запрашиваем на ваш адрес токены для сети Goerli.

Идем на сайт проекта и подключаем ваш кошелек к нему. Находим кнопку My Nodes и переходим по ней. Нажимаем на кнопку Add node.

В открытом окне вписываем публичный ключ валидатора который мы получили при генерации второго ключа(Public key (SS58)) и количество токенов. Подтверждаем транзакцию в метамаске и ждем когда токены зайдут на валидатора.

После этого у вас на сайте появится ваша нода и теперь вы можете ее зарегистрировать.

sudo systemctl restart chainflip-engine
sudo chainflip-cli \
      --config-path /etc/chainflip/config/Default.toml \
      register-account-role Validator
sudo chainflip-cli \
    --config-path /etc/chainflip/config/Default.toml \
    activate
sudo chainflip-cli \
    --config-path /etc/chainflip/config/Default.toml rotate

Вместо my-name можете прописать свое любое имя для ноды

sudo chainflip-cli \
    --config-path /etc/chainflip/config/Default.toml \
    vanity-name my-name

Аллилуйя! Вы закончили установку ноды - поздравляю!

Мой телеграм канал: PRO Nodes