🛡️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.

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:

[Unit]
Description=Gitshock Edgeware Server
After=network.target
StartLimitIntervalSec=0

[Service]
Type=simple
Restart=always
RestartSec=10
User=ubuntu
ExecStart=/usr/local/bin/gitshockd server --config /home/ubuntu/yourfolder/config.yaml

[Install]
WantedBy=multi-user.target

Start Node

start node and join validator using command line

gitshockd secrets init --data-dir validator-1
[OUTPUT KEYS]
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 0.0.0.0:1478 --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=127.0.0.1:10000
2022-12-05T11:51:32.032+0800 [INFO]  gitshock.network: LibP2P server running: addr=/ip4/127.0.0.1/tcp/10001/p2p/16Uiu2HAmSPLjrxAYcQG8sivB68kbeLyarq6qWh3UGkY9aKUyFqan
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=0.0.0.0:10002

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
--json

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:

/home/ubuntu/yourfolder/logs/node.log
{
        rotate 7
        daily
        missingok
        notifempty
        compress
        prerotate
                /usr/bin/systemctl stop gitshockd.service
        endscript
        postrotate
                /usr/bin/systemctl start gitshockd.service
        endscript
}

Finished

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