@lodestar/beacon-node 1.43.0-dev.aef3645690 → 1.43.0-dev.b741495bdc
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/blocks/index.d.ts.map +1 -1
- package/lib/api/impl/beacon/blocks/index.js +1 -4
- package/lib/api/impl/beacon/blocks/index.js.map +1 -1
- package/lib/api/impl/beacon/state/utils.d.ts +2 -2
- package/lib/api/impl/beacon/state/utils.d.ts.map +1 -1
- package/lib/api/impl/beacon/state/utils.js.map +1 -1
- package/lib/api/impl/validator/index.d.ts.map +1 -1
- package/lib/api/impl/validator/index.js +1 -4
- package/lib/api/impl/validator/index.js.map +1 -1
- package/lib/chain/GetBlobsTracker.d.ts +1 -1
- package/lib/chain/GetBlobsTracker.d.ts.map +1 -1
- package/lib/chain/GetBlobsTracker.js +1 -2
- package/lib/chain/GetBlobsTracker.js.map +1 -1
- package/lib/chain/archiveStore/archiveStore.d.ts.map +1 -1
- package/lib/chain/archiveStore/archiveStore.js.map +1 -1
- package/lib/chain/archiveStore/interface.d.ts +4 -4
- package/lib/chain/archiveStore/interface.d.ts.map +1 -1
- package/lib/chain/archiveStore/strategies/frequencyStateArchiveStrategy.d.ts +4 -4
- package/lib/chain/archiveStore/strategies/frequencyStateArchiveStrategy.d.ts.map +1 -1
- package/lib/chain/archiveStore/strategies/frequencyStateArchiveStrategy.js +2 -4
- package/lib/chain/archiveStore/strategies/frequencyStateArchiveStrategy.js.map +1 -1
- package/lib/chain/archiveStore/utils/archiveBlocks.d.ts +2 -2
- package/lib/chain/archiveStore/utils/archiveBlocks.d.ts.map +1 -1
- package/lib/chain/archiveStore/utils/archiveBlocks.js +110 -58
- package/lib/chain/archiveStore/utils/archiveBlocks.js.map +1 -1
- package/lib/chain/blocks/importBlock.d.ts.map +1 -1
- package/lib/chain/blocks/importBlock.js +27 -35
- package/lib/chain/blocks/importBlock.js.map +1 -1
- package/lib/chain/blocks/importExecutionPayload.d.ts +15 -14
- package/lib/chain/blocks/importExecutionPayload.d.ts.map +1 -1
- package/lib/chain/blocks/importExecutionPayload.js +63 -85
- package/lib/chain/blocks/importExecutionPayload.js.map +1 -1
- package/lib/chain/blocks/index.d.ts.map +1 -1
- package/lib/chain/blocks/index.js +1 -2
- package/lib/chain/blocks/index.js.map +1 -1
- package/lib/chain/blocks/payloadEnvelopeInput/payloadEnvelopeInput.d.ts +3 -0
- package/lib/chain/blocks/payloadEnvelopeInput/payloadEnvelopeInput.d.ts.map +1 -1
- package/lib/chain/blocks/payloadEnvelopeInput/payloadEnvelopeInput.js +20 -0
- package/lib/chain/blocks/payloadEnvelopeInput/payloadEnvelopeInput.js.map +1 -1
- package/lib/chain/blocks/payloadEnvelopeProcessor.d.ts +5 -0
- package/lib/chain/blocks/payloadEnvelopeProcessor.d.ts.map +1 -1
- package/lib/chain/blocks/payloadEnvelopeProcessor.js +6 -4
- package/lib/chain/blocks/payloadEnvelopeProcessor.js.map +1 -1
- package/lib/chain/blocks/types.d.ts +15 -21
- package/lib/chain/blocks/types.d.ts.map +1 -1
- package/lib/chain/blocks/verifyExecutionPayloadEnvelope.d.ts +24 -0
- package/lib/chain/blocks/verifyExecutionPayloadEnvelope.d.ts.map +1 -0
- package/lib/chain/blocks/verifyExecutionPayloadEnvelope.js +76 -0
- package/lib/chain/blocks/verifyExecutionPayloadEnvelope.js.map +1 -0
- package/lib/chain/blocks/verifyPayloadsDataAvailability.d.ts +14 -0
- package/lib/chain/blocks/verifyPayloadsDataAvailability.d.ts.map +1 -0
- package/lib/chain/blocks/verifyPayloadsDataAvailability.js +25 -0
- package/lib/chain/blocks/verifyPayloadsDataAvailability.js.map +1 -0
- package/lib/chain/blocks/writePayloadEnvelopeInputToDb.d.ts +1 -1
- package/lib/chain/blocks/writePayloadEnvelopeInputToDb.js +1 -1
- package/lib/chain/chain.d.ts +3 -3
- package/lib/chain/chain.d.ts.map +1 -1
- package/lib/chain/chain.js +19 -39
- package/lib/chain/chain.js.map +1 -1
- package/lib/chain/emitter.d.ts +16 -4
- package/lib/chain/emitter.d.ts.map +1 -1
- package/lib/chain/emitter.js +5 -0
- package/lib/chain/emitter.js.map +1 -1
- package/lib/chain/errors/attestationError.d.ts +8 -1
- package/lib/chain/errors/attestationError.d.ts.map +1 -1
- package/lib/chain/errors/attestationError.js +4 -0
- package/lib/chain/errors/attestationError.js.map +1 -1
- package/lib/chain/errors/executionPayloadBid.d.ts +5 -0
- package/lib/chain/errors/executionPayloadBid.d.ts.map +1 -1
- package/lib/chain/errors/executionPayloadBid.js +1 -0
- package/lib/chain/errors/executionPayloadBid.js.map +1 -1
- package/lib/chain/errors/executionPayloadEnvelope.d.ts +5 -0
- package/lib/chain/errors/executionPayloadEnvelope.d.ts.map +1 -1
- package/lib/chain/errors/executionPayloadEnvelope.js +1 -0
- package/lib/chain/errors/executionPayloadEnvelope.js.map +1 -1
- package/lib/chain/forkChoice/index.d.ts.map +1 -1
- package/lib/chain/forkChoice/index.js +11 -15
- package/lib/chain/forkChoice/index.js.map +1 -1
- package/lib/chain/interface.d.ts +2 -2
- package/lib/chain/interface.d.ts.map +1 -1
- package/lib/chain/prepareNextSlot.d.ts.map +1 -1
- package/lib/chain/prepareNextSlot.js +22 -16
- package/lib/chain/prepareNextSlot.js.map +1 -1
- package/lib/chain/produceBlock/computeNewStateRoot.d.ts +3 -9
- package/lib/chain/produceBlock/computeNewStateRoot.d.ts.map +1 -1
- package/lib/chain/produceBlock/computeNewStateRoot.js +5 -32
- package/lib/chain/produceBlock/computeNewStateRoot.js.map +1 -1
- package/lib/chain/produceBlock/produceBlockBody.d.ts +3 -8
- package/lib/chain/produceBlock/produceBlockBody.d.ts.map +1 -1
- package/lib/chain/produceBlock/produceBlockBody.js +30 -19
- package/lib/chain/produceBlock/produceBlockBody.js.map +1 -1
- package/lib/chain/regen/errors.d.ts +1 -11
- package/lib/chain/regen/errors.d.ts.map +1 -1
- package/lib/chain/regen/errors.js +0 -2
- package/lib/chain/regen/errors.js.map +1 -1
- package/lib/chain/regen/interface.d.ts +6 -12
- package/lib/chain/regen/interface.d.ts.map +1 -1
- package/lib/chain/regen/queued.d.ts +6 -11
- package/lib/chain/regen/queued.d.ts.map +1 -1
- package/lib/chain/regen/queued.js +8 -40
- package/lib/chain/regen/queued.js.map +1 -1
- package/lib/chain/regen/regen.d.ts +0 -5
- package/lib/chain/regen/regen.d.ts.map +1 -1
- package/lib/chain/regen/regen.js +7 -34
- 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 +13 -30
- package/lib/chain/stateCache/persistentCheckpointsCache.d.ts.map +1 -1
- package/lib/chain/stateCache/persistentCheckpointsCache.js +120 -216
- package/lib/chain/stateCache/persistentCheckpointsCache.js.map +1 -1
- package/lib/chain/stateCache/types.d.ts +8 -15
- package/lib/chain/stateCache/types.d.ts.map +1 -1
- package/lib/chain/stateCache/types.js.map +1 -1
- package/lib/chain/validation/aggregateAndProof.js +12 -0
- package/lib/chain/validation/aggregateAndProof.js.map +1 -1
- package/lib/chain/validation/attestation.d.ts.map +1 -1
- package/lib/chain/validation/attestation.js +12 -0
- package/lib/chain/validation/attestation.js.map +1 -1
- package/lib/chain/validation/executionPayloadBid.d.ts.map +1 -1
- package/lib/chain/validation/executionPayloadBid.js +13 -1
- package/lib/chain/validation/executionPayloadBid.js.map +1 -1
- package/lib/chain/validation/executionPayloadEnvelope.d.ts.map +1 -1
- package/lib/chain/validation/executionPayloadEnvelope.js +21 -11
- package/lib/chain/validation/executionPayloadEnvelope.js.map +1 -1
- package/lib/chain/validation/payloadAttestationMessage.d.ts.map +1 -1
- package/lib/chain/validation/payloadAttestationMessage.js +4 -3
- package/lib/chain/validation/payloadAttestationMessage.js.map +1 -1
- package/lib/db/repositories/executionPayloadEnvelopeArchive.js +1 -1
- package/lib/db/repositories/executionPayloadEnvelopeArchive.js.map +1 -1
- package/lib/execution/engine/http.d.ts.map +1 -1
- package/lib/execution/engine/http.js +21 -14
- package/lib/execution/engine/http.js.map +1 -1
- package/lib/execution/engine/interface.d.ts +1 -0
- package/lib/execution/engine/interface.d.ts.map +1 -1
- package/lib/execution/engine/mock.d.ts.map +1 -1
- package/lib/execution/engine/mock.js +6 -0
- package/lib/execution/engine/mock.js.map +1 -1
- package/lib/execution/engine/types.d.ts +20 -0
- package/lib/execution/engine/types.d.ts.map +1 -1
- package/lib/execution/engine/types.js +18 -0
- package/lib/execution/engine/types.js.map +1 -1
- package/lib/network/gossip/topic.d.ts +3 -729
- package/lib/network/gossip/topic.d.ts.map +1 -1
- package/lib/network/network.js +1 -1
- package/lib/network/network.js.map +1 -1
- package/lib/network/processor/gossipHandlers.d.ts.map +1 -1
- package/lib/network/processor/gossipHandlers.js +22 -6
- package/lib/network/processor/gossipHandlers.js.map +1 -1
- package/lib/node/nodejs.d.ts.map +1 -1
- package/lib/node/nodejs.js +4 -2
- package/lib/node/nodejs.js.map +1 -1
- package/lib/util/sszBytes.d.ts.map +1 -1
- package/lib/util/sszBytes.js +16 -3
- package/lib/util/sszBytes.js.map +1 -1
- package/package.json +16 -16
- package/src/api/impl/beacon/blocks/index.ts +1 -4
- package/src/api/impl/beacon/state/utils.ts +2 -2
- package/src/api/impl/validator/index.ts +3 -6
- package/src/chain/GetBlobsTracker.ts +1 -2
- package/src/chain/archiveStore/archiveStore.ts +5 -5
- package/src/chain/archiveStore/interface.ts +4 -4
- package/src/chain/archiveStore/strategies/frequencyStateArchiveStrategy.ts +6 -8
- package/src/chain/archiveStore/utils/archiveBlocks.ts +153 -94
- package/src/chain/blocks/importBlock.ts +26 -39
- package/src/chain/blocks/importExecutionPayload.ts +77 -103
- package/src/chain/blocks/index.ts +1 -2
- package/src/chain/blocks/payloadEnvelopeInput/payloadEnvelopeInput.ts +27 -0
- package/src/chain/blocks/payloadEnvelopeProcessor.ts +6 -5
- package/src/chain/blocks/types.ts +15 -26
- package/src/chain/blocks/verifyExecutionPayloadEnvelope.ts +129 -0
- package/src/chain/blocks/verifyPayloadsDataAvailability.ts +38 -0
- package/src/chain/blocks/writePayloadEnvelopeInputToDb.ts +1 -1
- package/src/chain/chain.ts +25 -62
- package/src/chain/emitter.ts +15 -3
- package/src/chain/errors/attestationError.ts +6 -1
- package/src/chain/errors/executionPayloadBid.ts +6 -0
- package/src/chain/errors/executionPayloadEnvelope.ts +6 -0
- package/src/chain/forkChoice/index.ts +8 -20
- package/src/chain/interface.ts +2 -2
- package/src/chain/prepareNextSlot.ts +25 -16
- package/src/chain/produceBlock/computeNewStateRoot.ts +6 -43
- package/src/chain/produceBlock/produceBlockBody.ts +41 -20
- package/src/chain/regen/errors.ts +1 -6
- package/src/chain/regen/interface.ts +6 -12
- package/src/chain/regen/queued.ts +12 -48
- package/src/chain/regen/regen.ts +8 -36
- 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 +139 -247
- package/src/chain/stateCache/types.ts +8 -14
- package/src/chain/validation/aggregateAndProof.ts +13 -0
- package/src/chain/validation/attestation.ts +13 -0
- package/src/chain/validation/executionPayloadBid.ts +14 -0
- package/src/chain/validation/executionPayloadEnvelope.ts +22 -12
- package/src/chain/validation/payloadAttestationMessage.ts +5 -3
- package/src/db/repositories/executionPayloadEnvelopeArchive.ts +1 -1
- package/src/execution/engine/http.ts +21 -14
- package/src/execution/engine/interface.ts +1 -0
- package/src/execution/engine/mock.ts +8 -1
- package/src/execution/engine/types.ts +41 -0
- package/src/network/network.ts +1 -1
- package/src/network/processor/gossipHandlers.ts +26 -10
- package/src/node/nodejs.ts +4 -2
- package/src/util/sszBytes.ts +21 -3
|
@@ -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);
|
|
@@ -231,7 +213,10 @@ export class PersistentCheckpointStateCache {
|
|
|
231
213
|
}
|
|
232
214
|
sszTimer?.();
|
|
233
215
|
const timer = this.metrics?.cpStateCache.stateReloadDuration.startTimer();
|
|
234
|
-
|
|
216
|
+
// preload validators and balances for faster state transition
|
|
217
|
+
const newCachedState = seedState.loadOtherState(stateBytes, validatorsBytes, {
|
|
218
|
+
preloadValidatorsAndBalances: true,
|
|
219
|
+
});
|
|
235
220
|
// hashTreeRoot() calls the commit() inside
|
|
236
221
|
// there is no modification inside the state, it's just that we want to compute and cache all roots
|
|
237
222
|
const stateRoot = toRootHex(newCachedState.hashTreeRoot());
|
|
@@ -245,7 +230,7 @@ export class PersistentCheckpointStateCache {
|
|
|
245
230
|
// only remove persisted state once we reload successfully
|
|
246
231
|
const cpKey = toCacheKey(cp);
|
|
247
232
|
this.cache.set(cpKey, { type: CacheItemType.inMemory, state: newCachedState, persistedKey });
|
|
248
|
-
this.
|
|
233
|
+
this.epochIndex.getOrDefault(cp.epoch).add(cp.rootHex);
|
|
249
234
|
// don't prune from memory here, call it at the last 1/3 of slot 0 of an epoch
|
|
250
235
|
return newCachedState;
|
|
251
236
|
}
|
|
@@ -321,11 +306,9 @@ export class PersistentCheckpointStateCache {
|
|
|
321
306
|
}
|
|
322
307
|
/**
|
|
323
308
|
* 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
309
|
*/
|
|
327
|
-
add(cp, state
|
|
328
|
-
const cpHex =
|
|
310
|
+
add(cp, state) {
|
|
311
|
+
const cpHex = toCheckpointHex(cp);
|
|
329
312
|
const key = toCacheKey(cpHex);
|
|
330
313
|
const cacheItem = this.cache.get(key);
|
|
331
314
|
this.metrics?.cpStateCache.adds.inc();
|
|
@@ -336,32 +319,27 @@ export class PersistentCheckpointStateCache {
|
|
|
336
319
|
this.logger.verbose("Added checkpoint state to memory but a persisted key existed", {
|
|
337
320
|
epoch: cp.epoch,
|
|
338
321
|
rootHex: cpHex.rootHex,
|
|
339
|
-
payloadPresent,
|
|
340
322
|
persistedKey: toHex(persistedKey),
|
|
341
323
|
});
|
|
342
324
|
}
|
|
343
325
|
else {
|
|
344
326
|
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
|
-
});
|
|
327
|
+
this.logger.verbose("Added checkpoint state to memory", { epoch: cp.epoch, rootHex: cpHex.rootHex });
|
|
350
328
|
}
|
|
351
|
-
this.
|
|
329
|
+
this.epochIndex.getOrDefault(cp.epoch).add(cpHex.rootHex);
|
|
352
330
|
this.prunePersistedStates();
|
|
353
331
|
}
|
|
354
332
|
/**
|
|
355
333
|
* Searches in-memory state for the latest cached state with a `root` without reload, starting with `epoch` and descending
|
|
356
334
|
*/
|
|
357
|
-
getLatest(rootHex, maxEpoch
|
|
335
|
+
getLatest(rootHex, maxEpoch) {
|
|
358
336
|
// sort epochs in descending order, only consider epochs lte `epoch`
|
|
359
337
|
const epochs = Array.from(this.epochIndex.keys())
|
|
360
338
|
.sort((a, b) => b - a)
|
|
361
339
|
.filter((e) => e <= maxEpoch);
|
|
362
340
|
for (const epoch of epochs) {
|
|
363
|
-
if (this.
|
|
364
|
-
const inMemoryClonedState = this.get({ rootHex, epoch
|
|
341
|
+
if (this.epochIndex.get(epoch)?.has(rootHex)) {
|
|
342
|
+
const inMemoryClonedState = this.get({ rootHex, epoch });
|
|
365
343
|
if (inMemoryClonedState) {
|
|
366
344
|
return inMemoryClonedState;
|
|
367
345
|
}
|
|
@@ -376,21 +354,21 @@ export class PersistentCheckpointStateCache {
|
|
|
376
354
|
* - Get block for processing
|
|
377
355
|
* - Regen head state
|
|
378
356
|
*/
|
|
379
|
-
async getOrReloadLatest(rootHex, maxEpoch
|
|
357
|
+
async getOrReloadLatest(rootHex, maxEpoch) {
|
|
380
358
|
// sort epochs in descending order, only consider epochs lte `epoch`
|
|
381
359
|
const epochs = Array.from(this.epochIndex.keys())
|
|
382
360
|
.sort((a, b) => b - a)
|
|
383
361
|
.filter((e) => e <= maxEpoch);
|
|
384
362
|
for (const epoch of epochs) {
|
|
385
|
-
if (this.
|
|
363
|
+
if (this.epochIndex.get(epoch)?.has(rootHex)) {
|
|
386
364
|
try {
|
|
387
|
-
const state = await this.getOrReload({ rootHex, epoch
|
|
365
|
+
const state = await this.getOrReload({ rootHex, epoch });
|
|
388
366
|
if (state) {
|
|
389
367
|
return state;
|
|
390
368
|
}
|
|
391
369
|
}
|
|
392
370
|
catch (e) {
|
|
393
|
-
this.logger.debug("Error get or reload state", { epoch, rootHex
|
|
371
|
+
this.logger.debug("Error get or reload state", { epoch, rootHex }, e);
|
|
394
372
|
}
|
|
395
373
|
}
|
|
396
374
|
}
|
|
@@ -399,12 +377,10 @@ export class PersistentCheckpointStateCache {
|
|
|
399
377
|
/**
|
|
400
378
|
* Update the precomputed checkpoint and return the number of hits for the
|
|
401
379
|
* 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
380
|
*/
|
|
405
|
-
updatePreComputedCheckpoint(rootHex, epoch
|
|
381
|
+
updatePreComputedCheckpoint(rootHex, epoch) {
|
|
406
382
|
const previousHits = this.preComputedCheckpointHits;
|
|
407
|
-
this.preComputedCheckpoint = toCacheKey({ rootHex, epoch
|
|
383
|
+
this.preComputedCheckpoint = toCacheKey({ rootHex, epoch });
|
|
408
384
|
this.preComputedCheckpointHits = 0;
|
|
409
385
|
return previousHits;
|
|
410
386
|
}
|
|
@@ -473,9 +449,6 @@ export class PersistentCheckpointStateCache {
|
|
|
473
449
|
* - 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
450
|
*
|
|
475
451
|
* 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
452
|
*/
|
|
480
453
|
async processState(blockRootHex, state) {
|
|
481
454
|
let persistCount = 0;
|
|
@@ -550,35 +523,30 @@ export class PersistentCheckpointStateCache {
|
|
|
550
523
|
if (firstState !== null) {
|
|
551
524
|
return firstState;
|
|
552
525
|
}
|
|
553
|
-
for (const
|
|
554
|
-
|
|
555
|
-
|
|
556
|
-
|
|
557
|
-
|
|
558
|
-
|
|
559
|
-
|
|
560
|
-
|
|
561
|
-
|
|
526
|
+
for (const rootHex of this.epochIndex.get(epoch) || []) {
|
|
527
|
+
const cpKey = toCacheKey({ rootHex, epoch });
|
|
528
|
+
const cacheItem = this.cache.get(cpKey);
|
|
529
|
+
if (cacheItem === undefined) {
|
|
530
|
+
continue;
|
|
531
|
+
}
|
|
532
|
+
if (isInMemoryCacheItem(cacheItem)) {
|
|
533
|
+
const { state } = cacheItem;
|
|
534
|
+
if (firstState === null) {
|
|
535
|
+
firstState = state;
|
|
562
536
|
}
|
|
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);
|
|
537
|
+
const cpLog = { cpEpoch: epoch, cpRoot: rootHex };
|
|
538
|
+
try {
|
|
539
|
+
// amongst states of the same epoch, choose the one with the same view of reloadedCp
|
|
540
|
+
if (reloadedCpSlot < state.slot &&
|
|
541
|
+
toRootHex(state.getBlockRootAtSlot(reloadedCpSlot)) === reloadedCp.rootHex) {
|
|
542
|
+
this.logger.verbose("Reload: use checkpoint state as seed state", { ...cpLog, ...logCtx });
|
|
543
|
+
return state;
|
|
580
544
|
}
|
|
581
545
|
}
|
|
546
|
+
catch (e) {
|
|
547
|
+
// getBlockRootAtSlot may throw error
|
|
548
|
+
this.logger.debug("Error finding checkpoint state to reload", { ...cpLog, ...logCtx }, e);
|
|
549
|
+
}
|
|
582
550
|
}
|
|
583
551
|
}
|
|
584
552
|
}
|
|
@@ -591,31 +559,6 @@ export class PersistentCheckpointStateCache {
|
|
|
591
559
|
this.cache.clear();
|
|
592
560
|
this.epochIndex.clear();
|
|
593
561
|
}
|
|
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
562
|
/** ONLY FOR DEBUGGING PURPOSES. For lodestar debug API */
|
|
620
563
|
dumpSummary() {
|
|
621
564
|
return Array.from(this.cache.keys()).map((key) => {
|
|
@@ -684,81 +627,81 @@ export class PersistentCheckpointStateCache {
|
|
|
684
627
|
const epochBoundaryHex = toRootHex(epochBoundaryRoot);
|
|
685
628
|
const prevEpochRoot = toRootHex(state.getBlockRootAtSlot(epochBoundarySlot - 1));
|
|
686
629
|
// 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
|
|
630
|
+
const cpRootHexes = this.epochIndex.get(epoch) ?? [];
|
|
688
631
|
const persistedRootHexes = new Set();
|
|
689
632
|
// 1) if there is no CRCS, persist PRCS (block 0 of epoch is skipped). In this case prevEpochRoot === epochBoundaryHex
|
|
690
633
|
// 2) if there are PRCS and CRCS, persist CRCS => persist CRCS
|
|
691
634
|
// => this is simplified to always persist epochBoundaryHex
|
|
692
635
|
persistedRootHexes.add(epochBoundaryHex);
|
|
693
636
|
// 3) persist any states with unknown roots to this state
|
|
694
|
-
for (const rootHex of
|
|
637
|
+
for (const rootHex of cpRootHexes) {
|
|
695
638
|
if (rootHex !== epochBoundaryHex && rootHex !== prevEpochRoot) {
|
|
696
639
|
persistedRootHexes.add(rootHex);
|
|
697
640
|
}
|
|
698
641
|
}
|
|
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
|
-
//
|
|
642
|
+
for (const rootHex of cpRootHexes) {
|
|
643
|
+
const cpKey = toCacheKey({ epoch: epoch, rootHex });
|
|
644
|
+
const cacheItem = this.cache.get(cpKey);
|
|
645
|
+
if (cacheItem !== undefined && isInMemoryCacheItem(cacheItem)) {
|
|
646
|
+
let { persistedKey } = cacheItem;
|
|
647
|
+
const { state } = cacheItem;
|
|
648
|
+
const logMeta = {
|
|
649
|
+
stateSlot: state.slot,
|
|
650
|
+
rootHex,
|
|
651
|
+
epochBoundaryHex,
|
|
652
|
+
persistedKey: persistedKey ? toHex(persistedKey) : "",
|
|
653
|
+
};
|
|
654
|
+
if (persistedRootHexes.has(rootHex)) {
|
|
655
|
+
if (persistedKey) {
|
|
656
|
+
// we don't care if the checkpoint state is already persisted
|
|
657
|
+
this.logger.verbose("Pruned checkpoint state from memory but no need to persist", logMeta);
|
|
658
|
+
}
|
|
659
|
+
else {
|
|
660
|
+
// persist and do not update epochIndex
|
|
661
|
+
this.metrics?.cpStateCache.statePersistSecFromSlot.observe(this.clock?.secFromSlot(this.clock?.currentSlot ?? 0) ?? 0);
|
|
662
|
+
const cpPersist = { epoch: epoch, root: fromHex(rootHex) };
|
|
663
|
+
// It's not sustainable to allocate ~240MB for each state every epoch, so we use buffer pool to reuse the memory.
|
|
664
|
+
// As monitored on holesky as of Jan 2024:
|
|
665
|
+
// - This does not increase heap allocation while gc time is the same
|
|
666
|
+
// - It helps stabilize persist time and save ~300ms in average (1.5s vs 1.2s)
|
|
667
|
+
// - It also helps the state reload to save ~500ms in average (4.3s vs 3.8s)
|
|
668
|
+
// - Also `serializeState.test.ts` perf test shows a lot of differences allocating ~240MB once vs per state serialization
|
|
669
|
+
const timer = this.metrics?.stateSerializeDuration.startTimer({
|
|
670
|
+
source: AllocSource.PERSISTENT_CHECKPOINTS_CACHE_STATE,
|
|
671
|
+
});
|
|
672
|
+
persistedKey = await serializeState(state, AllocSource.PERSISTENT_CHECKPOINTS_CACHE_STATE, (stateBytes) => {
|
|
673
|
+
timer?.();
|
|
674
|
+
return this.datastore.write(cpPersist, stateBytes);
|
|
675
|
+
}, this.bufferPool);
|
|
676
|
+
persistCount++;
|
|
677
|
+
this.logger.verbose("Pruned checkpoint state from memory and persisted to disk", {
|
|
678
|
+
...logMeta,
|
|
679
|
+
persistedKey: toHex(persistedKey),
|
|
680
|
+
});
|
|
681
|
+
}
|
|
682
|
+
// overwrite cpKey, this means the state is deleted from memory
|
|
683
|
+
this.cache.set(cpKey, { type: CacheItemType.persisted, value: persistedKey });
|
|
684
|
+
}
|
|
685
|
+
else {
|
|
686
|
+
if (persistedKey) {
|
|
687
|
+
// persisted file will be eventually deleted by the archive task
|
|
688
|
+
// this also means the state is deleted from memory
|
|
745
689
|
this.cache.set(cpKey, { type: CacheItemType.persisted, value: persistedKey });
|
|
690
|
+
// do not update epochIndex
|
|
746
691
|
}
|
|
747
692
|
else {
|
|
748
|
-
|
|
749
|
-
|
|
750
|
-
|
|
751
|
-
|
|
752
|
-
|
|
753
|
-
|
|
754
|
-
|
|
755
|
-
|
|
756
|
-
this.cache.delete(cpKey);
|
|
757
|
-
this.removeFromEpochIndex(epoch, rootHex, payloadPresent);
|
|
693
|
+
// delete the state from memory
|
|
694
|
+
this.cache.delete(cpKey);
|
|
695
|
+
const rootSet = this.epochIndex.get(epoch);
|
|
696
|
+
if (rootSet) {
|
|
697
|
+
rootSet.delete(rootHex);
|
|
698
|
+
if (rootSet.size === 0) {
|
|
699
|
+
this.epochIndex.delete(epoch);
|
|
700
|
+
}
|
|
758
701
|
}
|
|
759
|
-
this.metrics?.cpStateCache.statePruneFromMemoryCount.inc();
|
|
760
|
-
this.logger.verbose("Pruned checkpoint state from memory", logMeta);
|
|
761
702
|
}
|
|
703
|
+
this.metrics?.cpStateCache.statePruneFromMemoryCount.inc();
|
|
704
|
+
this.logger.verbose("Pruned checkpoint state from memory", logMeta);
|
|
762
705
|
}
|
|
763
706
|
}
|
|
764
707
|
}
|
|
@@ -769,38 +712,25 @@ export class PersistentCheckpointStateCache {
|
|
|
769
712
|
*/
|
|
770
713
|
async deleteAllEpochItems(epoch) {
|
|
771
714
|
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
|
-
}
|
|
715
|
+
const rootHexes = this.epochIndex.get(epoch) || [];
|
|
716
|
+
for (const rootHex of rootHexes) {
|
|
717
|
+
const key = toCacheKey({ rootHex, epoch });
|
|
718
|
+
const cacheItem = this.cache.get(key);
|
|
719
|
+
if (cacheItem) {
|
|
720
|
+
const persistedKey = isPersistedCacheItem(cacheItem) ? cacheItem.value : cacheItem.persistedKey;
|
|
721
|
+
if (persistedKey) {
|
|
722
|
+
await this.datastore.remove(persistedKey);
|
|
723
|
+
persistCount++;
|
|
724
|
+
this.metrics?.cpStateCache.persistedStateRemoveCount.inc();
|
|
787
725
|
}
|
|
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
726
|
}
|
|
727
|
+
this.cache.delete(key);
|
|
796
728
|
}
|
|
797
729
|
this.epochIndex.delete(epoch);
|
|
798
|
-
this.logger.verbose("Pruned
|
|
730
|
+
this.logger.verbose("Pruned checkpoint states for epoch", {
|
|
799
731
|
epoch,
|
|
800
732
|
persistCount,
|
|
801
|
-
|
|
802
|
-
.flatMap(([rootHex, bitmask]) => PAYLOAD_AVAILABILITY_ALL.filter((f) => bitmask & f).map((f) => `${rootHex}:${fromPayloadAvailability(f)}`))
|
|
803
|
-
.join(","),
|
|
733
|
+
rootHexes: Array.from(rootHexes).join(","),
|
|
804
734
|
});
|
|
805
735
|
}
|
|
806
736
|
/**
|
|
@@ -840,49 +770,23 @@ export class PersistentCheckpointStateCache {
|
|
|
840
770
|
return null;
|
|
841
771
|
}
|
|
842
772
|
}
|
|
843
|
-
export function
|
|
773
|
+
export function toCheckpointHex(checkpoint) {
|
|
844
774
|
return {
|
|
845
775
|
epoch: checkpoint.epoch,
|
|
846
776
|
rootHex: toRootHex(checkpoint.root),
|
|
847
|
-
payloadPresent,
|
|
848
|
-
};
|
|
849
|
-
}
|
|
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
|
-
*/
|
|
855
|
-
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
|
-
return {
|
|
861
|
-
epoch: checkpoint.epoch,
|
|
862
|
-
rootHex: checkpoint.rootHex,
|
|
863
|
-
payloadPresent: checkpoint.payloadStatus === PayloadStatus.FULL,
|
|
864
777
|
};
|
|
865
778
|
}
|
|
866
779
|
export function toCheckpointKey(cp) {
|
|
867
|
-
return `${cp.rootHex}:${cp.epoch}
|
|
780
|
+
return `${cp.rootHex}:${cp.epoch}`;
|
|
868
781
|
}
|
|
869
|
-
/**
|
|
870
|
-
* Convert checkpoint to cache key string.
|
|
871
|
-
* Format: `{rootHex}_{epoch}_{payloadPresent}`
|
|
872
|
-
*/
|
|
873
782
|
function toCacheKey(cp) {
|
|
874
|
-
return `${cp.rootHex}_${cp.epoch}
|
|
783
|
+
return `${cp.rootHex}_${cp.epoch}`;
|
|
875
784
|
}
|
|
876
785
|
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;
|
|
786
|
+
const [rootHex, epoch] = key.split("_");
|
|
882
787
|
return {
|
|
883
788
|
rootHex,
|
|
884
|
-
epoch,
|
|
885
|
-
payloadPresent,
|
|
789
|
+
epoch: Number(epoch),
|
|
886
790
|
};
|
|
887
791
|
}
|
|
888
792
|
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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"}
|