Conversation
…20919) ## Summary - Adds `ETHEREUM_HTTP_TIMEOUT_MS` env var to configure the HTTP timeout on viem's `http()` transport (default is viem's 10s) - Introduces `makeL1HttpTransport` helper in `ethereum/src/client.ts` to centralize the repeated `fallback(urls.map(url => http(url, { batch: false })))` pattern - Updates all non-test `createPublicClient` call sites (archiver, aztec-node, sequencer, prover-node, epoch-cache, blob-client) to use the helper with the configurable timeout ## Motivation Users hitting `TimeoutError: The request took too long to respond` on archiver `eth_getLogs` calls when querying slow or public L1 RPCs. Viem's default 10s timeout is too short for large log queries and there was no way to configure it. ## Test plan - `yarn build` passes - `yarn format` and `yarn lint` pass - Set `ETHEREUM_HTTP_TIMEOUT_MS=60000` and confirm the archiver no longer times out on large `eth_getLogs` ranges 🤖 Generated with [Claude Code](https://claude.com/claude-code) Co-authored-by: Claude Opus 4.6 <[email protected]>
Resolves the referenceBlock hash to a block number in the AztecNode and passes it down as upToBlockNumber so the LogStore stops returning logs from blocks beyond the client's sync point. Also adds an ordering check on log insertion to guard against out-of-order appends. Fixes F-417 Co-authored-by: Claude Opus 4.6 <[email protected]>
If there was a block in L2 slot zero, then `getL2ToL1Messages` returned an incorrect response, since the `slotNumber !== previousSlotNumber` would fail in the first iteration of the loop.
…ng blocks (#21378) Update the per-block budgets so that, on every block, the limits are further adjusted to `remainingCheckpointBudget / remainingBlocks * multiplier`. This prevents the last blocks from starvation. Also adjusts the multiplier from 2x to 1.2x. ## Visualization Using the https://github.com/AztecProtocol/explorations/tree/main/block-distribution-simulator ### Before this PR No redistribution, 2x multiplier <img width="1544" height="737" alt="Screenshot From 2026-03-11 15-50-38" src="https://github.com/user-attachments/assets/fda36d04-5d9e-456a-9ced-4649fa58d724" /> ### After this PR Redistribution enabled, 1.2x multiplier <img width="1544" height="737" alt="Screenshot From 2026-03-11 15-50-49" src="https://github.com/user-attachments/assets/2bc196f3-77fa-47bf-9294-4eb4199f8f93" /> ### With no multiplier For comparison purposes only, note the lower gas utilization <img width="1544" height="737" alt="Screenshot From 2026-03-11 15-50-59" src="https://github.com/user-attachments/assets/0facbc36-65e3-446e-abaf-eb7f637b87c9" /> ## Summary - Adds `SEQ_REDISTRIBUTE_CHECKPOINT_BUDGET` (default: true) to distribute remaining checkpoint budget evenly across remaining blocks instead of letting one block consume it all. Fair share per block is `ceil(remainingBudget / remainingBlocks * multiplier)`, applied to all four dimensions (L2 gas, DA gas, blob fields, tx count). - Changes default `perBlockAllocationMultiplier` from 2 to 1.2 for smoother distribution. - Wires `maxBlocksPerCheckpoint` from the timetable through to the checkpoint builder config. ## Test plan - Existing `capLimitsByCheckpointBudgets` tests pass with `redistributeCheckpointBudget: false` (old behavior) - New tests cover: even split with multiplier=1, fair share with multiplier=1.2, last block gets all remaining, disabled flag falls back to old behavior, DA gas and tx count redistribution - `computeBlockLimits` tests updated for new default multiplier and `maxBlocksPerCheckpoint` return value 🤖 Generated with [Claude Code](https://claude.com/claude-code) Co-authored-by: Claude Opus 4.6 <[email protected]>
## Summary Fixes `aztec --version` returning `unknown` when installed via `install.aztec-labs.com`. Closes https://linear.app/aztec-labs/issue/A-642/aztec-version-returns-unkonwn ClaudeBox log: https://claudebox.work/s/9b17d34db367f45c?run=1
Removes the default multiplier setting in our deployment scripts.
Our `network_defaults.yml` hardcoded a single snapshots provider for mainnet. But this should be removed in favour of using the network config json file.
This PR adds transaction filestore config to the network config schema.
When requesting world state at a given block hash, double check that the returned world state is actually at that same block hash. Also check that world state is synced to the requested block if using block hash.
Simplifies the issue of summing two different rates over two different magnitudes. Fixes A-655
…1281) ## Summary - Previously, `GasTxValidator` returned `skipped` when a tx's `maxFeesPerGas` was below current block fees, allowing it to wait for lower fees. This changes it to `invalid`, rejecting the tx outright. - Extracts `MaxFeePerGasValidator` as a standalone generic validator (like `GasLimitsValidator`) so it can be used in pool migration alongside full `Tx` validation. - Adds `InsufficientFeePerGasEvictionRule` that evicts pending txs after a new block is mined if their `maxFeesPerGas` no longer meets the block's gas fees. - Adds `maxFeesPerGas` to `TxMetaValidationData` so the eviction rule and pool migration validator can access it from metadata. **Caveat**: This may evict transactions that would become valid if block fees later drop. A more nuanced approach would define a threshold (e.g. 50% of current fees) and only reject/evict below that. The current approach is simpler and ensures the pool doesn't accumulate low-fee txs unlikely to be mined soon. 🤖 Generated with [Claude Code](https://claude.com/claude-code) --------- Co-authored-by: Claude Opus 4.6 <[email protected]>
Reduces the severity of a log line.
When unprotecting txs, we were not running the check for allowed public setup functions, which was skipped in the reqresp entrypoint. This commit now tracks whether public setup is allowed or not for a tx in the tx metadata, and uses it to drop the tx when it becomes unprotected. An alternative approach would have been to store the entire public setup calls in the tx metadata, but this means a smaller memory footprint. --------- Co-authored-by: Claude Opus 4.6 <[email protected]>
Collaborator
Author
|
🤖 Auto-merge enabled after 4 hours of inactivity. This PR will be merged automatically once all checks pass. |
1 similar comment
Collaborator
Author
|
🤖 Auto-merge enabled after 4 hours of inactivity. This PR will be merged automatically once all checks pass. |
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
BEGIN_COMMIT_OVERRIDE
feat: add ETHEREUM_HTTP_TIMEOUT_MS env var for viem HTTP transport (#20919)
fix(archiver): filter tagged log queries by block number (#21388)
fix(node): handle slot zero in getL2ToL1Messages (#21386)
feat(sequencer): redistribute checkpoint budget evenly across remaining blocks (#21378)
fix: fall back to package.json for CLI version detection (#21382)
chore: Removed multiplier config (#21412)
chore: Removed default snapshot url config (#21413)
chore: Read tx filestores from network config (#21416)
fix(node): check world state against requested block hash (#21385)
feat(p2p): use l2 priority fee only for tx priority (#21420)
feat(p2p): reject and evict txs with insufficient max fee per gas (#21281)
revert "feat(p2p): reject and evict txs with insufficient max fee per gas (#21281)" (#21432)
chore: Reduce log spam (#21436)
fix(tx): reject txs with invalid setup when unprotecting (#21224)
END_COMMIT_OVERRIDE