✔️0g lab
Install go
cd $HOME
VER="1.21.3"
wget "https://golang.org/dl/go$VER.linux-amd64.tar.gz"
sudo rm -rf /usr/local/go
sudo tar -C /usr/local -xzf "go$VER.linux-amd64.tar.gz"
rm "go$VER.linux-amd64.tar.gz"
[ ! -f ~/.bash_profile ] && touch /.bash_profile
echo "export PATH=$PATH:/usr/local/go/bin:/go/bin" >> ~/.bash_profile
source $HOME/.bash_profile [ ! -d ~/go/bin ] && mkdir -p ~/go/bin
set vars
echo "export WALLET="wallet"" >> $HOME/.bash_profile
echo "export MONIKER="test"" >> $HOME/.bash_profile
echo "export OG_CHAIN_ID="zgtendermint_16600-2"" >> $HOME/.bash_profile
echo "export OG_PORT="47"" >> $HOME/.bash_profile
source $HOME/.bash_profile
download binary
cd $HOME rm -rf 0g-chain git clone -b v0.2.3 https://github.com/0glabs/0g-chain.git cd 0g-chain make install
config and init app
0gchaind config node tcp://localhost:${OG_PORT}657 0gchaind config keyring-backend os 0gchaind config chain-id zgtendermint_16600-2 0gchaind init "test" --chain-id zgtendermint_16600-2
download genesis and addrbook
wget -O $HOME/.0gchain/config/genesis.json https://testnet-files.itrocket.net/og/genesis.json wget -O $HOME/.0gchain/config/addrbook.json https://testnet-files.itrocket.net/og/addrbook.json
set seeds and peers
SEEDS="8f21742ea5487da6e0697ba7d7b36961d3599567@og-testnet-seed.itrocket.net:47656" PEERS="c76473c97fa718d1c4c48910c17318883300a36b@og-testnet-peer.itrocket.net:11656,6d3926c8f7fef9105f65d25e67288dfe0dd1b23d@167.86.98.228:12656,a1dbb763c3fcbf60a52f7667a584d4c5bbddc421@91.227.33.18:14656,bc3c0bef386bcc0348830e8448111f4cfe277d31@84.46.253.97:12656,a4a2b989b7aaad0b263bb9f36511b959c2b71266@65.21.102.153:26656,e4188ec24cb8636e1bcd0afb96d6f149878ec256@149.50.112.37:12656,90490155eb1e28a00cb9000657ef53cf9822e9e2@185.245.182.248:12656,91062cd851866fc3e027966184a240649c9fb87d@46.250.237.236:56656,85f1a5c5e62bbe59d9764453bf4624dc261a53f7@38.242.237.56:12656,881b2297ac90fdf6803136101c1b33eeb52a0bcc@213.199.37.74:12656,7e49c7c5d8cf1a4f79d3a2c4a2c3597d144e638e@156.67.81.135:12656,1754dac0846c42ebe21fe1935eda0311d567d6a9@45.14.194.144:12656,314993bcb6d20841708fc10c6cabc09fcd98893f@89.116.31.3:12656,2de20431412255201b960a0713c3a3f6fdbeb7e7@173.249.19.219:12656,6ea4a3942152a33a50c54cc60aa311fd43cc71d7@144.91.93.99:12656,430b61d17e76c4b5ebdab8487efc28c4c869843f@89.117.53.249:12656,36a02574f529d621fe60e500d92a0e651a5b9d0b@155.133.22.157:12656,5b3202f4ee36451778646317ae569df1513fdbb2@38.242.230.75:12656,9cd3e3fcb03d13834d8769d05d0f0e1bd56e10a4@158.220.107.157:12656,055e3e65fd72102f389372564e0107e3ee5022fa@167.86.95.218:12656,85eec3750270e50ea73c46b1caa72e7110fa7b1b@156.67.81.129:12656" sed -i -e "s/^seeds =./seeds = "$SEEDS"/; s/^persistent_peers =./persistent_peers = "$PEERS"/" $HOME/.0gchain/config/config.toml
set custom ports in app.toml
sed -i.bak -e "s%:1317%:${OG_PORT}317%g; s%:8080%:${OG_PORT}080%g; s%:9090%:${OG_PORT}090%g; s%:9091%:${OG_PORT}091%g; s%:8545%:${OG_PORT}545%g; s%:8546%:${OG_PORT}546%g; s%:6065%:${OG_PORT}065%g" $HOME/.0gchain/config/app.toml
set custom ports in config.toml file
sed -i.bak -e "s%:26658%:${OG_PORT}658%g; s%:26657%:${OG_PORT}657%g; s%:6060%:${OG_PORT}060%g; s%:26656%:${OG_PORT}656%g; s%^external_address = ""%external_address = "$(wget -qO- eth0.me):${OG_PORT}656"%; s%:26660%:${OG_PORT}660%g" $HOME/.0gchain/config/config.toml
config pruning
sed -i -e "s/^pruning =./pruning = "custom"/" $HOME/.0gchain/config/app.toml sed -i -e "s/^pruning-keep-recent =./pruning-keep-recent = "100"/" $HOME/.0gchain/config/app.toml sed -i -e "s/^pruning-interval =./pruning-interval = "50"/" $HOME/.0gchain/config/app.toml
set minimum gas price, enable prometheus and disable indexing
sed -i 's|minimum-gas-prices =.*|minimum-gas-prices = "0ua0gi"|g' $HOME/.0gchain/config/app.toml sed -i -e "s/prometheus = false/prometheus = true/" $HOME/.0gchain/config/config.toml sed -i -e "s/^indexer =./indexer = "null"/" $HOME/.0gchain/config/config.toml
create service file
sudo tee /etc/systemd/system/0gchaind.service > /dev/null <<EOF [Unit] Description=0G node After=network-online.target [Service] User=$USER WorkingDirectory=$HOME/.0gchain ExecStart=$(which 0gchaind) start --home $HOME/.0gchain Restart=on-failure RestartSec=5 LimitNOFILE=65535 [Install] WantedBy=multi-user.target EOF
reset and download snapshot
0gchaind tendermint unsafe-reset-all --home $HOME/.0gchain if curl -s --head curl https://testnet-files.itrocket.net/og/snap_og.tar.lz4 | head -n 1 | grep "200" > /dev/null; then curl https://testnet-files.itrocket.net/og/snap_og.tar.lz4 | lz4 -dc - | tar -xf - -C $HOME/.0gchain else echo no have snap fi
enable and start service
sudo systemctl daemon-reload sudo systemctl enable 0gchaind sudo systemctl restart 0gchaind && sudo journalctl -u 0gchaind -f
Last updated