LINKS

Original
[https://mzonder.notion.site/CANTO-clean-install-start-from-State-Sync-canto_7700-1-0b509b4ab2e64cd2b591ad425bced1b5](https://energetic-harrier-dcf.notion.site/CANTO-start-from-State-Sync-canto_7700-1-pebbledb-0b509b4ab2e64cd2b591ad425bced1b5)

**Github**
[https://github.com/Canto-Network/Canto](https://github.com/Canto-Network/Canto)
[](https://github.com/Stride-Labs/testnet)
**DOCS**
[https://canto.gitbook.io/canto/technical-reference/validators/becoming-a-validator#start-the-node](https://canto.gitbook.io/canto/technical-reference/validators/becoming-a-validator#start-the-node)

**Explorer**
[https://explorer.nodestake.top/canto/staking](https://explorer.nodestake.top/canto/staking)

Install dependencies

# Install packages
sudo apt-get install git
sudo apt-get install gcc
sudo apt-get install make

# Install GO 1.19
cd $HOME
wget "https://go.dev/dl/go1.19.linux-amd64.tar.gz"
sudo rm -rf /usr/local/go
sudo tar -C /usr/local -xzf "go1.19.linux-amd64.tar.gz"
rm "go1.19.linux-amd64.tar.gz"
echo 'export PATH="$PATH:/usr/local/go/bin:$HOME/go/bin"' >> $HOME/.bash_profile
source $HOME/.bash_profile

****go version

# OUTPUT 
# go version go1.19 linux/amd64

build latest binary

cd 
cd Canto
git checkout main && git pull
git checkout v2.0.0
make install

Init node

# **replace USERNAME with your own ID**
export CANTO_NODENAME="USERNAME"
export CANTO_WALLET="USERNAME_WALLET"

CANTO_CHAIN="canto_7700-1"  # do not change, it's correct, github is not updated

# save vars
echo 'export CANTO_NODENAME='${CANTO_NODENAME}>> $HOME/.bash_profile
echo 'export CANTO_WALLET='${CANTO_WALLET} >> $HOME/.bash_profile
echo 'export CANTO_CHAIN='${CANTO_CHAIN} >> $HOME/.bash_profile

source $HOME/.bash_profile

# do init
cantod config keyring-backend test # file-based keyring required for WSL
cantod init $CANTO_NODENAME --chain-id $CANTO_CHAIN

# genesis
rm $HOME/.cantod/config/genesis.json
curl -s https://rpc.canto.nodestake.top/genesis | jq ".result.genesis" > $HOME/.cantod/config/genesis.json

Config


SEEDS="[email protected]:55656"
PEERS=""
sed -i -e "s/^seeds *=.*/seeds = \"$SEEDS\"/; s/^persistent_peers *=.*/persistent_peers = \"$PEERS\"/" $HOME/.cantod/config/config.toml

sed -i -e "s/^minimum-gas-prices *=.*/minimum-gas-prices = \"0.0001acanto\"/" $HOME/.cantod/config/app.toml

cantod config chain-id $CANTO_CHAIN

Config pruning and snapshots (for Validator nodes)

**# Set your desired pruning**

# config pruning
pruning="custom"
pruning_keep_recent="10000"
pruning_keep_every="0"
pruning_interval="10"
sed -i -e "s/^pruning *=.*/pruning = \"$pruning\"/" $HOME/.cantod/config/app.toml
sed -i -e "s/^pruning-keep-recent *=.*/pruning-keep-recent = \"$pruning_keep_recent\"/" $HOME/.cantod/config/app.toml
sed -i -e "s/^pruning-keep-every *=.*/pruning-keep-every = \"$pruning_keep_every\"/" $HOME/.cantod/config/app.toml
sed -i -e "s/^pruning-interval *=.*/pruning-interval = \"$pruning_interval\"/" $HOME/.cantod/config/app.toml

# for pruning "100-0-10" you should decrease snapshots interval to avoid conflict with 100 blocks pruning and 1500 blocks snapshot-interval
# sed -i 's/snapshot-interval *=.*/snapshot-interval = 100' $HOME/.cantod/config/app.toml

Reset before start

# reset
cantod tendermint unsafe-reset-all --home $HOME/.cantod

Can’t run as service in WSL (no systemd)

# start cantod and leave it running in this window
cantod start

Start from STATE-SYNC

SNAP_RPC="https://rpc.canto.nodestake.top:443"
LATEST_HEIGHT=$(curl -s $SNAP_RPC/block | jq -r .result.block.header.height)
BLOCK_HEIGHT=$((LATEST_HEIGHT - 1000))
TRUST_HASH=$(curl -s "$SNAP_RPC/block?height=$BLOCK_HEIGHT" | jq -r .result.block_id.hash)
echo $LATEST_HEIGHT $BLOCK_HEIGHT $TRUST_HASH

cantod tendermint unsafe-reset-all --home $HOME/.cantod --keep-addr-book

sed -i -E "s|^(enable[[:space:]]+=[[:space:]]+).*$|\1true| ; \
s|^(rpc_servers[[:space:]]+=[[:space:]]+).*$|\1\"$SNAP_RPC,$SNAP_RPC\"| ; \
s|^(trust_height[[:space:]]+=[[:space:]]+).*$|\1$BLOCK_HEIGHT| ; \
s|^(trust_hash[[:space:]]+=[[:space:]]+).*$|\1\"$TRUST_HASH\"|" $HOME/.cantod/config/config.toml

wget -O $HOME/.cantod/config/addrbook.json "https://raw.githubusercontent.com/maxzonder/canto/main/addrbook.json"

Create new key (or recover old one)

# create new key
cantod keys add $CANTO_WALLET