mirror of
https://github.com/hl-archive-node/nanoreth.git
synced 2025-12-06 10:59:55 +00:00
fix: use --syncmode=execution-layer from op-node for optimistic pipeline sync (#7552)
Co-authored-by: Matthias Seitz <matthias.seitz@outlook.de>
This commit is contained in:
@ -2,11 +2,7 @@
|
||||
|
||||
use clap::Parser;
|
||||
use reth::cli::Cli;
|
||||
use reth_node_builder::NodeHandle;
|
||||
use reth_node_optimism::{
|
||||
args::RollupArgs, rpc::SequencerClient, OptimismEngineTypes, OptimismNode,
|
||||
};
|
||||
use reth_provider::BlockReaderIdExt;
|
||||
use reth_node_optimism::{args::RollupArgs, rpc::SequencerClient, OptimismNode};
|
||||
use std::sync::Arc;
|
||||
|
||||
// We use jemalloc for performance reasons
|
||||
@ -27,7 +23,7 @@ fn main() {
|
||||
}
|
||||
|
||||
if let Err(err) = Cli::<RollupArgs>::parse().run(|builder, rollup_args| async move {
|
||||
let NodeHandle { node, node_exit_future } = builder
|
||||
let handle = builder
|
||||
.node(OptimismNode::new(rollup_args.clone()))
|
||||
.extend_rpc_modules(move |ctx| {
|
||||
// register sequencer tx forwarder
|
||||
@ -42,29 +38,7 @@ fn main() {
|
||||
.launch()
|
||||
.await?;
|
||||
|
||||
// If `enable_genesis_walkback` is set to true, the rollup client will need to
|
||||
// perform the derivation pipeline from genesis, validating the data dir.
|
||||
// When set to false, set the finalized, safe, and unsafe head block hashes
|
||||
// on the rollup client using a fork choice update. This prevents the rollup
|
||||
// client from performing the derivation pipeline from genesis, and instead
|
||||
// starts syncing from the current tip in the DB.
|
||||
if node.chain_spec().is_optimism() && !rollup_args.enable_genesis_walkback {
|
||||
let client = node.rpc_server_handles.auth.http_client();
|
||||
if let Ok(Some(head)) = node.provider.latest_header() {
|
||||
reth_rpc_api::EngineApiClient::<OptimismEngineTypes>::fork_choice_updated_v2(
|
||||
&client,
|
||||
reth_rpc_types::engine::ForkchoiceState {
|
||||
head_block_hash: head.hash(),
|
||||
safe_block_hash: head.hash(),
|
||||
finalized_block_hash: head.hash(),
|
||||
},
|
||||
None,
|
||||
)
|
||||
.await?;
|
||||
}
|
||||
}
|
||||
|
||||
node_exit_future.await
|
||||
handle.node_exit_future.await
|
||||
}) {
|
||||
eprintln!("Error: {err:?}");
|
||||
std::process::exit(1);
|
||||
|
||||
Reference in New Issue
Block a user