@lodestar/beacon-node
Version:
A Typescript implementation of the beacon chain
71 lines (60 loc) • 2.29 kB
text/typescript
import {LevelDbControllerMetrics} from "@lodestar/db";
import {CheckpointStateRepository} from "./repositories/checkpointState.js";
import {
AttesterSlashingRepository,
BLSToExecutionChangeRepository,
BackfilledRanges,
BestLightClientUpdateRepository,
BlobSidecarsArchiveRepository,
BlobSidecarsRepository,
BlockArchiveRepository,
BlockRepository,
CheckpointHeaderRepository,
DataColumnSidecarArchiveRepository,
DataColumnSidecarRepository,
ExecutionPayloadEnvelopeArchiveRepository,
ExecutionPayloadEnvelopeRepository,
ProposerSlashingRepository,
StateArchiveRepository,
SyncCommitteeRepository,
SyncCommitteeWitnessRepository,
VoluntaryExitRepository,
} from "./repositories/index.js";
/**
* The DB service manages the data layer of the beacon chain
* The exposed methods do not refer to the underlying data engine,
* but instead expose relevant beacon chain objects
*/
export interface IBeaconDb {
// unfinalized blocks
block: BlockRepository;
// finalized blocks
blockArchive: BlockArchiveRepository;
blobSidecars: BlobSidecarsRepository;
blobSidecarsArchive: BlobSidecarsArchiveRepository;
dataColumnSidecar: DataColumnSidecarRepository;
dataColumnSidecarArchive: DataColumnSidecarArchiveRepository;
executionPayloadEnvelope: ExecutionPayloadEnvelopeRepository;
executionPayloadEnvelopeArchive: ExecutionPayloadEnvelopeArchiveRepository;
// finalized states
stateArchive: StateArchiveRepository;
// checkpoint states
checkpointState: CheckpointStateRepository;
// op pool
voluntaryExit: VoluntaryExitRepository;
proposerSlashing: ProposerSlashingRepository;
attesterSlashing: AttesterSlashingRepository;
blsToExecutionChange: BLSToExecutionChangeRepository;
// lightclient
bestLightClientUpdate: BestLightClientUpdateRepository;
checkpointHeader: CheckpointHeaderRepository;
syncCommittee: SyncCommitteeRepository;
syncCommitteeWitness: SyncCommitteeWitnessRepository;
backfilledRanges: BackfilledRanges;
pruneHotDb(): Promise<void>;
deleteDeprecatedEth1Data(): Promise<void>;
/** Close the connection to the db instance and close the db store. */
close(): Promise<void>;
/** To inject metrics after CLI initialization */
setMetrics(metrics: LevelDbControllerMetrics): void;
}