Официальные документы по установке и настройке ноды https://docs.bitsong.io/blockchain/install-go-bitsong
!! Перед тем как начать установку узла необходимо подготовить систему
- Копируем репозиторий
git clone https://github.com/bitsongofficial/go-bitsong
- Проверяем, что появилась папка go-bitsong
ll
- Переходим в эту папку
cd go-bitsong
- Установливаем v0.15.0
git checkout v0.15.0
- Собираем бинарник
make install
- Проверяем версию
bitsongd version
-
Инициализируем узел
bitsongd init <YOUR_MONIKER> --chain-id bitsong-2b
-
Скачиваем Genesis файл
wget -O ~/.bitsongd/config/genesis.json https://raw.githubusercontent.com/bitsongofficial/networks/master/bitsong-2b/genesis.json
-
Проверяем состояние валидатора на начальном этапе
cd && cat .archway/data/priv_validator_state.json
вывод { "height": "0", "round": 0, "step": 0 }
#если нет, то выполняем команду
bitsongd unsafe-reset-all
-
Правим конфиг ~/.bitsongd/config/client.toml
bitsongd config chain-id bitsong-2b
-
Настраиваем минимальную цену за газ
nano .bitsongd/config/app.toml
minimum-gas-prices = "0.0025ubtsg"
-
Добавляем сиды и пиры. Я беру актуальные на Polkachu
-
Устанавливаем Cosmovisor
go install github.com/cosmos/cosmos-sdk/cosmovisor/cmd/[email protected]
-
Настраиваем Cosmovisor
mkdir -p ~/.bitsongd/cosmovisor/genesis/bin
mkdir -p ~/.bitsongd/cosmovisor/upgrades
cp ~/go/bin/bitsongd ~/.bitsongd/cosmovisor/genesis/bin
-
Создаем системный файл для работы узла в фоновом процессе с автоматическим перезапуском
sudo tee /etc/systemd/system/bitsongd.service > /dev/null <<EOF [Unit] Description="bitsong node" After=network-online.target [Service] User=USER ExecStart=/home/USER/go/bin/cosmovisor start Restart=always RestartSec=3 LimitNOFILE=4096 Environment="DAEMON_NAME=bitsongd" Environment="DAEMON_HOME=/home/USER/.bitsongd" Environment="DAEMON_ALLOW_DOWNLOAD_BINARIES=false" Environment="DAEMON_RESTART_AFTER_UPGRADE=true" Environment="UNSAFE_SKIP_BACKUP=true" [Install] WantedBy=multi-user.target EOF
Иногда нужно прописывать с run
ExecStart=/home/USER/go/bin/cosmovisor start
-
Настраиваем демон
sudo -S systemctl daemon-reload sudo -S systemctl enable bitsongd
-
Запускаем процесс и подтверждаем, что он запущен
sudo -S systemctl start bitsongd sudo service bitsongd status
-
Синхронизируем узел с текущим состоянием блокчейна
sudo systemctl stop bitsongd SNAP_RPC="https://rpc.bitsong.forbole.com:443" SNAP_RPC2="https://bitsong.stakesystems.io:2053" 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) peers="[email protected]:26656,[email protected]:26656,[email protected]:16656,[email protected]:26656,[email protected]:31656,[email protected]:26656,[email protected]:26656,[email protected]:31656,[email protected]:26656,[email protected]:26656,[email protected]:26656,[email protected]:31656" sed -i.bak -e "s/^persistent_peers *=.*/persistent_peers = \"$peers\"/" $HOME/.bitsongd/config/config.toml sed -i.bak -E "s|^(enable[[:space:]]+=[[:space:]]+).*$|\1true| ; \ s|^(rpc_servers[[:space:]]+=[[:space:]]+).*$|\1\"$SNAP_RPC,$SNAP_RPC2\"| ; \ s|^(trust_height[[:space:]]+=[[:space:]]+).*$|\1$BLOCK_HEIGHT| ; \ s|^(trust_hash[[:space:]]+=[[:space:]]+).*$|\1\"$TRUST_HASH\"|" $HOME/.bitsongd/config/config.toml cp $HOME/.bitsongd/data/priv_validator_state.json $HOME/.bitsongd/priv_validator_state.json.backup bitsongd tendermint unsafe-reset-all --keep-addr-book --home "$HOME/.bitsongd" mv $HOME/.bitsongd/priv_validator_state.json.backup $HOME/.bitsongd/data/priv_validator_state.json sudo systemctl start bitsongd sudo journalctl -u bitsongd -f
-
Проверяем высоту сети
bitsongd status 2>&1 | jq ."SyncInfo"."latest_block_height"
soon...