@lodestar/beacon-node 1.30.0-dev.8cb53e44d3 → 1.30.0-dev.9c538e3a8f

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 (75) hide show
  1. package/lib/api/impl/beacon/blocks/index.d.ts +1 -1
  2. package/lib/api/impl/beacon/blocks/index.js +2 -4
  3. package/lib/api/impl/beacon/blocks/index.js.map +1 -1
  4. package/lib/api/impl/beacon/pool/index.js +1 -1
  5. package/lib/api/impl/beacon/pool/index.js.map +1 -1
  6. package/lib/api/impl/beacon/state/index.js +9 -14
  7. package/lib/api/impl/beacon/state/index.js.map +1 -1
  8. package/lib/api/impl/lodestar/index.js.map +1 -1
  9. package/lib/api/impl/proof/index.js +2 -4
  10. package/lib/api/impl/proof/index.js.map +1 -1
  11. package/lib/api/impl/validator/index.js.map +1 -1
  12. package/lib/chain/archiveStore/archiveStore.d.ts +1 -0
  13. package/lib/chain/archiveStore/archiveStore.js +3 -2
  14. package/lib/chain/archiveStore/archiveStore.js.map +1 -1
  15. package/lib/chain/archiveStore/historicalState/worker.js +2 -0
  16. package/lib/chain/archiveStore/historicalState/worker.js.map +1 -1
  17. package/lib/chain/beaconProposerCache.d.ts +3 -1
  18. package/lib/chain/beaconProposerCache.js +2 -1
  19. package/lib/chain/beaconProposerCache.js.map +1 -1
  20. package/lib/chain/bls/multithread/index.d.ts +1 -1
  21. package/lib/chain/bls/multithread/index.js.map +1 -1
  22. package/lib/chain/chain.js +6 -1
  23. package/lib/chain/chain.js.map +1 -1
  24. package/lib/chain/regen/queued.d.ts +1 -0
  25. package/lib/chain/regen/queued.js +1 -0
  26. package/lib/chain/regen/queued.js.map +1 -1
  27. package/lib/chain/seenCache/seenAttestationData.js.map +1 -1
  28. package/lib/chain/seenCache/seenGossipBlockInput.js.map +1 -1
  29. package/lib/chain/validatorMonitor.d.ts +3 -3
  30. package/lib/chain/validatorMonitor.js +56 -273
  31. package/lib/chain/validatorMonitor.js.map +1 -1
  32. package/lib/execution/engine/payloadIdCache.d.ts +3 -0
  33. package/lib/execution/engine/payloadIdCache.js +2 -1
  34. package/lib/execution/engine/payloadIdCache.js.map +1 -1
  35. package/lib/metrics/metrics/lodestar.d.ts +67 -3
  36. package/lib/metrics/metrics/lodestar.js +212 -2
  37. package/lib/metrics/metrics/lodestar.js.map +1 -1
  38. package/lib/network/core/networkCore.d.ts +1 -2
  39. package/lib/network/core/networkCore.js +16 -3
  40. package/lib/network/core/networkCore.js.map +1 -1
  41. package/lib/network/core/networkCoreWorkerHandler.d.ts +4 -6
  42. package/lib/network/core/networkCoreWorkerHandler.js.map +1 -1
  43. package/lib/network/core/types.d.ts +1 -1
  44. package/lib/network/network.d.ts +1 -0
  45. package/lib/network/network.js +1 -0
  46. package/lib/network/network.js.map +1 -1
  47. package/lib/network/peers/discover.d.ts +4 -0
  48. package/lib/network/peers/discover.js +3 -1
  49. package/lib/network/peers/discover.js.map +1 -1
  50. package/lib/network/peers/peerManager.js +1 -0
  51. package/lib/network/peers/peerManager.js.map +1 -1
  52. package/lib/network/peers/score/interface.d.ts +1 -1
  53. package/lib/network/peers/score/interface.js.map +1 -1
  54. package/lib/network/peers/score/store.d.ts +1 -2
  55. package/lib/network/peers/score/store.js +1 -1
  56. package/lib/network/peers/score/store.js.map +1 -1
  57. package/lib/network/processor/gossipHandlers.js +1 -3
  58. package/lib/network/processor/gossipHandlers.js.map +1 -1
  59. package/lib/network/processor/index.d.ts +1 -1
  60. package/lib/network/processor/index.js.map +1 -1
  61. package/lib/node/nodejs.js +1 -1
  62. package/lib/node/nodejs.js.map +1 -1
  63. package/package.json +14 -14
  64. package/lib/chain/blocks/blockInput/blockInput.d.ts +0 -164
  65. package/lib/chain/blocks/blockInput/blockInput.js +0 -522
  66. package/lib/chain/blocks/blockInput/blockInput.js.map +0 -1
  67. package/lib/chain/blocks/blockInput/errors.d.ts +0 -38
  68. package/lib/chain/blocks/blockInput/errors.js +0 -17
  69. package/lib/chain/blocks/blockInput/errors.js.map +0 -1
  70. package/lib/chain/blocks/blockInput/index.d.ts +0 -4
  71. package/lib/chain/blocks/blockInput/index.js +0 -4
  72. package/lib/chain/blocks/blockInput/index.js.map +0 -1
  73. package/lib/chain/blocks/blockInput/types.d.ts +0 -116
  74. package/lib/chain/blocks/blockInput/types.js +0 -19
  75. package/lib/chain/blocks/blockInput/types.js.map +0 -1
@@ -1,5 +1,5 @@
1
1
  import { ForkSeq, INTERVALS_PER_SLOT, MIN_ATTESTATION_INCLUSION_DELAY, SLOTS_PER_EPOCH } from "@lodestar/params";
2
- import { computeEpochAtSlot, computeStartSlotAtEpoch, getBlockRootAtSlot, getCurrentSlot, parseAttesterFlags, parseParticipationFlags, } from "@lodestar/state-transition";
2
+ import { computeEpochAtSlot, computeStartSlotAtEpoch, getBlockRootAtSlot, parseAttesterFlags, parseParticipationFlags, } from "@lodestar/state-transition";
3
3
  import { LogLevel, MapDef, MapDefMax, toRootHex } from "@lodestar/utils";
4
4
  import { GENESIS_SLOT } from "../constants/constants.js";
5
5
  /** The validator monitor collects per-epoch data about each monitored validator.
@@ -68,7 +68,7 @@ function getEpochSummary(validator, epoch) {
68
68
  }
69
69
  return summary;
70
70
  }
71
- export function createValidatorMonitor(metricsRegister, config, genesisTime, logger, opts) {
71
+ export function createValidatorMonitor(metrics, config, genesisTime, logger, opts) {
72
72
  const logLevel = opts.validatorMonitorLogs ? LogLevel.info : LogLevel.debug;
73
73
  const log = (message, context) => {
74
74
  logger[logLevel](message, context);
@@ -86,8 +86,7 @@ export function createValidatorMonitor(metricsRegister, config, genesisTime, log
86
86
  lastRegisteredTimeMs: 0,
87
87
  }));
88
88
  let lastRegisteredStatusEpoch = -1;
89
- const validatorMonitorMetrics = metricsRegister ? createValidatorMonitorMetrics(metricsRegister) : null;
90
- const validatorMonitor = {
89
+ return {
91
90
  registerLocalValidator(index) {
92
91
  validators.getOrDefault(index).lastRegisteredTimeMs = Date.now();
93
92
  },
@@ -116,31 +115,31 @@ export function createValidatorMonitor(metricsRegister, config, genesisTime, log
116
115
  // statuses.
117
116
  const summary = statusToSummary(inclusionDelays[index], flags[index], isActiveCurrEpoch[index], isActiveInPrevEpoch[index]);
118
117
  if (summary.isPrevSourceAttester) {
119
- validatorMonitorMetrics?.prevEpochOnChainSourceAttesterHit.inc();
118
+ metrics?.validatorMonitor.prevEpochOnChainSourceAttesterHit.inc();
120
119
  }
121
120
  else {
122
- validatorMonitorMetrics?.prevEpochOnChainSourceAttesterMiss.inc();
121
+ metrics?.validatorMonitor.prevEpochOnChainSourceAttesterMiss.inc();
123
122
  }
124
123
  if (summary.isPrevHeadAttester) {
125
- validatorMonitorMetrics?.prevEpochOnChainHeadAttesterHit.inc();
124
+ metrics?.validatorMonitor.prevEpochOnChainHeadAttesterHit.inc();
126
125
  }
127
126
  else {
128
- validatorMonitorMetrics?.prevEpochOnChainHeadAttesterMiss.inc();
127
+ metrics?.validatorMonitor.prevEpochOnChainHeadAttesterMiss.inc();
129
128
  }
130
129
  if (summary.isPrevTargetAttester) {
131
- validatorMonitorMetrics?.prevEpochOnChainTargetAttesterHit.inc();
130
+ metrics?.validatorMonitor.prevEpochOnChainTargetAttesterHit.inc();
132
131
  }
133
132
  else {
134
- validatorMonitorMetrics?.prevEpochOnChainTargetAttesterMiss.inc();
133
+ metrics?.validatorMonitor.prevEpochOnChainTargetAttesterMiss.inc();
135
134
  }
136
135
  const prevEpochSummary = monitoredValidator.summaries.get(previousEpoch);
137
136
  const attestationCorrectHead = prevEpochSummary?.attestationCorrectHead;
138
137
  if (attestationCorrectHead !== null && attestationCorrectHead !== undefined) {
139
138
  if (attestationCorrectHead) {
140
- validatorMonitorMetrics?.prevOnChainAttesterCorrectHead.inc();
139
+ metrics?.validatorMonitor.prevOnChainAttesterCorrectHead.inc();
141
140
  }
142
141
  else {
143
- validatorMonitorMetrics?.prevOnChainAttesterIncorrectHead.inc();
142
+ metrics?.validatorMonitor.prevOnChainAttesterIncorrectHead.inc();
144
143
  }
145
144
  }
146
145
  const attestationMinBlockInclusionDistance = prevEpochSummary?.attestationMinBlockInclusionDistance;
@@ -152,15 +151,15 @@ export function createValidatorMonitor(metricsRegister, config, genesisTime, log
152
151
  summary.inclusionDistance
153
152
  : null;
154
153
  if (inclusionDistance !== null) {
155
- validatorMonitorMetrics?.prevEpochOnChainInclusionDistance.observe(inclusionDistance);
156
- validatorMonitorMetrics?.prevEpochOnChainAttesterHit.inc();
154
+ metrics?.validatorMonitor.prevEpochOnChainInclusionDistance.observe(inclusionDistance);
155
+ metrics?.validatorMonitor.prevEpochOnChainAttesterHit.inc();
157
156
  }
158
157
  else {
159
- validatorMonitorMetrics?.prevEpochOnChainAttesterMiss.inc();
158
+ metrics?.validatorMonitor.prevEpochOnChainAttesterMiss.inc();
160
159
  }
161
160
  const balance = balances?.[index];
162
161
  if (balance !== undefined) {
163
- validatorMonitorMetrics?.prevEpochOnChainBalance.set({ index }, balance);
162
+ metrics?.validatorMonitor.prevEpochOnChainBalance.set({ index }, balance);
164
163
  }
165
164
  if (!summary.isPrevSourceAttester || !summary.isPrevTargetAttester || !summary.isPrevHeadAttester) {
166
165
  log("Failed attestation in previous epoch", {
@@ -175,12 +174,14 @@ export function createValidatorMonitor(metricsRegister, config, genesisTime, log
175
174
  }
176
175
  }
177
176
  },
178
- registerBeaconBlock(src, delaySec, block) {
177
+ registerBeaconBlock(src, seenTimestampSec, block) {
179
178
  const validator = validators.get(block.proposerIndex);
180
179
  // Returns the delay between the start of `block.slot` and `seenTimestamp`.
180
+ const delaySec = seenTimestampSec - (genesisTime + block.slot * config.SECONDS_PER_SLOT);
181
+ metrics?.gossipBlock.elapsedTimeTillReceived.observe(delaySec);
181
182
  if (validator) {
182
- validatorMonitorMetrics?.beaconBlockTotal.inc({ src });
183
- validatorMonitorMetrics?.beaconBlockDelaySeconds.observe({ src }, delaySec);
183
+ metrics?.validatorMonitor.beaconBlockTotal.inc({ src });
184
+ metrics?.validatorMonitor.beaconBlockDelaySeconds.observe({ src }, delaySec);
184
185
  const summary = getEpochSummary(validator, computeEpochAtSlot(block.slot));
185
186
  summary.blockProposals.push({
186
187
  blockRoot: toRootHex(config.getForkTypes(block.slot).BeaconBlock.hashTreeRoot(block)),
@@ -196,7 +197,7 @@ export function createValidatorMonitor(metricsRegister, config, genesisTime, log
196
197
  registerImportedBlock(block, { proposerBalanceDelta }) {
197
198
  const validator = validators.get(block.proposerIndex);
198
199
  if (validator) {
199
- validatorMonitorMetrics?.proposerBalanceDeltaKnown.observe(proposerBalanceDelta);
200
+ metrics?.validatorMonitor.proposerBalanceDeltaKnown.observe(proposerBalanceDelta);
200
201
  // There should be alredy a summary for the block. Could be missing when using one VC multiple BNs
201
202
  const summary = getEpochSummary(validator, computeEpochAtSlot(block.slot));
202
203
  const proposal = summary.blockProposals.find((p) => p.blockSlot === block.slot);
@@ -220,8 +221,8 @@ export function createValidatorMonitor(metricsRegister, config, genesisTime, log
220
221
  for (const index of indexedAttestation.attestingIndices) {
221
222
  const validator = validators.get(index);
222
223
  if (validator) {
223
- validatorMonitorMetrics?.unaggregatedAttestationSubmittedSentPeers.observe(sentPeers);
224
- validatorMonitorMetrics?.unaggregatedAttestationDelaySeconds.observe({ src: OpSource.api }, delaySec);
224
+ metrics?.validatorMonitor.unaggregatedAttestationSubmittedSentPeers.observe(sentPeers);
225
+ metrics?.validatorMonitor.unaggregatedAttestationDelaySeconds.observe({ src: OpSource.api }, delaySec);
225
226
  log("Published unaggregated attestation", {
226
227
  validator: index,
227
228
  slot: data.slot,
@@ -249,8 +250,8 @@ export function createValidatorMonitor(metricsRegister, config, genesisTime, log
249
250
  for (const index of indexedAttestation.attestingIndices) {
250
251
  const validator = validators.get(index);
251
252
  if (validator) {
252
- validatorMonitorMetrics?.unaggregatedAttestationTotal.inc({ src });
253
- validatorMonitorMetrics?.unaggregatedAttestationDelaySeconds.observe({ src }, delaySec);
253
+ metrics?.validatorMonitor.unaggregatedAttestationTotal.inc({ src });
254
+ metrics?.validatorMonitor.unaggregatedAttestationDelaySeconds.observe({ src }, delaySec);
254
255
  const summary = getEpochSummary(validator, epoch);
255
256
  summary.attestations += 1;
256
257
  summary.attestationMinDelay = Math.min(delaySec, summary.attestationMinDelay ?? Infinity);
@@ -264,7 +265,7 @@ export function createValidatorMonitor(metricsRegister, config, genesisTime, log
264
265
  for (const index of indexedAttestation.attestingIndices) {
265
266
  const validator = validators.get(index);
266
267
  if (validator) {
267
- validatorMonitorMetrics?.aggregatedAttestationDelaySeconds.observe({ src: OpSource.api }, delaySec);
268
+ metrics?.validatorMonitor.aggregatedAttestationDelaySeconds.observe({ src: OpSource.api }, delaySec);
268
269
  log("Published aggregated attestation", {
269
270
  validator: index,
270
271
  slot: data.slot,
@@ -288,8 +289,8 @@ export function createValidatorMonitor(metricsRegister, config, genesisTime, log
288
289
  const aggregatorIndex = signedAggregateAndProof.message.aggregatorIndex;
289
290
  const validatorAggregator = validators.get(aggregatorIndex);
290
291
  if (validatorAggregator) {
291
- validatorMonitorMetrics?.aggregatedAttestationTotal.inc({ src });
292
- validatorMonitorMetrics?.aggregatedAttestationDelaySeconds.observe({ src }, delaySec);
292
+ metrics?.validatorMonitor.aggregatedAttestationTotal.inc({ src });
293
+ metrics?.validatorMonitor.aggregatedAttestationDelaySeconds.observe({ src }, delaySec);
293
294
  const summary = getEpochSummary(validatorAggregator, epoch);
294
295
  summary.aggregates += 1;
295
296
  summary.aggregateMinDelay = Math.min(delaySec, summary.aggregateMinDelay ?? Infinity);
@@ -297,8 +298,8 @@ export function createValidatorMonitor(metricsRegister, config, genesisTime, log
297
298
  for (const index of indexedAttestation.attestingIndices) {
298
299
  const validator = validators.get(index);
299
300
  if (validator) {
300
- validatorMonitorMetrics?.attestationInAggregateTotal.inc({ src });
301
- validatorMonitorMetrics?.attestationInAggregateDelaySeconds.observe({ src }, delaySec);
301
+ metrics?.validatorMonitor.attestationInAggregateTotal.inc({ src });
302
+ metrics?.validatorMonitor.attestationInAggregateDelaySeconds.observe({ src }, delaySec);
302
303
  const summary = getEpochSummary(validator, epoch);
303
304
  summary.attestationAggregateInclusions += 1;
304
305
  log("Attestation is included in aggregate", {
@@ -325,9 +326,9 @@ export function createValidatorMonitor(metricsRegister, config, genesisTime, log
325
326
  for (const index of indexedAttestation.attestingIndices) {
326
327
  const validator = validators.get(index);
327
328
  if (validator) {
328
- validatorMonitorMetrics?.attestationInBlockTotal.inc();
329
- validatorMonitorMetrics?.attestationInBlockDelaySlots.observe(delay);
330
- validatorMonitorMetrics?.attestationInBlockParticipants.observe(participants);
329
+ metrics?.validatorMonitor.attestationInBlockTotal.inc();
330
+ metrics?.validatorMonitor.attestationInBlockDelaySlots.observe(delay);
331
+ metrics?.validatorMonitor.attestationInBlockParticipants.observe(participants);
331
332
  const summary = getEpochSummary(validator, epoch);
332
333
  summary.attestationBlockInclusions += 1;
333
334
  if (summary.attestationMinBlockInclusionDistance !== null) {
@@ -363,7 +364,7 @@ export function createValidatorMonitor(metricsRegister, config, genesisTime, log
363
364
  for (const index of syncCommitteeParticipantIndices) {
364
365
  const validator = validators.get(index);
365
366
  if (validator) {
366
- validatorMonitorMetrics?.syncSignatureInAggregateTotal.inc();
367
+ metrics?.validatorMonitor.syncSignatureInAggregateTotal.inc();
367
368
  const summary = getEpochSummary(validator, epoch);
368
369
  summary.syncSignatureAggregateInclusions += 1;
369
370
  }
@@ -415,7 +416,7 @@ export function createValidatorMonitor(metricsRegister, config, genesisTime, log
415
416
  const flags = parseParticipationFlags(previousEpochParticipation.get(index));
416
417
  const attestationSummary = validator.attestations.get(prevEpoch)?.get(prevEpochTargetRoot);
417
418
  const summary = renderAttestationSummary(config, rootCache, attestationSummary, flags);
418
- validatorMonitorMetrics?.prevEpochAttestationSummary.inc({ summary });
419
+ metrics?.validatorMonitor.prevEpochAttestationSummary.inc({ summary });
419
420
  log("Previous epoch attestation", {
420
421
  validator: index,
421
422
  epoch: prevEpoch,
@@ -432,7 +433,7 @@ export function createValidatorMonitor(metricsRegister, config, genesisTime, log
432
433
  const epochSummary = validator.summaries.get(prevEpoch);
433
434
  const proposalSlot = SLOTS_PER_EPOCH * prevEpoch + slotIndex;
434
435
  const summary = renderBlockProposalSummary(config, rootCache, epochSummary, proposalSlot);
435
- validatorMonitorMetrics?.prevEpochBlockProposalSummary.inc({ summary });
436
+ metrics?.validatorMonitor.prevEpochBlockProposalSummary.inc({ summary });
436
437
  log("Previous epoch block proposal", {
437
438
  validator: validatorIndex,
438
439
  slot: proposalSlot,
@@ -448,7 +449,7 @@ export function createValidatorMonitor(metricsRegister, config, genesisTime, log
448
449
  * Should be called whenever Prometheus is scraping.
449
450
  */
450
451
  scrapeMetrics(slotClock) {
451
- validatorMonitorMetrics?.validatorsConnected.set(validators.size);
452
+ metrics?.validatorMonitor.validatorsConnected.set(validators.size);
452
453
  const epoch = computeEpochAtSlot(slotClock);
453
454
  const slotInEpoch = slotClock % SLOTS_PER_EPOCH;
454
455
  // Only start to report on the current epoch once we've progressed past the point where
@@ -462,12 +463,12 @@ export function createValidatorMonitor(metricsRegister, config, genesisTime, log
462
463
  // skip slots on mainnet.
463
464
  const previousEpoch = slotInEpoch > MIN_ATTESTATION_INCLUSION_DELAY + 3 ? epoch - 1 : epoch - 2;
464
465
  // reset() to mimic the behaviour of an aggregated .set({index})
465
- validatorMonitorMetrics?.prevEpochAttestations.reset();
466
- validatorMonitorMetrics?.prevEpochAttestationsMinDelaySeconds.reset();
467
- validatorMonitorMetrics?.prevEpochAttestationAggregateInclusions.reset();
468
- validatorMonitorMetrics?.prevEpochAttestationBlockInclusions.reset();
469
- validatorMonitorMetrics?.prevEpochAttestationBlockMinInclusionDistance.reset();
470
- validatorMonitorMetrics?.prevEpochSyncSignatureAggregateInclusions.reset();
466
+ metrics?.validatorMonitor.prevEpochAttestations.reset();
467
+ metrics?.validatorMonitor.prevEpochAttestationsMinDelaySeconds.reset();
468
+ metrics?.validatorMonitor.prevEpochAttestationAggregateInclusions.reset();
469
+ metrics?.validatorMonitor.prevEpochAttestationBlockInclusions.reset();
470
+ metrics?.validatorMonitor.prevEpochAttestationBlockMinInclusionDistance.reset();
471
+ metrics?.validatorMonitor.prevEpochSyncSignatureAggregateInclusions.reset();
471
472
  let validatorsInSyncCommittee = 0;
472
473
  let prevEpochSyncCommitteeHits = 0;
473
474
  let prevEpochSyncCommitteeMisses = 0;
@@ -483,41 +484,35 @@ export function createValidatorMonitor(metricsRegister, config, genesisTime, log
483
484
  continue;
484
485
  }
485
486
  // Attestations
486
- validatorMonitorMetrics?.prevEpochAttestations.observe(summary.attestations);
487
+ metrics?.validatorMonitor.prevEpochAttestations.observe(summary.attestations);
487
488
  if (summary.attestationMinDelay !== null)
488
- validatorMonitorMetrics?.prevEpochAttestationsMinDelaySeconds.observe(summary.attestationMinDelay);
489
- validatorMonitorMetrics?.prevEpochAttestationAggregateInclusions.observe(summary.attestationAggregateInclusions);
490
- validatorMonitorMetrics?.prevEpochAttestationBlockInclusions.observe(summary.attestationBlockInclusions);
489
+ metrics?.validatorMonitor.prevEpochAttestationsMinDelaySeconds.observe(summary.attestationMinDelay);
490
+ metrics?.validatorMonitor.prevEpochAttestationAggregateInclusions.observe(summary.attestationAggregateInclusions);
491
+ metrics?.validatorMonitor.prevEpochAttestationBlockInclusions.observe(summary.attestationBlockInclusions);
491
492
  if (summary.attestationMinBlockInclusionDistance !== null) {
492
- validatorMonitorMetrics?.prevEpochAttestationBlockMinInclusionDistance.observe(summary.attestationMinBlockInclusionDistance);
493
+ metrics?.validatorMonitor.prevEpochAttestationBlockMinInclusionDistance.observe(summary.attestationMinBlockInclusionDistance);
493
494
  }
494
495
  // Blocks
495
- validatorMonitorMetrics?.prevEpochBeaconBlocks.observe(summary.blocks);
496
+ metrics?.validatorMonitor.prevEpochBeaconBlocks.observe(summary.blocks);
496
497
  if (summary.blockMinDelay !== null)
497
- validatorMonitorMetrics?.prevEpochBeaconBlocksMinDelaySeconds.observe(summary.blockMinDelay);
498
+ metrics?.validatorMonitor.prevEpochBeaconBlocksMinDelaySeconds.observe(summary.blockMinDelay);
498
499
  // Aggregates
499
- validatorMonitorMetrics?.prevEpochAggregatesTotal.observe(summary.aggregates);
500
+ metrics?.validatorMonitor.prevEpochAggregatesTotal.observe(summary.aggregates);
500
501
  if (summary.aggregateMinDelay !== null)
501
- validatorMonitorMetrics?.prevEpochAggregatesMinDelaySeconds.observe(summary.aggregateMinDelay);
502
+ metrics?.validatorMonitor.prevEpochAggregatesMinDelaySeconds.observe(summary.aggregateMinDelay);
502
503
  // Sync committee
503
504
  prevEpochSyncCommitteeHits += summary.syncCommitteeHits;
504
505
  prevEpochSyncCommitteeMisses += summary.syncCommitteeMisses;
505
506
  // Only observe if included in sync committee to prevent distorting metrics
506
507
  if (validatorInSyncCommittee) {
507
- validatorMonitorMetrics?.prevEpochSyncSignatureAggregateInclusions.observe(summary.syncSignatureAggregateInclusions);
508
+ metrics?.validatorMonitor.prevEpochSyncSignatureAggregateInclusions.observe(summary.syncSignatureAggregateInclusions);
508
509
  }
509
510
  }
510
- validatorMonitorMetrics?.validatorsInSyncCommittee.set(validatorsInSyncCommittee);
511
- validatorMonitorMetrics?.prevEpochSyncCommitteeHits.set(prevEpochSyncCommitteeHits);
512
- validatorMonitorMetrics?.prevEpochSyncCommitteeMisses.set(prevEpochSyncCommitteeMisses);
511
+ metrics?.validatorMonitor.validatorsInSyncCommittee.set(validatorsInSyncCommittee);
512
+ metrics?.validatorMonitor.prevEpochSyncCommitteeHits.set(prevEpochSyncCommitteeHits);
513
+ metrics?.validatorMonitor.prevEpochSyncCommitteeMisses.set(prevEpochSyncCommitteeMisses);
513
514
  },
514
515
  };
515
- // Register a single collect() function to run all validatorMonitor metrics
516
- validatorMonitorMetrics?.validatorsConnected.addCollect(() => {
517
- const clockSlot = getCurrentSlot(config, genesisTime);
518
- validatorMonitor.scrapeMetrics(clockSlot);
519
- });
520
- return validatorMonitor;
521
516
  }
522
517
  /**
523
518
  * Best guess to automatically debug why validators do not achieve expected rewards.
@@ -729,216 +724,4 @@ export class RootHexCache {
729
724
  return root;
730
725
  }
731
726
  }
732
- function createValidatorMonitorMetrics(register) {
733
- return {
734
- validatorsConnected: register.gauge({
735
- name: "validator_monitor_validators",
736
- help: "Count of validators that are specifically monitored by this beacon node",
737
- }),
738
- validatorsInSyncCommittee: register.gauge({
739
- name: "validator_monitor_validators_in_sync_committee",
740
- help: "Count of validators monitored by this beacon node that are part of sync committee",
741
- }),
742
- // Validator Monitor Metrics (per-epoch summaries)
743
- // Only track prevEpochOnChainBalance per index
744
- prevEpochOnChainBalance: register.gauge({
745
- name: "validator_monitor_prev_epoch_on_chain_balance",
746
- help: "Balance of validator after an epoch",
747
- labelNames: ["index"],
748
- }),
749
- prevEpochOnChainAttesterHit: register.gauge({
750
- name: "validator_monitor_prev_epoch_on_chain_attester_hit_total",
751
- help: "Incremented if validator's submitted attestation is included in some blocks",
752
- }),
753
- prevEpochOnChainAttesterMiss: register.gauge({
754
- name: "validator_monitor_prev_epoch_on_chain_attester_miss_total",
755
- help: "Incremented if validator's submitted attestation is not included in any blocks",
756
- }),
757
- prevEpochOnChainSourceAttesterHit: register.gauge({
758
- name: "validator_monitor_prev_epoch_on_chain_source_attester_hit_total",
759
- help: "Incremented if the validator is flagged as a previous epoch source attester during per epoch processing",
760
- }),
761
- prevEpochOnChainSourceAttesterMiss: register.gauge({
762
- name: "validator_monitor_prev_epoch_on_chain_source_attester_miss_total",
763
- help: "Incremented if the validator is not flagged as a previous epoch source attester during per epoch processing",
764
- }),
765
- prevEpochOnChainHeadAttesterHit: register.gauge({
766
- name: "validator_monitor_prev_epoch_on_chain_head_attester_hit_total",
767
- help: "Incremented if the validator is flagged as a previous epoch head attester during per epoch processing",
768
- }),
769
- prevEpochOnChainHeadAttesterMiss: register.gauge({
770
- name: "validator_monitor_prev_epoch_on_chain_head_attester_miss_total",
771
- help: "Incremented if the validator is not flagged as a previous epoch head attester during per epoch processing",
772
- }),
773
- prevOnChainAttesterCorrectHead: register.gauge({
774
- name: "validator_monitor_prev_epoch_on_chain_attester_correct_head_total",
775
- help: "Total count of times a validator votes correct head",
776
- }),
777
- prevOnChainAttesterIncorrectHead: register.gauge({
778
- name: "validator_monitor_prev_epoch_on_chain_attester_incorrect_head_total",
779
- help: "Total count of times a validator votes incorrect head",
780
- }),
781
- prevEpochOnChainTargetAttesterHit: register.gauge({
782
- name: "validator_monitor_prev_epoch_on_chain_target_attester_hit_total",
783
- help: "Incremented if the validator is flagged as a previous epoch target attester during per epoch processing",
784
- }),
785
- prevEpochOnChainTargetAttesterMiss: register.gauge({
786
- name: "validator_monitor_prev_epoch_on_chain_target_attester_miss_total",
787
- help: "Incremented if the validator is not flagged as a previous epoch target attester during per epoch processing",
788
- }),
789
- prevEpochOnChainInclusionDistance: register.histogram({
790
- name: "validator_monitor_prev_epoch_on_chain_inclusion_distance",
791
- help: "The attestation inclusion distance calculated during per epoch processing",
792
- // min inclusion distance is 1, usual values are 1,2,3 max is 32 (1 epoch)
793
- buckets: [1, 2, 3, 5, 10, 32],
794
- }),
795
- prevEpochAttestations: register.histogram({
796
- name: "validator_monitor_prev_epoch_attestations",
797
- help: "The number of unagg. attestations seen in the previous epoch",
798
- buckets: [0, 1, 2, 3],
799
- }),
800
- prevEpochAttestationsMinDelaySeconds: register.histogram({
801
- name: "validator_monitor_prev_epoch_attestations_min_delay_seconds",
802
- help: "The min delay between when the validator should send the attestation and when it was received",
803
- buckets: [0.1, 0.25, 0.5, 1, 2, 5, 10],
804
- }),
805
- prevEpochAttestationAggregateInclusions: register.histogram({
806
- name: "validator_monitor_prev_epoch_attestation_aggregate_inclusions",
807
- help: "The count of times an attestation was seen inside an aggregate",
808
- buckets: [0, 1, 2, 3, 5, 10],
809
- }),
810
- prevEpochAttestationBlockInclusions: register.histogram({
811
- name: "validator_monitor_prev_epoch_attestation_block_inclusions",
812
- help: "The count of times an attestation was seen inside a block",
813
- buckets: [0, 1, 2, 3, 5],
814
- }),
815
- prevEpochAttestationBlockMinInclusionDistance: register.histogram({
816
- name: "validator_monitor_prev_epoch_attestation_block_min_inclusion_distance",
817
- help: "The minimum inclusion distance observed for the inclusion of an attestation in a block",
818
- buckets: [1, 2, 3, 5, 10, 32],
819
- }),
820
- prevEpochBeaconBlocks: register.histogram({
821
- name: "validator_monitor_prev_epoch_beacon_blocks",
822
- help: "The number of beacon_blocks seen in the previous epoch",
823
- buckets: [0, 1, 2, 3, 5, 10],
824
- }),
825
- prevEpochBeaconBlocksMinDelaySeconds: register.histogram({
826
- name: "validator_monitor_prev_epoch_beacon_blocks_min_delay_seconds",
827
- help: "The min delay between when the validator should send the block and when it was received",
828
- buckets: [0.1, 0.25, 0.5, 1, 2, 5, 10],
829
- }),
830
- prevEpochAggregatesTotal: register.histogram({
831
- name: "validator_monitor_prev_epoch_aggregates",
832
- help: "The number of aggregates seen in the previous epoch",
833
- buckets: [0, 1, 2, 3, 5, 10],
834
- }),
835
- prevEpochAggregatesMinDelaySeconds: register.histogram({
836
- name: "validator_monitor_prev_epoch_aggregates_min_delay_seconds",
837
- help: "The min delay between when the validator should send the aggregate and when it was received",
838
- buckets: [0.1, 0.25, 0.5, 1, 2, 5, 10],
839
- }),
840
- prevEpochSyncCommitteeHits: register.gauge({
841
- name: "validator_monitor_prev_epoch_sync_committee_hits",
842
- help: "Count of times in prev epoch connected validators participated in imported block's syncAggregate",
843
- }),
844
- prevEpochSyncCommitteeMisses: register.gauge({
845
- name: "validator_monitor_prev_epoch_sync_committee_misses",
846
- help: "Count of times in prev epoch connected validators fail to participate in imported block's syncAggregate",
847
- }),
848
- prevEpochSyncSignatureAggregateInclusions: register.histogram({
849
- name: "validator_monitor_prev_epoch_sync_signature_aggregate_inclusions",
850
- help: "The count of times a sync signature was seen inside an aggregate",
851
- buckets: [0, 1, 2, 3, 5, 10],
852
- }),
853
- prevEpochAttestationSummary: register.gauge({
854
- name: "validator_monitor_prev_epoch_attestation_summary",
855
- help: "Best guess of the node of the result of previous epoch validators attestation actions and causality",
856
- labelNames: ["summary"],
857
- }),
858
- prevEpochBlockProposalSummary: register.gauge({
859
- name: "validator_monitor_prev_epoch_block_proposal_summary",
860
- help: "Best guess of the node of the result of previous epoch validators block proposal actions and causality",
861
- labelNames: ["summary"],
862
- }),
863
- // Validator Monitor Metrics (real-time)
864
- unaggregatedAttestationTotal: register.gauge({
865
- name: "validator_monitor_unaggregated_attestation_total",
866
- help: "Number of unaggregated attestations seen",
867
- labelNames: ["src"],
868
- }),
869
- unaggregatedAttestationDelaySeconds: register.histogram({
870
- name: "validator_monitor_unaggregated_attestation_delay_seconds",
871
- help: "The delay between when the validator should send the attestation and when it was received",
872
- labelNames: ["src"],
873
- buckets: [0.1, 0.25, 0.5, 1, 2, 5, 10],
874
- }),
875
- unaggregatedAttestationSubmittedSentPeers: register.histogram({
876
- name: "validator_monitor_unaggregated_attestation_submitted_sent_peers_count",
877
- help: "Number of peers that an unaggregated attestation sent to",
878
- // as of Apr 2022, most of the time we sent to >30 peers per attestations
879
- // these bucket values just base on that fact to get equal range
880
- // refine if we want more reasonable values
881
- buckets: [0, 10, 20, 30],
882
- }),
883
- aggregatedAttestationTotal: register.gauge({
884
- name: "validator_monitor_aggregated_attestation_total",
885
- help: "Number of aggregated attestations seen",
886
- labelNames: ["src"],
887
- }),
888
- aggregatedAttestationDelaySeconds: register.histogram({
889
- name: "validator_monitor_aggregated_attestation_delay_seconds",
890
- help: "The delay between then the validator should send the aggregate and when it was received",
891
- labelNames: ["src"],
892
- buckets: [0.1, 0.25, 0.5, 1, 2, 5, 10],
893
- }),
894
- attestationInAggregateTotal: register.gauge({
895
- name: "validator_monitor_attestation_in_aggregate_total",
896
- help: "Number of times an attestation has been seen in an aggregate",
897
- labelNames: ["src"],
898
- }),
899
- attestationInAggregateDelaySeconds: register.histogram({
900
- name: "validator_monitor_attestation_in_aggregate_delay_seconds",
901
- help: "The delay between when the validator should send the aggregate and when it was received",
902
- labelNames: ["src"],
903
- buckets: [0.1, 0.25, 0.5, 1, 2, 5, 10],
904
- }),
905
- attestationInBlockTotal: register.gauge({
906
- name: "validator_monitor_attestation_in_block_total",
907
- help: "Number of times an attestation has been seen in a block",
908
- }),
909
- attestationInBlockDelaySlots: register.histogram({
910
- name: "validator_monitor_attestation_in_block_delay_slots",
911
- help: "The excess slots (beyond the minimum delay) between the attestation slot and the block slot",
912
- buckets: [0.1, 0.25, 0.5, 1, 2, 5, 10],
913
- }),
914
- attestationInBlockParticipants: register.histogram({
915
- name: "validator_monitor_attestation_in_block_participants",
916
- help: "The total participants in attestations of monitored validators included in blocks",
917
- buckets: [1, 5, 20, 50, 100, 200],
918
- }),
919
- syncSignatureInAggregateTotal: register.gauge({
920
- name: "validator_monitor_sync_signature_in_aggregate_total",
921
- help: "Number of times a sync signature has been seen in an aggregate",
922
- }),
923
- beaconBlockTotal: register.gauge({
924
- name: "validator_monitor_beacon_block_total",
925
- help: "Total number of beacon blocks seen",
926
- labelNames: ["src"],
927
- }),
928
- beaconBlockDelaySeconds: register.histogram({
929
- name: "validator_monitor_beacon_block_delay_seconds",
930
- help: "The delay between when the validator should send the block and when it was received",
931
- labelNames: ["src"],
932
- // we also want other nodes to received our published before 4s so add bucket 3 and 3.5
933
- buckets: [0.1, 0.25, 0.5, 1, 2, 3, 4, 6, 10],
934
- }),
935
- // Only for known
936
- proposerBalanceDeltaKnown: register.histogram({
937
- name: "validator_monitor_proposer_balance_delta_known_gwei",
938
- help: "Balance delta of known block proposer after importing a valid block",
939
- // Jul22 mainnet block reward is consistently between 29,000,000-28,000,000 GWei
940
- buckets: [10_000, 100_000, 1e6, 10e6, 20e6, 50e6, 100e6, 1000e6],
941
- }),
942
- };
943
- }
944
727
  //# sourceMappingURL=validatorMonitor.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"validatorMonitor.js","sourceRoot":"","sources":["../../src/chain/validatorMonitor.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"validatorMonitor.js","sourceRoot":"","sources":["../../src/chain/validatorMonitor.ts"],"names":[],"mappings":"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"}