Skip to content
Merged
Show file tree
Hide file tree
Changes from 21 commits
Commits
Show all changes
64 commits
Select commit Hold shift + click to select a range
4bd007c
fix: increase committee timeout in scenario smoke test
Mar 5, 2026
fe2c9b3
fix: (A-623) increase committee timeout in scenario smoke test (#21193)
danielntmd Mar 7, 2026
eb25890
Merge branch 'next' into merge-train/spartan
Mar 7, 2026
95c6e3b
Merge branch 'next' into merge-train/spartan
Mar 8, 2026
d4c7d3f
Merge branch 'next' into merge-train/spartan
Mar 8, 2026
e01ed39
Merge branch 'next' into merge-train/spartan
Mar 9, 2026
0dd372b
Merge branch 'next' into merge-train/spartan
Mar 9, 2026
9b9f9da
feat: orchestrator enqueues via serial queue (#21247)
alexghr Mar 9, 2026
f473c6c
feat: rollup mana limit gas validation (#21219)
mrzeszutko Mar 9, 2026
d1bb732
fix: make e2e HA test more deterministic (#21199)
spypsy Mar 9, 2026
fe952b7
Merge branch 'next' into merge-train/spartan
Mar 9, 2026
5824d81
chore: fix chonk_browser lint warning (#21265)
Maddiaa0 Mar 9, 2026
9bf6d19
chore: deploy SPONSORED_FPC in test networks (#21254)
alexghr Mar 9, 2026
400df15
Merge branch 'next' into merge-train/spartan
Mar 9, 2026
02e3651
Merge branch 'next' into merge-train/spartan
Mar 9, 2026
30dd1f2
Merge branch 'next' into merge-train/spartan
Mar 9, 2026
accb387
Merge branch 'next' into merge-train/spartan
Mar 9, 2026
22e8b31
Merge branch 'next' into merge-train/spartan
Mar 9, 2026
a6a4f5a
Merge branch 'next' into merge-train/spartan
Mar 9, 2026
c12c1aa
Merge branch 'next' into merge-train/spartan
Mar 10, 2026
47149f3
chore: revert l2 slot time 72 -> 36
Mar 10, 2026
bbf8f3b
Merge branch 'next' into merge-train/spartan
Mar 10, 2026
c2f7135
fix: (A-635) e2e bot flake on nonce mismatch (#21288)
danielntmd Mar 10, 2026
d1e64d0
chore: deflake duplicate attestations and proposals slash tests (#21294)
mrzeszutko Mar 10, 2026
01680ed
fix(sequencer): fix log when not enough txs (#21297)
spalladino Mar 10, 2026
11b3bed
Merge branch 'next' into merge-train/spartan
Mar 10, 2026
eb11307
Merge branch 'next' into merge-train/spartan
Mar 10, 2026
ed10419
chore: send env var to pods (#21307)
alexghr Mar 10, 2026
d83c2b5
Merge branch 'next' into merge-train/spartan
Mar 10, 2026
908ea5a
Merge branch 'next' into merge-train/spartan
Mar 10, 2026
4c09173
fix: Simulate gas in n tps test. Set min txs per block to 1 (#21312)
PhilWindle Mar 10, 2026
be7466a
fix: update dependabot dependencies (#21238)
deffrian Mar 10, 2026
1e17dee
Merge branch 'next' into merge-train/spartan
Mar 10, 2026
470e508
Merge branch 'next' into merge-train/spartan
Mar 10, 2026
918aa59
test: run nightly bench of block capacity (#20726)
alexghr Mar 10, 2026
58de7bc
Merge branch 'next' into merge-train/spartan
Mar 10, 2026
8392a84
fix: update block_capacity test to use new send() result types (#21345)
spalladino Mar 11, 2026
447801f
Merge branch 'next' into merge-train/spartan
Mar 11, 2026
ee623ce
Merge branch 'next' into merge-train/spartan
Mar 11, 2026
8cd8af6
Merge branch 'next' into merge-train/spartan
Mar 11, 2026
0d8671f
Merge branch 'next' into merge-train/spartan
Mar 11, 2026
5709ba0
Merge branch 'next' into merge-train/spartan
Mar 11, 2026
57cb86d
Merge branch 'next' into merge-train/spartan
Mar 11, 2026
097b955
fix(node): fix index misalignment in findLeavesIndexes (#21327)
spalladino Mar 11, 2026
3517d1f
fix(log): do not log validation error if unregistered handler (#21111)
spalladino Mar 11, 2026
4cd6092
fix: limit parallel blocks in prover to max AVM parallel simulations …
alexghr Mar 11, 2026
6067972
fix: use native sha256 to speed up proving job id generation (#21292)
alexghr Mar 11, 2026
77d0539
chore: remove v4-devnet-1 (#21044)
alexghr Mar 11, 2026
7ffd52f
fix(validator): wait for l1 sync before processing block proposals (#…
spalladino Mar 11, 2026
c4d0807
fix(txpool): cap priority fee with max fees when computing priority (…
spalladino Mar 11, 2026
078737f
chore: Properly compute finalized block (#21156)
spypsy Mar 11, 2026
4f980f1
fix: remove extra argument in KVArchiverDataStore constructor call (#…
AztecBot Mar 11, 2026
2270423
chore: revert l2 slot time 72 -> 36 on scenario network (#21291)
danielntmd Mar 11, 2026
0e5c43b
fix(archiver): do not error if proposed block matches checkpointed (#…
spalladino Mar 11, 2026
c66406f
fix(claude): rule to not append echo exit (#21368)
spalladino Mar 11, 2026
1bbc8a2
chore: reduce severity of errors due to HA node not acquiring signatu…
spypsy Mar 11, 2026
c4ac986
fix: make reqresp batch retry test deterministic
AztecBot Mar 11, 2026
0575d79
fix: make reqresp batch retry test deterministic (#21322)
PhilWindle Mar 11, 2026
be84f31
fix: (A-643) add buffer to maxFeePerBlobGas for gas estimation and fi…
danielntmd Mar 11, 2026
23c39e6
fix(e2e): use L2 priority fee in deploy_method same-block test (#21373)
AztecBot Mar 11, 2026
e61fca2
Merge branch 'next' into merge-train/spartan
Mar 11, 2026
55ad6f7
Merge branch 'next' into merge-train/spartan
Mar 11, 2026
193dfb5
fix: reqresp flake & add logging (#21334)
deffrian Mar 11, 2026
4ec321d
Merge branch 'next' into merge-train/spartan
Mar 11, 2026
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
1 change: 1 addition & 0 deletions spartan/environments/alpha-net.env
Original file line number Diff line number Diff line change
Expand Up @@ -66,6 +66,7 @@ AZTEC_SLASHING_QUORUM=5
AZTEC_SLASHING_EXECUTION_DELAY_IN_ROUNDS=0
AZTEC_SLASHING_OFFSET_IN_ROUNDS=1
AZTEC_LOCAL_EJECTION_THRESHOLD=90000000000000000000
SPONSORED_FPC=true

SEQ_MAX_TX_PER_CHECKPOINT=72
SEQ_MIN_TX_PER_BLOCK=0
Expand Down
1 change: 1 addition & 0 deletions spartan/environments/next-scenario.env
Original file line number Diff line number Diff line change
Expand Up @@ -36,6 +36,7 @@ AZTEC_SLASHING_ROUND_SIZE_IN_EPOCHS=1
AZTEC_SLASHING_QUORUM=17
AZTEC_SLASHING_OFFSET_IN_ROUNDS=2
AZTEC_LOCAL_EJECTION_THRESHOLD=90000000000000000000
SPONSORED_FPC=true

AZTEC_GOVERNANCE_PROPOSER_QUORUM=11
AZTEC_GOVERNANCE_PROPOSER_ROUND_SIZE=20
Expand Down
7 changes: 6 additions & 1 deletion spartan/environments/prove-n-tps-fake.env
Original file line number Diff line number Diff line change
Expand Up @@ -7,6 +7,8 @@ AZTEC_SLOT_DURATION=72
AZTEC_PROOF_SUBMISSION_EPOCHS=1
AZTEC_LAG_IN_EPOCHS_FOR_VALIDATOR_SET=1
AZTEC_LAG_IN_EPOCHS_FOR_RANDAO=1
AZTEC_MANA_TARGET=1000000000 # 1B mana
SPONSORED_FPC=true

CREATE_ETH_DEVNET=true
DESTROY_NAMESPACE=true
Expand All @@ -29,7 +31,7 @@ REAL_VERIFIER=false
RPC_REPLICAS=1
RPC_INGRESS_ENABLED=false

PROVER_REPLICAS=200
PROVER_REPLICAS=10
PROVER_RESOURCE_PROFILE="hi-tps"
PROVER_PUBLISHER_MNEMONIC_START_INDEX=8000
PROVER_AGENT_POLL_INTERVAL_MS=10000
Expand All @@ -40,6 +42,9 @@ PROVER_TEST_VERIFICATION_DELAY_MS=250

SEQ_MAX_TX_PER_CHECKPOINT=80
SEQ_MIN_TX_PER_BLOCK=0
SEQ_BLOCK_DURATION_MS=6000
SEQ_L1_PUBLISHING_TIME_ALLOWANCE_IN_SLOT=36
SEQ_BUILD_CHECKPOINT_IF_EMPTY=true
P2P_MAX_TX_POOL_SIZE=1000000000
DEBUG_P2P_INSTRUMENT_MESSAGES=true

Expand Down
1 change: 1 addition & 0 deletions spartan/environments/prove-n-tps-real.env
Original file line number Diff line number Diff line change
Expand Up @@ -8,6 +8,7 @@ AZTEC_PROOF_SUBMISSION_EPOCHS=1
AZTEC_LAG_IN_EPOCHS_FOR_VALIDATOR_SET=1
AZTEC_LAG_IN_EPOCHS_FOR_RANDAO=1
AZTEC_MANA_TARGET=1000000000 # 1B mana
SPONSORED_FPC=true

CREATE_ETH_DEVNET=true
DESTROY_NAMESPACE=true
Expand Down
1 change: 1 addition & 0 deletions spartan/environments/scenario.local.env
Original file line number Diff line number Diff line change
Expand Up @@ -20,6 +20,7 @@ AZTEC_SLASH_AMOUNT_MEDIUM=10000000000000000000
AZTEC_SLASH_AMOUNT_LARGE=15000000000000000000
AZTEC_LAG_IN_EPOCHS_FOR_VALIDATOR_SET=2
AZTEC_LAG_IN_EPOCHS_FOR_RANDAO=2
SPONSORED_FPC=true

R2_ACCESS_KEY_ID=""
R2_SECRET_ACCESS_KEY=""
Expand Down
1 change: 1 addition & 0 deletions spartan/environments/ten-tps-long-epoch.env
Original file line number Diff line number Diff line change
Expand Up @@ -20,6 +20,7 @@ DESTROY_AZTEC_INFRA=true

AZTEC_LAG_IN_EPOCHS_FOR_VALIDATOR_SET=1
AZTEC_LAG_IN_EPOCHS_FOR_RANDAO=1
SPONSORED_FPC=true

OTEL_COLLECTOR_ENDPOINT=REPLACE_WITH_GCP_SECRET

Expand Down
1 change: 1 addition & 0 deletions spartan/environments/ten-tps-short-epoch.env
Original file line number Diff line number Diff line change
Expand Up @@ -20,6 +20,7 @@ DESTROY_AZTEC_INFRA=true

AZTEC_LAG_IN_EPOCHS_FOR_VALIDATOR_SET=1
AZTEC_LAG_IN_EPOCHS_FOR_RANDAO=1
SPONSORED_FPC=true

OTEL_COLLECTOR_ENDPOINT=REPLACE_WITH_GCP_SECRET

Expand Down
1 change: 1 addition & 0 deletions spartan/environments/tps-scenario.env
Original file line number Diff line number Diff line change
Expand Up @@ -6,6 +6,7 @@ AZTEC_EPOCH_DURATION=8
AZTEC_SLOT_DURATION=72
AZTEC_PROOF_SUBMISSION_EPOCHS=2
AZTEC_LAG_IN_EPOCHS=1
SPONSORED_FPC=true

CREATE_ETH_DEVNET=false
L1_NETWORK=sepolia
Expand Down
1 change: 1 addition & 0 deletions yarn-project/archiver/src/archiver-store.test.ts
Original file line number Diff line number Diff line change
Expand Up @@ -72,6 +72,7 @@ describe('Archiver Store', () => {
ethereumSlotDuration: 12,
proofSubmissionEpochs: 1,
targetCommitteeSize: 48,
rollupManaLimit: Number.MAX_SAFE_INTEGER,
genesisArchiveRoot: new Fr(GENESIS_ARCHIVE_ROOT),
};

Expand Down
1 change: 1 addition & 0 deletions yarn-project/archiver/src/archiver-sync.test.ts
Original file line number Diff line number Diff line change
Expand Up @@ -75,6 +75,7 @@ describe('Archiver Sync', () => {
ethereumSlotDuration: DefaultL1ContractsConfig.ethereumSlotDuration,
proofSubmissionEpochs: 1,
targetCommitteeSize: 48,
rollupManaLimit: Number.MAX_SAFE_INTEGER,
genesisArchiveRoot: GENESIS_ROOT,
};

Expand Down
1 change: 0 additions & 1 deletion yarn-project/archiver/src/archiver.ts
Original file line number Diff line number Diff line change
Expand Up @@ -123,7 +123,6 @@ export class Archiver extends ArchiverDataSourceBase implements L2BlockSink, Tra
protected override readonly l1Constants: L1RollupConstants & {
l1StartBlockHash: Buffer32;
genesisArchiveRoot: Fr;
rollupManaLimit?: number;
},
synchronizer: ArchiverL1Synchronizer,
events: ArchiverEmitter,
Expand Down
1 change: 0 additions & 1 deletion yarn-project/archiver/src/modules/l1_synchronizer.ts
Original file line number Diff line number Diff line change
Expand Up @@ -72,7 +72,6 @@ export class ArchiverL1Synchronizer implements Traceable {
private readonly l1Constants: L1RollupConstants & {
l1StartBlockHash: Buffer32;
genesisArchiveRoot: Fr;
rollupManaLimit?: number;
},
private readonly events: ArchiverEmitter,
tracer: Tracer,
Expand Down
1 change: 1 addition & 0 deletions yarn-project/aztec-node/src/aztec-node/server.test.ts
Original file line number Diff line number Diff line change
Expand Up @@ -136,6 +136,7 @@ describe('aztec node', () => {

l2BlockSource = mock<L2BlockSource>();
l2BlockSource.getBlockNumber.mockImplementation(() => Promise.resolve(lastBlockNumber));
l2BlockSource.getL1Constants.mockResolvedValue(EmptyL1RollupConstants);

const l2LogsSource = mock<L2LogsSource>();

Expand Down
4 changes: 4 additions & 0 deletions yarn-project/aztec-node/src/aztec-node/server.ts
Original file line number Diff line number Diff line change
Expand Up @@ -1318,6 +1318,7 @@ export class AztecNodeService implements AztecNode, AztecNodeAdmin, Traceable {
// We accept transactions if they are not expired by the next slot (checked based on the ExpirationTimestamp field)
const { ts: nextSlotTimestamp } = this.epochCache.getEpochAndSlotInNextL1Slot();
const blockNumber = BlockNumber((await this.blockSource.getBlockNumber()) + 1);
const l1Constants = await this.blockSource.getL1Constants();
const validator = createTxValidatorForAcceptingTxsOverRPC(
db,
this.contractDataSource,
Expand All @@ -1334,6 +1335,9 @@ export class AztecNodeService implements AztecNode, AztecNodeAdmin, Traceable {
gasFees: await this.getCurrentMinFees(),
skipFeeEnforcement,
txsPermitted: !this.config.disableTransactions,
rollupManaLimit: l1Constants.rollupManaLimit,
maxBlockL2Gas: this.config.validateMaxL2BlockGas,
maxBlockDAGas: this.config.validateMaxDABlockGas,
},
this.log.getBindings(),
);
Expand Down
1 change: 1 addition & 0 deletions yarn-project/aztec-node/src/sentinel/sentinel.test.ts
Original file line number Diff line number Diff line change
Expand Up @@ -76,6 +76,7 @@ describe('sentinel', () => {
ethereumSlotDuration: 12,
proofSubmissionEpochs: 1,
targetCommitteeSize: 48,
rollupManaLimit: Number.MAX_SAFE_INTEGER,
};

epochCache.getEpochAndSlotNow.mockReturnValue({ epoch, slot, ts, nowMs: ts * 1000n });
Expand Down
45 changes: 25 additions & 20 deletions yarn-project/end-to-end/src/composed/ha/e2e_ha_full.test.ts
Original file line number Diff line number Diff line change
Expand Up @@ -21,6 +21,7 @@ import { withLoggerBindings } from '@aztec/foundation/log/server';
import { retryUntil } from '@aztec/foundation/retry';
import { sleep } from '@aztec/foundation/sleep';
import type { TestDateProvider } from '@aztec/foundation/timer';
import { GovernanceProposerAbi } from '@aztec/l1-artifacts/GovernanceProposerAbi';
import { StatefulTestContractArtifact } from '@aztec/noir-test-contracts.js/StatefulTest';
import { type AttestationInfo, getAttestationInfoFromPublishedCheckpoint } from '@aztec/stdlib/block';
import type { ValidatorClient } from '@aztec/validator-client';
Expand Down Expand Up @@ -480,28 +481,32 @@ describe('HA Full Setup', () => {
0.2, // interval in seconds (200ms)
);

// Get L1 round info to determine which slots have actually landed on L1.
// We anchor the comparison on L1's lastSignalSlot since:
// - The DB may have duties for future slots that haven't been published to L1 yet
// - L1 may have signals from earlier slots in the round before the governance payload was set in the DB
const roundInfo = await governanceProposer.getRoundInfo(
deployL1ContractsValues.l1ContractAddresses.rollupAddress.toString(),
round,
);
const lastSignalSlot = Number(roundInfo.lastSignalSlot);

// Re-query L1 vote count after getting lastSignalSlot in case more votes landed between the poll and getRoundInfo:
// the retryUntil may return a stale count if more votes land between the poll and getRoundInfo
const l1VoteCount = Number(
await governanceProposer.getPayloadSignals(
deployL1ContractsValues.l1ContractAddresses.rollupAddress.toString(),
round,
mockGovernancePayload.toString(),
),
);
// Read lastSignalSlot and l1VoteCount from the same L1 block to get a consistent snapshot.
const rollupAddr = deployL1ContractsValues.l1ContractAddresses.rollupAddress.toString() as `0x${string}`;
const govProposerAddr =
deployL1ContractsValues.l1ContractAddresses.governanceProposerAddress.toString() as `0x${string}`;
const snapshotBlock = await deployL1ContractsValues.l1Client.getBlockNumber();
const [roundData, l1VoteCountBig] = await Promise.all([
deployL1ContractsValues.l1Client.readContract({
address: govProposerAddr,
abi: GovernanceProposerAbi,
functionName: 'getRoundData',
args: [rollupAddr, round],
blockNumber: snapshotBlock,
}),
deployL1ContractsValues.l1Client.readContract({
address: govProposerAddr,
abi: GovernanceProposerAbi,
functionName: 'signalCount',
args: [rollupAddr, round, mockGovernancePayload.toString() as `0x${string}`],
blockNumber: snapshotBlock,
}),
]);
const lastSignalSlot = Number(roundData.lastSignalSlot);
const l1VoteCount = Number(l1VoteCountBig);
expect(l1VoteCount).toBeGreaterThan(0);
logger.info(
`L1 round ${round} info: lastSignalSlot=${lastSignalSlot}, l1VoteCount=${l1VoteCount}, payloadWithMostSignals=${roundInfo.payloadWithMostSignals}`,
`L1 round ${round} info: lastSignalSlot=${lastSignalSlot}, l1VoteCount=${l1VoteCount}, payloadWithMostSignals=${roundData.payloadWithMostSignals} (snapshot at L1 block ${snapshotBlock})`,
);

// Query governance vote duties only for slots that have actually landed on L1 (up to lastSignalSlot)
Expand Down
1 change: 1 addition & 0 deletions yarn-project/end-to-end/src/e2e_epochs/epochs_test.ts
Original file line number Diff line number Diff line change
Expand Up @@ -181,6 +181,7 @@ export class EpochsTestContext {
ethereumSlotDuration,
proofSubmissionEpochs: Number(await this.rollup.getProofSubmissionEpochs()),
targetCommitteeSize: await this.rollup.getTargetCommitteeSize(),
rollupManaLimit: Number(await this.rollup.getManaLimit()),
};

this.logger.info(
Expand Down
Loading