Installation
Prysm Testnet Guide
prysm-devnet-1
Node Version: 0.1.0-devnet
25
Official Documentation Recommended Hardware: 4 Cores, 8GB RAM, 200GB of storage (NVME)
# install dependencies, if needed
sudo apt update && sudo apt upgrade -y
sudo apt install curl git wget htop tmux build-essential jq make lz4 gcc unzip -yNode NameWalletPortPruningPruning Keep RecentPruning Interval
# install go, if needed
cd $HOME
VER="1.22.6"
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"
[ ! -f ~/.bash_profile ] && touch ~/.bash_profile
echo "export PATH=$PATH:/usr/local/go/bin:~/go/bin" >> ~/.bash_profile
source $HOME/.bash_profile
[ ! -d ~/go/bin ] && mkdir -p ~/go/bin
# set vars
echo "export WALLET="wallet"" >> $HOME/.bash_profile
echo "export MONIKER="test"" >> $HOME/.bash_profile
echo "export PRYSM_CHAIN_ID="prysm-devnet-1"" >> $HOME/.bash_profile
echo "export PRYSM_PORT="25"" >> $HOME/.bash_profile
source $HOME/.bash_profile
# download binary
cd $HOME
wget -O zenrockd.zip https://github.com/Zenrock-Foundation/zrchain/releases/download/v5.16.20/zenrockd.zip
unzip zenrockd.zip
rm zenrockd.zip
chmod +x $HOME/zenrockd
sudo mv $HOME/zenrockd $HOME/go/bin/
# config and init app
prysmd config node tcp://localhost:${PRYSM_PORT}657
prysmd config keyring-backend os
prysmd config chain-id prysm-devnet-1
prysmd init "test" --chain-id prysm-devnet-1
# 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="bc0f324931f609be479ce6579f159e5d0bebc929@prysm-testnet-peer.monkeylabs.me:34656,1b5b6a532e24c91d1bc4491a6b989581f5314ea5@prysm-testnet-seed.itrocket.net:25656"
PEERS="ff15df83487e4aa8d2819452063f336269958d09@prysm-testnet-peer.itrocket.net:25657,fb04a6f5dbddefca240d0821e25ec219737bc6cb@65.109.27.148:29656,df2ca03803f969b6f14bb88bd4af4dcfb0e61701@65.109.111.234:25656,aea4d8e0b0036a435d49920c9e1fadc9f02278ca@65.108.203.61:44656,a53a6c4abbd4e4e212639dbff72e2c7295fd8cd8@213.199.43.242:29656,0b4b6be062055f913933597fe7d84c65286d444b@144.76.70.103:32656,cb36b0bf594bbb205827efd65fb2be0c82b4f854@176.9.126.78:20656,f3dd019aafbee0483de1d5133f03e880d96cde6a@65.108.234.158:23656,e89a44eb3d9100a312f435b274921f7d7a958d7e@95.216.73.182:26656,22b6d4f817ed345b7ac4e736715a985d8ee75004@193.34.212.80:33656,2e36231490438bf5ecd8b32e2f36b70c7dd9b035@157.173.105.31:29656"
sed -i -e "/^\[p2p\]/,/^\[/{s/^[[:space:]]*seeds *=.*/seeds = \"$SEEDS\"/}" \
-e "/^\[p2p\]/,/^\[/{s/^[[:space:]]*persistent_peers *=.*/persistent_peers = \"$PEERS\"/}" $HOME/.prysm/config/config.toml
# set custom ports in app.toml
sed -i.bak -e "s%:1317%:${PRYSM_PORT}317%g;
s%:8080%:${PRYSM_PORT}080%g;
s%:9090%:${PRYSM_PORT}090%g;
s%:9091%:${PRYSM_PORT}091%g;
s%:8545%:${PRYSM_PORT}545%g;
s%:8546%:${PRYSM_PORT}546%g;
s%:6065%:${PRYSM_PORT}065%g" $HOME/.prysm/config/app.toml
# set custom ports in config.toml file
sed -i.bak -e "s%:26658%:${PRYSM_PORT}658%g;
s%:26657%:${PRYSM_PORT}657%g;
s%:6060%:${PRYSM_PORT}060%g;
s%:26656%:${PRYSM_PORT}656%g;
s%^external_address = \"\"%external_address = \"$(wget -qO- eth0.me):${PRYSM_PORT}656\"%;
s%:26660%:${PRYSM_PORT}660%g" $HOME/.prysm/config/config.toml
# config 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
# 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
# create service file
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
# reset and download snapshot
prysmd tendermint unsafe-reset-all --home $HOME/.prysm
if curl -s --head curl https://server-5.itrocket.net/testnet/prysm/prysm_2024-12-28_4187200_snap.tar.lz4 | head -n 1 | grep "200" > /dev/null; then
curl https://server-5.itrocket.net/testnet/prysm/prysm_2024-12-28_4187200_snap.tar.lz4 | lz4 -dc - | tar -xf - -C $HOME/.prysm
else
echo "no snapshot found"
fi
# enable and start service
sudo systemctl daemon-reload
sudo systemctl enable prysmd
sudo systemctl restart prysmd && sudo journalctl -u prysmd -fo catAutomatic Installation
pruning: custom: 100/0/19 | indexer: null
Create wallet
Node Sync Status Checker
Create validator
MonikerIdentityDetailsAmount, uprysmCommission rateCommission max rateCommission max change rateWebsite
Monitoring
If you want to have set up a monitoring and alert system use our cosmos nodes monitoring guide with tenderduty
Security
To protect you keys please don`t share your privkey, mnemonic and follow basic security rules
Set up ssh keys for authentication
You can use this guide to configure ssh authentication and disable password authentication on your server
Firewall security
Set the default to allow outgoing connections, deny all incoming, allow ssh and node p2p port
Delete node
Last updated