Update server:
sudo apt update
sudo apt install curl git jq build-essential gcc unzip wget lz4 -y
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" && \\
echo "export PATH=$PATH:/usr/local/go/bin:$HOME/go/bin" >> $HOME/.bash_profile && \\
source $HOME/.bash_profile && \\
go version
Install evmosd binary:
git clone -b v0.1.0 <https://github.com/0glabs/0g-chain.git>
./0g-chain/networks/testnet/install.sh
source .profile
Set variables (you can personalize them):
echo 'export MONIKER="type_your_moniker_nodebrand"' >> ~/.bash_profile
echo 'export CHAIN_ID="zgtendermint_16600-1"' >> ~/.bash_profile
echo 'export WALLET_NAME="wallet"' >> ~/.bash_profile
echo 'export RPC_PORT="26657"' >> ~/.bash_profile
source $HOME/.bash_profile
Initialize the node:
cd $HOME
0gchaind config chain-id $CHAIN_ID
0gchaind init $MONIKER --chain-id $CHAIN_ID
0gchaind config node tcp://localhost:$RPC_PORT
0gchaind config keyring-backend os
Install current release:
wget -P ~/.0gchain/config <https://github.com/0glabs/0g-chain/releases/download/v0.1.0/genesis.json>
Configure config.toml file**:**
PEERS="" && \\
SEEDS="[email protected]:26656,[email protected]:26656,[email protected]:26656,[email protected]:26656" && \\
sed -i -e "s/^seeds *=.*/seeds = \\"$SEEDS\\"/; s/^persistent_peers *=.*/persistent_peers = \\"$PEERS\\"/" $HOME/.0gchain/config/config.toml
Set the config:
EXTERNAL_IP=$(wget -qO- eth0.me) \\
PROXY_APP_PORT=26658 \\
P2P_PORT=26656 \\
PPROF_PORT=6060 \\
API_PORT=1317 \\
GRPC_PORT=9090 \\
GRPC_WEB_PORT=9091
Set the port pruning and price:
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
sed -i.bak -e "s/^pruning *=.*/pruning = \\"custom\\"/" $HOME/.0gchain/config/app.toml
sed -i.bak -e "s/^pruning-keep-recent *=.*/pruning-keep-recent = \\"100\\"/" $HOME/.0gchain/config/app.toml
sed -i.bak -e "s/^pruning-interval *=.*/pruning-interval = \\"10\\"/" $HOME/.0gchain/config/app.toml