# Guide to Setting Up a 0g Validator Node **Published by:** [Carbon-12](https://paragraph.com/@carbon-12/) **Published on:** 2024-07-09 **URL:** https://paragraph.com/@carbon-12/guide-to-setting-up-a-0g-validator-node ## Content Follow UsX | Notion | Mirror | Linktr | Discord This guide will help you set up a 0g validator node based on the documentation available. Step 1: Hardware RequirementsMemory: 64 GBCPU: 8 coresDisk: 1 TB NVME SSDBandwidth: 100 MBps for Download/UploadStep 2: Set Server Timezone to UTCStep 3: Install 0gchaindgit clone -b v0.2.3 https://github.com/0glabs/0g-chain.git ./0g-chain/networks/testnet/install.sh source ~/.profile Step 4: Set Chain ID0gchaind config chain-id zgtendermint_16600-2 Step 5: Initialize Node0gchaind init <your_validator_name> --chain-id zgtendermint_16600-2 Step 6: Copy Genesis Filesudo apt install -y unzip wget rm ~/.0gchain/config/genesis.json wget -P ~/.0gchain/config https://github.com/0glabs/0g-chain/releases/download/v0.2.3/genesis.json 0gchaind validate-genesis Step 7: Add Seed NodesEdit $HOME/.0gchain/config/config.toml and add the following seeds:seeds = "81987895a11f6689ada254c6b57932ab7ed909b6@54.241.167.190:26656,010fb4de28667725a4fef26cdc7f9452cc34b16d@54.176.175.48:26656,e9b4bc203197b62cc7e6a80a64742e752f4210d5@54.193.250.204:26656,68b9145889e7576b652ca68d985826abd46ad660@18.166.164.232:26656" Step 8: Start Node0gchaind start Step 9: Optimize Garbage Collectionexport GOGC=900 export GOMEMLIMIT=40GB 0gchaind start Step 10: Create Validator0gchaind keys add <key_name> --eth 0gchaind keys unsafe-export-eth-key <key_name> 0gchaind tx staking create-validator \ --amount=<staking_amount>ua0gi \ --pubkey=$(0gchaind tendermint show-validator) \ --moniker="<your_validator_name>" \ --chain-id=zgtendermint_16600-2 \ --commission-rate="0.10" \ --commission-max-rate="0.20" \ --commission-max-change-rate="0.01" \ --min-self-delegation="1" \ --from=<key_name> \ --gas=auto \ --gas-adjustment=1.4 0gchaind q staking validators -o json --limit=1000 | jq '.validators[] | select(.status=="BOND_STATUS_BONDED")' | jq -r '.tokens + " - " + .description.moniker' | sort -gr | nl Step 11: Unjail Validator (if necessary)0gchaind tx slashing unjail --from <key_name> --gas=500000 --gas-prices=99999neuron -y Step 12: Upgrade Node (if needed)Reset data if upgrading to a breaking version: Restart the node:rm $HOME/.0gchain/config/addrbook.json $HOME/.0gchain/config/genesis.json 0gchaind tendermint unsafe-reset-all --home $HOME/.0gchain Step 13: Migrate Node (if necessary)Recover wallet account on the new server:0gchaind start Transfer the following files to the new server:$HOME/xx.address$HOME/xx.info$HOME/keyhash$HOME/config/priv_validator_key.jsonEnsure the node is synced to the latest block height before migration. For detailed information and updates, refer to the official 0g documentation. ## Publication Information - [Carbon-12](https://paragraph.com/@carbon-12/): Publication homepage - [All Posts](https://paragraph.com/@carbon-12/): More posts from this publication - [RSS Feed](https://api.paragraph.com/blogs/rss/@carbon-12): Subscribe to updates - [Twitter](https://twitter.com/Carbon12nodes): Follow on Twitter