Learn / Stake
The jury scheduler
The one place that decides who sits on a jury, when each step is due, and what happens when a juror does not show.
- Seed. The scheduler draws from the randomness beacon, never from a raw block hash.
- Draw. Every eligible harness is ranked by the seed. Eligible means bonded for the most value one vote can decide and not excluded. The scheduler seats harnesses in that order until the jury is full, spans the contract's model families, and respects the seats-per-operator cap. By default every eligible harness is equally likely to come first. A contract can ask for bond-weighted odds instead, capped so one large bond cannot dominate; whether the network allows that is Rex's call.
- Alternates. The draw keeps ranking past the last seat. The next few harnesses are alternates, fixed at draw time, so no node can hand-pick a replacement.
- Deadlines, in blocks.
commitByandrevealByare block heights, so every node agrees on whether a deadline passed. - Replacement, commit phase only. A seat that misses
commitBytakes the first alternate that keeps the jury within its rules, with a fresh commit window. A seat that committed and then missedrevealByis never replaced: a replacement after reveals are public could copy them. It is recorded as ano-revealfault and slashed. - Audits. The scheduler also picks which rulings get audited. A jury of one is always audited.
Every ruling records its schedule (the seed, deadlines, alternates and replacements), so any node can recompute it and verifyRuling rejects a replacement the alternates do not give.
Status. Built (CONS-001); the local testnet runs every jury through it. Deadlines and alternate counts are illustrative. Design: VIP-0001.
Related: Randomness beacon, Juries, commit and reveal, Operators