@lodestar/beacon-node
Version:
A Typescript implementation of the beacon chain
29 lines • 1.55 kB
TypeScript
import { ProtoBlock } from "@lodestar/fork-choice";
import { DataAvailabilityStatus, IBeaconStateView } from "@lodestar/state-transition";
import { IndexedAttestation, Slot } from "@lodestar/types";
import type { BeaconChain } from "../chain.js";
import { BlockProcessOpts } from "../options.js";
import { IBlockInput } from "./blockInput/index.js";
import { PayloadEnvelopeInput } from "./payloadEnvelopeInput/payloadEnvelopeInput.js";
import { ImportBlockOpts } from "./types.js";
import { SegmentExecStatus } from "./verifyBlocksExecutionPayloads.js";
/**
* Verifies 1 or more blocks are fully valid; from a linear sequence of blocks.
*
* To relieve the main thread signatures are verified separately in workers with chain.bls worker pool.
* In parallel it:
* - Run full state transition in sequence
* - Verify all block's signatures in parallel
* - Submit execution payloads to EL in sequence
*
* If there's an error during one of the steps, the rest are aborted with an AbortController.
*/
export declare function verifyBlocksInEpoch(this: BeaconChain, parentBlock: ProtoBlock, blockInputs: IBlockInput[], payloadEnvelopes: Map<Slot, PayloadEnvelopeInput> | null, opts: BlockProcessOpts & ImportBlockOpts): Promise<{
postStates: IBeaconStateView[];
proposerBalanceDeltas: number[];
segmentExecStatus: SegmentExecStatus;
blockDAStatuses: DataAvailabilityStatus[];
payloadDAStatuses: Map<Slot, DataAvailabilityStatus>;
indexedAttestationsByBlock: IndexedAttestation[][];
}>;
//# sourceMappingURL=verifyBlock.d.ts.map