ZooBC wiki

Changes to “Missed turns, suspension and expulsion”

#44 (zoobc.how, 2026-10-26 20:39 UTC) → #105 (zoobc.how, 2026-10-26 20:44 UTC): Seed article updated

…
When a block is made, every node that was drawn for an earlier round of that height and did not produce is a skipped producer and counts a miss. The node that made the block has its own miss counter reset.
 
+ The reason does not matter. A node that was offline, one that was too slow and one that was online but held its block back are treated alike. A skipped turn is a skipped turn. (Holding a block back is also the only way a producer could try to influence the seed; see [[block-seed]].)
− The reason does not matter. A node that was offline, one that was too slow and one that was online but held its block back are treated alike: the network cannot tell them apart, and holding a block back is the only way a producer can influence the seed (see [[block-seed]]). A skipped turn is a skipped turn.
 
## Missing: no income, falling score
…
To come back, a suspended node's software sends a **ping**: a liveness attestation (transaction type 59) from the node's own key, with a fee of 0, at most one per 120-block window, valid only from a suspended node. The ping returns the node to the draw on probation. It never erases misses or stops the loss of score; that happens only when the node makes a block at one of its next turns.
 
+ ![State diagram: an active node is suspended at its fourth miss in a row; a ping puts it back in the draw on probation; its own block makes it active again; from suspension or probation, a score of zero expels it.](nodes-012.svg)
− ![State diagram: an active node is suspended at its fourth miss in a row; a ping puts it back in the draw on probation; its own block makes it active again; a score of zero expels it from either state.](nodes-012.svg)
 
## Expulsion
…

History