Commit 5a10de1
committed
feat(fast-inbox): validator streaming acceptance conditions behind STREAMING_INBOX (A-1383)
Behind the shared `streamingInbox` flag (default off), the validator applies the AZIP-22
Fast Inbox acceptance conditions in place of the legacy per-checkpoint inHash comparison.
Flag off, behavior is byte-identical.
Block proposals (`proposal_handler.handleBlockProposal`), via a new pure
`streaming_inbox_checks` module:
- exists: the referenced bucket resolves in the node's own Inbox view and its rolling
hash matches the reference (unknown bucket is an immediate reject; the bounded wait is
A-1393);
- moves forward: the bucket's cumulative total is at least the parent block's;
- not too new: the bucket is at least INBOX_LAG_SECONDS old at validation time
(dateProvider.now, inclusive boundary);
- caps: the per-block count and the running per-checkpoint total fit their caps.
The derived bundle is fed into per-block re-execution (insertMessagesPerBlock threaded
through openCheckpoint/reexecuteTransactions), whose state-ref comparison stays the final
arbiter.
Checkpoint proposals (`validateCheckpointProposal`): the last-block minimum-consumption
(censorship) rule runs before attesting, via the shared `isInboxConsumptionSufficient`
predicate and the corrected cutoff anchor `getTimestampForSlot(slot - 1) -
INBOX_LAG_SECONDS`; a mandatory unconsumed bucket rejects the checkpoint (no attestation).
Parent/last-consumed buckets are resolved from L1-to-L2 tree leaf counts via a new
`getInboxBucketByTotalMsgCount` archiver lookup (compact post-flip indexing); a leaf count
that does not land on a bucket boundary (a pre-flip padded parent) is rejected/deferred,
the flip (A-1384) closes that gap.
The flag is picked up on the validator config via pickConfigMappings of the shared
`streamingInbox` key. New reasons are non-slashable while the path lands. Full tsc -b
cannot run locally (pre-existing noir-protocol-circuits-types breakage); CI is the
typecheck of record for validator-client. Unit tests cover each check, the caps and lag
boundaries, running-total accumulation, the censorship predicate, and the handler wiring.1 parent 625c2f7 commit 5a10de1
15 files changed
Lines changed: 894 additions & 21 deletions
File tree
- yarn-project
- archiver/src
- modules
- store
- test
- stdlib/src
- interfaces
- messaging
- validator-client/src
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
332 | 332 | | |
333 | 333 | | |
334 | 334 | | |
| 335 | + | |
| 336 | + | |
| 337 | + | |
| 338 | + | |
335 | 339 | | |
336 | 340 | | |
337 | 341 | | |
| |||
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
389 | 389 | | |
390 | 390 | | |
391 | 391 | | |
| 392 | + | |
| 393 | + | |
| 394 | + | |
| 395 | + | |
| 396 | + | |
| 397 | + | |
| 398 | + | |
| 399 | + | |
| 400 | + | |
| 401 | + | |
| 402 | + | |
| 403 | + | |
| 404 | + | |
| 405 | + | |
392 | 406 | | |
393 | 407 | | |
394 | 408 | | |
| |||
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
410 | 410 | | |
411 | 411 | | |
412 | 412 | | |
| 413 | + | |
| 414 | + | |
| 415 | + | |
| 416 | + | |
| 417 | + | |
| 418 | + | |
| 419 | + | |
| 420 | + | |
| 421 | + | |
| 422 | + | |
| 423 | + | |
| 424 | + | |
| 425 | + | |
| 426 | + | |
| 427 | + | |
| 428 | + | |
| 429 | + | |
| 430 | + | |
| 431 | + | |
413 | 432 | | |
414 | 433 | | |
415 | 434 | | |
| |||
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
37 | 37 | | |
38 | 38 | | |
39 | 39 | | |
| 40 | + | |
| 41 | + | |
| 42 | + | |
| 43 | + | |
40 | 44 | | |
41 | 45 | | |
42 | 46 | | |
| |||
Lines changed: 7 additions & 0 deletions
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
38 | 38 | | |
39 | 39 | | |
40 | 40 | | |
| 41 | + | |
| 42 | + | |
| 43 | + | |
| 44 | + | |
| 45 | + | |
| 46 | + | |
| 47 | + | |
41 | 48 | | |
42 | 49 | | |
43 | 50 | | |
| |||
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
224 | 224 | | |
225 | 225 | | |
226 | 226 | | |
| 227 | + | |
| 228 | + | |
| 229 | + | |
| 230 | + | |
| 231 | + | |
227 | 232 | | |
228 | 233 | | |
229 | 234 | | |
| |||
591 | 596 | | |
592 | 597 | | |
593 | 598 | | |
| 599 | + | |
| 600 | + | |
| 601 | + | |
| 602 | + | |
| 603 | + | |
| 604 | + | |
| 605 | + | |
| 606 | + | |
| 607 | + | |
| 608 | + | |
| 609 | + | |
| 610 | + | |
594 | 611 | | |
595 | 612 | | |
596 | 613 | | |
| |||
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
135 | 135 | | |
136 | 136 | | |
137 | 137 | | |
| 138 | + | |
| 139 | + | |
| 140 | + | |
| 141 | + | |
138 | 142 | | |
139 | 143 | | |
140 | 144 | | |
| |||
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
83 | 83 | | |
84 | 84 | | |
85 | 85 | | |
86 | | - | |
| 86 | + | |
| 87 | + | |
| 88 | + | |
| 89 | + | |
87 | 90 | | |
88 | 91 | | |
89 | 92 | | |
| |||
134 | 137 | | |
135 | 138 | | |
136 | 139 | | |
| 140 | + | |
137 | 141 | | |
138 | 142 | | |
139 | 143 | | |
| |||
Lines changed: 11 additions & 0 deletions
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
39 | 39 | | |
40 | 40 | | |
41 | 41 | | |
| 42 | + | |
| 43 | + | |
| 44 | + | |
| 45 | + | |
| 46 | + | |
| 47 | + | |
| 48 | + | |
| 49 | + | |
| 50 | + | |
| 51 | + | |
| 52 | + | |
42 | 53 | | |
43 | 54 | | |
44 | 55 | | |
| |||
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
375 | 375 | | |
376 | 376 | | |
377 | 377 | | |
| 378 | + | |
| 379 | + | |
| 380 | + | |
| 381 | + | |
378 | 382 | | |
379 | 383 | | |
380 | 384 | | |
| |||
389 | 393 | | |
390 | 394 | | |
391 | 395 | | |
| 396 | + | |
392 | 397 | | |
393 | 398 | | |
394 | 399 | | |
| |||
0 commit comments