# GUIDE 0G LABS RUNNIG NODE **Published by:** [Quitlantarah](https://paragraph.com/@quitlantarah/) **Published on:** 2024-07-10 **URL:** https://paragraph.com/@quitlantarah/guide-0g-labs-runnig-node ## Content InstallationValidator Node This document outlines the steps to deploy your own validator node.Step 1: Install required packagessudo apt update && \ sudo apt install curl git jq build-essential gcc unzip wget lz4 -y Step 2: Install Gocd $HOME && \ ver="1.22.0" && \ 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" && \ echo "export PATH=\$PATH:/usr/local/go/bin:\$HOME/go/bin" >> ~/.bash_profile && \ source ~/.bash_profile && \ go version Step 3: Build 0gchaind binarygit clone -b v0.1.0 https://github.com/0glabs/0g-chain.git cd 0g-chain make install 0gchaind version Step 4: Set up variablesecho 'export MONIKER=""' >> ~/.bash_profile echo 'export CHAIN_ID="zgtendermint_16600-1"' >> ~/.bash_profile echo 'export WALLET_NAME="wallet"' >> ~/.bash_profile echo 'export RPC_PORT="36657"' >> ~/.bash_profile source $HOME/.bash_profile Step 5: Initialize the nodecd $HOME 0gchaind init $MONIKER --chain-id $CHAIN_ID 0gchaind config chain-id $CHAIN_ID 0gchaind config node tcp://localhost:$RPC_PORT 0gchaind config keyring-backend os Step 6: Download genesis.jsonwget https://github.com/0glabs/0g-chain/releases/download/v0.1.0/genesis.json -O $HOME/.0gchain/config/genesis.json Step 7: Add seeds and peers to the config.tomlSEEDS="c4d619f6088cb0b24b4ab43a0510bf9251ab5d7f@54.241.167.190:26656,44d11d4ba92a01b520923f51632d2450984d5886@54.176.175.48:26656,f2693dd86766b5bf8fd6ab87e2e970d564d20aff@54.193.250.204:26656,f878d40c538c8c23653a5b70f615f8dccec6fb9f@54.215.187.94:26656" sed -i.bak -e "s/^seeds *=.*/seeds = \"${SEEDS}\"/" $HOME/.0gchain/config/config.toml Step 8: Change portsEXTERNAL_IP=$(wget -qO- eth0.me) PROXY_APP_PORT=36657 P2P_PORT=36656 PPROF_PORT=6062 API_PORT=1319 GRPC_PORT=9092 GRPC_WEB_PORT=9093 sed -i \ -e "s/\(proxy_app = \"tcp:\/\/\)\([^:]*\):\([0-9]*\).*/\1\2:$PROXY_APP_PORT\"/" \ -e "s/\(laddr = \"tcp:\/\/\)\([^:]*\):\([0-9]*\).*/\1\2:$RPC_PORT\"/" \ -e "s/\(pprof_laddr = \"\)\([^:]*\):\([0-9]*\).*/\1localhost:$PPROF_PORT\"/" \ -e "/\[p2p\]/,/^\[/{s/\(laddr = \"tcp:\/\/\)\([^:]*\):\([0-9]*\).*/\1\2:$P2P_PORT\"/}" \ -e "/\[p2p\]/,/^\[/{s/\(external_address = \"\)\([^:]*\):\([0-9]*\).*/\1${EXTERNAL_IP}:$P2P_PORT\"/; t; s/\(external_address = \"\).*/\1${EXTERNAL_IP}:$P2P_PORT\"/}" \ $HOME/.0gchain/config/config.toml sed -i \ -e "/\[api\]/,/^\[/{s/\(address = \"tcp:\/\/\)\([^:]*\):\([0-9]*\)\(\".*\)/\1\2:$API_PORT\4/}" \ -e "/\[grpc\]/,/^\[/{s/\(address = \"\)\([^:]*\):\([0-9]*\)\(\".*\)/\1\2:$GRPC_PORT\4/}" \ -e "/\[grpc-web\]/,/^\[/{s/\(address = \"\)\([^:]*\):\([0-9]*\)\(\".*\)/\1\2:$GRPC_WEB_PORT\4/}" \ $HOME/.0gchain/config/app.toml Step 9: Configure pruning to save storage (Optional)sed -i \ -e "s/^pruning *=.*/pruning = \"custom\"/" \ -e "s/^pruning-keep-recent *=.*/pruning-keep-recent = \"100\"/" \ -e "s/^pruning-interval *=.*/pruning-interval = \"10\"/" \ "$HOME/.0gchain/config/app.toml" Step 10: Set min gas pricesed -i "s/^minimum-gas-prices *=.*/minimum-gas-prices = \"0ua0gi\"/" $HOME/.0gchain/config/app.toml Step 11: Enable indexer (Optional)sed -i "s/^indexer *=.*/indexer = \"kv\"/" $HOME/.0gchain/config/config.toml Step 12: Create a service filesudo tee /etc/systemd/system/0gd.service > /dev/null <<EOF [Unit] Description=0G Node After=network.target [Service] User=root Type=simple ExecStart=$(which 0gchaind) start --home $HOME/.0gchain Restart=on-failure LimitNOFILE=65535 [Install] WantedBy=multi-user.target EOF Step 13: Start the nodesudo systemctl daemon-reload && \ sudo systemctl enable 0gd && \ sudo systemctl restart 0gd && \ sudo journalctl -u 0gd -f -o cat Step 14: Create Validator0gchaind tx staking create-validator \ --amount=1000000ua0gi \ --pubkey=$(0gchaind tendermint show-validator) \ --moniker="your_moniker" \ --identity="keybas" \ --chain-id=zgtendermint_16600-1 \ --commission-rate="0.10" \ --commission-max-rate="0.20" \ --commission-max-change-rate="0.01" \ --details="the validator" \ --min-self-delegation="1" \ --from=<address> \ --gas=auto \ --gas-adjustment=1.4 Step 15: Delegate0gchaind tx staking delegate \ $(0gchaind keys show (your_address) --bech val -a) \ x000000ua0gi \ --from (your_address) \ --chain-id zgtendermint_16600-1 \ --gas=auto \ --gas-adjustment=1.4 https://x.com/Quitlantarah https://mirror.xyz/0x053d1ec37b27325f0ACCbC577de2189da98b9750 https://linktr.ee/Quitlantarah https://discordapp.com/users/846845744631119914/ ## Publication Information - [Quitlantarah](https://paragraph.com/@quitlantarah/): Publication homepage - [All Posts](https://paragraph.com/@quitlantarah/): More posts from this publication - [RSS Feed](https://api.paragraph.com/blogs/rss/@quitlantarah): Subscribe to updates - [Twitter](https://twitter.com/Quitlantarah): Follow on Twitter