@lodestar/beacon-node 1.35.0-dev.39be8f0882 → 1.35.0-dev.47470aab65

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 (62) hide show
  1. package/lib/api/impl/beacon/blocks/index.js +1 -1
  2. package/lib/api/impl/beacon/blocks/index.js.map +1 -1
  3. package/lib/api/impl/lodestar/index.js +1 -1
  4. package/lib/api/impl/lodestar/index.js.map +1 -1
  5. package/lib/api/impl/validator/index.d.ts.map +1 -1
  6. package/lib/api/impl/validator/index.js +5 -6
  7. package/lib/api/impl/validator/index.js.map +1 -1
  8. package/lib/chain/blocks/blockInput/blockInput.d.ts.map +1 -1
  9. package/lib/chain/blocks/blockInput/blockInput.js +1 -1
  10. package/lib/chain/blocks/blockInput/blockInput.js.map +1 -1
  11. package/lib/chain/blocks/importBlock.d.ts.map +1 -1
  12. package/lib/chain/blocks/importBlock.js +3 -3
  13. package/lib/chain/blocks/importBlock.js.map +1 -1
  14. package/lib/chain/blocks/verifyBlocksDataAvailability.d.ts.map +1 -1
  15. package/lib/chain/blocks/verifyBlocksDataAvailability.js +8 -1
  16. package/lib/chain/blocks/verifyBlocksDataAvailability.js.map +1 -1
  17. package/lib/chain/blocks/writeBlockInputToDb.d.ts.map +1 -1
  18. package/lib/chain/blocks/writeBlockInputToDb.js +1 -7
  19. package/lib/chain/blocks/writeBlockInputToDb.js.map +1 -1
  20. package/lib/chain/chain.js +1 -1
  21. package/lib/chain/chain.js.map +1 -1
  22. package/lib/chain/validatorMonitor.d.ts.map +1 -1
  23. package/lib/chain/validatorMonitor.js +5 -5
  24. package/lib/chain/validatorMonitor.js.map +1 -1
  25. package/lib/network/gossip/gossipsub.js +1 -1
  26. package/lib/network/gossip/gossipsub.js.map +1 -1
  27. package/lib/network/gossip/scoringParameters.js +4 -4
  28. package/lib/network/gossip/scoringParameters.js.map +1 -1
  29. package/lib/network/peers/peerManager.d.ts.map +1 -1
  30. package/lib/network/peers/peerManager.js +2 -1
  31. package/lib/network/peers/peerManager.js.map +1 -1
  32. package/lib/network/processor/gossipHandlers.js +1 -1
  33. package/lib/network/processor/gossipHandlers.js.map +1 -1
  34. package/lib/network/subnets/attnetsService.d.ts.map +1 -1
  35. package/lib/network/subnets/attnetsService.js +1 -1
  36. package/lib/network/subnets/attnetsService.js.map +1 -1
  37. package/lib/node/notifier.js +1 -1
  38. package/lib/node/notifier.js.map +1 -1
  39. package/lib/sync/unknownBlock.d.ts.map +1 -1
  40. package/lib/sync/unknownBlock.js +2 -1
  41. package/lib/sync/unknownBlock.js.map +1 -1
  42. package/lib/util/clock.d.ts +3 -3
  43. package/lib/util/clock.js +6 -6
  44. package/lib/util/clock.js.map +1 -1
  45. package/package.json +14 -14
  46. package/src/api/impl/beacon/blocks/index.ts +1 -1
  47. package/src/api/impl/lodestar/index.ts +1 -1
  48. package/src/api/impl/validator/index.ts +6 -5
  49. package/src/chain/blocks/blockInput/blockInput.ts +2 -1
  50. package/src/chain/blocks/importBlock.ts +4 -2
  51. package/src/chain/blocks/verifyBlocksDataAvailability.ts +10 -2
  52. package/src/chain/blocks/writeBlockInputToDb.ts +1 -9
  53. package/src/chain/chain.ts +1 -1
  54. package/src/chain/validatorMonitor.ts +5 -4
  55. package/src/network/gossip/gossipsub.ts +1 -1
  56. package/src/network/gossip/scoringParameters.ts +4 -4
  57. package/src/network/peers/peerManager.ts +2 -1
  58. package/src/network/processor/gossipHandlers.ts +1 -1
  59. package/src/network/subnets/attnetsService.ts +3 -6
  60. package/src/node/notifier.ts +1 -1
  61. package/src/sync/unknownBlock.ts +2 -1
  62. package/src/util/clock.ts +7 -7
@@ -1 +1 @@
1
- {"version":3,"file":"unknownBlock.js","sourceRoot":"","sources":["../../src/sync/unknownBlock.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"unknownBlock.js","sourceRoot":"","sources":["../../src/sync/unknownBlock.ts"],"names":[],"mappings":"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"}
@@ -5,12 +5,12 @@ import type { Epoch, Slot } from "@lodestar/types";
5
5
  export declare enum ClockEvent {
6
6
  /**
7
7
  * This event signals the start of a new slot, and that subsequent calls to `clock.currentSlot` will equal `slot`.
8
- * This event is guaranteed to be emitted every `SECONDS_PER_SLOT` seconds.
8
+ * This event is guaranteed to be emitted every `SLOT_DURATION_MS` milliseconds.
9
9
  */
10
10
  slot = "clock:slot",
11
11
  /**
12
12
  * This event signals the start of a new epoch, and that subsequent calls to `clock.currentEpoch` will return `epoch`.
13
- * This event is guaranteed to be emitted every `SECONDS_PER_SLOT * SLOTS_PER_EPOCH` seconds.
13
+ * This event is guaranteed to be emitted every `SLOT_DURATION_MS * SLOTS_PER_EPOCH` milliseconds.
14
14
  */
15
15
  epoch = "clock:epoch"
16
16
  }
@@ -23,7 +23,7 @@ export type ClockEvents = {
23
23
  *
24
24
  * The time is dependent on:
25
25
  * - `state.genesisTime` - the genesis time
26
- * - `SECONDS_PER_SLOT` - # of seconds per slot
26
+ * - `SLOT_DURATION_MS` - # of milliseconds per slot
27
27
  * - `SLOTS_PER_EPOCH` - # of slots per epoch
28
28
  */
29
29
  export type IClock = StrictEventEmitter<EventEmitter, ClockEvents> & {
package/lib/util/clock.js CHANGED
@@ -6,12 +6,12 @@ export var ClockEvent;
6
6
  (function (ClockEvent) {
7
7
  /**
8
8
  * This event signals the start of a new slot, and that subsequent calls to `clock.currentSlot` will equal `slot`.
9
- * This event is guaranteed to be emitted every `SECONDS_PER_SLOT` seconds.
9
+ * This event is guaranteed to be emitted every `SLOT_DURATION_MS` milliseconds.
10
10
  */
11
11
  ClockEvent["slot"] = "clock:slot";
12
12
  /**
13
13
  * This event signals the start of a new epoch, and that subsequent calls to `clock.currentEpoch` will return `epoch`.
14
- * This event is guaranteed to be emitted every `SECONDS_PER_SLOT * SLOTS_PER_EPOCH` seconds.
14
+ * This event is guaranteed to be emitted every `SLOT_DURATION_MS * SLOTS_PER_EPOCH` milliseconds.
15
15
  */
16
16
  ClockEvent["epoch"] = "clock:epoch";
17
17
  })(ClockEvent || (ClockEvent = {}));
@@ -110,14 +110,14 @@ export class Clock extends EventEmitter {
110
110
  });
111
111
  }
112
112
  secFromSlot(slot, toSec = Date.now() / 1000) {
113
- return toSec - (this.genesisTime + slot * this.config.SECONDS_PER_SLOT);
113
+ return toSec - computeTimeAtSlot(this.config, slot, this.genesisTime);
114
114
  }
115
115
  msFromSlot(slot, toMs = Date.now()) {
116
- return toMs - (this.genesisTime * 1000 + slot * this.config.SLOT_DURATION_MS);
116
+ return toMs - computeTimeAtSlot(this.config, slot, this.genesisTime) * 1000;
117
117
  }
118
118
  onNextSlot = (slot) => {
119
119
  const clockSlot = slot ?? getCurrentSlot(this.config, this.genesisTime);
120
- // process multiple clock slots in the case the main thread has been saturated for > SECONDS_PER_SLOT
120
+ // process multiple clock slots in the case the main thread has been saturated for > SLOT_DURATION_MS
121
121
  while (this._currentSlot < clockSlot && !this.signal.aborted) {
122
122
  const previousSlot = this._currentSlot;
123
123
  this._currentSlot++;
@@ -134,7 +134,7 @@ export class Clock extends EventEmitter {
134
134
  }
135
135
  };
136
136
  msUntilNextSlot() {
137
- const milliSecondsPerSlot = this.config.SECONDS_PER_SLOT * 1000;
137
+ const milliSecondsPerSlot = this.config.SLOT_DURATION_MS;
138
138
  const diffInMilliSeconds = Date.now() - this.genesisTime * 1000;
139
139
  return milliSecondsPerSlot - (diffInMilliSeconds % milliSecondsPerSlot);
140
140
  }
@@ -1 +1 @@
1
- {"version":3,"file":"clock.js","sourceRoot":"","sources":["../../src/util/clock.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"clock.js","sourceRoot":"","sources":["../../src/util/clock.ts"],"names":[],"mappings":"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"}
package/package.json CHANGED
@@ -11,7 +11,7 @@
11
11
  "bugs": {
12
12
  "url": "https://github.com/ChainSafe/lodestar/issues"
13
13
  },
14
- "version": "1.35.0-dev.39be8f0882",
14
+ "version": "1.35.0-dev.47470aab65",
15
15
  "type": "module",
16
16
  "exports": {
17
17
  ".": {
@@ -134,18 +134,18 @@
134
134
  "@libp2p/peer-id": "^5.1.0",
135
135
  "@libp2p/prometheus-metrics": "^4.3.15",
136
136
  "@libp2p/tcp": "^10.1.8",
137
- "@lodestar/api": "1.35.0-dev.39be8f0882",
138
- "@lodestar/config": "1.35.0-dev.39be8f0882",
139
- "@lodestar/db": "1.35.0-dev.39be8f0882",
140
- "@lodestar/fork-choice": "1.35.0-dev.39be8f0882",
141
- "@lodestar/light-client": "1.35.0-dev.39be8f0882",
142
- "@lodestar/logger": "1.35.0-dev.39be8f0882",
143
- "@lodestar/params": "1.35.0-dev.39be8f0882",
144
- "@lodestar/reqresp": "1.35.0-dev.39be8f0882",
145
- "@lodestar/state-transition": "1.35.0-dev.39be8f0882",
146
- "@lodestar/types": "1.35.0-dev.39be8f0882",
147
- "@lodestar/utils": "1.35.0-dev.39be8f0882",
148
- "@lodestar/validator": "1.35.0-dev.39be8f0882",
137
+ "@lodestar/api": "1.35.0-dev.47470aab65",
138
+ "@lodestar/config": "1.35.0-dev.47470aab65",
139
+ "@lodestar/db": "1.35.0-dev.47470aab65",
140
+ "@lodestar/fork-choice": "1.35.0-dev.47470aab65",
141
+ "@lodestar/light-client": "1.35.0-dev.47470aab65",
142
+ "@lodestar/logger": "1.35.0-dev.47470aab65",
143
+ "@lodestar/params": "1.35.0-dev.47470aab65",
144
+ "@lodestar/reqresp": "1.35.0-dev.47470aab65",
145
+ "@lodestar/state-transition": "1.35.0-dev.47470aab65",
146
+ "@lodestar/types": "1.35.0-dev.47470aab65",
147
+ "@lodestar/utils": "1.35.0-dev.47470aab65",
148
+ "@lodestar/validator": "1.35.0-dev.47470aab65",
149
149
  "@multiformats/multiaddr": "^12.1.3",
150
150
  "datastore-core": "^10.0.2",
151
151
  "datastore-fs": "^10.0.6",
@@ -180,5 +180,5 @@
180
180
  "beacon",
181
181
  "blockchain"
182
182
  ],
183
- "gitHead": "58cc950c5b6d29cb09b57233fa1e7c2ed763d58c"
183
+ "gitHead": "ab2c472cebf1799b709644ec7bf1939c76495863"
184
184
  }
@@ -256,7 +256,7 @@ export function getBeaconBlockApi({
256
256
  }
257
257
 
258
258
  // TODO: Validate block
259
- const delaySec = seenTimestampSec - (chain.genesisTime + slot * config.SECONDS_PER_SLOT);
259
+ const delaySec = seenTimestampSec - computeTimeAtSlot(config, slot, chain.genesisTime);
260
260
  metrics?.gossipBlock.elapsedTimeTillReceived.observe({source: OpSource.api}, delaySec);
261
261
  chain.validatorMonitor?.registerBeaconBlock(OpSource.api, delaySec, signedBlock.message);
262
262
 
@@ -26,7 +26,7 @@ export function getLodestarApi({
26
26
  }: Pick<ApiModules, "chain" | "config" | "db" | "network" | "sync">): ApplicationMethods<routes.lodestar.Endpoints> {
27
27
  let writingHeapdump = false;
28
28
  let writingProfile = false;
29
- const defaultProfileMs = SLOTS_PER_EPOCH * config.SECONDS_PER_SLOT * 1000;
29
+ const defaultProfileMs = SLOTS_PER_EPOCH * config.SLOT_DURATION_MS;
30
30
 
31
31
  return {
32
32
  async writeHeapdump({thread = "main", dirpath = "."}) {
@@ -22,6 +22,7 @@ import {
22
22
  calculateCommitteeAssignments,
23
23
  computeEpochAtSlot,
24
24
  computeStartSlotAtEpoch,
25
+ computeTimeAtSlot,
25
26
  createCachedBeaconState,
26
27
  getBlockRootAtSlot,
27
28
  getCurrentSlot,
@@ -180,7 +181,7 @@ export function getValidatorApi(
180
181
  * This value is the same to MAXIMUM_GOSSIP_CLOCK_DISPARITY_SEC.
181
182
  * For very fast networks, reduce clock disparity to half a slot.
182
183
  */
183
- const MAX_API_CLOCK_DISPARITY_SEC = Math.min(0.5, config.SECONDS_PER_SLOT / 2);
184
+ const MAX_API_CLOCK_DISPARITY_SEC = Math.min(0.5, config.SLOT_DURATION_MS / 2000);
184
185
  const MAX_API_CLOCK_DISPARITY_MS = MAX_API_CLOCK_DISPARITY_SEC * 1000;
185
186
 
186
187
  /** Compute and cache the genesis block root */
@@ -213,7 +214,7 @@ export function getValidatorApi(
213
214
  return;
214
215
  }
215
216
 
216
- const slotStartSec = chain.genesisTime + slot * config.SECONDS_PER_SLOT;
217
+ const slotStartSec = computeTimeAtSlot(config, slot, chain.genesisTime);
217
218
  const msToSlot = slotStartSec * 1000 - Date.now();
218
219
 
219
220
  if (msToSlot > MAX_API_CLOCK_DISPARITY_MS) {
@@ -244,7 +245,7 @@ export function getValidatorApi(
244
245
  */
245
246
  function msToNextEpoch(): number {
246
247
  const nextEpoch = chain.clock.currentEpoch + 1;
247
- const secPerEpoch = SLOTS_PER_EPOCH * config.SECONDS_PER_SLOT;
248
+ const secPerEpoch = (SLOTS_PER_EPOCH * config.SLOT_DURATION_MS) / 1000;
248
249
  const nextEpochStartSec = chain.genesisTime + nextEpoch * secPerEpoch;
249
250
  return nextEpochStartSec * 1000 - Date.now();
250
251
  }
@@ -1018,8 +1019,8 @@ export function getValidatorApi(
1018
1019
  const head = chain.forkChoice.getHead();
1019
1020
  let state: CachedBeaconStateAllForks | undefined = undefined;
1020
1021
  const startSlot = computeStartSlotAtEpoch(epoch);
1021
- const slotMs = config.SECONDS_PER_SLOT * 1000;
1022
- const prepareNextSlotLookAheadMs = slotMs - config.getSlotComponentDurationMs(PREPARE_NEXT_SLOT_BPS);
1022
+ const prepareNextSlotLookAheadMs =
1023
+ config.SLOT_DURATION_MS - config.getSlotComponentDurationMs(PREPARE_NEXT_SLOT_BPS);
1023
1024
  const toNextEpochMs = msToNextEpoch();
1024
1025
  // validators may request next epoch's duties when it's close to next epoch
1025
1026
  // this is to avoid missed block proposal due to 0 epoch look ahead
@@ -652,7 +652,8 @@ export class BlockInputColumns extends AbstractBlockInput<ForkColumnsDA, fulu.Da
652
652
  static createFromColumn(
653
653
  props: AddColumn & CreateBlockInputMeta & {sampledColumns: ColumnIndex[]; custodyColumns: ColumnIndex[]}
654
654
  ): BlockInputColumns {
655
- const hasAllData = props.sampledColumns.length === 0;
655
+ const hasAllData =
656
+ props.daOutOfRange || props.columnSidecar.kzgCommitments.length === 0 || props.sampledColumns.length === 0;
656
657
  const state: BlockInputColumnsState = {
657
658
  hasBlock: false,
658
659
  hasAllData,
@@ -14,6 +14,7 @@ import {
14
14
  RootCache,
15
15
  computeEpochAtSlot,
16
16
  computeStartSlotAtEpoch,
17
+ computeTimeAtSlot,
17
18
  isExecutionStateType,
18
19
  isStartSlotOfEpoch,
19
20
  isStateValidatorsNodesPopulated,
@@ -78,7 +79,8 @@ export async function importBlock(
78
79
  const currentEpoch = computeEpochAtSlot(currentSlot);
79
80
  const blockEpoch = computeEpochAtSlot(blockSlot);
80
81
  const prevFinalizedEpoch = this.forkChoice.getFinalizedCheckpoint().epoch;
81
- const blockDelaySec = (fullyVerifiedBlock.seenTimestampSec - postState.genesisTime) % this.config.SECONDS_PER_SLOT;
82
+ const blockDelaySec =
83
+ fullyVerifiedBlock.seenTimestampSec - computeTimeAtSlot(this.config, blockSlot, postState.genesisTime);
82
84
  const recvToValLatency = Date.now() / 1000 - (opts.seenTimestampSec ?? Date.now() / 1000);
83
85
  const fork = this.config.getForkSeq(blockSlot);
84
86
 
@@ -258,7 +260,7 @@ export async function importBlock(
258
260
  this.metrics.headSlot.set(newHead.slot);
259
261
  // Only track "recent" blocks. Otherwise sync can distort this metrics heavily.
260
262
  // We want to track recent blocks coming from gossip, unknown block sync, and API.
261
- if (delaySec < SLOTS_PER_EPOCH * this.config.SECONDS_PER_SLOT) {
263
+ if (delaySec < (SLOTS_PER_EPOCH * this.config.SLOT_DURATION_MS) / 1000) {
262
264
  this.metrics.importBlock.elapsedTimeTillBecomeHead.observe(delaySec);
263
265
  const cutOffSec = this.config.getAttestationDueMs(this.config.getForkName(blockSlot)) / 1000;
264
266
  if (delaySec > cutOffSec) {
@@ -1,5 +1,5 @@
1
1
  import {DataAvailabilityStatus} from "@lodestar/state-transition";
2
- import {DAType, IBlockInput} from "./blockInput/index.js";
2
+ import {DAData, DAType, IBlockInput} from "./blockInput/index.js";
3
3
 
4
4
  // we can now wait for full 12 seconds because unavailable block sync will try pulling
5
5
  // the blobs from the network anyway after 500ms of seeing the block
@@ -18,7 +18,15 @@ export async function verifyBlocksDataAvailability(
18
18
  dataAvailabilityStatuses: DataAvailabilityStatus[];
19
19
  availableTime: number;
20
20
  }> {
21
- await Promise.all(blocks.map((blockInput) => blockInput.waitForAllData(BLOB_AVAILABILITY_TIMEOUT, signal)));
21
+ const promises: Promise<DAData>[] = [];
22
+ for (const blockInput of blocks) {
23
+ // block verification is triggered on a verified gossip block so we only need to wait for all data
24
+ if (!blockInput.hasAllData()) {
25
+ promises.push(blockInput.waitForAllData(BLOB_AVAILABILITY_TIMEOUT, signal));
26
+ }
27
+ }
28
+ await Promise.all(promises);
29
+
22
30
  const availableTime = Math.max(0, Math.max(...blocks.map((blockInput) => blockInput.getTimeComplete())));
23
31
  const dataAvailabilityStatuses: DataAvailabilityStatus[] = blocks.map((blockInput) => {
24
32
  if (blockInput.type === DAType.PreData) {
@@ -102,15 +102,7 @@ export async function removeEagerlyPersistedBlockInputs(this: BeaconChain, block
102
102
  if (!this.forkChoice.hasBlockHex(blockRootHex)) {
103
103
  blockToRemove.push(block);
104
104
 
105
- if (isBlockInputColumns(blockInput)) {
106
- const {custodyColumns} = this.custodyConfig;
107
- const dataColumnsLen = custodyColumns.length;
108
- const dataColumnSidecars = blockInput.getCustodyColumns();
109
- if (dataColumnSidecars.length !== dataColumnsLen) {
110
- throw Error(
111
- `Invalid dataColumnSidecars=${dataColumnSidecars.length} for custody expected custodyColumnsLen=${dataColumnsLen}`
112
- );
113
- }
105
+ if (isBlockInputColumns(blockInput) && blockInput.getCustodyColumns().length > 0) {
114
106
  dataColumnsToRemove.push(blockRoot);
115
107
  } else if (isBlockInputBlobs(blockInput)) {
116
108
  const blobSidecars = blockInput.getBlobs();
@@ -1139,7 +1139,7 @@ export class BeaconChain implements IBeaconChain {
1139
1139
  const metrics = this.metrics;
1140
1140
  if (metrics && (slot + 1) % SLOTS_PER_EPOCH === 0) {
1141
1141
  // On the last slot of the epoch
1142
- sleep((1000 * this.config.SECONDS_PER_SLOT) / 2)
1142
+ sleep(this.config.SLOT_DURATION_MS / 2)
1143
1143
  .then(() => this.validatorMonitor?.onceEveryEndOfEpoch(this.getHeadState()))
1144
1144
  .catch((e) => {
1145
1145
  if (!isErrorAborted(e)) this.logger.error("Error on validator monitor onceEveryEndOfEpoch", {slot}, e);
@@ -6,6 +6,7 @@ import {
6
6
  ParticipationFlags,
7
7
  computeEpochAtSlot,
8
8
  computeStartSlotAtEpoch,
9
+ computeTimeAtSlot,
9
10
  getBlockRootAtSlot,
10
11
  getCurrentSlot,
11
12
  parseAttesterFlags,
@@ -455,7 +456,7 @@ export function createValidatorMonitor(
455
456
  // Returns the duration between when the attestation `data` could be produced (ATTESTATION_DUE_BPS through the slot) and `seenTimestamp`.
456
457
  const delaySec =
457
458
  seenTimestampSec -
458
- (genesisTime + data.slot * config.SECONDS_PER_SLOT + config.getAttestationDueMs(fork) / 1000);
459
+ (computeTimeAtSlot(config, data.slot, genesisTime) + config.getAttestationDueMs(fork) / 1000);
459
460
  for (const index of indexedAttestation.attestingIndices) {
460
461
  const validator = validators.get(index);
461
462
  if (validator) {
@@ -491,7 +492,7 @@ export function createValidatorMonitor(
491
492
  // Returns the duration between when the attestation `data` could be produced (ATTESTATION_DUE_BPS through the slot) and `seenTimestamp`.
492
493
  const delaySec =
493
494
  seenTimestampSec -
494
- (genesisTime + data.slot * config.SECONDS_PER_SLOT + config.getAttestationDueMs(fork) / 1000);
495
+ (computeTimeAtSlot(config, data.slot, genesisTime) + config.getAttestationDueMs(fork) / 1000);
495
496
 
496
497
  for (const index of indexedAttestation.attestingIndices) {
497
498
  const validator = validators.get(index);
@@ -510,7 +511,7 @@ export function createValidatorMonitor(
510
511
  const fork = config.getForkName(data.slot);
511
512
  // Returns the duration between when a `AggregateAndproof` with `data` could be produced (AGGREGATE_DUE_BPS through the slot) and `seenTimestamp`.
512
513
  const delaySec =
513
- seenTimestampSec - (genesisTime + data.slot * config.SECONDS_PER_SLOT + config.getAggregateDueMs(fork) / 1000);
514
+ seenTimestampSec - (computeTimeAtSlot(config, data.slot, genesisTime) + config.getAggregateDueMs(fork) / 1000);
514
515
 
515
516
  for (const index of indexedAttestation.attestingIndices) {
516
517
  const validator = validators.get(index);
@@ -539,7 +540,7 @@ export function createValidatorMonitor(
539
540
  const fork = config.getForkName(data.slot);
540
541
  // Returns the duration between when a `AggregateAndproof` with `data` could be produced (AGGREGATE_DUE_BPS through the slot) and `seenTimestamp`.
541
542
  const delaySec =
542
- seenTimestampSec - (genesisTime + data.slot * config.SECONDS_PER_SLOT + config.getAggregateDueMs(fork) / 1000);
543
+ seenTimestampSec - (computeTimeAtSlot(config, data.slot, genesisTime) + config.getAggregateDueMs(fork) / 1000);
543
544
 
544
545
  const aggregatorIndex = signedAggregateAndProof.message.aggregatorIndex;
545
546
  const validatorAggregator = validators.get(aggregatorIndex);
@@ -105,7 +105,7 @@ export class Eth2Gossipsub extends GossipSub {
105
105
  mcacheLength: 6,
106
106
  mcacheGossip: 3,
107
107
  // this should be in ms
108
- seenTTL: config.SECONDS_PER_SLOT * SLOTS_PER_EPOCH * 2 * 1000,
108
+ seenTTL: config.SLOT_DURATION_MS * SLOTS_PER_EPOCH * 2,
109
109
  scoreParams,
110
110
  scoreThresholds: gossipScoreThresholds,
111
111
  // For a single stream, await processing each RPC before processing the next
@@ -84,10 +84,10 @@ export function computeGossipPeerScoreParams({
84
84
  config: BeaconConfig;
85
85
  eth2Context: Eth2Context;
86
86
  }): Partial<PeerScoreParams> {
87
- const decayIntervalMs = config.SECONDS_PER_SLOT * 1000;
87
+ const decayIntervalMs = config.SLOT_DURATION_MS;
88
88
  const decayToZero = 0.01;
89
- const epochDurationMs = config.SECONDS_PER_SLOT * SLOTS_PER_EPOCH * 1000;
90
- const slotDurationMs = config.SECONDS_PER_SLOT * 1000;
89
+ const epochDurationMs = config.SLOT_DURATION_MS * SLOTS_PER_EPOCH;
90
+ const slotDurationMs = config.SLOT_DURATION_MS;
91
91
  const scoreParameterDecayFn = (decayTimeMs: number): number => {
92
92
  return scoreParameterDecayWithBase(decayTimeMs, decayIntervalMs, decayToZero);
93
93
  };
@@ -265,7 +265,7 @@ function getTopicScoreParams(
265
265
 
266
266
  if (meshMessageInfo) {
267
267
  const {decaySlots, capFactor, activationWindow, currentSlot} = meshMessageInfo;
268
- const decayTimeMs = config.SECONDS_PER_SLOT * decaySlots * 1000;
268
+ const decayTimeMs = config.SLOT_DURATION_MS * decaySlots;
269
269
  params.meshMessageDeliveriesDecay = scoreParameterDecayFn(decayTimeMs);
270
270
  params.meshMessageDeliveriesThreshold = threshold(params.meshMessageDeliveriesDecay, expectedMessageRate / 50);
271
271
  params.meshMessageDeliveriesCap = Math.max(capFactor * params.meshMessageDeliveriesThreshold, 2);
@@ -3,6 +3,7 @@ import {BitArray} from "@chainsafe/ssz";
3
3
  import {BeaconConfig} from "@lodestar/config";
4
4
  import {LoggerNode} from "@lodestar/logger/node";
5
5
  import {ForkSeq, SLOTS_PER_EPOCH, SYNC_COMMITTEE_SUBNET_COUNT} from "@lodestar/params";
6
+ import {computeTimeAtSlot} from "@lodestar/state-transition";
6
7
  import {Metadata, Status, altair, fulu, phase0} from "@lodestar/types";
7
8
  import {prettyPrintIndices, toHex, withTimeout} from "@lodestar/utils";
8
9
  import {GOODBYE_KNOWN_CODES, GoodByeReasonCode, Libp2pEvent} from "../../constants/index.js";
@@ -599,7 +600,7 @@ export class PeerManager {
599
600
  subnet: query.subnet,
600
601
  type,
601
602
  maxPeersToDiscover: query.maxPeersToDiscover,
602
- toUnixMs: 1000 * (this.clock.genesisTime + query.toSlot * this.config.SECONDS_PER_SLOT),
603
+ toUnixMs: computeTimeAtSlot(this.config, query.toSlot, this.clock.genesisTime) * 1000,
603
604
  });
604
605
  }
605
606
 
@@ -379,7 +379,7 @@ function getSequentialHandlers(modules: ValidatorFnsModules, options: GossipHand
379
379
 
380
380
  // Handler - MUST NOT `await`, to allow validation result to be propagated
381
381
 
382
- const delaySec = seenTimestampSec - (chain.genesisTime + slot * config.SECONDS_PER_SLOT);
382
+ const delaySec = seenTimestampSec - computeTimeAtSlot(config, slot, chain.genesisTime);
383
383
  metrics?.gossipBlock.elapsedTimeTillReceived.observe({source: OpSource.gossip}, delaySec);
384
384
  chain.validatorMonitor?.registerBeaconBlock(OpSource.gossip, delaySec, signedBlock.message);
385
385
  if (!blockInput.hasBlockAndAllData()) {
@@ -163,12 +163,9 @@ export class AttnetsService implements IAttnetsService {
163
163
  */
164
164
  private onSlot = (clockSlot: Slot): void => {
165
165
  try {
166
- setTimeout(
167
- () => {
168
- this.onHalfSlot(clockSlot);
169
- },
170
- this.config.SECONDS_PER_SLOT * 0.5 * 1000
171
- );
166
+ setTimeout(() => {
167
+ this.onHalfSlot(clockSlot);
168
+ }, this.config.SLOT_DURATION_MS * 0.5);
172
169
 
173
170
  for (const [dutiedSlot, dutiedInfo] of this.aggregatorSlotSubnet.entries()) {
174
171
  if (dutiedSlot === clockSlot + this.opts.slotsToSubscribeBeforeAggregatorDuty) {
@@ -157,7 +157,7 @@ export async function runNodeNotifier(modules: NodeNotifierModules): Promise<voi
157
157
  }
158
158
 
159
159
  function timeToNextHalfSlot(config: BeaconConfig, chain: IBeaconChain, isFirstTime: boolean): number {
160
- const msPerSlot = config.SECONDS_PER_SLOT * 1000;
160
+ const msPerSlot = config.SLOT_DURATION_MS;
161
161
  const msPerHalfSlot = msPerSlot / 2;
162
162
  const msFromGenesis = Date.now() - chain.genesisTime * 1000;
163
163
  const msToNextSlot =
@@ -1,6 +1,7 @@
1
1
  import {ChainForkConfig} from "@lodestar/config";
2
2
  import {ForkSeq} from "@lodestar/params";
3
3
  import {RequestError, RequestErrorCode} from "@lodestar/reqresp";
4
+ import {computeTimeAtSlot} from "@lodestar/state-transition";
4
5
  import {RootHex} from "@lodestar/types";
5
6
  import {Logger, prettyPrintIndices, pruneSetToMax, sleep} from "@lodestar/utils";
6
7
  import {isBlockInputBlobs, isBlockInputColumns} from "../chain/blocks/blockInput/blockInput.js";
@@ -329,7 +330,7 @@ export class BlockInputSync {
329
330
  this.pendingBlocks.set(pending.blockInput.blockRootHex, pending);
330
331
  const blockSlot = pending.blockInput.slot;
331
332
  const finalizedSlot = this.chain.forkChoice.getFinalizedBlock().slot;
332
- const delaySec = Date.now() / 1000 - (this.chain.genesisTime + blockSlot * this.config.SECONDS_PER_SLOT);
333
+ const delaySec = Date.now() / 1000 - computeTimeAtSlot(this.config, blockSlot, this.chain.genesisTime);
333
334
  this.metrics?.blockInputSync.elapsedTimeTillReceived.observe(delaySec);
334
335
 
335
336
  const parentInForkChoice = this.chain.forkChoice.hasBlockHex(pending.blockInput.parentRootHex);
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> & {
@@ -174,16 +174,16 @@ export class Clock extends EventEmitter implements IClock {
174
174
  }
175
175
 
176
176
  secFromSlot(slot: Slot, toSec = Date.now() / 1000): number {
177
- return toSec - (this.genesisTime + slot * this.config.SECONDS_PER_SLOT);
177
+ return toSec - computeTimeAtSlot(this.config, slot, this.genesisTime);
178
178
  }
179
179
 
180
180
  msFromSlot(slot: Slot, toMs = Date.now()): number {
181
- return toMs - (this.genesisTime * 1000 + slot * this.config.SLOT_DURATION_MS);
181
+ return toMs - computeTimeAtSlot(this.config, slot, this.genesisTime) * 1000;
182
182
  }
183
183
 
184
184
  private onNextSlot = (slot?: Slot): void => {
185
185
  const clockSlot = slot ?? getCurrentSlot(this.config, this.genesisTime);
186
- // 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
187
187
  while (this._currentSlot < clockSlot && !this.signal.aborted) {
188
188
  const previousSlot = this._currentSlot;
189
189
  this._currentSlot++;
@@ -205,7 +205,7 @@ export class Clock extends EventEmitter implements IClock {
205
205
  };
206
206
 
207
207
  private msUntilNextSlot(): number {
208
- const milliSecondsPerSlot = this.config.SECONDS_PER_SLOT * 1000;
208
+ const milliSecondsPerSlot = this.config.SLOT_DURATION_MS;
209
209
  const diffInMilliSeconds = Date.now() - this.genesisTime * 1000;
210
210
  return milliSecondsPerSlot - (diffInMilliSeconds % milliSecondsPerSlot);
211
211
  }