@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.
Files changed (219) hide show
  1. package/lib/api/impl/beacon/blocks/index.d.ts.map +1 -1
  2. package/lib/api/impl/beacon/blocks/index.js +1 -4
  3. package/lib/api/impl/beacon/blocks/index.js.map +1 -1
  4. package/lib/api/impl/beacon/state/utils.d.ts +2 -2
  5. package/lib/api/impl/beacon/state/utils.d.ts.map +1 -1
  6. package/lib/api/impl/beacon/state/utils.js.map +1 -1
  7. package/lib/api/impl/validator/index.d.ts.map +1 -1
  8. package/lib/api/impl/validator/index.js +1 -4
  9. package/lib/api/impl/validator/index.js.map +1 -1
  10. package/lib/chain/GetBlobsTracker.d.ts +1 -1
  11. package/lib/chain/GetBlobsTracker.d.ts.map +1 -1
  12. package/lib/chain/GetBlobsTracker.js +1 -2
  13. package/lib/chain/GetBlobsTracker.js.map +1 -1
  14. package/lib/chain/archiveStore/archiveStore.d.ts.map +1 -1
  15. package/lib/chain/archiveStore/archiveStore.js.map +1 -1
  16. package/lib/chain/archiveStore/interface.d.ts +4 -4
  17. package/lib/chain/archiveStore/interface.d.ts.map +1 -1
  18. package/lib/chain/archiveStore/strategies/frequencyStateArchiveStrategy.d.ts +4 -4
  19. package/lib/chain/archiveStore/strategies/frequencyStateArchiveStrategy.d.ts.map +1 -1
  20. package/lib/chain/archiveStore/strategies/frequencyStateArchiveStrategy.js +2 -4
  21. package/lib/chain/archiveStore/strategies/frequencyStateArchiveStrategy.js.map +1 -1
  22. package/lib/chain/archiveStore/utils/archiveBlocks.d.ts +2 -2
  23. package/lib/chain/archiveStore/utils/archiveBlocks.d.ts.map +1 -1
  24. package/lib/chain/archiveStore/utils/archiveBlocks.js +110 -58
  25. package/lib/chain/archiveStore/utils/archiveBlocks.js.map +1 -1
  26. package/lib/chain/blocks/importBlock.d.ts.map +1 -1
  27. package/lib/chain/blocks/importBlock.js +27 -35
  28. package/lib/chain/blocks/importBlock.js.map +1 -1
  29. package/lib/chain/blocks/importExecutionPayload.d.ts +15 -14
  30. package/lib/chain/blocks/importExecutionPayload.d.ts.map +1 -1
  31. package/lib/chain/blocks/importExecutionPayload.js +63 -85
  32. package/lib/chain/blocks/importExecutionPayload.js.map +1 -1
  33. package/lib/chain/blocks/index.d.ts.map +1 -1
  34. package/lib/chain/blocks/index.js +1 -2
  35. package/lib/chain/blocks/index.js.map +1 -1
  36. package/lib/chain/blocks/payloadEnvelopeInput/payloadEnvelopeInput.d.ts +3 -0
  37. package/lib/chain/blocks/payloadEnvelopeInput/payloadEnvelopeInput.d.ts.map +1 -1
  38. package/lib/chain/blocks/payloadEnvelopeInput/payloadEnvelopeInput.js +20 -0
  39. package/lib/chain/blocks/payloadEnvelopeInput/payloadEnvelopeInput.js.map +1 -1
  40. package/lib/chain/blocks/payloadEnvelopeProcessor.d.ts +5 -0
  41. package/lib/chain/blocks/payloadEnvelopeProcessor.d.ts.map +1 -1
  42. package/lib/chain/blocks/payloadEnvelopeProcessor.js +6 -4
  43. package/lib/chain/blocks/payloadEnvelopeProcessor.js.map +1 -1
  44. package/lib/chain/blocks/types.d.ts +15 -21
  45. package/lib/chain/blocks/types.d.ts.map +1 -1
  46. package/lib/chain/blocks/verifyExecutionPayloadEnvelope.d.ts +24 -0
  47. package/lib/chain/blocks/verifyExecutionPayloadEnvelope.d.ts.map +1 -0
  48. package/lib/chain/blocks/verifyExecutionPayloadEnvelope.js +76 -0
  49. package/lib/chain/blocks/verifyExecutionPayloadEnvelope.js.map +1 -0
  50. package/lib/chain/blocks/verifyPayloadsDataAvailability.d.ts +14 -0
  51. package/lib/chain/blocks/verifyPayloadsDataAvailability.d.ts.map +1 -0
  52. package/lib/chain/blocks/verifyPayloadsDataAvailability.js +25 -0
  53. package/lib/chain/blocks/verifyPayloadsDataAvailability.js.map +1 -0
  54. package/lib/chain/blocks/writePayloadEnvelopeInputToDb.d.ts +1 -1
  55. package/lib/chain/blocks/writePayloadEnvelopeInputToDb.js +1 -1
  56. package/lib/chain/chain.d.ts +3 -3
  57. package/lib/chain/chain.d.ts.map +1 -1
  58. package/lib/chain/chain.js +19 -39
  59. package/lib/chain/chain.js.map +1 -1
  60. package/lib/chain/emitter.d.ts +16 -4
  61. package/lib/chain/emitter.d.ts.map +1 -1
  62. package/lib/chain/emitter.js +5 -0
  63. package/lib/chain/emitter.js.map +1 -1
  64. package/lib/chain/errors/attestationError.d.ts +8 -1
  65. package/lib/chain/errors/attestationError.d.ts.map +1 -1
  66. package/lib/chain/errors/attestationError.js +4 -0
  67. package/lib/chain/errors/attestationError.js.map +1 -1
  68. package/lib/chain/errors/executionPayloadBid.d.ts +5 -0
  69. package/lib/chain/errors/executionPayloadBid.d.ts.map +1 -1
  70. package/lib/chain/errors/executionPayloadBid.js +1 -0
  71. package/lib/chain/errors/executionPayloadBid.js.map +1 -1
  72. package/lib/chain/errors/executionPayloadEnvelope.d.ts +5 -0
  73. package/lib/chain/errors/executionPayloadEnvelope.d.ts.map +1 -1
  74. package/lib/chain/errors/executionPayloadEnvelope.js +1 -0
  75. package/lib/chain/errors/executionPayloadEnvelope.js.map +1 -1
  76. package/lib/chain/forkChoice/index.d.ts.map +1 -1
  77. package/lib/chain/forkChoice/index.js +11 -15
  78. package/lib/chain/forkChoice/index.js.map +1 -1
  79. package/lib/chain/interface.d.ts +2 -2
  80. package/lib/chain/interface.d.ts.map +1 -1
  81. package/lib/chain/prepareNextSlot.d.ts.map +1 -1
  82. package/lib/chain/prepareNextSlot.js +22 -16
  83. package/lib/chain/prepareNextSlot.js.map +1 -1
  84. package/lib/chain/produceBlock/computeNewStateRoot.d.ts +3 -9
  85. package/lib/chain/produceBlock/computeNewStateRoot.d.ts.map +1 -1
  86. package/lib/chain/produceBlock/computeNewStateRoot.js +5 -32
  87. package/lib/chain/produceBlock/computeNewStateRoot.js.map +1 -1
  88. package/lib/chain/produceBlock/produceBlockBody.d.ts +3 -8
  89. package/lib/chain/produceBlock/produceBlockBody.d.ts.map +1 -1
  90. package/lib/chain/produceBlock/produceBlockBody.js +30 -19
  91. package/lib/chain/produceBlock/produceBlockBody.js.map +1 -1
  92. package/lib/chain/regen/errors.d.ts +1 -11
  93. package/lib/chain/regen/errors.d.ts.map +1 -1
  94. package/lib/chain/regen/errors.js +0 -2
  95. package/lib/chain/regen/errors.js.map +1 -1
  96. package/lib/chain/regen/interface.d.ts +6 -12
  97. package/lib/chain/regen/interface.d.ts.map +1 -1
  98. package/lib/chain/regen/queued.d.ts +6 -11
  99. package/lib/chain/regen/queued.d.ts.map +1 -1
  100. package/lib/chain/regen/queued.js +8 -40
  101. package/lib/chain/regen/queued.js.map +1 -1
  102. package/lib/chain/regen/regen.d.ts +0 -5
  103. package/lib/chain/regen/regen.d.ts.map +1 -1
  104. package/lib/chain/regen/regen.js +7 -34
  105. package/lib/chain/regen/regen.js.map +1 -1
  106. package/lib/chain/stateCache/datastore/db.d.ts +5 -4
  107. package/lib/chain/stateCache/datastore/db.d.ts.map +1 -1
  108. package/lib/chain/stateCache/datastore/db.js +10 -32
  109. package/lib/chain/stateCache/datastore/db.js.map +1 -1
  110. package/lib/chain/stateCache/datastore/file.d.ts +1 -1
  111. package/lib/chain/stateCache/datastore/file.d.ts.map +1 -1
  112. package/lib/chain/stateCache/datastore/file.js +5 -5
  113. package/lib/chain/stateCache/datastore/file.js.map +1 -1
  114. package/lib/chain/stateCache/datastore/types.d.ts +1 -1
  115. package/lib/chain/stateCache/datastore/types.d.ts.map +1 -1
  116. package/lib/chain/stateCache/fifoBlockStateCache.d.ts +1 -7
  117. package/lib/chain/stateCache/fifoBlockStateCache.d.ts.map +1 -1
  118. package/lib/chain/stateCache/fifoBlockStateCache.js +0 -8
  119. package/lib/chain/stateCache/fifoBlockStateCache.js.map +1 -1
  120. package/lib/chain/stateCache/persistentCheckpointsCache.d.ts +13 -30
  121. package/lib/chain/stateCache/persistentCheckpointsCache.d.ts.map +1 -1
  122. package/lib/chain/stateCache/persistentCheckpointsCache.js +120 -216
  123. package/lib/chain/stateCache/persistentCheckpointsCache.js.map +1 -1
  124. package/lib/chain/stateCache/types.d.ts +8 -15
  125. package/lib/chain/stateCache/types.d.ts.map +1 -1
  126. package/lib/chain/stateCache/types.js.map +1 -1
  127. package/lib/chain/validation/aggregateAndProof.js +12 -0
  128. package/lib/chain/validation/aggregateAndProof.js.map +1 -1
  129. package/lib/chain/validation/attestation.d.ts.map +1 -1
  130. package/lib/chain/validation/attestation.js +12 -0
  131. package/lib/chain/validation/attestation.js.map +1 -1
  132. package/lib/chain/validation/executionPayloadBid.d.ts.map +1 -1
  133. package/lib/chain/validation/executionPayloadBid.js +13 -1
  134. package/lib/chain/validation/executionPayloadBid.js.map +1 -1
  135. package/lib/chain/validation/executionPayloadEnvelope.d.ts.map +1 -1
  136. package/lib/chain/validation/executionPayloadEnvelope.js +21 -11
  137. package/lib/chain/validation/executionPayloadEnvelope.js.map +1 -1
  138. package/lib/chain/validation/payloadAttestationMessage.d.ts.map +1 -1
  139. package/lib/chain/validation/payloadAttestationMessage.js +4 -3
  140. package/lib/chain/validation/payloadAttestationMessage.js.map +1 -1
  141. package/lib/db/repositories/executionPayloadEnvelopeArchive.js +1 -1
  142. package/lib/db/repositories/executionPayloadEnvelopeArchive.js.map +1 -1
  143. package/lib/execution/engine/http.d.ts.map +1 -1
  144. package/lib/execution/engine/http.js +21 -14
  145. package/lib/execution/engine/http.js.map +1 -1
  146. package/lib/execution/engine/interface.d.ts +1 -0
  147. package/lib/execution/engine/interface.d.ts.map +1 -1
  148. package/lib/execution/engine/mock.d.ts.map +1 -1
  149. package/lib/execution/engine/mock.js +6 -0
  150. package/lib/execution/engine/mock.js.map +1 -1
  151. package/lib/execution/engine/types.d.ts +20 -0
  152. package/lib/execution/engine/types.d.ts.map +1 -1
  153. package/lib/execution/engine/types.js +18 -0
  154. package/lib/execution/engine/types.js.map +1 -1
  155. package/lib/network/gossip/topic.d.ts +3 -729
  156. package/lib/network/gossip/topic.d.ts.map +1 -1
  157. package/lib/network/network.js +1 -1
  158. package/lib/network/network.js.map +1 -1
  159. package/lib/network/processor/gossipHandlers.d.ts.map +1 -1
  160. package/lib/network/processor/gossipHandlers.js +22 -6
  161. package/lib/network/processor/gossipHandlers.js.map +1 -1
  162. package/lib/node/nodejs.d.ts.map +1 -1
  163. package/lib/node/nodejs.js +4 -2
  164. package/lib/node/nodejs.js.map +1 -1
  165. package/lib/util/sszBytes.d.ts.map +1 -1
  166. package/lib/util/sszBytes.js +16 -3
  167. package/lib/util/sszBytes.js.map +1 -1
  168. package/package.json +16 -16
  169. package/src/api/impl/beacon/blocks/index.ts +1 -4
  170. package/src/api/impl/beacon/state/utils.ts +2 -2
  171. package/src/api/impl/validator/index.ts +3 -6
  172. package/src/chain/GetBlobsTracker.ts +1 -2
  173. package/src/chain/archiveStore/archiveStore.ts +5 -5
  174. package/src/chain/archiveStore/interface.ts +4 -4
  175. package/src/chain/archiveStore/strategies/frequencyStateArchiveStrategy.ts +6 -8
  176. package/src/chain/archiveStore/utils/archiveBlocks.ts +153 -94
  177. package/src/chain/blocks/importBlock.ts +26 -39
  178. package/src/chain/blocks/importExecutionPayload.ts +77 -103
  179. package/src/chain/blocks/index.ts +1 -2
  180. package/src/chain/blocks/payloadEnvelopeInput/payloadEnvelopeInput.ts +27 -0
  181. package/src/chain/blocks/payloadEnvelopeProcessor.ts +6 -5
  182. package/src/chain/blocks/types.ts +15 -26
  183. package/src/chain/blocks/verifyExecutionPayloadEnvelope.ts +129 -0
  184. package/src/chain/blocks/verifyPayloadsDataAvailability.ts +38 -0
  185. package/src/chain/blocks/writePayloadEnvelopeInputToDb.ts +1 -1
  186. package/src/chain/chain.ts +25 -62
  187. package/src/chain/emitter.ts +15 -3
  188. package/src/chain/errors/attestationError.ts +6 -1
  189. package/src/chain/errors/executionPayloadBid.ts +6 -0
  190. package/src/chain/errors/executionPayloadEnvelope.ts +6 -0
  191. package/src/chain/forkChoice/index.ts +8 -20
  192. package/src/chain/interface.ts +2 -2
  193. package/src/chain/prepareNextSlot.ts +25 -16
  194. package/src/chain/produceBlock/computeNewStateRoot.ts +6 -43
  195. package/src/chain/produceBlock/produceBlockBody.ts +41 -20
  196. package/src/chain/regen/errors.ts +1 -6
  197. package/src/chain/regen/interface.ts +6 -12
  198. package/src/chain/regen/queued.ts +12 -48
  199. package/src/chain/regen/regen.ts +8 -36
  200. package/src/chain/stateCache/datastore/db.ts +10 -33
  201. package/src/chain/stateCache/datastore/file.ts +5 -6
  202. package/src/chain/stateCache/datastore/types.ts +2 -3
  203. package/src/chain/stateCache/fifoBlockStateCache.ts +1 -10
  204. package/src/chain/stateCache/persistentCheckpointsCache.ts +139 -247
  205. package/src/chain/stateCache/types.ts +8 -14
  206. package/src/chain/validation/aggregateAndProof.ts +13 -0
  207. package/src/chain/validation/attestation.ts +13 -0
  208. package/src/chain/validation/executionPayloadBid.ts +14 -0
  209. package/src/chain/validation/executionPayloadEnvelope.ts +22 -12
  210. package/src/chain/validation/payloadAttestationMessage.ts +5 -3
  211. package/src/db/repositories/executionPayloadEnvelopeArchive.ts +1 -1
  212. package/src/execution/engine/http.ts +21 -14
  213. package/src/execution/engine/interface.ts +1 -0
  214. package/src/execution/engine/mock.ts +8 -1
  215. package/src/execution/engine/types.ts +41 -0
  216. package/src/network/network.ts +1 -1
  217. package/src/network/processor/gossipHandlers.ts +26 -10
  218. package/src/node/nodejs.ts +4 -2
  219. 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 -> Map<blockRoot, PayloadAvailability bitmask> */
122
- epochIndex = new MapDef(() => new Map());
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
- const newCachedState = seedState.loadOtherState(stateBytes, validatorsBytes);
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.addToEpochIndex(cp.epoch, cp.rootHex, cp.payloadPresent);
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, payloadPresent) {
328
- const cpHex = toCheckpointHexPayload(cp, payloadPresent);
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.addToEpochIndex(cp.epoch, cpHex.rootHex, cpHex.payloadPresent);
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, payloadPresent) {
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.hasPayloadVariant(epoch, rootHex, payloadPresent)) {
364
- const inMemoryClonedState = this.get({ rootHex, epoch, payloadPresent });
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, payloadPresent) {
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.hasPayloadVariant(epoch, rootHex, payloadPresent)) {
363
+ if (this.epochIndex.get(epoch)?.has(rootHex)) {
386
364
  try {
387
- const state = await this.getOrReload({ rootHex, epoch, payloadPresent });
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, payloadPresent }, e);
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, payloadPresent) {
381
+ updatePreComputedCheckpoint(rootHex, epoch) {
406
382
  const previousHits = this.preComputedCheckpointHits;
407
- this.preComputedCheckpoint = toCacheKey({ rootHex, epoch, payloadPresent });
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 [rootHex, bitmask] of this.epochIndex.get(epoch) || []) {
554
- for (const flag of PAYLOAD_AVAILABILITY_ALL) {
555
- if (!(bitmask & flag))
556
- continue;
557
- const payloadPresent = fromPayloadAvailability(flag);
558
- const cpKey = toCacheKey({ rootHex, epoch, payloadPresent });
559
- const cacheItem = this.cache.get(cpKey);
560
- if (cacheItem === undefined) {
561
- continue;
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
- if (isInMemoryCacheItem(cacheItem)) {
564
- const { state } = cacheItem;
565
- if (firstState === null) {
566
- firstState = state;
567
- }
568
- const cpLog = { cpEpoch: epoch, cpRoot: rootHex, payloadPresent };
569
- try {
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 cpRootHexMap = this.epochIndex.get(epoch) ?? new Map();
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 cpRootHexMap.keys()) {
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 [rootHex, bitmask] of cpRootHexMap) {
700
- for (const flag of PAYLOAD_AVAILABILITY_ALL) {
701
- if (!(bitmask & flag))
702
- continue;
703
- const payloadPresent = fromPayloadAvailability(flag);
704
- const cpKey = toCacheKey({ epoch: epoch, rootHex, payloadPresent });
705
- const cacheItem = this.cache.get(cpKey);
706
- if (cacheItem !== undefined && isInMemoryCacheItem(cacheItem)) {
707
- let { persistedKey } = cacheItem;
708
- const { state } = cacheItem;
709
- const logMeta = {
710
- stateSlot: state.slot,
711
- rootHex,
712
- payloadPresent,
713
- epochBoundaryHex,
714
- persistedKey: persistedKey ? toHex(persistedKey) : "",
715
- };
716
- if (persistedRootHexes.has(rootHex)) {
717
- if (persistedKey) {
718
- // we don't care if the checkpoint state is already persisted
719
- this.logger.verbose("Pruned checkpoint state from memory but no need to persist", logMeta);
720
- }
721
- else {
722
- // persist and do not update epochIndex
723
- this.metrics?.cpStateCache.statePersistSecFromSlot.observe(this.clock?.secFromSlot(this.clock?.currentSlot ?? 0) ?? 0);
724
- const cpPersist = { epoch: epoch, root: fromHex(rootHex) };
725
- // It's not sustainable to allocate ~240MB for each state every epoch, so we use buffer pool to reuse the memory.
726
- // As monitored on holesky as of Jan 2024:
727
- // - This does not increase heap allocation while gc time is the same
728
- // - It helps stabilize persist time and save ~300ms in average (1.5s vs 1.2s)
729
- // - It also helps the state reload to save ~500ms in average (4.3s vs 3.8s)
730
- // - Also `serializeState.test.ts` perf test shows a lot of differences allocating ~240MB once vs per state serialization
731
- const timer = this.metrics?.stateSerializeDuration.startTimer({
732
- source: AllocSource.PERSISTENT_CHECKPOINTS_CACHE_STATE,
733
- });
734
- persistedKey = await serializeState(state, AllocSource.PERSISTENT_CHECKPOINTS_CACHE_STATE, (stateBytes) => {
735
- timer?.();
736
- return this.datastore.write(cpPersist, stateBytes, payloadPresent);
737
- }, this.bufferPool);
738
- persistCount++;
739
- this.logger.verbose("Pruned checkpoint state from memory and persisted to disk", {
740
- ...logMeta,
741
- persistedKey: toHex(persistedKey),
742
- });
743
- }
744
- // overwrite cpKey, this means the state is deleted from memory
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
- if (persistedKey) {
749
- // persisted file will be eventually deleted by the archive task
750
- // this also means the state is deleted from memory
751
- this.cache.set(cpKey, { type: CacheItemType.persisted, value: persistedKey });
752
- // do not update epochIndex
753
- }
754
- else {
755
- // delete the state from memory
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 rootHexMap = this.epochIndex.get(epoch) || new Map();
773
- for (const [rootHex, bitmask] of rootHexMap) {
774
- for (const flag of PAYLOAD_AVAILABILITY_ALL) {
775
- if (!(bitmask & flag))
776
- continue;
777
- const payloadPresent = fromPayloadAvailability(flag);
778
- const key = toCacheKey({ rootHex, epoch, payloadPresent });
779
- const cacheItem = this.cache.get(key);
780
- if (cacheItem) {
781
- const persistedKey = isPersistedCacheItem(cacheItem) ? cacheItem.value : cacheItem.persistedKey;
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 all checkpoint states for epoch", {
730
+ this.logger.verbose("Pruned checkpoint states for epoch", {
799
731
  epoch,
800
732
  persistCount,
801
- items: Array.from(rootHexMap.entries())
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 toCheckpointHexPayload(checkpoint, payloadPresent) {
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}:${cp.payloadPresent}`;
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}_${cp.payloadPresent}`;
783
+ return `${cp.rootHex}_${cp.epoch}`;
875
784
  }
876
785
  function fromCacheKey(key) {
877
- const parts = key.split("_");
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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"}