Skip to content

Common commands

This guide provides a curated list of common commands and Polygon-specific operations essential for node operators. Whether you’re setting up a full node, validator node or troubleshooting, these commands will assist you in managing your Polygon PoS environment effectively.

Frequently used commands for Bor & Heimdall

Bor

To execute Bor IPC commands, use the following syntax:

bor attach .bor/data/bor.ipc <command>
IPC Command RPC Command Description
admin.peers.length curl -H "Content-Type: application/json" --data '{"jsonrpc": "2.0", "method": "net_peerCount", "params": [], "id": 74}' localhost:8545 Retrieves the number of peers connected to the node.
admin.nodeInfo Provides detailed information about the node.
eth.syncing curl -H "Content-Type: application/json" -d '{"id":1, "jsonrpc":"2.0", "method": "eth_syncing","params": []}' localhost:8545 Indicates whether the node is syncing (true) or not (false).
eth.syncing.highestBlock - eth.syncing.currentBlock Compares the current block of your node to the highest block.
eth.blockNumber curl -H "Content-Type: application/json" -d '{"id":1, "jsonrpc":"2.0", "method": "eth_blockNumber","params": []}' localhost:8545 Returns the latest block number processed by the node.
debug.setHead("0x"+((eth.getBlock('latest').number) - 1000).toString(16)) Rewinds the blockchain to 1000 blocks prior.
admin.nodeInfo.enode Retrieves the public enode URL of the node.
eth.syncing.currentBlock * 100 / eth.syncing.highestBlock Calculates the remaining percentage for block synchronization.
eth.getBlock("latest").number curl http://YourIP:8545 -X POST -H "Content-Type: application/json" -d '{"jsonrpc":"2.0", "id":1, "method":"bor_getSigners", "params":["0x98b3ea"]}' Queries the height of the latest Bor block.
curl http://YourIP:8545 -X POST -H "Content-Type: application/json" --data '{"method":"eth_chainId","params":[],"id":1,"jsonrpc":"2.0"}' Retrieves the chainID.

Heimdall

Command Description
curl localhost:26657/net_info? Returns the number of connected peers using jq .result.n_peers.
curl -s localhost:26657/status Retrieves Heimdall’s current block height using jq .result.sync_info.latest_block_height.
curl localhost:26657/net_info Queries the node using its moniker with grep moniker.
curl -s localhost:26657/status Checks if Heimdall is in sync using jq .result.sync_info.catching_up.
curl -s localhost:26657/status Verifies Heimdall’s sync status using jq .result \| jq .sync_info.
heimdalld unsafe-reset-all Resets the database in case of issues.
curl localhost:26657/status Provides comprehensive information about Heimdall.

Node management commands

Description Command
Locate Heimdall genesis file $CONFIGPATH/heimdall/config/genesis.json
Locate heimdall-config.toml /etc/heimdall/config/heimdall-config.toml
Locate config.toml /etc/heimdall/config/config.toml
Locate heimdall-seeds.txt $CONFIGPATH/heimdall/heimdall-seeds.txt
Start Heimdall $ sudo service heimdalld start
Start Heimdall rest-server $ sudo service heimdalld-rest-server start
Start Heimdall bridge-server $ sudo service heimdalld-bridge start
Locate Bor genesis file $CONFIGPATH/bor/genesis.json
Start Bor sudo service bor start
Retrieve Heimdall logs /var/log/matic-logs/
Check Heimdall logs tail -f heimdalld.log
Check Heimdall rest-server logs tail -f heimdalld-rest-server.log
Check Heimdall bridge logs tail -f heimdalld-bridge.log
Check Bor logs tail -f bor.log

Useful configuration commands

Sync status of Heimdall

To check if Heimdall is synced, run:

curl http://localhost:26657/status

Latest block height on Heimdall

To check the latest block height on Heimdall, run:

curl localhost:26657/status

Latest block height on Bor

To check the latest block height on Bor, use:

curl http://<your ip>:8545 -X POST -H "Content-Type: application/json" -d '{"jsonrpc":"2.0", "id":1, "method":"bor_getSigners", "params":["0x98b3ea"]}'

Cleanup: deleting remnants of Heimdall and Bor

For Linux package:

sudo dpkg -i matic-bor
sudo rm -rf /etc/bor

For Binaries:

sudo rm -rf /etc/bor
sudo rm /etc/heimdall

Terminate Bor process

For Linux:

ps -aux | grep bor
sudo kill -9 <PID>

For Binaries:

cd CS-2003/bor
bash stop.sh

Retrieve latest peer details

To retrieve the latest peer details, run:

bor attach bor.ipc
admin.peers.forEach(function(value){
    console.log(value.enode+',')
})
exit

Stop Heimdall and Bor services

For Linux packages:

sudo service heimdalld stop
sudo service bor stop

For binaries:

pkill heimdalld
pkill heimdalld-bridge
cd CS-2001/bor
bash stop.sh

Remove Heimdall and Bor directories

For Linux packages:

sudo rm -rf /etc/heimdall/*
sudo rm -rf /etc/bor/*

For binaries:

sudo rm -rf /var/lib/heimdalld/
sudo rm -rf /var/lib/bor

Last update: December 15, 2023
Authors: EmpieichO (90.57%), Anthony Mpho Matlala (9.43%)