Just wondering how accurate the cncli leaderlogs scripts are meant to be? The same question applies to the python projects which use blockfrost API to determine slots.
WOOF pool minted a block yesterday (first one ever!), but prior to the epoch, the leaderlogs-next script did not report any assigned slots for the pool. And now running the leaderlogs-current script does not show any assigned slots.
Is this a fluke, where some other pool missed their assigned slot, and then the next lottery went to my pool? Other explanations?
Thanks
Kurt
Ok, I double-checked and all the args to the leaderlog command look correct.
I also ran the ReLeaderLogs python script using the BlockFrost API, and it gave same results of no assigned slots.
I must of just got very lucky. I’m not complaining.
But this is a very interesting question. What happens if I am scheduled to mint a block but my server goes offline. Who gets to mint it and how could cncli predict that?
You mean no other pool i think. If you miss it its gone. No one else can mint that block assuming the slot is not assigned twice. Which happens on ~5% of the blocks
So, it sounds like if cncli-leaderlogs shows no assigned slots for a pool, there may still be a remote chance to mint a block in another nearby slot for the 5% of assigned slots that are missed.
I’m guessing these other slots get pre-assigned with a leader, too, but they are just not used.
This was a research work of the xSPO community which Vahid from Ada4Good published through his blog. New joiners to the community are always welcome BTW
A few facts about the comments above:
Leaderlogs are deterministically precalculating which slots are assigned to the pool
It is not possible the a block comes out of the surprise.
Slot assignments are calculated based on the Nonce (calculated 36 hours before epoch change), the VRF (which is not changing for your pool) and the stake amount
None of the above is changing during the epoch!
Slot assignments of any pool are not influencing slot assignments from other pools. By that a slot can be assigned twice which will result in a slot battle
If one pool misses a slot no other pool will mint the block instead. Every pool is just taking the slots which it’s meant to mint
Given all of that I only can think of the following reasong for your observation:
Your leaderlog calculation was for a different epoch
Something is wrong with the way how you are calculating the leader log (wrong VRF key, not synced, no current snapthot)
You calculated it exactly at the 36 hour border before the epoch. I’ve heard about scenarios where calculating it directly at the border resulted in calculating it with a wrong nonce. So better not do it exactly at the 36 hour border. 15 minutes later should be fine.
Yes, just added the info above to be clear about it.
I took a look on the script from @extramileit above.
Not sure if the “ledger-state” is handled correct there. I don’t find the accoring parameter in his script.