October 7
0g Labs
CPU: 8 ядeр Оперативная память: 32 ГБ SSD: 500 ГБ Пропускная способность интернета: 500 Mbps
Подготавливаем сервер:
sudo apt-get update sudo apt-get install clang cmake build-essential pkg-config libssl-dev
Устанавливаем rustup:
curl --proto '=https' --tlsv1.2 -sSf https://sh.rustup.rs | sh
Если выскакивает выбор, то вписываем 1 и enter.
Устанавливаем Go:
# Download the Go installer wget https://go.dev/dl/go1.23.0.linux-amd64.tar.gz # Extract the archive sudo rm -rf /usr/local/go && sudo tar -C /usr/local -xzf go1.23.0.linux-amd64.tar.gz # Add /usr/local/go/bin to the PATH environment variable by adding the following line to your ~/.profile. export PATH=$PATH:/usr/local/go/bin
Устанавливаем ноду:
git clone -b v0.5.3 https://github.com/0glabs/0g-storage-node.git
Билдим нашу ноду:
cd 0g-storage-node cargo build --release
Настраиваем конфиг:
rm -rf $HOME/0g-storage-node/run/config.toml curl -o $HOME/0g-storage-node/run/config.toml https://raw.githubusercontent.com/z8000kr/0g-storage-node/main/run/config.toml sed -i 's|^network_boot_nodes = .*|network_boot_nodes = ["/ip4/54.219.26.22/udp/1234/p2p/16Uiu2HAmTVDGNhkHD98zDnJxQWu3i1FL1aFYeh9wiQTNu4pDCgps","/ip4/52.52.127.117/udp/1234/p2p/16Uiu2HAkzRjxK2gorngB1Xq84qDrT4hSVznYDHj6BkbaE4SGx9oS","/ip4/121.43.181.26/udp/1234/p2p/16Uiu2HAm2k6ua2mGgvZ8rTMV8GhpW71aVzkQWy7D37TTDuLCpgmX"]|g' ~/0g-storage-node/run/config.toml nano $HOME/0g-storage-node/run/config.toml
Вписываем свой приватный ключ:
miner_key = "приватный ключ от кошелька"
Сохраняем все содержимое кнопкамиCntr + X, Y, Enter
Запрашиваем тестовые токены.
Создаем сервисный файл (указываем команду целиком):
sudo tee /etc/systemd/system/zgs.service > /dev/null <<EOF [Unit] Description=ZGS Node After=network.target [Service] User=$USER WorkingDirectory=$HOME/0g-storage-node/run ExecStart=$HOME/0g-storage-node/target/release/zgs_node --config $HOME/0g-storage-node/run/config.toml Restart=on-failure RestartSec=10 LimitNOFILE=65535 [Install] WantedBy=multi-user.target EOF
Запускаем ноду:
sudo systemctl daemon-reload && sudo systemctl enable zgs && sudo systemctl start zgs
Установка snapshot
Останавливаем ноду:
sudo systemctl stop zgs
Устанавливаем snapshot:
curl https://server-5.itrocket.net/testnet/og/og_2024-10-27_1669307_snap.tar.lz4 | lz4 -dc - | tar -xf - -C $HOME/.0gchain
Перемещаем файл:
mv $HOME/.0gchain/priv_validator_state.json.backup $HOME/.0gchain/data/priv_validator_state.json
Запускаем ноду:
sudo systemctl restart zgs && sudo journalctl -u 0gchaind -f
Проверяем блоки (вставлять команду целиком):
while true; do response=$(curl -s -X POST http://localhost:5678 -H "Content-Type: application/json" -d '{"jsonrpc":"2.0","method":"zgs_getStatus","params":[],"id":1}') logSyncHeight=$(echo $response | jq '.result.logSyncHeight') connectedPeers=$(echo $response | jq '.result.connectedPeers') echo -e "logSyncHeight: \033[32m$logSyncHeight\033[0m, connectedPeers: \033[34m$connectedPeers\033[0m" sleep 5; done
Удаление ноды:
sudo systemctl stop zgs sudo systemctl disable zgs sudo rm /etc/systemd/system/zgs.service rm -rf $HOME/0g-storage-node