Components: Jormungandr, JCLI
This information is republished from https://github.com/input-output-hk/shelley-testnet/blob/master/docs/stake_pool_operator_how_to.md#stake-pool-operator-journey
In the following steps, we will download, configure and start the jormungandr node. Note: If you have any issues while installing Jormungandr and JCLI, please see How to install Jormungandr Networking (macOS).
Go to Jormungandr configurations and select the one for Incentivised Testnet and download the appropriate version of jormungandr from GitHub.
From GitHub download the file appropriate for your operating system.
- For Linux download the file ending in
- For macOS download the file ending in
- Using the command line: in terminal, navigate to the directory where you downloaded the archive and execute
tar -xzvf jormungandr-v0.8.0-rc9+1-x86_64-unknown-linux-gnu.tar.gz
- In Finder: navigate to the folder where you saved the archive (the default is the Downloads folder), Double click the archive to extract it. This will create a folder with the same name as the archive and the folder will have two files in it.
In Terminal just type
and it will return something like
$ jcli 0.8.0-rc7
Victory! jcli is available to us.
From Jormungandr Configurations, save the config.yaml. This file is important because it has a list of trusted peers. The trusted peers are the nodes from which we are going to start downloading our own copy of the blockchain.
Since this, we are trying to configure a stake pool we need to add to the configuration file our public IP, listen address and the storage location.
From Jormungandr Configurations, you can copy the genesis hash and save it to a file called
Once you have created the genesis-hash, check it's contents to make sure it matches the one Jormungandr Configurations page.
Executing the command in the same location where all 3 files were saved.
./jormungandr --genesis-block-hash $(cat genesis-hash.txt) --config ./stakepool-config.yaml
Execute the following command in your command-line interface to check if your node is syncing.
./jcli rest v0 node stats get --host "http://127.0.0.1:3100/api"
It will output something like this:
--- blockRecvCnt: 2 lastBlockDate: "0.6056" lastBlockFees: 4 lastBlockHash: 29f83b496e53073221d26cd5f09050d819069a699c30600f9afbf41170236b7a lastBlockHeight: "482" lastBlockSum: 10000000004 lastBlockTime: "2019-12-04T15:57:20+00:00" lastBlockTx: 1 state: Running txRecvCnt: 1 uptime: 46 version: jormungandr 0.8.0-rc7-ab32b2c
Your node is synced with the blockchain when it receives all the blocks that are created in the network/blockchain in real-time. You can check that by following the below 2 rules:
- Execute the
node statscommand from above multiple times and check that the value of the lastBlockHash field is updated (with the actual blockchain values, there should be a new block created every 2-5 minutes);
- Compare the value of the lastBlockTime field (that is in UTC) with the local time of the node. If the difference if more than 10 minutes, the node might not be
syncedeven the node received blocks in the past (blockRecvCnt > 0)