🛡️Run Node

Use the gitshockd command with the required command line options to start a node. Alternatively, use the launcher to start gitshockd interactively with the most common options. (comingsoon)

Configure and run an Gitshock node

Run the local node by running the gitshockd script in the base directory of the repository. Nodes can connect to Ethereum Mainnet and public testnets. Use the gitshockd command with the required command line options to start a node.

Validator Specification Hosting

Determine public network system requirements by checking CPU and disk space requirements using Prometheus. Grafana provides a sample dashboard for Besu.

CPU requirements are highest when syncing to the network and typically reduce after the node is synchronized to the chain head.

TypeValueInfluenced by


4 cores

  • Number of JSON-RPC queries

  • Size of the blockchain state

  • Block gas limit

  • Block time


8 GB

  • Number of JSON-RPC queries

  • Size of the blockchain state

  • Block gas limit


30 GB root partition with LVM for disk extension

  • Size of the blockchain state

Service configuration

gitshockd binary needs to run as a system service automatically upon established network connectivity and have start / stop / restart functionalities. We recommend using a service manager like systemd.

Example systemd system configuration file:

Description=Gitshock Edgeware Server

ExecStart=/usr/local/bin/gitshockd server --config /home/ubuntu/yourfolder/config.yaml


Start Node

start node and join validator using command line

gitshockd secrets init --data-dir validator-1
Public key (address) = 0xb49CFc4c876528C289307c3322C12fB05f713614
BLS Public key       = 0x913f3f04666a3a4d042075ef1d044ece520e56516b78a2a58fd77f63143fee96e23f1c42e73755e66d93d8b92620885e
Node ID              = 16Uiu2HAmSPLjrxAYcQG8sivB68kbeLyarq6qWh3UGkY9aKUyFqan

Download genesis block Gitshock Chain, sync block and join validators

< Coming Soon Genesis Block>

gitshockd server --data-dir validator-1 --chain genesis.json  --libp2p --nat <private_ip> --seal
2022-12-05T11:51:31.883+0800 [INFO]  gitshock.server: Data dir: path=node-1
2022-12-05T11:51:32.011+0800 [INFO]  gitshock.blockchain: Current header: hash=0x3a2b87dcc8898311a1c7dc84d87cad1827581f8dcddb62a2126be7ac4b362c2d number=0
2022-12-05T11:51:32.012+0800 [INFO]  gitshock.blockchain: genesis: hash=0x3a2b87dcc8898311a1c7dc84d87cad1827581f8dcddb62a2126be7ac4b362c2d
2022-12-05T11:51:32.031+0800 [INFO]  gitshock.server.ibft: validator key: addr=0xb49CFc4c876528C289307c3322C12fB05f713614
2022-12-05T11:51:32.032+0800 [INFO]  gitshock.server: GRPC server running: addr=
2022-12-05T11:51:32.032+0800 [INFO]  gitshock.network: LibP2P server running: addr=/ip4/
2022-12-05T11:51:32.032+0800 [INFO]  gitshock.network: Omitting bootnode with same ID as host: id=16Uiu2HAmSPLjrxAYcQG8sivB68kbeLyarq6qWh3UGkY9aKUyFqan
2022-12-05T11:51:32.048+0800 [INFO]  gitshock.server.jsonrpc: http server started: addr=

if your node cannot connect peers, you can add manual by using this command and start again your node :

< Stop Node & Command this >

gitshockd peers add
--addr stringArray
--grpc-address string

Setup Log Files

If configured without log rotation, log files could use up all the available disk space which could disrupt the validator uptime.

Log files need to be rotated on a daily basis (with a tool like logrotate).

Example logrotate configuration:

        rotate 7
                /usr/bin/systemctl stop gitshockd.service
                /usr/bin/systemctl start gitshockd.service


Now that you've launched your Gitshock node, what should you do next?

Your Gitshock node will perform consensus on its own, but it is not yet a validator on the network. This means that the rest of the network will not query your node when sampling the network during consensus.

Last updated