@lodestar/beacon-node 1.29.0-dev.c76151c862 → 1.29.0-dev.cdfdfec6ca

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 (59) hide show
  1. package/lib/api/impl/beacon/blocks/index.d.ts +1 -1
  2. package/lib/api/impl/beacon/blocks/index.js +3 -3
  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/validator/index.js +5 -4
  7. package/lib/api/impl/validator/index.js.map +1 -1
  8. package/lib/chain/archiveStore/historicalState/getHistoricalState.js +1 -1
  9. package/lib/chain/archiveStore/historicalState/getHistoricalState.js.map +1 -1
  10. package/lib/chain/archiveStore/historicalState/worker.js +0 -1
  11. package/lib/chain/archiveStore/historicalState/worker.js.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/verifyBlock.js +1 -1
  15. package/lib/chain/blocks/verifyBlock.js.map +1 -1
  16. package/lib/chain/blocks/verifyBlocksStateTransitionOnly.d.ts +2 -1
  17. package/lib/chain/blocks/verifyBlocksStateTransitionOnly.js +2 -2
  18. package/lib/chain/blocks/verifyBlocksStateTransitionOnly.js.map +1 -1
  19. package/lib/chain/chain.d.ts +4 -1
  20. package/lib/chain/chain.js +10 -3
  21. package/lib/chain/chain.js.map +1 -1
  22. package/lib/chain/interface.d.ts +2 -0
  23. package/lib/chain/interface.js.map +1 -1
  24. package/lib/chain/opPools/aggregatedAttestationPool.d.ts +28 -8
  25. package/lib/chain/opPools/aggregatedAttestationPool.js +190 -75
  26. package/lib/chain/opPools/aggregatedAttestationPool.js.map +1 -1
  27. package/lib/chain/options.d.ts +2 -1
  28. package/lib/chain/options.js.map +1 -1
  29. package/lib/chain/produceBlock/computeNewStateRoot.js +1 -1
  30. package/lib/chain/produceBlock/computeNewStateRoot.js.map +1 -1
  31. package/lib/chain/regen/queued.d.ts +1 -0
  32. package/lib/chain/regen/queued.js +1 -0
  33. package/lib/chain/regen/queued.js.map +1 -1
  34. package/lib/chain/regen/regen.d.ts +3 -0
  35. package/lib/chain/regen/regen.js +3 -3
  36. package/lib/chain/regen/regen.js.map +1 -1
  37. package/lib/{metrics → chain}/validatorMonitor.d.ts +3 -2
  38. package/lib/{metrics → chain}/validatorMonitor.js +55 -52
  39. package/lib/chain/validatorMonitor.js.map +1 -0
  40. package/lib/metrics/metrics/beacon.js +1 -1
  41. package/lib/metrics/metrics/beacon.js.map +1 -1
  42. package/lib/metrics/metrics/lodestar.d.ts +43 -3
  43. package/lib/metrics/metrics/lodestar.js +82 -5
  44. package/lib/metrics/metrics/lodestar.js.map +1 -1
  45. package/lib/metrics/metrics.d.ts +2 -6
  46. package/lib/metrics/metrics.js +2 -12
  47. package/lib/metrics/metrics.js.map +1 -1
  48. package/lib/metrics/options.d.ts +2 -3
  49. package/lib/metrics/options.js.map +1 -1
  50. package/lib/network/processor/gossipHandlers.js +7 -6
  51. package/lib/network/processor/gossipHandlers.js.map +1 -1
  52. package/lib/node/nodejs.d.ts +4 -1
  53. package/lib/node/nodejs.js +9 -2
  54. package/lib/node/nodejs.js.map +1 -1
  55. package/lib/node/options.d.ts +2 -0
  56. package/lib/node/options.js +2 -0
  57. package/lib/node/options.js.map +1 -1
  58. package/package.json +14 -14
  59. package/lib/metrics/validatorMonitor.js.map +0 -1
@@ -15,6 +15,14 @@ import { pruneBySlot, signatureFromBytesNoCheck } from "./utils.js";
15
15
  * how does participation looks like in attestations.
16
16
  */
17
17
  const MAX_RETAINED_ATTESTATIONS_PER_GROUP = 4;
18
+ /**
19
+ * This is the same to MAX_RETAINED_ATTESTATIONS_PER_GROUP but for electra.
20
+ * As monitored in hoodi, max attestations per group could be up to > 10. But since electra we can
21
+ * consolidate attestations across committees, so we can just pick up to 8 attestations per group.
22
+ * Also the MatchingDataAttestationGroup.getAttestationsForBlock() is improved not to have to scan each
23
+ * committee member for previous slot.
24
+ */
25
+ const MAX_RETAINED_ATTESTATIONS_PER_GROUP_ELECTRA = 8;
18
26
  /**
19
27
  * Pre-electra, each slot has 64 committees, and each block has 128 attestations max so in average
20
28
  * we get 2 attestation per groups.
@@ -24,14 +32,23 @@ const MAX_RETAINED_ATTESTATIONS_PER_GROUP = 4;
24
32
  */
25
33
  const MAX_ATTESTATIONS_PER_GROUP = 3;
26
34
  /**
27
- * For electra, each block has up to 8 aggregated attestations, assuming there are 3 for the "best"
28
- * attestation data, there are still 5 for other attestation data so this constant is still good.
29
- * We should separate to 2 constant based on conditions of different networks
35
+ * For electra, there is on chain aggregation of attestations across committees, so we can just pick up to 8
36
+ * attestations per group, sort by scores to get first 8.
37
+ * The new algorithm helps not to include useless attestations so we usually cannot get up to 8.
38
+ * The more consolidations we have per block, the less likely we have to scan all slots in the pool.
39
+ * This is max attestations returned per group, it does not make sense to have this number greater
40
+ * than MAX_RETAINED_ATTESTATIONS_PER_GROUP_ELECTRA or MAX_ATTESTATIONS_ELECTRA.
30
41
  */
31
- const MAX_ATTESTATIONS_PER_GROUP_ELECTRA = 3;
42
+ const MAX_ATTESTATIONS_PER_GROUP_ELECTRA = Math.min(MAX_RETAINED_ATTESTATIONS_PER_GROUP_ELECTRA, MAX_ATTESTATIONS_ELECTRA);
43
+ export var ScannedSlotsTerminationReason;
44
+ (function (ScannedSlotsTerminationReason) {
45
+ ScannedSlotsTerminationReason["MaxConsolidationReached"] = "max_consolidation_reached";
46
+ ScannedSlotsTerminationReason["ScannedAllSlots"] = "scanned_all_slots";
47
+ ScannedSlotsTerminationReason["SlotBeforePreviousEpoch"] = "slot_before_previous_epoch";
48
+ })(ScannedSlotsTerminationReason || (ScannedSlotsTerminationReason = {}));
32
49
  /**
33
50
  * Maintain a pool of aggregated attestations. Attestations can be retrieved for inclusion in a block
34
- * or api. The returned attestations are aggregated to maximise the number of validators that can be
51
+ * or api. The returned attestations are aggregated to maximize the number of validators that can be
35
52
  * included.
36
53
  * Note that we want to remove attestations with attesters that were included in the chain.
37
54
  */
@@ -78,7 +95,7 @@ export class AggregatedAttestationPool {
78
95
  assert.notNull(committeeIndex, "Committee index should not be null in aggregated attestation pool");
79
96
  let attestationGroup = attestationGroupByIndex.get(committeeIndex);
80
97
  if (!attestationGroup) {
81
- attestationGroup = new MatchingDataAttestationGroup(committee, attestation.data);
98
+ attestationGroup = new MatchingDataAttestationGroup(this.config, committee, attestation.data);
82
99
  attestationGroupByIndex.set(committeeIndex, attestationGroup);
83
100
  }
84
101
  return attestationGroup.add({
@@ -134,16 +151,16 @@ export class AggregatedAttestationPool {
134
151
  (ForkSeq[fork] >= ForkSeq.deneb || stateSlot <= slot + SLOTS_PER_EPOCH))) {
135
152
  continue; // Invalid attestations
136
153
  }
137
- const slotDelta = stateSlot - slot;
154
+ const inclusionDistance = stateSlot - slot;
138
155
  for (const attestationGroupByIndex of attestationGroupByIndexByDataHash.values()) {
139
156
  for (const [committeeIndex, attestationGroup] of attestationGroupByIndex.entries()) {
140
- const notSeenAttestingIndices = notSeenValidatorsFn(epoch, slot, committeeIndex);
141
- if (notSeenAttestingIndices === null || notSeenAttestingIndices.size === 0) {
157
+ const notSeenCommitteeMembers = notSeenValidatorsFn(epoch, slot, committeeIndex);
158
+ if (notSeenCommitteeMembers === null || notSeenCommitteeMembers.size === 0) {
142
159
  continue;
143
160
  }
144
161
  if (slotCount > 2 &&
145
162
  attestationsByScore.length >= MAX_ATTESTATIONS &&
146
- notSeenAttestingIndices.size / slotDelta < minScore) {
163
+ notSeenCommitteeMembers.size / inclusionDistance < minScore) {
147
164
  // after 2 slots, there are a good chance that we have 2 * MAX_ATTESTATIONS attestations and break the for loop early
148
165
  // if not, we may have to scan all slots in the pool
149
166
  // if we have enough attestations and the max possible score is lower than scores of `attestationsByScore`, we should skip
@@ -160,8 +177,9 @@ export class AggregatedAttestationPool {
160
177
  // These properties should not change after being validate in gossip
161
178
  // IF they have to be validated, do it only with one attestation per group since same data
162
179
  // The committeeCountPerSlot can be precomputed once per slot
163
- for (const { attestation, notSeenAttesterCount } of attestationGroup.getAttestationsForBlock(fork, notSeenAttestingIndices)) {
164
- const score = notSeenAttesterCount / slotDelta;
180
+ const getAttestationsResult = attestationGroup.getAttestationsForBlock(fork, state.epochCtx.effectiveBalanceIncrements, notSeenCommitteeMembers, MAX_ATTESTATIONS_PER_GROUP);
181
+ for (const { attestation, newSeenEffectiveBalance } of getAttestationsResult.result) {
182
+ const score = newSeenEffectiveBalance / inclusionDistance;
165
183
  if (score < minScore) {
166
184
  minScore = score;
167
185
  }
@@ -200,6 +218,8 @@ export class AggregatedAttestationPool {
200
218
  const slots = Array.from(this.attestationGroupByIndexByDataHexBySlot.keys()).sort((a, b) => b - a);
201
219
  // Track score of each `AttestationsConsolidation`
202
220
  const consolidations = new Map();
221
+ let scannedSlots = 0;
222
+ let stopReason = null;
203
223
  slot: for (const slot of slots) {
204
224
  const attestationGroupByIndexByDataHash = this.attestationGroupByIndexByDataHexBySlot.get(slot);
205
225
  // should not happen
@@ -207,16 +227,24 @@ export class AggregatedAttestationPool {
207
227
  throw Error(`No aggregated attestation pool for slot=${slot}`);
208
228
  }
209
229
  const epoch = computeEpochAtSlot(slot);
230
+ if (epoch < statePrevEpoch) {
231
+ // we process slot in desc order, this means next slot is not eligible, we should stop
232
+ stopReason = ScannedSlotsTerminationReason.SlotBeforePreviousEpoch;
233
+ break;
234
+ }
210
235
  // validateAttestation condition: Attestation target epoch not in previous or current epoch
211
236
  if (!(epoch === stateEpoch || epoch === statePrevEpoch)) {
212
237
  continue; // Invalid attestations
213
238
  }
214
239
  // validateAttestation condition: Attestation slot not within inclusion window
215
240
  if (!(slot + MIN_ATTESTATION_INCLUSION_DELAY <= stateSlot)) {
241
+ // this should not happen as slot is decreased so no need to track in metric
216
242
  continue; // Invalid attestations
217
243
  }
218
- const slotDelta = stateSlot - slot;
219
- // CommitteeIndex 0 1 2 ... Consolidationn (sameAttDataCons)
244
+ const inclusionDistance = stateSlot - slot;
245
+ let returnedAttestationsPerSlot = 0;
246
+ let totalAttestationsPerSlot = 0;
247
+ // CommitteeIndex 0 1 2 ... Consolidation (sameAttDataCons)
220
248
  // Attestations att00 --- att10 --- att20 --- 0 (att 00 10 20)
221
249
  // att01 --- - --- att21 --- 1 (att 01 __ 21)
222
250
  // - --- - --- att22 --- 2 (att __ __ 22)
@@ -225,14 +253,17 @@ export class AggregatedAttestationPool {
225
253
  const sameAttDataCons = [];
226
254
  const allAttestationGroups = Array.from(attestationGroupByIndex.values());
227
255
  if (allAttestationGroups.length === 0) {
256
+ this.metrics?.opPool.aggregatedAttestationPool.packedAttestations.emptyAttestationData.inc();
228
257
  continue;
229
258
  }
230
259
  if (!validateAttestationDataFn(allAttestationGroups[0].data)) {
260
+ this.metrics?.opPool.aggregatedAttestationPool.packedAttestations.invalidAttestationData.inc();
231
261
  continue;
232
262
  }
233
263
  for (const [committeeIndex, attestationGroup] of attestationGroupByIndex.entries()) {
234
- const notSeenAttestingIndices = notSeenValidatorsFn(epoch, slot, committeeIndex);
235
- if (notSeenAttestingIndices === null || notSeenAttestingIndices.size === 0) {
264
+ const notSeenCommitteeMembers = notSeenValidatorsFn(epoch, slot, committeeIndex);
265
+ if (notSeenCommitteeMembers === null || notSeenCommitteeMembers.size === 0) {
266
+ this.metrics?.opPool.aggregatedAttestationPool.packedAttestations.seenCommittees.inc();
236
267
  continue;
237
268
  }
238
269
  // cannot apply this optimization like pre-electra because consolidation needs to be done across committees:
@@ -244,37 +275,73 @@ export class AggregatedAttestationPool {
244
275
  // These properties should not change after being validate in gossip
245
276
  // IF they have to be validated, do it only with one attestation per group since same data
246
277
  // The committeeCountPerSlot can be precomputed once per slot
247
- for (const [i, attestationNonParticipation] of attestationGroup
248
- .getAttestationsForBlock(fork, notSeenAttestingIndices)
249
- .entries()) {
278
+ const getAttestationGroupResult = attestationGroup.getAttestationsForBlock(fork, state.epochCtx.effectiveBalanceIncrements, notSeenCommitteeMembers, MAX_ATTESTATIONS_PER_GROUP_ELECTRA);
279
+ const attestationsSameGroup = getAttestationGroupResult.result;
280
+ returnedAttestationsPerSlot += attestationsSameGroup.length;
281
+ totalAttestationsPerSlot += getAttestationGroupResult.totalAttestations;
282
+ for (const [i, attestationNonParticipation] of attestationsSameGroup.entries()) {
283
+ // sameAttDataCons shares the same index for different committees so we use index `i` here
250
284
  if (sameAttDataCons[i] === undefined) {
251
285
  sameAttDataCons[i] = {
252
286
  byCommittee: new Map(),
253
287
  attData: attestationNonParticipation.attestation.data,
254
- totalNotSeenCount: 0,
288
+ totalNewSeenEffectiveBalance: 0,
289
+ newSeenAttesters: 0,
290
+ notSeenAttesters: 0,
291
+ totalAttesters: 0,
255
292
  };
256
293
  }
257
- sameAttDataCons[i].byCommittee.set(committeeIndex, attestationNonParticipation);
258
- sameAttDataCons[i].totalNotSeenCount += attestationNonParticipation.notSeenAttesterCount;
294
+ const sameAttDataCon = sameAttDataCons[i];
295
+ // committeeIndex was from a map so it should be unique, but just in case
296
+ if (!sameAttDataCon.byCommittee.has(committeeIndex)) {
297
+ sameAttDataCon.byCommittee.set(committeeIndex, attestationNonParticipation);
298
+ sameAttDataCon.totalNewSeenEffectiveBalance += attestationNonParticipation.newSeenEffectiveBalance;
299
+ sameAttDataCon.newSeenAttesters += attestationNonParticipation.newSeenAttesters;
300
+ sameAttDataCon.notSeenAttesters += attestationNonParticipation.notSeenCommitteeMembers.size;
301
+ sameAttDataCon.totalAttesters += attestationGroup.committee.length;
302
+ }
259
303
  }
260
304
  } // all committees are processed
305
+ this.metrics?.opPool.aggregatedAttestationPool.packedAttestations.returnedAttestations.set({ inclusionDistance }, returnedAttestationsPerSlot);
306
+ this.metrics?.opPool.aggregatedAttestationPool.packedAttestations.scannedAttestations.set({ inclusionDistance }, totalAttestationsPerSlot);
261
307
  // after all committees are processed, we have a list of sameAttDataCons
262
308
  for (const consolidation of sameAttDataCons) {
263
- const score = consolidation.totalNotSeenCount / slotDelta;
309
+ const score = consolidation.totalNewSeenEffectiveBalance / inclusionDistance;
264
310
  consolidations.set(consolidation, score);
265
311
  // Stop accumulating attestations there are enough that may have good scoring
266
312
  if (consolidations.size >= MAX_ATTESTATIONS_ELECTRA * 2) {
313
+ stopReason = ScannedSlotsTerminationReason.MaxConsolidationReached;
267
314
  break slot;
268
315
  }
269
316
  }
270
317
  }
318
+ // finished processing a slot
319
+ scannedSlots++;
271
320
  }
321
+ this.metrics?.opPool.aggregatedAttestationPool.packedAttestations.totalConsolidations.set(consolidations.size);
272
322
  const sortedConsolidationsByScore = Array.from(consolidations.entries())
273
323
  .sort((a, b) => b[1] - a[1])
274
324
  .map(([consolidation, _]) => consolidation)
275
325
  .slice(0, MAX_ATTESTATIONS_ELECTRA);
276
326
  // on chain aggregation is expensive, only do it after all
277
- return sortedConsolidationsByScore.map(aggregateConsolidation);
327
+ const packedAttestationsMetrics = this.metrics?.opPool.aggregatedAttestationPool.packedAttestations;
328
+ const packedAttestations = new Array(sortedConsolidationsByScore.length);
329
+ for (const [i, consolidation] of sortedConsolidationsByScore.entries()) {
330
+ packedAttestations[i] = aggregateConsolidation(consolidation);
331
+ // record metrics of packed attestations
332
+ packedAttestationsMetrics?.committeeCount.set({ index: i }, consolidation.byCommittee.size);
333
+ packedAttestationsMetrics?.totalAttesters.set({ index: i }, consolidation.totalAttesters);
334
+ packedAttestationsMetrics?.nonParticipation.set({ index: i }, consolidation.notSeenAttesters);
335
+ packedAttestationsMetrics?.inclusionDistance.set({ index: i }, stateSlot - packedAttestations[i].data.slot);
336
+ packedAttestationsMetrics?.newSeenAttesters.set({ index: i }, consolidation.newSeenAttesters);
337
+ packedAttestationsMetrics?.totalEffectiveBalance.set({ index: i }, consolidation.totalNewSeenEffectiveBalance);
338
+ }
339
+ if (stopReason === null) {
340
+ stopReason = ScannedSlotsTerminationReason.ScannedAllSlots;
341
+ }
342
+ packedAttestationsMetrics?.scannedSlots.set({ reason: stopReason }, scannedSlots);
343
+ packedAttestationsMetrics?.poolSlots.set(slots.length);
344
+ return packedAttestations;
278
345
  }
279
346
  /**
280
347
  * Get all attestations optionally filtered by `attestation.data.slot`
@@ -304,36 +371,38 @@ export class AggregatedAttestationPool {
304
371
  return attestations;
305
372
  }
306
373
  onScrapeMetrics(metrics) {
307
- const aggregatedAttestationPoolMetrics = metrics.opPool.aggregatedAttestationPool;
374
+ const poolMetrics = metrics.opPool.aggregatedAttestationPool;
308
375
  const allSlots = Array.from(this.attestationGroupByIndexByDataHexBySlot.keys());
376
+ // last item is current slot, we want the previous one, if available.
377
+ const previousSlot = allSlots.length > 1 ? (allSlots.at(-2) ?? null) : null;
378
+ let attestationCount = 0;
379
+ let attestationDataCount = 0;
309
380
  // always record the previous slot because the current slot may not be finished yet, we may receive more attestations
310
- if (allSlots.length > 1) {
311
- // last item is current slot, we want the previous one
312
- const previousSlot = allSlots.at(-2);
313
- if (previousSlot == null) {
314
- // only happen right after we start the node
315
- return;
316
- }
381
+ if (previousSlot !== null) {
317
382
  const groupByIndexByDataHex = this.attestationGroupByIndexByDataHexBySlot.get(previousSlot);
318
383
  if (groupByIndexByDataHex != null) {
319
- aggregatedAttestationPoolMetrics.attDataPerSlot.set(groupByIndexByDataHex.size);
384
+ poolMetrics.attDataPerSlot.set(groupByIndexByDataHex.size);
320
385
  let maxAttestations = 0;
321
386
  let committeeCount = 0;
322
387
  for (const groupByIndex of groupByIndexByDataHex.values()) {
388
+ attestationDataCount += groupByIndex.size;
323
389
  for (const group of groupByIndex.values()) {
324
- const attestationCount = group.getAttestationCount();
325
- maxAttestations = Math.max(maxAttestations, attestationCount);
326
- aggregatedAttestationPoolMetrics.attestationsPerCommittee.observe(attestationCount);
390
+ const attestationCountInGroup = group.getAttestationCount();
391
+ maxAttestations = Math.max(maxAttestations, attestationCountInGroup);
392
+ poolMetrics.attestationsPerCommittee.observe(attestationCountInGroup);
327
393
  committeeCount += 1;
394
+ attestationCount += attestationCountInGroup;
328
395
  }
329
396
  }
330
- aggregatedAttestationPoolMetrics.maxAttestationsPerCommittee.set(maxAttestations);
331
- aggregatedAttestationPoolMetrics.committeesPerSlot.set(committeeCount);
397
+ poolMetrics.maxAttestationsPerCommittee.set(maxAttestations);
398
+ poolMetrics.committeesPerSlot.set(committeeCount);
332
399
  }
333
400
  }
334
- let attestationCount = 0;
335
- let attestationDataCount = 0;
336
- for (const attestationGroupByIndexByDataHex of this.attestationGroupByIndexByDataHexBySlot.values()) {
401
+ for (const [slot, attestationGroupByIndexByDataHex] of this.attestationGroupByIndexByDataHexBySlot) {
402
+ // We have already updated attestationDataCount and attestationCount when looping over `previousSlot`
403
+ if (slot === previousSlot) {
404
+ continue;
405
+ }
337
406
  for (const attestationGroupByIndex of attestationGroupByIndexByDataHex.values()) {
338
407
  attestationDataCount += attestationGroupByIndex.size;
339
408
  for (const attestationGroup of attestationGroupByIndex.values()) {
@@ -341,8 +410,8 @@ export class AggregatedAttestationPool {
341
410
  }
342
411
  }
343
412
  }
344
- aggregatedAttestationPoolMetrics.size.set(attestationCount);
345
- aggregatedAttestationPoolMetrics.uniqueData.set(attestationDataCount);
413
+ poolMetrics.size.set(attestationCount);
414
+ poolMetrics.uniqueData.set(attestationDataCount);
346
415
  }
347
416
  }
348
417
  /**
@@ -352,9 +421,8 @@ export class AggregatedAttestationPool {
352
421
  * Use committee instead of aggregationBits to improve performance.
353
422
  */
354
423
  export class MatchingDataAttestationGroup {
355
- constructor(
356
- // TODO: no need committee here
357
- committee, data) {
424
+ constructor(config, committee, data) {
425
+ this.config = config;
358
426
  this.committee = committee;
359
427
  this.data = data;
360
428
  this.attestations = [];
@@ -394,42 +462,86 @@ export class MatchingDataAttestationGroup {
394
462
  this.attestations.splice(index, 1);
395
463
  }
396
464
  this.attestations.push(attestation);
465
+ const maxRetained = isForkPostElectra(this.config.getForkName(this.data.slot))
466
+ ? MAX_RETAINED_ATTESTATIONS_PER_GROUP_ELECTRA
467
+ : MAX_RETAINED_ATTESTATIONS_PER_GROUP;
397
468
  // Remove the attestations with less participation
398
- if (this.attestations.length > MAX_RETAINED_ATTESTATIONS_PER_GROUP) {
469
+ if (this.attestations.length > maxRetained) {
470
+ // ideally we should sort by effective balance but there is no state/effectiveBalance here
471
+ // it's rare to see > 8 attestations per group in electra anyway
399
472
  this.attestations.sort((a, b) => b.trueBitsCount - a.trueBitsCount);
400
- this.attestations.splice(MAX_RETAINED_ATTESTATIONS_PER_GROUP, this.attestations.length - MAX_RETAINED_ATTESTATIONS_PER_GROUP);
473
+ this.attestations.splice(maxRetained, this.attestations.length - maxRetained);
401
474
  }
402
475
  return InsertOutcome.NewData;
403
476
  }
404
477
  /**
405
478
  * Get AttestationNonParticipant for this groups of same attestation data.
406
- * @param notSeenAttestingIndices not seen attestting indices, i.e. indices in the same committee
479
+ * @param notSeenCommitteeMembers not seen committee members, i.e. indices in the same committee (starting from 0 till (committee.size - 1))
407
480
  * @returns an array of AttestationNonParticipant
408
481
  */
409
- getAttestationsForBlock(fork, notSeenAttestingIndices) {
482
+ getAttestationsForBlock(fork, effectiveBalanceIncrements, notSeenCommitteeMembers, maxAttestation) {
410
483
  const attestations = [];
484
+ const excluded = new Set();
485
+ for (let i = 0; i < maxAttestation; i++) {
486
+ const mostValuableAttestation = this.getMostValuableAttestation(fork, effectiveBalanceIncrements, notSeenCommitteeMembers, excluded);
487
+ if (mostValuableAttestation === null) {
488
+ // stop looking for attestation because all attesters are seen or no attestation has missing attesters
489
+ break;
490
+ }
491
+ attestations.push(mostValuableAttestation);
492
+ excluded.add(mostValuableAttestation.attestation);
493
+ // this will narrow down the notSeenCommitteeMembers for the next iteration
494
+ // so usually it will not take much time, however it could take more time during
495
+ // non-finality of the network when there is low participation, but in this case
496
+ // we pre-aggregate aggregated attestations and bound the total attestations per group
497
+ notSeenCommitteeMembers = mostValuableAttestation.notSeenCommitteeMembers;
498
+ }
499
+ return { result: attestations, totalAttestations: this.attestations.length };
500
+ }
501
+ /**
502
+ * Select the attestation with the highest total effective balance of not seen validators.
503
+ */
504
+ getMostValuableAttestation(fork, effectiveBalanceIncrements, notSeenCommitteeMembers, excluded) {
505
+ if (notSeenCommitteeMembers.size === 0) {
506
+ // no more attesters to consider
507
+ return null;
508
+ }
411
509
  const isPostElectra = isForkPostElectra(fork);
510
+ let maxNewSeenEffectiveBalance = 0;
511
+ let mostValuableAttestation = null;
412
512
  for (const { attestation } of this.attestations) {
413
513
  if ((isPostElectra && !isElectraAttestation(attestation)) ||
414
514
  (!isPostElectra && isElectraAttestation(attestation))) {
415
515
  continue;
416
516
  }
417
- let notSeenAttesterCount = 0;
517
+ if (excluded.has(attestation)) {
518
+ continue;
519
+ }
520
+ const notSeen = new Set();
521
+ // we prioritize total effective balance over attester count
522
+ let newSeenEffectiveBalance = 0;
523
+ let newSeenAttesters = 0;
418
524
  const { aggregationBits } = attestation;
419
- for (const notSeenIndex of notSeenAttestingIndices) {
525
+ for (const notSeenIndex of notSeenCommitteeMembers) {
420
526
  if (aggregationBits.get(notSeenIndex)) {
421
- notSeenAttesterCount++;
527
+ newSeenEffectiveBalance += effectiveBalanceIncrements[this.committee[notSeenIndex]];
528
+ newSeenAttesters++;
529
+ }
530
+ else {
531
+ notSeen.add(notSeenIndex);
422
532
  }
423
533
  }
424
- if (notSeenAttesterCount > 0) {
425
- attestations.push({ attestation, notSeenAttesterCount });
534
+ if (newSeenEffectiveBalance > maxNewSeenEffectiveBalance) {
535
+ maxNewSeenEffectiveBalance = newSeenEffectiveBalance;
536
+ mostValuableAttestation = {
537
+ attestation,
538
+ newSeenEffectiveBalance,
539
+ newSeenAttesters,
540
+ notSeenCommitteeMembers: notSeen,
541
+ };
426
542
  }
427
543
  }
428
- const maxAttestation = isPostElectra ? MAX_ATTESTATIONS_PER_GROUP_ELECTRA : MAX_ATTESTATIONS_PER_GROUP;
429
- if (attestations.length <= maxAttestation) {
430
- return attestations;
431
- }
432
- return attestations.sort((a, b) => b.notSeenAttesterCount - a.notSeenAttesterCount).slice(0, maxAttestation);
544
+ return mostValuableAttestation;
433
545
  }
434
546
  /** Get attestations for API. */
435
547
  getAttestations() {
@@ -475,13 +587,14 @@ export function aggregateConsolidation({ byCommittee, attData }) {
475
587
  * has already attested or not.
476
588
  */
477
589
  export function getNotSeenValidatorsFn(state) {
478
- if (state.config.getForkName(state.slot) === ForkName.phase0) {
590
+ const stateSlot = state.slot;
591
+ if (state.config.getForkName(stateSlot) === ForkName.phase0) {
479
592
  // Get attestations to be included in a phase0 block.
480
593
  // As we are close to altair, this is not really important, it's mainly for e2e.
481
594
  // The performance is not great due to the different BeaconState data structure to altair.
482
595
  // check for phase0 block already
483
596
  const phase0State = state;
484
- const stateEpoch = computeEpochAtSlot(state.slot);
597
+ const stateEpoch = computeEpochAtSlot(stateSlot);
485
598
  const previousEpochParticipants = extractParticipationPhase0(phase0State.previousEpochAttestations.getAllReadonly(), state);
486
599
  const currentEpochParticipants = extractParticipationPhase0(phase0State.currentEpochAttestations.getAllReadonly(), state);
487
600
  return (epoch, slot, committeeIndex) => {
@@ -490,13 +603,13 @@ export function getNotSeenValidatorsFn(state) {
490
603
  return null;
491
604
  }
492
605
  const committee = state.epochCtx.getBeaconCommittee(slot, committeeIndex);
493
- const notSeenAttestingIndices = new Set();
606
+ const notSeenCommitteeMembers = new Set();
494
607
  for (const [i, validatorIndex] of committee.entries()) {
495
608
  if (!participants.has(validatorIndex)) {
496
- notSeenAttestingIndices.add(i);
609
+ notSeenCommitteeMembers.add(i);
497
610
  }
498
611
  }
499
- return notSeenAttestingIndices.size === 0 ? null : notSeenAttestingIndices;
612
+ return notSeenCommitteeMembers.size === 0 ? null : notSeenCommitteeMembers;
500
613
  };
501
614
  }
502
615
  // altair and future forks
@@ -507,7 +620,7 @@ export function getNotSeenValidatorsFn(state) {
507
620
  const altairState = state;
508
621
  const previousParticipation = altairState.previousEpochParticipation.getAll();
509
622
  const currentParticipation = altairState.currentEpochParticipation.getAll();
510
- const stateEpoch = computeEpochAtSlot(state.slot);
623
+ const stateEpoch = computeEpochAtSlot(stateSlot);
511
624
  // this function could be called multiple times with same slot + committeeIndex
512
625
  const cachedNotSeenValidators = new Map();
513
626
  return (epoch, slot, committeeIndex) => {
@@ -516,22 +629,23 @@ export function getNotSeenValidatorsFn(state) {
516
629
  return null;
517
630
  }
518
631
  const cacheKey = slot + "_" + committeeIndex;
519
- let notSeenAttestingIndices = cachedNotSeenValidators.get(cacheKey);
520
- if (notSeenAttestingIndices != null) {
632
+ let notSeenCommitteeMembers = cachedNotSeenValidators.get(cacheKey);
633
+ if (notSeenCommitteeMembers != null) {
521
634
  // if all validators are seen then return null, we don't need to check for any attestations of same committee again
522
- return notSeenAttestingIndices.size === 0 ? null : notSeenAttestingIndices;
635
+ return notSeenCommitteeMembers.size === 0 ? null : notSeenCommitteeMembers;
523
636
  }
524
637
  const committee = state.epochCtx.getBeaconCommittee(slot, committeeIndex);
525
- notSeenAttestingIndices = new Set();
638
+ notSeenCommitteeMembers = new Set();
526
639
  for (const [i, validatorIndex] of committee.entries()) {
527
640
  // no need to check flagIsTimelySource as if validator is not seen, it's participation status is 0
528
- if (participationStatus[validatorIndex] === 0) {
529
- notSeenAttestingIndices.add(i);
641
+ // attestations for the previous slot are not included in the state, so we don't need to check for them
642
+ if (slot === stateSlot - 1 || participationStatus[validatorIndex] === 0) {
643
+ notSeenCommitteeMembers.add(i);
530
644
  }
531
645
  }
532
- cachedNotSeenValidators.set(cacheKey, notSeenAttestingIndices);
646
+ cachedNotSeenValidators.set(cacheKey, notSeenCommitteeMembers);
533
647
  // if all validators are seen then return null, we don't need to check for any attestations of same committee again
534
- return notSeenAttestingIndices.size === 0 ? null : notSeenAttestingIndices;
648
+ return notSeenCommitteeMembers.size === 0 ? null : notSeenCommitteeMembers;
535
649
  };
536
650
  }
537
651
  export function extractParticipationPhase0(attestations, state) {
@@ -577,8 +691,9 @@ export function getValidateAttestationDataFn(forkChoice, state) {
577
691
  else {
578
692
  return false;
579
693
  }
580
- if (!ssz.phase0.Checkpoint.equals(attData.source, justifiedCheckpoint))
694
+ if (!ssz.phase0.Checkpoint.equals(attData.source, justifiedCheckpoint)) {
581
695
  return false;
696
+ }
582
697
  // Shuffling can't have changed if we're in the first few epochs
583
698
  // Also we can't look back 2 epochs if target epoch is 1 or less
584
699
  if (stateEpoch < 2 || targetEpoch < 2) {
@@ -1 +1 @@
1
- {"version":3,"file":"aggregatedAttestationPool.js","sourceRoot":"","sources":["../../../src/chain/opPools/aggregatedAttestationPool.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"aggregatedAttestationPool.js","sourceRoot":"","sources":["../../../src/chain/opPools/aggregatedAttestationPool.ts"],"names":[],"mappings":"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"}
@@ -5,8 +5,9 @@ import { LightClientServerOpts } from "./lightClient/index.js";
5
5
  import { ShufflingCacheOpts } from "./shufflingCache.js";
6
6
  import { FIFOBlockStateCacheOpts } from "./stateCache/fifoBlockStateCache.js";
7
7
  import { PersistentCheckpointStateCacheOpts } from "./stateCache/persistentCheckpointsCache.js";
8
+ import { ValidatorMonitorOpts } from "./validatorMonitor.js";
8
9
  export { ArchiveMode, DEFAULT_ARCHIVE_MODE };
9
- export type IChainOptions = BlockProcessOpts & PoolOpts & SeenCacheOpts & ForkChoiceOpts & ArchiveStoreOpts & FIFOBlockStateCacheOpts & PersistentCheckpointStateCacheOpts & ShufflingCacheOpts & LightClientServerOpts & {
10
+ export type IChainOptions = BlockProcessOpts & PoolOpts & SeenCacheOpts & ForkChoiceOpts & ArchiveStoreOpts & FIFOBlockStateCacheOpts & PersistentCheckpointStateCacheOpts & ShufflingCacheOpts & ValidatorMonitorOpts & LightClientServerOpts & {
10
11
  blsVerifyAllMainThread?: boolean;
11
12
  blsVerifyAllMultiThread?: boolean;
12
13
  blacklistedBlocks?: string[];
@@ -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;AAEtG,OAAO,EAAC,qCAAqC,EAAC,MAAM,4CAA4C,CAAC;AAEjG,OAAO,EAAC,WAAW,EAAE,oBAAoB,EAAC,CAAC;AAsF3C,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,KAAK;IACzB,iBAAiB,EAAE,IAAI;IACvB,+BAA+B,EAAE,mCAAmC;IACpE,qBAAqB,EAAE,uBAAuB,CAAC,qBAAqB;IACpE,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"}
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;AAEtG,OAAO,EAAC,qCAAqC,EAAC,MAAM,4CAA4C,CAAC;AAGjG,OAAO,EAAC,WAAW,EAAE,oBAAoB,EAAC,CAAC;AAuF3C,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,KAAK;IACzB,iBAAiB,EAAE,IAAI;IACvB,+BAA+B,EAAE,mCAAmC;IACpE,qBAAqB,EAAE,uBAAuB,CAAC,qBAAqB;IACpE,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"}
@@ -21,7 +21,7 @@ export function computeNewStateRoot(metrics, state, block) {
21
21
  verifySignatures: false,
22
22
  // Preserve cache in source state, since the resulting state is not added to the state cache
23
23
  dontTransferCache: true,
24
- }, metrics);
24
+ }, { metrics });
25
25
  const { attestations, syncAggregate, slashing } = postState.proposerRewards;
26
26
  const proposerReward = BigInt(attestations + syncAggregate + slashing);
27
27
  const hashTreeRootTimer = metrics?.stateHashTreeRootTime.startTimer({