@lodestar/beacon-node 1.35.0-dev.8689cc3545 → 1.35.0-dev.8961b06c11

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 (157) hide show
  1. package/lib/api/impl/beacon/blocks/index.d.ts.map +1 -1
  2. package/lib/api/impl/beacon/blocks/index.js +8 -2
  3. package/lib/api/impl/beacon/blocks/index.js.map +1 -1
  4. package/lib/api/impl/lodestar/index.js +1 -1
  5. package/lib/api/impl/lodestar/index.js.map +1 -1
  6. package/lib/api/impl/validator/index.d.ts.map +1 -1
  7. package/lib/api/impl/validator/index.js +22 -26
  8. package/lib/api/impl/validator/index.js.map +1 -1
  9. package/lib/chain/archiveStore/historicalState/worker.js +1 -1
  10. package/lib/chain/archiveStore/historicalState/worker.js.map +1 -1
  11. package/lib/chain/blocks/blockInput/blockInput.d.ts.map +1 -1
  12. package/lib/chain/blocks/blockInput/blockInput.js +3 -2
  13. package/lib/chain/blocks/blockInput/blockInput.js.map +1 -1
  14. package/lib/chain/blocks/importBlock.d.ts.map +1 -1
  15. package/lib/chain/blocks/importBlock.js +7 -6
  16. package/lib/chain/blocks/importBlock.js.map +1 -1
  17. package/lib/chain/blocks/verifyBlocksDataAvailability.d.ts.map +1 -1
  18. package/lib/chain/blocks/verifyBlocksDataAvailability.js +8 -1
  19. package/lib/chain/blocks/verifyBlocksDataAvailability.js.map +1 -1
  20. package/lib/chain/blocks/writeBlockInputToDb.d.ts.map +1 -1
  21. package/lib/chain/blocks/writeBlockInputToDb.js +1 -7
  22. package/lib/chain/blocks/writeBlockInputToDb.js.map +1 -1
  23. package/lib/chain/chain.d.ts.map +1 -1
  24. package/lib/chain/chain.js +3 -4
  25. package/lib/chain/chain.js.map +1 -1
  26. package/lib/chain/emitter.d.ts +2 -2
  27. package/lib/chain/emitter.d.ts.map +1 -1
  28. package/lib/chain/lightClient/index.d.ts +2 -2
  29. package/lib/chain/lightClient/index.d.ts.map +1 -1
  30. package/lib/chain/lightClient/index.js +2 -0
  31. package/lib/chain/lightClient/index.js.map +1 -1
  32. package/lib/chain/opPools/attestationPool.d.ts +2 -3
  33. package/lib/chain/opPools/attestationPool.d.ts.map +1 -1
  34. package/lib/chain/opPools/attestationPool.js +3 -5
  35. package/lib/chain/opPools/attestationPool.js.map +1 -1
  36. package/lib/chain/opPools/syncCommitteeMessagePool.d.ts +3 -2
  37. package/lib/chain/opPools/syncCommitteeMessagePool.d.ts.map +1 -1
  38. package/lib/chain/opPools/syncCommitteeMessagePool.js +6 -5
  39. package/lib/chain/opPools/syncCommitteeMessagePool.js.map +1 -1
  40. package/lib/chain/opPools/types.d.ts +1 -1
  41. package/lib/chain/opPools/types.d.ts.map +1 -1
  42. package/lib/chain/opPools/types.js +1 -1
  43. package/lib/chain/opPools/types.js.map +1 -1
  44. package/lib/chain/prepareNextSlot.d.ts +3 -3
  45. package/lib/chain/prepareNextSlot.d.ts.map +1 -1
  46. package/lib/chain/prepareNextSlot.js +8 -8
  47. package/lib/chain/prepareNextSlot.js.map +1 -1
  48. package/lib/chain/produceBlock/produceBlockBody.d.ts.map +1 -1
  49. package/lib/chain/produceBlock/produceBlockBody.js +10 -2
  50. package/lib/chain/produceBlock/produceBlockBody.js.map +1 -1
  51. package/lib/chain/regen/interface.d.ts +1 -0
  52. package/lib/chain/regen/interface.d.ts.map +1 -1
  53. package/lib/chain/regen/interface.js +1 -0
  54. package/lib/chain/regen/interface.js.map +1 -1
  55. package/lib/chain/seenCache/seenGossipBlockInput.d.ts.map +1 -1
  56. package/lib/chain/seenCache/seenGossipBlockInput.js +8 -1
  57. package/lib/chain/seenCache/seenGossipBlockInput.js.map +1 -1
  58. package/lib/chain/stateCache/persistentCheckpointsCache.d.ts.map +1 -1
  59. package/lib/chain/stateCache/persistentCheckpointsCache.js +9 -8
  60. package/lib/chain/stateCache/persistentCheckpointsCache.js.map +1 -1
  61. package/lib/chain/validation/dataColumnSidecar.js +1 -1
  62. package/lib/chain/validation/dataColumnSidecar.js.map +1 -1
  63. package/lib/chain/validation/lightClientFinalityUpdate.d.ts.map +1 -1
  64. package/lib/chain/validation/lightClientFinalityUpdate.js +4 -3
  65. package/lib/chain/validation/lightClientFinalityUpdate.js.map +1 -1
  66. package/lib/chain/validation/lightClientOptimisticUpdate.d.ts +6 -4
  67. package/lib/chain/validation/lightClientOptimisticUpdate.d.ts.map +1 -1
  68. package/lib/chain/validation/lightClientOptimisticUpdate.js +11 -11
  69. package/lib/chain/validation/lightClientOptimisticUpdate.js.map +1 -1
  70. package/lib/chain/validatorMonitor.d.ts.map +1 -1
  71. package/lib/chain/validatorMonitor.js +21 -15
  72. package/lib/chain/validatorMonitor.js.map +1 -1
  73. package/lib/metrics/metrics/lodestar.d.ts +1 -1
  74. package/lib/metrics/metrics/lodestar.js +3 -3
  75. package/lib/metrics/metrics/lodestar.js.map +1 -1
  76. package/lib/network/gossip/gossipsub.js +1 -1
  77. package/lib/network/gossip/gossipsub.js.map +1 -1
  78. package/lib/network/gossip/scoringParameters.js +4 -4
  79. package/lib/network/gossip/scoringParameters.js.map +1 -1
  80. package/lib/network/network.d.ts +1 -1
  81. package/lib/network/network.d.ts.map +1 -1
  82. package/lib/network/network.js +9 -9
  83. package/lib/network/network.js.map +1 -1
  84. package/lib/network/peers/peerManager.d.ts.map +1 -1
  85. package/lib/network/peers/peerManager.js +2 -1
  86. package/lib/network/peers/peerManager.js.map +1 -1
  87. package/lib/network/processor/gossipHandlers.js +1 -1
  88. package/lib/network/processor/gossipHandlers.js.map +1 -1
  89. package/lib/network/processor/index.d.ts +1 -1
  90. package/lib/network/processor/index.d.ts.map +1 -1
  91. package/lib/network/processor/index.js +2 -3
  92. package/lib/network/processor/index.js.map +1 -1
  93. package/lib/network/subnets/attnetsService.d.ts.map +1 -1
  94. package/lib/network/subnets/attnetsService.js +1 -1
  95. package/lib/network/subnets/attnetsService.js.map +1 -1
  96. package/lib/node/notifier.js +1 -1
  97. package/lib/node/notifier.js.map +1 -1
  98. package/lib/sync/types.d.ts +0 -1
  99. package/lib/sync/types.d.ts.map +1 -1
  100. package/lib/sync/types.js.map +1 -1
  101. package/lib/sync/unknownBlock.d.ts +0 -1
  102. package/lib/sync/unknownBlock.d.ts.map +1 -1
  103. package/lib/sync/unknownBlock.js +18 -20
  104. package/lib/sync/unknownBlock.js.map +1 -1
  105. package/lib/sync/utils/downloadByRange.d.ts +2 -1
  106. package/lib/sync/utils/downloadByRange.d.ts.map +1 -1
  107. package/lib/sync/utils/downloadByRange.js +8 -3
  108. package/lib/sync/utils/downloadByRange.js.map +1 -1
  109. package/lib/sync/utils/downloadByRoot.d.ts.map +1 -1
  110. package/lib/sync/utils/downloadByRoot.js +2 -1
  111. package/lib/sync/utils/downloadByRoot.js.map +1 -1
  112. package/lib/util/clock.d.ts +8 -3
  113. package/lib/util/clock.d.ts.map +1 -1
  114. package/lib/util/clock.js +8 -5
  115. package/lib/util/clock.js.map +1 -1
  116. package/lib/util/dataColumns.d.ts.map +1 -1
  117. package/lib/util/dataColumns.js +4 -2
  118. package/lib/util/dataColumns.js.map +1 -1
  119. package/package.json +14 -14
  120. package/src/api/impl/beacon/blocks/index.ts +11 -2
  121. package/src/api/impl/lodestar/index.ts +1 -1
  122. package/src/api/impl/validator/index.ts +25 -28
  123. package/src/chain/archiveStore/historicalState/worker.ts +1 -1
  124. package/src/chain/blocks/blockInput/blockInput.ts +7 -4
  125. package/src/chain/blocks/importBlock.ts +8 -12
  126. package/src/chain/blocks/verifyBlocksDataAvailability.ts +10 -2
  127. package/src/chain/blocks/writeBlockInputToDb.ts +1 -9
  128. package/src/chain/chain.ts +3 -14
  129. package/src/chain/emitter.ts +2 -2
  130. package/src/chain/lightClient/index.ts +11 -3
  131. package/src/chain/opPools/attestationPool.ts +2 -3
  132. package/src/chain/opPools/syncCommitteeMessagePool.ts +5 -3
  133. package/src/chain/opPools/types.ts +1 -1
  134. package/src/chain/prepareNextSlot.ts +8 -8
  135. package/src/chain/produceBlock/produceBlockBody.ts +13 -3
  136. package/src/chain/regen/interface.ts +1 -0
  137. package/src/chain/seenCache/seenGossipBlockInput.ts +10 -2
  138. package/src/chain/stateCache/persistentCheckpointsCache.ts +10 -8
  139. package/src/chain/validation/dataColumnSidecar.ts +1 -1
  140. package/src/chain/validation/lightClientFinalityUpdate.ts +4 -3
  141. package/src/chain/validation/lightClientOptimisticUpdate.ts +12 -11
  142. package/src/chain/validatorMonitor.ts +28 -17
  143. package/src/metrics/metrics/lodestar.ts +3 -3
  144. package/src/network/gossip/gossipsub.ts +1 -1
  145. package/src/network/gossip/scoringParameters.ts +4 -4
  146. package/src/network/network.ts +9 -9
  147. package/src/network/peers/peerManager.ts +2 -1
  148. package/src/network/processor/gossipHandlers.ts +1 -1
  149. package/src/network/processor/index.ts +2 -3
  150. package/src/network/subnets/attnetsService.ts +3 -6
  151. package/src/node/notifier.ts +1 -1
  152. package/src/sync/types.ts +0 -2
  153. package/src/sync/unknownBlock.ts +19 -21
  154. package/src/sync/utils/downloadByRange.ts +12 -6
  155. package/src/sync/utils/downloadByRoot.ts +12 -4
  156. package/src/util/clock.ts +14 -6
  157. package/src/util/dataColumns.ts +11 -2
package/src/util/clock.ts CHANGED
@@ -9,12 +9,12 @@ import {MAXIMUM_GOSSIP_CLOCK_DISPARITY} from "../constants/constants.js";
9
9
  export enum ClockEvent {
10
10
  /**
11
11
  * This event signals the start of a new slot, and that subsequent calls to `clock.currentSlot` will equal `slot`.
12
- * This event is guaranteed to be emitted every `SECONDS_PER_SLOT` seconds.
12
+ * This event is guaranteed to be emitted every `SLOT_DURATION_MS` milliseconds.
13
13
  */
14
14
  slot = "clock:slot",
15
15
  /**
16
16
  * This event signals the start of a new epoch, and that subsequent calls to `clock.currentEpoch` will return `epoch`.
17
- * This event is guaranteed to be emitted every `SECONDS_PER_SLOT * SLOTS_PER_EPOCH` seconds.
17
+ * This event is guaranteed to be emitted every `SLOT_DURATION_MS * SLOTS_PER_EPOCH` milliseconds.
18
18
  */
19
19
  epoch = "clock:epoch",
20
20
  }
@@ -29,7 +29,7 @@ export type ClockEvents = {
29
29
  *
30
30
  * The time is dependent on:
31
31
  * - `state.genesisTime` - the genesis time
32
- * - `SECONDS_PER_SLOT` - # of seconds per slot
32
+ * - `SLOT_DURATION_MS` - # of milliseconds per slot
33
33
  * - `SLOTS_PER_EPOCH` - # of slots per epoch
34
34
  */
35
35
  export type IClock = StrictEventEmitter<EventEmitter, ClockEvents> & {
@@ -58,6 +58,10 @@ export type IClock = StrictEventEmitter<EventEmitter, ClockEvents> & {
58
58
  * Return second from a slot to either toSec or now.
59
59
  */
60
60
  secFromSlot(slot: Slot, toSec?: number): number;
61
+ /**
62
+ * Return milliseconds from a slot to either toMs or now.
63
+ */
64
+ msFromSlot(slot: Slot, toMs?: number): number;
61
65
  };
62
66
 
63
67
  /**
@@ -170,12 +174,16 @@ export class Clock extends EventEmitter implements IClock {
170
174
  }
171
175
 
172
176
  secFromSlot(slot: Slot, toSec = Date.now() / 1000): number {
173
- return toSec - (this.genesisTime + slot * this.config.SECONDS_PER_SLOT);
177
+ return toSec - computeTimeAtSlot(this.config, slot, this.genesisTime);
178
+ }
179
+
180
+ msFromSlot(slot: Slot, toMs = Date.now()): number {
181
+ return toMs - computeTimeAtSlot(this.config, slot, this.genesisTime) * 1000;
174
182
  }
175
183
 
176
184
  private onNextSlot = (slot?: Slot): void => {
177
185
  const clockSlot = slot ?? getCurrentSlot(this.config, this.genesisTime);
178
- // process multiple clock slots in the case the main thread has been saturated for > SECONDS_PER_SLOT
186
+ // process multiple clock slots in the case the main thread has been saturated for > SLOT_DURATION_MS
179
187
  while (this._currentSlot < clockSlot && !this.signal.aborted) {
180
188
  const previousSlot = this._currentSlot;
181
189
  this._currentSlot++;
@@ -197,7 +205,7 @@ export class Clock extends EventEmitter implements IClock {
197
205
  };
198
206
 
199
207
  private msUntilNextSlot(): number {
200
- const milliSecondsPerSlot = this.config.SECONDS_PER_SLOT * 1000;
208
+ const milliSecondsPerSlot = this.config.SLOT_DURATION_MS;
201
209
  const diffInMilliSeconds = Date.now() - this.genesisTime * 1000;
202
210
  return milliSecondsPerSlot - (diffInMilliSeconds % milliSecondsPerSlot);
203
211
  }
@@ -1,7 +1,14 @@
1
1
  import {digest} from "@chainsafe/as-sha256";
2
2
  import {Tree} from "@chainsafe/persistent-merkle-tree";
3
3
  import {ChainForkConfig} from "@lodestar/config";
4
- import {ForkAll, ForkName, ForkPostFulu, KZG_COMMITMENTS_GINDEX, NUMBER_OF_COLUMNS} from "@lodestar/params";
4
+ import {
5
+ ForkAll,
6
+ ForkName,
7
+ ForkPostFulu,
8
+ ForkPreGloas,
9
+ KZG_COMMITMENTS_GINDEX,
10
+ NUMBER_OF_COLUMNS,
11
+ } from "@lodestar/params";
5
12
  import {signedBlockToSignedHeader} from "@lodestar/state-transition";
6
13
  import {
7
14
  BeaconBlockBody,
@@ -303,7 +310,9 @@ export function getDataColumnSidecarsFromBlock(
303
310
  signedBlock: SignedBeaconBlock<ForkPostFulu>,
304
311
  cellsAndKzgProofs: {cells: Uint8Array[]; proofs: Uint8Array[]}[]
305
312
  ): fulu.DataColumnSidecars {
306
- const blobKzgCommitments = signedBlock.message.body.blobKzgCommitments;
313
+ // TODO GLOAS: Need to get blobKzgCommitments from somewhere else
314
+ const blobKzgCommitments = (signedBlock.message.body as BeaconBlockBody<ForkPostFulu & ForkPreGloas>)
315
+ .blobKzgCommitments;
307
316
 
308
317
  // No need to create data column sidecars if there are no blobs
309
318
  if (blobKzgCommitments.length === 0) {