Leader Log Scripts

Scripts for stake pool owners to check when their pool is scheduled for the slot leadership

Leader Log scripts were developed by papacarp from pooltool.io. For full details of the scripts see pooltool.io public github

The scripts allow stake pool owners to check when their pool is scheduled for the slot leadership. The steps below cover the following.

All steps are required to be run on your Block Producer node

Installation

Below guide is for Ubuntu 20.04.

Update and add ppa package:

sudo apt-get update
sudo apt-get install -y software-properties-common
sudo add-apt-repository ppa:deadsnakes/ppa

Update, install python and pip:

sudo apt-get update
sudo apt-get install -y python3.9
sudo apt-get install -y python3-pip

Check version of the scripts:

python3 --version
pip3 --version

Python output Python 3.8.5

PIP output pip 20.0.2 from /usr/lib/python3/dist-packages/pip (python 3.8)

Install python package pytz:

pip3 install pytz

Download scripts

Download getSigma.py and leaderLogs.pyscripts from github:

Example uses $NODE_HOME as the location of the Cardano node folder

cd $NODE_HOME
wget https://raw.githubusercontent.com/papacarp/pooltool.io/master/leaderLogs/getSigma.py
wget https://raw.githubusercontent.com/papacarp/pooltool.io/master/leaderLogs/leaderLogs.py

Executing scripts

Create Cardano ledger state:

cardano-cli query ledger-state --mainnet --allegra-era --out-file ledger-state.json

This may take a minute and create ledger-state.json inside your $NODE_HOME

Using your Pool ID and ledger-state.json execute getSigma script:

If you do not know your pool id you can find this in any of the staking pool sites (adapools.org, pooltool.io or cardanoscan.io). Example below from pooltool.io

python3 getSigma.py \
--pool-id a930baffeb4ab6d3e93b39a70f1d6b5f5f922baad9e4f618da285b05 \
--ledger ledger-state.json

This will output your Sigma value for the next steps

building active stake

Sigma: 6.970276119270975e-05

Run leaderLogs.py with following parameters.

Below summary of arguments for full details see the pooltool.io github. Some of these are optional arguments but included in the example as these are what I use.

  • --vrf-skey path to the pool vrf.skey file.

  • --sigma value from the previous command

  • --pool-id stake pool id

  • --epoch the epoch your running this for. In this case 223

  • --epoch-nonce epoch 223 nonce (different value of each epoch). This can be found here.

  • -bft show potential blocks you would have had if Cardano was full decentralised.

  • --tz set the timezone of your location. Run command below to see list of timezones

    timedatectl list-timezones 

Execute leaderLogs.py:

python3 leaderLogs.py \
--vrf-skey vrf.skey \
--sigma 6.970276119270975e-05 \
--pool-id a930baffeb4ab6d3e93b39a70f1d6b5f5f922baad9e4f618da285b05 \
--epoch 223 \
--epoch-nonce fa2cd68857d74b32d704c86ac94ad40c2d7b5d7143ace3ea4e1fa798794059c0 \
-bft \
--tz Europe/London

If are scheduled for slot leadership then you should see output similar to this:

Checking leadership log for Epoch 223 [ d Param: 0.58 ]
2020-10-14 20:19:53 ==> Leader for 164102, Cumulative epoch blocks: 1
2020-10-14 20:19:53 ==> Leader for slot 164102, Cumulative epoch blocks: 1
2020-10-15 08:39:00 ==> Leader for 208449, Cumulative epoch blocks: 2
2020-10-15 08:39:00 ==> Leader for slot 208449, Cumulative epoch blocks: 2
2020-10-17 10:46:55 ==> Stolen by BFT for 388924, Cumulative stolen blocks due to d param: 1
2020-10-17 10:46:55 ==> Leader for slot 388924, Cumulative epoch blocks: 2
2020-10-17 21:01:49 ==> Stolen by BFT for 425818, Cumulative stolen blocks due to d param: 2
2020-10-17 21:01:49 ==> Leader for slot 425818, Cumulative epoch blocks: 2

Security: It is responsibility of the operator to protect and secure the stake pool. Consider what you share with others. The Basics

Support: If you find the contents useful, then please consider supporting by either delegating your ADA to ticker Love2 or sending ADA to the following address - addr1qy2jswg2xfca87h79050dzgj0yup69u9gpclwn9jl2g5tlfvaj6kvenchu5gwxlfhffysxsnekq6kh4z7yq758w2x3gq7xc7sn

Last updated