Skip to content

[hackathon] feat: add signet-host-reth crate with RethHostNotifier#106

Draft
prestwich wants to merge 7 commits intofeat/host-notifier-traitfrom
feat/host-reth
Draft

[hackathon] feat: add signet-host-reth crate with RethHostNotifier#106
prestwich wants to merge 7 commits intofeat/host-notifier-traitfrom
feat/host-reth

Conversation

@prestwich
Copy link
Member

@prestwich prestwich commented Mar 13, 2026

Summary

  • Add new signet-host-reth crate providing reth ExEx-backed HostNotifier implementation
  • RethChain: owning wrapper around reth Chain implementing Extractable with O(1) metadata
  • RethHostNotifier: ExExContext-backed HostNotifier
  • RethAliasOracle + RethAliasOracleFactory: moved from signet-node
  • Utility functions: decompose_exex_context(), rpc_config_from_args(), serve_config_from_args()
  • Update signet-node-tests to use new HostNotifier API

PR 3 of 5 in the host context adapter refactor.
Precursor: #105

Test plan

  • cargo clippy -p signet-host-reth --all-features --all-targets
  • cargo clippy -p signet-node-tests --all-features --all-targets
  • cargo +nightly fmt

🤖 Generated with Claude Code

@prestwich prestwich requested a review from a team as a code owner March 13, 2026 19:54
@prestwich prestwich marked this pull request as draft March 13, 2026 19:56
@prestwich prestwich changed the title feat: add signet-host-reth crate with RethHostNotifier [hackathon] feat: add signet-host-reth crate with RethHostNotifier Mar 13, 2026
@prestwich prestwich force-pushed the feat/host-notifier-trait branch from fdae9f3 to 1654673 Compare March 13, 2026 20:11
@prestwich prestwich force-pushed the feat/host-notifier-trait branch from 1654673 to 09aad33 Compare March 13, 2026 20:25
prestwich and others added 6 commits March 13, 2026 16:42
Introduces the signet-host-reth crate which isolates all reth ExEx
dependencies behind the HostNotifier trait. This includes:

- RethChain: owning wrapper around reth's Chain implementing Extractable
  with O(1) metadata accessors via inlined transmute logic
- RethHostNotifier: ExEx-backed implementation of HostNotifier that
  handles hash resolution internally
- RethAliasOracle/Factory: moved from signet-node for reuse
- RPC config helpers: rpc_config_from_args and serve_config_from_args
- decompose_exex_context: splits ExExContext into notifier + config
- RethHostError: proper error type satisfying core::error::Error

Also re-exports RecoveredBlockShim from signet-blobber.

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
…t_head

Eliminates num_hash_slow() calls by using the provider's sealed_header
method, which returns pre-cached hashes instead of recomputing from RLP.

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
Use decompose_exex_context to construct RethHostNotifier and pass
it through the new builder API.

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
The decomposed reth context has IPC/HTTP disabled by default. Tests
need the Signet-configured IPC path for RPC communication.

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
- Update RethAliasOracle::should_alias to async RPITIT signature
- Update RethChain::blocks_and_receipts to return BlockAndReceipts
- Remove orphan alias.rs from signet-node (now in host-reth)

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
The updated base branch removed chain_name from the SignetNodeBuilder
API. Remove the now-invalid calls in node-tests and apply nightly fmt.

Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
- Add compile-time size/align assertions for transmute safety (chain.rs)
- Add tracing::error before set_head panics for operator observability
- Log swallowed provider errors when reading safe/finalized block numbers
- Replace `as` casts with `From` in config conversion for type safety
- Restore condensed safety rationale for Latest alias oracle
- Add unit tests for config conversion helpers (5 tests)
- Add rustdoc usage examples to RethChain and decompose_exex_context
- Extract test_blob_cacher helper to reduce duplication in node-tests

eyre convention violation tracked in ENG-2041.

Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
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.

1 participant