🛡
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. 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.
Type | Value | Influenced by |
---|---|---|
CPU | 4 cores |
|
RAM | 8 GB |
|
Disk | 30 GB root partition with LVM for disk extension |
|
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 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
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
}
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 modified 5mo ago