@lodestar/fork-choice 1.45.0-dev.d173b636c9 → 1.45.0-dev.e10fb5e991

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.
@@ -1 +1 @@
1
- {"version":3,"file":"data.d.ts","sourceRoot":"","sources":["../../../src/forkChoice/fastConfirmation/data.ts"],"names":[],"mappings":"AACA,OAAO,EACL,qBAAqB,EACrB,uBAAuB,EACvB,wBAAwB,EACxB,sBAAsB,EACvB,MAAM,YAAY,CAAC;AAGpB,wBAAgB,2BAA2B,IAAI,qBAAqB,CASnE;AAED,wBAAgB,6BAA6B,CAC3C,GAAG,EAAE,uBAAuB,EAC5B,KAAK,EAAE,sBAAsB,EAC7B,KAAK,EAAE,qBAAqB,GAC3B,wBAAwB,CAkB1B"}
1
+ {"version":3,"file":"data.d.ts","sourceRoot":"","sources":["../../../src/forkChoice/fastConfirmation/data.ts"],"names":[],"mappings":"AACA,OAAO,EACL,qBAAqB,EACrB,uBAAuB,EACvB,wBAAwB,EACxB,sBAAsB,EACvB,MAAM,YAAY,CAAC;AAGpB,wBAAgB,2BAA2B,IAAI,qBAAqB,CAUnE;AAED,wBAAgB,6BAA6B,CAC3C,GAAG,EAAE,uBAAuB,EAC5B,KAAK,EAAE,sBAAsB,EAC7B,KAAK,EAAE,qBAAqB,GAC3B,wBAAwB,CAkB1B"}
@@ -7,6 +7,7 @@ export function createFastConfirmationCache() {
7
7
  committeeBySlot: new Map(),
8
8
  isDescendantByRootPair: new Map(),
9
9
  voteWeightBySource: new Map(),
10
+ totalActiveBalanceByKey: new Map(),
10
11
  checkpointStateByKey: new Map(),
11
12
  };
12
13
  }
@@ -1 +1 @@
1
- {"version":3,"file":"data.js","sourceRoot":"","sources":["../../../src/forkChoice/fastConfirmation/data.ts"],"names":[],"mappings":"AAAA,OAAO,EAAC,kBAAkB,EAAC,MAAM,4BAA4B,CAAC;AAO9D,OAAO,EAAC,QAAQ,EAAE,0BAA0B,EAAC,MAAM,YAAY,CAAC;AAEhE,MAAM,UAAU,2BAA2B,GAA0B;IACnE,OAAO;QACL,WAAW,EAAE,IAAI,GAAG,EAAE;QACtB,aAAa,EAAE,IAAI,GAAG,EAAE;QACxB,eAAe,EAAE,IAAI,GAAG,EAAE;QAC1B,sBAAsB,EAAE,IAAI,GAAG,EAAE;QACjC,kBAAkB,EAAE,IAAI,GAAG,EAAE;QAC7B,oBAAoB,EAAE,IAAI,GAAG,EAAE;KAChC,CAAC;AAAA,CACH;AAED,MAAM,UAAU,6BAA6B,CAC3C,GAA4B,EAC5B,KAA6B,EAC7B,KAA4B,EACF;IAC1B,MAAM,WAAW,GAAG,GAAG,CAAC,cAAc,EAAE,CAAC;IACzC,MAAM,YAAY,GAAG,kBAAkB,CAAC,WAAW,CAAC,CAAC;IACrD,MAAM,QAAQ,GAAG,GAAG,CAAC,OAAO,EAAE,CAAC,SAAS,CAAC;IACzC,MAAM,aAAa,GAAG,KAAK,CAAC,aAAa,CAAC;IAC1C,MAAM,cAAc,GAAG,QAAQ,CAAC,GAAG,EAAE,KAAK,EAAE,aAAa,CAAC,CAAC;IAE3D,OAAO;QACL,WAAW;QACX,YAAY;QACZ,QAAQ;QACR,aAAa;QACb,cAAc,EAAE,cAAc,CAAC,CAAC,CAAC,kBAAkB,CAAC,cAAc,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,IAAI;QAC/E,aAAa,EAAE,cAAc,EAAE,IAAI,IAAI,IAAI;QAC3C,iBAAiB,EAAE,KAAK,CAAC,uCAAuC;QAChE,cAAc,EAAE,0BAA0B,CAAC,GAAG,EAAE,KAAK,EAAE,QAAQ,CAAC;QAChE,aAAa,EAAE,GAAG,CAAC,sBAAsB,EAAE,CAAC,OAAO;KACpD,CAAC;AAAA,CACH"}
1
+ {"version":3,"file":"data.js","sourceRoot":"","sources":["../../../src/forkChoice/fastConfirmation/data.ts"],"names":[],"mappings":"AAAA,OAAO,EAAC,kBAAkB,EAAC,MAAM,4BAA4B,CAAC;AAO9D,OAAO,EAAC,QAAQ,EAAE,0BAA0B,EAAC,MAAM,YAAY,CAAC;AAEhE,MAAM,UAAU,2BAA2B,GAA0B;IACnE,OAAO;QACL,WAAW,EAAE,IAAI,GAAG,EAAE;QACtB,aAAa,EAAE,IAAI,GAAG,EAAE;QACxB,eAAe,EAAE,IAAI,GAAG,EAAE;QAC1B,sBAAsB,EAAE,IAAI,GAAG,EAAE;QACjC,kBAAkB,EAAE,IAAI,GAAG,EAAE;QAC7B,uBAAuB,EAAE,IAAI,GAAG,EAAE;QAClC,oBAAoB,EAAE,IAAI,GAAG,EAAE;KAChC,CAAC;AAAA,CACH;AAED,MAAM,UAAU,6BAA6B,CAC3C,GAA4B,EAC5B,KAA6B,EAC7B,KAA4B,EACF;IAC1B,MAAM,WAAW,GAAG,GAAG,CAAC,cAAc,EAAE,CAAC;IACzC,MAAM,YAAY,GAAG,kBAAkB,CAAC,WAAW,CAAC,CAAC;IACrD,MAAM,QAAQ,GAAG,GAAG,CAAC,OAAO,EAAE,CAAC,SAAS,CAAC;IACzC,MAAM,aAAa,GAAG,KAAK,CAAC,aAAa,CAAC;IAC1C,MAAM,cAAc,GAAG,QAAQ,CAAC,GAAG,EAAE,KAAK,EAAE,aAAa,CAAC,CAAC;IAE3D,OAAO;QACL,WAAW;QACX,YAAY;QACZ,QAAQ;QACR,aAAa;QACb,cAAc,EAAE,cAAc,CAAC,CAAC,CAAC,kBAAkB,CAAC,cAAc,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,IAAI;QAC/E,aAAa,EAAE,cAAc,EAAE,IAAI,IAAI,IAAI;QAC3C,iBAAiB,EAAE,KAAK,CAAC,uCAAuC;QAChE,cAAc,EAAE,0BAA0B,CAAC,GAAG,EAAE,KAAK,EAAE,QAAQ,CAAC;QAChE,aAAa,EAAE,GAAG,CAAC,sBAAsB,EAAE,CAAC,OAAO;KACpD,CAAC;AAAA,CACH"}
@@ -7,6 +7,7 @@ export type FastConfirmationBalanceSource = {
7
7
  state: IBeaconStateView | null;
8
8
  balances: EffectiveBalanceIncrements;
9
9
  };
10
+ export type TotalActiveBalanceCacheKey = IBeaconStateView | EffectiveBalanceIncrements;
10
11
  export type ForkChoiceStateGetter = (opts: {
11
12
  stateRoot: RootHex;
12
13
  checkpoint?: never;
@@ -81,6 +82,8 @@ export type FastConfirmationCache = {
81
82
  isDescendantByRootPair: Map<string, boolean>;
82
83
  /** voteRoot -> totalWeight, keyed by sourceKey */
83
84
  voteWeightBySource: Map<BalanceSourceKey, Map<RootHex, number>>;
85
+ /** total active balance, keyed by the balance source's state or balances reference */
86
+ totalActiveBalanceByKey: Map<TotalActiveBalanceCacheKey, number>;
84
87
  headState?: IBeaconStateView;
85
88
  pulledUpHeadState?: IBeaconStateView;
86
89
  checkpointStateByKey: Map<string, IBeaconStateView | null>;
@@ -1 +1 @@
1
- {"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../../src/forkChoice/fastConfirmation/types.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../../src/forkChoice/fastConfirmation/types.ts"],"names":[],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"types.js","sourceRoot":"","sources":["../../../src/forkChoice/fastConfirmation/types.ts"],"names":[],"mappings":"SAkDY,8BAA8B;AAA1C,IAAY,8BAQX;AARD,WAAY,8BAA8B;IACxC,yDAAuB,CAAA;IACvB,2EAAyC,CAAA;IACzC,8DAA4B,CAAA;IAC5B,yEAAuC,CAAA;IACvC,yEAAuC,CAAA;IACvC,0EAAwC,CAAA;IACxC,8EAA4C,CAAA;AAAC,CAC/C,EARY,8BAA8B,KAA9B,8BAA8B,QAQzC;AAED,qGAAqG;AACrG,MAAM,aAAa,GAAG,IAAI,GAAG,CAAiC;IAC5D,8BAA8B,CAAC,iBAAiB;IAChD,8BAA8B,CAAC,WAAW;IAC1C,8BAA8B,CAAC,gBAAgB;IAC/C,8BAA8B,CAAC,gBAAgB;CAChD,CAAC,CAAC;AAEH,MAAM,UAAU,aAAa,CAAC,MAAsC,EAAW;IAC7E,OAAO,aAAa,CAAC,GAAG,CAAC,MAAM,CAAC,CAAC;AAAA,CAClC"}
1
+ {"version":3,"file":"types.js","sourceRoot":"","sources":["../../../src/forkChoice/fastConfirmation/types.ts"],"names":[],"mappings":"SAoDY,8BAA8B;AAA1C,IAAY,8BAQX;AARD,WAAY,8BAA8B;IACxC,yDAAuB,CAAA;IACvB,2EAAyC,CAAA;IACzC,8DAA4B,CAAA;IAC5B,yEAAuC,CAAA;IACvC,yEAAuC,CAAA;IACvC,0EAAwC,CAAA;IACxC,8EAA4C,CAAA;AAAC,CAC/C,EARY,8BAA8B,KAA9B,8BAA8B,QAQzC;AAED,qGAAqG;AACrG,MAAM,aAAa,GAAG,IAAI,GAAG,CAAiC;IAC5D,8BAA8B,CAAC,iBAAiB;IAChD,8BAA8B,CAAC,WAAW;IAC1C,8BAA8B,CAAC,gBAAgB;IAC/C,8BAA8B,CAAC,gBAAgB;CAChD,CAAC,CAAC;AAEH,MAAM,UAAU,aAAa,CAAC,MAAsC,EAAW;IAC7E,OAAO,aAAa,CAAC,GAAG,CAAC,MAAM,CAAC,CAAC;AAAA,CAClC"}
@@ -17,11 +17,11 @@ export declare function getSlotCommittee(cache: FastConfirmationCache, state: IB
17
17
  export declare function getBalanceSource(store: IFastConfirmationStore, cache: FastConfirmationCache, kind: "previous" | "current"): FastConfirmationBalanceSource;
18
18
  export declare function getCurrentBalanceSource(store: IFastConfirmationStore, cache: FastConfirmationCache): FastConfirmationBalanceSource;
19
19
  export declare function getPreviousBalanceSource(store: IFastConfirmationStore, cache: FastConfirmationCache): FastConfirmationBalanceSource;
20
- export declare function getTotalActiveBalance(balanceSource: FastConfirmationBalanceSource): number;
21
- export declare function estimateCommitteeWeightBetweenSlots(balanceSource: FastConfirmationBalanceSource, startSlot: Slot, endSlot: Slot): number;
20
+ export declare function getTotalActiveBalance(balanceSource: FastConfirmationBalanceSource, cache: FastConfirmationCache): number;
21
+ export declare function estimateCommitteeWeightBetweenSlots(balanceSource: FastConfirmationBalanceSource, cache: FastConfirmationCache, startSlot: Slot, endSlot: Slot): number;
22
22
  export declare function adjustCommitteeWeightEstimateToEnsureSafety(estimate: number): number;
23
23
  export declare function isFullValidatorSetCovered(startSlot: Slot, endSlot: Slot): boolean;
24
- export declare function computeProposerScore(ctx: FastConfirmationContext, balanceSource: FastConfirmationBalanceSource): number;
24
+ export declare function computeProposerScore(ctx: FastConfirmationContext, balanceSource: FastConfirmationBalanceSource, cache: FastConfirmationCache): number;
25
25
  export declare function getAttestationScore(ctx: FastConfirmationContext, cache: FastConfirmationCache, balanceSource: FastConfirmationBalanceSource, blockRoot: RootHex, sourceKey: BalanceSourceKey): number;
26
26
  export declare function getBlockSupportBetweenSlots(ctx: FastConfirmationContext, store: IFastConfirmationStore, cache: FastConfirmationCache, balanceSource: FastConfirmationBalanceSource, blockRoot: RootHex, startSlot: Slot, endSlot: Slot): number;
27
27
  export declare function getEquivocationScore(ctx: FastConfirmationContext, store: IFastConfirmationStore, cache: FastConfirmationCache, balanceSource: FastConfirmationBalanceSource, startSlot: Slot, endSlot: Slot): number;
@@ -1 +1 @@
1
- {"version":3,"file":"utils.d.ts","sourceRoot":"","sources":["../../../src/forkChoice/fastConfirmation/utils.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"utils.d.ts","sourceRoot":"","sources":["../../../src/forkChoice/fastConfirmation/utils.ts"],"names":[],"mappings":"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"}
@@ -169,18 +169,25 @@ export function getCurrentBalanceSource(store, cache) {
169
169
  export function getPreviousBalanceSource(store, cache) {
170
170
  return getBalanceSource(store, cache, "previous");
171
171
  }
172
- export function getTotalActiveBalance(balanceSource) {
173
- if (balanceSource.state) {
174
- return computeTotalBalance(balanceSource.state.getEffectiveBalanceIncrementsZeroInactive());
175
- }
176
- // Fallback balances come from the justified-balance path and already zero inactive
177
- // validators, so summing them gives the active justified total for this balance source.
178
- return computeTotalBalance(balanceSource.balances);
179
- }
180
- export function estimateCommitteeWeightBetweenSlots(balanceSource, startSlot, endSlot) {
172
+ export function getTotalActiveBalance(balanceSource, cache) {
173
+ // Invariant per balance source within a run, but read many times per is_one_confirmed evaluation
174
+ // across the epoch-boundary chain walk; memoize so the full validator-set scan runs once per run.
175
+ const key = balanceSource.state ?? balanceSource.balances;
176
+ const cached = cache.totalActiveBalanceByKey.get(key);
177
+ if (cached !== undefined)
178
+ return cached;
179
+ const total = balanceSource.state
180
+ ? computeTotalBalance(balanceSource.state.getEffectiveBalanceIncrementsZeroInactive())
181
+ : // Fallback balances come from the justified-balance path and already zero inactive
182
+ // validators, so summing them gives the active justified total for this balance source.
183
+ computeTotalBalance(balanceSource.balances);
184
+ cache.totalActiveBalanceByKey.set(key, total);
185
+ return total;
186
+ }
187
+ export function estimateCommitteeWeightBetweenSlots(balanceSource, cache, startSlot, endSlot) {
181
188
  if (startSlot > endSlot)
182
189
  return 0;
183
- const totalActiveBalance = getTotalActiveBalance(balanceSource);
190
+ const totalActiveBalance = getTotalActiveBalance(balanceSource, cache);
184
191
  const startEpoch = computeEpochAtSlot(startSlot);
185
192
  const endEpoch = computeEpochAtSlot(endSlot);
186
193
  if (isFullValidatorSetCovered(startSlot, endSlot)) {
@@ -222,8 +229,8 @@ export function isFullValidatorSetCovered(startSlot, endSlot) {
222
229
  const endFullEpoch = computeEpochAtSlot((endSlot + 1));
223
230
  return startFullEpoch < endFullEpoch;
224
231
  }
225
- export function computeProposerScore(ctx, balanceSource) {
226
- const totalActiveBalance = getTotalActiveBalance(balanceSource);
232
+ export function computeProposerScore(ctx, balanceSource, cache) {
233
+ const totalActiveBalance = getTotalActiveBalance(balanceSource, cache);
227
234
  const committeeWeight = Math.floor(totalActiveBalance / SLOTS_PER_EPOCH);
228
235
  return Math.floor((committeeWeight * ctx.config.PROPOSER_SCORE_BOOST) / 100);
229
236
  }
@@ -326,7 +333,7 @@ export function getEquivocationScore(ctx, store, cache, balanceSource, startSlot
326
333
  return score;
327
334
  }
328
335
  export function computeAdversarialWeight(ctx, store, cache, balanceSource, startSlot, endSlot) {
329
- const maximumWeight = estimateCommitteeWeightBetweenSlots(balanceSource, startSlot, endSlot);
336
+ const maximumWeight = estimateCommitteeWeightBetweenSlots(balanceSource, cache, startSlot, endSlot);
330
337
  // The spec uses raw Gwei and computes `maximum_weight // 100 * threshold`.
331
338
  // Lodestar carries effective-balance increments instead, so divide after multiplying to avoid
332
339
  // dropping the adversarial budget to zero for small validator sets/minimal presets.
@@ -379,8 +386,8 @@ export function computeSafetyThreshold(ctx, store, cache, balanceSource, blockRo
379
386
  // Spec: compute_safety_threshold(store, block_root, balance_source)
380
387
  // Build the threshold from the same terms used in the paper/spec:
381
388
  // max possible committee support, proposer boost, empty-slot discount, and adversarial budget.
382
- const proposerScore = computeProposerScore(ctx, balanceSource);
383
- const maximumSupport = estimateCommitteeWeightBetweenSlots(balanceSource, (parentBlock.slot + 1), (currentSlot - 1));
389
+ const proposerScore = computeProposerScore(ctx, balanceSource, cache);
390
+ const maximumSupport = estimateCommitteeWeightBetweenSlots(balanceSource, cache, (parentBlock.slot + 1), (currentSlot - 1));
384
391
  const supportDiscount = computeEmptySlotSupportDiscount(ctx, store, cache, balanceSource, blockRoot);
385
392
  const adversarialWeight = getAdversarialWeight(ctx, store, cache, balanceSource, blockRoot);
386
393
  // Spec underflow guard:
@@ -486,9 +493,10 @@ export function computeHonestFfgSupportForCurrentTarget(ctx, store, cache) {
486
493
  const targetState = getCurrentEpochState(ctx, store, cache);
487
494
  if (!targetState)
488
495
  return 0;
489
- const totalActiveBalance = computeTotalBalance(targetState.getEffectiveBalanceIncrementsZeroInactive());
496
+ const targetBalanceSource = { state: targetState, balances: targetState.effectiveBalanceIncrements };
497
+ const totalActiveBalance = getTotalActiveBalance(targetBalanceSource, cache);
490
498
  const ffgSupport = getCurrentTargetScore(ctx, store, cache);
491
- const tillNowFFGWeight = estimateCommitteeWeightBetweenSlots({ state: targetState, balances: targetState.effectiveBalanceIncrements }, computeStartSlotAtEpoch(currentEpoch), (currentSlot - 1));
499
+ const tillNowFFGWeight = estimateCommitteeWeightBetweenSlots(targetBalanceSource, cache, computeStartSlotAtEpoch(currentEpoch), (currentSlot - 1));
492
500
  const adversarialWeight = computeAdversarialWeight(ctx, store, cache, { state: targetState, balances: targetState.effectiveBalanceIncrements }, computeStartSlotAtEpoch(currentEpoch), (currentSlot - 1));
493
501
  return computeHonestFfgSupport(totalActiveBalance, ffgSupport, tillNowFFGWeight, adversarialWeight, ctx.config.CONFIRMATION_BYZANTINE_THRESHOLD);
494
502
  }
@@ -502,7 +510,7 @@ export function willNoConflictingCheckpointBeJustified(ctx, store, cache) {
502
510
  const targetState = getCurrentEpochState(ctx, store, cache);
503
511
  if (!targetState)
504
512
  return false;
505
- const totalActiveBalance = computeTotalBalance(targetState.getEffectiveBalanceIncrementsZeroInactive());
513
+ const totalActiveBalance = getTotalActiveBalance({ state: targetState, balances: targetState.effectiveBalanceIncrements }, cache);
506
514
  const honestSupport = computeHonestFfgSupportForCurrentTarget(ctx, store, cache);
507
515
  return 3 * honestSupport > 1 * totalActiveBalance;
508
516
  }
@@ -510,7 +518,7 @@ export function willCurrentTargetBeJustified(ctx, store, cache) {
510
518
  const targetState = getCurrentEpochState(ctx, store, cache);
511
519
  if (!targetState)
512
520
  return false;
513
- const totalActiveBalance = computeTotalBalance(targetState.getEffectiveBalanceIncrementsZeroInactive());
521
+ const totalActiveBalance = getTotalActiveBalance({ state: targetState, balances: targetState.effectiveBalanceIncrements }, cache);
514
522
  const honestSupport = computeHonestFfgSupportForCurrentTarget(ctx, store, cache);
515
523
  return 3 * honestSupport >= 2 * totalActiveBalance;
516
524
  }
@@ -1 +1 @@
1
- {"version":3,"file":"utils.js","sourceRoot":"","sources":["../../../src/forkChoice/fastConfirmation/utils.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"utils.js","sourceRoot":"","sources":["../../../src/forkChoice/fastConfirmation/utils.ts"],"names":[],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"computeDeltas.d.ts","sourceRoot":"","sources":["../../src/protoArray/computeDeltas.ts"],"names":[],"mappings":"AAAA,OAAO,EAAC,0BAA0B,EAAC,MAAM,4BAA4B,CAAC;AACtE,OAAO,EAAC,cAAc,EAAC,MAAM,iBAAiB,CAAC;AAE/C,OAAO,EAAkB,SAAS,EAAC,MAAM,gBAAgB,CAAC;AAK1D,MAAM,MAAM,YAAY,GAAG;IACzB,MAAM,EAAE,MAAM,EAAE,CAAC;IACjB,sBAAsB,EAAE,MAAM,CAAC;IAE/B,qBAAqB,EAAE,MAAM,CAAC;IAE9B,qBAAqB,EAAE,MAAM,CAAC;IAE9B,uBAAuB,EAAE,MAAM,CAAC;IAChC,iBAAiB,EAAE,MAAM,CAAC;CAC3B,CAAC;AAEF;;;;;;;;GAQG;AACH,wBAAgB,aAAa,CAC3B,aAAa,EAAE,MAAM,EACrB,kBAAkB,EAAE,SAAS,EAAE,EAC/B,eAAe,EAAE,SAAS,EAAE,EAC5B,WAAW,EAAE,0BAA0B,EACvC,WAAW,EAAE,0BAA0B,EACvC,mBAAmB,EAAE,GAAG,CAAC,cAAc,CAAC,GACvC,YAAY,CA0Hd"}
1
+ {"version":3,"file":"computeDeltas.d.ts","sourceRoot":"","sources":["../../src/protoArray/computeDeltas.ts"],"names":[],"mappings":"AAAA,OAAO,EAAC,0BAA0B,EAAC,MAAM,4BAA4B,CAAC;AACtE,OAAO,EAAC,cAAc,EAAC,MAAM,iBAAiB,CAAC;AAE/C,OAAO,EAAkB,SAAS,EAAC,MAAM,gBAAgB,CAAC;AAK1D,MAAM,MAAM,YAAY,GAAG;IACzB,MAAM,EAAE,MAAM,EAAE,CAAC;IACjB,sBAAsB,EAAE,MAAM,CAAC;IAE/B,qBAAqB,EAAE,MAAM,CAAC;IAE9B,qBAAqB,EAAE,MAAM,CAAC;IAE9B,uBAAuB,EAAE,MAAM,CAAC;IAChC,iBAAiB,EAAE,MAAM,CAAC;CAC3B,CAAC;AAEF;;;;;;;;GAQG;AACH,wBAAgB,aAAa,CAC3B,aAAa,EAAE,MAAM,EACrB,kBAAkB,EAAE,SAAS,EAAE,EAC/B,eAAe,EAAE,SAAS,EAAE,EAC5B,WAAW,EAAE,0BAA0B,EACvC,WAAW,EAAE,0BAA0B,EACvC,mBAAmB,EAAE,GAAG,CAAC,cAAc,CAAC,GACvC,YAAY,CA8Hd"}
@@ -36,21 +36,9 @@ export function computeDeltas(numProtoNodes, voteCurrentIndices, voteNextIndices
36
36
  for (let vIndex = 0; vIndex < voteNextIndices.length; vIndex++) {
37
37
  currentIndex = voteCurrentIndices[vIndex];
38
38
  nextIndex = voteNextIndices[vIndex];
39
- // There is no need to create a score change if the validator has never voted or both of their
40
- // votes are for the zero hash (genesis block)
41
- if (currentIndex === NULL_VOTE_INDEX && nextIndex === NULL_VOTE_INDEX) {
42
- oldInactiveValidators++;
43
- continue;
44
- }
45
- // IF the validator was not included in the _old_ balances (i.e. it did not exist yet)
46
- // then say its balance was 0
47
- oldBalance = oldBalances[vIndex] ?? 0;
48
- // If the validator's vote is not known in the _new_ balances, then use a balance of zero.
49
- //
50
- // It is possible that there was a vote for an unknown validator if we change our justified
51
- // state to a new state with a higher epoch that is on a different fork because that fork may have
52
- // on-boarded fewer validators than the prior fork.
53
- newBalance = newBalances === oldBalances ? oldBalance : (newBalances[vIndex] ?? 0);
39
+ // This equivocator check MUST be the first branch in the loop body.
40
+ // Handle equivocating (attester-slashed) validators before the no-live-vote check so the sorted
41
+ // cursor always advances; a jammed cursor would skip the discount for higher-index equivocators.
54
42
  if (vIndex === equivocatingValidatorIndex) {
55
43
  // this function could be called multiple times but we only want to process slashing validator for 1 time
56
44
  if (currentIndex !== NULL_VOTE_INDEX) {
@@ -60,6 +48,7 @@ export function computeDeltas(numProtoNodes, voteCurrentIndices, voteNextIndices
60
48
  index: currentIndex,
61
49
  });
62
50
  }
51
+ oldBalance = oldBalances[vIndex] ?? 0;
63
52
  deltas[currentIndex] -= oldBalance;
64
53
  }
65
54
  voteCurrentIndices[vIndex] = NULL_VOTE_INDEX;
@@ -67,6 +56,21 @@ export function computeDeltas(numProtoNodes, voteCurrentIndices, voteNextIndices
67
56
  equivocatingValidatorIndex = equivocatingArray[equivocatingIndex];
68
57
  continue;
69
58
  }
59
+ // There is no need to create a score change if the validator has never voted or both of their
60
+ // votes are for the zero hash (genesis block)
61
+ if (currentIndex === NULL_VOTE_INDEX && nextIndex === NULL_VOTE_INDEX) {
62
+ oldInactiveValidators++;
63
+ continue;
64
+ }
65
+ // IF the validator was not included in the _old_ balances (i.e. it did not exist yet)
66
+ // then say its balance was 0
67
+ oldBalance = oldBalances[vIndex] ?? 0;
68
+ // If the validator's vote is not known in the _new_ balances, then use a balance of zero.
69
+ //
70
+ // It is possible that there was a vote for an unknown validator if we change our justified
71
+ // state to a new state with a higher epoch that is on a different fork because that fork may have
72
+ // on-boarded fewer validators than the prior fork.
73
+ newBalance = newBalances === oldBalances ? oldBalance : (newBalances[vIndex] ?? 0);
70
74
  if (oldBalance === 0 && newBalance === 0) {
71
75
  newInactiveValidators++;
72
76
  continue;
@@ -1 +1 @@
1
- {"version":3,"file":"computeDeltas.js","sourceRoot":"","sources":["../../src/protoArray/computeDeltas.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"computeDeltas.js","sourceRoot":"","sources":["../../src/protoArray/computeDeltas.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.45.0-dev.d173b636c9",
14
+ "version": "1.45.0-dev.e10fb5e991",
15
15
  "type": "module",
16
16
  "exports": {
17
17
  ".": {
@@ -40,11 +40,11 @@
40
40
  },
41
41
  "dependencies": {
42
42
  "@chainsafe/ssz": "^1.4.0",
43
- "@lodestar/config": "^1.45.0-dev.d173b636c9",
44
- "@lodestar/params": "^1.45.0-dev.d173b636c9",
45
- "@lodestar/state-transition": "^1.45.0-dev.d173b636c9",
46
- "@lodestar/types": "^1.45.0-dev.d173b636c9",
47
- "@lodestar/utils": "^1.45.0-dev.d173b636c9"
43
+ "@lodestar/config": "^1.45.0-dev.e10fb5e991",
44
+ "@lodestar/params": "^1.45.0-dev.e10fb5e991",
45
+ "@lodestar/state-transition": "^1.45.0-dev.e10fb5e991",
46
+ "@lodestar/types": "^1.45.0-dev.e10fb5e991",
47
+ "@lodestar/utils": "^1.45.0-dev.e10fb5e991"
48
48
  },
49
49
  "keywords": [
50
50
  "ethereum",
@@ -52,5 +52,5 @@
52
52
  "beacon",
53
53
  "blockchain"
54
54
  ],
55
- "gitHead": "3468018d31e768304aab2d06c6722f50177888a7"
55
+ "gitHead": "b4b3bbc23dc3adf826dbc109bee39085cf9bbc77"
56
56
  }
@@ -14,6 +14,7 @@ export function createFastConfirmationCache(): FastConfirmationCache {
14
14
  committeeBySlot: new Map(),
15
15
  isDescendantByRootPair: new Map(),
16
16
  voteWeightBySource: new Map(),
17
+ totalActiveBalanceByKey: new Map(),
17
18
  checkpointStateByKey: new Map(),
18
19
  };
19
20
  }
@@ -9,6 +9,8 @@ export type FastConfirmationBalanceSource = {
9
9
  balances: EffectiveBalanceIncrements;
10
10
  };
11
11
 
12
+ export type TotalActiveBalanceCacheKey = IBeaconStateView | EffectiveBalanceIncrements;
13
+
12
14
  export type ForkChoiceStateGetter = (
13
15
  opts: {stateRoot: RootHex; checkpoint?: never} | {stateRoot?: never; checkpoint: CheckpointWithHex}
14
16
  ) => IBeaconStateView | null;
@@ -109,6 +111,8 @@ export type FastConfirmationCache = {
109
111
  isDescendantByRootPair: Map<string, boolean>;
110
112
  /** voteRoot -> totalWeight, keyed by sourceKey */
111
113
  voteWeightBySource: Map<BalanceSourceKey, Map<RootHex, number>>;
114
+ /** total active balance, keyed by the balance source's state or balances reference */
115
+ totalActiveBalanceByKey: Map<TotalActiveBalanceCacheKey, number>;
112
116
  headState?: IBeaconStateView;
113
117
  pulledUpHeadState?: IBeaconStateView;
114
118
  checkpointStateByKey: Map<string, IBeaconStateView | null>;
@@ -18,6 +18,7 @@ import {
18
18
  FastConfirmationContext,
19
19
  FastConfirmationSnapshot,
20
20
  IFastConfirmationStore,
21
+ type TotalActiveBalanceCacheKey,
21
22
  } from "./types.ts";
22
23
 
23
24
  // Spec: adjust_committee_weight_estimate_to_ensure_safety
@@ -266,22 +267,34 @@ export function getPreviousBalanceSource(
266
267
  return getBalanceSource(store, cache, "previous");
267
268
  }
268
269
 
269
- export function getTotalActiveBalance(balanceSource: FastConfirmationBalanceSource): number {
270
- if (balanceSource.state) {
271
- return computeTotalBalance(balanceSource.state.getEffectiveBalanceIncrementsZeroInactive());
272
- }
273
- // Fallback balances come from the justified-balance path and already zero inactive
274
- // validators, so summing them gives the active justified total for this balance source.
275
- return computeTotalBalance(balanceSource.balances);
270
+ export function getTotalActiveBalance(
271
+ balanceSource: FastConfirmationBalanceSource,
272
+ cache: FastConfirmationCache
273
+ ): number {
274
+ // Invariant per balance source within a run, but read many times per is_one_confirmed evaluation
275
+ // across the epoch-boundary chain walk; memoize so the full validator-set scan runs once per run.
276
+ const key: TotalActiveBalanceCacheKey = balanceSource.state ?? balanceSource.balances;
277
+ const cached = cache.totalActiveBalanceByKey.get(key);
278
+ if (cached !== undefined) return cached;
279
+
280
+ const total = balanceSource.state
281
+ ? computeTotalBalance(balanceSource.state.getEffectiveBalanceIncrementsZeroInactive())
282
+ : // Fallback balances come from the justified-balance path and already zero inactive
283
+ // validators, so summing them gives the active justified total for this balance source.
284
+ computeTotalBalance(balanceSource.balances);
285
+
286
+ cache.totalActiveBalanceByKey.set(key, total);
287
+ return total;
276
288
  }
277
289
 
278
290
  export function estimateCommitteeWeightBetweenSlots(
279
291
  balanceSource: FastConfirmationBalanceSource,
292
+ cache: FastConfirmationCache,
280
293
  startSlot: Slot,
281
294
  endSlot: Slot
282
295
  ): number {
283
296
  if (startSlot > endSlot) return 0;
284
- const totalActiveBalance = getTotalActiveBalance(balanceSource);
297
+ const totalActiveBalance = getTotalActiveBalance(balanceSource, cache);
285
298
  const startEpoch = computeEpochAtSlot(startSlot);
286
299
  const endEpoch = computeEpochAtSlot(endSlot);
287
300
 
@@ -334,9 +347,10 @@ export function isFullValidatorSetCovered(startSlot: Slot, endSlot: Slot): boole
334
347
 
335
348
  export function computeProposerScore(
336
349
  ctx: FastConfirmationContext,
337
- balanceSource: FastConfirmationBalanceSource
350
+ balanceSource: FastConfirmationBalanceSource,
351
+ cache: FastConfirmationCache
338
352
  ): number {
339
- const totalActiveBalance = getTotalActiveBalance(balanceSource);
353
+ const totalActiveBalance = getTotalActiveBalance(balanceSource, cache);
340
354
  const committeeWeight = Math.floor(totalActiveBalance / SLOTS_PER_EPOCH);
341
355
  return Math.floor((committeeWeight * ctx.config.PROPOSER_SCORE_BOOST) / 100);
342
356
  }
@@ -469,7 +483,7 @@ export function computeAdversarialWeight(
469
483
  startSlot: Slot,
470
484
  endSlot: Slot
471
485
  ): number {
472
- const maximumWeight = estimateCommitteeWeightBetweenSlots(balanceSource, startSlot, endSlot);
486
+ const maximumWeight = estimateCommitteeWeightBetweenSlots(balanceSource, cache, startSlot, endSlot);
473
487
  // The spec uses raw Gwei and computes `maximum_weight // 100 * threshold`.
474
488
  // Lodestar carries effective-balance increments instead, so divide after multiplying to avoid
475
489
  // dropping the adversarial budget to zero for small validator sets/minimal presets.
@@ -564,9 +578,10 @@ export function computeSafetyThreshold(
564
578
  // Spec: compute_safety_threshold(store, block_root, balance_source)
565
579
  // Build the threshold from the same terms used in the paper/spec:
566
580
  // max possible committee support, proposer boost, empty-slot discount, and adversarial budget.
567
- const proposerScore = computeProposerScore(ctx, balanceSource);
581
+ const proposerScore = computeProposerScore(ctx, balanceSource, cache);
568
582
  const maximumSupport = estimateCommitteeWeightBetweenSlots(
569
583
  balanceSource,
584
+ cache,
570
585
  (parentBlock.slot + 1) as Slot,
571
586
  (currentSlot - 1) as Slot
572
587
  );
@@ -711,10 +726,12 @@ export function computeHonestFfgSupportForCurrentTarget(
711
726
  const currentEpoch = computeEpochAtSlot(currentSlot);
712
727
  const targetState = getCurrentEpochState(ctx, store, cache);
713
728
  if (!targetState) return 0;
714
- const totalActiveBalance = computeTotalBalance(targetState.getEffectiveBalanceIncrementsZeroInactive());
729
+ const targetBalanceSource = {state: targetState, balances: targetState.effectiveBalanceIncrements};
730
+ const totalActiveBalance = getTotalActiveBalance(targetBalanceSource, cache);
715
731
  const ffgSupport = getCurrentTargetScore(ctx, store, cache);
716
732
  const tillNowFFGWeight = estimateCommitteeWeightBetweenSlots(
717
- {state: targetState, balances: targetState.effectiveBalanceIncrements},
733
+ targetBalanceSource,
734
+ cache,
718
735
  computeStartSlotAtEpoch(currentEpoch),
719
736
  (currentSlot - 1) as Slot
720
737
  );
@@ -747,7 +764,10 @@ export function willNoConflictingCheckpointBeJustified(
747
764
  }
748
765
  const targetState = getCurrentEpochState(ctx, store, cache);
749
766
  if (!targetState) return false;
750
- const totalActiveBalance = computeTotalBalance(targetState.getEffectiveBalanceIncrementsZeroInactive());
767
+ const totalActiveBalance = getTotalActiveBalance(
768
+ {state: targetState, balances: targetState.effectiveBalanceIncrements},
769
+ cache
770
+ );
751
771
  const honestSupport = computeHonestFfgSupportForCurrentTarget(ctx, store, cache);
752
772
  return 3 * honestSupport > 1 * totalActiveBalance;
753
773
  }
@@ -759,7 +779,10 @@ export function willCurrentTargetBeJustified(
759
779
  ): boolean {
760
780
  const targetState = getCurrentEpochState(ctx, store, cache);
761
781
  if (!targetState) return false;
762
- const totalActiveBalance = computeTotalBalance(targetState.getEffectiveBalanceIncrementsZeroInactive());
782
+ const totalActiveBalance = getTotalActiveBalance(
783
+ {state: targetState, balances: targetState.effectiveBalanceIncrements},
784
+ cache
785
+ );
763
786
  const honestSupport = computeHonestFfgSupportForCurrentTarget(ctx, store, cache);
764
787
  return 3 * honestSupport >= 2 * totalActiveBalance;
765
788
  }
@@ -67,6 +67,27 @@ export function computeDeltas(
67
67
  currentIndex = voteCurrentIndices[vIndex];
68
68
  nextIndex = voteNextIndices[vIndex];
69
69
 
70
+ // This equivocator check MUST be the first branch in the loop body.
71
+ // Handle equivocating (attester-slashed) validators before the no-live-vote check so the sorted
72
+ // cursor always advances; a jammed cursor would skip the discount for higher-index equivocators.
73
+ if (vIndex === equivocatingValidatorIndex) {
74
+ // this function could be called multiple times but we only want to process slashing validator for 1 time
75
+ if (currentIndex !== NULL_VOTE_INDEX) {
76
+ if (currentIndex >= numProtoNodes) {
77
+ throw new ProtoArrayError({
78
+ code: ProtoArrayErrorCode.INVALID_NODE_DELTA,
79
+ index: currentIndex,
80
+ });
81
+ }
82
+ oldBalance = oldBalances[vIndex] ?? 0;
83
+ deltas[currentIndex] -= oldBalance;
84
+ }
85
+ voteCurrentIndices[vIndex] = NULL_VOTE_INDEX;
86
+ equivocatingIndex++;
87
+ equivocatingValidatorIndex = equivocatingArray[equivocatingIndex];
88
+ continue;
89
+ }
90
+
70
91
  // There is no need to create a score change if the validator has never voted or both of their
71
92
  // votes are for the zero hash (genesis block)
72
93
  if (currentIndex === NULL_VOTE_INDEX && nextIndex === NULL_VOTE_INDEX) {
@@ -85,23 +106,6 @@ export function computeDeltas(
85
106
  // on-boarded fewer validators than the prior fork.
86
107
  newBalance = newBalances === oldBalances ? oldBalance : (newBalances[vIndex] ?? 0);
87
108
 
88
- if (vIndex === equivocatingValidatorIndex) {
89
- // this function could be called multiple times but we only want to process slashing validator for 1 time
90
- if (currentIndex !== NULL_VOTE_INDEX) {
91
- if (currentIndex >= numProtoNodes) {
92
- throw new ProtoArrayError({
93
- code: ProtoArrayErrorCode.INVALID_NODE_DELTA,
94
- index: currentIndex,
95
- });
96
- }
97
- deltas[currentIndex] -= oldBalance;
98
- }
99
- voteCurrentIndices[vIndex] = NULL_VOTE_INDEX;
100
- equivocatingIndex++;
101
- equivocatingValidatorIndex = equivocatingArray[equivocatingIndex];
102
- continue;
103
- }
104
-
105
109
  if (oldBalance === 0 && newBalance === 0) {
106
110
  newInactiveValidators++;
107
111
  continue;