Understanding the allocation of Leader slots

Hi there - I just wanted to clarify my understanding of being allocated a leader slot. It appears that these are calculated or allocated one day in advance of the beginning of the next epoch. Does this mean if you do not get allocated any slots for the next epoch then you do not get a chance of being nominated as a slot leader until the following epoch? - the only reason I ask this is because PoolTool gives your pool an estimated chance of minting a block in the epoch plus a realtime adjusted one but I don’t understand this because if you are not selected then how does it make any difference whereabouts in the epoch you are?

Pooltool gives you an estimation based on active stake amount… it will not guarantee that u will make blocks even pooltool will show u 100% chances for 1 block (there are just statistics…) the protocol itself will decide if your pool will be selected or not to create blocks … It’s a lottery… big amount staked gives you more changes to be selected…

Slot Leader Election

The Cardano network consists of a number of stake pools that control the aggregated stake of their owners and other delegators, also known as stakeholders. Slot leaders are elected randomly from among the stake pools. The more stake the pool controls, the greater the chance it has of being elected as a slot leader to produce a new block that is accepted into the blockchain. This is the concept of proof-of-stake (PoS).

Thanks - I am reading the link you sent and it is very useful. Do you know if the slot leader election process is something that only happens once every epoch or is it a continuous process which means that a pool could be elected at any time?

I believe the slot leader election it’s happening with 1,5 days before new epoch as u said…

Great - thanks

Is that really true and publicly circulated knowledge? If so, it could mean that every stake pool that is not scheduled could shut down with no harm for the rest of the epoch (to save obvious cost) when there is zero potential for reward. I doubt that the protocol relies on good will when at the same time it publishes the outcome of a lottery that is binding for 5 days.

More likely there is a continuous lottery that provides sufficient motivation to stay online.

That was my thoughts - I did read somewhere that by knowing in advance allows you to perform system maintenance on your servers when you are not scheduled a block. However for small operators like me that generally do not get any leader slots each epoch I am wondering what the motivation is for keeping two relays and a BP node running for the next five days each time without any reward. There really needs to be a method of detecting if nodes are continuously up so that this is taken into account when block allocation is being performed.

1 Like

There is a post from an ambassador here, which gives more detail but isn’t conclusive (yet) IMHO

Yes I read that. I run the leaderlog script continuously on my node and the most exciting part of each five day period is when it calculates the slots around 1.5 days before the end of the current epoch. The problem is that since I only have around a 10% chance each allocation it means that there is nothing I can do for the next 5 days except wait and hope. I do keep my nodes running continuously but it is a shame that this is not taken into consideration.

This could well be by design. From the network perspective, it is not efficient to keep thousands of nodes with very little stake synchronized all the time. Much better, the number of nodes converges to some optimum. IOW, the network would not want to award small nodes for being online if it was better that they were not.

I just delegated my 3K ADA to a staking pool. In case they’re not selected as a leader slot in the next epoch, is there a way to earn yield from my delegated ada ?

You wont earn yield if the pool has not been selected for a slot during that epoch. However over time it should work out the same as when the small pool does mint a block you will get proportionally more. Hope this helps

Thanks for your feedback. There should be a way to enable staked ada not selected for a slot during epochs to earn yield by extending the wallet functionality. Thoughts?

Not sure that would be possible as it works on a lottery system based on the amount of stake. Maybe someone with more technical knowledge may comment on this

Would you happen to know the best place to present this technical and economical challenge? Thanks

I will let someone else address this that has the requisite knowledge

1 Like

@Yu_Sung_Yeh the amount of ADA your hold constitute your fraction of minting a share of the 21600 blocks in an epoch. You calculate …

21600 * mystake / total stake

for 1k of ADA that would be 7 blocks in 100 years approximately.

Because your own chances of minting a block might be too small or you don’t want to run your own stake pool, you can delegate your right to someone else and such increase their likelihood of minting blocks. If you choose to delegate to a small pool, you have the risk of not getting rewards when that pool doesn’t win the lottery - the choice is yours and this is by design.

1 Like

It is a lottery based on the amount of stake in the pool, and over time you should get the same amounts of rewards if you are in a small pool or a big one that makes blocks more often but has more delegators to share the rewards with. If you just want to be in it for a month or two though it might be more safe to stake in a large pool.
I have a pretty small pool but by miracle it has produced blocks 2/3 epochs and given bigger rewards to the stakers, so even if it does not produce blocks for a while now it will even out in the end as if they had staked in a larger pool. That is my understanding of the concept :slight_smile:

This is a really good point. What exactly is my incentive as a small pool operator to keep the nodes alive when i know I wont be minting any blocks this epoch?

You want your nodes to be in sync when it’s your turn to be a leader.