feat: add NetworkPrimitives to NetworkBuilder (#13169)

Co-authored-by: Arsenii Kulikov <klkvrr@gmail.com>
This commit is contained in:
Dan Cline
2024-12-10 15:56:32 -05:00
committed by GitHub
parent 73f1583455
commit 37f3933db2
26 changed files with 201 additions and 143 deletions

View File

@ -215,7 +215,7 @@ where
impl<P, H, B> OnlineStages<P, H, B>
where
P: HeaderSyncGapProvider + 'static,
H: HeaderDownloader<Header = alloy_consensus::Header> + 'static,
H: HeaderDownloader + 'static,
B: BodyDownloader + 'static,
{
/// Create a new builder using the given headers stage.
@ -236,7 +236,7 @@ where
provider: P,
tip: watch::Receiver<B256>,
header_downloader: H,
consensus: Arc<dyn Consensus>,
consensus: Arc<dyn Consensus<H::Header, B::Body>>,
stages_config: StageConfig,
) -> StageSetBuilder<Provider>
where
@ -258,7 +258,7 @@ where
impl<Provider, P, H, B> StageSet<Provider> for OnlineStages<P, H, B>
where
P: HeaderSyncGapProvider + 'static,
H: HeaderDownloader<Header = alloy_consensus::Header> + 'static,
H: HeaderDownloader + 'static,
B: BodyDownloader + 'static,
HeaderStage<P, H>: Stage<Provider>,
BodyStage<B>: Stage<Provider>,

View File

@ -1,5 +1,5 @@
use crate::stages::MERKLE_STAGE_DEFAULT_CLEAN_THRESHOLD;
use alloy_consensus::{BlockHeader, Header};
use alloy_consensus::{BlockHeader, Header, Sealable};
use alloy_eips::{eip1898::BlockWithParent, NumHash};
use alloy_primitives::BlockNumber;
use num_traits::Zero;
@ -194,10 +194,7 @@ where
unwind_to: Option<u64>,
) -> Result<(), StageError>
where
Provider: StaticFileProviderFactory
+ DBProvider
+ BlockReader
+ HeaderProvider<Header = reth_primitives::Header>,
Provider: StaticFileProviderFactory + DBProvider + BlockReader + HeaderProvider,
{
// If thre's any receipts pruning configured, receipts are written directly to database and
// inconsistencies are expected.
@ -267,7 +264,7 @@ where
impl<E, Provider> Stage<Provider> for ExecutionStage<E>
where
E: BlockExecutorProvider<Primitives: NodePrimitives<BlockHeader = alloy_consensus::Header>>,
E: BlockExecutorProvider,
Provider: DBProvider
+ BlockReader<
Block = <E::Primitives as NodePrimitives>::Block,

View File

@ -136,7 +136,7 @@ where
Provider: DBProvider<Tx: DbTxMut>
+ TrieWriter
+ StatsReader
+ HeaderProvider<Header = alloy_consensus::Header>
+ HeaderProvider
+ StageCheckpointReader
+ StageCheckpointWriter,
{
@ -344,18 +344,18 @@ where
/// Check that the computed state root matches the root in the expected header.
#[inline]
fn validate_state_root(
fn validate_state_root<H: BlockHeader + Debug>(
got: B256,
expected: SealedHeader,
expected: SealedHeader<H>,
target_block: BlockNumber,
) -> Result<(), StageError> {
if got == expected.state_root {
if got == expected.state_root() {
Ok(())
} else {
error!(target: "sync::stages::merkle", ?target_block, ?got, ?expected, "Failed to verify block state root! {INVALID_STATE_ROOT_ERROR_MESSAGE}");
Err(StageError::Block {
error: BlockErrorKind::Validation(ConsensusError::BodyStateRootDiff(
GotExpected { got, expected: expected.state_root }.into(),
GotExpected { got, expected: expected.state_root() }.into(),
)),
block: Box::new(expected.block_with_parent()),
})

View File

@ -59,7 +59,7 @@ impl Default for SenderRecoveryStage {
impl<Provider> Stage<Provider> for SenderRecoveryStage
where
Provider: DBProvider<Tx: DbTxMut>
+ BlockReader<Header = reth_primitives::Header>
+ BlockReader
+ StaticFileProviderFactory<Primitives: NodePrimitives<SignedTx: Value + SignedTransaction>>
+ StatsReader
+ PruneCheckpointReader,
@ -146,8 +146,7 @@ fn recover_range<Provider, CURSOR>(
senders_cursor: &mut CURSOR,
) -> Result<(), StageError>
where
Provider:
DBProvider + HeaderProvider<Header = reth_primitives::Header> + StaticFileProviderFactory,
Provider: DBProvider + HeaderProvider + StaticFileProviderFactory,
CURSOR: DbCursorRW<tables::TransactionSenders>,
{
debug!(target: "sync::stages::sender_recovery", ?tx_range, "Sending batch for processing");