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: run StaticFileProvider::check_consistency on start up #8143

Merged
merged 74 commits into from
Jun 1, 2024
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
74 commits
Select commit Hold shift + click to select a range
2070756
add StaticFileProvider::check_consistency
joshieDo May 7, 2024
a81ee6f
Merge remote-tracking branch 'origin/main' into joshie/boot-up-check
joshieDo May 8, 2024
65495fb
use PipelineTarget::Unwind
joshieDo May 8, 2024
d1ff55b
Merge remote-tracking branch 'origin/main' into joshie/boot-up-check
joshieDo May 11, 2024
d8a44dd
generalize check_invariants and add docs
joshieDo May 11, 2024
e06334a
add NoopBlockExecutorProvider
joshieDo May 11, 2024
c820410
check consistency on onLaunchContextWith::create_provider_factory
joshieDo May 11, 2024
175680d
Merge branch 'main' into joshie/boot-up-check
joshieDo May 12, 2024
5737636
pass config to unwind pipeline on create_provider_factory
joshieDo May 15, 2024
76c91f6
pass has_receipt_pruning to check_consistency
joshieDo May 15, 2024
3aba5cc
missing arg
joshieDo May 15, 2024
0d4a1ae
add docs
joshieDo May 15, 2024
7aea4a8
docs and variable names
joshieDo May 16, 2024
bd66959
more docs
joshieDo May 16, 2024
6a8aab8
added ensure_file_consistency
joshieDo May 16, 2024
1cb6009
add first test_check_consistency
joshieDo May 20, 2024
d32cecb
panic on unwind target to 0
joshieDo May 20, 2024
39a802a
add warning to check_consistency
joshieDo May 21, 2024
50cead0
add read_only to check_consistency
joshieDo May 21, 2024
aa865fa
make sure SegmentHeader is updated after file heal
joshieDo May 21, 2024
67719b1
add early prune tests
joshieDo May 21, 2024
f1502dd
nippyjar writer handle partial pruned row
joshieDo May 21, 2024
98f1381
rename to test_consistency_no_commit_prune
joshieDo May 21, 2024
a988e9e
fix usage of storage_kind on insert_blocks
joshieDo May 21, 2024
86946a6
add checkpoint and gap tests
joshieDo May 21, 2024
016deaa
smol refactor on test functions
joshieDo May 22, 2024
a0e3976
clippy
joshieDo May 22, 2024
ea0ef7f
nit
joshieDo May 22, 2024
d9fb353
add logs to node launch consistency check
joshieDo May 22, 2024
dfd2d8c
fmt
joshieDo May 22, 2024
9266ca4
nit
joshieDo May 22, 2024
2d142f1
update docs
joshieDo May 22, 2024
8ace1e5
const fns on segments
joshieDo May 27, 2024
50b19ba
noop executor
joshieDo May 27, 2024
0eaa9bd
swap order
joshieDo May 27, 2024
7541b52
update docs on create_provider_factory
joshieDo May 27, 2024
16071d7
Merge remote-tracking branch 'origin/main' into joshie/boot-up-check
joshieDo May 27, 2024
014c694
fix merge
joshieDo May 27, 2024
51c069e
feat: `StaticFileProvider` requires `StaticFileAccess` for initializa…
joshieDo May 28, 2024
d6eec77
Merge remote-tracking branch 'origin/main' into joshie/boot-up-check
joshieDo May 29, 2024
a5be748
bump Starting unwind msg to info
joshieDo May 29, 2024
c07a75f
compare tx_len and block_len against number of rows instead
joshieDo May 29, 2024
76156e2
point queries should return None if the static file cant be found for id
joshieDo May 29, 2024
42a3764
complete ensure_invariants
joshieDo May 29, 2024
1b8216f
ProviderFactor new no longer returns result
joshieDo May 29, 2024
14e2dbc
Merge remote-tracking branch 'origin/main' into joshie/boot-up-check
joshieDo May 29, 2024
25776f7
update_unwind_target takes BlockNumber instead
joshieDo May 29, 2024
78b92c0
fix test_consistency_checkpoints
joshieDo May 29, 2024
5cf7a07
Merge remote-tracking branch 'origin/main' into joshie/boot-up-check
joshieDo May 29, 2024
3243cfb
remove cfg from user_header
joshieDo May 29, 2024
5d190dd
only update SegmentHeader if it's not read_only, otherwise error out
joshieDo May 29, 2024
a142072
Merge remote-tracking branch 'origin/main' into joshie/boot-up-check
joshieDo May 29, 2024
4d3d9d0
replace unavailable errors on BlockExecutionError
joshieDo May 29, 2024
5c6ef86
clippy
joshieDo May 29, 2024
65232a9
access not env for StaticFileAccess var
joshieDo May 29, 2024
60bf5d5
Merge remote-tracking branch 'origin/main' into joshie/boot-up-check
joshieDo May 29, 2024
cc551cc
fix test import
joshieDo May 29, 2024
50dbeb8
Merge remote-tracking branch 'origin/main' into joshie/boot-up-check
joshieDo May 30, 2024
57b4d38
change arg to read_only on nippy writer
joshieDo May 30, 2024
4631781
add ConsistencyFailStrategy
joshieDo May 30, 2024
b3c660a
Merge remote-tracking branch 'origin/main' into joshie/boot-up-check
joshieDo May 30, 2024
8ff3736
use upsert on headers and txlookup
joshieDo May 30, 2024
6cd04b2
Revert "use upsert on headers and txlookup"
joshieDo May 30, 2024
aacbe7e
on unwinds: commit to db first then static files
joshieDo May 30, 2024
ea0627d
fix doc
joshieDo May 30, 2024
f69483c
fix docs
joshieDo May 30, 2024
8dcb970
make tests more complete
joshieDo May 31, 2024
b1651a5
add header as well to test
joshieDo May 31, 2024
fcdf452
add more docs
joshieDo May 31, 2024
8e9b89e
Merge remote-tracking branch 'origin/main' into joshie/boot-up-check
joshieDo May 31, 2024
938f2ca
make sure to update last receipt block if unwinding empty blocks
joshieDo May 31, 2024
e721388
fix edge case on unwinding empty blocks across files
joshieDo May 31, 2024
8f6bb24
rename back to num_rows
joshieDo May 31, 2024
477e027
Merge remote-tracking branch 'origin/main' into joshie/boot-up-check
joshieDo May 31, 2024
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
19 changes: 13 additions & 6 deletions bin/reth/src/commands/db/mod.rs
Original file line number Diff line number Diff line change
Expand Up @@ -14,7 +14,7 @@ use reth_db::{
version::{get_db_version, DatabaseVersionError, DB_VERSION},
};
use reth_primitives::ChainSpec;
use reth_provider::ProviderFactory;
use reth_provider::{providers::StaticFileProvider, ProviderFactory};
use std::{
io::{self, Write},
sync::Arc,
Expand Down Expand Up @@ -96,7 +96,8 @@ pub enum Subcommands {
macro_rules! db_ro_exec {
($chain:expr, $db_path:expr, $db_args:ident, $sfp:ident, $tool:ident, $command:block) => {
let db = open_db_read_only($db_path, $db_args)?;
let provider_factory = ProviderFactory::new(db, $chain.clone(), $sfp)?;
let provider_factory =
ProviderFactory::new(db, $chain.clone(), StaticFileProvider::read_only($sfp)?);

let $tool = DbTool::new(provider_factory, $chain.clone())?;
$command;
Expand Down Expand Up @@ -156,16 +157,22 @@ impl Command {
}

let db = open_db(&db_path, db_args)?;
let provider_factory =
ProviderFactory::new(db, self.chain.clone(), static_files_path.clone())?;
let provider_factory = ProviderFactory::new(
db,
self.chain.clone(),
StaticFileProvider::read_write(&static_files_path)?,
);

let tool = DbTool::new(provider_factory, self.chain.clone())?;
tool.drop(db_path, static_files_path)?;
}
Subcommands::Clear(command) => {
let db = open_db(&db_path, db_args)?;
let provider_factory =
ProviderFactory::new(db, self.chain.clone(), static_files_path)?;
let provider_factory = ProviderFactory::new(
db,
self.chain.clone(),
StaticFileProvider::read_write(static_files_path)?,
);

command.execute(provider_factory)?;
}
Expand Down
2 changes: 1 addition & 1 deletion bin/reth/src/commands/db/static_files/headers.rs
Original file line number Diff line number Diff line change
Expand Up @@ -38,7 +38,7 @@ impl Command {
let path: PathBuf = StaticFileSegment::Headers
.filename_with_configuration(filters, compression, &block_range)
.into();
let provider = StaticFileProvider::new(PathBuf::default())?;
let provider = StaticFileProvider::read_only(PathBuf::default())?;
let jar_provider = provider.get_segment_provider_from_block(
StaticFileSegment::Headers,
self.from,
Expand Down
8 changes: 6 additions & 2 deletions bin/reth/src/commands/db/static_files/mod.rs
Original file line number Diff line number Diff line change
Expand Up @@ -16,7 +16,7 @@ use reth_primitives::{
},
BlockNumber, ChainSpec, StaticFileSegment,
};
use reth_provider::{BlockNumReader, ProviderFactory};
use reth_provider::{providers::StaticFileProvider, BlockNumReader, ProviderFactory};
use reth_static_file::{segments as static_file_segments, segments::Segment};
use std::{
path::{Path, PathBuf},
Expand Down Expand Up @@ -99,7 +99,11 @@ impl Command {
data_dir.db().as_path(),
db_args.with_max_read_transaction_duration(Some(MaxReadTransactionDuration::Unbounded)),
)?;
let provider_factory = Arc::new(ProviderFactory::new(db, chain, data_dir.static_files())?);
let provider_factory = Arc::new(ProviderFactory::new(
db,
chain,
StaticFileProvider::read_only(data_dir.static_files())?,
));

{
if !self.only_bench {
Expand Down
2 changes: 1 addition & 1 deletion bin/reth/src/commands/db/static_files/receipts.rs
Original file line number Diff line number Diff line change
Expand Up @@ -43,7 +43,7 @@ impl Command {
.filename_with_configuration(filters, compression, &block_range)
.into();

let provider = StaticFileProvider::new(PathBuf::default())?;
let provider = StaticFileProvider::read_only(PathBuf::default())?;
let jar_provider = provider.get_segment_provider_from_block(
StaticFileSegment::Receipts,
self.from,
Expand Down
2 changes: 1 addition & 1 deletion bin/reth/src/commands/db/static_files/transactions.rs
Original file line number Diff line number Diff line change
Expand Up @@ -42,7 +42,7 @@ impl Command {
let path: PathBuf = StaticFileSegment::Transactions
.filename_with_configuration(filters, compression, &block_range)
.into();
let provider = StaticFileProvider::new(PathBuf::default())?;
let provider = StaticFileProvider::read_only(PathBuf::default())?;
let jar_provider = provider.get_segment_provider_from_block(
StaticFileSegment::Transactions,
self.from,
Expand Down
2 changes: 1 addition & 1 deletion bin/reth/src/commands/db/stats.rs
Original file line number Diff line number Diff line change
Expand Up @@ -168,7 +168,7 @@ impl Command {
}

let static_files = iter_static_files(data_dir.static_files())?;
let static_file_provider = StaticFileProvider::new(data_dir.static_files())?;
let static_file_provider = StaticFileProvider::read_only(data_dir.static_files())?;

let mut total_data_size = 0;
let mut total_index_size = 0;
Expand Down
15 changes: 9 additions & 6 deletions bin/reth/src/commands/debug_cmd/build_block.rs
Original file line number Diff line number Diff line change
Expand Up @@ -35,8 +35,9 @@ use reth_primitives::{
U256,
};
use reth_provider::{
providers::BlockchainProvider, BlockHashReader, BlockReader, BlockWriter,
BundleStateWithReceipts, ProviderFactory, StageCheckpointReader, StateProviderFactory,
providers::{BlockchainProvider, StaticFileProvider},
BlockHashReader, BlockReader, BlockWriter, BundleStateWithReceipts, ProviderFactory,
StageCheckpointReader, StateProviderFactory,
};
use reth_revm::database::StateProviderDatabase;
use reth_rpc_types::engine::{BlobsBundleV1, PayloadAttributes};
Expand Down Expand Up @@ -113,8 +114,10 @@ impl Command {
let factory = ProviderFactory::new(
db,
self.chain.clone(),
self.datadir.unwrap_or_chain_default(self.chain.chain).static_files(),
)?;
StaticFileProvider::read_only(
self.datadir.unwrap_or_chain_default(self.chain.chain).static_files(),
)?,
);
let provider = factory.provider()?;

let best_number =
Expand Down Expand Up @@ -155,8 +158,8 @@ impl Command {
let provider_factory = ProviderFactory::new(
Arc::clone(&db),
Arc::clone(&self.chain),
data_dir.static_files(),
)?;
StaticFileProvider::read_only(data_dir.static_files())?,
);

let consensus: Arc<dyn Consensus> =
Arc::new(EthBeaconConsensus::new(Arc::clone(&self.chain)));
Expand Down
20 changes: 11 additions & 9 deletions bin/reth/src/commands/debug_cmd/execution.rs
Original file line number Diff line number Diff line change
Expand Up @@ -31,8 +31,8 @@ use reth_primitives::{
stage::StageId, BlockHashOrNumber, BlockNumber, ChainSpec, PruneModes, B256,
};
use reth_provider::{
BlockExecutionWriter, HeaderSyncMode, ProviderFactory, StageCheckpointReader,
StaticFileProviderFactory,
providers::StaticFileProvider, BlockExecutionWriter, HeaderSyncMode, ProviderFactory,
StageCheckpointReader, StaticFileProviderFactory,
};
use reth_stages::{
sets::DefaultStages,
Expand Down Expand Up @@ -156,6 +156,9 @@ impl Command {
default_peers_path: PathBuf,
) -> eyre::Result<NetworkHandle> {
let secret_key = get_secret_key(&network_secret_path)?;
let static_files = StaticFileProvider::read_only(
self.datadir.unwrap_or_chain_default(self.chain.chain).static_files(),
)?;
let network = self
.network
.network_config(config, self.chain.clone(), secret_key, default_peers_path)
Expand All @@ -165,11 +168,7 @@ impl Command {
self.network.discovery.addr,
self.network.discovery.port,
))
.build(ProviderFactory::new(
db,
self.chain.clone(),
self.datadir.unwrap_or_chain_default(self.chain.chain).static_files(),
)?)
.build(ProviderFactory::new(db, self.chain.clone(), static_files))
.start_network()
.await?;
info!(target: "reth::cli", peer_id = %network.peer_id(), local_addr = %network.local_addr(), "Connected to P2P network");
Expand Down Expand Up @@ -210,8 +209,11 @@ impl Command {

fs::create_dir_all(&db_path)?;
let db = Arc::new(init_db(db_path, self.db.database_args())?);
let provider_factory =
ProviderFactory::new(db.clone(), self.chain.clone(), data_dir.static_files())?;
let provider_factory = ProviderFactory::new(
db.clone(),
self.chain.clone(),
StaticFileProvider::read_write(data_dir.static_files())?,
);

debug!(target: "reth::cli", chain=%self.chain.chain, genesis=?self.chain.genesis_hash(), "Initializing genesis");
init_genesis(provider_factory.clone())?;
Expand Down
18 changes: 12 additions & 6 deletions bin/reth/src/commands/debug_cmd/in_memory_merkle.rs
Original file line number Diff line number Diff line change
Expand Up @@ -22,9 +22,9 @@ use reth_network::NetworkHandle;
use reth_network_api::NetworkInfo;
use reth_primitives::{stage::StageId, BlockHashOrNumber, ChainSpec, Receipts};
use reth_provider::{
AccountExtReader, BundleStateWithReceipts, HashingWriter, HeaderProvider,
LatestStateProviderRef, OriginalValuesKnown, ProviderFactory, StageCheckpointReader,
StateWriter, StaticFileProviderFactory, StorageReader,
providers::StaticFileProvider, AccountExtReader, BundleStateWithReceipts, HashingWriter,
HeaderProvider, LatestStateProviderRef, OriginalValuesKnown, ProviderFactory,
StageCheckpointReader, StateWriter, StaticFileProviderFactory, StorageReader,
};
use reth_revm::database::StateProviderDatabase;
use reth_tasks::TaskExecutor;
Expand Down Expand Up @@ -97,8 +97,10 @@ impl Command {
.build(ProviderFactory::new(
db,
self.chain.clone(),
self.datadir.unwrap_or_chain_default(self.chain.chain).static_files(),
)?)
StaticFileProvider::read_only(
self.datadir.unwrap_or_chain_default(self.chain.chain).static_files(),
)?,
))
.start_network()
.await?;
info!(target: "reth::cli", peer_id = %network.peer_id(), local_addr = %network.local_addr(), "Connected to P2P network");
Expand All @@ -117,7 +119,11 @@ impl Command {

// initialize the database
let db = Arc::new(init_db(db_path, self.db.database_args())?);
let factory = ProviderFactory::new(&db, self.chain.clone(), data_dir.static_files())?;
let factory = ProviderFactory::new(
&db,
self.chain.clone(),
StaticFileProvider::read_only(data_dir.static_files())?,
);
let provider = factory.provider()?;

// Look up merkle checkpoint
Expand Down
17 changes: 12 additions & 5 deletions bin/reth/src/commands/debug_cmd/merkle.rs
Original file line number Diff line number Diff line change
Expand Up @@ -24,8 +24,9 @@ use reth_network_api::NetworkInfo;
use reth_network_p2p::full_block::FullBlockClient;
use reth_primitives::{stage::StageCheckpoint, BlockHashOrNumber, ChainSpec, PruneModes};
use reth_provider::{
BlockNumReader, BlockWriter, BundleStateWithReceipts, HeaderProvider, LatestStateProviderRef,
OriginalValuesKnown, ProviderError, ProviderFactory, StateWriter,
providers::StaticFileProvider, BlockNumReader, BlockWriter, BundleStateWithReceipts,
HeaderProvider, LatestStateProviderRef, OriginalValuesKnown, ProviderError, ProviderFactory,
StateWriter,
};
use reth_revm::database::StateProviderDatabase;
use reth_stages::{
Expand Down Expand Up @@ -102,8 +103,10 @@ impl Command {
.build(ProviderFactory::new(
db,
self.chain.clone(),
self.datadir.unwrap_or_chain_default(self.chain.chain).static_files(),
)?)
StaticFileProvider::read_only(
self.datadir.unwrap_or_chain_default(self.chain.chain).static_files(),
)?,
))
.start_network()
.await?;
info!(target: "reth::cli", peer_id = %network.peer_id(), local_addr = %network.local_addr(), "Connected to P2P network");
Expand All @@ -122,7 +125,11 @@ impl Command {

// initialize the database
let db = Arc::new(init_db(db_path, self.db.database_args())?);
let factory = ProviderFactory::new(&db, self.chain.clone(), data_dir.static_files())?;
let factory = ProviderFactory::new(
&db,
self.chain.clone(),
StaticFileProvider::read_only(data_dir.static_files())?,
);
let provider_rw = factory.provider_rw()?;

// Configure and build network
Expand Down
17 changes: 11 additions & 6 deletions bin/reth/src/commands/debug_cmd/replay_engine.rs
Original file line number Diff line number Diff line change
Expand Up @@ -25,8 +25,8 @@ use reth_node_core::engine::engine_store::{EngineMessageStore, StoredEngineApiMe
use reth_payload_builder::{PayloadBuilderHandle, PayloadBuilderService};
use reth_primitives::{ChainSpec, PruneModes};
use reth_provider::{
providers::BlockchainProvider, CanonStateSubscriptions, ProviderFactory,
StaticFileProviderFactory,
providers::{BlockchainProvider, StaticFileProvider},
CanonStateSubscriptions, ProviderFactory, StaticFileProviderFactory,
};
use reth_stages::Pipeline;
use reth_static_file::StaticFileProducer;
Expand Down Expand Up @@ -100,8 +100,10 @@ impl Command {
.build(ProviderFactory::new(
db,
self.chain.clone(),
self.datadir.unwrap_or_chain_default(self.chain.chain).static_files(),
)?)
StaticFileProvider::read_only(
self.datadir.unwrap_or_chain_default(self.chain.chain).static_files(),
)?,
))
.start_network()
.await?;
info!(target: "reth::cli", peer_id = %network.peer_id(), local_addr = %network.local_addr(), "Connected to P2P network");
Expand All @@ -120,8 +122,11 @@ impl Command {

// Initialize the database
let db = Arc::new(init_db(db_path, self.db.database_args())?);
let provider_factory =
ProviderFactory::new(db.clone(), self.chain.clone(), data_dir.static_files())?;
let provider_factory = ProviderFactory::new(
db.clone(),
self.chain.clone(),
StaticFileProvider::read_only(data_dir.static_files())?,
);

let consensus: Arc<dyn Consensus> =
Arc::new(EthBeaconConsensus::new(Arc::clone(&self.chain)));
Expand Down
12 changes: 8 additions & 4 deletions bin/reth/src/commands/import.rs
Original file line number Diff line number Diff line change
Expand Up @@ -29,8 +29,9 @@ use reth_network_p2p::{
use reth_node_events::node::NodeEvent;
use reth_primitives::{stage::StageId, ChainSpec, PruneModes, B256};
use reth_provider::{
BlockNumReader, ChainSpecProvider, HeaderProvider, HeaderSyncMode, ProviderError,
ProviderFactory, StageCheckpointReader, StaticFileProviderFactory,
providers::StaticFileProvider, BlockNumReader, ChainSpecProvider, HeaderProvider,
HeaderSyncMode, ProviderError, ProviderFactory, StageCheckpointReader,
StaticFileProviderFactory,
};
use reth_stages::{prelude::*, Pipeline, StageSet};
use reth_static_file::StaticFileProducer;
Expand Down Expand Up @@ -117,8 +118,11 @@ impl ImportCommand {
info!(target: "reth::cli", path = ?db_path, "Opening database");
let db = Arc::new(init_db(db_path, self.db.database_args())?);
info!(target: "reth::cli", "Database opened");
let provider_factory =
ProviderFactory::new(db.clone(), self.chain.clone(), data_dir.static_files())?;
let provider_factory = ProviderFactory::new(
db.clone(),
self.chain.clone(),
StaticFileProvider::read_write(data_dir.static_files())?,
);

debug!(target: "reth::cli", chain=%self.chain.chain, genesis=?self.chain.genesis_hash(), "Initializing genesis");

Expand Down
12 changes: 9 additions & 3 deletions bin/reth/src/commands/import_op.rs
Original file line number Diff line number Diff line change
Expand Up @@ -20,7 +20,10 @@ use reth_downloaders::file_client::{
};
use reth_optimism_primitives::bedrock_import::is_dup_tx;
use reth_primitives::{stage::StageId, PruneModes};
use reth_provider::{ProviderFactory, StageCheckpointReader, StaticFileProviderFactory};
use reth_provider::{
providers::StaticFileProvider, ProviderFactory, StageCheckpointReader,
StaticFileProviderFactory,
};
use reth_static_file::StaticFileProducer;
use std::{path::PathBuf, sync::Arc};
use tracing::{debug, error, info};
Expand Down Expand Up @@ -91,8 +94,11 @@ impl ImportOpCommand {
let db = Arc::new(init_db(db_path, self.db.database_args())?);

info!(target: "reth::cli", "Database opened");
let provider_factory =
ProviderFactory::new(db.clone(), chain_spec.clone(), data_dir.static_files())?;
let provider_factory = ProviderFactory::new(
db.clone(),
chain_spec.clone(),
StaticFileProvider::read_write(data_dir.static_files())?,
);

debug!(target: "reth::cli", chain=%chain_spec.chain, genesis=?chain_spec.genesis_hash(), "Initializing genesis");

Expand Down
11 changes: 7 additions & 4 deletions bin/reth/src/commands/import_receipts_op.rs
Original file line number Diff line number Diff line change
Expand Up @@ -16,8 +16,8 @@ use reth_node_core::version::SHORT_VERSION;
use reth_optimism_primitives::bedrock_import::is_dup_tx;
use reth_primitives::{stage::StageId, Receipts, StaticFileSegment};
use reth_provider::{
BundleStateWithReceipts, OriginalValuesKnown, ProviderFactory, StageCheckpointReader,
StateWriter, StaticFileProviderFactory, StaticFileWriter, StatsReader,
providers::StaticFileProvider, BundleStateWithReceipts, OriginalValuesKnown, ProviderFactory,
StageCheckpointReader, StateWriter, StaticFileProviderFactory, StaticFileWriter, StatsReader,
};
use tracing::{debug, error, info, trace};

Expand Down Expand Up @@ -77,8 +77,11 @@ impl ImportReceiptsOpCommand {

let db = Arc::new(init_db(db_path, self.db.database_args())?);
info!(target: "reth::cli", "Database opened");
let provider_factory =
ProviderFactory::new(db.clone(), chain_spec.clone(), data_dir.static_files())?;
let provider_factory = ProviderFactory::new(
db.clone(),
chain_spec.clone(),
StaticFileProvider::read_write(data_dir.static_files())?,
);

import_receipts_from_file(
provider_factory,
Expand Down
Loading
Loading