January 30

Гайд REPUBLIC AI. Установка ноды и создание валидатора.

📋 Требования:

от 4 CPU 16 RAM и 100GB свободного места.
Берем сервер в 760р в месяц.

При регистрации у хостера Play2Go вы получаете +10% к сумме первого пополнения. А так же используйте промокод SNGDAO - он даст +5% на повторное пополнение счета🔥

Используемые нодой порты: 26656

🧩Подготовка

1️⃣Читаем пост в ТГ и регистрируемся.

2️⃣ Обновляем пакеты, если сервер новый или давно не обновляли

sudo apt-get update && sudo apt-get upgrade -y

3️⃣Ставим необходимое

sudo apt install curl git jq lz4 -y

4️⃣ Ставим Docker

sudo apt install -y docker.io curl jq
sudo systemctl enable docker
sudo systemctl start docker

🚀 Установка

1️⃣ Качаем образ

docker pull ghcr.io/republicai/republicd:0.1.0

2️⃣ Инициализация данных и получение генезиса, копируем команду целиком

REPUBLIC_HOME="$HOME/.republicd"
mkdir -p "$REPUBLIC_HOME"

# Initialize (runs as root to create files)
docker run --rm \
  --user 0:0 \
  -v "$REPUBLIC_HOME:/home/republic/.republicd" \
  ghcr.io/republicai/republicd:0.1.0 \
  init my-node --chain-id raitestnet_77701-1 --home /home/republic/.republicd

# Download genesis
sudo curl -s https://raw.githubusercontent.com/RepublicAI/networks/main/testnet/genesis.json -o "$REPUBLIC_HOME/config/genesis.json"

3️⃣ Настраиваем синхронизацию, копируем команду целиком

SNAP_RPC="https://statesync.republicai.io"
LATEST_HEIGHT=$(curl -s $SNAP_RPC/block | jq -r .result.block.header.height)
BLOCK_HEIGHT=$((LATEST_HEIGHT - 1000))
TRUST_HASH=$(curl -s "$SNAP_RPC/block?height=$BLOCK_HEIGHT" | jq -r .result.block_id.hash)

sudo sed -i.bak -E "s|^(enable[[:space:]]+=[[:space:]]+).*$|\1true| ; \
s|^(rpc_servers[[:space:]]+=[[:space:]]+).*$|\1\"$SNAP_RPC,$SNAP_RPC\"| ; \
s|^(trust_height[[:space:]]+=[[:space:]]+).*$|\1$BLOCK_HEIGHT| ; \
s|^(trust_hash[[:space:]]+=[[:space:]]+).*$|\1\"$TRUST_HASH\"|" "$REPUBLIC_HOME/config/config.toml"

PEERS="e281dc6e4ebf5e32fb7e6c4a111c06f02a1d4d62@3.92.139.74:26656,cfb2cb90a241f7e1c076a43954f0ee6d42794d04@54.173.6.183:26656,dc254b98cebd6383ed8cf2e766557e3d240100a9@54.227.57.160:26656"
sudo sed -i.bak -e "s/^persistent_peers *=.*/persistent_peers = \"$PEERS\"/" "$REPUBLIC_HOME/config/config.toml"

# Fix ownership to match container user (UID 1001)
sudo chown -R 1001:1001 "$REPUBLIC_HOME"

4️⃣ Запускаем ноду

docker run -d --name republicd \
  --network host \
  -v "$REPUBLIC_HOME:/home/republic/.republicd" \
  ghcr.io/republicai/republicd:0.1.0 \
  start --home /home/republic/.republicd --chain-id raitestnet_77701-1

5️⃣Через пару минут проверяем синхронизацию

docker exec -it republicd republicd status | jq '.sync_info'

Должно быть, что-то похоже на это с "catching_up": false в конце

🤖Создание кошелька и валидатора

1️⃣ После того как нода синхронизировалась, создаем кошелек валидатора (имя кошелька validator)

docker exec -it republicd republicd keys add validator \
  --home /home/republic/.republicd

! Придумываем пароль(он будет использоваться для подтверждения операций), сохраняем в надежном месте адрес кошелька и мнемоник фразу и ваш придуманный пароль.

Для запуска валидатора нам нужно 1 RAI токенов. Идем в дискорд скидываем скрин логово синхронизации, как в примере выше и просим отправить на адрес валадитора, который мы сейчас создали 1 токенов. Запрашиваем в разделе protocol-talk или в help-forum

Ваш адрес валидатора можно в любое время узнать командой:

docker exec -it republicd republicd keys show validator -a \
  --home /home/republic/.republicd

2️⃣Добавляем валидатора

PUBKEY=$(docker exec -it republicd republicd comet show-validator \
  --home /home/republic/.republicd | tr -d '\r')

В команде ниже заменяем "YOUR_MONIKER" на ваше любое имя(Будет показываться в списке валидаторов) и выполняем команду

cat > validator.json <<EOF
{
  "pubkey": $PUBKEY,
  "amount": "1000000000000000000arai",
  "moniker": "YOUR_MONIKER",
  "identity": "",
  "website": "",
  "details": "Republic AI Validator",
  "commission-rate": "0.10",
  "commission-max-rate": "0.20",
  "commission-max-change-rate": "0.01",
  "min-self-delegation": "1"
}
EOF

3️⃣ Копируем настройки в контейнер

docker cp validator.json republicd:/tmp/validator.json

4️⃣Запускаем команду создания валидатора

docker exec -it republicd republicd tx staking create-validator /tmp/validator.json \
  --home /home/republic/.republicd \
  --chain-id raitestnet_77701-1 \
  --gas auto \
  --gas-adjustment 1.5 \
  --gas-prices 1000000000arai \
  --from validator \
  -y


Валидатор создан. Вы можете увидеть его в списке валидаторов введя в поиск своя имя, которое указывали в moniker, так же вы там сможете увидить свой адрес оператора (Operator Address)

У валидатора так же есть статус Active или Innactive. Сейчас чтобы стать активным, нужно, чтобы ему было делегировано 12+ токенов RAI


теперь можете добавить его на сайте.

🛠 Команды валидатора

🔹 Посмотреть логи

docker logs -f republicd

🔹 Посмотреть статус ноды

docker exec -it republicd republicd status | jq '.sync_info'

🔹 Посмотреть последний блок

docker exec -it republicd republicd status | jq -r .sync_info.latest_block_height

🔹 Делегировать себе токены (в примере сумма 10 rai)

docker exec -it republicd republicd tx staking delegate \
Ваш_адрес_ОПЕРАТОРА \
10000000000000000000arai \
--from  validator \
--home /home/republic/.republicd \
--chain-id raitestnet_77701-1 \
--gas auto --gas-adjustment 1.5 \
--gas-prices 1000000000arai

🔹 Забрать награду

docker exec -it republicd republicd tx distribution withdraw-rewards \
  Ваш_адрес_ОПЕРАТОРА \
  --from validator \
  --commission \
  --home /home/republic/.republicd \
  --chain-id raitestnet_77701-1 \
  --gas auto --gas-adjustment 1.5 \
  --gas-prices 1000000000arai \
  -y

🔹 Команда если статус Jailed:

docker exec -it republicd republicd tx slashing unjail \
  --home /home/republic/.republicd \
  --from validator \
  --chain-id raitestnet_77701-1 \
  --gas auto \
  --gas-adjustment 1.5 \
  --gas-prices 3500000000arai \
  -y

🔄Управления нодой

▶️ Перезапустить ноду

docker restart republicd

⏹ Остановить ноду

docker stop republicd

🗑 Удалить файлы ноды

docker rm -f republicd

☠️Удалить полностью ноду с сервера

docker rm -f republicd
rm -rf ~/.republicd

Не забываем подписаться на ТГ канал SNG DAO, чтобы ничего не пропустить!