chore(pipeline): spartan config#21285
Conversation
This stack of pull requests is managed by Graphite. Learn more about stacking. |
58cfbc5 to
36f99e9
Compare
3937191 to
26acaf0
Compare
36f99e9 to
9511446
Compare
26acaf0 to
f18cc20
Compare
9511446 to
f3e3e68
Compare
f18cc20 to
b7b0c11
Compare
f3e3e68 to
829607e
Compare
0944eb7 to
de53468
Compare
829607e to
87da649
Compare
de53468 to
82f2dbd
Compare
87da649 to
9462d6c
Compare
9462d6c to
eb4d7fc
Compare
82f2dbd to
4f49f4a
Compare
| this.txCount.add(block.body.txEffects.length); | ||
| this.txsPerBlock.record(block.body.txEffects.length); | ||
| this.manaPerBlock.record(block.header.totalManaUsed.toNumber() / 1e6); | ||
| this.processNewBlock(block); |
There was a problem hiding this comment.
Should we add a different status attribute for these? Just asking, not sure how we handle this later.
There was a problem hiding this comment.
An empty status is assumed to be the checkpointed chain in the dashboard, if adding one we would have to update all of them.
| const now = Date.now(); | ||
| if (this.lastBlockBuiltTimestamp !== undefined) { | ||
| this.blockInterBlockTime.record(now - this.lastBlockBuiltTimestamp); | ||
| } | ||
| this.lastBlockBuiltTimestamp = now; |
There was a problem hiding this comment.
Don't we need to reset this across slots? Otherwise we'd have an interblock time of multiple slots when the proposer is waiting for their turn.
There was a problem hiding this comment.
Why the double implementation in InterruptibleSleep and in abortableSleep here? Also, is it used at all?
There was a problem hiding this comment.
Apologies here, this should be in a branch where i was messing with changing interupts to signals
| VALIDATOR_REPLICAS=4 | ||
| VALIDATORS_PER_NODE=12 |
There was a problem hiding this comment.
I'd shrink the committee or increase the number of validators for this test. We want to stress test that the nodes look at the correct committee in this scenario, and if we have 48 validators with a commitee size of 48, we'll always have the same committee.
There was a problem hiding this comment.
dropping committee size to 32
There was a problem hiding this comment.
Mind dropping to 24? There's still a good chance that we get the required 2/3rd attestations otherwise. Can be in another PR.
There was a problem hiding this comment.
Asked Claude about it:
The probability of still meeting quorum is about 39.2% — so roughly a 60.8% chance that the error causes quorum failure.
This makes intuitive sense when you look at the math: the expected overlap between two random picks of 32 from 48 is only 21.33, which falls just below the 22-vote threshold. You're essentially hoping to land on the right side of the distribution, but the mean is already against you.
The most likely overlap is k = 21 (just one vote short), which is why this scenario is so dangerous — it almost works, making it a subtle failure mode that could be hard to detect in testing but would fail in production about 3 out of 5 times.
4f49f4a to
f1bc6f3
Compare
f1bc6f3 to
7c93544
Compare
| VALIDATOR_REPLICAS=4 | ||
| VALIDATORS_PER_NODE=12 |
There was a problem hiding this comment.
Mind dropping to 24? There's still a good chance that we get the required 2/3rd attestations otherwise. Can be in another PR.
| VALIDATOR_REPLICAS=4 | ||
| VALIDATORS_PER_NODE=12 |
There was a problem hiding this comment.
Asked Claude about it:
The probability of still meeting quorum is about 39.2% — so roughly a 60.8% chance that the error causes quorum failure.
This makes intuitive sense when you look at the math: the expected overlap between two random picks of 32 from 48 is only 21.33, which falls just below the 22-vote threshold. You're essentially hoping to land on the right side of the distribution, but the mean is already against you.
The most likely overlap is k = 21 (just one vote short), which is why this scenario is so dangerous — it almost works, making it a subtle failure mode that could be hard to detect in testing but would fail in production about 3 out of 5 times.
7c93544 to
0f459dd
Compare
0f459dd to
95557a0
Compare
BEGIN_COMMIT_OVERRIDE fix(stdlib): use bigint arithmetic in GasFees.mul() for non-integer scalars (#22383) fix(node-lib): reuse existing fileStore in snapshot sync instead of recreating (#22375) fix: gate req/resp data protocols for unauthenticated peers (#22406) fix(p2p): use per-batch ops array in AztecDatastore.batch() (#22357) chore(pipeline): spartan config (#21285) chore: add claude skill to send txs (#22439) feat(pipeline): minimize deadzone w cross slot attesting (#21435) fix(p2p): avoid 32-bit overflow in attestation pool block position key (#22412) fix(prover-client): increment retry count on timeout re-enqueue to prevent infinite loop (#22355) fix: remove redundant p2pClient.start() call (#22438) chore: add kubectl binary to spartan .gitignore (#22454) END_COMMIT_OVERRIDE
pipelined mbps spartan scenario

pipelined mbps spartan scenario