← G4MM4 Scan Pulsechain Validator Dashboard & Block Explorer

VALIDATOR INSTALLATION GUIDE

Open Public Borderless Censorship-Resistant

Dependencies
OS Requirements

Ubuntu Jammy 22.04 (LTS)

Install Docker

Follow the instructions here

Create Folders
mkdir -p blockchain/consensus
mkdir -p blockchain/execution
jwt.hex
cd blockchain
openssl rand -hex 32 | tr -d "\n" > "jwt.hex"
Validator Keys
Install Dependencies
cd ~
git clone https://gitlab.com/pulsechaincom/staking-deposit-cli.git
cd staking-deposit-cli
sudo apt install python3-pip
sudo pip3 install -r requirements.txt
sudo python3 setup.py install
Generate Validator Keys (New-Mnemonic)
cd staking-deposit-cli
./deposit.sh new-mnemonic \
--num_validators=1 \
--chain=pulsechain \
--folder=/home/<changeusername>/blockchain \
--eth1_withdrawal_address=<eth_address>
Generate Validator Keys (Existing-Mnemonic)
cd staking-deposit-cli
./deposit.sh existing-mnemonic \
--validator_start_index=10 \
--num_validators=1 \
--chain=pulsechain \
--folder=/home/<changeusername>/blockchain \
--eth1_withdrawal_address=<eth_address>

--validator_start_index is the number of validators you ALREADY created.

--num_validators is the number of NEW validators you want to create.

If you try to deposit, and it shows 0 validators on the launchpad, then your permissions are wrong.

Run the following, but update the path & file name.

sudo chmod user:user /path/to/deposit_*.json
Go-Pulse (Execution Client)
Firewall Rules
sudo ufw allow 30303
Go-Pulse Run
sudo docker run -d --restart unless-stopped \
--net=host \
--name=execution \
-v /home/<changeusername>/blockchain:/blockchain \
registry.gitlab.com/pulsechaincom/go-pulse:latest \
--pulsechain \
--authrpc.jwtsecret=/blockchain/jwt.hex \
--datadir=/blockchain/execution \
--http

PRYSM

Prysm-Pulse (Consensus Client)
Firewall Rules
sudo ufw allow 12000/udp
sudo ufw allow 13000/tcp
Prysm Wallet Password

Save your Prysm wallet password:

cd blockchain
nano password.txt

Enter your Prysm wallet password, press CTRL+X, then confirm by pressing y, and finally, press Enter.

Prysm Beacon Run

For the latest release, visit this link.

sudo docker run -d --restart unless-stopped \
--network=host \
--name=consensus \
-v /home/<changeusername>/blockchain:/blockchain \
registry.gitlab.com/pulsechaincom/prysm-pulse/beacon-chain:latest \
--pulsechain \
--jwt-secret=/blockchain/jwt.hex \
--datadir=/blockchain/consensus \
--execution-endpoint=http://127.0.0.1:8551 \
--checkpoint-sync-url=https://checkpoint.pulsechain.com \
--genesis-beacon-api-url=https://checkpoint.pulsechain.com \
--suggested-fee-recipient=<your_eth_address> \
--min-sync-peers=1

You will probably need to reformat the above to work.

Everything before "registry" in one line, and everything after "registry" align the tabs back one tab. I've formatted it the way above for readability.

Prysm Validator Keys Import

For the latest release, visit this link.

sudo docker run -it \
--network=host \
--name=validatorkeys \
-v /home/<changeusername>/blockchain:/blockchain \
registry.gitlab.com/pulsechaincom/prysm-pulse/validator:latest \
accounts import \
--pulsechain \
--keys-dir=/blockchain/validator_keys \
--wallet-dir=/blockchain/consensus/validator
Prysm Validator Run

For the latest release, visit this link.

sudo docker run -d --restart unless-stopped \
--network=host \
--name=validator \
-v /home/<changeusername>/blockchain:/blockchain \
registry.gitlab.com/pulsechaincom/prysm-pulse/validator:latest \
--pulsechain \
--beacon-rpc-provider=127.0.0.1:4000 \
--wallet-dir=/blockchain/consensus/validator \
--wallet-password-file=/blockchain/password.txt \
--datadir=/blockchain/consensus \
--suggested-fee-recipient=<your_eth_address>
Withdrawal

Instructions for withdrawals using Prysm.

Prysm Validator Exit
sudo docker run -it \
--net=host \
--name=validatorexit \
-v /home/<changeusername>/blockchain:/blockchain \
registry.gitlab.com/pulsechaincom/prysm-pulse/prysmctl:latest \
validator exit \
--wallet-dir=/blockchain/consensus/validator \
--beacon-rpc-provider=127.0.0.1:4000

You can also choose "All Accounts".
Enter "Exit my validator"

Create BLS Withdrawal Credentials

See links to official references:
BLS Credential Guide
Example

./deposit.sh --language=english generate-bls-to-execution-change \
--chain=pulsechain \
--mnemonic="sister protect peanut hill ready work profit fit wish want small inflict flip member tail between sick setup bright duck morning sell paper worry" \
--bls_withdrawal_credentials_list="0x00bd0b5a34de5fb17df08410b5e615dda87caf4fb72d0aac91ce5e52fc6aa8de,0x00a75d83f169fa6923f3dd78386d9608fab710d8f7fcf71ba9985893675d5382" \
--validator_start_index=0 \
--validator_indices="50000, 50001" \
--execution_address="0x3434343434343434343434343434343434343434" \
--bls_to_execution_changes_folder=/home/<changeusername>/BLScreditentals
Broadcast Withdrawal Credentials to Beacon Chain

You can broadcast your signed message from the command line using the curl command.

Broadcast Withdrawal Credentials to Beacon Chain
Prysm
curl -X 'POST' \
'localhost:3500/eth/v1/beacon/pool/bls_to_execution_changes' \
-H 'accept: */*' \
-H 'Content-Type: application/json' \
-d @filename.json
Check Validator Withdrawal Credentials
curl -X 'GET' \
'http://127.0.0.1:3500/eth/v1/beacon/states/head/validators/validator_index_number' \
-H 'accept: application/json'

LIGHTHOUSE

Lighthouse-Pulse (Consensus Client)
Firewall Rules
sudo ufw allow 9000

You may need to port forward 9000 on your local router.

Lighthouse Validator Import

For the latest release, visit this link.

sudo docker run -it \
--net=host \
--name=validatorkeys \
-v /home/<changeusername>/blockchain/:/blockchain \
registry.gitlab.com/pulsechaincom/lighthouse-pulse:latest \
lighthouse \
account validator import \
--network pulsechain \
--directory /blockchain/validator_keys \
--datadir=/blockchain/consensus
Lighthouse Beacon Run

For the latest release, visit this link.

sudo docker run -d --restart unless-stopped \
--net=host \
--name=consensus \
-v /home/<changeusername>/blockchain:/blockchain \
registry.gitlab.com/pulsechaincom/lighthouse-pulse:latest \
lighthouse bn \
--network=pulsechain \
--execution-jwt=/blockchain/jwt.hex \
--datadir=/blockchain/consensus \
--execution-endpoint=http://127.0.0.1:8551 \
--checkpoint-sync-url https://checkpoint.pulsechain.com \
--suggested-fee-recipient=<your_eth_address> \
--http
Lighthouse Validator Run

For the latest release, visit this link.

sudo docker run -d --restart unless-stopped \
--net=host \
--name=validator \
-v /home/<changeusername>/blockchain:/blockchain \
registry.gitlab.com/pulsechaincom/lighthouse-pulse:latest \
lighthouse vc \
--network=pulsechain \
--datadir=/home/<changeusername>/blockchain/consensus \
--suggested-fee-recipient=<your_eth_address>
Withdrawal

Instructions for withdrawals using Lighthouse.

Lighthouse Validator Exit
sudo docker run -it \
--net=host \
--name=validatorexit \
-v /home/<changeusername>/blockchain:/blockchain \
registry.gitlab.com/pulsechaincom/lighthouse-pulse:latest \
lighthouse \
--network pulsechain \
account validator exit \
--keystore /blockchain/validator_keys/<YOUR-keystore-m_XXXXXXXXXXXXXX.json> \
--beacon-node http://127.0.0.1:5052

Enter the validator key password.
Enter "Exit my validator"

Create BLS Withdrawal Credentials

See links to official references:
BLS Credential Guide
Example

./deposit.sh --language=english generate-bls-to-execution-change \
--chain=pulsechain \
--mnemonic="sister protect peanut hill ready work profit fit wish want small inflict flip member tail between sick setup bright duck morning sell paper worry" \
--bls_withdrawal_credentials_list="0x00bd0b5a34de5fb17df08410b5e615dda87caf4fb72d0aac91ce5e52fc6aa8de,0x00a75d83f169fa6923f3dd78386d9608fab710d8f7fcf71ba9985893675d5382" \
--validator_start_index=0 \
--validator_indices="50000, 50001" \
--execution_address="0x3434343434343434343434343434343434343434" \
--bls_to_execution_changes_folder=/home/<changeusername>/BLScreditentals
Broadcast Withdrawal Credentials to Beacon Chain

You can broadcast your signed message from the command line using the curl command.

Broadcast Withdrawal Credentials to Beacon Chain
Lighthouse
curl -X 'POST' \
'localhost:5052/eth/v1/beacon/pool/bls_to_execution_changes' \
-H 'accept: */*' \
-H 'Content-Type: application/json' \
-d @filename.json
Check Validator Withdrawal Credentials
curl -X 'GET' \
'http://127.0.0.1:5052/eth/v1/beacon/states/head/validators/validator_index_number' \
-H 'accept: application/json'
Docker Help
Stop Docker Container
sudo docker stop -t 180 <containername>
Remove Docker Container
sudo docker rm <containername>
View Docker Container Logs
sudo docker logs --follow <containername>
List All Images
sudo docker images ps -a
Remove Images
sudo docker image rm <image_id>

ps to see processes (works with containers):

ps

ps -a to see stopped ones too:

ps -a

ls is to list so that it can be used with images (they don't have a process) or containers. Also, add the -a flag for more detail.