@lodestar/beacon-node
Version:
A Typescript implementation of the beacon chain
36 lines • 1.64 kB
TypeScript
import { ChainForkConfig } from "@lodestar/config";
import { CachedBeaconStateAllForks } from "@lodestar/state-transition";
import { Slot } from "@lodestar/types";
import { Logger } from "@lodestar/utils";
import { Metrics } from "../metrics/index.js";
import { IBeaconChain } from "./interface.js";
export declare const SCHEDULER_LOOKAHEAD_FACTOR = 3;
/**
* At Bellatrix, if we are responsible for proposing in next slot, we want to prepare payload
* 4s (1/3 slot) before the start of next slot
*
* For all forks, when clock is 1/3 slot before an epoch, we want to prepare for the next epoch
* transition from our head so that:
* + validators vote for block head on time through attestation
* + validators propose blocks on time
* + For Bellatrix, to compute proposers of next epoch so that we can prepare new payloads
*
*/
export declare class PrepareNextSlotScheduler {
private readonly chain;
private readonly config;
private readonly metrics;
private readonly logger;
private readonly signal;
constructor(chain: IBeaconChain, config: ChainForkConfig, metrics: Metrics | null, logger: Logger, signal: AbortSignal);
/**
* Use clockSlot instead of clockEpoch to schedule the task at more exact time.
*/
prepareForNextSlot: (clockSlot: Slot) => Promise<void>;
computeStateHashTreeRoot(state: CachedBeaconStateAllForks, isEpochTransition: boolean): void;
/**
* Stop eth1 data polling after eth1_deposit_index has reached deposit_requests_start_index in Electra as described in EIP-6110
*/
stopEth1Polling(): void;
}
//# sourceMappingURL=prepareNextSlot.d.ts.map