@lodestar/beacon-node 1.43.0-dev.6641fd750e → 1.43.0-dev.ade910fc78
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/lodestar/attesterSlashing.d.ts +8 -0
- package/lib/api/impl/lodestar/attesterSlashing.d.ts.map +1 -0
- package/lib/api/impl/lodestar/attesterSlashing.js +29 -0
- package/lib/api/impl/lodestar/attesterSlashing.js.map +1 -0
- package/lib/api/impl/lodestar/index.d.ts.map +1 -1
- package/lib/api/impl/lodestar/index.js +36 -1
- package/lib/api/impl/lodestar/index.js.map +1 -1
- package/lib/chain/blocks/importBlock.js +4 -4
- package/lib/chain/blocks/importBlock.js.map +1 -1
- package/lib/chain/chain.d.ts.map +1 -1
- package/lib/chain/chain.js +3 -7
- package/lib/chain/chain.js.map +1 -1
- package/lib/chain/regen/interface.d.ts +0 -1
- package/lib/chain/regen/interface.d.ts.map +1 -1
- package/lib/chain/regen/queued.d.ts +2 -3
- package/lib/chain/regen/queued.d.ts.map +1 -1
- package/lib/chain/regen/queued.js +7 -32
- package/lib/chain/regen/queued.js.map +1 -1
- package/lib/chain/regen/regen.d.ts.map +1 -1
- package/lib/chain/regen/regen.js +7 -26
- package/lib/chain/regen/regen.js.map +1 -1
- package/lib/chain/stateCache/datastore/db.d.ts +5 -4
- package/lib/chain/stateCache/datastore/db.d.ts.map +1 -1
- package/lib/chain/stateCache/datastore/db.js +10 -32
- package/lib/chain/stateCache/datastore/db.js.map +1 -1
- package/lib/chain/stateCache/datastore/file.d.ts +1 -1
- package/lib/chain/stateCache/datastore/file.d.ts.map +1 -1
- package/lib/chain/stateCache/datastore/file.js +5 -5
- package/lib/chain/stateCache/datastore/file.js.map +1 -1
- package/lib/chain/stateCache/datastore/types.d.ts +1 -1
- package/lib/chain/stateCache/datastore/types.d.ts.map +1 -1
- package/lib/chain/stateCache/fifoBlockStateCache.d.ts +1 -7
- package/lib/chain/stateCache/fifoBlockStateCache.d.ts.map +1 -1
- package/lib/chain/stateCache/fifoBlockStateCache.js +0 -8
- package/lib/chain/stateCache/fifoBlockStateCache.js.map +1 -1
- package/lib/chain/stateCache/persistentCheckpointsCache.d.ts +19 -30
- package/lib/chain/stateCache/persistentCheckpointsCache.d.ts.map +1 -1
- package/lib/chain/stateCache/persistentCheckpointsCache.js +118 -209
- package/lib/chain/stateCache/persistentCheckpointsCache.js.map +1 -1
- package/lib/chain/stateCache/types.d.ts +12 -13
- package/lib/chain/stateCache/types.d.ts.map +1 -1
- package/lib/chain/stateCache/types.js.map +1 -1
- package/lib/network/gossip/topic.d.ts +2 -729
- package/lib/network/gossip/topic.d.ts.map +1 -1
- package/package.json +15 -15
- package/src/api/impl/lodestar/attesterSlashing.ts +43 -0
- package/src/api/impl/lodestar/index.ts +48 -2
- package/src/chain/blocks/importBlock.ts +4 -4
- package/src/chain/chain.ts +3 -15
- package/src/chain/regen/interface.ts +0 -1
- package/src/chain/regen/queued.ts +8 -36
- package/src/chain/regen/regen.ts +8 -28
- package/src/chain/stateCache/datastore/db.ts +10 -33
- package/src/chain/stateCache/datastore/file.ts +5 -6
- package/src/chain/stateCache/datastore/types.ts +2 -3
- package/src/chain/stateCache/fifoBlockStateCache.ts +1 -10
- package/src/chain/stateCache/persistentCheckpointsCache.ts +142 -240
- package/src/chain/stateCache/types.ts +10 -13
|
@@ -56,19 +56,6 @@ import { AllocSource } from "../../util/bufferPool.js";
|
|
|
56
56
|
import { serializeState } from "../serializeState.js";
|
|
57
57
|
import { MapTracker } from "./mapMetrics.js";
|
|
58
58
|
import { CacheItemType } from "./types.js";
|
|
59
|
-
/** Bitmask for tracking which payload variants exist per root in the epochIndex */
|
|
60
|
-
var PayloadAvailability;
|
|
61
|
-
(function (PayloadAvailability) {
|
|
62
|
-
PayloadAvailability[PayloadAvailability["NOT_PRESENT"] = 1] = "NOT_PRESENT";
|
|
63
|
-
PayloadAvailability[PayloadAvailability["PRESENT"] = 2] = "PRESENT";
|
|
64
|
-
})(PayloadAvailability || (PayloadAvailability = {}));
|
|
65
|
-
const PAYLOAD_AVAILABILITY_ALL = [PayloadAvailability.NOT_PRESENT, PayloadAvailability.PRESENT];
|
|
66
|
-
function toPayloadAvailability(payloadPresent) {
|
|
67
|
-
return payloadPresent ? PayloadAvailability.PRESENT : PayloadAvailability.NOT_PRESENT;
|
|
68
|
-
}
|
|
69
|
-
function fromPayloadAvailability(flag) {
|
|
70
|
-
return flag === PayloadAvailability.PRESENT;
|
|
71
|
-
}
|
|
72
59
|
/**
|
|
73
60
|
* Before n-historical states, lodestar keeps all checkpoint states since finalized
|
|
74
61
|
* Since Sep 2024, lodestar stores 3 most recent checkpoint states in memory and the rest on disk. The finalized state
|
|
@@ -118,8 +105,8 @@ const PROCESS_CHECKPOINT_STATES_BPS = 6667;
|
|
|
118
105
|
*/
|
|
119
106
|
export class PersistentCheckpointStateCache {
|
|
120
107
|
cache;
|
|
121
|
-
/** Epoch ->
|
|
122
|
-
epochIndex = new MapDef(() => new
|
|
108
|
+
/** Epoch -> Set<blockRoot> */
|
|
109
|
+
epochIndex = new MapDef(() => new Set());
|
|
123
110
|
config;
|
|
124
111
|
metrics;
|
|
125
112
|
logger;
|
|
@@ -205,12 +192,7 @@ export class PersistentCheckpointStateCache {
|
|
|
205
192
|
return stateOrStateBytesData ?? null;
|
|
206
193
|
}
|
|
207
194
|
const { persistedKey, stateBytes } = stateOrStateBytesData;
|
|
208
|
-
const logMeta = {
|
|
209
|
-
epoch: cp.epoch,
|
|
210
|
-
rootHex: cp.rootHex,
|
|
211
|
-
payloadPresent: cp.payloadPresent,
|
|
212
|
-
persistedKey: toHex(persistedKey),
|
|
213
|
-
};
|
|
195
|
+
const logMeta = { persistedKey: toHex(persistedKey) };
|
|
214
196
|
this.logger.debug("Reload: read state successful", logMeta);
|
|
215
197
|
this.metrics?.cpStateCache.stateReloadSecFromSlot.observe(this.clock?.secFromSlot(this.clock?.currentSlot ?? 0) ?? 0);
|
|
216
198
|
const seedState = this.findSeedStateToReload(cp);
|
|
@@ -245,7 +227,7 @@ export class PersistentCheckpointStateCache {
|
|
|
245
227
|
// only remove persisted state once we reload successfully
|
|
246
228
|
const cpKey = toCacheKey(cp);
|
|
247
229
|
this.cache.set(cpKey, { type: CacheItemType.inMemory, state: newCachedState, persistedKey });
|
|
248
|
-
this.
|
|
230
|
+
this.epochIndex.getOrDefault(cp.epoch).add(cp.rootHex);
|
|
249
231
|
// don't prune from memory here, call it at the last 1/3 of slot 0 of an epoch
|
|
250
232
|
return newCachedState;
|
|
251
233
|
}
|
|
@@ -321,11 +303,9 @@ export class PersistentCheckpointStateCache {
|
|
|
321
303
|
}
|
|
322
304
|
/**
|
|
323
305
|
* Add a state of a checkpoint to this cache, prune from memory if necessary.
|
|
324
|
-
* @param payloadPresent - For Gloas: true if this is payload state, false if block state.
|
|
325
|
-
* Always true for pre-Gloas.
|
|
326
306
|
*/
|
|
327
|
-
add(cp, state
|
|
328
|
-
const cpHex =
|
|
307
|
+
add(cp, state) {
|
|
308
|
+
const cpHex = toCheckpointHex(cp);
|
|
329
309
|
const key = toCacheKey(cpHex);
|
|
330
310
|
const cacheItem = this.cache.get(key);
|
|
331
311
|
this.metrics?.cpStateCache.adds.inc();
|
|
@@ -336,32 +316,27 @@ export class PersistentCheckpointStateCache {
|
|
|
336
316
|
this.logger.verbose("Added checkpoint state to memory but a persisted key existed", {
|
|
337
317
|
epoch: cp.epoch,
|
|
338
318
|
rootHex: cpHex.rootHex,
|
|
339
|
-
payloadPresent,
|
|
340
319
|
persistedKey: toHex(persistedKey),
|
|
341
320
|
});
|
|
342
321
|
}
|
|
343
322
|
else {
|
|
344
323
|
this.cache.set(key, { type: CacheItemType.inMemory, state });
|
|
345
|
-
this.logger.verbose("Added checkpoint state to memory", {
|
|
346
|
-
epoch: cp.epoch,
|
|
347
|
-
rootHex: cpHex.rootHex,
|
|
348
|
-
payloadPresent,
|
|
349
|
-
});
|
|
324
|
+
this.logger.verbose("Added checkpoint state to memory", { epoch: cp.epoch, rootHex: cpHex.rootHex });
|
|
350
325
|
}
|
|
351
|
-
this.
|
|
326
|
+
this.epochIndex.getOrDefault(cp.epoch).add(cpHex.rootHex);
|
|
352
327
|
this.prunePersistedStates();
|
|
353
328
|
}
|
|
354
329
|
/**
|
|
355
330
|
* Searches in-memory state for the latest cached state with a `root` without reload, starting with `epoch` and descending
|
|
356
331
|
*/
|
|
357
|
-
getLatest(rootHex, maxEpoch
|
|
332
|
+
getLatest(rootHex, maxEpoch) {
|
|
358
333
|
// sort epochs in descending order, only consider epochs lte `epoch`
|
|
359
334
|
const epochs = Array.from(this.epochIndex.keys())
|
|
360
335
|
.sort((a, b) => b - a)
|
|
361
336
|
.filter((e) => e <= maxEpoch);
|
|
362
337
|
for (const epoch of epochs) {
|
|
363
|
-
if (this.
|
|
364
|
-
const inMemoryClonedState = this.get({ rootHex, epoch
|
|
338
|
+
if (this.epochIndex.get(epoch)?.has(rootHex)) {
|
|
339
|
+
const inMemoryClonedState = this.get({ rootHex, epoch });
|
|
365
340
|
if (inMemoryClonedState) {
|
|
366
341
|
return inMemoryClonedState;
|
|
367
342
|
}
|
|
@@ -376,21 +351,21 @@ export class PersistentCheckpointStateCache {
|
|
|
376
351
|
* - Get block for processing
|
|
377
352
|
* - Regen head state
|
|
378
353
|
*/
|
|
379
|
-
async getOrReloadLatest(rootHex, maxEpoch
|
|
354
|
+
async getOrReloadLatest(rootHex, maxEpoch) {
|
|
380
355
|
// sort epochs in descending order, only consider epochs lte `epoch`
|
|
381
356
|
const epochs = Array.from(this.epochIndex.keys())
|
|
382
357
|
.sort((a, b) => b - a)
|
|
383
358
|
.filter((e) => e <= maxEpoch);
|
|
384
359
|
for (const epoch of epochs) {
|
|
385
|
-
if (this.
|
|
360
|
+
if (this.epochIndex.get(epoch)?.has(rootHex)) {
|
|
386
361
|
try {
|
|
387
|
-
const state = await this.getOrReload({ rootHex, epoch
|
|
362
|
+
const state = await this.getOrReload({ rootHex, epoch });
|
|
388
363
|
if (state) {
|
|
389
364
|
return state;
|
|
390
365
|
}
|
|
391
366
|
}
|
|
392
367
|
catch (e) {
|
|
393
|
-
this.logger.debug("Error get or reload state", { epoch, rootHex
|
|
368
|
+
this.logger.debug("Error get or reload state", { epoch, rootHex }, e);
|
|
394
369
|
}
|
|
395
370
|
}
|
|
396
371
|
}
|
|
@@ -399,12 +374,10 @@ export class PersistentCheckpointStateCache {
|
|
|
399
374
|
/**
|
|
400
375
|
* Update the precomputed checkpoint and return the number of hits for the
|
|
401
376
|
* previous one (if any).
|
|
402
|
-
* @param payloadPresent - For Gloas: true if head block has FULL payload, false if EMPTY.
|
|
403
|
-
* Always true for pre-Gloas.
|
|
404
377
|
*/
|
|
405
|
-
updatePreComputedCheckpoint(rootHex, epoch
|
|
378
|
+
updatePreComputedCheckpoint(rootHex, epoch) {
|
|
406
379
|
const previousHits = this.preComputedCheckpointHits;
|
|
407
|
-
this.preComputedCheckpoint = toCacheKey({ rootHex, epoch
|
|
380
|
+
this.preComputedCheckpoint = toCacheKey({ rootHex, epoch });
|
|
408
381
|
this.preComputedCheckpointHits = 0;
|
|
409
382
|
return previousHits;
|
|
410
383
|
}
|
|
@@ -473,9 +446,6 @@ export class PersistentCheckpointStateCache {
|
|
|
473
446
|
* - 2 then we'll persist {root: b2, epoch n-2} checkpoint state to disk, there are also 2 checkpoint states in memory at epoch n, same to the above (maxEpochsInMemory=1)
|
|
474
447
|
*
|
|
475
448
|
* As of Mar 2024, it takes <=350ms to persist a holesky state on fast server
|
|
476
|
-
*
|
|
477
|
-
* For Gloas: Processes both block state and payload state variants together. The decision of which roots to persist/prune
|
|
478
|
-
* is based on root canonicality (from state's view), not payload presence. Both variants are managed as a unit.
|
|
479
449
|
*/
|
|
480
450
|
async processState(blockRootHex, state) {
|
|
481
451
|
let persistCount = 0;
|
|
@@ -550,35 +520,30 @@ export class PersistentCheckpointStateCache {
|
|
|
550
520
|
if (firstState !== null) {
|
|
551
521
|
return firstState;
|
|
552
522
|
}
|
|
553
|
-
for (const
|
|
554
|
-
|
|
555
|
-
|
|
556
|
-
|
|
557
|
-
|
|
558
|
-
|
|
559
|
-
|
|
560
|
-
|
|
561
|
-
|
|
523
|
+
for (const rootHex of this.epochIndex.get(epoch) || []) {
|
|
524
|
+
const cpKey = toCacheKey({ rootHex, epoch });
|
|
525
|
+
const cacheItem = this.cache.get(cpKey);
|
|
526
|
+
if (cacheItem === undefined) {
|
|
527
|
+
continue;
|
|
528
|
+
}
|
|
529
|
+
if (isInMemoryCacheItem(cacheItem)) {
|
|
530
|
+
const { state } = cacheItem;
|
|
531
|
+
if (firstState === null) {
|
|
532
|
+
firstState = state;
|
|
562
533
|
}
|
|
563
|
-
|
|
564
|
-
|
|
565
|
-
|
|
566
|
-
|
|
567
|
-
|
|
568
|
-
|
|
569
|
-
|
|
570
|
-
// amongst states of the same epoch, choose the one with the same view of reloadedCp
|
|
571
|
-
if (reloadedCpSlot < state.slot &&
|
|
572
|
-
toRootHex(state.getBlockRootAtSlot(reloadedCpSlot)) === reloadedCp.rootHex) {
|
|
573
|
-
this.logger.verbose("Reload: use checkpoint state as seed state", { ...cpLog, ...logCtx });
|
|
574
|
-
return state;
|
|
575
|
-
}
|
|
576
|
-
}
|
|
577
|
-
catch (e) {
|
|
578
|
-
// getBlockRootAtSlot may throw error
|
|
579
|
-
this.logger.debug("Error finding checkpoint state to reload", { ...cpLog, ...logCtx }, e);
|
|
534
|
+
const cpLog = { cpEpoch: epoch, cpRoot: rootHex };
|
|
535
|
+
try {
|
|
536
|
+
// amongst states of the same epoch, choose the one with the same view of reloadedCp
|
|
537
|
+
if (reloadedCpSlot < state.slot &&
|
|
538
|
+
toRootHex(state.getBlockRootAtSlot(reloadedCpSlot)) === reloadedCp.rootHex) {
|
|
539
|
+
this.logger.verbose("Reload: use checkpoint state as seed state", { ...cpLog, ...logCtx });
|
|
540
|
+
return state;
|
|
580
541
|
}
|
|
581
542
|
}
|
|
543
|
+
catch (e) {
|
|
544
|
+
// getBlockRootAtSlot may throw error
|
|
545
|
+
this.logger.debug("Error finding checkpoint state to reload", { ...cpLog, ...logCtx }, e);
|
|
546
|
+
}
|
|
582
547
|
}
|
|
583
548
|
}
|
|
584
549
|
}
|
|
@@ -591,31 +556,6 @@ export class PersistentCheckpointStateCache {
|
|
|
591
556
|
this.cache.clear();
|
|
592
557
|
this.epochIndex.clear();
|
|
593
558
|
}
|
|
594
|
-
addToEpochIndex(epoch, rootHex, payloadPresent) {
|
|
595
|
-
const rootMap = this.epochIndex.getOrDefault(epoch);
|
|
596
|
-
rootMap.set(rootHex, (rootMap.get(rootHex) ?? 0) | toPayloadAvailability(payloadPresent));
|
|
597
|
-
}
|
|
598
|
-
removeFromEpochIndex(epoch, rootHex, payloadPresent) {
|
|
599
|
-
const rootMap = this.epochIndex.get(epoch);
|
|
600
|
-
if (rootMap === undefined)
|
|
601
|
-
return;
|
|
602
|
-
const existing = rootMap.get(rootHex);
|
|
603
|
-
if (existing === undefined)
|
|
604
|
-
return;
|
|
605
|
-
const updated = existing & ~toPayloadAvailability(payloadPresent);
|
|
606
|
-
if (updated === 0) {
|
|
607
|
-
rootMap.delete(rootHex);
|
|
608
|
-
if (rootMap.size === 0) {
|
|
609
|
-
this.epochIndex.delete(epoch);
|
|
610
|
-
}
|
|
611
|
-
}
|
|
612
|
-
else {
|
|
613
|
-
rootMap.set(rootHex, updated);
|
|
614
|
-
}
|
|
615
|
-
}
|
|
616
|
-
hasPayloadVariant(epoch, rootHex, payloadPresent) {
|
|
617
|
-
return Boolean((this.epochIndex.get(epoch)?.get(rootHex) ?? 0) & toPayloadAvailability(payloadPresent));
|
|
618
|
-
}
|
|
619
559
|
/** ONLY FOR DEBUGGING PURPOSES. For lodestar debug API */
|
|
620
560
|
dumpSummary() {
|
|
621
561
|
return Array.from(this.cache.keys()).map((key) => {
|
|
@@ -684,81 +624,81 @@ export class PersistentCheckpointStateCache {
|
|
|
684
624
|
const epochBoundaryHex = toRootHex(epochBoundaryRoot);
|
|
685
625
|
const prevEpochRoot = toRootHex(state.getBlockRootAtSlot(epochBoundarySlot - 1));
|
|
686
626
|
// for each epoch, usually there are 2 rootHexes respective to the 2 checkpoint states: Previous Root Checkpoint State and Current Root Checkpoint State
|
|
687
|
-
const
|
|
627
|
+
const cpRootHexes = this.epochIndex.get(epoch) ?? [];
|
|
688
628
|
const persistedRootHexes = new Set();
|
|
689
629
|
// 1) if there is no CRCS, persist PRCS (block 0 of epoch is skipped). In this case prevEpochRoot === epochBoundaryHex
|
|
690
630
|
// 2) if there are PRCS and CRCS, persist CRCS => persist CRCS
|
|
691
631
|
// => this is simplified to always persist epochBoundaryHex
|
|
692
632
|
persistedRootHexes.add(epochBoundaryHex);
|
|
693
633
|
// 3) persist any states with unknown roots to this state
|
|
694
|
-
for (const rootHex of
|
|
634
|
+
for (const rootHex of cpRootHexes) {
|
|
695
635
|
if (rootHex !== epochBoundaryHex && rootHex !== prevEpochRoot) {
|
|
696
636
|
persistedRootHexes.add(rootHex);
|
|
697
637
|
}
|
|
698
638
|
}
|
|
699
|
-
for (const
|
|
700
|
-
|
|
701
|
-
|
|
702
|
-
|
|
703
|
-
|
|
704
|
-
const
|
|
705
|
-
const
|
|
706
|
-
|
|
707
|
-
|
|
708
|
-
|
|
709
|
-
|
|
710
|
-
|
|
711
|
-
|
|
712
|
-
|
|
713
|
-
|
|
714
|
-
|
|
715
|
-
}
|
|
716
|
-
|
|
717
|
-
|
|
718
|
-
|
|
719
|
-
|
|
720
|
-
|
|
721
|
-
|
|
722
|
-
|
|
723
|
-
|
|
724
|
-
|
|
725
|
-
|
|
726
|
-
|
|
727
|
-
|
|
728
|
-
|
|
729
|
-
|
|
730
|
-
|
|
731
|
-
|
|
732
|
-
|
|
733
|
-
|
|
734
|
-
|
|
735
|
-
|
|
736
|
-
|
|
737
|
-
|
|
738
|
-
|
|
739
|
-
|
|
740
|
-
|
|
741
|
-
|
|
742
|
-
|
|
743
|
-
|
|
744
|
-
//
|
|
639
|
+
for (const rootHex of cpRootHexes) {
|
|
640
|
+
const cpKey = toCacheKey({ epoch: epoch, rootHex });
|
|
641
|
+
const cacheItem = this.cache.get(cpKey);
|
|
642
|
+
if (cacheItem !== undefined && isInMemoryCacheItem(cacheItem)) {
|
|
643
|
+
let { persistedKey } = cacheItem;
|
|
644
|
+
const { state } = cacheItem;
|
|
645
|
+
const logMeta = {
|
|
646
|
+
stateSlot: state.slot,
|
|
647
|
+
rootHex,
|
|
648
|
+
epochBoundaryHex,
|
|
649
|
+
persistedKey: persistedKey ? toHex(persistedKey) : "",
|
|
650
|
+
};
|
|
651
|
+
if (persistedRootHexes.has(rootHex)) {
|
|
652
|
+
if (persistedKey) {
|
|
653
|
+
// we don't care if the checkpoint state is already persisted
|
|
654
|
+
this.logger.verbose("Pruned checkpoint state from memory but no need to persist", logMeta);
|
|
655
|
+
}
|
|
656
|
+
else {
|
|
657
|
+
// persist and do not update epochIndex
|
|
658
|
+
this.metrics?.cpStateCache.statePersistSecFromSlot.observe(this.clock?.secFromSlot(this.clock?.currentSlot ?? 0) ?? 0);
|
|
659
|
+
const cpPersist = { epoch: epoch, root: fromHex(rootHex) };
|
|
660
|
+
// It's not sustainable to allocate ~240MB for each state every epoch, so we use buffer pool to reuse the memory.
|
|
661
|
+
// As monitored on holesky as of Jan 2024:
|
|
662
|
+
// - This does not increase heap allocation while gc time is the same
|
|
663
|
+
// - It helps stabilize persist time and save ~300ms in average (1.5s vs 1.2s)
|
|
664
|
+
// - It also helps the state reload to save ~500ms in average (4.3s vs 3.8s)
|
|
665
|
+
// - Also `serializeState.test.ts` perf test shows a lot of differences allocating ~240MB once vs per state serialization
|
|
666
|
+
const timer = this.metrics?.stateSerializeDuration.startTimer({
|
|
667
|
+
source: AllocSource.PERSISTENT_CHECKPOINTS_CACHE_STATE,
|
|
668
|
+
});
|
|
669
|
+
persistedKey = await serializeState(state, AllocSource.PERSISTENT_CHECKPOINTS_CACHE_STATE, (stateBytes) => {
|
|
670
|
+
timer?.();
|
|
671
|
+
return this.datastore.write(cpPersist, stateBytes);
|
|
672
|
+
}, this.bufferPool);
|
|
673
|
+
persistCount++;
|
|
674
|
+
this.logger.verbose("Pruned checkpoint state from memory and persisted to disk", {
|
|
675
|
+
...logMeta,
|
|
676
|
+
persistedKey: toHex(persistedKey),
|
|
677
|
+
});
|
|
678
|
+
}
|
|
679
|
+
// overwrite cpKey, this means the state is deleted from memory
|
|
680
|
+
this.cache.set(cpKey, { type: CacheItemType.persisted, value: persistedKey });
|
|
681
|
+
}
|
|
682
|
+
else {
|
|
683
|
+
if (persistedKey) {
|
|
684
|
+
// persisted file will be eventually deleted by the archive task
|
|
685
|
+
// this also means the state is deleted from memory
|
|
745
686
|
this.cache.set(cpKey, { type: CacheItemType.persisted, value: persistedKey });
|
|
687
|
+
// do not update epochIndex
|
|
746
688
|
}
|
|
747
689
|
else {
|
|
748
|
-
|
|
749
|
-
|
|
750
|
-
|
|
751
|
-
|
|
752
|
-
|
|
753
|
-
|
|
754
|
-
|
|
755
|
-
|
|
756
|
-
this.cache.delete(cpKey);
|
|
757
|
-
this.removeFromEpochIndex(epoch, rootHex, payloadPresent);
|
|
690
|
+
// delete the state from memory
|
|
691
|
+
this.cache.delete(cpKey);
|
|
692
|
+
const rootSet = this.epochIndex.get(epoch);
|
|
693
|
+
if (rootSet) {
|
|
694
|
+
rootSet.delete(rootHex);
|
|
695
|
+
if (rootSet.size === 0) {
|
|
696
|
+
this.epochIndex.delete(epoch);
|
|
697
|
+
}
|
|
758
698
|
}
|
|
759
|
-
this.metrics?.cpStateCache.statePruneFromMemoryCount.inc();
|
|
760
|
-
this.logger.verbose("Pruned checkpoint state from memory", logMeta);
|
|
761
699
|
}
|
|
700
|
+
this.metrics?.cpStateCache.statePruneFromMemoryCount.inc();
|
|
701
|
+
this.logger.verbose("Pruned checkpoint state from memory", logMeta);
|
|
762
702
|
}
|
|
763
703
|
}
|
|
764
704
|
}
|
|
@@ -769,38 +709,25 @@ export class PersistentCheckpointStateCache {
|
|
|
769
709
|
*/
|
|
770
710
|
async deleteAllEpochItems(epoch) {
|
|
771
711
|
let persistCount = 0;
|
|
772
|
-
const
|
|
773
|
-
for (const
|
|
774
|
-
|
|
775
|
-
|
|
776
|
-
|
|
777
|
-
const
|
|
778
|
-
|
|
779
|
-
|
|
780
|
-
|
|
781
|
-
|
|
782
|
-
if (persistedKey) {
|
|
783
|
-
await this.datastore.remove(persistedKey);
|
|
784
|
-
persistCount++;
|
|
785
|
-
this.metrics?.cpStateCache.persistedStateRemoveCount.inc();
|
|
786
|
-
}
|
|
712
|
+
const rootHexes = this.epochIndex.get(epoch) || [];
|
|
713
|
+
for (const rootHex of rootHexes) {
|
|
714
|
+
const key = toCacheKey({ rootHex, epoch });
|
|
715
|
+
const cacheItem = this.cache.get(key);
|
|
716
|
+
if (cacheItem) {
|
|
717
|
+
const persistedKey = isPersistedCacheItem(cacheItem) ? cacheItem.value : cacheItem.persistedKey;
|
|
718
|
+
if (persistedKey) {
|
|
719
|
+
await this.datastore.remove(persistedKey);
|
|
720
|
+
persistCount++;
|
|
721
|
+
this.metrics?.cpStateCache.persistedStateRemoveCount.inc();
|
|
787
722
|
}
|
|
788
|
-
this.cache.delete(key);
|
|
789
|
-
this.logger.verbose("Pruned checkpoint state", {
|
|
790
|
-
epoch,
|
|
791
|
-
rootHex,
|
|
792
|
-
payloadPresent,
|
|
793
|
-
type: cacheItem ? (isPersistedCacheItem(cacheItem) ? "persisted" : "in-memory") : "missing",
|
|
794
|
-
});
|
|
795
723
|
}
|
|
724
|
+
this.cache.delete(key);
|
|
796
725
|
}
|
|
797
726
|
this.epochIndex.delete(epoch);
|
|
798
|
-
this.logger.verbose("Pruned
|
|
727
|
+
this.logger.verbose("Pruned checkpoint states for epoch", {
|
|
799
728
|
epoch,
|
|
800
729
|
persistCount,
|
|
801
|
-
|
|
802
|
-
.flatMap(([rootHex, bitmask]) => PAYLOAD_AVAILABILITY_ALL.filter((f) => bitmask & f).map((f) => `${rootHex}:${fromPayloadAvailability(f)}`))
|
|
803
|
-
.join(","),
|
|
730
|
+
rootHexes: Array.from(rootHexes).join(","),
|
|
804
731
|
});
|
|
805
732
|
}
|
|
806
733
|
/**
|
|
@@ -840,49 +767,31 @@ export class PersistentCheckpointStateCache {
|
|
|
840
767
|
return null;
|
|
841
768
|
}
|
|
842
769
|
}
|
|
843
|
-
export function
|
|
770
|
+
export function toCheckpointHex(checkpoint) {
|
|
844
771
|
return {
|
|
845
772
|
epoch: checkpoint.epoch,
|
|
846
773
|
rootHex: toRootHex(checkpoint.root),
|
|
847
|
-
payloadPresent,
|
|
848
774
|
};
|
|
849
775
|
}
|
|
850
|
-
/**
|
|
851
|
-
* Convert fork-choice CheckpointWithPayloadStatus to beacon-node CheckpointHexPayload.
|
|
852
|
-
* Maps PayloadStatus enum to boolean payloadPresent.
|
|
853
|
-
* @throws Error if checkpoint has PENDING payload status (ambiguous which variant to use)
|
|
854
|
-
*/
|
|
776
|
+
/** TODO GLOAS: remove after rolling back regen dual-state changes */
|
|
855
777
|
export function fcCheckpointToHexPayload(checkpoint) {
|
|
856
|
-
const PayloadStatus = { PENDING: 0, EMPTY: 1, FULL: 2 };
|
|
857
|
-
if (checkpoint.payloadStatus === PayloadStatus.PENDING) {
|
|
858
|
-
throw Error(`Cannot convert checkpoint with PENDING payload status at epoch ${checkpoint.epoch} root ${checkpoint.rootHex}`);
|
|
859
|
-
}
|
|
860
778
|
return {
|
|
861
779
|
epoch: checkpoint.epoch,
|
|
862
780
|
rootHex: checkpoint.rootHex,
|
|
863
|
-
payloadPresent:
|
|
781
|
+
payloadPresent: true,
|
|
864
782
|
};
|
|
865
783
|
}
|
|
866
784
|
export function toCheckpointKey(cp) {
|
|
867
|
-
return `${cp.rootHex}:${cp.epoch}
|
|
785
|
+
return `${cp.rootHex}:${cp.epoch}`;
|
|
868
786
|
}
|
|
869
|
-
/**
|
|
870
|
-
* Convert checkpoint to cache key string.
|
|
871
|
-
* Format: `{rootHex}_{epoch}_{payloadPresent}`
|
|
872
|
-
*/
|
|
873
787
|
function toCacheKey(cp) {
|
|
874
|
-
return `${cp.rootHex}_${cp.epoch}
|
|
788
|
+
return `${cp.rootHex}_${cp.epoch}`;
|
|
875
789
|
}
|
|
876
790
|
function fromCacheKey(key) {
|
|
877
|
-
const
|
|
878
|
-
const rootHex = parts[0];
|
|
879
|
-
const epoch = Number(parts[1]);
|
|
880
|
-
// For backward compatibility with old format (rootHex_epoch), default to true
|
|
881
|
-
const payloadPresent = parts.length > 2 ? parts[2] === "true" : true;
|
|
791
|
+
const [rootHex, epoch] = key.split("_");
|
|
882
792
|
return {
|
|
883
793
|
rootHex,
|
|
884
|
-
epoch,
|
|
885
|
-
payloadPresent,
|
|
794
|
+
epoch: Number(epoch),
|
|
886
795
|
};
|
|
887
796
|
}
|
|
888
797
|
function isBeaconStateView(stateOrBytes) {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"persistentCheckpointsCache.js","sourceRoot":"","sources":["../../../src/chain/stateCache/persistentCheckpointsCache.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"persistentCheckpointsCache.js","sourceRoot":"","sources":["../../../src/chain/stateCache/persistentCheckpointsCache.ts"],"names":[],"mappings":"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"}
|