UNPKG

@lodestar/beacon-node

Version:

A Typescript implementation of the beacon chain

85 lines 3.95 kB
import { EventEmitter } from "node:events"; export { ChainEvent }; /** * Important chain events that occur during normal chain operation. * * Chain events can be broken into several categories: * - Clock: the chain's clock is updated * - Fork Choice: the chain's fork choice is updated * - Checkpointing: the chain processes epoch boundaries */ var ChainEvent; (function (ChainEvent) { /** * This event signals that the chain has processed (or reprocessed) a checkpoint. * * This event is not tied to clock events, but rather tied to generation (or regeneration) of state. * This event is guaranteed to be called after _any_ checkpoint is processed, including skip-slot checkpoints, checkpoints that are formed as a result of processing blocks, etc. */ ChainEvent["checkpoint"] = "checkpoint"; /** * This event signals that the fork choice store has been updated. * * This event is guaranteed to be triggered whenever the fork choice justified checkpoint is updated. This is either in response to a newly processed block or a new clock tick. */ ChainEvent["forkChoiceJustified"] = "forkChoice:justified"; /** * This event signals that the fork choice store has been updated. * * This event is guaranteed to be triggered whenever the fork choice justified checkpoint is updated. This is in response to a newly processed block. */ ChainEvent["forkChoiceFinalized"] = "forkChoice:finalized"; /** * This event signals that dependent services (e.g. custody sampling) should update to account for the new target group count. */ ChainEvent["updateTargetCustodyGroupCount"] = "updateTargetCustodyGroupCount"; /** * This event signals that data columns have been fetched from the execution engine * and are ready to be published. */ ChainEvent["publishDataColumns"] = "publishDataColumns"; /** * This event signals that blobs have been fetched from the execution engine * and are ready to be published. */ ChainEvent["publishBlobSidecars"] = "publishBlobSidecars"; /** * Trigger an update of status so reqresp by peers have current earliestAvailableSlot */ ChainEvent["updateStatus"] = "updateStatus"; /** * Trigger BlockInputSync to find parent of a SignedBeaconBlock received * Post-gloas, missing parent could be a SignedBeaconBlock and/or a SignedExecutionPayloadEnvelope */ ChainEvent["blockUnknownParent"] = "blockUnknownParent"; /** * Trigger BlockInputSync to find a SignedBeaconBlock with specified block root. */ ChainEvent["unknownBlockRoot"] = "unknownBlockRoot"; /** * Trigger BlockInputSync to find a SignedExecutionPayloadEnvelope with specified block root. */ ChainEvent["unknownEnvelopeBlockRoot"] = "unknownEnvelopeBlockRoot"; /** * Trigger BlockInputSync for blocks that are partially received via gossip but are not complete by time the * cut-off window passes for waiting on gossip */ ChainEvent["incompleteBlockInput"] = "incompleteBlockInput"; /** * Post-gloas: trigger BlockInputSync for payload envelopes whose envelope and/or sampled columns are partially * received via gossip but are not complete by time the cut-off window passes for waiting on gossip */ ChainEvent["incompletePayloadEnvelope"] = "incompletePayloadEnvelope"; })(ChainEvent || (ChainEvent = {})); /** * Emits important chain events that occur during normal chain operation. * * Chain events can be broken into several categories: * - Clock: the chain's clock is updated * - Fork Choice: the chain's fork choice is updated * - Processing: the chain processes attestations and blocks, either successfully or with an error * - Checkpointing: the chain processes epoch boundaries */ export class ChainEventEmitter extends EventEmitter { } //# sourceMappingURL=emitter.js.map