π Node installation
Update packages
sudo apt update && sudo apt upgrade -yInstall dependencies
sudo apt install curl tar wget clang pkg-config libssl-dev libleveldb-dev jq build-essential bsdmainutils git make ncdu htop screen unzip bc lz4 gcc -yInstall Go
cd $HOME && \
ver="1.21.4" && \
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 versionThe output should be: go version go1.21.4 linux/amd64
Download binary for work
git clone https://github.com/shentufoundation/shentu
cd shentud
git checkout v2.18.0
make installSpecify variables, for ease of work
echo 'export shentu_moniker="Validator_name"' >> $HOME/.profile
echo 'export shentu_wallet="Wallet_name"' >> $HOME/.profile
echo 'export shentu_port="111"' >> $HOME/.profile
source $HOME/.profileInitialize the node
shentud init $shentu_moniker --chain-id shentu-2.2Set the settings
shentud config chain-id shentu-2.2 && \
peers=9bb87ff793b464cc1c1d28f07442fb1c1cf82b0b@142.132.146.164:15607,486df17d82506d6445879060f7d2a5d8ffc5d819@138.201.53.99:26656,0501d3c446ddae9a2412a3da6fc699bc99404a8f@144.217.252.56:26656,cde6a6e04537a5e61ebf4201e703e0288b89e2ff@49.12.86.120:26716,f3a96e3b31261cee34b32a7244d374e458a2d213@94.130.115.190:26656,ecbb18ee93e2aa521706479772ee85cedb2b55cb@49.12.170.121:30022,f027517455d3f7c105f405365609e4355ca41660@136.243.13.186:3000,37d26ed4d655c3bd0d29987e501b969d8d3fac61@195.201.172.9:15607,a8cd59ec2777e95d5b25278fd46f5069b2f8c25a@5.9.97.174:15607,e3f35c5abe22423f654c5e1b33318fbee7503cb3@149.202.64.145:27656 && \
sed -i.bak -e "s/^persistent_peers *=.*/persistent_peers = \"$peers\"/" $HOME/.shentud/config/config.toml && \
seeds="6b0ffcce9b59b91ceb8eea5d4599e27707e3604a@seeds.stakeup.tech:10217" && \
sed -i.bak -e "s/^seeds =.*/seeds = \"$seeds\"/" $HOME/.shentud/config/config.tomlCreate wallet
shentud keys add $shentu_walletSave the wallet. Or restore if there is a mnemonic:
shentud keys add $shentu_wallet --recoverDownload Genesis
wget -O genesis.json "https://snapshots.stakeup.tech/shentu/genesis.json" --inet4-only
mv genesis.json ~/.shentud/configOptional Settings
Memory optimization
cd $HOME/.shentud/config && \
indexer="null" && \
snapshot_interval="0" && \
pruning="custom" && \
pruning_keep_recent="1000" && \
pruning_interval="50" && \
sed -i.bak -e "s/^indexer *=.*/indexer = \"$indexer\"/" config.toml && \
sed -i.bak -e "s/^snapshot-interval *=.*/snapshot-interval = \"$snapshot_interval\"/" app.toml && \
sed -i.bak -e "s/^pruning *=.*/pruning = \"$pruning\"/" app.toml && \
sed -i.bak -e "s/^pruning-keep-recent *=.*/pruning-keep-recent = \"$pruning_keep_recent\"/" app.toml && \
sed -i.bak -e "s/^pruning-interval *=.*/pruning-interval = \"$pruning_interval\"/" app.tomlChange port
cd $HOME/.shentud/config && \
sed -i.bak \
-e "s/:\s*26656/:${shentu_port}56/g" \
-e "s/:\s*26657/:${shentu_port}57/g" \
-e "s/:\s*26658/:${shentu_port}58/g" \
-e "s/:\s*26660/:${shentu_port}59/g" \
-e "s/:\s*6060/:${shentu_port}61/g" \
config.toml
sed -i.bak \
-e "s/:\s*1317/:${shentu_port}17/g" \
-e "s/:\s*8080/:${shentu_port}80/g" \
-e "s/:\s*9090/:${shentu_port}90/g" \
-e "s/:\s*9091/:${shentu_port}91/g" \
app.toml && \
echo 'export shentu_node=http://localhost:${shentu_port}57' >> $HOME/.bash_profile && \
source $HOME/.bash_profile && \
shentud config node $shentu_nodeCreate a service file
sudo tee /etc/systemd/system/shentud.service > /dev/null <<EOF
[Unit]
Description=shentu
After=network-online.target
[Service]
User=$USER
ExecStart=$(which shentud) start
Restart=on-failure
RestartSec=3
LimitNOFILE=65535
[Install]
WantedBy=multi-user.target
EOF
sudo systemctl daemon-reload &&
sudo systemctl enable shentud &&
sudo systemctl restart shentud && sudo journalctl -u shentud -f -o cat