Network Overview

Gno.land is a smart contract platform built on a novel interpretation of Go (Golang) for blockchain, created to enable powerful, modular, and secure decentralized applications with a minimalist approach and excellent developer experience.
https://rpc-gnoland-t.sychonix.comPEERS="g1m37xukfq6yl555k93fcyzns83qnmgyax9zm875@seed-1.pearl.testnets.gno.land:26656,g1ngukqd3khekaqjf90k45cglzm0l25wwzl2fkn2@seed-2.pearl.testnets.gno.land:26656"
sed -i.bak -e "s/^persistent_peers *=.*/persistent_peers = \"$PEERS\"/" $HOME/gno/gnoland-data/config/config.tomlwget -O $HOME/gno/gnoland-data/config/genesis.json https://snapshot.sychonix.com/testnet/gnoland/genesis.jsonInstallation
Server Preparation
sudo apt update && sudo apt upgrade -y
sudo apt install curl iptables build-essential git wget jq make gcc nano tmux htop nvme-cli pkg-config libssl-dev libleveldb-dev tar clang bsdmainutils ncdu unzip -yInstall Go
ver="1.20.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 versionInstall Gnoland
cd $HOME
rm -rf $HOME/gno
git clone https://github.com/gnolang/gno.git
cd $HOME/gno
git checkout chain/pearl
make -C gno.land install.gnoland install.gnokey
gnoland version
gnokey --helpInitialize Node
MONIKER="Sychonix"
cd $HOME/gno
gnoland config init
gnoland secrets initDownload Genesis
wget -O $HOME/gno/gnoland-data/config/genesis.json https://snapshot.sychonix.com/testnet/gnoland/genesis.jsonConfigure Node
gnoland config set rpc.laddr tcp://0.0.0.0:42657 gnoland config set p2p.laddr tcp://0.0.0.0:42656 gnoland config set proxy_app tcp://127.0.0.1:42658 gnoland config set moniker "$MONIKER"SERVER_IP=$(curl -4 -s ifconfig.me) gnoland config set p2p.external_address “$SERVER_IP:42656” gnoland config set p2p.pex true
gnoland config set p2p.persistent_peers “g1m37xukfq6yl555k93fcyzns83qnmgyax9zm875@seed-1.pearl.testnets.gno.land:26656,g1ngukqd3khekaqjf90k45cglzm0l25wwzl2fkn2@seed-2.pearl.testnets.gno.land:26656”
gnoland config set application.prune_strategy syncable gnoland config set consensus.timeout_commit 3s gnoland config set consensus.peer_gossip_sleep_duration 10ms gnoland config set p2p.flush_throttle_timeout 10ms gnoland config set mempool.size 10000 gnoland config set p2p.max_num_outbound_peers 40
Create Systemd Service
sudo tee /etc/systemd/system/gnoland.service > /dev/null <<EOF
[Unit]
Description=Gnoland
After=network-online.target
Wants=network-online.target
[Service]
User=$USER
WorkingDirectory=$HOME/gno
Environment="GNOROOT=$HOME/gno"
Environment="HOME=$HOME"
ExecStart=$(which gnoland) start \
--chainid pearl-1 \
--genesis $HOME/gno/gnoland-data/config/genesis.json \
--log-level error \
--skip-genesis-sig-verification
Restart=on-failure
RestartSec=5
LimitNOFILE=65535
StandardOutput=journal
StandardError=journal
SyslogIdentifier=gnoland
[Install]
WantedBy=multi-user.target
EOFStart Node
sudo systemctl daemon-reload
sudo systemctl enable gnoland
sudo systemctl restart gnolandCheck Logs
sudo journalctl -u gnoland -f -o catCheck Status
sudo systemctl status gnolandSnapshot
- Install dependencies, if needed
sudo apt update && sudo apt install lz4- Stop Service
sudo systemctl stop gnoland- Back up priv_validator_state.json
cp $HOME/gno/gnoland-data/secrets/priv_validator_state.json $HOME/gno/priv_validator_state.json.backup- Clearing the old database
sudo rm -rf $HOME/gno/gnoland-data/db $HOME/gno/gnoland-data/wal- Download Snapshot
curl -o - -L https://snapshot.sychonix.com/testnet/gnoland/gnoland-snapshot.tar.lz4 | lz4 -c -d - | sudo tar -x -C $HOME/gno/gnoland-data/- Restore Backup and Restart Service
mv $HOME/gno/priv_validator_state.json.backup $HOME/gno/gnoland-data/secrets/priv_validator_state.jsonsudo systemctl restart gnoland && sudo journalctl -u gnoland -fPeers
PEERS="g1m37xukfq6yl555k93fcyzns83qnmgyax9zm875@seed-1.pearl.testnets.gno.land:26656,g1ngukqd3khekaqjf90k45cglzm0l25wwzl2fkn2@seed-2.pearl.testnets.gno.land:26656"
sed -i.bak -e "s/^persistent_peers *=.*/persistent_peers = \"$PEERS\"/" $HOME/gno/gnoland-data/config/config.tomlGenesis
wget -O $HOME/gno/gnoland-data/config/genesis.json https://snapshot.sychonix.com/testnet/gnoland/genesis.jsonRPC
rpc-gnoland-t.sychonix.comCLI Cheatsheet
Wallet Management
gnokey keys add
gnokey keys add --recover
gnokey keys list
gnokey keys delete
gnokey query --remote "https://rpc-gnoland-t.sychonix.com" auth/accounts/$ADDRESS
Service Management
curl -s localhost:42657/status | jq
sudo systemctl daemon-reload
sudo systemctl enable gnoland
sudo systemctl disable gnoland
sudo systemctl start gnoland
sudo systemctl stop gnoland
sudo systemctl restart gnoland
sudo systemctl status gnoland
sudo journalctl -u gnoland -f --no-hostname -o cat
