@Dusk_Foundation $DUSK #dusk
I figured a blockchain either finalizes a block or it doesn't move forward at all. turns out dusk built an entire third state in between, one that only shows up after the network fails the same round sixteen times in a row.
When i first looked at this I literally thought the growing timeout after each failed round was just a patience mechanism, something to smooth over slow nodes. the real reason it exists was more interesting.
Here's why. Every failed round makes the next attempt wait two seconds longer, starting at seven and maxing out at forty. that's built for small hiccups, one slow vote here, one missed signature there. but nothing in that design stops the network from failing over and over for a genuinely bad reason, and a chain that just sits there waiting forever is a worse outcome than almost any single bad block.
So dusk is built a hard structure arOund how long a round is allowed to struggle. sixteen failed attempts in a row and the system drops into what they call emergency mode. fifty attempts is the absolute ceiling for any round. and there's one specific slot, iteration 255, set aside only for emergency blocks.
What made this more intresting to me is dusk didn't try to hide how long a failing round can still look normal. It just drew a hard line for when normal stops counting.
What makes this consensus patient is also exactly what lets it look fine for a long stretch while it's actually stuck. Dusk didn't shorten that window, they just built a wall at the end of it.
I still don't know what actually changes once emergency mode kicks in. does the same committee still vote the same way, doeS a block finalized there carry the same guarantee as one from a clean round. for a chain built around institutional settlement, that's not something i'd want left unclear.
$BCH $ENA #BullRunAhead
I figured a blockchain either finalizes a block or it doesn't move forward at all. turns out dusk built an entire third state in between, one that only shows up after the network fails the same round sixteen times in a row.
When i first looked at this I literally thought the growing timeout after each failed round was just a patience mechanism, something to smooth over slow nodes. the real reason it exists was more interesting.
Here's why. Every failed round makes the next attempt wait two seconds longer, starting at seven and maxing out at forty. that's built for small hiccups, one slow vote here, one missed signature there. but nothing in that design stops the network from failing over and over for a genuinely bad reason, and a chain that just sits there waiting forever is a worse outcome than almost any single bad block.
So dusk is built a hard structure arOund how long a round is allowed to struggle. sixteen failed attempts in a row and the system drops into what they call emergency mode. fifty attempts is the absolute ceiling for any round. and there's one specific slot, iteration 255, set aside only for emergency blocks.
What made this more intresting to me is dusk didn't try to hide how long a failing round can still look normal. It just drew a hard line for when normal stops counting.
What makes this consensus patient is also exactly what lets it look fine for a long stretch while it's actually stuck. Dusk didn't shorten that window, they just built a wall at the end of it.
I still don't know what actually changes once emergency mode kicks in. does the same committee still vote the same way, doeS a block finalized there carry the same guarantee as one from a clean round. for a chain built around institutional settlement, that's not something i'd want left unclear.
$BCH $ENA #BullRunAhead