@lodestar/beacon-node 1.24.0-dev.25c2ee5e5b → 1.24.0-dev.30c669b1f5
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/lib/api/impl/beacon/pool/index.js +1 -1
- package/lib/api/impl/config/constants.d.ts +1 -0
- package/lib/api/impl/config/constants.js +2 -1
- package/lib/api/impl/config/constants.js.map +1 -1
- package/lib/api/impl/lodestar/index.js +20 -2
- package/lib/api/impl/lodestar/index.js.map +1 -1
- package/lib/chain/archiver/archiveBlocks.js +25 -10
- package/lib/chain/archiver/archiveBlocks.js.map +1 -1
- package/lib/chain/blocks/utils/giraffeBanner.d.ts +2 -0
- package/lib/chain/blocks/utils/giraffeBanner.js +28 -0
- package/lib/chain/blocks/utils/giraffeBanner.js.map +1 -0
- package/lib/chain/blocks/verifyBlock.js +5 -0
- package/lib/chain/blocks/verifyBlock.js.map +1 -1
- package/lib/chain/chain.js +0 -18
- package/lib/chain/chain.js.map +1 -1
- package/lib/chain/prepareNextSlot.js +6 -1
- package/lib/chain/prepareNextSlot.js.map +1 -1
- package/lib/chain/regen/interface.d.ts +9 -5
- package/lib/chain/regen/queued.d.ts +7 -12
- package/lib/chain/regen/queued.js +1 -39
- package/lib/chain/regen/queued.js.map +1 -1
- package/lib/chain/regen/regen.d.ts +5 -5
- package/lib/chain/regen/regen.js.map +1 -1
- package/lib/chain/stateCache/blockStateCacheImpl.d.ts +2 -2
- package/lib/chain/stateCache/blockStateCacheImpl.js +1 -1
- package/lib/chain/stateCache/blockStateCacheImpl.js.map +1 -1
- package/lib/chain/stateCache/fifoBlockStateCache.d.ts +2 -2
- package/lib/chain/stateCache/fifoBlockStateCache.js.map +1 -1
- package/lib/chain/stateCache/inMemoryCheckpointsCache.d.ts +5 -5
- package/lib/chain/stateCache/inMemoryCheckpointsCache.js.map +1 -1
- package/lib/chain/stateCache/persistentCheckpointsCache.d.ts +7 -13
- package/lib/chain/stateCache/persistentCheckpointsCache.js +8 -16
- package/lib/chain/stateCache/persistentCheckpointsCache.js.map +1 -1
- package/lib/chain/stateCache/types.d.ts +6 -6
- package/lib/execution/engine/http.js +3 -2
- package/lib/execution/engine/http.js.map +1 -1
- package/lib/metrics/metrics/beacon.d.ts +0 -3
- package/lib/metrics/metrics/beacon.js +0 -6
- package/lib/metrics/metrics/beacon.js.map +1 -1
- package/lib/metrics/metrics/lodestar.d.ts +0 -4
- package/lib/metrics/metrics/lodestar.js +0 -10
- package/lib/metrics/metrics/lodestar.js.map +1 -1
- package/lib/network/core/networkCore.js +8 -8
- package/lib/network/core/networkCore.js.map +1 -1
- package/lib/network/gossip/gossipsub.js +1 -1
- package/lib/network/gossip/gossipsub.js.map +1 -1
- package/lib/network/gossip/topic.d.ts +2 -2
- package/lib/network/gossip/topic.js +3 -3
- package/lib/network/gossip/topic.js.map +1 -1
- package/lib/network/interface.d.ts +2 -1
- package/lib/network/network.d.ts +2 -1
- package/lib/network/network.js +3 -3
- package/lib/network/network.js.map +1 -1
- package/lib/network/reqresp/ReqRespBeaconNode.js +2 -2
- package/lib/network/reqresp/ReqRespBeaconNode.js.map +1 -1
- package/lib/network/reqresp/beaconBlocksMaybeBlobsByRange.js +5 -3
- package/lib/network/reqresp/beaconBlocksMaybeBlobsByRange.js.map +1 -1
- package/lib/network/reqresp/handlers/blobSidecarsByRoot.d.ts +2 -2
- package/lib/network/reqresp/handlers/blobSidecarsByRoot.js.map +1 -1
- package/lib/network/reqresp/handlers/index.js +2 -1
- package/lib/network/reqresp/handlers/index.js.map +1 -1
- package/lib/network/reqresp/protocols.d.ts +16 -16
- package/lib/network/reqresp/protocols.js +2 -2
- package/lib/network/reqresp/protocols.js.map +1 -1
- package/lib/network/reqresp/rateLimit.d.ts +2 -1
- package/lib/network/reqresp/rateLimit.js +12 -12
- package/lib/network/reqresp/rateLimit.js.map +1 -1
- package/lib/network/reqresp/types.d.ts +4 -2
- package/lib/network/reqresp/types.js +4 -3
- package/lib/network/reqresp/types.js.map +1 -1
- package/lib/node/notifier.js +7 -4
- package/lib/node/notifier.js.map +1 -1
- package/lib/util/kzg.js +1 -7
- package/lib/util/kzg.js.map +1 -1
- package/lib/util/types.d.ts +7 -1
- package/lib/util/types.js +2 -1
- package/lib/util/types.js.map +1 -1
- package/package.json +14 -14
|
@@ -1,10 +1,10 @@
|
|
|
1
1
|
import { routes } from "@lodestar/api";
|
|
2
2
|
import { ProtoBlock } from "@lodestar/fork-choice";
|
|
3
|
-
import { CachedBeaconStateAllForks
|
|
3
|
+
import { CachedBeaconStateAllForks } from "@lodestar/state-transition";
|
|
4
4
|
import { BeaconBlock, Epoch, RootHex, Slot, phase0 } from "@lodestar/types";
|
|
5
5
|
import { JobItemQueue } from "../../util/queue/index.js";
|
|
6
6
|
import { CheckpointHex } from "../stateCache/index.js";
|
|
7
|
-
import { IStateRegenerator, IStateRegeneratorInternal, RegenCaller,
|
|
7
|
+
import { IStateRegenerator, IStateRegeneratorInternal, RegenCaller, StateRegenerationOpts } from "./interface.js";
|
|
8
8
|
import { RegenModules } from "./regen.js";
|
|
9
9
|
type QueuedStateRegeneratorModules = RegenModules & {
|
|
10
10
|
signal: AbortSignal;
|
|
@@ -45,7 +45,7 @@ export declare class QueuedStateRegenerator implements IStateRegenerator {
|
|
|
45
45
|
* By default, do not transfer cache except for the block at clock slot
|
|
46
46
|
* which is usually the gossip block.
|
|
47
47
|
*/
|
|
48
|
-
getPreStateSync(block: BeaconBlock, opts?:
|
|
48
|
+
getPreStateSync(block: BeaconBlock, opts?: StateRegenerationOpts): CachedBeaconStateAllForks | null;
|
|
49
49
|
getCheckpointStateOrBytes(cp: CheckpointHex): Promise<CachedBeaconStateAllForks | Uint8Array | null>;
|
|
50
50
|
/**
|
|
51
51
|
* Get checkpoint state from cache, this function is not for block processing so don't transfer cache
|
|
@@ -61,25 +61,20 @@ export declare class QueuedStateRegenerator implements IStateRegenerator {
|
|
|
61
61
|
addCheckpointState(cp: phase0.Checkpoint, item: CachedBeaconStateAllForks): void;
|
|
62
62
|
updateHeadState(newHead: ProtoBlock, maybeHeadState: CachedBeaconStateAllForks): void;
|
|
63
63
|
updatePreComputedCheckpoint(rootHex: RootHex, epoch: Epoch): number | null;
|
|
64
|
-
/**
|
|
65
|
-
* Remove `validators` from all unfinalized cache's epochCtx.UnfinalizedPubkey2Index,
|
|
66
|
-
* and add them to epochCtx.pubkey2index and epochCtx.index2pubkey
|
|
67
|
-
*/
|
|
68
|
-
updateUnfinalizedPubkeys(validators: UnfinalizedPubkeyIndexMap): void;
|
|
69
64
|
/**
|
|
70
65
|
* Get the state to run with `block`.
|
|
71
66
|
* - State after `block.parentRoot` dialed forward to block.slot
|
|
72
67
|
*/
|
|
73
|
-
getPreState(block: BeaconBlock, opts:
|
|
74
|
-
getCheckpointState(cp: phase0.Checkpoint, opts:
|
|
68
|
+
getPreState(block: BeaconBlock, opts: StateRegenerationOpts, rCaller: RegenCaller): Promise<CachedBeaconStateAllForks>;
|
|
69
|
+
getCheckpointState(cp: phase0.Checkpoint, opts: StateRegenerationOpts, rCaller: RegenCaller): Promise<CachedBeaconStateAllForks>;
|
|
75
70
|
/**
|
|
76
71
|
* Get state of provided `blockRoot` and dial forward to `slot`
|
|
77
72
|
* Use this api with care because we don't want the queue to be busy
|
|
78
73
|
* For the context, gossip block validation uses this api so we want it to be as fast as possible
|
|
79
74
|
* @returns
|
|
80
75
|
*/
|
|
81
|
-
getBlockSlotState(blockRoot: RootHex, slot: Slot, opts:
|
|
82
|
-
getState(stateRoot: RootHex, rCaller: RegenCaller, opts?:
|
|
76
|
+
getBlockSlotState(blockRoot: RootHex, slot: Slot, opts: StateRegenerationOpts, rCaller: RegenCaller): Promise<CachedBeaconStateAllForks>;
|
|
77
|
+
getState(stateRoot: RootHex, rCaller: RegenCaller, opts?: StateRegenerationOpts): Promise<CachedBeaconStateAllForks>;
|
|
83
78
|
private jobQueueProcessor;
|
|
84
79
|
}
|
|
85
80
|
export {};
|
|
@@ -3,7 +3,7 @@ import { toRootHex } from "@lodestar/utils";
|
|
|
3
3
|
import { JobItemQueue } from "../../util/queue/index.js";
|
|
4
4
|
import { toCheckpointHex } from "../stateCache/index.js";
|
|
5
5
|
import { RegenError, RegenErrorCode } from "./errors.js";
|
|
6
|
-
import { RegenCaller, RegenFnName } from "./interface.js";
|
|
6
|
+
import { RegenCaller, RegenFnName, } from "./interface.js";
|
|
7
7
|
import { StateRegenerator } from "./regen.js";
|
|
8
8
|
const REGEN_QUEUE_MAX_LEN = 256;
|
|
9
9
|
// TODO: Should this constant be lower than above? 256 feels high
|
|
@@ -176,44 +176,6 @@ export class QueuedStateRegenerator {
|
|
|
176
176
|
updatePreComputedCheckpoint(rootHex, epoch) {
|
|
177
177
|
return this.checkpointStateCache.updatePreComputedCheckpoint(rootHex, epoch);
|
|
178
178
|
}
|
|
179
|
-
/**
|
|
180
|
-
* Remove `validators` from all unfinalized cache's epochCtx.UnfinalizedPubkey2Index,
|
|
181
|
-
* and add them to epochCtx.pubkey2index and epochCtx.index2pubkey
|
|
182
|
-
*/
|
|
183
|
-
updateUnfinalizedPubkeys(validators) {
|
|
184
|
-
let numStatesUpdated = 0;
|
|
185
|
-
const states = this.blockStateCache.getStates();
|
|
186
|
-
const cpStates = this.checkpointStateCache.getStates();
|
|
187
|
-
// Add finalized pubkeys to all states.
|
|
188
|
-
const addTimer = this.metrics?.regenFnAddPubkeyTime.startTimer();
|
|
189
|
-
// We only need to add pubkeys to any one of the states since the finalized caches is shared globally across all states
|
|
190
|
-
const firstState = (states.next().value ?? cpStates.next().value);
|
|
191
|
-
if (firstState !== undefined) {
|
|
192
|
-
firstState.epochCtx.addFinalizedPubkeys(validators, this.metrics?.epochCache ?? undefined);
|
|
193
|
-
}
|
|
194
|
-
else {
|
|
195
|
-
this.logger.warn("Attempt to delete finalized pubkey from unfinalized pubkey cache. But no state is available");
|
|
196
|
-
}
|
|
197
|
-
addTimer?.();
|
|
198
|
-
// Delete finalized pubkeys from unfinalized pubkey cache for all states
|
|
199
|
-
const deleteTimer = this.metrics?.regenFnDeletePubkeyTime.startTimer();
|
|
200
|
-
const pubkeysToDelete = Array.from(validators.keys());
|
|
201
|
-
for (const s of states) {
|
|
202
|
-
s.epochCtx.deleteUnfinalizedPubkeys(pubkeysToDelete);
|
|
203
|
-
numStatesUpdated++;
|
|
204
|
-
}
|
|
205
|
-
for (const s of cpStates) {
|
|
206
|
-
s.epochCtx.deleteUnfinalizedPubkeys(pubkeysToDelete);
|
|
207
|
-
numStatesUpdated++;
|
|
208
|
-
}
|
|
209
|
-
// Since first state is consumed from the iterator. Will need to perform delete explicitly
|
|
210
|
-
if (firstState !== undefined) {
|
|
211
|
-
firstState?.epochCtx.deleteUnfinalizedPubkeys(pubkeysToDelete);
|
|
212
|
-
numStatesUpdated++;
|
|
213
|
-
}
|
|
214
|
-
deleteTimer?.();
|
|
215
|
-
this.metrics?.regenFnNumStatesUpdated.observe(numStatesUpdated);
|
|
216
|
-
}
|
|
217
179
|
/**
|
|
218
180
|
* Get the state to run with `block`.
|
|
219
181
|
* - State after `block.parentRoot` dialed forward to block.slot
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"queued.js","sourceRoot":"","sources":["../../../src/chain/regen/queued.ts"],"names":[],"mappings":"AAEA,OAAO,
|
|
1
|
+
{"version":3,"file":"queued.js","sourceRoot":"","sources":["../../../src/chain/regen/queued.ts"],"names":[],"mappings":"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"}
|
|
@@ -7,7 +7,7 @@ import { IBeaconDb } from "../../db/index.js";
|
|
|
7
7
|
import { Metrics } from "../../metrics/index.js";
|
|
8
8
|
import { ChainEventEmitter } from "../emitter.js";
|
|
9
9
|
import { BlockStateCache, CheckpointStateCache } from "../stateCache/types.js";
|
|
10
|
-
import { IStateRegeneratorInternal, RegenCaller,
|
|
10
|
+
import { IStateRegeneratorInternal, RegenCaller, StateRegenerationOpts } from "./interface.js";
|
|
11
11
|
export type RegenModules = {
|
|
12
12
|
db: IBeaconDb;
|
|
13
13
|
forkChoice: IForkChoice;
|
|
@@ -34,22 +34,22 @@ export declare class StateRegenerator implements IStateRegeneratorInternal {
|
|
|
34
34
|
* - If parent is in prev epoch -> State after `block.parentRoot` dialed forward through epoch transition
|
|
35
35
|
* - reload state if needed in this flow
|
|
36
36
|
*/
|
|
37
|
-
getPreState(block: BeaconBlock, opts:
|
|
37
|
+
getPreState(block: BeaconBlock, opts: StateRegenerationOpts, regenCaller: RegenCaller): Promise<CachedBeaconStateAllForks>;
|
|
38
38
|
/**
|
|
39
39
|
* Get state after block `cp.root` dialed forward to first slot of `cp.epoch`
|
|
40
40
|
*/
|
|
41
|
-
getCheckpointState(cp: phase0.Checkpoint, opts:
|
|
41
|
+
getCheckpointState(cp: phase0.Checkpoint, opts: StateRegenerationOpts, regenCaller: RegenCaller, allowDiskReload?: boolean): Promise<CachedBeaconStateAllForks>;
|
|
42
42
|
/**
|
|
43
43
|
* Get state after block `blockRoot` dialed forward to `slot`
|
|
44
44
|
* - allowDiskReload should be used with care, as it will cause the state to be reloaded from disk
|
|
45
45
|
*/
|
|
46
|
-
getBlockSlotState(blockRoot: RootHex, slot: Slot, opts:
|
|
46
|
+
getBlockSlotState(blockRoot: RootHex, slot: Slot, opts: StateRegenerationOpts, regenCaller: RegenCaller, allowDiskReload?: boolean): Promise<CachedBeaconStateAllForks>;
|
|
47
47
|
/**
|
|
48
48
|
* Get state by exact root. If not in cache directly, requires finding the block that references the state from the
|
|
49
49
|
* forkchoice and replaying blocks to get to it.
|
|
50
50
|
* - allowDiskReload should be used with care, as it will cause the state to be reloaded from disk
|
|
51
51
|
*/
|
|
52
|
-
getState(stateRoot: RootHex, caller: RegenCaller, opts?:
|
|
52
|
+
getState(stateRoot: RootHex, caller: RegenCaller, opts?: StateRegenerationOpts, allowDiskReload?: boolean): Promise<CachedBeaconStateAllForks>;
|
|
53
53
|
private findFirstStateBlock;
|
|
54
54
|
}
|
|
55
55
|
//# sourceMappingURL=regen.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"regen.js","sourceRoot":"","sources":["../../../src/chain/regen/regen.ts"],"names":[],"mappings":"AAEA,OAAO,EAAC,eAAe,EAAC,MAAM,kBAAkB,CAAC;AACjD,OAAO,EAEL,mBAAmB,EACnB,sBAAsB,EACtB,uBAAuB,EACvB,kBAAkB,EAClB,uBAAuB,EACvB,YAAY,EACZ,eAAe,GAChB,MAAM,4BAA4B,CAAC;AAEpC,OAAO,EAAS,OAAO,EAAE,SAAS,EAAC,MAAM,iBAAiB,CAAC;AAG3D,OAAO,EAAC,aAAa,EAAC,MAAM,yBAAyB,CAAC;AACtD,OAAO,EAAC,sBAAsB,EAAC,MAAM,+BAA+B,CAAC;AACrE,OAAO,EAAC,UAAU,EAAoB,MAAM,eAAe,CAAC;AAE5D,OAAO,EAAC,UAAU,EAAE,cAAc,EAAC,MAAM,aAAa,CAAC;AAcvD;;;;;;GAMG;AACH,MAAM,OAAO,gBAAgB;IAC3B,YAA6B,OAAqB;QAArB,YAAO,GAAP,OAAO,CAAc;IAAG,CAAC;IAEtD;;;;;OAKG;IACH,KAAK,CAAC,WAAW,CACf,KAAkB,EAClB,
|
|
1
|
+
{"version":3,"file":"regen.js","sourceRoot":"","sources":["../../../src/chain/regen/regen.ts"],"names":[],"mappings":"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"}
|
|
@@ -2,7 +2,7 @@ import { routes } from "@lodestar/api";
|
|
|
2
2
|
import { CachedBeaconStateAllForks } from "@lodestar/state-transition";
|
|
3
3
|
import { Epoch, RootHex } from "@lodestar/types";
|
|
4
4
|
import { Metrics } from "../../metrics/index.js";
|
|
5
|
-
import {
|
|
5
|
+
import { StateRegenerationOpts } from "../regen/interface.js";
|
|
6
6
|
import { BlockStateCache } from "./types.js";
|
|
7
7
|
/**
|
|
8
8
|
* Old implementation of StateCache (used to call `StateContextCache`)
|
|
@@ -27,7 +27,7 @@ export declare class BlockStateCacheImpl implements BlockStateCache {
|
|
|
27
27
|
maxStates?: number;
|
|
28
28
|
metrics?: Metrics | null;
|
|
29
29
|
});
|
|
30
|
-
get(rootHex: RootHex, opts?:
|
|
30
|
+
get(rootHex: RootHex, opts?: StateRegenerationOpts): CachedBeaconStateAllForks | null;
|
|
31
31
|
add(item: CachedBeaconStateAllForks): void;
|
|
32
32
|
setHeadState(item: CachedBeaconStateAllForks | null): void;
|
|
33
33
|
/**
|
|
@@ -18,7 +18,7 @@ export class BlockStateCacheImpl {
|
|
|
18
18
|
this.maxStates = maxStates;
|
|
19
19
|
this.cache = new MapTracker(metrics?.stateCache);
|
|
20
20
|
if (metrics) {
|
|
21
|
-
this.metrics =
|
|
21
|
+
this.metrics = metrics.stateCache;
|
|
22
22
|
metrics.stateCache.size.addCollect(() => metrics.stateCache.size.set(this.cache.size));
|
|
23
23
|
}
|
|
24
24
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"blockStateCacheImpl.js","sourceRoot":"","sources":["../../../src/chain/stateCache/blockStateCacheImpl.ts"],"names":[],"mappings":"AAGA,OAAO,EAAC,SAAS,EAAC,MAAM,iBAAiB,CAAC;AAG1C,OAAO,EAAC,UAAU,EAAC,MAAM,iBAAiB,CAAC;AAG3C,MAAM,UAAU,GAAG,CAAC,GAAG,EAAE,CAAC;AAE1B;;;;GAIG;AACH,MAAM,OAAO,mBAAmB;IAgB9B,YAAY,EAAC,SAAS,GAAG,UAAU,EAAE,OAAO,EAAiD;QAT7F,8BAA8B;QACb,eAAU,GAAG,IAAI,GAAG,EAAsB,CAAC;QAE5D;;;WAGG;QACK,SAAI,GAAkE,IAAI,CAAC;QAGjF,IAAI,CAAC,SAAS,GAAG,SAAS,CAAC;QAC3B,IAAI,CAAC,KAAK,GAAG,IAAI,UAAU,CAAC,OAAO,EAAE,UAAU,CAAC,CAAC;QACjD,IAAI,OAAO,EAAE,CAAC;YACZ,IAAI,CAAC,OAAO,GAAG,
|
|
1
|
+
{"version":3,"file":"blockStateCacheImpl.js","sourceRoot":"","sources":["../../../src/chain/stateCache/blockStateCacheImpl.ts"],"names":[],"mappings":"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"}
|
|
@@ -2,7 +2,7 @@ import { routes } from "@lodestar/api";
|
|
|
2
2
|
import { CachedBeaconStateAllForks } from "@lodestar/state-transition";
|
|
3
3
|
import { RootHex } from "@lodestar/types";
|
|
4
4
|
import { Metrics } from "../../metrics/index.js";
|
|
5
|
-
import {
|
|
5
|
+
import { StateRegenerationOpts } from "../regen/interface.js";
|
|
6
6
|
import { BlockStateCache } from "./types.js";
|
|
7
7
|
export type FIFOBlockStateCacheOpts = {
|
|
8
8
|
maxBlockStates?: number;
|
|
@@ -62,7 +62,7 @@ export declare class FIFOBlockStateCache implements BlockStateCache {
|
|
|
62
62
|
/**
|
|
63
63
|
* Get a state from this cache given a state root hex.
|
|
64
64
|
*/
|
|
65
|
-
get(rootHex: RootHex, opts?:
|
|
65
|
+
get(rootHex: RootHex, opts?: StateRegenerationOpts): CachedBeaconStateAllForks | null;
|
|
66
66
|
/**
|
|
67
67
|
* Add a state to this cache.
|
|
68
68
|
* @param isHead if true, move it to the head of the list. Otherwise add to the 2nd position.
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"fifoBlockStateCache.js","sourceRoot":"","sources":["../../../src/chain/stateCache/fifoBlockStateCache.ts"],"names":[],"mappings":"AAGA,OAAO,EAAC,SAAS,EAAC,MAAM,iBAAiB,CAAC;AAE1C,OAAO,EAAC,UAAU,EAAC,MAAM,qBAAqB,CAAC;AAE/C,OAAO,EAAC,UAAU,EAAC,MAAM,iBAAiB,CAAC;AAO3C;;;;;;;GAOG;AACH,MAAM,CAAC,MAAM,wBAAwB,GAAG,EAAE,CAAC;AAE3C;;;;;;;;;;;;;;;;;;GAkBG;AACH,MAAM,OAAO,mBAAmB;IAa9B,YAAY,IAA6B,EAAE,EAAC,OAAO,EAA6B;QAC9E,IAAI,CAAC,SAAS,GAAG,IAAI,CAAC,cAAc,IAAI,wBAAwB,CAAC;QACjE,IAAI,CAAC,KAAK,GAAG,IAAI,UAAU,CAAC,OAAO,EAAE,UAAU,CAAC,CAAC;QACjD,IAAI,OAAO,EAAE,CAAC;YACZ,IAAI,CAAC,OAAO,GAAG,OAAO,CAAC,UAAU,CAAC;YAClC,OAAO,CAAC,UAAU,CAAC,IAAI,CAAC,UAAU,CAAC,GAAG,EAAE,CAAC,OAAO,CAAC,UAAU,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC,CAAC;QACzF,CAAC;QACD,IAAI,CAAC,QAAQ,GAAG,IAAI,UAAU,EAAE,CAAC;IACnC,CAAC;IAED;;OAEG;IACH,YAAY,CAAC,IAAsC;QACjD,IAAI,IAAI,KAAK,IAAI,EAAE,CAAC;YAClB,IAAI,CAAC,GAAG,CAAC,IAAI,EAAE,IAAI,CAAC,CAAC;QACvB,CAAC;IACH,CAAC;IAED;;;;OAIG;IACH,YAAY;QACV,MAAM,UAAU,GAAG,IAAI,CAAC,KAAK,CAAC,MAAM,EAAE,CAAC,IAAI,EAAE,CAAC;QAC9C,IAAI,UAAU,CAAC,IAAI,EAAE,CAAC;YACpB,oBAAoB;YACpB,MAAM,KAAK,CAAC,iCAAiC,CAAC,CAAC;QACjD,CAAC;QAED,MAAM,UAAU,GAAG,UAAU,CAAC,KAAK,CAAC;QACpC,8FAA8F;QAC9F,OAAO,UAAU,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC;IAChC,CAAC;IAED;;OAEG;IACH,GAAG,CAAC,OAAgB,EAAE,
|
|
1
|
+
{"version":3,"file":"fifoBlockStateCache.js","sourceRoot":"","sources":["../../../src/chain/stateCache/fifoBlockStateCache.ts"],"names":[],"mappings":"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"}
|
|
@@ -2,7 +2,7 @@ import { routes } from "@lodestar/api";
|
|
|
2
2
|
import { CachedBeaconStateAllForks } from "@lodestar/state-transition";
|
|
3
3
|
import { Epoch, RootHex, phase0 } from "@lodestar/types";
|
|
4
4
|
import { Metrics } from "../../metrics/index.js";
|
|
5
|
-
import {
|
|
5
|
+
import { StateRegenerationOpts } from "../regen/interface.js";
|
|
6
6
|
import { CheckpointStateCache } from "./types.js";
|
|
7
7
|
export type CheckpointHex = {
|
|
8
8
|
epoch: Epoch;
|
|
@@ -30,16 +30,16 @@ export declare class InMemoryCheckpointStateCache implements CheckpointStateCach
|
|
|
30
30
|
}, { maxEpochs }?: {
|
|
31
31
|
maxEpochs?: number;
|
|
32
32
|
});
|
|
33
|
-
getOrReload(cp: CheckpointHex, opts?:
|
|
33
|
+
getOrReload(cp: CheckpointHex, opts?: StateRegenerationOpts): Promise<CachedBeaconStateAllForks | null>;
|
|
34
34
|
getStateOrBytes(cp: CheckpointHex): Promise<Uint8Array | CachedBeaconStateAllForks | null>;
|
|
35
|
-
getOrReloadLatest(rootHex: string, maxEpoch: number, opts?:
|
|
35
|
+
getOrReloadLatest(rootHex: string, maxEpoch: number, opts?: StateRegenerationOpts): Promise<CachedBeaconStateAllForks | null>;
|
|
36
36
|
processState(): Promise<number>;
|
|
37
|
-
get(cp: CheckpointHex, opts?:
|
|
37
|
+
get(cp: CheckpointHex, opts?: StateRegenerationOpts): CachedBeaconStateAllForks | null;
|
|
38
38
|
add(cp: phase0.Checkpoint, item: CachedBeaconStateAllForks): void;
|
|
39
39
|
/**
|
|
40
40
|
* Searches for the latest cached state with a `root`, starting with `epoch` and descending
|
|
41
41
|
*/
|
|
42
|
-
getLatest(rootHex: RootHex, maxEpoch: Epoch, opts?:
|
|
42
|
+
getLatest(rootHex: RootHex, maxEpoch: Epoch, opts?: StateRegenerationOpts): CachedBeaconStateAllForks | null;
|
|
43
43
|
/**
|
|
44
44
|
* Update the precomputed checkpoint and return the number of his for the
|
|
45
45
|
* previous one (if any).
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"inMemoryCheckpointsCache.js","sourceRoot":"","sources":["../../../src/chain/stateCache/inMemoryCheckpointsCache.ts"],"names":[],"mappings":"AAGA,OAAO,EAAC,MAAM,EAAE,SAAS,EAAC,MAAM,iBAAiB,CAAC;AAGlD,OAAO,EAAC,UAAU,EAAC,MAAM,iBAAiB,CAAC;AAC3C,OAAO,EAAC,aAAa,EAAuB,MAAM,YAAY,CAAC;AAG/D,MAAM,UAAU,GAAG,EAAE,CAAC;AAEtB;;;;;GAKG;AACH,MAAM,OAAO,4BAA4B;IAYvC,YAAY,EAAC,OAAO,GAAG,IAAI,EAA6B,EAAE,EAAC,SAAS,GAAG,UAAU,KAA0B,EAAE;QAV7G,8BAA8B;QACb,eAAU,GAAG,IAAI,MAAM,CAAqB,GAAG,EAAE,CAAC,IAAI,GAAG,EAAU,CAAC,CAAC;QAM9E,0BAAqB,GAAkB,IAAI,CAAC;QAC5C,8BAAyB,GAAkB,IAAI,CAAC;QAGtD,IAAI,CAAC,KAAK,GAAG,IAAI,UAAU,CAAC,OAAO,EAAE,YAAY,CAAC,CAAC;QACnD,IAAI,OAAO,EAAE,CAAC;YACZ,IAAI,CAAC,OAAO,GAAG,OAAO,CAAC,YAAY,CAAC;YACpC,OAAO,CAAC,YAAY,CAAC,IAAI,CAAC,UAAU,CAAC,GAAG,EAAE,CACxC,OAAO,CAAC,YAAY,CAAC,IAAI,CAAC,GAAG,CAAC,EAAC,IAAI,EAAE,aAAa,CAAC,QAAQ,EAAC,EAAE,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,CAC/E,CAAC;YACF,OAAO,CAAC,YAAY,CAAC,SAAS,CAAC,UAAU,CAAC,GAAG,EAAE,CAC7C,OAAO,CAAC,YAAY,CAAC,SAAS,CAAC,GAAG,CAAC,EAAC,IAAI,EAAE,aAAa,CAAC,QAAQ,EAAC,EAAE,IAAI,CAAC,UAAU,CAAC,IAAI,CAAC,CACzF,CAAC;QACJ,CAAC;QACD,IAAI,CAAC,SAAS,GAAG,SAAS,CAAC;IAC7B,CAAC;IAED,KAAK,CAAC,WAAW,CAAC,EAAiB,EAAE,
|
|
1
|
+
{"version":3,"file":"inMemoryCheckpointsCache.js","sourceRoot":"","sources":["../../../src/chain/stateCache/inMemoryCheckpointsCache.ts"],"names":[],"mappings":"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"}
|
|
@@ -5,22 +5,18 @@ import { Logger } from "@lodestar/utils";
|
|
|
5
5
|
import { Metrics } from "../../metrics/index.js";
|
|
6
6
|
import { BufferPool } from "../../util/bufferPool.js";
|
|
7
7
|
import { IClock } from "../../util/clock.js";
|
|
8
|
-
import {
|
|
9
|
-
import { ShufflingCache } from "../shufflingCache.js";
|
|
8
|
+
import { StateRegenerationOpts } from "../regen/interface.js";
|
|
10
9
|
import { CPStateDatastore, DatastoreKey } from "./datastore/index.js";
|
|
11
10
|
import { BlockStateCache, CheckpointHex, CheckpointStateCache } from "./types.js";
|
|
12
11
|
export type PersistentCheckpointStateCacheOpts = {
|
|
13
12
|
/** Keep max n states in memory, persist the rest to disk */
|
|
14
13
|
maxCPStateEpochsInMemory?: number;
|
|
15
|
-
/** for testing only */
|
|
16
|
-
processLateBlock?: boolean;
|
|
17
14
|
};
|
|
18
15
|
type PersistentCheckpointStateCacheModules = {
|
|
19
16
|
metrics?: Metrics | null;
|
|
20
17
|
logger: Logger;
|
|
21
18
|
clock?: IClock | null;
|
|
22
19
|
signal?: AbortSignal;
|
|
23
|
-
shufflingCache: ShufflingCache;
|
|
24
20
|
datastore: CPStateDatastore;
|
|
25
21
|
blockStateCache: BlockStateCache;
|
|
26
22
|
bufferPool?: BufferPool | null;
|
|
@@ -78,12 +74,10 @@ export declare class PersistentCheckpointStateCache implements CheckpointStateCa
|
|
|
78
74
|
private preComputedCheckpoint;
|
|
79
75
|
private preComputedCheckpointHits;
|
|
80
76
|
private readonly maxEpochsInMemory;
|
|
81
|
-
private readonly processLateBlock;
|
|
82
77
|
private readonly datastore;
|
|
83
|
-
private readonly shufflingCache;
|
|
84
78
|
private readonly blockStateCache;
|
|
85
79
|
private readonly bufferPool?;
|
|
86
|
-
constructor({ metrics, logger, clock, signal,
|
|
80
|
+
constructor({ metrics, logger, clock, signal, datastore, blockStateCache, bufferPool }: PersistentCheckpointStateCacheModules, opts: PersistentCheckpointStateCacheOpts);
|
|
87
81
|
/**
|
|
88
82
|
* Reload checkpoint state keys from the last run.
|
|
89
83
|
*/
|
|
@@ -95,7 +89,7 @@ export declare class PersistentCheckpointStateCache implements CheckpointStateCa
|
|
|
95
89
|
* - Get block for processing
|
|
96
90
|
* - Regen head state
|
|
97
91
|
*/
|
|
98
|
-
getOrReload(cp: CheckpointHex, opts?:
|
|
92
|
+
getOrReload(cp: CheckpointHex, opts?: StateRegenerationOpts): Promise<CachedBeaconStateAllForks | null>;
|
|
99
93
|
/**
|
|
100
94
|
* Return either state or state bytes loaded from db.
|
|
101
95
|
*/
|
|
@@ -103,11 +97,11 @@ export declare class PersistentCheckpointStateCache implements CheckpointStateCa
|
|
|
103
97
|
/**
|
|
104
98
|
* Return either state or state bytes with persisted key loaded from db.
|
|
105
99
|
*/
|
|
106
|
-
getStateOrLoadDb(cp: CheckpointHex, opts?:
|
|
100
|
+
getStateOrLoadDb(cp: CheckpointHex, opts?: StateRegenerationOpts): Promise<CachedBeaconStateAllForks | LoadedStateBytesData | null>;
|
|
107
101
|
/**
|
|
108
102
|
* Similar to get() api without reloading from disk
|
|
109
103
|
*/
|
|
110
|
-
get(cpOrKey: CheckpointHex | string, opts?:
|
|
104
|
+
get(cpOrKey: CheckpointHex | string, opts?: StateRegenerationOpts): CachedBeaconStateAllForks | null;
|
|
111
105
|
/**
|
|
112
106
|
* Add a state of a checkpoint to this cache, prune from memory if necessary.
|
|
113
107
|
*/
|
|
@@ -115,7 +109,7 @@ export declare class PersistentCheckpointStateCache implements CheckpointStateCa
|
|
|
115
109
|
/**
|
|
116
110
|
* Searches in-memory state for the latest cached state with a `root` without reload, starting with `epoch` and descending
|
|
117
111
|
*/
|
|
118
|
-
getLatest(rootHex: RootHex, maxEpoch: Epoch, opts?:
|
|
112
|
+
getLatest(rootHex: RootHex, maxEpoch: Epoch, opts?: StateRegenerationOpts): CachedBeaconStateAllForks | null;
|
|
119
113
|
/**
|
|
120
114
|
* Searches state for the latest cached state with a `root`, reload if needed, starting with `epoch` and descending
|
|
121
115
|
* This is expensive api, should only be called in some important flows:
|
|
@@ -123,7 +117,7 @@ export declare class PersistentCheckpointStateCache implements CheckpointStateCa
|
|
|
123
117
|
* - Get block for processing
|
|
124
118
|
* - Regen head state
|
|
125
119
|
*/
|
|
126
|
-
getOrReloadLatest(rootHex: RootHex, maxEpoch: Epoch, opts?:
|
|
120
|
+
getOrReloadLatest(rootHex: RootHex, maxEpoch: Epoch, opts?: StateRegenerationOpts): Promise<CachedBeaconStateAllForks | null>;
|
|
127
121
|
/**
|
|
128
122
|
* Update the precomputed checkpoint and return the number of his for the
|
|
129
123
|
* previous one (if any).
|
|
@@ -49,7 +49,6 @@ import { loadCachedBeaconState } from "@lodestar/state-transition";
|
|
|
49
49
|
import { MapDef, fromHex, sleep, toHex, toRootHex } from "@lodestar/utils";
|
|
50
50
|
import { AllocSource } from "../../util/bufferPool.js";
|
|
51
51
|
import { serializeState } from "../serializeState.js";
|
|
52
|
-
import { datastoreKeyToCheckpoint } from "./datastore/index.js";
|
|
53
52
|
import { MapTracker } from "./mapMetrics.js";
|
|
54
53
|
import { CacheItemType } from "./types.js";
|
|
55
54
|
/**
|
|
@@ -91,7 +90,7 @@ export const DEFAULT_MAX_CP_STATE_EPOCHS_IN_MEMORY = 3;
|
|
|
91
90
|
* - the goal is to make sure we can regen any states later if needed, and we have the checkpoint state that could be justified/finalized later
|
|
92
91
|
*/
|
|
93
92
|
export class PersistentCheckpointStateCache {
|
|
94
|
-
constructor({ metrics, logger, clock, signal,
|
|
93
|
+
constructor({ metrics, logger, clock, signal, datastore, blockStateCache, bufferPool }, opts) {
|
|
95
94
|
/** Epoch -> Set<blockRoot> */
|
|
96
95
|
this.epochIndex = new MapDef(() => new Set());
|
|
97
96
|
this.preComputedCheckpoint = null;
|
|
@@ -128,10 +127,8 @@ export class PersistentCheckpointStateCache {
|
|
|
128
127
|
throw new Error("maxEpochsInMemory must be >= 0");
|
|
129
128
|
}
|
|
130
129
|
this.maxEpochsInMemory = opts.maxCPStateEpochsInMemory ?? DEFAULT_MAX_CP_STATE_EPOCHS_IN_MEMORY;
|
|
131
|
-
this.processLateBlock = opts.processLateBlock ?? false;
|
|
132
130
|
// Specify different datastore for testing
|
|
133
131
|
this.datastore = datastore;
|
|
134
|
-
this.shufflingCache = shufflingCache;
|
|
135
132
|
this.blockStateCache = blockStateCache;
|
|
136
133
|
this.bufferPool = bufferPool;
|
|
137
134
|
}
|
|
@@ -143,12 +140,11 @@ export class PersistentCheckpointStateCache {
|
|
|
143
140
|
await this.datastore.init();
|
|
144
141
|
}
|
|
145
142
|
const persistedKeys = await this.datastore.readKeys();
|
|
146
|
-
|
|
147
|
-
|
|
148
|
-
|
|
149
|
-
|
|
150
|
-
|
|
151
|
-
this.logger.info("Loaded persisted checkpoint states from the last run", {
|
|
143
|
+
// all checkpoint states from the last run are not trusted, remove them
|
|
144
|
+
// otherwise if we have a bad checkpoint state from the last run, the node get stucked
|
|
145
|
+
// this was found during mekong devnet, see https://github.com/ChainSafe/lodestar/pull/7255
|
|
146
|
+
await Promise.all(persistedKeys.map((key) => this.datastore.remove(key)));
|
|
147
|
+
this.logger.info("Removed persisted checkpoint states from the last run", {
|
|
152
148
|
count: persistedKeys.length,
|
|
153
149
|
maxEpochsInMemory: this.maxEpochsInMemory,
|
|
154
150
|
});
|
|
@@ -440,12 +436,8 @@ export class PersistentCheckpointStateCache {
|
|
|
440
436
|
// normally it should only persist checkpoint states at 2/3 of slot 0 of epoch
|
|
441
437
|
await sleep(secToTwoThirdsSlot * 1000, this.signal);
|
|
442
438
|
}
|
|
443
|
-
|
|
444
|
-
|
|
445
|
-
// there are plenty of chances in the same epoch to persist checkpoint states, also if block is late it could be reorged
|
|
446
|
-
this.logger.verbose("Skip persist checkpoint states", { blockSlot, root: blockRootHex });
|
|
447
|
-
return 0;
|
|
448
|
-
}
|
|
439
|
+
// at syncing time, it's critical to persist checkpoint states as soon as possible to avoid OOM during unfinality time
|
|
440
|
+
// if node is synced this is not a hot time because block comes late, we'll likely miss attestation already, or the block is orphaned
|
|
449
441
|
const persistEpochs = sortedEpochs.slice(0, sortedEpochs.length - this.maxEpochsInMemory);
|
|
450
442
|
for (const lowestEpoch of persistEpochs) {
|
|
451
443
|
// usually there is only 0 or 1 epoch to persist in this loop
|