Привет, сообщество Moonbeam.
Хотел бы поделиться гайдом по установке collator node в Moonbase Network , настроить телеметрию и податься в коллаторы.
Системные требования:
Запуск ноды
Скачиваем бинарник:
wget https://github.com/PureStake/moonbeam/releases/download/v0.12.1/moonbeam
Проверяем бинарник:
sha256sum moonbeam
Делаем бинарник исполняемым:
chmod +x moonbeam
Добавляем пользователя для запуска сервиса :
adduser moonbase_service --system --no-create-home
Создаем директорию для этого бинарника:
mkdir /var/lib/alphanet-data
Изменяем владельца этой директории:
chown moonbase_service /var/lib/alphanet-data
Перемещаем бинарник в нужную нам директорию:
cp ./moonbeam /var/lib/alphanet-data
Создаем сервисный файл:
nano /etc/systemd/system/moonbeam.service
Добавляем данные в сервисный файл:
[Unit]
Description="Moonbasystemctl --user start minase Alpha systemd service"
After=network.target
StartLimitIntervalSec=0[Service]
Type=simple
Restart=on-failure
RestartSec=10
User=moonbase_service
SyslogIdentifier=moonbase
SyslogFacility=local7
KillSignal=SIGHUP
ExecStart=/var/lib/alphanet-data/moonbeam \
--validator \
--port 30333 \
--rpc-port 9933 \
--ws-port 9944 \
--pruning=archive \
--state-cache-size 1 \
--base-path /var/lib/alphanet-data \
--chain alphanet \
--name "YOUR-NODE-NAME" \
-- \
--port 30334 \
--rpc-port 9934 \
--ws-port 9945 \
--execution wasm \
--wasm-execution compiled \
--state-cache-size 1 \
--pruning=archive \
--name="YOUR-NODE-NAME (Embedded Relay)"[Install]
WantedBy=multi-user.target"YOUR-NODE-NAME" - имя вашей ноды
Делаем нашу сервисную службу загружаемой после запуска:
systemctl enable moonbeam.service
Стартуем сервис:
systemctl start moonbeam.service
Проверяем статус:
systemctl status moonbeam.service
Проверяем логи:
journalctl -f -u moonbeam.service
Теперь наша нода работает и мы можем перейти к настройке телеметрии.
Настройка телеметрии
Создаем аккаунт в https://app.gantree.io и получаем свой API-ключ
Скачиваем бинарник:
wget https://github.com/gantree-io/gantree-node-watchdog/releases/download/v1.1.0rc1/gantree-node-watchdog-v1.1.0rc1-linux.tar.gz
Распаковываем его:
tar -xzf gantree-node-watchdog-v1.1.0rc1-linux.tar.gz
Перемещаем бинарник в необходимую директорию:
mv gantree_node_watchdog /usr/local/bin/
Создаем конфиг для ноды-наблюдателя релейчейнов:Создаем две директори для конфигов:
mkdir -p /var/lib/gantree/parachain
mkdir -p /var/lib/gantree/relay
Создаем конфиг для ноды-наблюдтеля парчейнов:
nano /var/lib/gantree/parachain/.gnw_config.json
Добавляем данные:
{
"api_key": "YOUR-API-KEY",
"project_id": "moonbeam",
"client_id": "YOUR-SERVER-NAME-parachain"
"metrics_host": "http://127.0.0.1:9615"
}
Создаем конфиг для ноды-наблюдателя релейчейнов:
nano /var/lib/gantree/relay/.gnw_config.json
Добавляем данные в конфиг:
{
"api_key": "YOUR-API-KEY",
"project_id": "moonbeam",
"client_id": "YOUR-SERVER-NAME-relay",
"metrics_host": "http://127.0.0.1:9616"
}"YOUR-API-KEY" - ваш API ключ в Gantree
"YOUR-SERVER-NAME-relay" - имя вашей ноды-наблюдателя (у каждого наблюдателя должно быть разное имя)
"PCK-key" больше не нужен
Создаем сервисный файл для ноды-наблюдателя парчейнов:
nano /etc/systemd/system/gantree-parachain.service
Добавляем данные в него:
[Unit]
Description=Gantree Node Watchdog Parachain
After=network.target[Service]
WorkingDirectory=/var/lib/gantree/parachain
Type=simple
Restart=always
ExecStart=/usr/local/bin/gantree_node_watchdog[Install]
WantedBy=multi-user.target
Создаем сервисный файл для ноды-наблюдателя релейчейнов:
nano /etc/systemd/system/gantree-relay.service
Добавляем данные в него:
[Unit]
Description=Gantree Node Watchdog Relay
After=network.target[Service]
WorkingDirectory=/var/lib/gantree/relay
Type=simple
Restart=always
ExecStart=/usr/local/bin/gantree_node_watchdoggantree-relay[Install]
WantedBy=multi-user.target
Делаем сервисную службу загружаемой после запуска:
sudo systemctl enable gantree-parachain
Запускаем сервис gantree-parachain и проверяем логи:
sudo systemctl start gantree-parachain && journalctl -f -u gantree-parachain
Делаем нашу сервисную службу загружаемой после запуска:
sudo systemctl enable gantree-relay
Запускаем сервис gantree-relay и проверяем логи:
sudo systemctl start gantree-relay && journalctl -f -u gantree-relay
Далее нам необходимо стать кандидатом в коллаторы
Стать коллатором
Создаем аккаунт в https://polkadot.js.org/apps/?rpc=wss%3A%2F%2Fwss.testnet.moonbeam.network#/accounts
Узнаем размер пула кандидатов
- Переходим во вкладку “Developer”
- Выбираем раздел “JavaScript”
- Копируем текст в окно
- Сохраняем
- Запускаем код
- Копируем данные
// Simple script to get candidate pool size
const candidatePool = await api.query.parachainStaking.candidatePool();
console.log(`Candidate pool size is: ${candidatePool.length}`);
Теперь мы можем подать свою кандидатуру в коллаторы
- Заходим в раздел “Developers” во вкладку “Extrinsics”
- Выбираем свой аккаунт с токенами для коллации
- Подтверждаем что аккаунт имеет необходимое количество токенов
- Выбираем
parachainStaking
в меню “extrinsics" - Далее выбираем функцию
joinCandidates()
- Выбираем количество токенов которое хотим забондить
- Указываем количество кандидатов в пуле (мы узнали это ранее)
- Подтверждаем транзакцию
Далее необходимо получить session key ноды и привязать его к нашему кандидату
Для этого используем данную команду на нашей ноде
curl http://127.0.0.1:9933 -H \
"Content-Type:application/json;charset=utf-8" -d \
'{
"jsonrpc":"2.0",
"id":1,
"method":"author_rotateKeys",
"params": []
}'
Сохраняем полученные данные
Теперь возвращаемся в кошелёк
- Заходим во вкладку “Developer”
- Выбираем опцию “Extrinsics”
- Выбираем свой аккаунт
- Выбираем
authorMapping
- Выбираем
addAssociation()
- Вводим наш
(sesion key из предыдущего раздела)
- Выбираем “Submit Transaction”
Проверяем
- Заходим во вкладку “Developer”
- Выбираем опцию “Chain state”
- Выбираем
authorMapping
- Выбираем
mappingWithDeposit
метод - Указываем author ID
- Нажимем “+” button для отправки RPC call
Проверить валидатора в списке ожидания:
https://moonbase.subscan.io/waiting
Посмореть author ID если забыли:
https://moonbase.subscan.io/extrinsic?module=authormapping&call=update_association
Официальная документация:
https://docs.moonbeam.network/node-operators/networks/full-node/
Документация по Gantree:
https://www.notion.so/Gantree-Dashboard-v3-Docs-3e2b87789cf440a7915a5791eee92780
Забондить дополнительный стейк:
- Заходим во вкладку “Developer”
- Выбираем опцию “Extrinsics”
- Выбираем свой аккаунт
- Выбираем
parachainStaking
- Выбираем функцию candidateBondMore
(more)
- Указываем количество
- Выбираем “Submit unsigned”
Номинировать стейк (для номинаторов):
Забондить дополнительный стейк:
- Заходим во вкладку “Developer”
- Выбираем опцию “Extrinsics”
- Выбираем свой аккаунт
- Выбираем
parachainStaking
- Выбираем функцию тщьштфну
(colator,amount)
- Выбираем коллатора
- Указываем collator_nominator_count (32)
- Количество nomination_count (32)
- “Submit Transaction”
Если хотите заделегерировать мне:
Мой валидатор: https://moonbase.subscan.io/validator/0xa3D563203b7a46a545E5e1C812B54405DcD62680
Discord Moonbeam:
Подать заявку на приглашение в коллаторы: