Установка ноды ChainFlip Perseverence 0.5.x

Zim
6 min readNov 17, 2022

--

Тестирование проходят в тестовой сети Goerli, поэтому вам нужно немного эфира этой сети для комиссий — хотя бы 0.1 gETH. Так же обязательно заведите дополнительный аккаунт в МетаМаске, это нужно потому что мы будем использовать секретные ключи при установке ноды.

Добавьте так же токены Flip в МетаМаск используя адрес 0x8e71CEe1679bceFE1D426C7f23EAdE9d68e62650

Для ноды по официальным документам https://docs.chainflip.io/perseverance-validator-documentation/ нужен сервер:

OS: Ubuntu 20.04
CPU: 4 GHz | 4+ ядра
RAM: 8 GB
SSD: 50 GB (этот параметр со временем может уеличиваться)

Я использую CPX31 от Hetzner — https://hetzner.cloud/?ref=jpOezOCuEbRF

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

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

У вас должно быть что-то типа такого на выходе

pub   rsa3072 2022-11-08 [SC] [expires: 2024-11-07]
BDBC3CF58F623694CD9E3F5CFB3E88547C6B47C6
uid Chainflip Labs GmbH <dev@chainflip.io>
sub rsa3072 2022-11-08 [E] [expires: 2024-11-07]

После этого добавляем репозитарий 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

Генерация ключей

Для начала нам надо создать папку для ключей

sudo mkdir /etc/chainflip/keys

Ethereum Keys

Чтобы сгенерировать эфирные ключи нам надо создать дополнительный кошелек в МетаМаске, для этого откройте кошелек в браузере и нажмите на круглый значек сверху справа и там будет кнопка + Create Account, не забудьте на этот аккаунт потом перекинуть 0.1 gETH для газа.

Перейдя в новый кошелек нажимаем на 3 точки и заходим в детали аккаунта, нажимаем на Экспортировать приватный ключ, вводим пароль и получаем нужный нам ключ.

Скопируйте куда то код ниже и вместо фразы YOUR_VALIDATOR_WALLET_PRIVATE_KEY вставьте свой секретный код, оставляя кавычки. Если в вашей секретной фразе впереди стои 0х то удалите эти два первых символа перед вставкой.

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

Validator Keys

Для того чтобы нода работала как надо нам нужны так же два ключа валидатора, их уже будете генерировать chainflip-node.

Signing Keys

Первый ключ генерируем командой

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

Теперь нам надо скопировать наш Secret seed и вписать в следующую строку, заменив слово YOUR_CHAINFLIP_SECRET_SEED непосредственно вашим секретным сид кодом

SECRET_SEED=YOUR_CHAINFLIP_SECRET_SEED

Затем создать с этой фразой ключ

echo -n "${SECRET_SEED:2}" | sudo tee /etc/chainflip/keys/signing_key_file

Node Key

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

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

Если все хорошо можно проверить командой

cat /etc/chainflip/keys/node_key_file

Она выдаст вам его, сохранять который не обязательно.

Теперь на сервере у вас будет три ключа: Ethereum Keys, Signing Keys и Node Key. Обязательно сделайте их бэкап на локальный ПК.

Теперь чистим на всякий случай после себя и даем урезанные права этим ключам командой:

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://SOME_LONG_SECRET_INFORMATION.goerli.ws.rivet.cloud"
http_node_endpoint = "https://SOME_LONG_SECRET_INFORMATION.goerli.rpc.rivet.cloud/"

# 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 вставляем айпишник вашего сервера, его можно вывести командой ну или посмотреть в письме от вашего хостинга

curl -w "\n" ifconfig.me

Далее нам нужно заменить данные в строке ws_node_endpoint и http_node_endpoint после равно.

Самым лучшим сервисом по эндпоинтам для себя я выбрал Alchemy https://dashboard.alchemy.com. Они дают бесплатно очень большой лимит, который реально был очень нужен в предыдущих тестах.

Вы так же можете использовать Rivet или Infura если вам так удобнее.

В дашборде Alchemy надо создать App выбрать Ethereum и Goerli, и затем нажать на View Key справа с списке приложений

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

После того как вы заполните эти три строки вам надо сохранить этот файл конфигурации, используя CTRL(Control)+Х, указав при этой Yes (хотите сохранить)

Осталось совсем чуть чуть, поверьте раньше все было намного сложнее.

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

sudo systemctl start chainflip-node

И проверить что она отлично работает, она должна быть Active если что-то не так значит вам надо вернутся в файл конфигуратора и проверить его, а так же проверить все три ключа.

sudo systemctl status chainflip-node

Теперь вам надо дождаться пока нода синхронизируется, высоту блоков можно посмотреть https://blocks-perseverance.chainflip.io а логи командой

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

Хорошие логи должны выглядеть вот так

После того как нода полностью синхронизировалась нам надо запустить engine

sudo systemctl start chainflip-engine

И конечно проверить его командой, он так же должен быть обязательно active

sudo systemctl status chainflip-engine

Затем влючаеми активируем ноду

sudo systemctl enable chainflip-node

и engine

sudo systemctl enable chainflip-engine

Логи которого можно проверить по команде

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

Все. Ну почти. Ваша нода отлично работает. Теперь вам надо получить тестовые токены в дискорде написав в разделе faucet

!drip адрес кошелька МетаМаска

Если вы прописали уже адрес токенов то через несколько минут они упадут вам на кошелек, иногда они не падают тогда админы рассылают их ручками, поэтому следите за чатом.

Имейте ввиду что в первый раз вам дадут 3000 токенов, затем 1000, потом 500 и далее уже по 100.

Далее вам надо пройти на сайт Perseverance Staking App и нажать Add Node

Указываем ваш Public Key(SS58) адрес, который вы сохранили до этого, его если что можно показывать и говорить всем, а так же жмем Max и два раза подверждаем транзакцию в МетаМаске.

Теперь чтобы ваша нода начала участвовать в сети и создавать блоки вам надо ее зарегестрировать.

После каждой из четырех команд ниже вы будете получать хэш транзакции, что будет означать что все хорошо

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

Вашу ноду вы можете посмотреть в разделе https://stake-perseverance.chainflip.io/nodes где можно увидеть что она активная, если все было правильно, получает награду за участие в генерации блоков. Не забывайте каждые сутки получать новые токены в кране и добавлять в свою ноду.

--

--

Zim

Начинающий инвестор в акции и криптовалюту, не трейдер.