@lodestar/state-transition 1.13.0-dev.bc2ea44a5b → 1.13.0-dev.c044d4cdd4

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.
@@ -83,6 +83,7 @@ export function processAttestationsAltair(fork, state, attestations, verifySigna
83
83
  proposerReward += Math.floor(proposerRewardNumerator / PROPOSER_REWARD_DOMINATOR);
84
84
  }
85
85
  increaseBalance(state, epochCtx.getBeaconProposer(state.slot), proposerReward);
86
+ state.proposerRewards.attestations = proposerReward;
86
87
  }
87
88
  /**
88
89
  * https://github.com/ethereum/consensus-specs/blob/v1.1.10/specs/altair/beacon-chain.md#get_attestation_participation_flag_indices
@@ -1 +1 @@
1
- {"version":3,"file":"processAttestationsAltair.js","sourceRoot":"","sources":["../../src/block/processAttestationsAltair.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"processAttestationsAltair.js","sourceRoot":"","sources":["../../src/block/processAttestationsAltair.ts"],"names":[],"mappings":"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"}
@@ -32,6 +32,7 @@ export function processSyncAggregate(state, block, verifySignatures = true) {
32
32
  }
33
33
  // Proposer reward
34
34
  proposerBalance += syncProposerReward;
35
+ state.proposerRewards.syncAggregate += syncProposerReward;
35
36
  }
36
37
  else {
37
38
  // Negative rewards for non participants
@@ -1 +1 @@
1
- {"version":3,"file":"processSyncCommittee.js","sourceRoot":"","sources":["../../src/block/processSyncCommittee.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"processSyncCommittee.js","sourceRoot":"","sources":["../../src/block/processSyncCommittee.ts"],"names":[],"mappings":"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"}
@@ -5,16 +5,21 @@ import { initiateValidatorExit } from "./initiateValidatorExit.js";
5
5
  const TIMELY_TARGET = 1 << TIMELY_TARGET_FLAG_INDEX;
6
6
  export function slashValidator(fork, state, slashedIndex, whistleblowerIndex) {
7
7
  const { epochCtx } = state;
8
- const epoch = epochCtx.epoch;
8
+ const { epoch, effectiveBalanceIncrements } = epochCtx;
9
9
  const validator = state.validators.get(slashedIndex);
10
10
  // TODO: Bellatrix initiateValidatorExit validators.update() with the one below
11
11
  initiateValidatorExit(state, validator);
12
12
  validator.slashed = true;
13
13
  validator.withdrawableEpoch = Math.max(validator.withdrawableEpoch, epoch + EPOCHS_PER_SLASHINGS_VECTOR);
14
14
  const { effectiveBalance } = validator;
15
- // TODO: could state.slashings be number?
15
+ // state.slashings is initially a Gwei (BigInt) vector, however since Nov 2023 it's converted to UintNum64 (number) vector in the state transition because:
16
+ // - state.slashings[nextEpoch % EPOCHS_PER_SLASHINGS_VECTOR] is reset per epoch in processSlashingsReset()
17
+ // - max slashed validators per epoch is SLOTS_PER_EPOCH * MAX_ATTESTER_SLASHINGS * MAX_VALIDATORS_PER_COMMITTEE which is 32 * 2 * 2048 = 131072 on mainnet
18
+ // - with that and 32_000_000_000 MAX_EFFECTIVE_BALANCE, it still fits in a number given that Math.floor(Number.MAX_SAFE_INTEGER / 32_000_000_000) = 281474
19
+ // - we don't need to compute the total slashings from state.slashings, it's handled by totalSlashingsByIncrement in EpochCache
16
20
  const slashingIndex = epoch % EPOCHS_PER_SLASHINGS_VECTOR;
17
- state.slashings.set(slashingIndex, state.slashings.get(slashingIndex) + BigInt(effectiveBalance));
21
+ state.slashings.set(slashingIndex, (state.slashings.get(slashingIndex) ?? 0) + effectiveBalance);
22
+ epochCtx.totalSlashingsByIncrement += effectiveBalanceIncrements[slashedIndex];
18
23
  const minSlashingPenaltyQuotient = fork === ForkSeq.phase0
19
24
  ? MIN_SLASHING_PENALTY_QUOTIENT
20
25
  : fork === ForkSeq.altair
@@ -30,10 +35,12 @@ export function slashValidator(fork, state, slashedIndex, whistleblowerIndex) {
30
35
  if (whistleblowerIndex === undefined || !Number.isSafeInteger(whistleblowerIndex)) {
31
36
  // Call increaseBalance() once with `(whistleblowerReward - proposerReward) + proposerReward`
32
37
  increaseBalance(state, proposerIndex, whistleblowerReward);
38
+ state.proposerRewards.slashing += whistleblowerReward;
33
39
  }
34
40
  else {
35
41
  increaseBalance(state, proposerIndex, proposerReward);
36
42
  increaseBalance(state, whistleblowerIndex, whistleblowerReward - proposerReward);
43
+ state.proposerRewards.slashing += proposerReward;
37
44
  }
38
45
  // TODO: describe issue. Compute progressive target balances
39
46
  // if a validator is slashed, lookup their participation and remove from the cumulative values
@@ -1 +1 @@
1
- {"version":3,"file":"slashValidator.js","sourceRoot":"","sources":["../../src/block/slashValidator.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"slashValidator.js","sourceRoot":"","sources":["../../src/block/slashValidator.ts"],"names":[],"mappings":"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"}
@@ -97,6 +97,10 @@ export declare class EpochCache {
97
97
  * Effective balances, for altair processAttestations()
98
98
  */
99
99
  effectiveBalanceIncrements: EffectiveBalanceIncrements;
100
+ /**
101
+ * Total state.slashings by increment, for processSlashing()
102
+ */
103
+ totalSlashingsByIncrement: number;
100
104
  syncParticipantReward: number;
101
105
  syncProposerReward: number;
102
106
  /**
@@ -165,6 +169,7 @@ export declare class EpochCache {
165
169
  currentShuffling: EpochShuffling;
166
170
  nextShuffling: EpochShuffling;
167
171
  effectiveBalanceIncrements: EffectiveBalanceIncrements;
172
+ totalSlashingsByIncrement: number;
168
173
  syncParticipantReward: number;
169
174
  syncProposerReward: number;
170
175
  baseRewardPerIncrement: number;
@@ -7,6 +7,7 @@ import { computeActivationExitEpoch, computeEpochAtSlot, computeStartSlotAtEpoch
7
7
  import { computeEpochShuffling, getShufflingDecisionBlock } from "../util/epochShuffling.js";
8
8
  import { computeBaseRewardPerIncrement, computeSyncParticipantReward } from "../util/syncCommittee.js";
9
9
  import { sumTargetUnslashedBalanceIncrements } from "../util/targetUnslashedBalance.js";
10
+ import { getTotalSlashingsByIncrement } from "../epoch/processSlashings.js";
10
11
  import { getEffectiveBalanceIncrementsWithLen } from "./effectiveBalanceIncrements.js";
11
12
  import { PubkeyIndexMap, syncPubkeys } from "./pubkeyCache.js";
12
13
  import { computeSyncCommitteeCache, getSyncCommitteeCache, SyncCommitteeCacheEmpty, } from "./syncCommitteeCache.js";
@@ -46,6 +47,7 @@ export class EpochCache {
46
47
  this.currentShuffling = data.currentShuffling;
47
48
  this.nextShuffling = data.nextShuffling;
48
49
  this.effectiveBalanceIncrements = data.effectiveBalanceIncrements;
50
+ this.totalSlashingsByIncrement = data.totalSlashingsByIncrement;
49
51
  this.syncParticipantReward = data.syncParticipantReward;
50
52
  this.syncProposerReward = data.syncProposerReward;
51
53
  this.baseRewardPerIncrement = data.baseRewardPerIncrement;
@@ -83,6 +85,7 @@ export class EpochCache {
83
85
  const validators = state.validators.getAllReadonlyValues();
84
86
  const validatorCount = validators.length;
85
87
  const effectiveBalanceIncrements = getEffectiveBalanceIncrementsWithLen(validatorCount);
88
+ const totalSlashingsByIncrement = getTotalSlashingsByIncrement(state);
86
89
  const previousActiveIndices = [];
87
90
  const currentActiveIndices = [];
88
91
  const nextActiveIndices = [];
@@ -203,6 +206,7 @@ export class EpochCache {
203
206
  currentShuffling,
204
207
  nextShuffling,
205
208
  effectiveBalanceIncrements,
209
+ totalSlashingsByIncrement,
206
210
  syncParticipantReward,
207
211
  syncProposerReward,
208
212
  baseRewardPerIncrement,
@@ -241,6 +245,7 @@ export class EpochCache {
241
245
  // Uint8Array, requires cloning, but it is cloned only when necessary before an epoch transition
242
246
  // See EpochCache.beforeEpochTransition()
243
247
  effectiveBalanceIncrements: this.effectiveBalanceIncrements,
248
+ totalSlashingsByIncrement: this.totalSlashingsByIncrement,
244
249
  // Basic types (numbers) cloned implicitly
245
250
  syncParticipantReward: this.syncParticipantReward,
246
251
  syncProposerReward: this.syncProposerReward,
@@ -1 +1 @@
1
- {"version":3,"file":"epochCache.js","sourceRoot":"","sources":["../../src/cache/epochCache.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"epochCache.js","sourceRoot":"","sources":["../../src/cache/epochCache.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,12 @@
1
+ /**
2
+ * A simple data structure to store rewards payable to block proposer in the memory.
3
+ * Rewards are updated throughout the state transition
4
+ * Should only hold info for one state transition
5
+ */
6
+ export type RewardCache = {
7
+ attestations: number;
8
+ syncAggregate: number;
9
+ slashing: number;
10
+ };
11
+ export declare function createEmptyRewardCache(): RewardCache;
12
+ //# sourceMappingURL=rewardCache.d.ts.map
@@ -0,0 +1,8 @@
1
+ export function createEmptyRewardCache() {
2
+ return {
3
+ attestations: 0,
4
+ syncAggregate: 0,
5
+ slashing: 0,
6
+ };
7
+ }
8
+ //# sourceMappingURL=rewardCache.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"rewardCache.js","sourceRoot":"","sources":["../../src/cache/rewardCache.ts"],"names":[],"mappings":"AAWA,MAAM,UAAU,sBAAsB;IACpC,OAAO;QACL,YAAY,EAAE,CAAC;QACf,aAAa,EAAE,CAAC;QAChB,QAAQ,EAAE,CAAC;KACZ,CAAC;AACJ,CAAC"}
@@ -1,6 +1,7 @@
1
1
  import { BeaconConfig } from "@lodestar/config";
2
2
  import { EpochCache, EpochCacheImmutableData, EpochCacheOpts } from "./epochCache.js";
3
3
  import { BeaconStateAllForks, BeaconStateExecutions, BeaconStatePhase0, BeaconStateAltair, BeaconStateBellatrix, BeaconStateCapella, BeaconStateDeneb } from "./types.js";
4
+ import { RewardCache } from "./rewardCache.js";
4
5
  export type BeaconStateCache = {
5
6
  config: BeaconConfig;
6
7
  epochCtx: EpochCache;
@@ -8,6 +9,7 @@ export type BeaconStateCache = {
8
9
  readonly clonedCount: number;
9
10
  readonly clonedCountWithTransferCache: number;
10
11
  readonly createdWithTransferCache: boolean;
12
+ proposerRewards: RewardCache;
11
13
  };
12
14
  /**
13
15
  * `BeaconState` with various caches
@@ -1,7 +1,8 @@
1
1
  import bls from "@chainsafe/bls";
2
- import { CoordType } from "@chainsafe/blst";
2
+ import { CoordType } from "@chainsafe/bls/types";
3
3
  import { loadState } from "../util/loadState/loadState.js";
4
4
  import { EpochCache } from "./epochCache.js";
5
+ import { createEmptyRewardCache } from "./rewardCache.js";
5
6
  /**
6
7
  * Create CachedBeaconState computing a new EpochCache instance
7
8
  */
@@ -13,6 +14,7 @@ export function createCachedBeaconState(state, immutableData, opts) {
13
14
  clonedCount: 0,
14
15
  clonedCountWithTransferCache: 0,
15
16
  createdWithTransferCache: false,
17
+ proposerRewards: createEmptyRewardCache(),
16
18
  });
17
19
  return cachedState;
18
20
  }
@@ -49,6 +51,7 @@ export function getCachedBeaconState(state, cache) {
49
51
  cachedState.clonedCount = cache.clonedCount;
50
52
  cachedState.clonedCountWithTransferCache = cache.clonedCountWithTransferCache;
51
53
  cachedState.createdWithTransferCache = cache.createdWithTransferCache;
54
+ cachedState.proposerRewards = cache.proposerRewards;
52
55
  // Overwrite .clone function to preserve cache
53
56
  // TreeViewDU.clone() creates a new object that does not have the attached cache
54
57
  const viewDUClone = cachedState.clone.bind(cachedState);
@@ -65,6 +68,7 @@ export function getCachedBeaconState(state, cache) {
65
68
  clonedCount: 0,
66
69
  clonedCountWithTransferCache: 0,
67
70
  createdWithTransferCache: !dontTransferCache,
71
+ proposerRewards: createEmptyRewardCache(), // this sets the rewards to 0 while cloning new state
68
72
  });
69
73
  }
70
74
  cachedState.clone = clone;
@@ -1 +1 @@
1
- {"version":3,"file":"stateCache.js","sourceRoot":"","sources":["../../src/cache/stateCache.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"stateCache.js","sourceRoot":"","sources":["../../src/cache/stateCache.ts"],"names":[],"mappings":"AAAA,OAAO,GAAG,MAAM,gBAAgB,CAAC;AACjC,OAAO,EAAC,SAAS,EAAC,MAAM,sBAAsB,CAAC;AAE/C,OAAO,EAAC,SAAS,EAAC,MAAM,gCAAgC,CAAC;AACzD,OAAO,EAAC,UAAU,EAA0C,MAAM,iBAAiB,CAAC;AAUpF,OAAO,EAAc,sBAAsB,EAAC,MAAM,kBAAkB,CAAC;AA0HrE;;GAEG;AACH,MAAM,UAAU,uBAAuB,CACrC,KAAQ,EACR,aAAsC,EACtC,IAAqB;IAErB,MAAM,UAAU,GAAG,UAAU,CAAC,eAAe,CAAC,KAAK,EAAE,aAAa,EAAE,IAAI,CAAC,CAAC;IAC1E,MAAM,WAAW,GAAG,oBAAoB,CAAC,KAAK,EAAE;QAC9C,MAAM,EAAE,aAAa,CAAC,MAAM;QAC5B,QAAQ,EAAE,UAAU;QACpB,WAAW,EAAE,CAAC;QACd,4BAA4B,EAAE,CAAC;QAC/B,wBAAwB,EAAE,KAAK;QAC/B,eAAe,EAAE,sBAAsB,EAAE;KAC1C,CAAC,CAAC;IAEH,OAAO,WAAW,CAAC;AACrB,CAAC;AAED;;;;;GAKG;AACH,MAAM,UAAU,gCAAgC,CAC9C,eAAkB,EAClB,UAAsB,EACtB,IAAqB;IAErB,MAAM,EAAC,KAAK,EAAE,aAAa,EAAE,kBAAkB,EAAC,GAAG,SAAS,CAAC,eAAe,CAAC,MAAM,EAAE,eAAe,EAAE,UAAU,CAAC,CAAC;IAClH,MAAM,EAAC,YAAY,EAAE,YAAY,EAAC,GAAG,eAAe,CAAC,QAAQ,CAAC;IAC9D,oDAAoD;IACpD,MAAM,UAAU,GAAG,aAAa,CAAC,UAAU,CAAC;IAC5C,KAAK,MAAM,cAAc,IAAI,kBAAkB,EAAE;QAC/C,MAAM,SAAS,GAAG,UAAU,CAAC,WAAW,CAAC,cAAc,CAAC,CAAC;QACzD,MAAM,MAAM,GAAG,SAAS,CAAC,MAAM,CAAC;QAChC,YAAY,CAAC,GAAG,CAAC,MAAM,EAAE,cAAc,CAAC,CAAC;QACzC,YAAY,CAAC,cAAc,CAAC,GAAG,GAAG,CAAC,SAAS,CAAC,SAAS,CAAC,MAAM,EAAE,SAAS,CAAC,QAAQ,CAAC,CAAC;KACpF;IAED,OAAO,uBAAuB,CAC5B,aAAa,EACb;QACE,MAAM,EAAE,eAAe,CAAC,MAAM;QAC9B,YAAY;QACZ,YAAY;KACb,EACD,EAAC,GAAG,CAAC,IAAI,IAAI,EAAE,CAAC,EAAE,GAAG,EAAC,eAAe,EAAE,IAAI,EAAC,EAAC,CACzC,CAAC;AACT,CAAC;AAED;;GAEG;AACH,MAAM,UAAU,oBAAoB,CAClC,KAAQ,EACR,KAAuB;IAEvB,MAAM,WAAW,GAAG,KAA6B,CAAC;IAClD,WAAW,CAAC,MAAM,GAAG,KAAK,CAAC,MAAM,CAAC;IAClC,WAAW,CAAC,QAAQ,GAAG,KAAK,CAAC,QAAQ,CAAC;IACrC,WAAuC,CAAC,WAAW,GAAG,KAAK,CAAC,WAAW,CAAC;IACxE,WAAuC,CAAC,4BAA4B,GAAG,KAAK,CAAC,4BAA4B,CAAC;IAC1G,WAAuC,CAAC,wBAAwB,GAAG,KAAK,CAAC,wBAAwB,CAAC;IACnG,WAAW,CAAC,eAAe,GAAG,KAAK,CAAC,eAAe,CAAC;IAEpD,8CAA8C;IAC9C,gFAAgF;IAChF,MAAM,WAAW,GAAG,WAAW,CAAC,KAAK,CAAC,IAAI,CAAC,WAAW,CAAC,CAAC;IAExD,SAAS,KAAK,CAA6B,iBAA2B;QACpE,MAAM,YAAY,GAAG,WAAW,CAAC,iBAAiB,CAAC,CAAC;QAEpD,oFAAoF;QACnF,IAAgC,CAAC,WAAW,EAAE,CAAC;QAEhD,IAAI,CAAC,iBAAiB,EAAE;YACrB,IAAgC,CAAC,4BAA4B,EAAE,CAAC;SAClE;QAED,OAAO,oBAAoB,CAAC,YAAY,EAAE;YACxC,MAAM,EAAE,IAAI,CAAC,MAAM;YACnB,QAAQ,EAAE,IAAI,CAAC,QAAQ,CAAC,KAAK,EAAE;YAC/B,WAAW,EAAE,CAAC;YACd,4BAA4B,EAAE,CAAC;YAC/B,wBAAwB,EAAE,CAAC,iBAAiB;YAC5C,eAAe,EAAE,sBAAsB,EAAE,EAAE,qDAAqD;SACjG,CAAyB,CAAC;IAC7B,CAAC;IAED,WAAW,CAAC,KAAK,GAAG,KAA2B,CAAC;IAEhD,OAAO,WAAW,CAAC;AACrB,CAAC;AAED;;GAEG;AACH,MAAM,UAAU,mBAAmB,CACjC,KAAiC;IAEjC,OAAQ,KAA8B,CAAC,QAAQ,KAAK,SAAS,CAAC;AAChE,CAAC;AAED,oFAAoF;AACpF,4FAA4F;AAC5F,wFAAwF;AACxF,MAAM,UAAU,+BAA+B,CAAC,KAAgC;IAC9E,OAAO,KAAK,CAAC,UAAU,CAAC,gBAAgB,CAAC,KAAK,IAAI,CAAC;AACrD,CAAC;AAED,MAAM,UAAU,6BAA6B,CAAC,KAAgC;IAC5E,OAAO,KAAK,CAAC,QAAQ,CAAC,gBAAgB,CAAC,KAAK,IAAI,CAAC;AACnD,CAAC"}
@@ -1,5 +1,6 @@
1
1
  import { ForkSeq } from "@lodestar/params";
2
2
  import { CachedBeaconStateAllForks, EpochTransitionCache } from "../types.js";
3
+ import { BeaconStateTransitionMetrics } from "../metrics.js";
3
4
  import { processEffectiveBalanceUpdates } from "./processEffectiveBalanceUpdates.js";
4
5
  import { processEth1DataReset } from "./processEth1DataReset.js";
5
6
  import { processHistoricalRootsUpdate } from "./processHistoricalRootsUpdate.js";
@@ -17,5 +18,5 @@ import { processSyncCommitteeUpdates } from "./processSyncCommitteeUpdates.js";
17
18
  export { getRewardsAndPenalties } from "./processRewardsAndPenalties.js";
18
19
  export { processJustificationAndFinalization, processInactivityUpdates, processRewardsAndPenalties, processRegistryUpdates, processSlashings, processEth1DataReset, processEffectiveBalanceUpdates, processSlashingsReset, processRandaoMixesReset, processHistoricalRootsUpdate, processParticipationRecordUpdates, processParticipationFlagUpdates, processSyncCommitteeUpdates, processHistoricalSummariesUpdate, };
19
20
  export { computeUnrealizedCheckpoints } from "./computeUnrealizedCheckpoints.js";
20
- export declare function processEpoch(fork: ForkSeq, state: CachedBeaconStateAllForks, cache: EpochTransitionCache): void;
21
+ export declare function processEpoch(fork: ForkSeq, state: CachedBeaconStateAllForks, cache: EpochTransitionCache, metrics?: BeaconStateTransitionMetrics | null): void;
21
22
  //# sourceMappingURL=index.d.ts.map
@@ -1,4 +1,4 @@
1
- import { ForkSeq } from "@lodestar/params";
1
+ import { ForkSeq, MAX_ATTESTER_SLASHINGS, MAX_EFFECTIVE_BALANCE, MAX_VALIDATORS_PER_COMMITTEE, SLOTS_PER_EPOCH, } from "@lodestar/params";
2
2
  import { processEffectiveBalanceUpdates } from "./processEffectiveBalanceUpdates.js";
3
3
  import { processEth1DataReset } from "./processEth1DataReset.js";
4
4
  import { processHistoricalRootsUpdate } from "./processHistoricalRootsUpdate.js";
@@ -17,16 +17,56 @@ import { processSyncCommitteeUpdates } from "./processSyncCommitteeUpdates.js";
17
17
  export { getRewardsAndPenalties } from "./processRewardsAndPenalties.js";
18
18
  export { processJustificationAndFinalization, processInactivityUpdates, processRewardsAndPenalties, processRegistryUpdates, processSlashings, processEth1DataReset, processEffectiveBalanceUpdates, processSlashingsReset, processRandaoMixesReset, processHistoricalRootsUpdate, processParticipationRecordUpdates, processParticipationFlagUpdates, processSyncCommitteeUpdates, processHistoricalSummariesUpdate, };
19
19
  export { computeUnrealizedCheckpoints } from "./computeUnrealizedCheckpoints.js";
20
- export function processEpoch(fork, state, cache) {
21
- processJustificationAndFinalization(state, cache);
20
+ const maxValidatorsPerStateSlashing = SLOTS_PER_EPOCH * MAX_ATTESTER_SLASHINGS * MAX_VALIDATORS_PER_COMMITTEE;
21
+ const maxSafeValidators = Math.floor(Number.MAX_SAFE_INTEGER / MAX_EFFECTIVE_BALANCE);
22
+ export function processEpoch(fork, state, cache, metrics) {
23
+ // state.slashings is initially a Gwei (BigInt) vector, however since Nov 2023 it's converted to UintNum64 (number) vector in the state transition because:
24
+ // - state.slashings[nextEpoch % EPOCHS_PER_SLASHINGS_VECTOR] is reset per epoch in processSlashingsReset()
25
+ // - max slashed validators per epoch is SLOTS_PER_EPOCH * MAX_ATTESTER_SLASHINGS * MAX_VALIDATORS_PER_COMMITTEE which is 32 * 2 * 2048 = 131072 on mainnet
26
+ // - with that and 32_000_000_000 MAX_EFFECTIVE_BALANCE, it still fits in a number given that Math.floor(Number.MAX_SAFE_INTEGER / 32_000_000_000) = 281474
27
+ if (maxValidatorsPerStateSlashing > maxSafeValidators) {
28
+ throw new Error("Lodestar does not support this network, parameters don't fit number value inside state.slashings");
29
+ }
30
+ {
31
+ const timer = metrics?.epochTransitionStepTime.startTimer({
32
+ step: "processJustificationAndFinalization",
33
+ });
34
+ processJustificationAndFinalization(state, cache);
35
+ timer?.();
36
+ }
22
37
  if (fork >= ForkSeq.altair) {
38
+ const timer = metrics?.epochTransitionStepTime.startTimer({ step: "processInactivityUpdates" });
23
39
  processInactivityUpdates(state, cache);
40
+ timer?.();
41
+ }
42
+ // processRewardsAndPenalties() is 2nd step in the specs, we optimize to do it
43
+ // after processSlashings() to update balances only once
44
+ // processRewardsAndPenalties(state, cache);
45
+ {
46
+ const timer = metrics?.epochTransitionStepTime.startTimer({ step: "processRegistryUpdates" });
47
+ processRegistryUpdates(state, cache);
48
+ timer?.();
49
+ }
50
+ // accumulate slashing penalties and only update balances once in processRewardsAndPenalties()
51
+ let slashingPenalties;
52
+ {
53
+ const timer = metrics?.epochTransitionStepTime.startTimer({ step: "processSlashings" });
54
+ slashingPenalties = processSlashings(state, cache, false);
55
+ timer?.();
56
+ }
57
+ {
58
+ const timer = metrics?.epochTransitionStepTime.startTimer({ step: "processRewardsAndPenalties" });
59
+ processRewardsAndPenalties(state, cache, slashingPenalties);
60
+ timer?.();
24
61
  }
25
- processRewardsAndPenalties(state, cache);
26
- processRegistryUpdates(state, cache);
27
- processSlashings(state, cache);
28
62
  processEth1DataReset(state, cache);
29
- processEffectiveBalanceUpdates(state, cache);
63
+ {
64
+ const timer = metrics?.epochTransitionStepTime.startTimer({
65
+ step: "processEffectiveBalanceUpdates",
66
+ });
67
+ processEffectiveBalanceUpdates(state, cache);
68
+ timer?.();
69
+ }
30
70
  processSlashingsReset(state, cache);
31
71
  processRandaoMixesReset(state, cache);
32
72
  if (fork >= ForkSeq.capella) {
@@ -39,8 +79,20 @@ export function processEpoch(fork, state, cache) {
39
79
  processParticipationRecordUpdates(state);
40
80
  }
41
81
  else {
42
- processParticipationFlagUpdates(state);
43
- processSyncCommitteeUpdates(state);
82
+ {
83
+ const timer = metrics?.epochTransitionStepTime.startTimer({
84
+ step: "processParticipationFlagUpdates",
85
+ });
86
+ processParticipationFlagUpdates(state);
87
+ timer?.();
88
+ }
89
+ {
90
+ const timer = metrics?.epochTransitionStepTime.startTimer({
91
+ step: "processSyncCommitteeUpdates",
92
+ });
93
+ processSyncCommitteeUpdates(state);
94
+ timer?.();
95
+ }
44
96
  }
45
97
  }
46
98
  //# sourceMappingURL=index.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/epoch/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAC,OAAO,EAAC,MAAM,kBAAkB,CAAC;AAQzC,OAAO,EAAC,8BAA8B,EAAC,MAAM,qCAAqC,CAAC;AACnF,OAAO,EAAC,oBAAoB,EAAC,MAAM,2BAA2B,CAAC;AAC/D,OAAO,EAAC,4BAA4B,EAAC,MAAM,mCAAmC,CAAC;AAC/E,OAAO,EAAC,gCAAgC,EAAC,MAAM,uCAAuC,CAAC;AACvF,OAAO,EAAC,wBAAwB,EAAC,MAAM,+BAA+B,CAAC;AACvE,OAAO,EAAC,mCAAmC,EAAC,MAAM,0CAA0C,CAAC;AAC7F,OAAO,EAAC,+BAA+B,EAAC,MAAM,sCAAsC,CAAC;AACrF,OAAO,EAAC,iCAAiC,EAAC,MAAM,wCAAwC,CAAC;AACzF,OAAO,EAAC,uBAAuB,EAAC,MAAM,8BAA8B,CAAC;AACrE,OAAO,EAAC,sBAAsB,EAAC,MAAM,6BAA6B,CAAC;AACnE,OAAO,EAAC,0BAA0B,EAAC,MAAM,iCAAiC,CAAC;AAC3E,OAAO,EAAC,gBAAgB,EAAC,MAAM,uBAAuB,CAAC;AACvD,OAAO,EAAC,qBAAqB,EAAC,MAAM,4BAA4B,CAAC;AACjE,OAAO,EAAC,2BAA2B,EAAC,MAAM,kCAAkC,CAAC;AAE7E,iBAAiB;AACjB,OAAO,EAAC,sBAAsB,EAAC,MAAM,iCAAiC,CAAC;AACvE,OAAO,EACL,mCAAmC,EACnC,wBAAwB,EACxB,0BAA0B,EAC1B,sBAAsB,EACtB,gBAAgB,EAChB,oBAAoB,EACpB,8BAA8B,EAC9B,qBAAqB,EACrB,uBAAuB,EACvB,4BAA4B,EAC5B,iCAAiC,EACjC,+BAA+B,EAC/B,2BAA2B,EAC3B,gCAAgC,GACjC,CAAC;AAEF,OAAO,EAAC,4BAA4B,EAAC,MAAM,mCAAmC,CAAC;AAE/E,MAAM,UAAU,YAAY,CAAC,IAAa,EAAE,KAAgC,EAAE,KAA2B;IACvG,mCAAmC,CAAC,KAAK,EAAE,KAAK,CAAC,CAAC;IAClD,IAAI,IAAI,IAAI,OAAO,CAAC,MAAM,EAAE;QAC1B,wBAAwB,CAAC,KAAgC,EAAE,KAAK,CAAC,CAAC;KACnE;IACD,0BAA0B,CAAC,KAAK,EAAE,KAAK,CAAC,CAAC;IACzC,sBAAsB,CAAC,KAAK,EAAE,KAAK,CAAC,CAAC;IACrC,gBAAgB,CAAC,KAAK,EAAE,KAAK,CAAC,CAAC;IAC/B,oBAAoB,CAAC,KAAK,EAAE,KAAK,CAAC,CAAC;IACnC,8BAA8B,CAAC,KAAK,EAAE,KAAK,CAAC,CAAC;IAC7C,qBAAqB,CAAC,KAAK,EAAE,KAAK,CAAC,CAAC;IACpC,uBAAuB,CAAC,KAAK,EAAE,KAAK,CAAC,CAAC;IAEtC,IAAI,IAAI,IAAI,OAAO,CAAC,OAAO,EAAE;QAC3B,gCAAgC,CAAC,KAAiC,EAAE,KAAK,CAAC,CAAC;KAC5E;SAAM;QACL,4BAA4B,CAAC,KAAK,EAAE,KAAK,CAAC,CAAC;KAC5C;IAED,IAAI,IAAI,KAAK,OAAO,CAAC,MAAM,EAAE;QAC3B,iCAAiC,CAAC,KAAgC,CAAC,CAAC;KACrE;SAAM;QACL,+BAA+B,CAAC,KAAgC,CAAC,CAAC;QAClE,2BAA2B,CAAC,KAAgC,CAAC,CAAC;KAC/D;AACH,CAAC"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/epoch/index.ts"],"names":[],"mappings":"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"}
@@ -4,6 +4,6 @@ import { CachedBeaconStateAllForks, EpochTransitionCache } from "../types.js";
4
4
  *
5
5
  * PERF: Cost = 'proportional' to $VALIDATOR_COUNT. Extra work is done per validator the more status flags are set
6
6
  */
7
- export declare function processRewardsAndPenalties(state: CachedBeaconStateAllForks, cache: EpochTransitionCache): void;
7
+ export declare function processRewardsAndPenalties(state: CachedBeaconStateAllForks, cache: EpochTransitionCache, slashingPenalties?: number[]): void;
8
8
  export declare function getRewardsAndPenalties(state: CachedBeaconStateAllForks, epochTransitionCache: EpochTransitionCache): [number[], number[]];
9
9
  //# sourceMappingURL=processRewardsAndPenalties.d.ts.map
@@ -7,7 +7,7 @@ import { getRewardsAndPenaltiesAltair } from "./getRewardsAndPenalties.js";
7
7
  *
8
8
  * PERF: Cost = 'proportional' to $VALIDATOR_COUNT. Extra work is done per validator the more status flags are set
9
9
  */
10
- export function processRewardsAndPenalties(state, cache) {
10
+ export function processRewardsAndPenalties(state, cache, slashingPenalties = []) {
11
11
  // No rewards are applied at the end of `GENESIS_EPOCH` because rewards are for work done in the previous epoch
12
12
  if (cache.currentEpoch === GENESIS_EPOCH) {
13
13
  return;
@@ -15,7 +15,7 @@ export function processRewardsAndPenalties(state, cache) {
15
15
  const [rewards, penalties] = getRewardsAndPenalties(state, cache);
16
16
  const balances = state.balances.getAll();
17
17
  for (let i = 0, len = rewards.length; i < len; i++) {
18
- balances[i] += rewards[i] - penalties[i];
18
+ balances[i] += rewards[i] - penalties[i] - (slashingPenalties[i] ?? 0);
19
19
  }
20
20
  // important: do not change state one balance at a time. Set them all at once, constructing the tree in one go
21
21
  // cache the balances array, too
@@ -1 +1 @@
1
- {"version":3,"file":"processRewardsAndPenalties.js","sourceRoot":"","sources":["../../src/epoch/processRewardsAndPenalties.ts"],"names":[],"mappings":"AAAA,OAAO,EAAC,OAAO,EAAE,aAAa,EAAC,MAAM,kBAAkB,CAAC;AACxD,OAAO,EAAC,GAAG,EAAC,MAAM,iBAAiB,CAAC;AAOpC,OAAO,EAAC,oBAAoB,EAAC,MAAM,2BAA2B,CAAC;AAC/D,OAAO,EAAC,4BAA4B,EAAC,MAAM,6BAA6B,CAAC;AAEzE;;;;GAIG;AACH,MAAM,UAAU,0BAA0B,CAAC,KAAgC,EAAE,KAA2B;IACtG,+GAA+G;IAC/G,IAAI,KAAK,CAAC,YAAY,KAAK,aAAa,EAAE;QACxC,OAAO;KACR;IAED,MAAM,CAAC,OAAO,EAAE,SAAS,CAAC,GAAG,sBAAsB,CAAC,KAAK,EAAE,KAAK,CAAC,CAAC;IAClE,MAAM,QAAQ,GAAG,KAAK,CAAC,QAAQ,CAAC,MAAM,EAAE,CAAC;IAEzC,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,GAAG,GAAG,OAAO,CAAC,MAAM,EAAE,CAAC,GAAG,GAAG,EAAE,CAAC,EAAE,EAAE;QAClD,QAAQ,CAAC,CAAC,CAAC,IAAI,OAAO,CAAC,CAAC,CAAC,GAAG,SAAS,CAAC,CAAC,CAAC,CAAC;KAC1C;IAED,8GAA8G;IAC9G,gCAAgC;IAChC,KAAK,CAAC,QAAQ,GAAG,GAAG,CAAC,MAAM,CAAC,QAAQ,CAAC,QAAQ,CAAC,QAAQ,CAAC,CAAC;IAExD,2FAA2F;IAC3F,wBAAwB;IACxB,KAAK,CAAC,QAAQ,GAAG,QAAQ,CAAC;AAC5B,CAAC;AAED,8DAA8D;AAC9D,MAAM,UAAU,sBAAsB,CACpC,KAAgC,EAChC,oBAA0C;IAE1C,MAAM,IAAI,GAAG,KAAK,CAAC,MAAM,CAAC,UAAU,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC;IACjD,OAAO,IAAI,KAAK,OAAO,CAAC,MAAM;QAC5B,CAAC,CAAC,oBAAoB,CAAC,KAAgC,EAAE,oBAAoB,CAAC;QAC9E,CAAC,CAAC,4BAA4B,CAAC,KAAgC,EAAE,oBAAoB,CAAC,CAAC;AAC3F,CAAC"}
1
+ {"version":3,"file":"processRewardsAndPenalties.js","sourceRoot":"","sources":["../../src/epoch/processRewardsAndPenalties.ts"],"names":[],"mappings":"AAAA,OAAO,EAAC,OAAO,EAAE,aAAa,EAAC,MAAM,kBAAkB,CAAC;AACxD,OAAO,EAAC,GAAG,EAAC,MAAM,iBAAiB,CAAC;AAOpC,OAAO,EAAC,oBAAoB,EAAC,MAAM,2BAA2B,CAAC;AAC/D,OAAO,EAAC,4BAA4B,EAAC,MAAM,6BAA6B,CAAC;AAEzE;;;;GAIG;AACH,MAAM,UAAU,0BAA0B,CACxC,KAAgC,EAChC,KAA2B,EAC3B,oBAA8B,EAAE;IAEhC,+GAA+G;IAC/G,IAAI,KAAK,CAAC,YAAY,KAAK,aAAa,EAAE;QACxC,OAAO;KACR;IAED,MAAM,CAAC,OAAO,EAAE,SAAS,CAAC,GAAG,sBAAsB,CAAC,KAAK,EAAE,KAAK,CAAC,CAAC;IAClE,MAAM,QAAQ,GAAG,KAAK,CAAC,QAAQ,CAAC,MAAM,EAAE,CAAC;IAEzC,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,GAAG,GAAG,OAAO,CAAC,MAAM,EAAE,CAAC,GAAG,GAAG,EAAE,CAAC,EAAE,EAAE;QAClD,QAAQ,CAAC,CAAC,CAAC,IAAI,OAAO,CAAC,CAAC,CAAC,GAAG,SAAS,CAAC,CAAC,CAAC,GAAG,CAAC,iBAAiB,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC;KACxE;IAED,8GAA8G;IAC9G,gCAAgC;IAChC,KAAK,CAAC,QAAQ,GAAG,GAAG,CAAC,MAAM,CAAC,QAAQ,CAAC,QAAQ,CAAC,QAAQ,CAAC,CAAC;IAExD,2FAA2F;IAC3F,wBAAwB;IACxB,KAAK,CAAC,QAAQ,GAAG,QAAQ,CAAC;AAC5B,CAAC;AAED,8DAA8D;AAC9D,MAAM,UAAU,sBAAsB,CACpC,KAAgC,EAChC,oBAA0C;IAE1C,MAAM,IAAI,GAAG,KAAK,CAAC,MAAM,CAAC,UAAU,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC;IACjD,OAAO,IAAI,KAAK,OAAO,CAAC,MAAM;QAC5B,CAAC,CAAC,oBAAoB,CAAC,KAAgC,EAAE,oBAAoB,CAAC;QAC9E,CAAC,CAAC,4BAA4B,CAAC,KAAgC,EAAE,oBAAoB,CAAC,CAAC;AAC3F,CAAC"}
@@ -1,12 +1,26 @@
1
- import { CachedBeaconStateAllForks, EpochTransitionCache } from "../types.js";
1
+ import { BeaconStateAllForks, CachedBeaconStateAllForks, EpochTransitionCache } from "../types.js";
2
2
  /**
3
3
  * Update validator registry for validators that activate + exit
4
+ * updateBalance is an optimization:
5
+ * - For spec test, it's true
6
+ * - For processEpoch flow, it's false, i.e to only update balances once in processRewardsAndPenalties()
4
7
  *
5
- * PERF: Cost 'proportional' to only validators that are slashed. For mainnet conditions:
8
+ * PERF: almost no (constant) cost.
9
+ * - Total slashings by increment is computed once and stored in state.epochCtx.totalSlashingsByIncrement so no need to compute here
10
+ * - Penalties for validators with the same effective balance are the same and computed once
11
+ * - No need to apply penalties to validators here, do it once in processRewardsAndPenalties()
6
12
  * - indicesToSlash: max len is 8704. But it's very unlikely since it would require all validators on the same
7
13
  * committees to sign slashable attestations.
8
- *
9
14
  * - On normal mainnet conditions indicesToSlash = 0
15
+ *
16
+ * @returns slashing penalties to be applied in processRewardsAndPenalties()
17
+ */
18
+ export declare function processSlashings(state: CachedBeaconStateAllForks, cache: EpochTransitionCache, updateBalance?: boolean): number[];
19
+ /**
20
+ * Get total slashings by increment.
21
+ * By default, total slashings are computed every time we run processSlashings() function above.
22
+ * We improve it by computing it once and store it in state.epochCtx.totalSlashingsByIncrement
23
+ * Every change to state.slashings should update totalSlashingsByIncrement.
10
24
  */
11
- export declare function processSlashings(state: CachedBeaconStateAllForks, cache: EpochTransitionCache): void;
25
+ export declare function getTotalSlashingsByIncrement(state: BeaconStateAllForks): number;
12
26
  //# sourceMappingURL=processSlashings.d.ts.map
@@ -1,29 +1,27 @@
1
- import { bigIntMin } from "@lodestar/utils";
2
1
  import { EFFECTIVE_BALANCE_INCREMENT, ForkSeq, PROPORTIONAL_SLASHING_MULTIPLIER, PROPORTIONAL_SLASHING_MULTIPLIER_ALTAIR, PROPORTIONAL_SLASHING_MULTIPLIER_BELLATRIX, } from "@lodestar/params";
3
2
  import { decreaseBalance } from "../util/index.js";
4
3
  /**
5
4
  * Update validator registry for validators that activate + exit
5
+ * updateBalance is an optimization:
6
+ * - For spec test, it's true
7
+ * - For processEpoch flow, it's false, i.e to only update balances once in processRewardsAndPenalties()
6
8
  *
7
- * PERF: Cost 'proportional' to only validators that are slashed. For mainnet conditions:
9
+ * PERF: almost no (constant) cost.
10
+ * - Total slashings by increment is computed once and stored in state.epochCtx.totalSlashingsByIncrement so no need to compute here
11
+ * - Penalties for validators with the same effective balance are the same and computed once
12
+ * - No need to apply penalties to validators here, do it once in processRewardsAndPenalties()
8
13
  * - indicesToSlash: max len is 8704. But it's very unlikely since it would require all validators on the same
9
14
  * committees to sign slashable attestations.
10
- *
11
15
  * - On normal mainnet conditions indicesToSlash = 0
16
+ *
17
+ * @returns slashing penalties to be applied in processRewardsAndPenalties()
12
18
  */
13
- export function processSlashings(state, cache) {
14
- // No need to compute totalSlashings if there no index to slash
19
+ export function processSlashings(state, cache, updateBalance = true) {
20
+ // Return early if there no index to slash
15
21
  if (cache.indicesToSlash.length === 0) {
16
- return;
17
- }
18
- // TODO: have the regular totalBalance in EpochTransitionCache too?
19
- const totalBalance = BigInt(cache.totalActiveStakeByIncrement) * BigInt(EFFECTIVE_BALANCE_INCREMENT);
20
- // TODO: Could totalSlashings be number?
21
- // TODO: Could totalSlashing be cached?
22
- let totalSlashings = BigInt(0);
23
- const slashings = state.slashings.getAll();
24
- for (let i = 0; i < slashings.length; i++) {
25
- totalSlashings += slashings[i];
22
+ return [];
26
23
  }
24
+ const totalBalanceByIncrement = cache.totalActiveStakeByIncrement;
27
25
  const fork = state.config.getForkSeq(state.slot);
28
26
  const proportionalSlashingMultiplier = fork === ForkSeq.phase0
29
27
  ? PROPORTIONAL_SLASHING_MULTIPLIER
@@ -31,13 +29,41 @@ export function processSlashings(state, cache) {
31
29
  ? PROPORTIONAL_SLASHING_MULTIPLIER_ALTAIR
32
30
  : PROPORTIONAL_SLASHING_MULTIPLIER_BELLATRIX;
33
31
  const { effectiveBalanceIncrements } = state.epochCtx;
34
- const adjustedTotalSlashingBalance = bigIntMin(totalSlashings * BigInt(proportionalSlashingMultiplier), totalBalance);
32
+ const adjustedTotalSlashingBalanceByIncrement = Math.min(state.epochCtx.totalSlashingsByIncrement * proportionalSlashingMultiplier, totalBalanceByIncrement);
35
33
  const increment = EFFECTIVE_BALANCE_INCREMENT;
34
+ const penalties = [];
35
+ const penaltiesByEffectiveBalanceIncrement = new Map();
36
36
  for (const index of cache.indicesToSlash) {
37
37
  const effectiveBalanceIncrement = effectiveBalanceIncrements[index];
38
- const penaltyNumerator = BigInt(effectiveBalanceIncrement) * adjustedTotalSlashingBalance;
39
- const penalty = Number(penaltyNumerator / totalBalance) * increment;
40
- decreaseBalance(state, index, penalty);
38
+ let penalty = penaltiesByEffectiveBalanceIncrement.get(effectiveBalanceIncrement);
39
+ if (penalty === undefined) {
40
+ const penaltyNumeratorByIncrement = effectiveBalanceIncrement * adjustedTotalSlashingBalanceByIncrement;
41
+ penalty = Math.floor(penaltyNumeratorByIncrement / totalBalanceByIncrement) * increment;
42
+ penaltiesByEffectiveBalanceIncrement.set(effectiveBalanceIncrement, penalty);
43
+ }
44
+ if (updateBalance) {
45
+ // for spec test only
46
+ decreaseBalance(state, index, penalty);
47
+ }
48
+ else {
49
+ // do it later in processRewardsAndPenalties()
50
+ penalties[index] = penalty;
51
+ }
52
+ }
53
+ return penalties;
54
+ }
55
+ /**
56
+ * Get total slashings by increment.
57
+ * By default, total slashings are computed every time we run processSlashings() function above.
58
+ * We improve it by computing it once and store it in state.epochCtx.totalSlashingsByIncrement
59
+ * Every change to state.slashings should update totalSlashingsByIncrement.
60
+ */
61
+ export function getTotalSlashingsByIncrement(state) {
62
+ let totalSlashingsByIncrement = 0;
63
+ const slashings = state.slashings.getAll();
64
+ for (let i = 0; i < slashings.length; i++) {
65
+ totalSlashingsByIncrement += Math.floor(slashings[i] / EFFECTIVE_BALANCE_INCREMENT);
41
66
  }
67
+ return totalSlashingsByIncrement;
42
68
  }
43
69
  //# sourceMappingURL=processSlashings.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"processSlashings.js","sourceRoot":"","sources":["../../src/epoch/processSlashings.ts"],"names":[],"mappings":"AAAA,OAAO,EAAC,SAAS,EAAC,MAAM,iBAAiB,CAAC;AAC1C,OAAO,EACL,2BAA2B,EAC3B,OAAO,EACP,gCAAgC,EAChC,uCAAuC,EACvC,0CAA0C,GAC3C,MAAM,kBAAkB,CAAC;AAE1B,OAAO,EAAC,eAAe,EAAC,MAAM,kBAAkB,CAAC;AAGjD;;;;;;;;GAQG;AACH,MAAM,UAAU,gBAAgB,CAAC,KAAgC,EAAE,KAA2B;IAC5F,+DAA+D;IAC/D,IAAI,KAAK,CAAC,cAAc,CAAC,MAAM,KAAK,CAAC,EAAE;QACrC,OAAO;KACR;IACD,mEAAmE;IACnE,MAAM,YAAY,GAAG,MAAM,CAAC,KAAK,CAAC,2BAA2B,CAAC,GAAG,MAAM,CAAC,2BAA2B,CAAC,CAAC;IAErG,wCAAwC;IACxC,uCAAuC;IACvC,IAAI,cAAc,GAAG,MAAM,CAAC,CAAC,CAAC,CAAC;IAC/B,MAAM,SAAS,GAAG,KAAK,CAAC,SAAS,CAAC,MAAM,EAAE,CAAC;IAC3C,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,SAAS,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE;QACzC,cAAc,IAAI,SAAS,CAAC,CAAC,CAAC,CAAC;KAChC;IAED,MAAM,IAAI,GAAG,KAAK,CAAC,MAAM,CAAC,UAAU,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC;IACjD,MAAM,8BAA8B,GAClC,IAAI,KAAK,OAAO,CAAC,MAAM;QACrB,CAAC,CAAC,gCAAgC;QAClC,CAAC,CAAC,IAAI,KAAK,OAAO,CAAC,MAAM;YACzB,CAAC,CAAC,uCAAuC;YACzC,CAAC,CAAC,0CAA0C,CAAC;IAEjD,MAAM,EAAC,0BAA0B,EAAC,GAAG,KAAK,CAAC,QAAQ,CAAC;IACpD,MAAM,4BAA4B,GAAG,SAAS,CAAC,cAAc,GAAG,MAAM,CAAC,8BAA8B,CAAC,EAAE,YAAY,CAAC,CAAC;IACtH,MAAM,SAAS,GAAG,2BAA2B,CAAC;IAC9C,KAAK,MAAM,KAAK,IAAI,KAAK,CAAC,cAAc,EAAE;QACxC,MAAM,yBAAyB,GAAG,0BAA0B,CAAC,KAAK,CAAC,CAAC;QACpE,MAAM,gBAAgB,GAAG,MAAM,CAAC,yBAAyB,CAAC,GAAG,4BAA4B,CAAC;QAC1F,MAAM,OAAO,GAAG,MAAM,CAAC,gBAAgB,GAAG,YAAY,CAAC,GAAG,SAAS,CAAC;QACpE,eAAe,CAAC,KAAK,EAAE,KAAK,EAAE,OAAO,CAAC,CAAC;KACxC;AACH,CAAC"}
1
+ {"version":3,"file":"processSlashings.js","sourceRoot":"","sources":["../../src/epoch/processSlashings.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,2BAA2B,EAC3B,OAAO,EACP,gCAAgC,EAChC,uCAAuC,EACvC,0CAA0C,GAC3C,MAAM,kBAAkB,CAAC;AAE1B,OAAO,EAAC,eAAe,EAAC,MAAM,kBAAkB,CAAC;AAGjD;;;;;;;;;;;;;;;GAeG;AACH,MAAM,UAAU,gBAAgB,CAC9B,KAAgC,EAChC,KAA2B,EAC3B,aAAa,GAAG,IAAI;IAEpB,0CAA0C;IAC1C,IAAI,KAAK,CAAC,cAAc,CAAC,MAAM,KAAK,CAAC,EAAE;QACrC,OAAO,EAAE,CAAC;KACX;IAED,MAAM,uBAAuB,GAAG,KAAK,CAAC,2BAA2B,CAAC;IAClE,MAAM,IAAI,GAAG,KAAK,CAAC,MAAM,CAAC,UAAU,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC;IACjD,MAAM,8BAA8B,GAClC,IAAI,KAAK,OAAO,CAAC,MAAM;QACrB,CAAC,CAAC,gCAAgC;QAClC,CAAC,CAAC,IAAI,KAAK,OAAO,CAAC,MAAM;YACzB,CAAC,CAAC,uCAAuC;YACzC,CAAC,CAAC,0CAA0C,CAAC;IAEjD,MAAM,EAAC,0BAA0B,EAAC,GAAG,KAAK,CAAC,QAAQ,CAAC;IACpD,MAAM,uCAAuC,GAAG,IAAI,CAAC,GAAG,CACtD,KAAK,CAAC,QAAQ,CAAC,yBAAyB,GAAG,8BAA8B,EACzE,uBAAuB,CACxB,CAAC;IACF,MAAM,SAAS,GAAG,2BAA2B,CAAC;IAC9C,MAAM,SAAS,GAAa,EAAE,CAAC;IAE/B,MAAM,oCAAoC,GAAG,IAAI,GAAG,EAAkB,CAAC;IACvE,KAAK,MAAM,KAAK,IAAI,KAAK,CAAC,cAAc,EAAE;QACxC,MAAM,yBAAyB,GAAG,0BAA0B,CAAC,KAAK,CAAC,CAAC;QACpE,IAAI,OAAO,GAAG,oCAAoC,CAAC,GAAG,CAAC,yBAAyB,CAAC,CAAC;QAClF,IAAI,OAAO,KAAK,SAAS,EAAE;YACzB,MAAM,2BAA2B,GAAG,yBAAyB,GAAG,uCAAuC,CAAC;YACxG,OAAO,GAAG,IAAI,CAAC,KAAK,CAAC,2BAA2B,GAAG,uBAAuB,CAAC,GAAG,SAAS,CAAC;YACxF,oCAAoC,CAAC,GAAG,CAAC,yBAAyB,EAAE,OAAO,CAAC,CAAC;SAC9E;QAED,IAAI,aAAa,EAAE;YACjB,qBAAqB;YACrB,eAAe,CAAC,KAAK,EAAE,KAAK,EAAE,OAAO,CAAC,CAAC;SACxC;aAAM;YACL,8CAA8C;YAC9C,SAAS,CAAC,KAAK,CAAC,GAAG,OAAO,CAAC;SAC5B;KACF;IAED,OAAO,SAAS,CAAC;AACnB,CAAC;AAED;;;;;GAKG;AACH,MAAM,UAAU,4BAA4B,CAAC,KAA0B;IACrE,IAAI,yBAAyB,GAAG,CAAC,CAAC;IAClC,MAAM,SAAS,GAAG,KAAK,CAAC,SAAS,CAAC,MAAM,EAAE,CAAC;IAC3C,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,SAAS,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE;QACzC,yBAAyB,IAAI,IAAI,CAAC,KAAK,CAAC,SAAS,CAAC,CAAC,CAAC,GAAG,2BAA2B,CAAC,CAAC;KACrF;IACD,OAAO,yBAAyB,CAAC;AACnC,CAAC"}
@@ -1,4 +1,4 @@
1
- import { EPOCHS_PER_SLASHINGS_VECTOR } from "@lodestar/params";
1
+ import { EFFECTIVE_BALANCE_INCREMENT, EPOCHS_PER_SLASHINGS_VECTOR } from "@lodestar/params";
2
2
  /**
3
3
  * Reset the next slashings balance accumulator
4
4
  *
@@ -7,6 +7,9 @@ import { EPOCHS_PER_SLASHINGS_VECTOR } from "@lodestar/params";
7
7
  export function processSlashingsReset(state, cache) {
8
8
  const nextEpoch = cache.currentEpoch + 1;
9
9
  // reset slashings
10
- state.slashings.set(nextEpoch % EPOCHS_PER_SLASHINGS_VECTOR, BigInt(0));
10
+ const slashIndex = nextEpoch % EPOCHS_PER_SLASHINGS_VECTOR;
11
+ const oldSlashingValueByIncrement = Math.floor(state.slashings.get(slashIndex) / EFFECTIVE_BALANCE_INCREMENT);
12
+ state.slashings.set(slashIndex, 0);
13
+ state.epochCtx.totalSlashingsByIncrement = Math.max(0, state.epochCtx.totalSlashingsByIncrement - oldSlashingValueByIncrement);
11
14
  }
12
15
  //# sourceMappingURL=processSlashingsReset.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"processSlashingsReset.js","sourceRoot":"","sources":["../../src/epoch/processSlashingsReset.ts"],"names":[],"mappings":"AAAA,OAAO,EAAC,2BAA2B,EAAC,MAAM,kBAAkB,CAAC;AAG7D;;;;GAIG;AACH,MAAM,UAAU,qBAAqB,CAAC,KAAgC,EAAE,KAA2B;IACjG,MAAM,SAAS,GAAG,KAAK,CAAC,YAAY,GAAG,CAAC,CAAC;IAEzC,kBAAkB;IAClB,KAAK,CAAC,SAAS,CAAC,GAAG,CAAC,SAAS,GAAG,2BAA2B,EAAE,MAAM,CAAC,CAAC,CAAC,CAAC,CAAC;AAC1E,CAAC"}
1
+ {"version":3,"file":"processSlashingsReset.js","sourceRoot":"","sources":["../../src/epoch/processSlashingsReset.ts"],"names":[],"mappings":"AAAA,OAAO,EAAC,2BAA2B,EAAE,2BAA2B,EAAC,MAAM,kBAAkB,CAAC;AAG1F;;;;GAIG;AACH,MAAM,UAAU,qBAAqB,CAAC,KAAgC,EAAE,KAA2B;IACjG,MAAM,SAAS,GAAG,KAAK,CAAC,YAAY,GAAG,CAAC,CAAC;IAEzC,kBAAkB;IAClB,MAAM,UAAU,GAAG,SAAS,GAAG,2BAA2B,CAAC;IAC3D,MAAM,2BAA2B,GAAG,IAAI,CAAC,KAAK,CAAC,KAAK,CAAC,SAAS,CAAC,GAAG,CAAC,UAAU,CAAC,GAAG,2BAA2B,CAAC,CAAC;IAC9G,KAAK,CAAC,SAAS,CAAC,GAAG,CAAC,UAAU,EAAE,CAAC,CAAC,CAAC;IACnC,KAAK,CAAC,QAAQ,CAAC,yBAAyB,GAAG,IAAI,CAAC,GAAG,CACjD,CAAC,EACD,KAAK,CAAC,QAAQ,CAAC,yBAAyB,GAAG,2BAA2B,CACvE,CAAC;AACJ,CAAC"}
package/lib/metrics.d.ts CHANGED
@@ -4,6 +4,7 @@ import { AttesterStatus } from "./util/attesterStatus.js";
4
4
  export type BeaconStateTransitionMetrics = {
5
5
  epochTransitionTime: Histogram;
6
6
  epochTransitionCommitTime: Histogram;
7
+ epochTransitionStepTime: Histogram<"step">;
7
8
  processBlockTime: Histogram;
8
9
  processBlockCommitTime: Histogram;
9
10
  stateHashTreeRootTime: Histogram;
@@ -20,7 +21,7 @@ export type BeaconStateTransitionMetrics = {
20
21
  };
21
22
  type LabelValues<T extends string> = Partial<Record<T, string | number>>;
22
23
  interface Histogram<T extends string = string> {
23
- startTimer(): () => void;
24
+ startTimer(labels?: LabelValues<T>): (labels?: LabelValues<T>) => number;
24
25
  observe(value: number): void;
25
26
  observe(labels: LabelValues<T>, values: number): void;
26
27
  observe(arg1: LabelValues<T> | number, arg2?: number): void;
@@ -1 +1 @@
1
- {"version":3,"file":"metrics.js","sourceRoot":"","sources":["../src/metrics.ts"],"names":[],"mappings":"AAsCA,MAAM,UAAU,mBAAmB,CACjC,KAAgC,EAChC,OAAqC,EACrC,MAA0C;IAE1C,OAAO,CAAC,mBAAmB,CAAC,OAAO,CAAC,KAAK,CAAC,WAAW,CAAC,CAAC;IAEvD,IAAI,wBAAwB,CAAC,KAAK,CAAC,EAAE;QACnC,OAAO,CAAC,iCAAiC,CAAC,GAAG,CAAC,EAAC,MAAM,EAAC,CAAC,CAAC;KACzD;SAAM;QACL,OAAO,CAAC,kCAAkC,CAAC,GAAG,CAAC,EAAC,MAAM,EAAC,CAAC,CAAC;KAC1D;IAED,IAAI,0BAA0B,CAAC,KAAK,CAAC,EAAE;QACrC,OAAO,CAAC,mCAAmC,CAAC,GAAG,CAAC,EAAC,MAAM,EAAC,CAAC,CAAC;KAC3D;SAAM;QACL,OAAO,CAAC,oCAAoC,CAAC,GAAG,CAAC,EAAC,MAAM,EAAC,CAAC,CAAC;KAC5D;AACH,CAAC;AAED,MAAM,UAAU,kBAAkB,CAAC,SAAoC,EAAE,OAAqC;IAC5G,IAAI,wBAAwB,CAAC,SAAS,CAAC,EAAE;QACvC,OAAO,CAAC,kCAAkC,CAAC,GAAG,EAAE,CAAC;KAClD;SAAM;QACL,OAAO,CAAC,mCAAmC,CAAC,GAAG,EAAE,CAAC;KACnD;IAED,IAAI,0BAA0B,CAAC,SAAS,CAAC,EAAE;QACzC,OAAO,CAAC,oCAAoC,CAAC,GAAG,EAAE,CAAC;KACpD;SAAM;QACL,OAAO,CAAC,qCAAqC,CAAC,GAAG,EAAE,CAAC;KACrD;AACH,CAAC;AAED,oFAAoF;AACpF,4FAA4F;AAC5F,wFAAwF;AACxF,SAAS,0BAA0B,CAAC,KAAgC;IAClE,OAAO,KAAK,CAAC,UAAU,CAAC,gBAAgB,CAAC,KAAK,IAAI,CAAC;AACrD,CAAC;AAED,SAAS,wBAAwB,CAAC,KAAgC;IAChE,OAAO,KAAK,CAAC,QAAQ,CAAC,gBAAgB,CAAC,KAAK,IAAI,CAAC;AACnD,CAAC"}
1
+ {"version":3,"file":"metrics.js","sourceRoot":"","sources":["../src/metrics.ts"],"names":[],"mappings":"AAuCA,MAAM,UAAU,mBAAmB,CACjC,KAAgC,EAChC,OAAqC,EACrC,MAA0C;IAE1C,OAAO,CAAC,mBAAmB,CAAC,OAAO,CAAC,KAAK,CAAC,WAAW,CAAC,CAAC;IAEvD,IAAI,wBAAwB,CAAC,KAAK,CAAC,EAAE;QACnC,OAAO,CAAC,iCAAiC,CAAC,GAAG,CAAC,EAAC,MAAM,EAAC,CAAC,CAAC;KACzD;SAAM;QACL,OAAO,CAAC,kCAAkC,CAAC,GAAG,CAAC,EAAC,MAAM,EAAC,CAAC,CAAC;KAC1D;IAED,IAAI,0BAA0B,CAAC,KAAK,CAAC,EAAE;QACrC,OAAO,CAAC,mCAAmC,CAAC,GAAG,CAAC,EAAC,MAAM,EAAC,CAAC,CAAC;KAC3D;SAAM;QACL,OAAO,CAAC,oCAAoC,CAAC,GAAG,CAAC,EAAC,MAAM,EAAC,CAAC,CAAC;KAC5D;AACH,CAAC;AAED,MAAM,UAAU,kBAAkB,CAAC,SAAoC,EAAE,OAAqC;IAC5G,IAAI,wBAAwB,CAAC,SAAS,CAAC,EAAE;QACvC,OAAO,CAAC,kCAAkC,CAAC,GAAG,EAAE,CAAC;KAClD;SAAM;QACL,OAAO,CAAC,mCAAmC,CAAC,GAAG,EAAE,CAAC;KACnD;IAED,IAAI,0BAA0B,CAAC,SAAS,CAAC,EAAE;QACzC,OAAO,CAAC,oCAAoC,CAAC,GAAG,EAAE,CAAC;KACpD;SAAM;QACL,OAAO,CAAC,qCAAqC,CAAC,GAAG,EAAE,CAAC;KACrD;AACH,CAAC;AAED,oFAAoF;AACpF,4FAA4F;AAC5F,wFAAwF;AACxF,SAAS,0BAA0B,CAAC,KAAgC;IAClE,OAAO,KAAK,CAAC,UAAU,CAAC,gBAAgB,CAAC,KAAK,IAAI,CAAC;AACrD,CAAC;AAED,SAAS,wBAAwB,CAAC,KAAgC;IAChE,OAAO,KAAK,CAAC,QAAQ,CAAC,gBAAgB,CAAC,KAAK,IAAI,CAAC;AACnD,CAAC"}
@@ -93,17 +93,28 @@ function processSlotsWithTransientCache(postState, slot, epochTransitionCacheOpt
93
93
  // At fork boundary we don't want to process "next fork" epoch before upgrading state
94
94
  const fork = postState.config.getForkSeq(postState.slot);
95
95
  const epochTransitionTimer = metrics?.epochTransitionTime.startTimer();
96
- const epochTransitionCache = beforeProcessEpoch(postState, epochTransitionCacheOpts);
97
- processEpoch(fork, postState, epochTransitionCache);
96
+ let epochTransitionCache;
97
+ {
98
+ const timer = metrics?.epochTransitionStepTime.startTimer({ step: "beforeProcessEpoch" });
99
+ epochTransitionCache = beforeProcessEpoch(postState, epochTransitionCacheOpts);
100
+ timer?.();
101
+ }
102
+ processEpoch(fork, postState, epochTransitionCache, metrics);
98
103
  const { currentEpoch, statuses, balances } = epochTransitionCache;
99
104
  metrics?.registerValidatorStatuses(currentEpoch, statuses, balances);
100
105
  postState.slot++;
101
- postState.epochCtx.afterProcessEpoch(postState, epochTransitionCache);
106
+ {
107
+ const timer = metrics?.epochTransitionStepTime.startTimer({ step: "afterProcessEpoch" });
108
+ postState.epochCtx.afterProcessEpoch(postState, epochTransitionCache);
109
+ timer?.();
110
+ }
102
111
  // Running commit here is not strictly necessary. The cost of running commit twice (here + after process block)
103
112
  // Should be negligible but gives better metrics to differentiate the cost of it for block and epoch proc.
104
- const epochTransitionCommitTimer = metrics?.epochTransitionCommitTime.startTimer();
105
- postState.commit();
106
- epochTransitionCommitTimer?.();
113
+ {
114
+ const timer = metrics?.epochTransitionCommitTime.startTimer();
115
+ postState.commit();
116
+ timer?.();
117
+ }
107
118
  // Note: time only on success. Include beforeProcessEpoch, processEpoch, afterProcessEpoch, commit
108
119
  epochTransitionTimer?.();
109
120
  // Upgrade state if exactly at epoch boundary
@@ -1 +1 @@
1
- {"version":3,"file":"stateTransition.js","sourceRoot":"","sources":["../src/stateTransition.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"stateTransition.js","sourceRoot":"","sources":["../src/stateTransition.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.13.0-dev.bc2ea44a5b",
14
+ "version": "1.13.0-dev.c044d4cdd4",
15
15
  "type": "module",
16
16
  "exports": {
17
17
  ".": {
@@ -63,10 +63,10 @@
63
63
  "@chainsafe/persistent-merkle-tree": "^0.6.1",
64
64
  "@chainsafe/persistent-ts": "^0.19.1",
65
65
  "@chainsafe/ssz": "^0.14.0",
66
- "@lodestar/config": "1.13.0-dev.bc2ea44a5b",
67
- "@lodestar/params": "1.13.0-dev.bc2ea44a5b",
68
- "@lodestar/types": "1.13.0-dev.bc2ea44a5b",
69
- "@lodestar/utils": "1.13.0-dev.bc2ea44a5b",
66
+ "@lodestar/config": "1.13.0-dev.c044d4cdd4",
67
+ "@lodestar/params": "1.13.0-dev.c044d4cdd4",
68
+ "@lodestar/types": "1.13.0-dev.c044d4cdd4",
69
+ "@lodestar/utils": "1.13.0-dev.c044d4cdd4",
70
70
  "bigint-buffer": "^1.1.5",
71
71
  "buffer-xor": "^2.0.2"
72
72
  },
@@ -82,5 +82,5 @@
82
82
  "beacon",
83
83
  "blockchain"
84
84
  ],
85
- "gitHead": "4c7c895038651c740b105c73e7f366e45a3313c2"
85
+ "gitHead": "79255ffca8f095db4513a311ea6624f1ca8d83ec"
86
86
  }