@lodestar/state-transition 1.49.0-dev.09a1892a85 → 1.49.0-dev.0a27fd270f

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 (68) hide show
  1. package/lib/block/processAttestationPhase0.d.ts +1 -1
  2. package/lib/block/processAttestationPhase0.js +1 -1
  3. package/lib/cache/epochTransitionCache.d.ts +2 -7
  4. package/lib/cache/epochTransitionCache.d.ts.map +1 -1
  5. package/lib/cache/epochTransitionCache.js +10 -7
  6. package/lib/cache/epochTransitionCache.js.map +1 -1
  7. package/lib/epoch/processSlashings.d.ts.map +1 -1
  8. package/lib/epoch/processSlashings.js +2 -1
  9. package/lib/epoch/processSlashings.js.map +1 -1
  10. package/lib/metrics.d.ts +4 -4
  11. package/lib/metrics.d.ts.map +1 -1
  12. package/lib/metrics.js +5 -6
  13. package/lib/metrics.js.map +1 -1
  14. package/lib/rewards/attestationsRewards.js +2 -3
  15. package/lib/rewards/attestationsRewards.js.map +1 -1
  16. package/lib/stateTransition.d.ts +2 -3
  17. package/lib/stateTransition.d.ts.map +1 -1
  18. package/lib/stateTransition.js +8 -10
  19. package/lib/stateTransition.js.map +1 -1
  20. package/lib/stateView/beaconStateView.d.ts +5 -2
  21. package/lib/stateView/beaconStateView.d.ts.map +1 -1
  22. package/lib/stateView/beaconStateView.js +23 -3
  23. package/lib/stateView/beaconStateView.js.map +1 -1
  24. package/lib/stateView/computeNewStateRoot.d.ts +2 -2
  25. package/lib/stateView/computeNewStateRoot.d.ts.map +1 -1
  26. package/lib/stateView/computeNewStateRoot.js +4 -7
  27. package/lib/stateView/computeNewStateRoot.js.map +1 -1
  28. package/lib/stateView/interface.d.ts +4 -2
  29. package/lib/stateView/interface.d.ts.map +1 -1
  30. package/lib/stateView/interface.js.map +1 -1
  31. package/lib/stateView/nativeBeaconStateView.d.ts +5 -2
  32. package/lib/stateView/nativeBeaconStateView.d.ts.map +1 -1
  33. package/lib/stateView/nativeBeaconStateView.js +17 -3
  34. package/lib/stateView/nativeBeaconStateView.js.map +1 -1
  35. package/lib/testUtils/index.d.ts +0 -1
  36. package/lib/testUtils/index.d.ts.map +1 -1
  37. package/lib/testUtils/index.js +0 -1
  38. package/lib/testUtils/index.js.map +1 -1
  39. package/lib/util/epochShuffling.d.ts +0 -1
  40. package/lib/util/epochShuffling.d.ts.map +1 -1
  41. package/lib/util/epochShuffling.js +1 -15
  42. package/lib/util/epochShuffling.js.map +1 -1
  43. package/lib/util/seed.js +1 -2
  44. package/lib/util/seed.js.map +1 -1
  45. package/package.json +7 -8
  46. package/src/block/processAttestationPhase0.ts +1 -1
  47. package/src/cache/epochTransitionCache.ts +11 -18
  48. package/src/epoch/processSlashings.ts +3 -2
  49. package/src/metrics.ts +6 -7
  50. package/src/rewards/attestationsRewards.ts +2 -3
  51. package/src/stateTransition.ts +8 -12
  52. package/src/stateView/beaconStateView.ts +29 -8
  53. package/src/stateView/computeNewStateRoot.ts +5 -10
  54. package/src/stateView/interface.ts +4 -6
  55. package/src/stateView/nativeBeaconStateView.ts +19 -8
  56. package/src/testUtils/index.ts +0 -1
  57. package/src/util/epochShuffling.ts +1 -19
  58. package/src/util/seed.ts +4 -4
  59. package/lib/testUtils/infura.d.ts +0 -3
  60. package/lib/testUtils/infura.d.ts.map +0 -1
  61. package/lib/testUtils/infura.js +0 -8
  62. package/lib/testUtils/infura.js.map +0 -1
  63. package/lib/testUtils/testFileCache.d.ts +0 -17
  64. package/lib/testUtils/testFileCache.d.ts.map +0 -1
  65. package/lib/testUtils/testFileCache.js +0 -99
  66. package/lib/testUtils/testFileCache.js.map +0 -1
  67. package/src/testUtils/infura.ts +0 -10
  68. package/src/testUtils/testFileCache.ts +0 -130
@@ -1 +1 @@
1
- {"version":3,"file":"seed.js","sourceRoot":"","sources":["../../src/util/seed.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"seed.js","sourceRoot":"","sources":["../../src/util/seed.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.49.0-dev.09a1892a85",
14
+ "version": "1.49.0-dev.0a27fd270f",
15
15
  "type": "module",
16
16
  "exports": {
17
17
  ".": {
@@ -69,15 +69,14 @@
69
69
  "@chainsafe/lodestar-z": "catalog:",
70
70
  "@chainsafe/persistent-merkle-tree": "^1.3.1",
71
71
  "@chainsafe/ssz": "^1.8.0",
72
- "@chainsafe/swap-or-not-shuffle": "^1.2.1",
73
- "@lodestar/config": "^1.49.0-dev.09a1892a85",
74
- "@lodestar/params": "^1.49.0-dev.09a1892a85",
75
- "@lodestar/types": "^1.49.0-dev.09a1892a85",
76
- "@lodestar/utils": "^1.49.0-dev.09a1892a85",
72
+ "@lodestar/config": "^1.49.0-dev.0a27fd270f",
73
+ "@lodestar/params": "^1.49.0-dev.0a27fd270f",
74
+ "@lodestar/types": "^1.49.0-dev.0a27fd270f",
75
+ "@lodestar/utils": "^1.49.0-dev.0a27fd270f",
77
76
  "@vekexasia/bigint-buffer2": "^1.1.1"
78
77
  },
79
78
  "devDependencies": {
80
- "@lodestar/api": "^1.49.0-dev.09a1892a85"
79
+ "@lodestar/test-utils": "^1.49.0-dev.0a27fd270f"
81
80
  },
82
81
  "keywords": [
83
82
  "ethereum",
@@ -85,5 +84,5 @@
85
84
  "beacon",
86
85
  "blockchain"
87
86
  ],
88
- "gitHead": "74ba20cac9dd2a2636fd6c85fdc16bf2edce059e"
87
+ "gitHead": "46f83d1d030496378b5e8f6d5e90e6b48de46513"
89
88
  }
@@ -10,7 +10,7 @@ import {isValidIndexedAttestation} from "./index.js";
10
10
  * state.previousEpochAttestations to be processed in bulk at the epoch transition.
11
11
  *
12
12
  * PERF: Work depends on number of Attestation per block. On mainnet the average is 89.7 / block, with 87.8 participant
13
- * true bits on average. See `packages/state-transition/test/perf/analyzeBlocks.ts`
13
+ * true bits on average.
14
14
  */
15
15
  export function processAttestationPhase0(
16
16
  state: CachedBeaconStatePhase0,
@@ -8,6 +8,7 @@ import {
8
8
  CachedBeaconStatePhase0,
9
9
  hasCompoundingWithdrawalCredential,
10
10
  } from "../index.js";
11
+ import type {BeaconStateTransitionMetrics} from "../metrics.js";
11
12
  import {computeBaseRewardPerIncrement} from "../util/altair.js";
12
13
  import {
13
14
  FLAG_CURR_HEAD_ATTESTER,
@@ -22,13 +23,6 @@ import {
22
23
  } from "../util/attesterStatus.js";
23
24
  import {EpochShuffling} from "../util/epochShuffling.js";
24
25
 
25
- export type EpochTransitionCacheOpts = {
26
- /**
27
- * Assert progressive balances the same to EpochTransitionCache
28
- */
29
- assertCorrectProgressiveBalances?: boolean;
30
- };
31
-
32
26
  /**
33
27
  * EpochTransitionCache is the parent object of:
34
28
  * - Any data-structures not part of the spec'ed BeaconState
@@ -220,7 +214,7 @@ const currentEpochParticipation = new Array<number>();
220
214
 
221
215
  export function beforeProcessEpoch(
222
216
  state: CachedBeaconStateAllForks,
223
- opts?: EpochTransitionCacheOpts
217
+ metrics?: Pick<BeaconStateTransitionMetrics, "progressiveBalancesMismatches"> | null
224
218
  ): EpochTransitionCache {
225
219
  const {config, epochCtx} = state;
226
220
  const forkSeq = config.getForkSeq(state.slot);
@@ -469,17 +463,16 @@ export function beforeProcessEpoch(
469
463
  }
470
464
  }
471
465
 
472
- if (opts?.assertCorrectProgressiveBalances && forkSeq >= ForkSeq.altair) {
473
- // TODO: describe issue. Compute progressive target balances
474
- if (epochCtx.currentTargetUnslashedBalanceIncrements !== currTargetUnslStake) {
475
- throw Error(
476
- `currentTargetUnslashedBalanceIncrements is wrong, expect ${currTargetUnslStake} got ${epochCtx.currentTargetUnslashedBalanceIncrements} epoch ${epochCtx.epoch}`
477
- );
466
+ if (forkSeq >= ForkSeq.altair) {
467
+ const currentTargetMismatch = epochCtx.currentTargetUnslashedBalanceIncrements !== currTargetUnslStake;
468
+ const previousTargetMismatch = epochCtx.previousTargetUnslashedBalanceIncrements !== prevTargetUnslStake;
469
+ if (currentTargetMismatch) {
470
+ metrics?.progressiveBalancesMismatches?.inc({target: "current"});
471
+ epochCtx.currentTargetUnslashedBalanceIncrements = currTargetUnslStake;
478
472
  }
479
- if (epochCtx.previousTargetUnslashedBalanceIncrements !== prevTargetUnslStake) {
480
- throw Error(
481
- `previousTargetUnslashedBalanceIncrements is wrong, expect ${prevTargetUnslStake} got ${epochCtx.previousTargetUnslashedBalanceIncrements} epoch ${epochCtx.epoch}`
482
- );
473
+ if (previousTargetMismatch) {
474
+ metrics?.progressiveBalancesMismatches?.inc({target: "previous"});
475
+ epochCtx.previousTargetUnslashedBalanceIncrements = prevTargetUnslStake;
483
476
  }
484
477
  }
485
478
 
@@ -50,8 +50,9 @@ export function processSlashings(
50
50
  );
51
51
  const increment = EFFECTIVE_BALANCE_INCREMENT;
52
52
 
53
- const penaltyPerEffectiveBalanceIncrement = Math.floor(
54
- (adjustedTotalSlashingBalanceByIncrement * increment) / totalBalanceByIncrement
53
+ // numerator can exceed Number.MAX_SAFE_INTEGER, where float division may round up to the next integer
54
+ const penaltyPerEffectiveBalanceIncrement = Number(
55
+ (BigInt(adjustedTotalSlashingBalanceByIncrement) * BigInt(increment)) / BigInt(totalBalanceByIncrement)
55
56
  );
56
57
  const penalties: number[] = [];
57
58
 
package/src/metrics.ts CHANGED
@@ -2,7 +2,7 @@ import {ForkName} from "@lodestar/params";
2
2
  import {MetricsRegister} from "@lodestar/utils";
3
3
  import {BlockProcessStep, ProcessOperationsStep, ProposerRewardType} from "./block/types.js";
4
4
  import {EpochTransitionStep} from "./epoch/index.js";
5
- import {StateCloneSource, StateHashTreeRootSource} from "./stateTransition.js";
5
+ import {StateCloneSource} from "./stateTransition.js";
6
6
  import {CachedBeaconStateAllForks} from "./types.js";
7
7
  import {isViewDUNodesPopulated} from "./util/ssz.js";
8
8
 
@@ -77,12 +77,6 @@ export function getMetrics(register: MetricsRegister) {
77
77
  help: "Time to call commit after process a single block in seconds",
78
78
  buckets: [0.005, 0.01, 0.02, 0.05, 0.1, 1],
79
79
  }),
80
- stateHashTreeRootTime: register.histogram<{source: StateHashTreeRootSource}>({
81
- name: "lodestar_stfn_hash_tree_root_seconds",
82
- help: "Time to compute the hash tree root of a post state in seconds",
83
- buckets: [0.05, 0.1, 0.2, 0.5, 1, 1.5],
84
- labelNames: ["source"],
85
- }),
86
80
  numEffectiveBalanceUpdates: register.gauge({
87
81
  name: "lodestar_stfn_effective_balance_updates_count",
88
82
  help: "Total count of effective balance updates",
@@ -148,6 +142,11 @@ export function getMetrics(register: MetricsRegister) {
148
142
  name: "lodestar_stfn_attestations_per_block_total",
149
143
  help: "Total count of attestations per block",
150
144
  }),
145
+ progressiveBalancesMismatches: register.counter<{target: "current" | "previous"}>({
146
+ name: "lodestar_stfn_progressive_balances_mismatches_total",
147
+ help: "Total count of progressive balance cache mismatches by target balance",
148
+ labelNames: ["target"],
149
+ }),
151
150
  proposerRewards: register.gauge<{type: ProposerRewardType}>({
152
151
  name: "lodestar_stfn_proposer_rewards_total",
153
152
  help: "Proposer reward by type per block",
@@ -122,9 +122,8 @@ function computeIdealAttestationsRewardsAndPenaltiesAltair(
122
122
  ) {
123
123
  const baseReward = effectiveBalanceByIncrement * baseRewardPerIncrement;
124
124
  const rewardNumerator = baseReward * weight * unslashedStakeByIncrement;
125
- // Both idealReward and penalty are rounded to nearest integer. Loss of precision is minimal as unit is gwei
126
- const idealReward = Math.round(rewardNumerator / activeBalanceByIncrement / WEIGHT_DENOMINATOR);
127
- const penalty = Math.round((baseReward * weight) / WEIGHT_DENOMINATOR); // Positive number indicates penalty
125
+ const idealReward = Math.floor(rewardNumerator / (activeBalanceByIncrement * WEIGHT_DENOMINATOR));
126
+ const penalty = Math.floor((baseReward * weight) / WEIGHT_DENOMINATOR); // Positive number indicates penalty
128
127
 
129
128
  const idealAttestationsReward = idealRewards[effectiveBalanceByIncrement];
130
129
  idealAttestationsReward[flagName] = isInInactivityLeak(state) ? 0 : idealReward; // No attestations rewards during inactivity leak
@@ -4,7 +4,7 @@ import {toRootHex} from "@lodestar/utils";
4
4
  import {BlockExternalData, DataAvailabilityStatus, ExecutionPayloadStatus} from "./block/externalData.js";
5
5
  import {processBlock} from "./block/index.js";
6
6
  import {ProcessBlockOpts} from "./block/types.js";
7
- import {EpochTransitionCache, EpochTransitionCacheOpts, beforeProcessEpoch} from "./cache/epochTransitionCache.js";
7
+ import {EpochTransitionCache, beforeProcessEpoch} from "./cache/epochTransitionCache.js";
8
8
  import {EpochTransitionStep, processEpoch} from "./epoch/index.js";
9
9
  import {BeaconStateTransitionMetrics, onPostStateMetrics, onStateCloneMetrics} from "./metrics.js";
10
10
  import {verifyProposerSignature} from "./signatureSets/index.js";
@@ -36,7 +36,6 @@ import {computeEpochAtSlot} from "./util/index.js";
36
36
 
37
37
  // NOTE DENEB: Mandatory BlockExternalData to decide if block is available or not
38
38
  export type StateTransitionOpts = BlockExternalData &
39
- EpochTransitionCacheOpts &
40
39
  ProcessBlockOpts & {
41
40
  verifyStateRoot?: boolean;
42
41
  verifyProposer?: boolean;
@@ -110,7 +109,7 @@ export function stateTransition(
110
109
 
111
110
  // Process slots (including those with no blocks) since block.
112
111
  // Includes state upgrades
113
- postState = processSlotsWithTransientCache(postState, blockSlot, options, {metrics, validatorMonitor});
112
+ postState = processSlotsWithTransientCache(postState, blockSlot, {metrics, validatorMonitor});
114
113
 
115
114
  // Verify proposer signature only
116
115
  if (verifyProposer && !verifyProposerSignature(postState.config, signedBlock)) {
@@ -137,12 +136,10 @@ export function stateTransition(
137
136
  }
138
137
 
139
138
  // Verify state root
139
+ // Only spec tests enable verifyStateRoot. beacon-node always passes false and computes the root at the
140
+ // call site, where it is timed per source, so there is nothing to record here.
140
141
  if (verifyStateRoot) {
141
- const hashTreeRootTimer = metrics?.stateHashTreeRootTime.startTimer({
142
- source: StateHashTreeRootSource.stateTransition,
143
- });
144
142
  const stateRoot = postState.hashTreeRoot();
145
- hashTreeRootTimer?.();
146
143
 
147
144
  if (!ssz.Root.equals(block.stateRoot, stateRoot)) {
148
145
  throw new Error(
@@ -164,11 +161,11 @@ export function stateTransition(
164
161
  export function processSlots(
165
162
  state: CachedBeaconStateAllForks,
166
163
  slot: Slot,
167
- epochTransitionCacheOpts?: EpochTransitionCacheOpts & {dontTransferCache?: boolean},
164
+ opts?: {dontTransferCache?: boolean},
168
165
  {metrics, validatorMonitor}: StateTransitionModules = {}
169
166
  ): CachedBeaconStateAllForks {
170
167
  // .clone() before mutating state in state transition
171
- let postState = state.clone(epochTransitionCacheOpts?.dontTransferCache);
168
+ let postState = state.clone(opts?.dontTransferCache);
172
169
 
173
170
  if (metrics) {
174
171
  onStateCloneMetrics(postState, metrics, StateCloneSource.processSlots);
@@ -177,7 +174,7 @@ export function processSlots(
177
174
  // State is already a ViewDU, which won't commit changes. Equivalent to .setStateCachesAsTransient()
178
175
  // postState.setStateCachesAsTransient();
179
176
 
180
- postState = processSlotsWithTransientCache(postState, slot, epochTransitionCacheOpts, {metrics, validatorMonitor});
177
+ postState = processSlotsWithTransientCache(postState, slot, {metrics, validatorMonitor});
181
178
 
182
179
  // Apply changes to state, must do before hashing
183
180
  postState.commit();
@@ -210,7 +207,6 @@ export function processSlots(
210
207
  function processSlotsWithTransientCache(
211
208
  postState: CachedBeaconStateAllForks,
212
209
  slot: Slot,
213
- epochTransitionCacheOpts?: EpochTransitionCacheOpts,
214
210
  {metrics, validatorMonitor}: StateTransitionModules = {}
215
211
  ): CachedBeaconStateAllForks {
216
212
  const {config} = postState;
@@ -231,7 +227,7 @@ function processSlotsWithTransientCache(
231
227
  let epochTransitionCache: EpochTransitionCache;
232
228
  {
233
229
  const timer = metrics?.epochTransitionStepTime.startTimer({step: EpochTransitionStep.beforeProcessEpoch});
234
- epochTransitionCache = beforeProcessEpoch(postState, epochTransitionCacheOpts);
230
+ epochTransitionCache = beforeProcessEpoch(postState, metrics);
235
231
  timer?.();
236
232
  }
237
233
 
@@ -33,7 +33,6 @@ import {applyParentExecutionPayload} from "../block/processParentExecutionPayloa
33
33
  import {VoluntaryExitValidity, getVoluntaryExitValidity} from "../block/processVoluntaryExit.js";
34
34
  import {getExpectedWithdrawals} from "../block/processWithdrawals.js";
35
35
  import {EffectiveBalanceIncrements} from "../cache/effectiveBalanceIncrements.js";
36
- import {EpochTransitionCacheOpts} from "../cache/epochTransitionCache.js";
37
36
  import {RewardCache} from "../cache/rewardCache.js";
38
37
  import {
39
38
  CachedBeaconStateAllForks,
@@ -105,6 +104,8 @@ export class BeaconStateView implements IBeaconStateViewLatestFork {
105
104
  private _executionPayloadAvailability: BitArray | null = null;
106
105
  private _latestExecutionPayloadBid: ExecutionPayloadBid | null = null;
107
106
  private _payloadExpectedWithdrawals: capella.Withdrawal[] | null = null;
107
+ private _builderPendingPayments: gloas.BuilderPendingPayments | null = null;
108
+ private _builderPendingWithdrawals: gloas.BuilderPendingWithdrawals | null = null;
108
109
 
109
110
  constructor(readonly cachedState: CachedBeaconStateAllForks) {
110
111
  this.config = cachedState.config;
@@ -415,6 +416,30 @@ export class BeaconStateView implements IBeaconStateViewLatestFork {
415
416
  return this._payloadExpectedWithdrawals;
416
417
  }
417
418
 
419
+ get builderPendingPayments(): gloas.BuilderPendingPayments {
420
+ if (this.config.getForkSeq(this.cachedState.slot) < ForkSeq.gloas) {
421
+ throw new Error("Pending builder payments are not supported before Gloas");
422
+ }
423
+
424
+ if (this._builderPendingPayments === null) {
425
+ this._builderPendingPayments = (this.cachedState as CachedBeaconStateGloas).builderPendingPayments.toValue();
426
+ }
427
+ return this._builderPendingPayments;
428
+ }
429
+
430
+ get builderPendingWithdrawals(): gloas.BuilderPendingWithdrawals {
431
+ if (this.config.getForkSeq(this.cachedState.slot) < ForkSeq.gloas) {
432
+ throw new Error("Pending builder withdrawals are not supported before Gloas");
433
+ }
434
+
435
+ if (this._builderPendingWithdrawals === null) {
436
+ this._builderPendingWithdrawals = (
437
+ this.cachedState as CachedBeaconStateGloas
438
+ ).builderPendingWithdrawals.toValue();
439
+ }
440
+ return this._builderPendingWithdrawals;
441
+ }
442
+
418
443
  getBuilder(index: BuilderIndex): gloas.Builder {
419
444
  if (this.config.getForkSeq(this.cachedState.slot) < ForkSeq.gloas) {
420
445
  throw new Error("Builders are not supported before Gloas");
@@ -851,7 +876,7 @@ export class BeaconStateView implements IBeaconStateViewLatestFork {
851
876
  const postState = new BeaconStateView(
852
877
  stateTransition(this.cachedState, block, computeNewStateRootStateTransitionOpts, modules)
853
878
  );
854
- return getComputeNewStateRootResult(postState, modules);
879
+ return getComputeNewStateRootResult(postState);
855
880
  }
856
881
 
857
882
  stateTransition(
@@ -863,12 +888,8 @@ export class BeaconStateView implements IBeaconStateViewLatestFork {
863
888
  return new BeaconStateView(newState);
864
889
  }
865
890
 
866
- processSlots(
867
- slot: Slot,
868
- epochTransitionCacheOpts?: EpochTransitionCacheOpts & {dontTransferCache?: boolean},
869
- modules?: StateTransitionModules
870
- ): IBeaconStateView {
871
- const newState = processSlots(this.cachedState, slot, epochTransitionCacheOpts, modules);
891
+ processSlots(slot: Slot, opts?: {dontTransferCache?: boolean}, modules?: StateTransitionModules): IBeaconStateView {
892
+ const newState = processSlots(this.cachedState, slot, opts, modules);
872
893
  return new BeaconStateView(newState);
873
894
  }
874
895
 
@@ -1,5 +1,5 @@
1
1
  import {DataAvailabilityStatus, ExecutionPayloadStatus} from "../block/externalData.js";
2
- import {StateHashTreeRootSource, StateTransitionModules, StateTransitionOpts} from "../stateTransition.js";
2
+ import {StateTransitionOpts} from "../stateTransition.js";
3
3
  import {ComputeNewStateRootResult, IBeaconStateView} from "./interface.js";
4
4
 
5
5
  /** State transition options for computing the state root of a locally produced block. */
@@ -18,18 +18,13 @@ export const computeNewStateRootStateTransitionOpts: StateTransitionOpts = {
18
18
  dontTransferCache: true,
19
19
  };
20
20
 
21
- export function getComputeNewStateRootResult(
22
- postState: IBeaconStateView,
23
- {metrics}: StateTransitionModules
24
- ): ComputeNewStateRootResult {
21
+ export function getComputeNewStateRootResult(postState: IBeaconStateView): ComputeNewStateRootResult {
25
22
  const {attestations, syncAggregate, slashing} = postState.proposerRewards;
26
23
  const proposerReward = BigInt(attestations + syncAggregate + slashing);
27
24
 
28
- const hashTreeRootTimer = metrics?.stateHashTreeRootTime.startTimer({
29
- source: StateHashTreeRootSource.computeNewStateRoot,
30
- });
25
+ const start = Date.now();
31
26
  const newStateRoot = postState.hashTreeRoot();
32
- hashTreeRootTimer?.();
27
+ const hashTreeRootTime = (Date.now() - start) / 1000;
33
28
 
34
- return {newStateRoot, proposerReward, postState};
29
+ return {newStateRoot, proposerReward, postState, hashTreeRootTime};
35
30
  }
@@ -48,7 +48,6 @@ import {
48
48
  import {Checkpoint, Fork} from "@lodestar/types/phase0";
49
49
  import {VoluntaryExitValidity} from "../block/processVoluntaryExit.js";
50
50
  import {EffectiveBalanceIncrements} from "../cache/effectiveBalanceIncrements.js";
51
- import {EpochTransitionCacheOpts} from "../cache/epochTransitionCache.js";
52
51
  import {RewardCache} from "../cache/rewardCache.js";
53
52
  import {SyncCommitteeCache} from "../cache/syncCommitteeCache.js";
54
53
  import {SyncCommitteeWitness} from "../lightClient/types.js";
@@ -68,6 +67,7 @@ export type ComputeNewStateRootResult = {
68
67
  newStateRoot: Root;
69
68
  proposerReward: Gwei;
70
69
  postState: IBeaconStateView;
70
+ hashTreeRootTime: number;
71
71
  };
72
72
 
73
73
  /**
@@ -184,11 +184,7 @@ export interface IBeaconStateView {
184
184
  options: StateTransitionOpts,
185
185
  modules: StateTransitionModules
186
186
  ): IBeaconStateView;
187
- processSlots(
188
- slot: Slot,
189
- epochTransitionCacheOpts?: EpochTransitionCacheOpts & {dontTransferCache?: boolean},
190
- modules?: StateTransitionModules
191
- ): IBeaconStateView;
187
+ processSlots(slot: Slot, opts?: {dontTransferCache?: boolean}, modules?: StateTransitionModules): IBeaconStateView;
192
188
  }
193
189
 
194
190
  /** Altair+ state fields — use isStatePostAltair() guard */
@@ -281,6 +277,8 @@ export interface IBeaconStateViewGloas extends IBeaconStateViewFulu {
281
277
  executionPayloadAvailability: BitArray;
282
278
  latestExecutionPayloadBid: ExecutionPayloadBid;
283
279
  payloadExpectedWithdrawals: capella.Withdrawal[];
280
+ builderPendingPayments: gloas.BuilderPendingPayments;
281
+ builderPendingWithdrawals: gloas.BuilderPendingWithdrawals;
284
282
  getBuilder(index: BuilderIndex): gloas.Builder;
285
283
  getBuildersLength(): number;
286
284
  canBuilderCoverBid(builderIndex: BuilderIndex, bidAmount: number): boolean;
@@ -29,7 +29,6 @@ import {
29
29
  import {Checkpoint, Fork} from "@lodestar/types/phase0";
30
30
  import {VoluntaryExitValidity} from "../block/processVoluntaryExit.js";
31
31
  import {EffectiveBalanceIncrements} from "../cache/effectiveBalanceIncrements.js";
32
- import {EpochTransitionCacheOpts} from "../cache/epochTransitionCache.js";
33
32
  import {RewardCache} from "../cache/rewardCache.js";
34
33
  import {SyncCommitteeCache} from "../cache/syncCommitteeCache.js";
35
34
  import {SyncCommitteeWitness} from "../lightClient/types.js";
@@ -119,6 +118,8 @@ export class NativeBeaconStateView implements IBeaconStateViewLatestFork {
119
118
  private _latestBlockHash: Bytes32 | null = null;
120
119
  private _latestExecutionPayloadBid: ExecutionPayloadBid | null = null;
121
120
  private _payloadExpectedWithdrawals: capella.Withdrawal[] | null = null;
121
+ private _builderPendingPayments: gloas.BuilderPendingPayments | null = null;
122
+ private _builderPendingWithdrawals: gloas.BuilderPendingWithdrawals | null = null;
122
123
 
123
124
  // Per-argument caches for argument-taking methods. The binding is treated as
124
125
  // immutable for the view's lifetime, so a given argument always yields the
@@ -652,7 +653,7 @@ export class NativeBeaconStateView implements IBeaconStateViewLatestFork {
652
653
  const postState = new NativeBeaconStateView(
653
654
  this.binding.stateTransition(input.block, computeNewStateRootStateTransitionOpts, modules)
654
655
  );
655
- return getComputeNewStateRootResult(postState, modules);
656
+ return getComputeNewStateRootResult(postState);
656
657
  }
657
658
 
658
659
  stateTransition(
@@ -663,12 +664,8 @@ export class NativeBeaconStateView implements IBeaconStateViewLatestFork {
663
664
  return new NativeBeaconStateView(this.binding.stateTransition(signedBlock, options, modules));
664
665
  }
665
666
 
666
- processSlots(
667
- slot: Slot,
668
- epochTransitionCacheOpts?: EpochTransitionCacheOpts & {dontTransferCache?: boolean},
669
- modules?: StateTransitionModules
670
- ): IBeaconStateView {
671
- return new NativeBeaconStateView(this.binding.processSlots(slot, epochTransitionCacheOpts, modules));
667
+ processSlots(slot: Slot, opts?: {dontTransferCache?: boolean}, modules?: StateTransitionModules): IBeaconStateView {
668
+ return new NativeBeaconStateView(this.binding.processSlots(slot, opts, modules));
672
669
  }
673
670
 
674
671
  // ─── altair ──────────────────────────────────────────────────────────────
@@ -897,6 +894,20 @@ export class NativeBeaconStateView implements IBeaconStateViewLatestFork {
897
894
  return this._payloadExpectedWithdrawals;
898
895
  }
899
896
 
897
+ get builderPendingPayments(): gloas.BuilderPendingPayments {
898
+ if (this._builderPendingPayments === null) {
899
+ this._builderPendingPayments = this.binding.builderPendingPayments;
900
+ }
901
+ return this._builderPendingPayments;
902
+ }
903
+
904
+ get builderPendingWithdrawals(): gloas.BuilderPendingWithdrawals {
905
+ if (this._builderPendingWithdrawals === null) {
906
+ this._builderPendingWithdrawals = this.binding.builderPendingWithdrawals;
907
+ }
908
+ return this._builderPendingWithdrawals;
909
+ }
910
+
900
911
  getBuilder(index: BuilderIndex): gloas.Builder {
901
912
  let cached = this._getBuilder.get(index);
902
913
  if (cached === undefined) {
@@ -2,5 +2,4 @@ export * from "./cache.js";
2
2
  export * from "./interop.js";
3
3
  export * from "./interopPubkeyCache.js";
4
4
  export * from "./params.js";
5
- export * from "./testFileCache.js";
6
5
  export * from "./util.js";
@@ -1,4 +1,4 @@
1
- import {asyncUnshuffleList, unshuffleList} from "@chainsafe/swap-or-not-shuffle";
1
+ import {unshuffleList} from "@chainsafe/lodestar-z/shuffle";
2
2
  import {BeaconConfig} from "@lodestar/config";
3
3
  import {
4
4
  DOMAIN_BEACON_ATTESTER,
@@ -105,24 +105,6 @@ export function computeEpochShuffling(
105
105
  };
106
106
  }
107
107
 
108
- export async function computeEpochShufflingAsync(
109
- // TODO: (@matthewkeil) remove state/epoch and pass in seed to clean this up
110
- state: BeaconStateAllForks,
111
- activeIndices: Uint32Array,
112
- epoch: Epoch
113
- ): Promise<EpochShuffling> {
114
- const seed = getSeed(state, epoch, DOMAIN_BEACON_ATTESTER);
115
- const shuffling = await asyncUnshuffleList(activeIndices, seed, SHUFFLE_ROUND_COUNT);
116
- const committees = buildCommitteesFromShuffling(shuffling);
117
- return {
118
- epoch,
119
- activeIndices,
120
- shuffling,
121
- committees,
122
- committeesPerSlot: committees[0].length,
123
- };
124
- }
125
-
126
108
  export function calculateDecisionRoot(state: BeaconStateAllForks, epoch: Epoch): RootHex {
127
109
  const pivotSlot = Math.max(GENESIS_SLOT, computeStartSlotAtEpoch(epoch - 1) - 1);
128
110
  return toRootHex(getBlockRootAtSlot(state, pivotSlot));
package/src/util/seed.ts CHANGED
@@ -1,9 +1,9 @@
1
1
  import {digest} from "@chainsafe/as-sha256";
2
- import {computePtcIndicesForEpoch} from "@chainsafe/lodestar-z/shuffle";
3
2
  import {
3
+ computePtcIndicesForEpoch,
4
4
  computeProposerIndex as nativeComputeProposerIndex,
5
5
  computeSyncCommitteeIndices as nativeComputeSyncCommitteeIndices,
6
- } from "@chainsafe/swap-or-not-shuffle";
6
+ } from "@chainsafe/lodestar-z/shuffle";
7
7
  import {
8
8
  DOMAIN_BEACON_PROPOSER,
9
9
  DOMAIN_PTC_ATTESTER,
@@ -118,7 +118,7 @@ export function computeProposerIndex(
118
118
  }
119
119
 
120
120
  let maxEffectiveBalance: number;
121
- let randByteCount: number;
121
+ let randByteCount: 1 | 2;
122
122
  if (fork >= ForkSeq.electra) {
123
123
  maxEffectiveBalance = MAX_EFFECTIVE_BALANCE_ELECTRA;
124
124
  randByteCount = 2;
@@ -245,7 +245,7 @@ export function getNextSyncCommitteeIndices(
245
245
  effectiveBalanceIncrements: EffectiveBalanceIncrements
246
246
  ): Uint32Array {
247
247
  let maxEffectiveBalance: number;
248
- let randByteCount: number;
248
+ let randByteCount: 1 | 2;
249
249
 
250
250
  if (fork >= ForkSeq.electra) {
251
251
  maxEffectiveBalance = MAX_EFFECTIVE_BALANCE_ELECTRA;
@@ -1,3 +0,0 @@
1
- import { NetworkName } from "@lodestar/config/networks";
2
- export declare function getInfuraBeaconUrl(network: NetworkName): string;
3
- //# sourceMappingURL=infura.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"infura.d.ts","sourceRoot":"","sources":["../../src/testUtils/infura.ts"],"names":[],"mappings":"AAAA,OAAO,EAAC,WAAW,EAAC,MAAM,2BAA2B,CAAC;AAEtD,wBAAgB,kBAAkB,CAAC,OAAO,EAAE,WAAW,GAAG,MAAM,CAO/D"}
@@ -1,8 +0,0 @@
1
- export function getInfuraBeaconUrl(network) {
2
- const INFURA_ETH2_CREDENTIALS = process.env.INFURA_ETH2_CREDENTIALS;
3
- if (!INFURA_ETH2_CREDENTIALS) {
4
- throw Error("Must set ENV INFURA_ETH2_CREDENTIALS");
5
- }
6
- return `https://${INFURA_ETH2_CREDENTIALS}@eth2-beacon-${network}.infura.io`;
7
- }
8
- //# sourceMappingURL=infura.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"infura.js","sourceRoot":"","sources":["../../src/testUtils/infura.ts"],"names":[],"mappings":"AAEA,MAAM,UAAU,kBAAkB,CAAC,OAAoB;IACrD,MAAM,uBAAuB,GAAG,OAAO,CAAC,GAAG,CAAC,uBAAuB,CAAC;IACpE,IAAI,CAAC,uBAAuB,EAAE,CAAC;QAC7B,MAAM,KAAK,CAAC,sCAAsC,CAAC,CAAC;IACtD,CAAC;IAED,OAAO,WAAW,uBAAuB,gBAAgB,OAAO,YAAY,CAAC;AAC/E,CAAC"}
@@ -1,17 +0,0 @@
1
- import { ChainForkConfig } from "@lodestar/config";
2
- import { NetworkName } from "@lodestar/config/networks";
3
- import { SignedBeaconBlock } from "@lodestar/types";
4
- import { CachedBeaconStateAllForks } from "../index.js";
5
- /**
6
- * Create a network config from known network params
7
- */
8
- export declare function getNetworkConfig(network: NetworkName): ChainForkConfig;
9
- /**
10
- * Download a state from Infura. Caches states in local fs by network and slot to only download once.
11
- */
12
- export declare function getNetworkCachedState(network: NetworkName, slot: number, timeout?: number): Promise<CachedBeaconStateAllForks>;
13
- /**
14
- * Download a state from Infura. Caches states in local fs by network and slot to only download once.
15
- */
16
- export declare function getNetworkCachedBlock(network: NetworkName, slot: number, timeout?: number): Promise<SignedBeaconBlock>;
17
- //# sourceMappingURL=testFileCache.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"testFileCache.d.ts","sourceRoot":"","sources":["../../src/testUtils/testFileCache.ts"],"names":[],"mappings":"AAIA,OAAO,EAAC,eAAe,EAAwB,MAAM,kBAAkB,CAAC;AACxE,OAAO,EAAC,WAAW,EAAsB,MAAM,2BAA2B,CAAC;AAC3E,OAAO,EAAC,iBAAiB,EAAC,MAAM,iBAAiB,CAAC;AAElD,OAAO,EAAC,yBAAyB,EAAC,MAAM,aAAa,CAAC;AAYtD;;GAEG;AACH,wBAAgB,gBAAgB,CAAC,OAAO,EAAE,WAAW,GAAG,eAAe,CAGtE;AAED;;GAEG;AACH,wBAAsB,qBAAqB,CACzC,OAAO,EAAE,WAAW,EACpB,IAAI,EAAE,MAAM,EACZ,OAAO,CAAC,EAAE,MAAM,GACf,OAAO,CAAC,yBAAyB,CAAC,CA4BpC;AAED;;GAEG;AACH,wBAAsB,qBAAqB,CACzC,OAAO,EAAE,WAAW,EACpB,IAAI,EAAE,MAAM,EACZ,OAAO,CAAC,EAAE,MAAM,GACf,OAAO,CAAC,iBAAiB,CAAC,CAyB5B"}