Skip to content

chore(pipeline): spartan config#21285

Merged
Maddiaa0 merged 1 commit intomerge-train/spartanfrom
md/pipeline-spartan-config
Apr 9, 2026
Merged

chore(pipeline): spartan config#21285
Maddiaa0 merged 1 commit intomerge-train/spartanfrom
md/pipeline-spartan-config

Conversation

@Maddiaa0
Copy link
Copy Markdown
Member

pipelined mbps spartan scenario

@Maddiaa0 Maddiaa0 force-pushed the md/pipeline-recovery-2 branch from 58cfbc5 to 36f99e9 Compare March 10, 2026 23:01
@Maddiaa0 Maddiaa0 force-pushed the md/pipeline-spartan-config branch 2 times, most recently from 3937191 to 26acaf0 Compare March 12, 2026 15:52
@Maddiaa0 Maddiaa0 force-pushed the md/pipeline-recovery-2 branch from 36f99e9 to 9511446 Compare March 12, 2026 15:52
@Maddiaa0 Maddiaa0 force-pushed the md/pipeline-spartan-config branch from 26acaf0 to f18cc20 Compare March 16, 2026 12:13
@Maddiaa0 Maddiaa0 force-pushed the md/pipeline-recovery-2 branch from 9511446 to f3e3e68 Compare March 16, 2026 18:08
@Maddiaa0 Maddiaa0 force-pushed the md/pipeline-spartan-config branch from f18cc20 to b7b0c11 Compare March 16, 2026 18:08
@Maddiaa0 Maddiaa0 force-pushed the md/pipeline-recovery-2 branch from f3e3e68 to 829607e Compare March 18, 2026 11:33
@Maddiaa0 Maddiaa0 force-pushed the md/pipeline-spartan-config branch 2 times, most recently from 0944eb7 to de53468 Compare March 18, 2026 11:59
@Maddiaa0 Maddiaa0 force-pushed the md/pipeline-recovery-2 branch from 829607e to 87da649 Compare March 18, 2026 11:59
@Maddiaa0 Maddiaa0 changed the base branch from md/pipeline-recovery-2 to graphite-base/21285 March 19, 2026 01:07
@Maddiaa0 Maddiaa0 force-pushed the md/pipeline-spartan-config branch from de53468 to 82f2dbd Compare March 19, 2026 22:03
@Maddiaa0 Maddiaa0 force-pushed the graphite-base/21285 branch from 87da649 to 9462d6c Compare March 19, 2026 22:03
@Maddiaa0 Maddiaa0 changed the base branch from graphite-base/21285 to md/pipeline-recovery-2 March 19, 2026 22:03
@Maddiaa0 Maddiaa0 force-pushed the md/pipeline-recovery-2 branch from 9462d6c to eb4d7fc Compare March 20, 2026 13:21
@Maddiaa0 Maddiaa0 force-pushed the md/pipeline-spartan-config branch from 82f2dbd to 4f49f4a Compare March 20, 2026 13:21
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);
Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Should we add a different status attribute for these? Just asking, not sure how we handle this later.

Copy link
Copy Markdown
Member Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

An empty status is assumed to be the checkpointed chain in the dashboard, if adding one we would have to update all of them.

Comment on lines +235 to +239
const now = Date.now();
if (this.lastBlockBuiltTimestamp !== undefined) {
this.blockInterBlockTime.record(now - this.lastBlockBuiltTimestamp);
}
this.lastBlockBuiltTimestamp = now;
Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

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.

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Why the double implementation in InterruptibleSleep and in abortableSleep here? Also, is it used at all?

Copy link
Copy Markdown
Member Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Apologies here, this should be in a branch where i was messing with changing interupts to signals

Comment on lines +34 to +35
VALIDATOR_REPLICAS=4
VALIDATORS_PER_NODE=12
Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

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.

Copy link
Copy Markdown
Member Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

dropping committee size to 32

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Mind dropping to 24? There's still a good chance that we get the required 2/3rd attestations otherwise. Can be in another PR.

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

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.

@Maddiaa0 Maddiaa0 changed the base branch from md/pipeline-recovery-2 to graphite-base/21285 April 7, 2026 18:22
@Maddiaa0 Maddiaa0 force-pushed the md/pipeline-spartan-config branch from 4f49f4a to f1bc6f3 Compare April 8, 2026 11:46
@Maddiaa0 Maddiaa0 changed the base branch from graphite-base/21285 to merge-train/spartan April 8, 2026 11:46
@Maddiaa0 Maddiaa0 force-pushed the md/pipeline-spartan-config branch from f1bc6f3 to 7c93544 Compare April 8, 2026 13:01
Comment on lines +34 to +35
VALIDATOR_REPLICAS=4
VALIDATORS_PER_NODE=12
Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Mind dropping to 24? There's still a good chance that we get the required 2/3rd attestations otherwise. Can be in another PR.

Comment on lines +34 to +35
VALIDATOR_REPLICAS=4
VALIDATORS_PER_NODE=12
Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

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.

@Maddiaa0 Maddiaa0 force-pushed the md/pipeline-spartan-config branch from 7c93544 to 0f459dd Compare April 8, 2026 19:51
@Maddiaa0 Maddiaa0 force-pushed the md/pipeline-spartan-config branch from 0f459dd to 95557a0 Compare April 8, 2026 20:03
@Maddiaa0 Maddiaa0 merged commit 625046d into merge-train/spartan Apr 9, 2026
13 checks passed
@Maddiaa0 Maddiaa0 deleted the md/pipeline-spartan-config branch April 9, 2026 11:15
github-merge-queue Bot pushed a commit that referenced this pull request Apr 10, 2026
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
critesjosh pushed a commit that referenced this pull request Apr 14, 2026
pipelined mbps spartan scenario
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants