Skip to content

deps: update reth from main (2026-08-06) - #7002

Closed
decofe wants to merge 18 commits into
mainfrom
reth-auto-bump
Closed

decofe wants to merge 18 commits into
mainfrom
reth-auto-bump

Conversation

@decofe

@decofe decofe commented Jul 29, 2026 •

Copy link
Copy Markdown
Member

Automated nightly update of reth dependencies from paradigmxyz/reth main branch.

Upstream reth changes

10aa6a5...b8f775a

🔗 Amp thread: https://ampcode.com/threads/T-019fd796-8b31-77d0-980b-97e09781c583

  • Engine

    • Deferred persistence handoff during payload builds and enabled payload construction on canonical ancestors above finality (#26559, #26567).
    • Centralized overlay anchoring logic (#26580).
  • RPC

    • Stopped cancelled payload body hash requests and accepted BlockId for execution witnesses (#26569, #26572).
    • Added network-specific log responses (#26491).
    • Restored optional receipt conversion, reused cached blocks for optional receipts, and unified eth_createAccessList environment preparation (#26596, #26599, #26598).
  • Trie & Stages

    • Added partial trie unwind and persistence support, including changeset-cache handling (#26543, #26612).
    • Removed the wiped field mutation from HashedPostState (#26524).
  • Storage & Providers

    • Removed ConsistentDbView, moved OverlayStateProvider to use a provider reference, and dropped unused AccountReader bounds (#26581, #26611, #26591).
    • Made static-file consistency checks respect prune checkpoints (#26565).
  • Transaction Pool

    • Added blob cell availability tracking (#25463).
  • Networking & Configuration

    • Added bootnode configuration to reth.toml (#26551).
    • Shared the Snap/2 slim-account codec between client and server (#26587).
    • Fixed DNS discovery by rejoining EIP-1459 TXT character-strings longer than 255 bytes (#26602).
  • Testing

    • Made the testing RPC handler generic over node types (#26547).
    • Improved finality management in engine reorg tests and added execute-blob Hive coverage (#26584, #26606).
  • Bench

    • Restored metrics display in benchmark run configurations (#26461).

Migrations

🔗 Amp thread: https://ampcode.com/threads/T-019fd796-c9e4-708d-a4cc-27f676160f7c

  • Bumped all Reth dependencies from 10aa6a… to b8f775a and pinned revm-inspectors to 0.42.0 for compatibility with the updated SDK.
  • Migrated HashedStorage::from_iter to its parameterless API and now marks replacement storage as wiped by setting storage.wiped = true.
  • Updated HashedPostStateProvider::hashed_post_state implementations and call sites to return and propagate ProviderResult<HashedPostState>.
  • Extended the receipt converter implementation with the new RpcLog associated type and convert_log hook, preserving Tempo logs unchanged.
  • Migrated state-gas accounting from u64 to i64 across precompile storage providers, dispatch, adapters, and tests to match the updated REVM gas tracker API.
  • Removed TempoEvm::initial_gas_and_reservoir after upstream API changes and moved its legacy pre-T0 underflow handling into Handler::tx_gas.
  • Updated handler tests to call InitialAndFloorGas::initial_gas_and_reservoir directly with the transaction gas limit and configured cap.
  • Replaced direct EthPooledTransaction field construction with EthPooledTransaction::new, then overrides the computed cost to accommodate upstream field encapsulation and initialization changes.

GitHub Workflow

@decofe decofe added the A-dependencies Related to dependency updates label Jul 29, 2026
@decofe

decofe commented Jul 29, 2026

Copy link
Copy Markdown
Member Author

derek bench preset=tip20

@decofe

decofe commented Jul 29, 2026 •

Copy link
Copy Markdown
Member Author

cc @decofe

❌ Benchmark complete: Regression View job

❌ Bench Comparison: Regression

Refs: df1547d vs reth-auto-bump
Criteria: 95% run-bootstrap CI must clear floor; cells show delta (+/-CI/floor).

Configuration

  • Derek command: derek bench mode=e2e preset=tip20 duration=90 bloat=100 token-count=4 tps=50000 accounts=1000 max-concurrent-requests=500 baseline=df1547dfd23ee8c4026579b88820066d2e1740f7 feature=reth-auto-bump baseline-hardfork="" feature-hardfork="" gas-limit=1000000000000 run-pairs=3 run-side=comparison otlp=true metrics=false no-cache=false force-bloat=false general-gas-limit=1000000000000
  • Bloat: 100000 MiB
  • Token count: 4
  • Preset: tip20
  • Target TPS: 50000
  • Duration: 90s
  • Run pairs: 3
  • Baseline blocks: 513
  • Feature blocks: 513

Tempo Metrics

Metric Baseline Feature Delta
TPS Mean 21028 21046 +0.09% ⚪ (+/-0.22/floor 0.55)
Gas Throughput [Mgas/s] 1098.5 1099.4 +0.08% ⚪ (+/-0.22/floor 0.50)
Block Time Mean [ms] 512.5 511.8 -0.14% ⚪ (+/-0.08/floor 0.40)
Block Time P50 [ms] 512.0 513.0 +0.20% ⚪ (+/-0.75/floor 0.70)
Block Time P90 [ms] 555.0 552.0 -0.54% ⚪ (+/-0.93/floor 0.70)
Block Time P99 [ms] 592.0 595.0 +0.51% ⚪ (+/-2.00/floor 1.60)

Builder

Metric Baseline Feature Delta
Gas Throughput [Mgas/s] 2021.1 2011.6 -0.47% ⚪ (+/-0.64/floor 0.95)
P50 [ms] 279.1 283.4 +1.54% ❌ (+/-0.76/floor 0.45)
P90 [ms] 313.7 316.2 +0.80% ⚪ (+/-1.84/floor 0.90)
P99 [ms] 345.4 345.9 +0.14% ⚪ (+/-1.68/floor 1.25)
Builder details
Metric Baseline Feature Delta
Finish P50 [ms] 6.4 7.0 +9.37%
Finish P90 [ms] 13.5 15.4 +14.07%
Finish P99 [ms] 31.2 30.7 -1.60%
Pool Fetch P50 [ms] 7.7 8.0 +3.90%
Pool Fetch P90 [ms] 19.0 19.7 +3.68%
Pool Fetch P99 [ms] 24.1 25.1 +4.15%
Stop Reason — Build Budget 507 509 +0.39%
Serialized Block Size P50 [KiB] 2656.6 2669.0 +0.47%
Serialized Block Size P90 [KiB] 3087.8 3078.5 -0.30%
Serialized Block Size P99 [KiB] 3336.0 3379.3 +1.30%
Serialized Block Size / Tx P50 [B/tx] 249.2 249.2 +0.00%
Serialized Block Size / Tx P90 [B/tx] 249.2 249.2 +0.00%
Serialized Block Size / Tx P99 [B/tx] 249.3 249.3 +0.00%
Fill Idle P50 [ms] 78.0 81.0 +3.85%
Fill Idle P90 [ms] 152.0 160.0 +5.26%
Fill Idle P99 [ms] 214.0 220.0 +2.80%

Validator

Metric Baseline Feature Delta
Gas Throughput [Mgas/s] 3089.7 3113.1 +0.76% ⚪ (+/-0.60/floor 0.65)
P50 [ms] 184.2 183.0 -0.65% ⚪ (+/-1.95/floor 1.55)
P90 [ms] 225.8 223.4 -1.06% ⚪ (+/-1.75/floor 1.55)
P99 [ms] 251.3 251.3 +0.00% ⚪ (+/-3.48/floor 2.05)

Observability

@decofe decofe changed the title deps: update reth from main (2026-07-29) deps: update reth from main (2026-07-30) Jul 30, 2026
@decofe decofe changed the title deps: update reth from main (2026-07-30) deps: update reth from main (2026-07-31) Jul 31, 2026
@decofe decofe changed the title deps: update reth from main (2026-07-31) deps: update reth from main (2026-08-01) Aug 1, 2026
@github-actions

github-actions Bot commented Aug 1, 2026 •

Copy link
Copy Markdown
Contributor

📊 Tempo Precompiles Coverage

precompiles

Coverage: 6426/10550 lines (60.91%)

File details
File Lines Coverage
src/account_keychain/dispatch.rs 16/42 38.10%
src/account_keychain/mod.rs 310/896 34.60%
src/address_registry/dispatch.rs 21/27 77.78%
src/address_registry/mod.rs 50/60 83.33%
src/current_committee/dispatch.rs 0/9 0.00%
src/current_committee/mod.rs 0/18 0.00%
src/dispatch.rs 126/152 82.89%
src/error.rs 52/166 31.33%
src/ip_validation.rs 10/10 100.00%
src/lib.rs 127/143 88.81%
src/nonce/dispatch.rs 6/7 85.71%
src/nonce/mod.rs 42/57 73.68%
src/receive_policy_guard/dispatch.rs 0/12 0.00%
src/receive_policy_guard/mod.rs 0/139 0.00%
src/signature_verifier/dispatch.rs 15/23 65.22%
src/signature_verifier/mod.rs 13/55 23.64%
src/stablecoin_dex/dispatch.rs 59/71 83.10%
src/stablecoin_dex/mod.rs 987/1097 89.97%
src/stablecoin_dex/order/mod.rs 120/154 77.92%
src/stablecoin_dex/order/storage.rs 178/249 71.49%
src/stablecoin_dex/orderbook.rs 183/242 75.62%
src/storage/actions.rs 11/90 12.22%
src/storage/evm.rs 390/437 89.24%
src/storage/hashmap.rs 0/241 0.00%
src/storage/mod.rs 27/69 39.13%
src/storage/packing.rs 68/93 73.12%
src/storage/thread_local.rs 200/296 67.57%
src/storage/types/array.rs 0/72 0.00%
src/storage/types/bytes_like.rs 131/179 73.18%
src/storage/types/cache.rs 65/122 53.28%
src/storage/types/mapping.rs 27/48 56.25%
src/storage/types/mod.rs 47/71 66.20%
src/storage/types/primitives.rs 21/24 87.50%
src/storage/types/set.rs 28/192 14.58%
src/storage/types/slot.rs 80/101 79.21%
src/storage/types/vec.rs 103/261 39.46%
src/storage_credits/accounting.rs 79/92 85.87%
src/storage_credits/dispatch.rs 16/16 100.00%
src/storage_credits/mod.rs 138/193 71.50%
src/tip20/dispatch.rs 64/73 87.67%
src/tip20/mod.rs 656/801 81.90%
src/tip20/rewards.rs 242/260 93.08%
src/tip20/roles.rs 85/88 96.59%
src/tip20_channel_reserve/dispatch.rs 0/42 0.00%
src/tip20_channel_reserve/mod.rs 3/548 0.55%
src/tip20_factory/dispatch.rs 9/11 81.82%
src/tip20_factory/mod.rs 117/140 83.57%
src/tip403_registry/dispatch.rs 29/46 63.04%
src/tip403_registry/mod.rs 347/544 63.79%
src/tip_fee_manager/amm.rs 295/465 63.44%
src/tip_fee_manager/dispatch.rs 35/37 94.59%
src/tip_fee_manager/mod.rs 56/155 36.13%
src/validator_config/dispatch.rs 18/28 64.29%
src/validator_config/mod.rs 171/227 75.33%
src/validator_config_v2/dispatch.rs 30/33 90.91%
src/validator_config_v2/mod.rs 523/581 90.02%
src/zone_factory/dispatch.rs 0/15 0.00%
src/zone_factory/mod.rs 0/183 0.00%
src/zone_factory/portal.rs 0/47 0.00%

contracts

Coverage: 1/202 lines (0.50%)

File details
File Lines Coverage
src/lib.rs 1/1 100.00%
src/precompiles/receive_policy_guard.rs 0/78 0.00%
src/precompiles/storage_credits.rs 0/7 0.00%
src/precompiles/tip20.rs 0/50 0.00%
src/precompiles/tip20_channel_reserve.rs 0/27 0.00%
src/precompiles/tip403_registry.rs 0/9 0.00%
src/precompiles/validator_config_v2.rs 0/3 0.00%
src/precompiles/zone_factory.rs 0/27 0.00%

Total: 6427/10752 lines (59.77%)

📦 Download full HTML report

@decofe decofe changed the title deps: update reth from main (2026-08-01) deps: update reth from main (2026-08-02) Aug 2, 2026
@decofe

decofe commented Aug 2, 2026

Copy link
Copy Markdown
Member Author

cyclops audit note="Review every upstream reth commit included in the revision diff."

@decofe

decofe commented Aug 2, 2026 •

Copy link
Copy Markdown
Member Author

cc @decofe

Cyclops audit event published. View workflow run

Config: config: default, iterations: default, hours: default, note: Review every upstream reth commit included in the revision diff.

@tempoxyz-bot tempoxyz-bot left a comment

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.

👁️ Cyclops Review

One actionable finding survived consolidation: the reth dependency bump introduces a medium-severity full-block range download liveness issue. See the inline comment on Cargo.lock:10087; the root cause is in upstream reth crates/net/p2p/src/error.rs:30 and crates/net/p2p/src/full_block.rs:818.

Reviewer Callouts
  • ⚡ Upstream reth networking: The relaxed partial-header policy was added for reverse-header recovery, but exact-range consumers still require complete batches. Please check all GetBlockHeaders consumers for whether short non-empty responses are actually consumable before keeping peers non-bad.
  • ⚡ Feature-gated upstream persistence: A worker flagged a crash-recovery edge case in upstream split-frontier/state-masking persistence when partial-persistence and non-zero state masking are enabled. This is not reported as a finding because Tempo’s default dependency features do not enable partial-persistence, but it should be reviewed before enabling that feature.

@decofe decofe changed the title deps: update reth from main (2026-08-02) deps: update reth from main (2026-08-03) Aug 3, 2026
@decofe

decofe commented Aug 3, 2026

Copy link
Copy Markdown
Member Author

cyclops audit note="Review every upstream reth commit included in the revision diff."

@decofe

decofe commented Aug 3, 2026 •

Copy link
Copy Markdown
Member Author

cc @decofe

Cyclops audit event published. View workflow run

Config: config: default, iterations: default, hours: default, note: Review every upstream reth commit included in the revision diff.

@grandizzy

Copy link
Copy Markdown
Contributor

cyclops audit note="Review every upstream reth commit included in the revision diff."

@decofe

decofe commented Aug 3, 2026 •

Copy link
Copy Markdown
Member Author

cc @grandizzy

Cyclops audit event published. View workflow run

Config: config: default, iterations: default, hours: default, note: Review every upstream reth commit included in the revision diff.

@grandizzy

Copy link
Copy Markdown
Contributor

cyclops audit note="Review every upstream reth commit included in the revision diff."

@decofe

decofe commented Aug 3, 2026 •

Copy link
Copy Markdown
Member Author

cc @grandizzy

Cyclops audit event published. View workflow run

Config: config: default, iterations: default, hours: default, note: Review every upstream reth commit included in the revision diff.

@decofe decofe changed the title deps: update reth from main (2026-08-04) deps: update reth from main (2026-08-05) Aug 5, 2026
@decofe decofe changed the title deps: update reth from main (2026-08-05) deps: update reth from main (2026-08-06) Aug 6, 2026
@decofe

decofe commented Aug 6, 2026

Copy link
Copy Markdown
Member Author

cyclops audit note="Review every upstream reth commit included in the revision diff."

@github-actions

github-actions Bot commented Aug 6, 2026 •

Copy link
Copy Markdown
Contributor

cc @decofe

Cyclops audit event published. View workflow run

Config: config: default, iterations: default, hours: default, note: Review every upstream reth commit included in the revision diff.

@tempoxyz-bot tempoxyz-bot left a comment

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.

👁️ Cyclops Review

This update contains one reachable medium-severity RPC denial-of-service risk and two verified low-severity state-gas accounting defects behind currently disabled Amsterdam flags. The latter should be fixed before EIP-8037/EIP-2780 is enabled.

Reviewer Callouts
  • ⚡ Historical replay after CodeChange revert correction: revm 42 now restores prior code on revert instead of clearing it. Confirm no historical reverted precompile set_code targeted an already-coded account (crates/precompiles/src/storage/evm.rs:354-365).
  • ⚡ Validation-only checkpoint lifecycle: validate_transaction relies on its current caller's discard_tx() to settle revm 42's pre-execution checkpoint. Settle it inside the helper before adding callers or EIP-2780 runtime failure handling (crates/revm/src/handler.rs:2248-2262).
  • ⚡ Vacuous Amsterdam state-gas tests: current TIP-1016 tests leave EIP-8037 disabled, so state-gas assertions remain zero. Exercise these paths with the Amsterdam table and flag enabled (crates/revm/src/handler/tests.rs:66-88).
  • ⚡ Finality override trust boundary: confirm no authenticated Engine API route bypasses the consensus actor's finalized-height guard (bin/tempo/src/defaults.rs:199-214, crates/consensus/src/executor/actor.rs:81-96).

@decofe

decofe commented Aug 6, 2026

Copy link
Copy Markdown
Member Author

cyclops audit note="Review every upstream reth commit included in the revision diff."

@github-actions

github-actions Bot commented Aug 6, 2026 •

Copy link
Copy Markdown
Contributor

cc @decofe

Cyclops audit event published. View workflow run

Config: config: default, iterations: default, hours: default, note: Review every upstream reth commit included in the revision diff.

@shekhirin shekhirin closed this Aug 6, 2026

@tempoxyz-bot tempoxyz-bot left a comment

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.

👁️ Cyclops Review

This Reth update is largely behavior-preserving, but one latent hashed-state inconsistency should be fixed before future protocol or account-model changes make it reachable.

Reviewer Callouts
  • ⚡ Destroyed-account overlay cost: Reth's updated MemoryOverlayStateProviderRef::hashed_post_state can aggregate and clone every unpersisted block's trie input for a destroyed account with original_info.is_some(), even when it has no storage slots. Measure this hot path against Tempo's persistence threshold and block budget, and consider reporting the avoidable aggregation upstream.
  • ⚡ New payload-build failure path: crates/payload/builder/src/lib.rs:1032 now propagates database errors from the destroyed-account cursor walk. Confirm that aborting payload construction is the intended proposer-liveness behavior for transient storage errors.

hashed_state
} else {
Arc::new(finish_provider.hashed_post_state(&db.bundle_state))
Arc::new(finish_provider.hashed_post_state(&db.bundle_state)?)

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.

🛡️ [DEFENSE-IN-DEPTH] Keep sparse-trie and provider hashed states equivalent for destroyed accounts

This Reth bump changes hashed_post_state to append explicit zero entries for every pre-existing storage slot of an account where was_destroyed() && original_info.is_some(), but the branch above can still use the sparse-trie task's HashedPostState, whose conversion omits storage for destroyed accounts. Because the selected state is persisted with the payload and reused by the synchronous state-root fallback, task availability or failure can make nodes use different hashed states. Tempo's current EIP-6780/EIP-7610 rules appear to make this latent, but a future account-writing feature or hardfork change can expose persisted-state or state-root divergence.

Recommended Fix:
Make both branches derive the same hashed state, preferably by always calling this provider method; alternatively apply Reth's zero_destroyed_account_storage to the sparse-trie result. Add a differential test covering a destroyed account with pre-existing storage and report the inconsistent sparse-trie path upstream.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

A-dependencies Related to dependency updates

Projects

None yet

Development

Successfully merging this pull request may close these issues.

4 participants