Skip to content

Install

Website

Twitter

Discord

GitHub

Explorer


Chain ID: prysm-devnet-1 Latest Version: v0.1.0-devnet Custom Port: 129
Section titled “Chain ID: Latest Version: Custom Port: ”
Specify the name of your “MONIKER” (validator) which will be visible in the explorer
Section titled “Specify the name of your “MONIKER” (validator) which will be visible in the explorer”
MONIKER="YOUR_MONIKER_NAME"
sudo apt update && sudo apt upgrade -y
sudo apt install curl build-essential git jq lz4 ncdu btop -y
cd $HOME
version="1.23.3"
wget "https://golang.org/dl/go$version.linux-amd64.tar.gz"
sudo rm -rf /usr/local/go
sudo tar -C /usr/local -xzf "go$version.linux-amd64.tar.gz"
rm "go$version.linux-amd64.tar.gz"
echo "export PATH=$PATH:/usr/local/go/bin:$HOME/go/bin" >> $HOME/.bash_profile
source $HOME/.bash_profile
go install cosmossdk.io/tools/cosmovisor/cmd/cosmovisor@latest
cd $HOME
git clone https://github.com/kleomedes/prysm
cd prysm
git checkout v0.1.0-devnet
make install
prysmd version --long | grep -e commit -e version
# Set node configuration
prysmd config set client chain-id prysm-devnet-1
prysmd config set client keyring-backend test
prysmd config set client node tcp://localhost:12957
# Initialize node
prysmd init $MONIKER --chain-id prysm-devnet-1
# Download genesis and addrbook
curl -Ls https://snapshots.moonbridge.org/testnet/prysm/genesis.json > $HOME/.prysm/config/genesis.json
curl -Ls https://snapshots.moonbridge.org/testnet/prysm/addrbook.json > $HOME/.prysm/config/addrbook.json
# Set seeds and peers
SEEDS=""
PEERS=""
sed -i -e "s/^seeds *=.*/seeds = \"$SEEDS\"/; s/^persistent_peers *=.*/persistent_peers = \"$PEERS\"/" $HOME/.prysm/config/config.toml
# Setting minimum gas price
sed -i -e "s|^minimum-gas-prices *=.*|minimum-gas-prices = \"0.0uprysm\"|" $HOME/.prysm/config/app.toml
# Setting 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
# Disable indexer
sed -i -e 's|^indexer *=.*|indexer = "null"|' $HOME/.prysm/config/config.toml
# Enable Prometheus
sed -i -e "s/prometheus = false/prometheus = true/" $HOME/.prysm/config/config.toml
# Setting custom ports
sed -i -e "s%^proxy_app = \"tcp://127.0.0.1:26658\"%proxy_app = \"tcp://127.0.0.1:12958\"%; s%^laddr = \"tcp://127.0.0.1:26657\"%laddr = \"tcp://0.0.0.0:12957\"%; s%^pprof_laddr = \"localhost:6060\"%pprof_laddr = \"localhost:12960\"%; s%^laddr = \"tcp://0.0.0.0:26656\"%laddr = \"tcp://0.0.0.0:12956\"%; s%^external_address = \"\"%external_address = \"$(wget -qO- eth0.me):12956\"%; s%^prometheus_listen_addr = \":26660\"%prometheus_listen_addr = \":12966\"%" $HOME/.prysm/config/config.toml
sed -i -e "s%:1317%:12917%g; s%:8080%:12980%g; s%:9090%:12990%g; s%:9091%:12991%g; s%:8545%:12945%g; s%:8546%:12946%g; s%:6065%:12965%g" $HOME/.prysm/config/app.toml
mkdir -p $HOME/.prysm/cosmovisor/genesis/bin
mkdir -p $HOME/.prysm/cosmovisor/upgrades
cp $HOME/go/bin/prysmd $HOME/.prysm/cosmovisor/genesis/bin/
sudo tee /etc/systemd/system/prysmd.service > /dev/null << EOF
[Unit]
Description=Prysm Node
After=network-online.target
[Service]
User=$USER
ExecStart=$(which cosmovisor) run start
Restart=always
RestartSec=5
LimitNOFILE=65535
Environment="DAEMON_NAME=prysmd"
Environment="DAEMON_HOME=$HOME/.prysm"
Environment="UNSAFE_SKIP_BACKUP=true"
Environment="DAEMON_ALLOW_DOWNLOAD_BINARIES=false"
Environment="DAEMON_RESTART_AFTER_UPGRADE=true"
[Install]
WantedBy=multi-user.target
EOF
sudo systemctl daemon-reload
sudo systemctl enable prysmd
curl -o - -L https://snapshots.moonbridge.org/testnet/prysm/snapshot_latest.tar.lz4 | lz4 -dc - | tar -x -C $HOME/.prysm
[[ -f $HOME/.prysm/data/upgrade-info.json ]] && cp $HOME/.prysm/data/upgrade-info.json $HOME/.prysm/cosmovisor/genesis/upgrade-info.json
sudo systemctl start prysmd && sudo journalctl -u prysmd -f --no-hostname -o cat
prysmd keys add wallet
prysmd q bank balances $(prysmd keys show wallet -a)

Get pubkey

prysmd comet show-validator
cd $HOME/.prysm/config
nano validator.json
{
"pubkey": {"@type":"/cosmos.crypto.ed25519.PubKey","key":"lR1d7YBVK5jYijOfWVKRFoWCsS4dg3kagT7LB9GnG8I="},
"amount": "1000000uprysm",
"moniker": "YOUR_MONIKER_NAME",
"identity": "YOUR_KEYBASE_ID",
"details": "YOUR_DETAILS",
"website": "YOUR_WEBSITE_URL",
"security": "YOUR_EMAIL_ADDRESS",
"commission-rate": "0.10",
"commission-max-rate": "0.20",
"commission-max-change-rate": "0.01",
"min-self-delegation": "1"
}
prysmd tx staking create-validator $HOME/.prysm/config/validator.json \
--chain-id prysm-devnet-1 \
--from wallet \
--fees 500uprysm \
-y
sudo systemctl stop prysmd
sudo systemctl disable prysmd
sudo rm -rf /etc/systemd/system/prysmd.service
sudo systemctl daemon-reload
sudo rm -f $(which prysmd)
sudo rm -rf $HOME/.prysm
sudo rm -rf $HOME/prysm