You might think being a pool operator is boring: turn on computer, start pool software, wait for assigned block, produce block and add it to the chain, wait for the next… This actually isn’t far from the truth, however there are a few complications…
Slot Slaughters
When, at the start of each epoch, the Ouroboros protocol does its job and randomly distributes its slot leadership tasks (the ‘right’ to produce a block at a certain time) among all stake pools, it doesn’t care about the possibility that it may schedule two or more pools to produce a block at the exact same slot.
This happens to 10% of all blocks on average; about 432 times a day!
If the network is working well, both pools will use the same parent block to build from and then the first pool to distribute their block the widest and fastest to all the other nodes will “win” and receive the block reward. The other pool’s block is deleted.
Height Fights
Sometimes, when the network is less stable and when blocks are scheduled in tight succession, a pool may produce a block and add it to the chain before it has received a preceding block produced by another pool, for example when it had to travel all the way from the other side of the globe, through too many other nodes, to be on time.
Whenever this happens, a fork is created in the chain; two different blocks are attached to the same parent block. Since only one chain can survive, one of the two blocks must be destroyed, so any forked-off nodes can reconnect to the dominant chain.
Ideally, the pool with the earlier slot should always win – as they have a competitive advantage (they can make their block in advance of other pools). However, in practice a pool could make a block first, but still not win if another pool has more nodes shared with the next pool lined up for the next block.
You Win Some, You Lose Some
For these reasons, it is impossible for a pool to always produce all blocks assigned to it. However, the percentage of battles won does say something about a pool’s strength; how fast it produces blocks and above all, how well it is connected to the network to propagate its blocks faster than its competitors.
Go have a look how staking4ADA is doing! You will find all the statistics on Pooltool.io/competitive. When comparing pools on the Leaderboard, pay attention to the number of plays; a few pools may get lucky and win their first 3 or 4 battles, but a pool’s real strength can only become apparent after a large number of plays.
I really appreciate you sharing the “behind the scenes” activity and how it plays out.
Thanks, glad it is appreciated, but it is also written out of self defence. I’d hate to think our pool gets blamed for things beyond our control such as the random block assignment and these block competitions.