Shaurya Chopra
  • Introduction
  • Story Testnet (Odyssey)
    • Snapshot
    • Live Peers
    • Endpoints (Odyssey)
    • Auto Installation
    • Manual Installation (Cosmovisor)
    • Story Dashboard
    • Telegram Bot
  • Zero Gravity (0G)
    • Endpoints, Peer, Explorer
    • 0g Validator Snapshot
    • Storage Node Snapshot (Turbo)
    • 0g Validator Node Setup
    • 0g Storage Node Setup
    • 0g DA Node Setup
    • 0g Storage KV Setup
  • Pell
    • Endpoints, Peer, Explorer
    • Pell Snapshot
    • Pell Validator Node Setup
Powered by GitBook
On this page
  1. Pell

Pell Validator Node Setup

Installation

Install dependencies

sudo apt update && sudo apt upgrade -y
sudo apt install curl git jq build-essential gcc unzip wget lz4 pv -y

Install go

cd $HOME && \
ver="1.22.0" && \
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" >> ~/.bash_profile && \
source ~/.bash_profile && \
go version

Download binary from source

cd $HOME
wget -O pellcored https://github.com/0xPellNetwork/network-config/releases/download/v1.1.5/pellcored-v1.1.5-linux-amd64
chmod +x pellcored
mv pellcored ~/go/bin/
WASMVM_VERSION=v2.1.2
export LD_LIBRARY_PATH=~/.pellcored/lib
mkdir -p $LD_LIBRARY_PATH
wget "https://github.com/CosmWasm/wasmvm/releases/download/$WASMVM_VERSION/libwasmvm.$(uname -m).so" -O "$LD_LIBRARY_PATH/libwasmvm.$(uname -m).so"
echo "export LD_LIBRARY_PATH=$HOME/.pellcored/lib:$LD_LIBRARY_PATH" >> $HOME/.bash_profile
source ~/.bash_profile

Setup your variable settings

echo 'export PELL_PORT="58"' >> ~/.bash_profile
source $HOME/.bash_profile

Initialize node

pellcored config node tcp://localhost:${PELL_PORT}657
pellcored config keyring-backend os
pellcored config chain-id ignite_186-1
pellcored init "Your_Moniker" --chain-id ignite_186-1

Set seeds & peers

SEEDS="e0db435083b4a927ef34d46780a86ae263dbed8c@95.216.54.249:58656"
PEERS="e0db435083b4a927ef34d46780a86ae263dbed8c@95.216.54.249:58656"
sed -i -e "/^\[p2p\]/,/^\[/{s/^[[:space:]]*seeds *=.*/seeds = \"$SEEDS\"/}" \
       -e "/^\[p2p\]/,/^\[/{s/^[[:space:]]*persistent_peers *=.*/persistent_peers = \"$PEERS\"/}" $HOME/.pellcored/config/config.toml

Set required variable in config.toml & app.toml

sed -i.bak -e "s%:1317%:${PELL_PORT}317%g;
s%:8080%:${PELL_PORT}080%g;
s%:9090%:${PELL_PORT}090%g;
s%:9091%:${PELL_PORT}091%g;
s%:8545%:${PELL_PORT}545%g;
s%:8546%:${PELL_PORT}546%g;
s%:6065%:${PELL_PORT}065%g" $HOME/.pellcored/config/app.toml
sed -i.bak -e "s%:26658%:${PELL_PORT}658%g;
s%:26657%:${PELL_PORT}657%g;
s%:6060%:${PELL_PORT}060%g;
s%:26656%:${PELL_PORT}656%g;
s%^external_address = \"\"%external_address = \"$(wget -qO- eth0.me):${PELL_PORT}656\"%;
s%:26660%:${PELL_PORT}660%g" $HOME/.pellcored/config/config.toml

Pruning (Optional to save storage space)

sed -i \
    -e "s/^pruning *=.*/pruning = \"custom\"/" \
    -e "s/^pruning-keep-recent *=.*/pruning-keep-recent = \"100\"/" \
    -e "s/^pruning-interval *=.*/pruning-interval = \"10\"/" \
    "$HOME/.pellcored/config/app.toml"

Set min gas price

sed -i 's|minimum-gas-prices =.*|minimum-gas-prices = "0apell"|g' $HOME/.pellcored/config/app.toml

Disable indexer

sed -i -e "s/^indexer *=.*/indexer = \"null\"/" $HOME/.pellcored/config/config.toml

Create Service File

sudo tee /etc/systemd/system/pellcored.service > /dev/null <<EOF
[Unit]
Description=Pell node
After=network-online.target
[Service]
User=root
WorkingDirectory=/root/.pellcored
ExecStart=/root/go/bin/pellcored start --home /root/.pellcored --chain-id ignite_186-1
Environment=LD_LIBRARY_PATH=$HOME/.pellcored/lib/
Restart=on-failure
RestartSec=5
LimitNOFILE=65535
[Install]
WantedBy=multi-user.target
EOF

Start node

sudo systemctl daemon-reload && \
sudo systemctl enable pellcored && \
sudo systemctl start pellcored && \
sudo journalctl -u pellcored -f -o cat

Create wallet

# Create new wallet & save the mnemonic
pellcored keys add wallet

# to restore exexuting wallet, use the following command
pellcored keys add pell_wallet --recover

Create validator

cat > ./validator.json << EOF
{
	"pubkey": $(pellcored tendermint show-validator),
	"amount": "1000000000000000000apell",
	"moniker": "<your_node_name>",
	"identity": "optional identity signature (ex. UPort or Keybase)",
	"website": "validator's (optional) website",
	"security": "validator's (optional) security contact email",
	"details": "validator's (optional) details",
	"commission-rate": "0.1",
	"commission-max-rate": "0.2",
	"commission-max-change-rate": "0.01",
	"min-self-delegation": "1"
}
EOF
pellcored tx staking create-validator ./validator.json --chain-id=ignite_186-1 --fees=0.000001pell --gas=1000000 --from=wallet-name --keyring-backend=test -y
PreviousPell Snapshot

Last updated 3 months ago