Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Add ethereum/engine implementation #9151

Closed
Tracked by #8742
mattsse opened this issue Jun 27, 2024 · 0 comments · Fixed by #9241
Closed
Tracked by #8742

Add ethereum/engine implementation #9151

mattsse opened this issue Jun 27, 2024 · 0 comments · Fixed by #9241
Assignees
Labels
C-enhancement New feature or request

Comments

@mattsse
Copy link
Collaborator

mattsse commented Jun 27, 2024

with #8742 we're getting network specific ChainHandlers

the logic should be implemented in a network specific crate: ethereum/engine optimism/engine

We can now start scaffolding the eth setup in ethereum/engine, this will help us getting a feeling for the overall API/DX

TODO

  • add ethereum/engine crate
  • add entrypoint for creating the ChainOrchestrator and all it's components
  • add future/task that drives the orchestrator

This entrypoint should be very similar to:

// Configure the consensus engine
let (beacon_consensus_engine, beacon_engine_handle) = BeaconConsensusEngine::with_channel(
client,
pipeline,
ctx.blockchain_db().clone(),
Box::new(ctx.task_executor().clone()),
Box::new(ctx.components().network().clone()),
max_block,
ctx.components().payload_builder().clone(),
initial_target,
reth_beacon_consensus::MIN_BLOCKS_FOR_PIPELINE_RUN,
consensus_engine_tx,
Box::pin(consensus_engine_stream),
hooks,
)?;

I assume we'll end up with something like a helper type that wraps the ChainOrchestrator and some reporting channels (currently beacon_engine_handle.event_listener()) that is either a future itself or has an async fn run(self)

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
C-enhancement New feature or request
Projects
Archived in project
Development

Successfully merging a pull request may close this issue.

2 participants