@lodestar/beacon-node
Version:
A Typescript implementation of the beacon chain
41 lines • 1.56 kB
TypeScript
import { ChainForkConfig, ForkBoundary } from "@lodestar/config";
import { Epoch } from "@lodestar/types";
/**
* Subscribe topics to the new fork N epochs before the fork. Remove all subscriptions N epochs after the fork
*
* This lookahead ensures a smooth fork transition. During `FORK_EPOCH_LOOKAHEAD` both forks will be active.
*
* ```
* phase0 phase0 phase0 -
* - altair altair altair
* |----------|----------|----------|----------|
* 0 fork-2 fork fork+2 oo
* ```
*
* It the fork epochs are very close to each other there may more than two active at once
*
* ```
* f0 f0 f0 f0 f0 -
* - fa fa fa fa fa -
* - - fb fb fb fb fb
*
* forka-2 forka forka+2
* | | | |
* |----------|----------|----------|----------|
* 0 forkb-2 forkb forkb+2 oo
* ```
*/
export declare const FORK_EPOCH_LOOKAHEAD = 2;
/**
* Return the list of `ForkBoundary`s meant to be active at `epoch`
* @see FORK_EPOCH_LOOKAHEAD for details on when fork boundaries are considered 'active'
*/
export declare function getActiveForkBoundaries(config: ChainForkConfig, epoch: Epoch): ForkBoundary[];
/**
* Return the currentBoundary and nextBoundary given a fork/BPO schedule and `epoch`
*/
export declare function getCurrentAndNextForkBoundary(config: ChainForkConfig, epoch: Epoch): {
currentBoundary: ForkBoundary;
nextBoundary: ForkBoundary | undefined;
};
//# sourceMappingURL=forks.d.ts.map