Installation

Current Version
Port Prefix

6.3

325

Minimum hardware Requirements #

CPU : 4x CPUs
Ram : 8GB RAM 
Storage: 100GB of storage (SSD or NVME)

Setting Variables

echo "export WALLET="wallet"" >> $HOME/.bash_profile
echo "export MONIKER="test"" >> $HOME/.bash_profile
echo "export gnoland_CHAIN_ID="test6"" >> $HOME/.bash_profile
echo "export gnoland_PORT="325"" >> $HOME/.bash_profile
echo "export DAEMON_NAME="gnoland"" >> $HOME/.bash_profile
echo "export DAEMON_HOME=$HOME/gnoland-data"" >> $HOME/.bash_profile
source $HOME/.bash_profile

Install dependencies

sudo apt update && sudo apt upgrade -y && sudo apt-get install make build-essential gcc git jq chrony lz4 tmux unzip bc -y && sudo apt install -y curl git jq lz4 build-essential unzip

INSTALL GO

ver="1.20.5" && \
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

# Adding Go's location to profile
cat <<'EOF' >>$HOME/.profile
export GOROOT=/usr/local/go
export GOPATH=$HOME/go
export GO111MODULE=on
export PATH=$PATH:/usr/local/go/bin:$HOME/go/bin
EOF

source $HOME/.profile
go version

Download and build binary

# Clone project repository
cd $HOME
rm -rf gno
git clone https://github.com/gnolang/gno/
cd gno
git checkout chain/test6.3

# Build binaries
make -C gno.land install.gnoland

# Initialize Gnoland Directories
cd $HOME
gnoland config init
gnoland secrets init

# Download Genesis
wget -O $HOME/gnoland-data/config/genesis.json https://files.nodeshub.online/testnet/gnoland/genesis.json

# Follow below guide to change parameters in config.toml
https://github.com/gnolang/gno/tree/master/misc/deployments/test6.gno.land#important-params

# Start Gno node
cd gnoland-data
gnoland start \
--chainid test6 \
--data-dir $HOME/gnoland-data \
--genesis $HOME/gnoland-data/config/genesis.json

# Open P2P Port
sudo ufw allow 32556/tcp comment "gnoland-p2p"

Create Systemd Service File

# Create service
sudo tee /etc/systemd/system/gnoland.service > /dev/null <<EOF
[Unit]
Description=gnoland
After=network-online.target

[Service]
User=$USER
WorkingDirectory=$HOME/gnoland-data
ExecStart=$HOME/go/bin/gnoland start \
--chainid test6 \
--data-dir $HOME/gnoland-data \
--genesis $HOME/gnoland-data/config/genesis.json
Restart=always
RestartSec=3
LimitNOFILE=65535

[Install]
WantedBy=multi-user.target
EOF


# Reload Daemon and start Gnoland
sudo systemctl daemon-reload
sudo systemctl enable gnoland.service
sudo systemctl tart gnoland
journalctl -u gnoland -f -o cat

Download Snapshot

sudo systemctl stop gnoland

# Back up priv_validator_state.json if needed
cp ~/gnoland-data/secrets/priv_validator_state.json  ~/gnoland-data/priv_validator_state.json.backup.backup

# Reset Data Folder
rm -r $HOME/gnoland-data/db
rm -r $HOME/gnoland-data/wal

SNAP_URL=$(curl -s https://files.nodeshub.online/testnet/gnoland/snapshot/snap-info.txt | grep "Snapshot_URL" | cut -d ' ' -f 2)
curl ${SNAP_URL} | lz4 -dc - | tar -xf - -C $HOME/gnoland-data

cp $HOME/gnoland-data/priv_validator_state.json.backup $HOME/gnoland-data/secrets/priv_validator_state.json
sudo systemctl restart gnoland && sudo journalctl -u gnoland -f -o cat

Start service and check the logs

sudo systemctl start gnoland.service && sudo journalctl -u gnoland -f -o cat

Last updated