PulseChain Validator Setup Guide (Mainnet)

Togosh
6 min readMar 27, 2023

--

Support the network and earn rewards!

NOTE: Need 32 million PLS to be a validator

What is Pulse?
https://PulseChain.com

Resources

Gitlab
https://gitlab.com/pulsechaincom/pulsechain-mainnet

Launchpad
https://launchpad.pulsechain.com/en/

Checklist
https://launchpad.pulsechain.com/en/checklist

=

Gamma Script
https://www.gammadevops.com/p/validator-setup

RHMax AWS Cloud Guide
https://docs.google.com/document/d/1eW0SDT8IvZrla7gywK32Rl3QaQtVoiOu5OaVhUKIDg8/edit

RHMax Clients Guide
https://docs.google.com/document/d/1RkAWt0Q_DmYpnykHFM4Qf5ItDLPLi-kaj1PDG74Mftg/edit

RHMax Key Guide
https://docs.google.com/document/d/1tl_nql6-Bqyo5yqFDJ2aqjAQoBAK0FtcCYSKpGXg0hw/edit

RHMax Script
https://github.com/rhmaxdotorg/pulsechain-validator

David Feder Videos
https://www.youtube.com/@DavidFeder

David Feder Script
https://gitlab.com/davidfeder/validatorscript/-/blob/main/PulseChain_MainNet_Install_Validator.txt

DipSlayer (tdslaine) Scripts
https://github.com/tdslaine/install_pulse_node

Jexxa Script
https://github.com/JexxaJ/Pulsechain-Validator-Script

Gamesys Guide
https://gitlab.com/Gamesys10/pulsechain-node-guide

Hodldog Guide
https://hodldog.notion.site/PulseChain-Node-Validator-Guide-1399a107ceb0481cb10f4bd6298ddc51

Togosh Guide
https://togosh.medium.com/pulsechain-validator-setup-guide-70edae00b344

=

Sacrifice Checker
https://pulsechain-sacrifice-checker.vercel.app

Block Explorer
https://scan.pulsechain.com
https://otter.pulsechain.com

Beacon Explorer
https://beacon.pulsechain.com

PulseX Exchange
https://app.pulsex.com/swap

=

Chat Support
https://t.me/PulseDEV
https://t.me/GammaDevOpsChat
https://t.me/PulsechainCom

=

Learn Command Line
https://missing.csail.mit.edu
https://linuxupskillchallenge.org

Learn Docker
https://www.docker.com/101-tutorial
https://www.howtogeek.com/733522/docker-for-beginners-everything-you-need-to-know
https://www.freecodecamp.org/news/the-docker-handbook

Docker Commands to View, Stop and Remove Containers and Images

sudo docker ps -a
sudo docker stop -t 300 CONTAINER_ID

sudo docker container prune

sudo docker images -a
sudo docker image rm -f IMAGE_ID

=

Firewalla
https://firewalla.com/collections/all/products/firewalla-purple-se

Starlink
https://www.starlink.com

Setup Notes

This guide uses local computers (built from parts purchased online)
(Note: if using cloud service, steps will be different, review resource links above)

Local Computers:

  • 1 Windows Machine (to remote into validator with SSH)
  • 1 Ubuntu (Linux) Machine (validator that we will set up)

1. Buy/Setup Validator Hardware

Minimum Specs:
https://gitlab.com/pulsechaincom/pulsechain-mainnet#advanced-users-running-a-pulsechain-node

  • 4+ core processor
  • 16GB+ RAM
  • 1 TB+ SSD Full Node
  • 15 TB+ Archive Node

(Note: Ethereum blockchain is currently ~900 GB, and grows >1GB a day)

Recommended Specs:
https://t.me/PulsechainCom/2411955

  • 8 core processor
  • 32-64GB RAM
  • 2–4TB NVME SSD

Solid State Drive (SSD) List:
https://gist.github.com/yorickdowne/f3a3e79a573bf35767cd002cc977b038

Computer Parts I bought:

////// 2TB NVMe
$120 — 1x — SK hynix Gold P31 2TB PCIe NVMe Gen3 M.2 2280 SSD
https://www.amazon.com/dp/B099RHVB42

Note: I already had an extra PC (case, power supply, motherboard and 8 core processor) that I bought from newegg.com

$200 - 8 Core CPU (Ryzen 7)
$175 - Motherboard
$150 - 64GB RAM
$120 - 2TB NVME SSD
$100 - Power Supply
$80 - Case
====
~$825 Total?

Example machine for $400 Total
https://twitter.com/UTmortgagepro/status/1650995279435563008

2. Setup Ubuntu/Linux machine

a. Download Ubuntu v22.04.2 LTS iso file

Ubuntu Server (Command Line)
https://ubuntu.com/download/server

OR

Ubuntu Desktop (GUI)
https://ubuntu.com/download/desktop

b. Create USB stick
https://ubuntu.com/tutorials/create-a-usb-stick-on-windows
(David Feder Video: https://www.youtube.com/watch?v=ZqllGFvGlYg)

c. Install Ubuntu
- Insert USB stick into validator PC
- Restart validator PC
- While its starting keep pressing F2 (or whatever key needed to get to BIOS, F10, F12, F1, DEL, etc)
- Select to boot from USB
- Follow Ubuntu instructions
- Select to Install OpenSSH

d. Disable sleep?
https://linuxgenie.net/how-to-keep-your-ubuntu-22-04-from-sleeping

3. Check Disk Space

a. Check

df -h
lsblk

b. Extend and Resize

sudo lvextend -l +100%FREE /dev/mapper/ubuntu--vg-ubuntu--lv
sudo resize2fs /dev/mapper/ubuntu--vg-ubuntu--lv

Reference: https://askubuntu.com/a/1330709

4. Setup Router

a. Log into Router
http://192.168.0.1

(I forgot password and had to physically click the reset button on the router with a pen)

b. Setup Static IP for local Ubuntu validator machine
(DHCP Address Reservation)

(Google name of your router for how to do this)

(Choose static IP address outside of your DHCP range)

After setting static IP in your router, restart Ubuntu machine and test pinging static IP from Windows

Ubuntu command

sudo reboot

Windows command

ping 192.168.X.XXX

c. Setup Port Forwarding
(Google name of your router for how to do this)
Forward the ports to your Ubuntu static IP address

30303 all  # Erigon and Go Execution Clients
13000 tcp # Prysm Consensus Client
12000 udp # Prysm Consensus Client
9000 all # Lighthouse Consensus Client

d. Test Ports
https://myexternalip.com

Ubuntu command:
(Replace EXTERNALIP, with your external IP address from above website)

nc -vz EXTERNALIP 30303
nc -vz EXTERNALIP 9000

5. Login to Ubuntu from local Windows machine

a. Run ip command on Ubuntu and confirm your local ip address, example: 192.168.X.XXX

ip a

b. Install and Run Putty (SSH client)
https://www.putty.org

c. On Windows use Putty to connect to your Ubuntu IP Address on port 22 (SSH), enter your Ubuntu credentials

6. Install DipSlayer (tdslaine) Scripts

(Sets up Firewall and JWT secret,
Installs Docker, and
Installs Execution, Consensus and Validator Clients)

a. Follow instructions from README.md file
https://github.com/tdslaine/install_pulse_node

sudo apt-get install git
git clone https://github.com/tdslaine/install_pulse_node

cd install_pulse_node
chmod +x setup_pulse_node.sh
sudo ./setup_pulse_node.sh
cd /blockchain

./start_execution.sh
./start_consensus.sh
./start_validator.sh
sudo docker logs -f execution
sudo docker logs -f beacon
sudo docker logs -f validator

b. Wait for your node to sync to latest block explorer number
https://scan.pulsechain.com
https://otter.pulsechain.com

7. Check RPC

a. View version

curl -H "Content-Type: application/json" -X POST --data '{"jsonrpc":"2.0","method":"net_version","params":[],"id":67}' http://localhost:8545

b. View sync status

curl -s http://localhost:8545 -H "Content-Type: application/json" --data "{\"jsonrpc\":\"2.0\",\"method\":\"eth_syncing\",\"params\":[],\"id\":67}"

c. View number of peers

curl -H "Content-Type: application/json" -X POST --data '{"jsonrpc":"2.0","method":"net_peerCount","params":[],"id":67}' http://localhost:8545

8. Create Validator Keys

(NOTE: Use Dipslayer (tdslaine) script:
https://github.com/tdslaine/install_pulse_node
it has a “setup_validator.sh” script and skip below steps)

a. Install deposit script

sudo git clone https://gitlab.com/pulsechaincom/staking-deposit-cli.git
cd staking-deposit-cli

python3 -V
sudo apt install python3-pip
sudo pip3 install -r requirements.txt
sudo python3 setup.py install

b. Create keys, write down mnemonic, store it somewhere safe

./deposit.sh new-mnemonic
Choose language: 3. English
Choose mnemonic language: 4. English
Choose how many validators: 1
Choose network/chain name: pulsechain

c. Change ownership of deposit data file
(replace USERNAME below with your Ubuntu username)

cd validator_keys
sudo chown -R USERNAME:USERNAME deposit_data-*.json

d. Transfer deposit data file

d.1. Install WinSCP on Windows
https://winscp.net/eng/download.php

d.2. Open WinSCP, Connect to Ubuntu machine, Open folder /blockchain/staking-deposit-cli/validator_keys, Transfer “deposit_data-*.json” to your Documents

e. Upload deposit data file to Launchpad, Connect Metamask and follow rest of instructions
https://launchpad.pulsechain.com

f. Find your deposit and check its status
https://beacon.pulsechain.com/validators/initiated-deposits

g. Import validator keys

sudo -u lighthouse docker run -it --network=host -v /blockchain:/blockchain registry.gitlab.com/pulsechaincom/lighthouse-pulse lighthouse --network pulsechain account validator import --directory /blockchain/staking-deposit-cli/validator_keys --datadir=/blockchain/

9. Run Validator Client

a. (Replace suggested-fee-recipient=0xADDRESS with your Pulsechain address)

sudo -u validator docker run -it --network=host -v /blockchain:/blockchain registry.gitlab.com/pulsechaincom/lighthouse-pulse:latest lighthouse vc --network=pulsechain --validators-dir=/blockchain/validators --suggested-fee-recipient=0xCB00d822323B6f38d13A1f951d7e31D9dfDED4AA --beacon-nodes=http://127.0.0.1:5052

TODO

Support:
https://t.me/PulseDEV
https://t.me/GammaDevOpsChat
https://t.me/PulsechainCom
https://t.me/slainemcroth (DipSlayer/tdslaine)

This guide is a work in progress, please report issues and provide feedback! Also please feel free to copy anything

Contact me on Telegram: https://t.me/togosh

--

--