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

feat(node): place all gwyneth logic in the GwynethNode within Exex #42

Merged
merged 19 commits into from
Sep 14, 2024

Conversation

CeciliaZ030
Copy link

@CeciliaZ030 CeciliaZ030 commented Sep 13, 2024

  • GwynethNode compiled with custom GwynethPayloadBuilder
  • build L2 block with default_gwyneth_payload_builder mostly copy from ethereum builder (clean diff)
  • initiate a GwynethFullNode in Exex, remove all test context from bin/reth/src/main.rs
  • add l1_provider: Option<SyncProvider>, to Gwyneth's payload builder attributes so that we have access to L1 state

By far, one crucial trait has been modified to allow synchronous state access:

/// The types that are used by the engine API.
pub trait PayloadTypes: Send + Sync + Unpin + core::fmt::Debug + Clone {
    /// The built payload type.
    type BuiltPayload: BuiltPayload + Clone + Unpin;

    /// The RPC payload attributes type the CL node emits via the engine API.
    type PayloadAttributes: PayloadAttributes + Unpin;

    /// The payload attributes type that contains information about a running payload job.
    type PayloadBuilderAttributes: PayloadBuilderAttributes<RpcPayloadAttributes = Self::PayloadAttributes>
        + Clone
        + Unpin;

    #[cfg(feature = "gwyneth")]
    /// Access L1 read-only state provider, in particular Arc<Box<dyn StateProvider>>
    type SyncProvider;
}

For this reason we add a "gwyneth" flag to all downstream dependency.

@CeciliaZ030 CeciliaZ030 merged commit 7db84b7 into gwyneth Sep 14, 2024
6 of 27 checks passed
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.

2 participants