Install

Recommended Hardware: 4 Cores, 8GB RAM, 150GB of storage (NVME)

Chain ID: prysm-devnet-1 | Latest Version Tag: v0.1.0-devnet

Dependencies Installation

Update system and install build tools

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

Install GO

cd $HOME
ver="1.24.2" && \
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

Manual installation

Come up with the name of your node and replace it instead <your_moniker>

MONIKER=<your_moniker>

Download binary files

cd $HOME
rm -rf prysm
git clone https://github.com/kleomedes/prysm prysm
cd prysm
git checkout v0.1.0-devnet
make install

Initialize the node

# config and init app
prysmd config keyring-backend os
prysmd config chain-id prysm-devnet-1
prysmd config node tcp://localhost:26657

prysmd init $MONIKER --chain-id prysm-devnet-1

Set node configuration

# download genesis and addrbook
wget -O $HOME/.prysm/config/genesis.json https://server-5.itrocket.net/testnet/prysm/genesis.json
wget -O $HOME/.prysm/config/addrbook.json  https://server-5.itrocket.net/testnet/prysm/addrbook.json

# set seeds and peers
SEEDS="1b5b6a532e24c91d1bc4491a6b989581f5314ea5@prysm-testnet-seed.itrocket.net:25656"
PEERS="ff15df83487e4aa8d2819452063f336269958d09@prysm-testnet-peer.itrocket.net:25657,e7fa94e3cb848fddf632909a39412d1122a87e88@[2001:41d0:2:80a5::1]:14256,[email protected]:15656,[email protected]:18656,[email protected]:46656,[email protected]:26916,[email protected]:3020,[email protected]:15656,[email protected]:44656,[email protected]:14356,[email protected]:34656"
sed -i -e "/^\[p2p\]/,/^\[/{s/^[[:space:]]*seeds *=.*/seeds = \"$SEEDS\"/}" \
       -e "/^\[p2p\]/,/^\[/{s/^[[:space:]]*persistent_peers *=.*/persistent_peers = \"$PEERS\"/}" $HOME/.prysm/config/config.toml

# set minimum gas price, enable prometheus and disable indexing
sed -i 's|minimum-gas-prices =.*|minimum-gas-prices = "0.0uprysm"|g' $HOME/.prysm/config/app.toml
sed -i -e "s/prometheus = false/prometheus = true/" $HOME/.prysm/config/config.toml
sed -i -e "s/^indexer *=.*/indexer = \"null\"/" $HOME/.prysm/config/config.toml

# Set pruning
sed -i -e "s/^pruning *=.*/pruning = \"custom\"/" $HOME/.prysm/config/app.toml 
sed -i -e "s/^pruning-keep-recent *=.*/pruning-keep-recent = \"100\"/" $HOME/.prysm/config/app.toml
sed -i -e "s/^pruning-interval *=.*/pruning-interval = \"19\"/" $HOME/.prysm/config/app.toml

Create a service

# Download and install Cosmovisor
sudo tee /etc/systemd/system/prysmd.service > /dev/null <<EOF
[Unit]
Description=Prysm node
After=network-online.target

[Service]
User=$USER
WorkingDirectory=$HOME/.prysm
ExecStart=$(which prysmd) start --home $HOME/.prysm
Restart=on-failure
RestartSec=5
LimitNOFILE=65535

[Install]
WantedBy=multi-user.target
EOF

sudo systemctl daemon-reload
sudo systemctl enable prysmd

Start service and check the logs

sudo systemctl restart prysmd && sudo journalctl -u prysmd -f --no-hostname -o cat

Create wallet

# to create a new wallet, use the following command. don’t forget to save the mnemonic
prysmd keys add wallet

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

# list all keys
prysmd keys list

# before creating a validator, you need to fund your wallet and check balance
prysmd q bank balances $(prysmd keys show wallet -a)

Create validator

gcd $HOME
# Create validator.json file
echo "{\"pubkey\":{\"@type\":\"/cosmos.crypto.ed25519.PubKey\",\"key\":\"$(prysmd comet show-validator | grep -Po '\"key\":\s*\"\K[^"]*')\"},
    \"amount\": \"1000000uprysm\",
    \"moniker\": \"test\",
    \"identity\": \"\",
    \"website\": \"\",
    \"security\": \"\",
    \"details\": \"\",
    \"commission-rate\": \"0.1\",
    \"commission-max-rate\": \"0.2\",
    \"commission-max-change-rate\": \"0.01\",
    \"min-self-delegation\": \"1\"
}" > validator.json
# Create a validator using the JSON configuration
prysmd tx staking create-validator validator.json \
    --from wallet \
    --chain-id prysm-devnet-1 \
	--gas auto --gas-adjustment 1.5 --fees 6000uprysm

Last updated