Everyone talks about Dusk’s fast finality. I found the interesting part in what happens when the first block fails.@Dusk
Spent the afternoon digging through Dusk’s finality rules in the whitepaper and current docs, and the n=0 path is what actually stopped me.
Blocks move through four states: Accepted, Attested, Confirmed, then Final. The key number is n, how many earlier iterations in the same round already failed.
When n equals zero, the block is marked Attested right away. Once it has a single successor that is itself Attested or Confirmed, it becomes Confirmed. That is the fast path the docs describe.
When n is greater than zero, the rules change. The block only starts as Accepted. It then needs 2n consecutive Attested or Confirmed blocks after it before it can reach Confirmed. An iteration-5 block with two earlier failures, for example, needs four more good blocks. Only after it is Confirmed and its parent is already Final does it become irreversible.
The design deliberately gives the first successful generator stronger finality. Later ones earn the same strength only after the network has seen more evidence that earlier attempts really failed.
That part checks out.
What kept nagging is how rarely the slower path shows up in everyday conversation. Under normal conditions most blocks take the n=0 route and reach strong finality quickly. The extra requirements only appear when the network is already under stress.
Still wondering how many people quoting “instant finality” have actually sat with the difference between the two paths.
#dusk $DUSK
Spent the afternoon digging through Dusk’s finality rules in the whitepaper and current docs, and the n=0 path is what actually stopped me.
Blocks move through four states: Accepted, Attested, Confirmed, then Final. The key number is n, how many earlier iterations in the same round already failed.
When n equals zero, the block is marked Attested right away. Once it has a single successor that is itself Attested or Confirmed, it becomes Confirmed. That is the fast path the docs describe.
When n is greater than zero, the rules change. The block only starts as Accepted. It then needs 2n consecutive Attested or Confirmed blocks after it before it can reach Confirmed. An iteration-5 block with two earlier failures, for example, needs four more good blocks. Only after it is Confirmed and its parent is already Final does it become irreversible.
The design deliberately gives the first successful generator stronger finality. Later ones earn the same strength only after the network has seen more evidence that earlier attempts really failed.
That part checks out.
What kept nagging is how rarely the slower path shows up in everyday conversation. Under normal conditions most blocks take the n=0 route and reach strong finality quickly. The extra requirements only appear when the network is already under stress.
Still wondering how many people quoting “instant finality” have actually sat with the difference between the two paths.
#dusk $DUSK