Lanes devnet

producers making blocks at the same time, merged into one chain every height

Produced right noweach producer's newest block, sealed on its own lane, all at the same time

Each producer numbers its own lane (lane block #); the lanes merge into one chain at each height: the big number is the shared height its newest block went into.

Producers and the merge

Boxes: blocks as each producer sealed them, solid once certified. Lines: blocks a height's Cut took; dot: the height, green once final. Tap a dot.

Height

waiting for a height

Time to finalper block, last 60 s

Per producerlast 60 s

Slotsheights in the last 60 s, and the JSON-RPC history over the newest 2,000

A height is a slot: consensus decides every one (none skipped). An empty Cut is a height where no lane had a new certified block. History gaps are heights the chain has but this member's getBlock history does not (records dropped while replaying after a restart); the chain is unaffected.

What this design does that a single-leader chain does not

Members

How it works

A producer has a lane of its own: it takes transactions, seals them into blocks at its own pace and sends them out, without waiting for anyone. Members check each block and attest it; attestations weighing a quorum make a certificate. Every height, consensus decides a Cut: references to the newest certified blocks of every lane. Consensus orders references only, so it does not wait for execution. Every member then executes the referenced blocks in one deterministic order (the lanes take turns going first, rotating with the height), computes the bank hash and signs it; the height is final when members weighing a quorum signed the same hash. A transaction can enter through any producer, so no single producer can keep it out.