feat(storage): write headers and transactions only to static files (#18681)

This commit is contained in:
Alexey Shekhirin
2025-09-29 18:04:59 +01:00
committed by GitHub
parent 564e3a67fc
commit 058ffdc21e
49 changed files with 411 additions and 791 deletions

View File

@@ -19,15 +19,15 @@ use reth_etl::Collector;
use reth_fs_util as fs;
use reth_primitives_traits::{Block, FullBlockBody, FullBlockHeader, NodePrimitives};
use reth_provider::{
providers::StaticFileProviderRWRefMut, writer::UnifiedStorageWriter, BlockWriter,
ProviderError, StaticFileProviderFactory, StaticFileSegment, StaticFileWriter,
providers::StaticFileProviderRWRefMut, BlockWriter, ProviderError, StaticFileProviderFactory,
StaticFileSegment, StaticFileWriter,
};
use reth_stages_types::{
CheckpointBlockRange, EntitiesCheckpoint, HeadersCheckpoint, StageCheckpoint, StageId,
};
use reth_storage_api::{
errors::ProviderResult, DBProvider, DatabaseProviderFactory, HeaderProvider,
NodePrimitivesProvider, StageCheckpointWriter, StorageLocation,
NodePrimitivesProvider, StageCheckpointWriter,
};
use std::{
collections::Bound,
@@ -102,14 +102,14 @@ where
save_stage_checkpoints(&provider, from, height, height, height)?;
UnifiedStorageWriter::commit(provider)?;
provider.commit()?;
}
let provider = provider_factory.database_provider_rw()?;
build_index(&provider, hash_collector)?;
UnifiedStorageWriter::commit(provider)?;
provider.commit()?;
Ok(height)
}
@@ -318,11 +318,7 @@ where
writer.append_header(&header, *total_difficulty, &hash)?;
// Write bodies to database.
provider.append_block_bodies(
vec![(header.number(), Some(body))],
// We are writing transactions directly to static files.
StorageLocation::StaticFiles,
)?;
provider.append_block_bodies(vec![(header.number(), Some(body))])?;
hash_collector.insert(hash, number)?;
}