@lodestar/beacon-node 1.36.0-dev.c7f3e8d129 → 1.36.0-dev.d690a62b6c

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 (137) hide show
  1. package/lib/api/impl/beacon/blocks/index.d.ts.map +1 -1
  2. package/lib/api/impl/beacon/blocks/index.js +41 -22
  3. package/lib/api/impl/beacon/blocks/index.js.map +1 -1
  4. package/lib/api/impl/lodestar/index.d.ts +5 -0
  5. package/lib/api/impl/lodestar/index.d.ts.map +1 -1
  6. package/lib/api/impl/lodestar/index.js +35 -10
  7. package/lib/api/impl/lodestar/index.js.map +1 -1
  8. package/lib/api/impl/node/utils.js +1 -1
  9. package/lib/api/impl/node/utils.js.map +1 -1
  10. package/lib/chain/archiveStore/archiveStore.d.ts +9 -0
  11. package/lib/chain/archiveStore/archiveStore.d.ts.map +1 -1
  12. package/lib/chain/archiveStore/archiveStore.js +24 -0
  13. package/lib/chain/archiveStore/archiveStore.js.map +1 -1
  14. package/lib/chain/archiveStore/strategies/frequencyStateArchiveStrategy.d.ts +7 -0
  15. package/lib/chain/archiveStore/strategies/frequencyStateArchiveStrategy.d.ts.map +1 -1
  16. package/lib/chain/archiveStore/strategies/frequencyStateArchiveStrategy.js +31 -5
  17. package/lib/chain/archiveStore/strategies/frequencyStateArchiveStrategy.js.map +1 -1
  18. package/lib/chain/chain.d.ts +5 -2
  19. package/lib/chain/chain.d.ts.map +1 -1
  20. package/lib/chain/chain.js +32 -16
  21. package/lib/chain/chain.js.map +1 -1
  22. package/lib/chain/errors/dataColumnSidecarError.d.ts +7 -0
  23. package/lib/chain/errors/dataColumnSidecarError.d.ts.map +1 -1
  24. package/lib/chain/errors/dataColumnSidecarError.js +1 -0
  25. package/lib/chain/errors/dataColumnSidecarError.js.map +1 -1
  26. package/lib/chain/forkChoice/index.d.ts +9 -1
  27. package/lib/chain/forkChoice/index.d.ts.map +1 -1
  28. package/lib/chain/forkChoice/index.js +109 -4
  29. package/lib/chain/forkChoice/index.js.map +1 -1
  30. package/lib/chain/interface.d.ts +2 -0
  31. package/lib/chain/interface.d.ts.map +1 -1
  32. package/lib/chain/options.d.ts +0 -2
  33. package/lib/chain/options.d.ts.map +1 -1
  34. package/lib/chain/options.js +0 -1
  35. package/lib/chain/options.js.map +1 -1
  36. package/lib/chain/stateCache/datastore/db.d.ts +12 -0
  37. package/lib/chain/stateCache/datastore/db.d.ts.map +1 -1
  38. package/lib/chain/stateCache/datastore/db.js +70 -0
  39. package/lib/chain/stateCache/datastore/db.js.map +1 -1
  40. package/lib/chain/stateCache/datastore/file.d.ts +1 -0
  41. package/lib/chain/stateCache/datastore/file.d.ts.map +1 -1
  42. package/lib/chain/stateCache/datastore/file.js +7 -0
  43. package/lib/chain/stateCache/datastore/file.js.map +1 -1
  44. package/lib/chain/stateCache/datastore/types.d.ts +1 -0
  45. package/lib/chain/stateCache/datastore/types.d.ts.map +1 -1
  46. package/lib/chain/validation/dataColumnSidecar.d.ts.map +1 -1
  47. package/lib/chain/validation/dataColumnSidecar.js +14 -3
  48. package/lib/chain/validation/dataColumnSidecar.js.map +1 -1
  49. package/lib/index.d.ts +2 -0
  50. package/lib/index.d.ts.map +1 -1
  51. package/lib/index.js +2 -0
  52. package/lib/index.js.map +1 -1
  53. package/lib/metrics/metrics/lodestar.d.ts +10 -0
  54. package/lib/metrics/metrics/lodestar.d.ts.map +1 -1
  55. package/lib/metrics/metrics/lodestar.js +15 -1
  56. package/lib/metrics/metrics/lodestar.js.map +1 -1
  57. package/lib/network/core/networkCore.d.ts.map +1 -1
  58. package/lib/network/core/networkCore.js +5 -1
  59. package/lib/network/core/networkCore.js.map +1 -1
  60. package/lib/network/core/networkCoreWorker.js +2 -7
  61. package/lib/network/core/networkCoreWorker.js.map +1 -1
  62. package/lib/network/discv5/worker.js +2 -7
  63. package/lib/network/discv5/worker.js.map +1 -1
  64. package/lib/network/gossip/encoding.js +1 -1
  65. package/lib/network/gossip/encoding.js.map +1 -1
  66. package/lib/network/gossip/snappy_bun.d.ts +3 -0
  67. package/lib/network/gossip/snappy_bun.d.ts.map +1 -0
  68. package/lib/network/gossip/snappy_bun.js +3 -0
  69. package/lib/network/gossip/snappy_bun.js.map +1 -0
  70. package/lib/network/metadata.d.ts +1 -1
  71. package/lib/network/metadata.d.ts.map +1 -1
  72. package/lib/network/metadata.js +1 -0
  73. package/lib/network/metadata.js.map +1 -1
  74. package/lib/network/options.d.ts +0 -1
  75. package/lib/network/options.d.ts.map +1 -1
  76. package/lib/network/options.js.map +1 -1
  77. package/lib/network/processor/gossipHandlers.d.ts.map +1 -1
  78. package/lib/network/processor/gossipHandlers.js +14 -8
  79. package/lib/network/processor/gossipHandlers.js.map +1 -1
  80. package/lib/network/reqresp/handlers/beaconBlocksByRange.d.ts.map +1 -1
  81. package/lib/network/reqresp/handlers/beaconBlocksByRange.js +3 -1
  82. package/lib/network/reqresp/handlers/beaconBlocksByRange.js.map +1 -1
  83. package/lib/node/nodejs.d.ts +2 -1
  84. package/lib/node/nodejs.d.ts.map +1 -1
  85. package/lib/node/nodejs.js +2 -1
  86. package/lib/node/nodejs.js.map +1 -1
  87. package/lib/sync/range/range.d.ts.map +1 -1
  88. package/lib/sync/range/range.js +2 -1
  89. package/lib/sync/range/range.js.map +1 -1
  90. package/lib/sync/utils/remoteSyncType.d.ts +2 -1
  91. package/lib/sync/utils/remoteSyncType.d.ts.map +1 -1
  92. package/lib/sync/utils/remoteSyncType.js +19 -4
  93. package/lib/sync/utils/remoteSyncType.js.map +1 -1
  94. package/lib/util/blobs.d.ts +1 -1
  95. package/lib/util/blobs.d.ts.map +1 -1
  96. package/lib/util/blobs.js +53 -20
  97. package/lib/util/blobs.js.map +1 -1
  98. package/lib/util/profile.d.ts +6 -4
  99. package/lib/util/profile.d.ts.map +1 -1
  100. package/lib/util/profile.js +40 -3
  101. package/lib/util/profile.js.map +1 -1
  102. package/lib/util/sszBytes.d.ts +2 -0
  103. package/lib/util/sszBytes.d.ts.map +1 -1
  104. package/lib/util/sszBytes.js +25 -0
  105. package/lib/util/sszBytes.js.map +1 -1
  106. package/package.json +31 -24
  107. package/src/api/impl/beacon/blocks/index.ts +47 -25
  108. package/src/api/impl/lodestar/index.ts +42 -10
  109. package/src/api/impl/node/utils.ts +1 -1
  110. package/src/chain/archiveStore/archiveStore.ts +27 -0
  111. package/src/chain/archiveStore/strategies/frequencyStateArchiveStrategy.ts +32 -5
  112. package/src/chain/chain.ts +48 -23
  113. package/src/chain/errors/dataColumnSidecarError.ts +8 -0
  114. package/src/chain/forkChoice/index.ts +178 -2
  115. package/src/chain/interface.ts +2 -0
  116. package/src/chain/options.ts +0 -3
  117. package/src/chain/stateCache/datastore/db.ts +89 -1
  118. package/src/chain/stateCache/datastore/file.ts +8 -0
  119. package/src/chain/stateCache/datastore/types.ts +1 -0
  120. package/src/chain/validation/dataColumnSidecar.ts +21 -4
  121. package/src/index.ts +2 -0
  122. package/src/metrics/metrics/lodestar.ts +18 -1
  123. package/src/network/core/networkCore.ts +5 -1
  124. package/src/network/core/networkCoreWorker.ts +2 -7
  125. package/src/network/discv5/worker.ts +2 -7
  126. package/src/network/gossip/encoding.ts +1 -1
  127. package/src/network/gossip/snappy_bun.ts +2 -0
  128. package/src/network/metadata.ts +3 -1
  129. package/src/network/options.ts +0 -1
  130. package/src/network/processor/gossipHandlers.ts +16 -7
  131. package/src/network/reqresp/handlers/beaconBlocksByRange.ts +3 -1
  132. package/src/node/nodejs.ts +3 -0
  133. package/src/sync/range/range.ts +2 -1
  134. package/src/sync/utils/remoteSyncType.ts +23 -4
  135. package/src/util/blobs.ts +64 -20
  136. package/src/util/profile.ts +45 -3
  137. package/src/util/sszBytes.ts +30 -0
@@ -1,5 +1,7 @@
1
1
  import { ExecutionStatus, ForkChoice, ForkChoiceStore, ProtoArray, } from "@lodestar/fork-choice";
2
- import { DataAvailabilityStatus, computeAnchorCheckpoint, getEffectiveBalanceIncrementsZeroInactive, isExecutionStateType, isMergeTransitionComplete, } from "@lodestar/state-transition";
2
+ import { ZERO_HASH_HEX } from "@lodestar/params";
3
+ import { DataAvailabilityStatus, computeAnchorCheckpoint, computeEpochAtSlot, computeStartSlotAtEpoch, getBlockRootAtSlot, getEffectiveBalanceIncrementsZeroInactive, isExecutionStateType, isMergeTransitionComplete, } from "@lodestar/state-transition";
4
+ import { ssz } from "@lodestar/types";
3
5
  import { toRootHex } from "@lodestar/utils";
4
6
  import { GENESIS_SLOT } from "../../constants/index.js";
5
7
  import { ChainEvent } from "../emitter.js";
@@ -11,7 +13,15 @@ export var ForkchoiceCaller;
11
13
  /**
12
14
  * Fork Choice extended with a ChainEventEmitter
13
15
  */
14
- export function initializeForkChoice(config, emitter, currentSlot, state, opts, justifiedBalancesGetter, metrics, logger) {
16
+ export function initializeForkChoice(config, emitter, currentSlot, state, isFinalizedState, opts, justifiedBalancesGetter, metrics, logger) {
17
+ return isFinalizedState
18
+ ? initializeForkChoiceFromFinalizedState(config, emitter, currentSlot, state, opts, justifiedBalancesGetter, metrics, logger)
19
+ : initializeForkChoiceFromUnfinalizedState(config, emitter, currentSlot, state, opts, justifiedBalancesGetter, metrics, logger);
20
+ }
21
+ /**
22
+ * Initialize forkchoice from a finalized state.
23
+ */
24
+ export function initializeForkChoiceFromFinalizedState(config, emitter, currentSlot, state, opts, justifiedBalancesGetter, metrics, logger) {
15
25
  const { blockHeader, checkpoint } = computeAnchorCheckpoint(config, state);
16
26
  const finalizedCheckpoint = { ...checkpoint };
17
27
  const justifiedCheckpoint = {
@@ -34,7 +44,7 @@ export function initializeForkChoice(config, emitter, currentSlot, state, opts,
34
44
  parentRoot: toRootHex(blockHeader.parentRoot),
35
45
  stateRoot: toRootHex(blockHeader.stateRoot),
36
46
  blockRoot: toRootHex(checkpoint.root),
37
- timeliness: true, // Optimisitcally assume is timely
47
+ timeliness: true, // Optimistically assume is timely
38
48
  justifiedEpoch: justifiedCheckpoint.epoch,
39
49
  justifiedRoot: toRootHex(justifiedCheckpoint.root),
40
50
  finalizedEpoch: finalizedCheckpoint.epoch,
@@ -51,6 +61,101 @@ export function initializeForkChoice(config, emitter, currentSlot, state, opts,
51
61
  }
52
62
  : { executionPayloadBlockHash: null, executionStatus: ExecutionStatus.PreMerge }),
53
63
  dataAvailabilityStatus: DataAvailabilityStatus.PreData,
54
- }, currentSlot), metrics, opts, logger);
64
+ }, currentSlot), state.validators.length, metrics, opts, logger);
65
+ }
66
+ /**
67
+ * Initialize forkchoice from an unfinalized state.
68
+ */
69
+ export function initializeForkChoiceFromUnfinalizedState(config, emitter, currentSlot, unfinalizedState, opts, justifiedBalancesGetter, metrics, logger) {
70
+ const { blockHeader } = computeAnchorCheckpoint(config, unfinalizedState);
71
+ const finalizedCheckpoint = unfinalizedState.finalizedCheckpoint.toValue();
72
+ const justifiedCheckpoint = unfinalizedState.currentJustifiedCheckpoint.toValue();
73
+ const headRoot = toRootHex(ssz.phase0.BeaconBlockHeader.hashTreeRoot(blockHeader));
74
+ const logCtx = {
75
+ currentSlot: currentSlot,
76
+ stateSlot: unfinalizedState.slot,
77
+ headSlot: blockHeader.slot,
78
+ headRoot: headRoot,
79
+ finalizedEpoch: finalizedCheckpoint.epoch,
80
+ finalizedRoot: toRootHex(finalizedCheckpoint.root),
81
+ justifiedEpoch: justifiedCheckpoint.epoch,
82
+ justifiedRoot: toRootHex(justifiedCheckpoint.root),
83
+ };
84
+ logger?.warn("Initializing fork choice from unfinalized state", logCtx);
85
+ // this is not the justified state, but there is no other ways to get justified balances
86
+ const justifiedBalances = getEffectiveBalanceIncrementsZeroInactive(unfinalizedState);
87
+ const store = new ForkChoiceStore(currentSlot, justifiedCheckpoint, finalizedCheckpoint, justifiedBalances, justifiedBalancesGetter, {
88
+ onJustified: (cp) => emitter.emit(ChainEvent.forkChoiceJustified, cp),
89
+ onFinalized: (cp) => emitter.emit(ChainEvent.forkChoiceFinalized, cp),
90
+ });
91
+ // this is the same to the finalized state
92
+ const headBlock = {
93
+ slot: blockHeader.slot,
94
+ parentRoot: toRootHex(blockHeader.parentRoot),
95
+ stateRoot: toRootHex(blockHeader.stateRoot),
96
+ blockRoot: headRoot,
97
+ targetRoot: headRoot,
98
+ timeliness: true, // Optimistically assume is timely
99
+ justifiedEpoch: justifiedCheckpoint.epoch,
100
+ justifiedRoot: toRootHex(justifiedCheckpoint.root),
101
+ finalizedEpoch: finalizedCheckpoint.epoch,
102
+ finalizedRoot: toRootHex(finalizedCheckpoint.root),
103
+ unrealizedJustifiedEpoch: justifiedCheckpoint.epoch,
104
+ unrealizedJustifiedRoot: toRootHex(justifiedCheckpoint.root),
105
+ unrealizedFinalizedEpoch: finalizedCheckpoint.epoch,
106
+ unrealizedFinalizedRoot: toRootHex(finalizedCheckpoint.root),
107
+ ...(isExecutionStateType(unfinalizedState) && isMergeTransitionComplete(unfinalizedState)
108
+ ? {
109
+ executionPayloadBlockHash: toRootHex(unfinalizedState.latestExecutionPayloadHeader.blockHash),
110
+ executionPayloadNumber: unfinalizedState.latestExecutionPayloadHeader.blockNumber,
111
+ executionStatus: blockHeader.slot === GENESIS_SLOT ? ExecutionStatus.Valid : ExecutionStatus.Syncing,
112
+ }
113
+ : { executionPayloadBlockHash: null, executionStatus: ExecutionStatus.PreMerge }),
114
+ dataAvailabilityStatus: DataAvailabilityStatus.PreData,
115
+ };
116
+ const parentSlot = blockHeader.slot - 1;
117
+ const parentEpoch = computeEpochAtSlot(parentSlot);
118
+ // parent of head block
119
+ const parentBlock = {
120
+ ...headBlock,
121
+ slot: parentSlot,
122
+ // link this to the dummy justified block
123
+ parentRoot: toRootHex(justifiedCheckpoint.root),
124
+ // dummy data, we're not able to regen state before headBlock
125
+ stateRoot: ZERO_HASH_HEX,
126
+ blockRoot: headBlock.parentRoot,
127
+ targetRoot: toRootHex(getBlockRootAtSlot(unfinalizedState, computeStartSlotAtEpoch(parentEpoch))),
128
+ };
129
+ const justifiedBlock = {
130
+ ...headBlock,
131
+ slot: computeStartSlotAtEpoch(justifiedCheckpoint.epoch),
132
+ // link this to the finalized root so that getAncestors can find the finalized block
133
+ parentRoot: toRootHex(finalizedCheckpoint.root),
134
+ // dummy data, we're not able to regen state before headBlock
135
+ stateRoot: ZERO_HASH_HEX,
136
+ blockRoot: toRootHex(justifiedCheckpoint.root),
137
+ // same to blockRoot
138
+ targetRoot: toRootHex(justifiedCheckpoint.root),
139
+ };
140
+ const finalizedBlock = {
141
+ ...headBlock,
142
+ slot: computeStartSlotAtEpoch(finalizedCheckpoint.epoch),
143
+ // we don't care parent of finalized block
144
+ parentRoot: ZERO_HASH_HEX,
145
+ // dummy data, we're not able to regen state before headBlock
146
+ stateRoot: ZERO_HASH_HEX,
147
+ blockRoot: toRootHex(finalizedCheckpoint.root),
148
+ // same to blockRoot
149
+ targetRoot: toRootHex(finalizedCheckpoint.root),
150
+ };
151
+ const protoArray = ProtoArray.initialize(finalizedBlock, currentSlot);
152
+ protoArray.onBlock(justifiedBlock, currentSlot);
153
+ protoArray.onBlock(parentBlock, currentSlot);
154
+ protoArray.onBlock(headBlock, currentSlot);
155
+ logger?.verbose("Initialized protoArray successfully", { ...logCtx, length: protoArray.length() });
156
+ // forkchoiceConstructor is only used for some test cases
157
+ // production code use ForkChoice constructor directly
158
+ const forkchoiceConstructor = opts.forkchoiceConstructor ?? ForkChoice;
159
+ return new forkchoiceConstructor(config, store, protoArray, unfinalizedState.validators.length, metrics, opts, logger);
55
160
  }
56
161
  //# sourceMappingURL=index.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/chain/forkChoice/index.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/chain/forkChoice/index.ts"],"names":[],"mappings":"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"}
@@ -133,6 +133,8 @@ export interface IBeaconChain {
133
133
  executionOptimistic: boolean;
134
134
  finalized: boolean;
135
135
  } | null>;
136
+ /** Return serialized bytes of a persisted checkpoint state */
137
+ getPersistedCheckpointState(checkpoint?: phase0.Checkpoint): Promise<Uint8Array | null>;
136
138
  /** Returns a cached state by checkpoint */
137
139
  getStateByCheckpoint(checkpoint: CheckpointWithHex): {
138
140
  state: BeaconStateAllForks;
@@ -1 +1 @@
1
- {"version":3,"file":"interface.d.ts","sourceRoot":"","sources":["../../src/chain/interface.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"interface.d.ts","sourceRoot":"","sources":["../../src/chain/interface.ts"],"names":[],"mappings":"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"}
@@ -25,8 +25,6 @@ export type IChainOptions = BlockProcessOpts & PoolOpts & SeenCacheOpts & ForkCh
25
25
  maxCachedBlobSidecars?: number;
26
26
  /** Max number of produced block roots (blinded or full) cached for broadcast validations */
27
27
  maxCachedProducedRoots?: number;
28
- /** Subscribe to and custody all data column sidecar subnets */
29
- supernode?: boolean;
30
28
  initialCustodyGroupCount?: number;
31
29
  broadcastValidationStrictness?: string;
32
30
  minSameMessageSignatureSetsToBatch: number;
@@ -1 +1 @@
1
- {"version":3,"file":"options.d.ts","sourceRoot":"","sources":["../../src/chain/options.ts"],"names":[],"mappings":"AAEA,OAAO,EAAC,oBAAoB,EAAC,MAAM,6BAA6B,CAAC;AACjE,OAAO,EAAC,WAAW,EAAE,gBAAgB,EAAC,MAAM,6BAA6B,CAAC;AAC1E,OAAO,EAAC,cAAc,EAAC,MAAM,uBAAuB,CAAC;AACrD,OAAO,EAAC,qBAAqB,EAAC,MAAM,wBAAwB,CAAC;AAC7D,OAAO,EAAC,kBAAkB,EAAC,MAAM,qBAAqB,CAAC;AACvD,OAAO,EAA2B,uBAAuB,EAAC,MAAM,qCAAqC,CAAC;AACtG,OAAO,EAEL,kCAAkC,EACnC,MAAM,4CAA4C,CAAC;AACpD,OAAO,EAAC,oBAAoB,EAAC,MAAM,uBAAuB,CAAC;AAE3D,OAAO,EAAC,WAAW,EAAE,oBAAoB,EAAC,CAAC;AAE3C,MAAM,MAAM,aAAa,GAAG,gBAAgB,GAC1C,QAAQ,GACR,aAAa,GACb,cAAc,GACd,gBAAgB,GAChB,uBAAuB,GACvB,kCAAkC,GAClC,kBAAkB,GAClB,oBAAoB,GACpB,qBAAqB,GAAG;IACtB,sBAAsB,CAAC,EAAE,OAAO,CAAC;IACjC,uBAAuB,CAAC,EAAE,OAAO,CAAC;IAClC,iBAAiB,CAAC,EAAE,MAAM,EAAE,CAAC;IAC7B,qBAAqB,CAAC,EAAE,OAAO,CAAC;IAChC,wBAAwB,CAAC,EAAE,OAAO,CAAC;IACnC,2BAA2B,CAAC,EAAE,MAAM,CAAC;IACrC,qBAAqB,CAAC,EAAE,OAAO,CAAC;IAChC,wBAAwB,CAAC,EAAE,MAAM,CAAC;IAClC,+BAA+B,CAAC,EAAE,OAAO,CAAC;IAC1C,qBAAqB,EAAE,MAAM,CAAC;IAC9B,YAAY,CAAC,EAAE,MAAM,CAAC;IACtB,8DAA8D;IAC9D,+BAA+B,CAAC,EAAE,OAAO,CAAC;IAC1C,gEAAgE;IAChE,qBAAqB,CAAC,EAAE,MAAM,CAAC;IAC/B,4FAA4F;IAC5F,sBAAsB,CAAC,EAAE,MAAM,CAAC;IAChC,+DAA+D;IAC/D,SAAS,CAAC,EAAE,OAAO,CAAC;IACpB,wBAAwB,CAAC,EAAE,MAAM,CAAC;IAClC,6BAA6B,CAAC,EAAE,MAAM,CAAC;IACvC,kCAAkC,EAAE,MAAM,CAAC;IAC3C,iBAAiB,CAAC,EAAE,MAAM,CAAC;IAC3B,iBAAiB,CAAC,EAAE,OAAO,CAAC;IAC5B,8BAA8B,CAAC,EAAE,OAAO,CAAC;CAC1C,CAAC;AAEJ,MAAM,MAAM,gBAAgB,GAAG;IAC7B;;;OAGG;IACH,qBAAqB,CAAC,EAAE,OAAO,CAAC;IAChC;;OAEG;IACH,+BAA+B,CAAC,EAAE,MAAM,CAAC;IACzC;;OAEG;IACH,gCAAgC,CAAC,EAAE,OAAO,CAAC;IAC3C,sCAAsC;IACtC,mBAAmB,CAAC,EAAE,OAAO,CAAC;IAC9B,sCAAsC;IACtC,sBAAsB,CAAC,EAAE,OAAO,CAAC;IACjC;;;OAGG;IACH,yBAAyB,CAAC,EAAE,OAAO,CAAC;IACpC,qBAAqB,CAAC,EAAE,OAAO,CAAC;IAEhC;;;;OAIG;IACH,UAAU,CAAC,EAAE,OAAO,CAAC;IACrB,2DAA2D;IAC3D,0BAA0B,CAAC,EAAE,OAAO,CAAC;IACrC,0DAA0D;IAC1D,yBAAyB,CAAC,EAAE,OAAO,CAAC;CACrC,CAAC;AAEF,MAAM,MAAM,QAAQ,GAAG;IACrB;;OAEG;IACH,wBAAwB,CAAC,EAAE,MAAM,CAAC;CACnC,CAAC;AAEF,MAAM,MAAM,aAAa,GAAG;IAC1B;;OAEG;IACH,wBAAwB,CAAC,EAAE,MAAM,CAAC;CACnC,CAAC;AAEF,eAAO,MAAM,mBAAmB,EAAE,aAiCjC,CAAC"}
1
+ {"version":3,"file":"options.d.ts","sourceRoot":"","sources":["../../src/chain/options.ts"],"names":[],"mappings":"AAEA,OAAO,EAAC,oBAAoB,EAAC,MAAM,6BAA6B,CAAC;AACjE,OAAO,EAAC,WAAW,EAAE,gBAAgB,EAAC,MAAM,6BAA6B,CAAC;AAC1E,OAAO,EAAC,cAAc,EAAC,MAAM,uBAAuB,CAAC;AACrD,OAAO,EAAC,qBAAqB,EAAC,MAAM,wBAAwB,CAAC;AAC7D,OAAO,EAAC,kBAAkB,EAAC,MAAM,qBAAqB,CAAC;AACvD,OAAO,EAA2B,uBAAuB,EAAC,MAAM,qCAAqC,CAAC;AACtG,OAAO,EAEL,kCAAkC,EACnC,MAAM,4CAA4C,CAAC;AACpD,OAAO,EAAC,oBAAoB,EAAC,MAAM,uBAAuB,CAAC;AAE3D,OAAO,EAAC,WAAW,EAAE,oBAAoB,EAAC,CAAC;AAE3C,MAAM,MAAM,aAAa,GAAG,gBAAgB,GAC1C,QAAQ,GACR,aAAa,GACb,cAAc,GACd,gBAAgB,GAChB,uBAAuB,GACvB,kCAAkC,GAClC,kBAAkB,GAClB,oBAAoB,GACpB,qBAAqB,GAAG;IACtB,sBAAsB,CAAC,EAAE,OAAO,CAAC;IACjC,uBAAuB,CAAC,EAAE,OAAO,CAAC;IAClC,iBAAiB,CAAC,EAAE,MAAM,EAAE,CAAC;IAC7B,qBAAqB,CAAC,EAAE,OAAO,CAAC;IAChC,wBAAwB,CAAC,EAAE,OAAO,CAAC;IACnC,2BAA2B,CAAC,EAAE,MAAM,CAAC;IACrC,qBAAqB,CAAC,EAAE,OAAO,CAAC;IAChC,wBAAwB,CAAC,EAAE,MAAM,CAAC;IAClC,+BAA+B,CAAC,EAAE,OAAO,CAAC;IAC1C,qBAAqB,EAAE,MAAM,CAAC;IAC9B,YAAY,CAAC,EAAE,MAAM,CAAC;IACtB,8DAA8D;IAC9D,+BAA+B,CAAC,EAAE,OAAO,CAAC;IAC1C,gEAAgE;IAChE,qBAAqB,CAAC,EAAE,MAAM,CAAC;IAC/B,4FAA4F;IAC5F,sBAAsB,CAAC,EAAE,MAAM,CAAC;IAChC,wBAAwB,CAAC,EAAE,MAAM,CAAC;IAClC,6BAA6B,CAAC,EAAE,MAAM,CAAC;IACvC,kCAAkC,EAAE,MAAM,CAAC;IAC3C,iBAAiB,CAAC,EAAE,MAAM,CAAC;IAC3B,iBAAiB,CAAC,EAAE,OAAO,CAAC;IAC5B,8BAA8B,CAAC,EAAE,OAAO,CAAC;CAC1C,CAAC;AAEJ,MAAM,MAAM,gBAAgB,GAAG;IAC7B;;;OAGG;IACH,qBAAqB,CAAC,EAAE,OAAO,CAAC;IAChC;;OAEG;IACH,+BAA+B,CAAC,EAAE,MAAM,CAAC;IACzC;;OAEG;IACH,gCAAgC,CAAC,EAAE,OAAO,CAAC;IAC3C,sCAAsC;IACtC,mBAAmB,CAAC,EAAE,OAAO,CAAC;IAC9B,sCAAsC;IACtC,sBAAsB,CAAC,EAAE,OAAO,CAAC;IACjC;;;OAGG;IACH,yBAAyB,CAAC,EAAE,OAAO,CAAC;IACpC,qBAAqB,CAAC,EAAE,OAAO,CAAC;IAEhC;;;;OAIG;IACH,UAAU,CAAC,EAAE,OAAO,CAAC;IACrB,2DAA2D;IAC3D,0BAA0B,CAAC,EAAE,OAAO,CAAC;IACrC,0DAA0D;IAC1D,yBAAyB,CAAC,EAAE,OAAO,CAAC;CACrC,CAAC;AAEF,MAAM,MAAM,QAAQ,GAAG;IACrB;;OAEG;IACH,wBAAwB,CAAC,EAAE,MAAM,CAAC;CACnC,CAAC;AAEF,MAAM,MAAM,aAAa,GAAG;IAC1B;;OAEG;IACH,wBAAwB,CAAC,EAAE,MAAM,CAAC;CACnC,CAAC;AAEF,eAAO,MAAM,mBAAmB,EAAE,aAgCjC,CAAC"}
@@ -21,7 +21,6 @@ export const defaultChainOptions = {
21
21
  archiveMode: DEFAULT_ARCHIVE_MODE,
22
22
  pruneHistory: false,
23
23
  emitPayloadAttributes: false,
24
- supernode: false,
25
24
  // for gossip block validation, it's unlikely we see a reorg with 32 slots
26
25
  // for attestation validation, having this value ensures we don't have to regen states most of the time
27
26
  maxSkipSlots: 32,
@@ -1 +1 @@
1
- {"version":3,"file":"options.js","sourceRoot":"","sources":["../../src/chain/options.ts"],"names":[],"mappings":"AAAA,OAAO,EAAC,mCAAmC,EAAC,MAAM,kBAAkB,CAAC;AACrE,OAAO,EAAC,cAAc,IAAI,uBAAuB,EAAC,MAAM,qBAAqB,CAAC;AAC9E,OAAO,EAAC,oBAAoB,EAAC,MAAM,6BAA6B,CAAC;AACjE,OAAO,EAAC,WAAW,EAAmB,MAAM,6BAA6B,CAAC;AAI1E,OAAO,EAAC,wBAAwB,EAA0B,MAAM,qCAAqC,CAAC;AACtG,OAAO,EACL,qCAAqC,GAEtC,MAAM,4CAA4C,CAAC;AAGpD,OAAO,EAAC,WAAW,EAAE,oBAAoB,EAAC,CAAC;AA0F3C,MAAM,CAAC,MAAM,mBAAmB,GAAkB;IAChD,sBAAsB,EAAE,KAAK;IAC7B,uBAAuB,EAAE,KAAK;IAC9B,iBAAiB,EAAE,EAAE;IACrB,qBAAqB,EAAE,KAAK;IAC5B,aAAa,EAAE,IAAI;IACnB,kBAAkB,EAAE,IAAI;IACxB,iBAAiB,EAAE,IAAI;IACvB,+BAA+B,EAAE,mCAAmC;IACpE,qBAAqB,EAAE,uBAAuB,CAAC,qBAAqB;IACpE,oBAAoB,EAAE,KAAK;IAC3B,gCAAgC,EAAE,KAAK;IACvC,0BAA0B,EAAE,IAAI;IAChC,WAAW,EAAE,oBAAoB;IACjC,YAAY,EAAE,KAAK;IACnB,qBAAqB,EAAE,KAAK;IAC5B,SAAS,EAAE,KAAK;IAChB,0EAA0E;IAC1E,uGAAuG;IACvG,YAAY,EAAE,EAAE;IAChB,6BAA6B,EAAE,MAAM;IACrC,qEAAqE;IACrE,gGAAgG;IAChG,wGAAwG;IACxG,kCAAkC,EAAE,CAAC;IACrC,iBAAiB,EAAE,IAAI;IACvB,4DAA4D;IAC5D,qEAAqE;IACrE,uFAAuF;IACvF,wDAAwD;IACxD,8BAA8B,EAAE,IAAI;IACpC,cAAc,EAAE,wBAAwB;IACxC,wBAAwB,EAAE,qCAAqC;CAChE,CAAC"}
1
+ {"version":3,"file":"options.js","sourceRoot":"","sources":["../../src/chain/options.ts"],"names":[],"mappings":"AAAA,OAAO,EAAC,mCAAmC,EAAC,MAAM,kBAAkB,CAAC;AACrE,OAAO,EAAC,cAAc,IAAI,uBAAuB,EAAC,MAAM,qBAAqB,CAAC;AAC9E,OAAO,EAAC,oBAAoB,EAAC,MAAM,6BAA6B,CAAC;AACjE,OAAO,EAAC,WAAW,EAAmB,MAAM,6BAA6B,CAAC;AAI1E,OAAO,EAAC,wBAAwB,EAA0B,MAAM,qCAAqC,CAAC;AACtG,OAAO,EACL,qCAAqC,GAEtC,MAAM,4CAA4C,CAAC;AAGpD,OAAO,EAAC,WAAW,EAAE,oBAAoB,EAAC,CAAC;AAwF3C,MAAM,CAAC,MAAM,mBAAmB,GAAkB;IAChD,sBAAsB,EAAE,KAAK;IAC7B,uBAAuB,EAAE,KAAK;IAC9B,iBAAiB,EAAE,EAAE;IACrB,qBAAqB,EAAE,KAAK;IAC5B,aAAa,EAAE,IAAI;IACnB,kBAAkB,EAAE,IAAI;IACxB,iBAAiB,EAAE,IAAI;IACvB,+BAA+B,EAAE,mCAAmC;IACpE,qBAAqB,EAAE,uBAAuB,CAAC,qBAAqB;IACpE,oBAAoB,EAAE,KAAK;IAC3B,gCAAgC,EAAE,KAAK;IACvC,0BAA0B,EAAE,IAAI;IAChC,WAAW,EAAE,oBAAoB;IACjC,YAAY,EAAE,KAAK;IACnB,qBAAqB,EAAE,KAAK;IAC5B,0EAA0E;IAC1E,uGAAuG;IACvG,YAAY,EAAE,EAAE;IAChB,6BAA6B,EAAE,MAAM;IACrC,qEAAqE;IACrE,gGAAgG;IAChG,wGAAwG;IACxG,kCAAkC,EAAE,CAAC;IACrC,iBAAiB,EAAE,IAAI;IACvB,4DAA4D;IAC5D,qEAAqE;IACrE,uFAAuF;IACvF,wDAAwD;IACxD,8BAA8B,EAAE,IAAI;IACpC,cAAc,EAAE,wBAAwB;IACxC,wBAAwB,EAAE,qCAAqC;CAChE,CAAC"}
@@ -10,8 +10,20 @@ export declare class DbCPStateDatastore implements CPStateDatastore {
10
10
  write(cpKey: phase0.Checkpoint, stateBytes: Uint8Array): Promise<DatastoreKey>;
11
11
  remove(serializedCheckpoint: DatastoreKey): Promise<void>;
12
12
  read(serializedCheckpoint: DatastoreKey): Promise<Uint8Array | null>;
13
+ readLatestSafe(): Promise<Uint8Array | null>;
13
14
  readKeys(): Promise<DatastoreKey[]>;
14
15
  }
15
16
  export declare function datastoreKeyToCheckpoint(key: DatastoreKey): phase0.Checkpoint;
16
17
  export declare function checkpointToDatastoreKey(cp: phase0.Checkpoint): DatastoreKey;
18
+ /**
19
+ * Get the latest safe checkpoint state the node can use to boot from
20
+ * - it should be the checkpoint state that's unique in its epoch
21
+ * - its last processed block slot should be at epoch boundary or last slot of previous epoch
22
+ * - state slot should be at epoch boundary
23
+ * - state slot should be equal to epoch * SLOTS_PER_EPOCH
24
+ *
25
+ * return the serialized data of Current Root Checkpoint State (CRCS) or Previous Root Checkpoint State (PRCS)
26
+ *
27
+ */
28
+ export declare function getLatestSafeDatastoreKey(allKeys: DatastoreKey[], readFn: (key: DatastoreKey) => Promise<Uint8Array | null>): Promise<Uint8Array | null>;
17
29
  //# sourceMappingURL=db.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"db.d.ts","sourceRoot":"","sources":["../../../../src/chain/stateCache/datastore/db.ts"],"names":[],"mappings":"AAAA,OAAO,EAAC,MAAM,EAAM,MAAM,iBAAiB,CAAC;AAC5C,OAAO,EAAC,SAAS,EAAC,MAAM,0BAA0B,CAAC;AACnD,OAAO,EAAC,gBAAgB,EAAE,YAAY,EAAC,MAAM,YAAY,CAAC;AAE1D;;GAEG;AACH,qBAAa,kBAAmB,YAAW,gBAAgB;IAC7C,OAAO,CAAC,QAAQ,CAAC,EAAE;gBAAF,EAAE,EAAE,SAAS;IAEpC,KAAK,CAAC,KAAK,EAAE,MAAM,CAAC,UAAU,EAAE,UAAU,EAAE,UAAU,GAAG,OAAO,CAAC,YAAY,CAAC;IAM9E,MAAM,CAAC,oBAAoB,EAAE,YAAY,GAAG,OAAO,CAAC,IAAI,CAAC;IAIzD,IAAI,CAAC,oBAAoB,EAAE,YAAY,GAAG,OAAO,CAAC,UAAU,GAAG,IAAI,CAAC;IAIpE,QAAQ,IAAI,OAAO,CAAC,YAAY,EAAE,CAAC;CAG1C;AAED,wBAAgB,wBAAwB,CAAC,GAAG,EAAE,YAAY,GAAG,MAAM,CAAC,UAAU,CAE7E;AAED,wBAAgB,wBAAwB,CAAC,EAAE,EAAE,MAAM,CAAC,UAAU,GAAG,YAAY,CAE5E"}
1
+ {"version":3,"file":"db.d.ts","sourceRoot":"","sources":["../../../../src/chain/stateCache/datastore/db.ts"],"names":[],"mappings":"AACA,OAAO,EAAQ,MAAM,EAAM,MAAM,iBAAiB,CAAC;AAEnD,OAAO,EAAC,SAAS,EAAC,MAAM,0BAA0B,CAAC;AAKnD,OAAO,EAAC,gBAAgB,EAAE,YAAY,EAAC,MAAM,YAAY,CAAC;AAE1D;;GAEG;AACH,qBAAa,kBAAmB,YAAW,gBAAgB;IAC7C,OAAO,CAAC,QAAQ,CAAC,EAAE;gBAAF,EAAE,EAAE,SAAS;IAEpC,KAAK,CAAC,KAAK,EAAE,MAAM,CAAC,UAAU,EAAE,UAAU,EAAE,UAAU,GAAG,OAAO,CAAC,YAAY,CAAC;IAM9E,MAAM,CAAC,oBAAoB,EAAE,YAAY,GAAG,OAAO,CAAC,IAAI,CAAC;IAIzD,IAAI,CAAC,oBAAoB,EAAE,YAAY,GAAG,OAAO,CAAC,UAAU,GAAG,IAAI,CAAC;IAIpE,cAAc,IAAI,OAAO,CAAC,UAAU,GAAG,IAAI,CAAC;IAO5C,QAAQ,IAAI,OAAO,CAAC,YAAY,EAAE,CAAC;CAG1C;AAED,wBAAgB,wBAAwB,CAAC,GAAG,EAAE,YAAY,GAAG,MAAM,CAAC,UAAU,CAE7E;AAED,wBAAgB,wBAAwB,CAAC,EAAE,EAAE,MAAM,CAAC,UAAU,GAAG,YAAY,CAE5E;AAED;;;;;;;;;GASG;AACH,wBAAsB,yBAAyB,CAC7C,OAAO,EAAE,YAAY,EAAE,EACvB,MAAM,EAAE,CAAC,GAAG,EAAE,YAAY,KAAK,OAAO,CAAC,UAAU,GAAG,IAAI,CAAC,GACxD,OAAO,CAAC,UAAU,GAAG,IAAI,CAAC,CA4D5B"}
@@ -1,4 +1,7 @@
1
+ import { SLOTS_PER_EPOCH } from "@lodestar/params";
1
2
  import { ssz } from "@lodestar/types";
3
+ import { MapDef } from "@lodestar/utils";
4
+ import { getLastProcessedSlotFromBeaconStateSerialized, getSlotFromBeaconStateSerialized, } from "../../../util/sszBytes.js";
2
5
  /**
3
6
  * Implementation of CPStateDatastore using db.
4
7
  */
@@ -18,6 +21,12 @@ export class DbCPStateDatastore {
18
21
  async read(serializedCheckpoint) {
19
22
  return this.db.checkpointState.getBinary(serializedCheckpoint);
20
23
  }
24
+ async readLatestSafe() {
25
+ const allKeys = await this.readKeys();
26
+ if (allKeys.length === 0)
27
+ return null;
28
+ return getLatestSafeDatastoreKey(allKeys, this.read.bind(this));
29
+ }
21
30
  async readKeys() {
22
31
  return this.db.checkpointState.keys();
23
32
  }
@@ -28,4 +37,65 @@ export function datastoreKeyToCheckpoint(key) {
28
37
  export function checkpointToDatastoreKey(cp) {
29
38
  return ssz.phase0.Checkpoint.serialize(cp);
30
39
  }
40
+ /**
41
+ * Get the latest safe checkpoint state the node can use to boot from
42
+ * - it should be the checkpoint state that's unique in its epoch
43
+ * - its last processed block slot should be at epoch boundary or last slot of previous epoch
44
+ * - state slot should be at epoch boundary
45
+ * - state slot should be equal to epoch * SLOTS_PER_EPOCH
46
+ *
47
+ * return the serialized data of Current Root Checkpoint State (CRCS) or Previous Root Checkpoint State (PRCS)
48
+ *
49
+ */
50
+ export async function getLatestSafeDatastoreKey(allKeys, readFn) {
51
+ const checkpointsByEpoch = new MapDef(() => []);
52
+ for (const key of allKeys) {
53
+ const cp = datastoreKeyToCheckpoint(key);
54
+ checkpointsByEpoch.getOrDefault(cp.epoch).push(key);
55
+ }
56
+ const dataStoreKeyByEpoch = new Map();
57
+ for (const [epoch, keys] of checkpointsByEpoch.entries()) {
58
+ // only consider epochs with a single checkpoint to avoid ambiguity from forks
59
+ if (keys.length === 1) {
60
+ dataStoreKeyByEpoch.set(epoch, keys[0]);
61
+ }
62
+ }
63
+ const epochsDesc = Array.from(dataStoreKeyByEpoch.keys()).sort((a, b) => b - a);
64
+ for (const epoch of epochsDesc) {
65
+ const datastoreKey = dataStoreKeyByEpoch.get(epoch);
66
+ if (datastoreKey == null) {
67
+ // should not happen
68
+ continue;
69
+ }
70
+ const stateBytes = await readFn(datastoreKey);
71
+ if (stateBytes == null) {
72
+ // should not happen
73
+ continue;
74
+ }
75
+ const lastProcessedSlot = getLastProcessedSlotFromBeaconStateSerialized(stateBytes);
76
+ if (lastProcessedSlot == null) {
77
+ // cannot extract last processed slot from serialized state, skip
78
+ continue;
79
+ }
80
+ const stateSlot = getSlotFromBeaconStateSerialized(stateBytes);
81
+ if (stateSlot == null) {
82
+ // cannot extract slot from serialized state, skip
83
+ continue;
84
+ }
85
+ if (lastProcessedSlot !== stateSlot && lastProcessedSlot !== stateSlot - 1) {
86
+ // not CRCS or PRCS, skip
87
+ continue;
88
+ }
89
+ if (stateSlot % SLOTS_PER_EPOCH !== 0) {
90
+ // not at epoch boundary, skip
91
+ continue;
92
+ }
93
+ if (stateSlot !== SLOTS_PER_EPOCH * epoch) {
94
+ // should not happen after above checks, but just to be safe
95
+ continue;
96
+ }
97
+ return stateBytes;
98
+ }
99
+ return null;
100
+ }
31
101
  //# sourceMappingURL=db.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"db.js","sourceRoot":"","sources":["../../../../src/chain/stateCache/datastore/db.ts"],"names":[],"mappings":"AAAA,OAAO,EAAS,GAAG,EAAC,MAAM,iBAAiB,CAAC;AAI5C;;GAEG;AACH,MAAM,OAAO,kBAAkB;IACA;IAA7B,YAA6B,EAAa;QAAb,OAAE,GAAF,EAAE,CAAW;IAAG,CAAC;IAE9C,KAAK,CAAC,KAAK,CAAC,KAAwB,EAAE,UAAsB;QAC1D,MAAM,oBAAoB,GAAG,wBAAwB,CAAC,KAAK,CAAC,CAAC;QAC7D,MAAM,IAAI,CAAC,EAAE,CAAC,eAAe,CAAC,SAAS,CAAC,oBAAoB,EAAE,UAAU,CAAC,CAAC;QAC1E,OAAO,oBAAoB,CAAC;IAC9B,CAAC;IAED,KAAK,CAAC,MAAM,CAAC,oBAAkC;QAC7C,MAAM,IAAI,CAAC,EAAE,CAAC,eAAe,CAAC,MAAM,CAAC,oBAAoB,CAAC,CAAC;IAC7D,CAAC;IAED,KAAK,CAAC,IAAI,CAAC,oBAAkC;QAC3C,OAAO,IAAI,CAAC,EAAE,CAAC,eAAe,CAAC,SAAS,CAAC,oBAAoB,CAAC,CAAC;IACjE,CAAC;IAED,KAAK,CAAC,QAAQ;QACZ,OAAO,IAAI,CAAC,EAAE,CAAC,eAAe,CAAC,IAAI,EAAE,CAAC;IACxC,CAAC;CACF;AAED,MAAM,UAAU,wBAAwB,CAAC,GAAiB;IACxD,OAAO,GAAG,CAAC,MAAM,CAAC,UAAU,CAAC,WAAW,CAAC,GAAG,CAAC,CAAC;AAChD,CAAC;AAED,MAAM,UAAU,wBAAwB,CAAC,EAAqB;IAC5D,OAAO,GAAG,CAAC,MAAM,CAAC,UAAU,CAAC,SAAS,CAAC,EAAE,CAAC,CAAC;AAC7C,CAAC"}
1
+ {"version":3,"file":"db.js","sourceRoot":"","sources":["../../../../src/chain/stateCache/datastore/db.ts"],"names":[],"mappings":"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"}
@@ -10,6 +10,7 @@ export declare class FileCPStateDatastore implements CPStateDatastore {
10
10
  write(cpKey: phase0.Checkpoint, stateBytes: Uint8Array): Promise<DatastoreKey>;
11
11
  remove(serializedCheckpoint: DatastoreKey): Promise<void>;
12
12
  read(serializedCheckpoint: DatastoreKey): Promise<Uint8Array | null>;
13
+ readLatestSafe(): Promise<Uint8Array | null>;
13
14
  readKeys(): Promise<DatastoreKey[]>;
14
15
  }
15
16
  //# sourceMappingURL=file.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"file.d.ts","sourceRoot":"","sources":["../../../../src/chain/stateCache/datastore/file.ts"],"names":[],"mappings":"AACA,OAAO,EAAC,MAAM,EAAM,MAAM,iBAAiB,CAAC;AAG5C,OAAO,EAAC,gBAAgB,EAAE,YAAY,EAAC,MAAM,YAAY,CAAC;AAK1D;;GAEG;AACH,qBAAa,oBAAqB,YAAW,gBAAgB;IAC3D,OAAO,CAAC,QAAQ,CAAC,UAAU,CAAS;gBAExB,OAAO,EAAE,MAAM;IAMrB,IAAI,IAAI,OAAO,CAAC,IAAI,CAAC;IAQrB,KAAK,CAAC,KAAK,EAAE,MAAM,CAAC,UAAU,EAAE,UAAU,EAAE,UAAU,GAAG,OAAO,CAAC,YAAY,CAAC;IAO9E,MAAM,CAAC,oBAAoB,EAAE,YAAY,GAAG,OAAO,CAAC,IAAI,CAAC;IAKzD,IAAI,CAAC,oBAAoB,EAAE,YAAY,GAAG,OAAO,CAAC,UAAU,GAAG,IAAI,CAAC;IAKpE,QAAQ,IAAI,OAAO,CAAC,YAAY,EAAE,CAAC;CAM1C"}
1
+ {"version":3,"file":"file.d.ts","sourceRoot":"","sources":["../../../../src/chain/stateCache/datastore/file.ts"],"names":[],"mappings":"AACA,OAAO,EAAC,MAAM,EAAM,MAAM,iBAAiB,CAAC;AAI5C,OAAO,EAAC,gBAAgB,EAAE,YAAY,EAAC,MAAM,YAAY,CAAC;AAK1D;;GAEG;AACH,qBAAa,oBAAqB,YAAW,gBAAgB;IAC3D,OAAO,CAAC,QAAQ,CAAC,UAAU,CAAS;gBAExB,OAAO,EAAE,MAAM;IAMrB,IAAI,IAAI,OAAO,CAAC,IAAI,CAAC;IAQrB,KAAK,CAAC,KAAK,EAAE,MAAM,CAAC,UAAU,EAAE,UAAU,EAAE,UAAU,GAAG,OAAO,CAAC,YAAY,CAAC;IAO9E,MAAM,CAAC,oBAAoB,EAAE,YAAY,GAAG,OAAO,CAAC,IAAI,CAAC;IAKzD,IAAI,CAAC,oBAAoB,EAAE,YAAY,GAAG,OAAO,CAAC,UAAU,GAAG,IAAI,CAAC;IAKpE,cAAc,IAAI,OAAO,CAAC,UAAU,GAAG,IAAI,CAAC;IAO5C,QAAQ,IAAI,OAAO,CAAC,YAAY,EAAE,CAAC;CAM1C"}
@@ -2,6 +2,7 @@ import path from "node:path";
2
2
  import { ssz } from "@lodestar/types";
3
3
  import { fromHex, toHex } from "@lodestar/utils";
4
4
  import { ensureDir, readFile, readFileNames, removeFile, writeIfNotExist } from "../../../util/file.js";
5
+ import { getLatestSafeDatastoreKey } from "./db.js";
5
6
  const CHECKPOINT_STATES_FOLDER = "checkpoint_states";
6
7
  const CHECKPOINT_FILE_NAME_LENGTH = 82;
7
8
  /**
@@ -36,6 +37,12 @@ export class FileCPStateDatastore {
36
37
  const filePath = path.join(this.folderPath, toHex(serializedCheckpoint));
37
38
  return readFile(filePath);
38
39
  }
40
+ async readLatestSafe() {
41
+ const allKeys = await this.readKeys();
42
+ if (allKeys.length === 0)
43
+ return null;
44
+ return getLatestSafeDatastoreKey(allKeys, this.read.bind(this));
45
+ }
39
46
  async readKeys() {
40
47
  const fileNames = await readFileNames(this.folderPath);
41
48
  return fileNames
@@ -1 +1 @@
1
- {"version":3,"file":"file.js","sourceRoot":"","sources":["../../../../src/chain/stateCache/datastore/file.ts"],"names":[],"mappings":"AAAA,OAAO,IAAI,MAAM,WAAW,CAAC;AAC7B,OAAO,EAAS,GAAG,EAAC,MAAM,iBAAiB,CAAC;AAC5C,OAAO,EAAC,OAAO,EAAE,KAAK,EAAC,MAAM,iBAAiB,CAAC;AAC/C,OAAO,EAAC,SAAS,EAAE,QAAQ,EAAE,aAAa,EAAE,UAAU,EAAE,eAAe,EAAC,MAAM,uBAAuB,CAAC;AAGtG,MAAM,wBAAwB,GAAG,mBAAmB,CAAC;AACrD,MAAM,2BAA2B,GAAG,EAAE,CAAC;AAEvC;;GAEG;AACH,MAAM,OAAO,oBAAoB;IACd,UAAU,CAAS;IAEpC,YAAY,OAAe;QACzB,kDAAkD;QAClD,+CAA+C;QAC/C,IAAI,CAAC,UAAU,GAAG,IAAI,CAAC,IAAI,CAAC,OAAO,EAAE,wBAAwB,CAAC,CAAC;IACjE,CAAC;IAED,KAAK,CAAC,IAAI;QACR,IAAI,CAAC;YACH,MAAM,SAAS,CAAC,IAAI,CAAC,UAAU,CAAC,CAAC;QACnC,CAAC;QAAC,OAAO,CAAC,EAAE,CAAC;YACX,aAAa;QACf,CAAC;IACH,CAAC;IAED,KAAK,CAAC,KAAK,CAAC,KAAwB,EAAE,UAAsB;QAC1D,MAAM,oBAAoB,GAAG,GAAG,CAAC,MAAM,CAAC,UAAU,CAAC,SAAS,CAAC,KAAK,CAAC,CAAC;QACpE,MAAM,QAAQ,GAAG,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,UAAU,EAAE,KAAK,CAAC,oBAAoB,CAAC,CAAC,CAAC;QACzE,MAAM,eAAe,CAAC,QAAQ,EAAE,UAAU,CAAC,CAAC;QAC5C,OAAO,oBAAoB,CAAC;IAC9B,CAAC;IAED,KAAK,CAAC,MAAM,CAAC,oBAAkC;QAC7C,MAAM,QAAQ,GAAG,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,UAAU,EAAE,KAAK,CAAC,oBAAoB,CAAC,CAAC,CAAC;QACzE,MAAM,UAAU,CAAC,QAAQ,CAAC,CAAC;IAC7B,CAAC;IAED,KAAK,CAAC,IAAI,CAAC,oBAAkC;QAC3C,MAAM,QAAQ,GAAG,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,UAAU,EAAE,KAAK,CAAC,oBAAoB,CAAC,CAAC,CAAC;QACzE,OAAO,QAAQ,CAAC,QAAQ,CAAC,CAAC;IAC5B,CAAC;IAED,KAAK,CAAC,QAAQ;QACZ,MAAM,SAAS,GAAG,MAAM,aAAa,CAAC,IAAI,CAAC,UAAU,CAAC,CAAC;QACvD,OAAO,SAAS;aACb,MAAM,CAAC,CAAC,QAAQ,EAAE,EAAE,CAAC,QAAQ,CAAC,UAAU,CAAC,IAAI,CAAC,IAAI,QAAQ,CAAC,MAAM,KAAK,2BAA2B,CAAC;aAClG,GAAG,CAAC,CAAC,QAAQ,EAAE,EAAE,CAAC,OAAO,CAAC,QAAQ,CAAC,CAAC,CAAC;IAC1C,CAAC;CACF"}
1
+ {"version":3,"file":"file.js","sourceRoot":"","sources":["../../../../src/chain/stateCache/datastore/file.ts"],"names":[],"mappings":"AAAA,OAAO,IAAI,MAAM,WAAW,CAAC;AAC7B,OAAO,EAAS,GAAG,EAAC,MAAM,iBAAiB,CAAC;AAC5C,OAAO,EAAC,OAAO,EAAE,KAAK,EAAC,MAAM,iBAAiB,CAAC;AAC/C,OAAO,EAAC,SAAS,EAAE,QAAQ,EAAE,aAAa,EAAE,UAAU,EAAE,eAAe,EAAC,MAAM,uBAAuB,CAAC;AACtG,OAAO,EAAC,yBAAyB,EAAC,MAAM,SAAS,CAAC;AAGlD,MAAM,wBAAwB,GAAG,mBAAmB,CAAC;AACrD,MAAM,2BAA2B,GAAG,EAAE,CAAC;AAEvC;;GAEG;AACH,MAAM,OAAO,oBAAoB;IACd,UAAU,CAAS;IAEpC,YAAY,OAAe;QACzB,kDAAkD;QAClD,+CAA+C;QAC/C,IAAI,CAAC,UAAU,GAAG,IAAI,CAAC,IAAI,CAAC,OAAO,EAAE,wBAAwB,CAAC,CAAC;IACjE,CAAC;IAED,KAAK,CAAC,IAAI;QACR,IAAI,CAAC;YACH,MAAM,SAAS,CAAC,IAAI,CAAC,UAAU,CAAC,CAAC;QACnC,CAAC;QAAC,OAAO,CAAC,EAAE,CAAC;YACX,aAAa;QACf,CAAC;IACH,CAAC;IAED,KAAK,CAAC,KAAK,CAAC,KAAwB,EAAE,UAAsB;QAC1D,MAAM,oBAAoB,GAAG,GAAG,CAAC,MAAM,CAAC,UAAU,CAAC,SAAS,CAAC,KAAK,CAAC,CAAC;QACpE,MAAM,QAAQ,GAAG,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,UAAU,EAAE,KAAK,CAAC,oBAAoB,CAAC,CAAC,CAAC;QACzE,MAAM,eAAe,CAAC,QAAQ,EAAE,UAAU,CAAC,CAAC;QAC5C,OAAO,oBAAoB,CAAC;IAC9B,CAAC;IAED,KAAK,CAAC,MAAM,CAAC,oBAAkC;QAC7C,MAAM,QAAQ,GAAG,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,UAAU,EAAE,KAAK,CAAC,oBAAoB,CAAC,CAAC,CAAC;QACzE,MAAM,UAAU,CAAC,QAAQ,CAAC,CAAC;IAC7B,CAAC;IAED,KAAK,CAAC,IAAI,CAAC,oBAAkC;QAC3C,MAAM,QAAQ,GAAG,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,UAAU,EAAE,KAAK,CAAC,oBAAoB,CAAC,CAAC,CAAC;QACzE,OAAO,QAAQ,CAAC,QAAQ,CAAC,CAAC;IAC5B,CAAC;IAED,KAAK,CAAC,cAAc;QAClB,MAAM,OAAO,GAAG,MAAM,IAAI,CAAC,QAAQ,EAAE,CAAC;QACtC,IAAI,OAAO,CAAC,MAAM,KAAK,CAAC;YAAE,OAAO,IAAI,CAAC;QAEtC,OAAO,yBAAyB,CAAC,OAAO,EAAE,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC;IAClE,CAAC;IAED,KAAK,CAAC,QAAQ;QACZ,MAAM,SAAS,GAAG,MAAM,aAAa,CAAC,IAAI,CAAC,UAAU,CAAC,CAAC;QACvD,OAAO,SAAS;aACb,MAAM,CAAC,CAAC,QAAQ,EAAE,EAAE,CAAC,QAAQ,CAAC,UAAU,CAAC,IAAI,CAAC,IAAI,QAAQ,CAAC,MAAM,KAAK,2BAA2B,CAAC;aAClG,GAAG,CAAC,CAAC,QAAQ,EAAE,EAAE,CAAC,OAAO,CAAC,QAAQ,CAAC,CAAC,CAAC;IAC1C,CAAC;CACF"}
@@ -4,6 +4,7 @@ export interface CPStateDatastore {
4
4
  write: (cpKey: phase0.Checkpoint, stateBytes: Uint8Array) => Promise<DatastoreKey>;
5
5
  remove: (key: DatastoreKey) => Promise<void>;
6
6
  read: (key: DatastoreKey) => Promise<Uint8Array | null>;
7
+ readLatestSafe: () => Promise<Uint8Array | null>;
7
8
  readKeys: () => Promise<DatastoreKey[]>;
8
9
  init?: () => Promise<void>;
9
10
  }
@@ -1 +1 @@
1
- {"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../../../src/chain/stateCache/datastore/types.ts"],"names":[],"mappings":"AAAA,OAAO,EAAC,MAAM,EAAC,MAAM,iBAAiB,CAAC;AAGvC,MAAM,MAAM,YAAY,GAAG,UAAU,CAAC;AAGtC,MAAM,WAAW,gBAAgB;IAC/B,KAAK,EAAE,CAAC,KAAK,EAAE,MAAM,CAAC,UAAU,EAAE,UAAU,EAAE,UAAU,KAAK,OAAO,CAAC,YAAY,CAAC,CAAC;IACnF,MAAM,EAAE,CAAC,GAAG,EAAE,YAAY,KAAK,OAAO,CAAC,IAAI,CAAC,CAAC;IAC7C,IAAI,EAAE,CAAC,GAAG,EAAE,YAAY,KAAK,OAAO,CAAC,UAAU,GAAG,IAAI,CAAC,CAAC;IACxD,QAAQ,EAAE,MAAM,OAAO,CAAC,YAAY,EAAE,CAAC,CAAC;IACxC,IAAI,CAAC,EAAE,MAAM,OAAO,CAAC,IAAI,CAAC,CAAC;CAC5B"}
1
+ {"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../../../src/chain/stateCache/datastore/types.ts"],"names":[],"mappings":"AAAA,OAAO,EAAC,MAAM,EAAC,MAAM,iBAAiB,CAAC;AAGvC,MAAM,MAAM,YAAY,GAAG,UAAU,CAAC;AAGtC,MAAM,WAAW,gBAAgB;IAC/B,KAAK,EAAE,CAAC,KAAK,EAAE,MAAM,CAAC,UAAU,EAAE,UAAU,EAAE,UAAU,KAAK,OAAO,CAAC,YAAY,CAAC,CAAC;IACnF,MAAM,EAAE,CAAC,GAAG,EAAE,YAAY,KAAK,OAAO,CAAC,IAAI,CAAC,CAAC;IAC7C,IAAI,EAAE,CAAC,GAAG,EAAE,YAAY,KAAK,OAAO,CAAC,UAAU,GAAG,IAAI,CAAC,CAAC;IACxD,cAAc,EAAE,MAAM,OAAO,CAAC,UAAU,GAAG,IAAI,CAAC,CAAC;IACjD,QAAQ,EAAE,MAAM,OAAO,CAAC,YAAY,EAAE,CAAC,CAAC;IACxC,IAAI,CAAC,EAAE,MAAM,OAAO,CAAC,IAAI,CAAC,CAAC;CAC5B"}
@@ -1 +1 @@
1
- {"version":3,"file":"dataColumnSidecar.d.ts","sourceRoot":"","sources":["../../../src/chain/validation/dataColumnSidecar.ts"],"names":[],"mappings":"AAAA,OAAO,EAAC,WAAW,EAAC,MAAM,kBAAkB,CAAC;AAO7C,OAAO,EAAC,IAAI,EAAE,IAAI,EAAE,QAAQ,EAAE,IAAI,EAAM,MAAM,iBAAiB,CAAC;AAEhE,OAAO,EAAC,OAAO,EAAC,MAAM,0BAA0B,CAAC;AAQjD,OAAO,EAAC,YAAY,EAAC,MAAM,iBAAiB,CAAC;AAK7C,wBAAsB,+BAA+B,CACnD,KAAK,EAAE,YAAY,EACnB,iBAAiB,EAAE,IAAI,CAAC,iBAAiB,EACzC,YAAY,EAAE,QAAQ,EACtB,OAAO,EAAE,OAAO,GAAG,IAAI,GACtB,OAAO,CAAC,IAAI,CAAC,CAyJf;AAoCD;;;GAGG;AACH,wBAAsB,gCAAgC,CACpD,WAAW,EAAE,UAAU,EAAE,EACzB,WAAW,EAAE,MAAM,EAAE,EACrB,KAAK,EAAE,UAAU,EAAE,EACnB,MAAM,EAAE,UAAU,EAAE,GACnB,OAAO,CAAC,IAAI,CAAC,CAWf;AAED;;;GAGG;AACH,wBAAgB,qCAAqC,CAAC,iBAAiB,EAAE,IAAI,CAAC,iBAAiB,GAAG,OAAO,CAQxG;AAED;;;;GAIG;AACH,wBAAsB,+BAA+B,CACnD,SAAS,EAAE,IAAI,EACf,SAAS,EAAE,IAAI,EACf,cAAc,EAAE,MAAM,EACtB,kBAAkB,EAAE,IAAI,CAAC,kBAAkB,GAC1C,OAAO,CAAC,IAAI,CAAC,CA2Gf;AAED;;;GAGG;AACH,wBAAgB,iCAAiC,CAC/C,MAAM,EAAE,WAAW,EACnB,aAAa,EAAE,IAAI,CAAC,iBAAiB,GACpC,QAAQ,CAEV"}
1
+ {"version":3,"file":"dataColumnSidecar.d.ts","sourceRoot":"","sources":["../../../src/chain/validation/dataColumnSidecar.ts"],"names":[],"mappings":"AAAA,OAAO,EAAC,WAAW,EAAkB,MAAM,kBAAkB,CAAC;AAW9D,OAAO,EAAC,IAAI,EAAE,IAAI,EAAE,QAAQ,EAAE,IAAI,EAAM,MAAM,iBAAiB,CAAC;AAEhE,OAAO,EAAC,OAAO,EAAC,MAAM,0BAA0B,CAAC;AAQjD,OAAO,EAAC,YAAY,EAAC,MAAM,iBAAiB,CAAC;AAK7C,wBAAsB,+BAA+B,CACnD,KAAK,EAAE,YAAY,EACnB,iBAAiB,EAAE,IAAI,CAAC,iBAAiB,EACzC,YAAY,EAAE,QAAQ,EACtB,OAAO,EAAE,OAAO,GAAG,IAAI,GACtB,OAAO,CAAC,IAAI,CAAC,CAyJf;AAiDD;;;GAGG;AACH,wBAAsB,gCAAgC,CACpD,WAAW,EAAE,UAAU,EAAE,EACzB,WAAW,EAAE,MAAM,EAAE,EACrB,KAAK,EAAE,UAAU,EAAE,EACnB,MAAM,EAAE,UAAU,EAAE,GACnB,OAAO,CAAC,IAAI,CAAC,CAWf;AAED;;;GAGG;AACH,wBAAgB,qCAAqC,CAAC,iBAAiB,EAAE,IAAI,CAAC,iBAAiB,GAAG,OAAO,CAQxG;AAED;;;;GAIG;AACH,wBAAsB,+BAA+B,CACnD,SAAS,EAAE,IAAI,EACf,SAAS,EAAE,IAAI,EACf,cAAc,EAAE,MAAM,EACtB,kBAAkB,EAAE,IAAI,CAAC,kBAAkB,GAC1C,OAAO,CAAC,IAAI,CAAC,CA2Gf;AAED;;;GAGG;AACH,wBAAgB,iCAAiC,CAC/C,MAAM,EAAE,WAAW,EACnB,aAAa,EAAE,IAAI,CAAC,iBAAiB,GACpC,QAAQ,CAEV"}
@@ -1,5 +1,5 @@
1
1
  import { KZG_COMMITMENTS_INCLUSION_PROOF_DEPTH, KZG_COMMITMENTS_SUBTREE_INDEX, NUMBER_OF_COLUMNS, } from "@lodestar/params";
2
- import { computeStartSlotAtEpoch, getBlockHeaderProposerSignatureSet } from "@lodestar/state-transition";
2
+ import { computeEpochAtSlot, computeStartSlotAtEpoch, getBlockHeaderProposerSignatureSet, } from "@lodestar/state-transition";
3
3
  import { ssz } from "@lodestar/types";
4
4
  import { toRootHex, verifyMerkleBranch } from "@lodestar/utils";
5
5
  import { kzg } from "../../util/kzg.js";
@@ -11,7 +11,7 @@ import { RegenCaller } from "../regen/interface.js";
11
11
  export async function validateGossipDataColumnSidecar(chain, dataColumnSidecar, gossipSubnet, metrics) {
12
12
  const blockHeader = dataColumnSidecar.signedBlockHeader.message;
13
13
  // 1) [REJECT] The sidecar is valid as verified by verify_data_column_sidecar
14
- verifyDataColumnSidecar(dataColumnSidecar);
14
+ verifyDataColumnSidecar(chain.config, dataColumnSidecar);
15
15
  // 2) [REJECT] The sidecar is for the correct subnet -- i.e. compute_subnet_for_data_column_sidecar(sidecar.index) == subnet_id
16
16
  if (computeSubnetForDataColumnSidecar(chain.config, dataColumnSidecar) !== gossipSubnet) {
17
17
  throw new DataColumnSidecarGossipError(GossipAction.REJECT, {
@@ -146,7 +146,7 @@ export async function validateGossipDataColumnSidecar(chain, dataColumnSidecar,
146
146
  * SPEC FUNCTION
147
147
  * https://github.com/ethereum/consensus-specs/blob/v1.6.0-alpha.4/specs/fulu/p2p-interface.md#verify_data_column_sidecar
148
148
  */
149
- function verifyDataColumnSidecar(dataColumnSidecar) {
149
+ function verifyDataColumnSidecar(config, dataColumnSidecar) {
150
150
  if (dataColumnSidecar.index >= NUMBER_OF_COLUMNS) {
151
151
  throw new DataColumnSidecarGossipError(GossipAction.REJECT, {
152
152
  code: DataColumnSidecarErrorCode.INVALID_INDEX,
@@ -161,6 +161,17 @@ function verifyDataColumnSidecar(dataColumnSidecar) {
161
161
  columnIdx: dataColumnSidecar.index,
162
162
  });
163
163
  }
164
+ const epoch = computeEpochAtSlot(dataColumnSidecar.signedBlockHeader.message.slot);
165
+ const maxBlobsPerBlock = config.getMaxBlobsPerBlock(epoch);
166
+ if (dataColumnSidecar.kzgCommitments.length > maxBlobsPerBlock) {
167
+ throw new DataColumnSidecarGossipError(GossipAction.REJECT, {
168
+ code: DataColumnSidecarErrorCode.TOO_MANY_KZG_COMMITMENTS,
169
+ slot: dataColumnSidecar.signedBlockHeader.message.slot,
170
+ columnIdx: dataColumnSidecar.index,
171
+ count: dataColumnSidecar.kzgCommitments.length,
172
+ limit: maxBlobsPerBlock,
173
+ });
174
+ }
164
175
  if (dataColumnSidecar.column.length !== dataColumnSidecar.kzgCommitments.length ||
165
176
  dataColumnSidecar.column.length !== dataColumnSidecar.kzgProofs.length) {
166
177
  throw new DataColumnSidecarGossipError(GossipAction.REJECT, {
@@ -1 +1 @@
1
- {"version":3,"file":"dataColumnSidecar.js","sourceRoot":"","sources":["../../../src/chain/validation/dataColumnSidecar.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"dataColumnSidecar.js","sourceRoot":"","sources":["../../../src/chain/validation/dataColumnSidecar.ts"],"names":[],"mappings":"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"}
package/lib/index.d.ts CHANGED
@@ -1,6 +1,8 @@
1
1
  export type { RestApiServerMetrics, RestApiServerModules, RestApiServerOpts } from "./api/rest/base.js";
2
2
  export { RestApiServer } from "./api/rest/base.js";
3
3
  export { checkAndPersistAnchorState, initStateFromDb, initStateFromEth1 } from "./chain/index.js";
4
+ export { DbCPStateDatastore } from "./chain/stateCache/datastore/db.js";
5
+ export { FileCPStateDatastore } from "./chain/stateCache/datastore/file.js";
4
6
  export { BeaconDb, type IBeaconDb } from "./db/index.js";
5
7
  export { Eth1Provider, type IEth1Provider } from "./eth1/index.js";
6
8
  export { type HttpMetricsServer, RegistryMetricCreator, collectNodeJSMetrics, getHttpMetricsServer, } from "./metrics/index.js";
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAEA,YAAY,EAAC,oBAAoB,EAAE,oBAAoB,EAAE,iBAAiB,EAAC,MAAM,oBAAoB,CAAC;AACtG,OAAO,EAAC,aAAa,EAAC,MAAM,oBAAoB,CAAC;AACjD,OAAO,EAAC,0BAA0B,EAAE,eAAe,EAAE,iBAAiB,EAAC,MAAM,kBAAkB,CAAC;AAChG,OAAO,EAAC,QAAQ,EAAE,KAAK,SAAS,EAAC,MAAM,eAAe,CAAC;AACvD,OAAO,EAAC,YAAY,EAAE,KAAK,aAAa,EAAC,MAAM,iBAAiB,CAAC;AAEjE,OAAO,EACL,KAAK,iBAAiB,EACtB,qBAAqB,EACrB,oBAAoB,EACpB,oBAAoB,GACrB,MAAM,oBAAoB,CAAC;AAE5B,OAAO,EAAC,iBAAiB,EAAC,MAAM,uBAAuB,CAAC;AACxD,OAAO,EAAC,KAAK,gBAAgB,EAAE,kBAAkB,EAAC,MAAM,oBAAoB,CAAC;AAC7E,cAAc,iBAAiB,CAAC;AAEhC,OAAO,EAAC,qBAAqB,EAAE,qBAAqB,EAAC,MAAM,qBAAqB,CAAC"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAEA,YAAY,EAAC,oBAAoB,EAAE,oBAAoB,EAAE,iBAAiB,EAAC,MAAM,oBAAoB,CAAC;AACtG,OAAO,EAAC,aAAa,EAAC,MAAM,oBAAoB,CAAC;AACjD,OAAO,EAAC,0BAA0B,EAAE,eAAe,EAAE,iBAAiB,EAAC,MAAM,kBAAkB,CAAC;AAChG,OAAO,EAAC,kBAAkB,EAAC,MAAM,oCAAoC,CAAC;AACtE,OAAO,EAAC,oBAAoB,EAAC,MAAM,sCAAsC,CAAC;AAC1E,OAAO,EAAC,QAAQ,EAAE,KAAK,SAAS,EAAC,MAAM,eAAe,CAAC;AACvD,OAAO,EAAC,YAAY,EAAE,KAAK,aAAa,EAAC,MAAM,iBAAiB,CAAC;AAEjE,OAAO,EACL,KAAK,iBAAiB,EACtB,qBAAqB,EACrB,oBAAoB,EACpB,oBAAoB,GACrB,MAAM,oBAAoB,CAAC;AAE5B,OAAO,EAAC,iBAAiB,EAAC,MAAM,uBAAuB,CAAC;AACxD,OAAO,EAAC,KAAK,gBAAgB,EAAE,kBAAkB,EAAC,MAAM,oBAAoB,CAAC;AAC7E,cAAc,iBAAiB,CAAC;AAEhC,OAAO,EAAC,qBAAqB,EAAE,qBAAqB,EAAC,MAAM,qBAAqB,CAAC"}
package/lib/index.js CHANGED
@@ -1,6 +1,8 @@
1
1
  // Export generic RestApi server for CLI
2
2
  export { RestApiServer } from "./api/rest/base.js";
3
3
  export { checkAndPersistAnchorState, initStateFromDb, initStateFromEth1 } from "./chain/index.js";
4
+ export { DbCPStateDatastore } from "./chain/stateCache/datastore/db.js";
5
+ export { FileCPStateDatastore } from "./chain/stateCache/datastore/file.js";
4
6
  export { BeaconDb } from "./db/index.js";
5
7
  export { Eth1Provider } from "./eth1/index.js";
6
8
  // Export metrics utilities to de-duplicate validator metrics
package/lib/index.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,wCAAwC;AAGxC,OAAO,EAAC,aAAa,EAAC,MAAM,oBAAoB,CAAC;AACjD,OAAO,EAAC,0BAA0B,EAAE,eAAe,EAAE,iBAAiB,EAAC,MAAM,kBAAkB,CAAC;AAChG,OAAO,EAAC,QAAQ,EAAiB,MAAM,eAAe,CAAC;AACvD,OAAO,EAAC,YAAY,EAAqB,MAAM,iBAAiB,CAAC;AACjE,6DAA6D;AAC7D,OAAO,EAEL,qBAAqB,EACrB,oBAAoB,EACpB,oBAAoB,GACrB,MAAM,oBAAoB,CAAC;AAC5B,2DAA2D;AAC3D,OAAO,EAAC,iBAAiB,EAAC,MAAM,uBAAuB,CAAC;AACxD,OAAO,EAAwB,kBAAkB,EAAC,MAAM,oBAAoB,CAAC;AAC7E,cAAc,iBAAiB,CAAC;AAChC,oEAAoE;AACpE,OAAO,EAAC,qBAAqB,EAAE,qBAAqB,EAAC,MAAM,qBAAqB,CAAC"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,wCAAwC;AAGxC,OAAO,EAAC,aAAa,EAAC,MAAM,oBAAoB,CAAC;AACjD,OAAO,EAAC,0BAA0B,EAAE,eAAe,EAAE,iBAAiB,EAAC,MAAM,kBAAkB,CAAC;AAChG,OAAO,EAAC,kBAAkB,EAAC,MAAM,oCAAoC,CAAC;AACtE,OAAO,EAAC,oBAAoB,EAAC,MAAM,sCAAsC,CAAC;AAC1E,OAAO,EAAC,QAAQ,EAAiB,MAAM,eAAe,CAAC;AACvD,OAAO,EAAC,YAAY,EAAqB,MAAM,iBAAiB,CAAC;AACjE,6DAA6D;AAC7D,OAAO,EAEL,qBAAqB,EACrB,oBAAoB,EACpB,oBAAoB,GACrB,MAAM,oBAAoB,CAAC;AAC5B,2DAA2D;AAC3D,OAAO,EAAC,iBAAiB,EAAC,MAAM,uBAAuB,CAAC;AACxD,OAAO,EAAwB,kBAAkB,EAAC,MAAM,oBAAoB,CAAC;AAC7E,cAAc,iBAAiB,CAAC;AAChC,oEAAoE;AACpE,OAAO,EAAC,qBAAqB,EAAE,qBAAqB,EAAC,MAAM,qBAAqB,CAAC"}
@@ -1,5 +1,7 @@
1
1
  /** biome-ignore-all lint/suspicious/noTemplateCurlyInString: The metric templates requires to have `${}` in a normal string */
2
2
  import { NotReorgedReason } from "@lodestar/fork-choice";
3
+ import { ArchiveStoreTask } from "../../chain/archiveStore/archiveStore.js";
4
+ import { FrequencyStateArchiveStep } from "../../chain/archiveStore/strategies/frequencyStateArchiveStrategy.js";
3
5
  import { BlockInputSource } from "../../chain/blocks/blockInput/index.js";
4
6
  import { JobQueueItemType } from "../../chain/bls/index.js";
5
7
  import { AttestationErrorCode, BlockErrorCode } from "../../chain/errors/index.js";
@@ -567,6 +569,14 @@ export declare function createLodestarMetrics(register: RegistryMetricCreator, m
567
569
  createdByBlob: import("@lodestar/utils").GaugeExtra<import("@lodestar/utils").NoLabels>;
568
570
  };
569
571
  };
572
+ processFinalizedCheckpoint: {
573
+ durationByTask: import("@lodestar/utils").Histogram<{
574
+ source: ArchiveStoreTask;
575
+ }>;
576
+ frequencyStateArchive: import("@lodestar/utils").Histogram<{
577
+ step: FrequencyStateArchiveStep;
578
+ }>;
579
+ };
570
580
  regenFnCallTotal: import("@lodestar/utils").GaugeExtra<{
571
581
  entrypoint: RegenFnName;
572
582
  caller: RegenCaller;