@lodestar/state-transition 1.43.0-dev.549a5b8115 → 1.43.0-dev.59c06807b6
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.
- package/lib/block/processConsolidationRequest.d.ts.map +1 -1
- package/lib/block/processConsolidationRequest.js +2 -1
- package/lib/block/processConsolidationRequest.js.map +1 -1
- package/lib/block/processParentExecutionPayload.d.ts +2 -2
- package/lib/block/processParentExecutionPayload.js +3 -3
- package/lib/block/processWithdrawals.d.ts.map +1 -1
- package/lib/block/processWithdrawals.js +2 -4
- package/lib/block/processWithdrawals.js.map +1 -1
- package/lib/cache/epochCache.js +3 -3
- package/lib/cache/epochCache.js.map +1 -1
- package/lib/epoch/processPendingDeposits.d.ts.map +1 -1
- package/lib/epoch/processPendingDeposits.js +4 -2
- package/lib/epoch/processPendingDeposits.js.map +1 -1
- package/lib/slot/upgradeStateToElectra.d.ts.map +1 -1
- package/lib/slot/upgradeStateToElectra.js +2 -2
- package/lib/slot/upgradeStateToElectra.js.map +1 -1
- package/lib/stateView/beaconStateView.d.ts +2 -2
- package/lib/stateView/beaconStateView.d.ts.map +1 -1
- package/lib/stateView/beaconStateView.js +9 -7
- package/lib/stateView/beaconStateView.js.map +1 -1
- package/lib/stateView/interface.d.ts +5 -4
- package/lib/stateView/interface.d.ts.map +1 -1
- package/lib/stateView/interface.js.map +1 -1
- package/lib/util/epoch.d.ts.map +1 -1
- package/lib/util/epoch.js +6 -4
- package/lib/util/epoch.js.map +1 -1
- package/lib/util/loadState/loadState.js +4 -4
- package/lib/util/loadState/loadState.js.map +1 -1
- package/lib/util/validator.d.ts +14 -2
- package/lib/util/validator.d.ts.map +1 -1
- package/lib/util/validator.js +24 -2
- package/lib/util/validator.js.map +1 -1
- package/package.json +8 -8
- package/src/block/processConsolidationRequest.ts +2 -1
- package/src/block/processParentExecutionPayload.ts +3 -3
- package/src/block/processWithdrawals.ts +2 -4
- package/src/cache/epochCache.ts +3 -3
- package/src/epoch/processPendingDeposits.ts +5 -2
- package/src/slot/upgradeStateToElectra.ts +4 -2
- package/src/stateView/beaconStateView.ts +11 -8
- package/src/stateView/interface.ts +5 -4
- package/src/util/epoch.ts +13 -4
- package/src/util/loadState/loadState.ts +4 -4
- package/src/util/validator.ts +42 -2
|
@@ -169,11 +169,12 @@ export interface IBeaconStateViewGloas extends IBeaconStateViewFulu {
|
|
|
169
169
|
getEpochPTCs(epoch: Epoch): Uint32Array[];
|
|
170
170
|
getIndexInPayloadTimelinessCommittee(validatorIndex: ValidatorIndex, slot: Slot): number;
|
|
171
171
|
/**
|
|
172
|
-
*
|
|
173
|
-
*
|
|
174
|
-
*
|
|
172
|
+
* Clone the state and apply parent execution payload effects.
|
|
173
|
+
* Used during block production and prepareNextSlot so that withdrawals and
|
|
174
|
+
* operation selection (e.g. voluntary exits) see the same post-apply state that the block
|
|
175
|
+
* processor will see at import.
|
|
175
176
|
*/
|
|
176
|
-
|
|
177
|
+
withParentPayloadApplied(executionRequests: electra.ExecutionRequests): IBeaconStateViewGloas;
|
|
177
178
|
}
|
|
178
179
|
/**
|
|
179
180
|
* Type constraint for the concrete BeaconStateView class.
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"interface.d.ts","sourceRoot":"","sources":["../../src/stateView/interface.ts"],"names":[],"mappings":"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
|
|
1
|
+
{"version":3,"file":"interface.d.ts","sourceRoot":"","sources":["../../src/stateView/interface.ts"],"names":[],"mappings":"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"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"interface.js","sourceRoot":"","sources":["../../src/stateView/interface.ts"],"names":[],"mappings":"AAEA,OAAO,EASL,gBAAgB,EAChB,mBAAmB,EACnB,iBAAiB,EACjB,eAAe,EACf,iBAAiB,EACjB,cAAc,EACd,eAAe,GAChB,MAAM,kBAAkB,CAAC;
|
|
1
|
+
{"version":3,"file":"interface.js","sourceRoot":"","sources":["../../src/stateView/interface.ts"],"names":[],"mappings":"AAEA,OAAO,EASL,gBAAgB,EAChB,mBAAmB,EACnB,iBAAiB,EACjB,eAAe,EACf,iBAAiB,EACjB,cAAc,EACd,eAAe,GAChB,MAAM,kBAAkB,CAAC;AAqQ1B,MAAM,UAAU,iBAAiB,CAAC,KAAuB,EAAmC;IAC1F,OAAO,gBAAgB,CAAC,KAAK,CAAC,QAAQ,CAAC,CAAC;AAAA,CACzC;AAED,MAAM,UAAU,oBAAoB,CAAC,KAAuB,EAAsC;IAChG,OAAO,mBAAmB,CAAC,KAAK,CAAC,QAAQ,CAAC,CAAC;AAAA,CAC5C;AAED,MAAM,UAAU,kBAAkB,CAAC,KAAuB,EAAoC;IAC5F,OAAO,iBAAiB,CAAC,KAAK,CAAC,QAAQ,CAAC,CAAC;AAAA,CAC1C;AAED,MAAM,UAAU,gBAAgB,CAAC,KAAuB,EAAkC;IACxF,OAAO,eAAe,CAAC,KAAK,CAAC,QAAQ,CAAC,CAAC;AAAA,CACxC;AAED,MAAM,UAAU,kBAAkB,CAAC,KAAuB,EAAoC;IAC5F,OAAO,iBAAiB,CAAC,KAAK,CAAC,QAAQ,CAAC,CAAC;AAAA,CAC1C;AAED,MAAM,UAAU,eAAe,CAAC,KAAuB,EAAiC;IACtF,OAAO,cAAc,CAAC,KAAK,CAAC,QAAQ,CAAC,CAAC;AAAA,CACvC;AAED,MAAM,UAAU,gBAAgB,CAAC,KAAuB,EAAkC;IACxF,OAAO,eAAe,CAAC,KAAK,CAAC,QAAQ,CAAC,CAAC;AAAA,CACxC"}
|
package/lib/util/epoch.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"epoch.d.ts","sourceRoot":"","sources":["../../src/util/epoch.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"epoch.d.ts","sourceRoot":"","sources":["../../src/util/epoch.ts"],"names":[],"mappings":"AAOA,OAAO,EAAC,WAAW,EAAE,KAAK,EAAE,IAAI,EAAE,IAAI,EAAE,UAAU,EAAC,MAAM,iBAAiB,CAAC;AAC3E,OAAO,EAAC,wBAAwB,EAAE,sBAAsB,EAAC,MAAM,aAAa,CAAC;AAG7E;;GAEG;AACH,wBAAgB,kBAAkB,CAAC,IAAI,EAAE,IAAI,GAAG,KAAK,CAEpD;AAED;;;;;GAKG;AACH,wBAAgB,iCAAiC,CAAC,IAAI,EAAE,IAAI,GAAG,KAAK,CAEnE;AAED;;GAEG;AACH,wBAAgB,uBAAuB,CAAC,KAAK,EAAE,KAAK,GAAG,IAAI,CAE1D;AAED;;GAEG;AACH,wBAAgB,qBAAqB,CAAC,KAAK,EAAE,KAAK,GAAG,IAAI,CAExD;AAED;;GAEG;AACH,wBAAgB,0BAA0B,CAAC,KAAK,EAAE,KAAK,GAAG,KAAK,CAE9D;AAED,wBAAgB,8BAA8B,CAC5C,KAAK,EAAE,wBAAwB,GAAG,sBAAsB,EACxD,WAAW,EAAE,IAAI,GAChB,MAAM,CAuBR;AAED,wBAAgB,uCAAuC,CACrD,KAAK,EAAE,wBAAwB,GAAG,sBAAsB,EACxD,oBAAoB,EAAE,IAAI,GACzB,MAAM,CA2BR;AAED;;GAEG;AACH,wBAAgB,eAAe,CAAC,KAAK,EAAE,IAAI,CAAC,WAAW,EAAE,MAAM,CAAC,GAAG,KAAK,CAEvE;AAED;;GAEG;AACH,wBAAgB,gBAAgB,CAAC,KAAK,EAAE,IAAI,CAAC,WAAW,EAAE,MAAM,CAAC,GAAG,KAAK,CAMxE;AAED;;GAEG;AACH,wBAAgB,uBAAuB,CAAC,IAAI,EAAE,IAAI,GAAG,UAAU,CAE9D;AAED;;GAEG;AACH,wBAAgB,wBAAwB,CAAC,KAAK,EAAE,KAAK,GAAG,UAAU,CAEjE;AAED;;GAEG;AACH,wBAAgB,kBAAkB,CAAC,IAAI,EAAE,IAAI,GAAG,OAAO,CAEtD"}
|
package/lib/util/epoch.js
CHANGED
|
@@ -1,5 +1,5 @@
|
|
|
1
|
-
import { EPOCHS_PER_SYNC_COMMITTEE_PERIOD, GENESIS_EPOCH, MAX_SEED_LOOKAHEAD, SLOTS_PER_EPOCH } from "@lodestar/params";
|
|
2
|
-
import { getActivationExitChurnLimit, getConsolidationChurnLimit } from "./validator.js";
|
|
1
|
+
import { EPOCHS_PER_SYNC_COMMITTEE_PERIOD, ForkSeq, GENESIS_EPOCH, MAX_SEED_LOOKAHEAD, SLOTS_PER_EPOCH, } from "@lodestar/params";
|
|
2
|
+
import { getActivationExitChurnLimit, getConsolidationChurnLimit, getExitChurnLimit } from "./validator.js";
|
|
3
3
|
/**
|
|
4
4
|
* Return the epoch number at the given slot.
|
|
5
5
|
*/
|
|
@@ -34,8 +34,9 @@ export function computeActivationExitEpoch(epoch) {
|
|
|
34
34
|
return epoch + 1 + MAX_SEED_LOOKAHEAD;
|
|
35
35
|
}
|
|
36
36
|
export function computeExitEpochAndUpdateChurn(state, exitBalance) {
|
|
37
|
+
const fork = state.config.getForkSeq(state.slot);
|
|
37
38
|
let earliestExitEpoch = Math.max(state.earliestExitEpoch, computeActivationExitEpoch(state.epochCtx.epoch));
|
|
38
|
-
const perEpochChurn = getActivationExitChurnLimit(state.epochCtx);
|
|
39
|
+
const perEpochChurn = fork >= ForkSeq.gloas ? getExitChurnLimit(state.epochCtx) : getActivationExitChurnLimit(state.epochCtx);
|
|
39
40
|
// New epoch for exits.
|
|
40
41
|
let exitBalanceToConsume = state.earliestExitEpoch < earliestExitEpoch ? perEpochChurn : Number(state.exitBalanceToConsume);
|
|
41
42
|
// Exit doesn't fit in the current earliest epoch.
|
|
@@ -51,8 +52,9 @@ export function computeExitEpochAndUpdateChurn(state, exitBalance) {
|
|
|
51
52
|
return state.earliestExitEpoch;
|
|
52
53
|
}
|
|
53
54
|
export function computeConsolidationEpochAndUpdateChurn(state, consolidationBalance) {
|
|
55
|
+
const fork = state.config.getForkSeq(state.slot);
|
|
54
56
|
let earliestConsolidationEpoch = Math.max(state.earliestConsolidationEpoch, computeActivationExitEpoch(state.epochCtx.epoch));
|
|
55
|
-
const perEpochConsolidationChurn = getConsolidationChurnLimit(state.epochCtx);
|
|
57
|
+
const perEpochConsolidationChurn = getConsolidationChurnLimit(fork, state.epochCtx);
|
|
56
58
|
// New epoch for consolidations
|
|
57
59
|
let consolidationBalanceToConsume = state.earliestConsolidationEpoch < earliestConsolidationEpoch
|
|
58
60
|
? perEpochConsolidationChurn
|
package/lib/util/epoch.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"epoch.js","sourceRoot":"","sources":["../../src/util/epoch.ts"],"names":[],"mappings":"AAAA,OAAO,
|
|
1
|
+
{"version":3,"file":"epoch.js","sourceRoot":"","sources":["../../src/util/epoch.ts"],"names":[],"mappings":"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"}
|
|
@@ -73,8 +73,8 @@ export function loadStateAndValidators(chainForkConfig, stateBytes) {
|
|
|
73
73
|
* Sco0 Sco1 Sco2 Sco3a
|
|
74
74
|
*/
|
|
75
75
|
function loadInactivityScores(migratedState, seedState, inactivityScoresBytes) {
|
|
76
|
-
//
|
|
77
|
-
migratedState.inactivityScores = seedState.inactivityScores.clone();
|
|
76
|
+
// true = do not transfer cache
|
|
77
|
+
migratedState.inactivityScores = seedState.inactivityScores.clone(true);
|
|
78
78
|
const oldValidator = migratedState.inactivityScores.length;
|
|
79
79
|
// UintNum64 = 8 bytes
|
|
80
80
|
const newValidator = inactivityScoresBytes.length / 8;
|
|
@@ -135,8 +135,8 @@ function loadValidators(migratedState, seedState, newValidatorsBytes, seedStateV
|
|
|
135
135
|
const newValidatorCount = Math.floor(newValidatorsBytes.length / VALIDATOR_BYTES_SIZE);
|
|
136
136
|
const isMoreValidator = newValidatorCount >= seedValidatorCount;
|
|
137
137
|
const minValidatorCount = Math.min(seedValidatorCount, newValidatorCount);
|
|
138
|
-
//
|
|
139
|
-
migratedState.validators = seedState.validators.clone();
|
|
138
|
+
// true = do not transfer cache
|
|
139
|
+
migratedState.validators = seedState.validators.clone(true);
|
|
140
140
|
// 80% of validators serialization time comes from memory allocation
|
|
141
141
|
// seedStateValidatorsBytes is an optimization at beacon-node side to avoid memory allocation here
|
|
142
142
|
const seedValidatorsBytes = seedStateValidatorsBytes ?? seedState.validators.serialize();
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"loadState.js","sourceRoot":"","sources":["../../../src/util/loadState/loadState.ts"],"names":[],"mappings":"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
|
|
1
|
+
{"version":3,"file":"loadState.js","sourceRoot":"","sources":["../../../src/util/loadState/loadState.ts"],"names":[],"mappings":"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"}
|
package/lib/util/validator.d.ts
CHANGED
|
@@ -16,7 +16,7 @@ export declare function isSlashableValidator(validator: phase0.Validator, epoch:
|
|
|
16
16
|
* NAIVE - SLOW CODE 🐢
|
|
17
17
|
*/
|
|
18
18
|
export declare function getActiveValidatorIndices(state: BeaconStateAllForks, epoch: Epoch): Uint32Array;
|
|
19
|
-
export declare function
|
|
19
|
+
export declare function getValidatorActivationChurnLimit(config: ChainForkConfig, fork: ForkSeq, activeValidatorCount: number): number;
|
|
20
20
|
export declare function getChurnLimit(config: ChainForkConfig, activeValidatorCount: number): number;
|
|
21
21
|
/**
|
|
22
22
|
* Get combined churn limit of activation-exit and consolidation
|
|
@@ -24,7 +24,19 @@ export declare function getChurnLimit(config: ChainForkConfig, activeValidatorCo
|
|
|
24
24
|
export declare function getBalanceChurnLimit(totalActiveBalanceIncrements: number, churnLimitQuotient: number, minPerEpochChurnLimit: number): number;
|
|
25
25
|
export declare function getBalanceChurnLimitFromCache(epochCtx: EpochCache): number;
|
|
26
26
|
export declare function getActivationExitChurnLimit(epochCtx: EpochCache): number;
|
|
27
|
-
|
|
27
|
+
/**
|
|
28
|
+
* https://github.com/ethereum/consensus-specs/blob/v1.7.0-alpha.6/specs/gloas/beacon-chain.md#new-get_activation_churn_limit
|
|
29
|
+
*/
|
|
30
|
+
export declare function getActivationChurnLimit(epochCtx: EpochCache): number;
|
|
31
|
+
/**
|
|
32
|
+
* https://github.com/ethereum/consensus-specs/blob/v1.7.0-alpha.6/specs/gloas/beacon-chain.md#new-get_exit_churn_limit
|
|
33
|
+
*/
|
|
34
|
+
export declare function getExitChurnLimit(epochCtx: EpochCache): number;
|
|
35
|
+
/**
|
|
36
|
+
* Spec (electra): get_consolidation_churn_limit (uses combined balance churn minus activation+exit churn)
|
|
37
|
+
* Spec (gloas): get_consolidation_churn_limit (independent quotient, no MIN floor)
|
|
38
|
+
*/
|
|
39
|
+
export declare function getConsolidationChurnLimit(fork: ForkSeq, epochCtx: EpochCache): number;
|
|
28
40
|
export declare function getMaxEffectiveBalance(withdrawalCredentials: Uint8Array): number;
|
|
29
41
|
/**
|
|
30
42
|
* Check if validator is partially withdrawable.
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"validator.d.ts","sourceRoot":"","sources":["../../src/util/validator.ts"],"names":[],"mappings":"AAAA,OAAO,EAAC,eAAe,EAAC,MAAM,kBAAkB,CAAC;AACjD,OAAO,EAEL,OAAO,EAIR,MAAM,kBAAkB,CAAC;AAC1B,OAAO,EAAC,KAAK,EAAE,cAAc,EAAE,MAAM,EAAC,MAAM,iBAAiB,CAAC;AAE9D,OAAO,EAAC,mBAAmB,EAAE,wBAAwB,EAAE,sBAAsB,EAAE,UAAU,EAAC,MAAM,aAAa,CAAC;AAI9G;;GAEG;AACH,wBAAgB,iBAAiB,CAAC,SAAS,EAAE,MAAM,CAAC,SAAS,EAAE,KAAK,EAAE,KAAK,GAAG,OAAO,CAEpF;AAED;;GAEG;AACH,wBAAgB,oBAAoB,CAAC,SAAS,EAAE,MAAM,CAAC,SAAS,EAAE,KAAK,EAAE,KAAK,GAAG,OAAO,CAEvF;AAED;;;;GAIG;AACH,wBAAgB,yBAAyB,CAAC,KAAK,EAAE,mBAAmB,EAAE,KAAK,EAAE,KAAK,GAAG,WAAW,CAW/F;
|
|
1
|
+
{"version":3,"file":"validator.d.ts","sourceRoot":"","sources":["../../src/util/validator.ts"],"names":[],"mappings":"AAAA,OAAO,EAAC,eAAe,EAAC,MAAM,kBAAkB,CAAC;AACjD,OAAO,EAEL,OAAO,EAIR,MAAM,kBAAkB,CAAC;AAC1B,OAAO,EAAC,KAAK,EAAE,cAAc,EAAE,MAAM,EAAC,MAAM,iBAAiB,CAAC;AAE9D,OAAO,EAAC,mBAAmB,EAAE,wBAAwB,EAAE,sBAAsB,EAAE,UAAU,EAAC,MAAM,aAAa,CAAC;AAI9G;;GAEG;AACH,wBAAgB,iBAAiB,CAAC,SAAS,EAAE,MAAM,CAAC,SAAS,EAAE,KAAK,EAAE,KAAK,GAAG,OAAO,CAEpF;AAED;;GAEG;AACH,wBAAgB,oBAAoB,CAAC,SAAS,EAAE,MAAM,CAAC,SAAS,EAAE,KAAK,EAAE,KAAK,GAAG,OAAO,CAEvF;AAED;;;;GAIG;AACH,wBAAgB,yBAAyB,CAAC,KAAK,EAAE,mBAAmB,EAAE,KAAK,EAAE,KAAK,GAAG,WAAW,CAW/F;AAGD,wBAAgB,gCAAgC,CAC9C,MAAM,EAAE,eAAe,EACvB,IAAI,EAAE,OAAO,EACb,oBAAoB,EAAE,MAAM,GAC3B,MAAM,CAKR;AAED,wBAAgB,aAAa,CAAC,MAAM,EAAE,eAAe,EAAE,oBAAoB,EAAE,MAAM,GAAG,MAAM,CAE3F;AAED;;GAEG;AACH,wBAAgB,oBAAoB,CAClC,4BAA4B,EAAE,MAAM,EACpC,kBAAkB,EAAE,MAAM,EAC1B,qBAAqB,EAAE,MAAM,GAC5B,MAAM,CAQR;AAED,wBAAgB,6BAA6B,CAAC,QAAQ,EAAE,UAAU,GAAG,MAAM,CAM1E;AAED,wBAAgB,2BAA2B,CAAC,QAAQ,EAAE,UAAU,GAAG,MAAM,CAExE;AAED;;GAEG;AACH,wBAAgB,uBAAuB,CAAC,QAAQ,EAAE,UAAU,GAAG,MAAM,CAOpE;AAED;;GAEG;AACH,wBAAgB,iBAAiB,CAAC,QAAQ,EAAE,UAAU,GAAG,MAAM,CAM9D;AAED;;;GAGG;AACH,wBAAgB,0BAA0B,CAAC,IAAI,EAAE,OAAO,EAAE,QAAQ,EAAE,UAAU,GAAG,MAAM,CAUtF;AAED,wBAAgB,sBAAsB,CAAC,qBAAqB,EAAE,UAAU,GAAG,MAAM,CAMhF;AAED;;;GAGG;AACH,wBAAgB,gCAAgC,CAAC,IAAI,EAAE,OAAO,EAAE,SAAS,EAAE,MAAM,CAAC,SAAS,EAAE,OAAO,EAAE,MAAM,GAAG,OAAO,CAsBrH;AAED,wBAAgB,2BAA2B,CACzC,KAAK,EAAE,wBAAwB,GAAG,sBAAsB,EACxD,cAAc,EAAE,cAAc,GAC7B,MAAM,CASR"}
|
package/lib/util/validator.js
CHANGED
|
@@ -29,7 +29,8 @@ export function getActiveValidatorIndices(state, epoch) {
|
|
|
29
29
|
}
|
|
30
30
|
return new Uint32Array(indices);
|
|
31
31
|
}
|
|
32
|
-
|
|
32
|
+
// Deneb fork upgrade only
|
|
33
|
+
export function getValidatorActivationChurnLimit(config, fork, activeValidatorCount) {
|
|
33
34
|
if (fork >= ForkSeq.deneb) {
|
|
34
35
|
return Math.min(config.MAX_PER_EPOCH_ACTIVATION_CHURN_LIMIT, getChurnLimit(config, activeValidatorCount));
|
|
35
36
|
}
|
|
@@ -52,7 +53,28 @@ export function getBalanceChurnLimitFromCache(epochCtx) {
|
|
|
52
53
|
export function getActivationExitChurnLimit(epochCtx) {
|
|
53
54
|
return Math.min(epochCtx.config.MAX_PER_EPOCH_ACTIVATION_EXIT_CHURN_LIMIT, getBalanceChurnLimitFromCache(epochCtx));
|
|
54
55
|
}
|
|
55
|
-
|
|
56
|
+
/**
|
|
57
|
+
* https://github.com/ethereum/consensus-specs/blob/v1.7.0-alpha.6/specs/gloas/beacon-chain.md#new-get_activation_churn_limit
|
|
58
|
+
*/
|
|
59
|
+
export function getActivationChurnLimit(epochCtx) {
|
|
60
|
+
const churn = getBalanceChurnLimit(epochCtx.totalActiveBalanceIncrements, epochCtx.config.CHURN_LIMIT_QUOTIENT_GLOAS, epochCtx.config.MIN_PER_EPOCH_CHURN_LIMIT_ELECTRA);
|
|
61
|
+
return Math.min(epochCtx.config.MAX_PER_EPOCH_ACTIVATION_CHURN_LIMIT_GLOAS, churn);
|
|
62
|
+
}
|
|
63
|
+
/**
|
|
64
|
+
* https://github.com/ethereum/consensus-specs/blob/v1.7.0-alpha.6/specs/gloas/beacon-chain.md#new-get_exit_churn_limit
|
|
65
|
+
*/
|
|
66
|
+
export function getExitChurnLimit(epochCtx) {
|
|
67
|
+
return getBalanceChurnLimit(epochCtx.totalActiveBalanceIncrements, epochCtx.config.CHURN_LIMIT_QUOTIENT_GLOAS, epochCtx.config.MIN_PER_EPOCH_CHURN_LIMIT_ELECTRA);
|
|
68
|
+
}
|
|
69
|
+
/**
|
|
70
|
+
* Spec (electra): get_consolidation_churn_limit (uses combined balance churn minus activation+exit churn)
|
|
71
|
+
* Spec (gloas): get_consolidation_churn_limit (independent quotient, no MIN floor)
|
|
72
|
+
*/
|
|
73
|
+
export function getConsolidationChurnLimit(fork, epochCtx) {
|
|
74
|
+
if (fork >= ForkSeq.gloas) {
|
|
75
|
+
// No MIN floor — pass 0 so getBalanceChurnLimit's max(churn, min) is a no-op.
|
|
76
|
+
return getBalanceChurnLimit(epochCtx.totalActiveBalanceIncrements, epochCtx.config.CONSOLIDATION_CHURN_LIMIT_QUOTIENT, 0);
|
|
77
|
+
}
|
|
56
78
|
return getBalanceChurnLimitFromCache(epochCtx) - getActivationExitChurnLimit(epochCtx);
|
|
57
79
|
}
|
|
58
80
|
export function getMaxEffectiveBalance(withdrawalCredentials) {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"validator.js","sourceRoot":"","sources":["../../src/util/validator.ts"],"names":[],"mappings":"AACA,OAAO,EACL,2BAA2B,EAC3B,OAAO,EACP,qBAAqB,EACrB,6BAA6B,EAC7B,sBAAsB,GACvB,MAAM,kBAAkB,CAAC;AAE1B,OAAO,EAAC,MAAM,EAAC,MAAM,iBAAiB,CAAC;AAEvC,OAAO,EAAC,2BAA2B,EAAC,MAAM,cAAc,CAAC;AACzD,OAAO,EAAC,kCAAkC,EAAE,gCAAgC,EAAC,MAAM,cAAc,CAAC;AAElG;;GAEG;AACH,MAAM,UAAU,iBAAiB,CAAC,SAA2B,EAAE,KAAY,EAAW;IACpF,OAAO,SAAS,CAAC,eAAe,IAAI,KAAK,IAAI,KAAK,GAAG,SAAS,CAAC,SAAS,CAAC;AAAA,CAC1E;AAED;;GAEG;AACH,MAAM,UAAU,oBAAoB,CAAC,SAA2B,EAAE,KAAY,EAAW;IACvF,OAAO,CAAC,SAAS,CAAC,OAAO,IAAI,SAAS,CAAC,eAAe,IAAI,KAAK,IAAI,KAAK,GAAG,SAAS,CAAC,iBAAiB,CAAC;AAAA,CACxG;AAED;;;;GAIG;AACH,MAAM,UAAU,yBAAyB,CAAC,KAA0B,EAAE,KAAY,EAAe;IAC/F,MAAM,OAAO,GAAqB,EAAE,CAAC;IAErC,MAAM,aAAa,GAAG,KAAK,CAAC,UAAU,CAAC,oBAAoB,EAAE,CAAC;IAC9D,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,aAAa,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE,CAAC;QAC9C,IAAI,iBAAiB,CAAC,aAAa,CAAC,CAAC,CAAC,EAAE,KAAK,CAAC,EAAE,CAAC;YAC/C,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;QAClB,CAAC;IACH,CAAC;IAED,OAAO,IAAI,WAAW,CAAC,OAAO,CAAC,CAAC;AAAA,CACjC;AAED,MAAM,UAAU,
|
|
1
|
+
{"version":3,"file":"validator.js","sourceRoot":"","sources":["../../src/util/validator.ts"],"names":[],"mappings":"AACA,OAAO,EACL,2BAA2B,EAC3B,OAAO,EACP,qBAAqB,EACrB,6BAA6B,EAC7B,sBAAsB,GACvB,MAAM,kBAAkB,CAAC;AAE1B,OAAO,EAAC,MAAM,EAAC,MAAM,iBAAiB,CAAC;AAEvC,OAAO,EAAC,2BAA2B,EAAC,MAAM,cAAc,CAAC;AACzD,OAAO,EAAC,kCAAkC,EAAE,gCAAgC,EAAC,MAAM,cAAc,CAAC;AAElG;;GAEG;AACH,MAAM,UAAU,iBAAiB,CAAC,SAA2B,EAAE,KAAY,EAAW;IACpF,OAAO,SAAS,CAAC,eAAe,IAAI,KAAK,IAAI,KAAK,GAAG,SAAS,CAAC,SAAS,CAAC;AAAA,CAC1E;AAED;;GAEG;AACH,MAAM,UAAU,oBAAoB,CAAC,SAA2B,EAAE,KAAY,EAAW;IACvF,OAAO,CAAC,SAAS,CAAC,OAAO,IAAI,SAAS,CAAC,eAAe,IAAI,KAAK,IAAI,KAAK,GAAG,SAAS,CAAC,iBAAiB,CAAC;AAAA,CACxG;AAED;;;;GAIG;AACH,MAAM,UAAU,yBAAyB,CAAC,KAA0B,EAAE,KAAY,EAAe;IAC/F,MAAM,OAAO,GAAqB,EAAE,CAAC;IAErC,MAAM,aAAa,GAAG,KAAK,CAAC,UAAU,CAAC,oBAAoB,EAAE,CAAC;IAC9D,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,aAAa,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE,CAAC;QAC9C,IAAI,iBAAiB,CAAC,aAAa,CAAC,CAAC,CAAC,EAAE,KAAK,CAAC,EAAE,CAAC;YAC/C,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;QAClB,CAAC;IACH,CAAC;IAED,OAAO,IAAI,WAAW,CAAC,OAAO,CAAC,CAAC;AAAA,CACjC;AAED,0BAA0B;AAC1B,MAAM,UAAU,gCAAgC,CAC9C,MAAuB,EACvB,IAAa,EACb,oBAA4B,EACpB;IACR,IAAI,IAAI,IAAI,OAAO,CAAC,KAAK,EAAE,CAAC;QAC1B,OAAO,IAAI,CAAC,GAAG,CAAC,MAAM,CAAC,oCAAoC,EAAE,aAAa,CAAC,MAAM,EAAE,oBAAoB,CAAC,CAAC,CAAC;IAC5G,CAAC;IACD,OAAO,aAAa,CAAC,MAAM,EAAE,oBAAoB,CAAC,CAAC;AAAA,CACpD;AAED,MAAM,UAAU,aAAa,CAAC,MAAuB,EAAE,oBAA4B,EAAU;IAC3F,OAAO,IAAI,CAAC,GAAG,CAAC,MAAM,CAAC,yBAAyB,EAAE,MAAM,CAAC,oBAAoB,EAAE,MAAM,CAAC,oBAAoB,CAAC,CAAC,CAAC;AAAA,CAC9G;AAED;;GAEG;AACH,MAAM,UAAU,oBAAoB,CAClC,4BAAoC,EACpC,kBAA0B,EAC1B,qBAA6B,EACrB;IACR,MAAM,8BAA8B,GAAG,IAAI,CAAC,KAAK,CAC/C,CAAC,4BAA4B,GAAG,kBAAkB,CAAC,GAAG,2BAA2B,CAClF,CAAC;IAEF,MAAM,KAAK,GAAG,IAAI,CAAC,GAAG,CAAC,8BAA8B,EAAE,qBAAqB,CAAC,CAAC;IAE9E,OAAO,KAAK,GAAG,CAAC,KAAK,GAAG,2BAA2B,CAAC,CAAC;AAAA,CACtD;AAED,MAAM,UAAU,6BAA6B,CAAC,QAAoB,EAAU;IAC1E,OAAO,oBAAoB,CACzB,QAAQ,CAAC,4BAA4B,EACrC,QAAQ,CAAC,MAAM,CAAC,oBAAoB,EACpC,QAAQ,CAAC,MAAM,CAAC,iCAAiC,CAClD,CAAC;AAAA,CACH;AAED,MAAM,UAAU,2BAA2B,CAAC,QAAoB,EAAU;IACxE,OAAO,IAAI,CAAC,GAAG,CAAC,QAAQ,CAAC,MAAM,CAAC,yCAAyC,EAAE,6BAA6B,CAAC,QAAQ,CAAC,CAAC,CAAC;AAAA,CACrH;AAED;;GAEG;AACH,MAAM,UAAU,uBAAuB,CAAC,QAAoB,EAAU;IACpE,MAAM,KAAK,GAAG,oBAAoB,CAChC,QAAQ,CAAC,4BAA4B,EACrC,QAAQ,CAAC,MAAM,CAAC,0BAA0B,EAC1C,QAAQ,CAAC,MAAM,CAAC,iCAAiC,CAClD,CAAC;IACF,OAAO,IAAI,CAAC,GAAG,CAAC,QAAQ,CAAC,MAAM,CAAC,0CAA0C,EAAE,KAAK,CAAC,CAAC;AAAA,CACpF;AAED;;GAEG;AACH,MAAM,UAAU,iBAAiB,CAAC,QAAoB,EAAU;IAC9D,OAAO,oBAAoB,CACzB,QAAQ,CAAC,4BAA4B,EACrC,QAAQ,CAAC,MAAM,CAAC,0BAA0B,EAC1C,QAAQ,CAAC,MAAM,CAAC,iCAAiC,CAClD,CAAC;AAAA,CACH;AAED;;;GAGG;AACH,MAAM,UAAU,0BAA0B,CAAC,IAAa,EAAE,QAAoB,EAAU;IACtF,IAAI,IAAI,IAAI,OAAO,CAAC,KAAK,EAAE,CAAC;QAC1B,8EAA8E;QAC9E,OAAO,oBAAoB,CACzB,QAAQ,CAAC,4BAA4B,EACrC,QAAQ,CAAC,MAAM,CAAC,kCAAkC,EAClD,CAAC,CACF,CAAC;IACJ,CAAC;IACD,OAAO,6BAA6B,CAAC,QAAQ,CAAC,GAAG,2BAA2B,CAAC,QAAQ,CAAC,CAAC;AAAA,CACxF;AAED,MAAM,UAAU,sBAAsB,CAAC,qBAAiC,EAAU;IAChF,iEAAiE;IACjE,IAAI,kCAAkC,CAAC,qBAAqB,CAAC,EAAE,CAAC;QAC9D,OAAO,6BAA6B,CAAC;IACvC,CAAC;IACD,OAAO,sBAAsB,CAAC;AAAA,CAC/B;AAED;;;GAGG;AACH,MAAM,UAAU,gCAAgC,CAAC,IAAa,EAAE,SAA2B,EAAE,OAAe,EAAW;IACrH,MAAM,aAAa,GAAG,IAAI,IAAI,OAAO,CAAC,OAAO,CAAC;IAE9C,+BAA+B;IAC/B,MAAM,0BAA0B,GAAG,aAAa;QAC9C,CAAC,CAAC,gCAAgC,CAAC,SAAS,CAAC,qBAAqB,CAAC;QACnE,CAAC,CAAC,2BAA2B,CAAC,SAAS,CAAC,qBAAqB,CAAC,CAAC;IAEjE,IAAI,CAAC,0BAA0B,EAAE,CAAC;QAChC,OAAO,KAAK,CAAC;IACf,CAAC;IAED,0CAA0C;IAC1C,MAAM,mBAAmB,GAAG,aAAa;QACvC,CAAC,CAAC,sBAAsB,CAAC,SAAS,CAAC,qBAAqB,CAAC;QACzD,CAAC,CAAC,qBAAqB,CAAC;IAE1B,2DAA2D;IAC3D,MAAM,sBAAsB,GAAG,SAAS,CAAC,gBAAgB,KAAK,mBAAmB,CAAC;IAClF,MAAM,gBAAgB,GAAG,OAAO,GAAG,mBAAmB,CAAC;IAEvD,OAAO,sBAAsB,IAAI,gBAAgB,CAAC;AAAA,CACnD;AAED,MAAM,UAAU,2BAA2B,CACzC,KAAwD,EACxD,cAA8B,EACtB;IACR,IAAI,KAAK,GAAG,CAAC,CAAC;IACd,KAAK,MAAM,IAAI,IAAI,KAAK,CAAC,yBAAyB,CAAC,cAAc,EAAE,EAAE,CAAC;QACpE,IAAI,IAAI,CAAC,cAAc,KAAK,cAAc,EAAE,CAAC;YAC3C,KAAK,IAAI,MAAM,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC;QAC/B,CAAC;IACH,CAAC;IAED,OAAO,KAAK,CAAC;AAAA,CACd"}
|
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.43.0-dev.
|
|
14
|
+
"version": "1.43.0-dev.59c06807b6",
|
|
15
15
|
"type": "module",
|
|
16
16
|
"exports": {
|
|
17
17
|
".": {
|
|
@@ -62,19 +62,19 @@
|
|
|
62
62
|
"dependencies": {
|
|
63
63
|
"@chainsafe/as-sha256": "^1.2.0",
|
|
64
64
|
"@chainsafe/blst": "^2.2.0",
|
|
65
|
-
"@chainsafe/persistent-merkle-tree": "^1.2.
|
|
65
|
+
"@chainsafe/persistent-merkle-tree": "^1.2.5",
|
|
66
66
|
"@chainsafe/persistent-ts": "^1.0.0",
|
|
67
67
|
"@chainsafe/pubkey-index-map": "^3.0.0",
|
|
68
68
|
"@chainsafe/ssz": "^1.4.0",
|
|
69
69
|
"@chainsafe/swap-or-not-shuffle": "^1.2.1",
|
|
70
|
-
"@lodestar/config": "^1.43.0-dev.
|
|
71
|
-
"@lodestar/params": "^1.43.0-dev.
|
|
72
|
-
"@lodestar/types": "^1.43.0-dev.
|
|
73
|
-
"@lodestar/utils": "^1.43.0-dev.
|
|
70
|
+
"@lodestar/config": "^1.43.0-dev.59c06807b6",
|
|
71
|
+
"@lodestar/params": "^1.43.0-dev.59c06807b6",
|
|
72
|
+
"@lodestar/types": "^1.43.0-dev.59c06807b6",
|
|
73
|
+
"@lodestar/utils": "^1.43.0-dev.59c06807b6",
|
|
74
74
|
"@vekexasia/bigint-buffer2": "^1.1.1"
|
|
75
75
|
},
|
|
76
76
|
"devDependencies": {
|
|
77
|
-
"@lodestar/api": "^1.43.0-dev.
|
|
77
|
+
"@lodestar/api": "^1.43.0-dev.59c06807b6"
|
|
78
78
|
},
|
|
79
79
|
"keywords": [
|
|
80
80
|
"ethereum",
|
|
@@ -82,5 +82,5 @@
|
|
|
82
82
|
"beacon",
|
|
83
83
|
"blockchain"
|
|
84
84
|
],
|
|
85
|
-
"gitHead": "
|
|
85
|
+
"gitHead": "769793a1a665f459bce075cd56dbfded079c5b58"
|
|
86
86
|
}
|
|
@@ -46,7 +46,8 @@ export function processConsolidationRequest(
|
|
|
46
46
|
}
|
|
47
47
|
|
|
48
48
|
// If there is too little available consolidation churn limit, consolidation requests are ignored
|
|
49
|
-
|
|
49
|
+
const fork = state.config.getForkSeq(state.slot);
|
|
50
|
+
if (getConsolidationChurnLimit(fork, state.epochCtx) <= MIN_ACTIVATION_BALANCE) {
|
|
50
51
|
return;
|
|
51
52
|
}
|
|
52
53
|
|
|
@@ -10,7 +10,7 @@ import {processWithdrawalRequest} from "./processWithdrawalRequest.js";
|
|
|
10
10
|
/**
|
|
11
11
|
* Process parent execution payload effects as the first step of processBlock.
|
|
12
12
|
*
|
|
13
|
-
* Spec: https://github.com/ethereum/consensus-specs/blob/v1.7.0-alpha.
|
|
13
|
+
* Spec: https://github.com/ethereum/consensus-specs/blob/v1.7.0-alpha.6/specs/gloas/beacon-chain.md#new-process_parent_execution_payload
|
|
14
14
|
*/
|
|
15
15
|
export function processParentExecutionPayload(state: CachedBeaconStateGloas, block: BeaconBlock<ForkPostGloas>): void {
|
|
16
16
|
const bid = block.body.signedExecutionPayloadBid.message;
|
|
@@ -42,7 +42,7 @@ export function processParentExecutionPayload(state: CachedBeaconStateGloas, blo
|
|
|
42
42
|
* Called from processParentExecutionPayload during block processing, and from the validator during
|
|
43
43
|
* block production before computing withdrawals.
|
|
44
44
|
*
|
|
45
|
-
* Spec: https://github.com/ethereum/consensus-specs/blob/v1.7.0-alpha.
|
|
45
|
+
* Spec: https://github.com/ethereum/consensus-specs/blob/v1.7.0-alpha.6/specs/gloas/beacon-chain.md#new-apply_parent_execution_payload
|
|
46
46
|
*/
|
|
47
47
|
export function applyParentExecutionPayload(state: CachedBeaconStateGloas, requests: electra.ExecutionRequests): void {
|
|
48
48
|
const fork = state.config.getForkSeq(state.slot);
|
|
@@ -94,7 +94,7 @@ export function applyParentExecutionPayload(state: CachedBeaconStateGloas, reque
|
|
|
94
94
|
* Settle a builder payment at the given index: move its withdrawal (if any) to the
|
|
95
95
|
* pending withdrawals list and clear the payment slot.
|
|
96
96
|
*
|
|
97
|
-
* Spec: https://github.com/ethereum/consensus-specs/blob/v1.7.0-alpha.
|
|
97
|
+
* Spec: https://github.com/ethereum/consensus-specs/blob/v1.7.0-alpha.6/specs/gloas/beacon-chain.md#new-settle_builder_payment
|
|
98
98
|
*/
|
|
99
99
|
function settleBuilderPayment(state: CachedBeaconStateGloas, paymentIndex: number): void {
|
|
100
100
|
if (paymentIndex >= state.builderPendingPayments.length) {
|
|
@@ -10,7 +10,6 @@ import {
|
|
|
10
10
|
} from "@lodestar/params";
|
|
11
11
|
import {BuilderIndex, ValidatorIndex, capella, ssz} from "@lodestar/types";
|
|
12
12
|
import {byteArrayEquals, toRootHex} from "@lodestar/utils";
|
|
13
|
-
import {ZERO_HASH} from "../constants/index.js";
|
|
14
13
|
import {CachedBeaconStateCapella, CachedBeaconStateElectra, CachedBeaconStateGloas} from "../types.js";
|
|
15
14
|
import {
|
|
16
15
|
convertBuilderIndexToValidatorIndex,
|
|
@@ -31,15 +30,14 @@ export function processWithdrawals(
|
|
|
31
30
|
state: CachedBeaconStateCapella | CachedBeaconStateElectra | CachedBeaconStateGloas,
|
|
32
31
|
payload?: capella.FullOrBlindedExecutionPayload
|
|
33
32
|
): void {
|
|
34
|
-
// Return early if
|
|
33
|
+
// Return early if the parent block is empty
|
|
35
34
|
if (fork >= ForkSeq.gloas) {
|
|
36
35
|
const stateGloas = state as CachedBeaconStateGloas;
|
|
37
|
-
const isGenesisBlock = byteArrayEquals(stateGloas.latestBlockHash, ZERO_HASH);
|
|
38
36
|
const isParentBlockEmpty = !byteArrayEquals(
|
|
39
37
|
stateGloas.latestBlockHash,
|
|
40
38
|
stateGloas.latestExecutionPayloadBid.blockHash
|
|
41
39
|
);
|
|
42
|
-
if (
|
|
40
|
+
if (isParentBlockEmpty) {
|
|
43
41
|
return;
|
|
44
42
|
}
|
|
45
43
|
}
|
package/src/cache/epochCache.ts
CHANGED
|
@@ -38,9 +38,9 @@ import {
|
|
|
38
38
|
computeEpochAtSlot,
|
|
39
39
|
computeProposers,
|
|
40
40
|
computeSyncPeriodAtEpoch,
|
|
41
|
-
getActivationChurnLimit,
|
|
42
41
|
getChurnLimit,
|
|
43
42
|
getSeed,
|
|
43
|
+
getValidatorActivationChurnLimit,
|
|
44
44
|
isActiveValidator,
|
|
45
45
|
isAggregatorFromCommitteeLength,
|
|
46
46
|
} from "../util/index.js";
|
|
@@ -478,7 +478,7 @@ export class EpochCache {
|
|
|
478
478
|
// the first block of the epoch process_block() call. So churnLimit must be computed at the end of the before epoch
|
|
479
479
|
// transition and the result is valid until the end of the next epoch transition
|
|
480
480
|
const churnLimit = getChurnLimit(config, currentShuffling.activeIndices.length);
|
|
481
|
-
const activationChurnLimit =
|
|
481
|
+
const activationChurnLimit = getValidatorActivationChurnLimit(
|
|
482
482
|
config,
|
|
483
483
|
config.getForkSeq(state.slot),
|
|
484
484
|
currentShuffling.activeIndices.length
|
|
@@ -652,7 +652,7 @@ export class EpochCache {
|
|
|
652
652
|
// the first block of the epoch process_block() call. So churnLimit must be computed at the end of the before epoch
|
|
653
653
|
// transition and the result is valid until the end of the next epoch transition
|
|
654
654
|
this.churnLimit = getChurnLimit(this.config, this.currentShuffling.activeIndices.length);
|
|
655
|
-
this.activationChurnLimit =
|
|
655
|
+
this.activationChurnLimit = getValidatorActivationChurnLimit(
|
|
656
656
|
this.config,
|
|
657
657
|
this.config.getForkSeq(state.slot),
|
|
658
658
|
this.currentShuffling.activeIndices.length
|
|
@@ -5,7 +5,7 @@ import {CachedBeaconStateElectra, EpochTransitionCache} from "../types.js";
|
|
|
5
5
|
import {increaseBalance} from "../util/balance.js";
|
|
6
6
|
import {hasCompoundingWithdrawalCredential, isValidatorKnown} from "../util/electra.js";
|
|
7
7
|
import {computeStartSlotAtEpoch} from "../util/epoch.js";
|
|
8
|
-
import {getActivationExitChurnLimit} from "../util/validator.js";
|
|
8
|
+
import {getActivationChurnLimit, getActivationExitChurnLimit} from "../util/validator.js";
|
|
9
9
|
|
|
10
10
|
/**
|
|
11
11
|
* Starting from Electra:
|
|
@@ -17,8 +17,11 @@ import {getActivationExitChurnLimit} from "../util/validator.js";
|
|
|
17
17
|
* TODO Electra: Update ssz library to support batch push to `pendingDeposits`
|
|
18
18
|
*/
|
|
19
19
|
export function processPendingDeposits(state: CachedBeaconStateElectra, cache: EpochTransitionCache): void {
|
|
20
|
+
const fork = state.config.getForkSeq(state.slot);
|
|
20
21
|
const nextEpoch = state.epochCtx.epoch + 1;
|
|
21
|
-
const
|
|
22
|
+
const churnLimit =
|
|
23
|
+
fork >= ForkSeq.gloas ? getActivationChurnLimit(state.epochCtx) : getActivationExitChurnLimit(state.epochCtx);
|
|
24
|
+
const availableForProcessing = state.depositBalanceToConsume + BigInt(churnLimit);
|
|
22
25
|
let processedAmount = 0;
|
|
23
26
|
let nextDepositIndex = 0;
|
|
24
27
|
const depositsToPostpone = [];
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import {FAR_FUTURE_EPOCH, GENESIS_SLOT, UNSET_DEPOSIT_REQUESTS_START_INDEX} from "@lodestar/params";
|
|
1
|
+
import {FAR_FUTURE_EPOCH, ForkSeq, GENESIS_SLOT, UNSET_DEPOSIT_REQUESTS_START_INDEX} from "@lodestar/params";
|
|
2
2
|
import {ValidatorIndex, ssz} from "@lodestar/types";
|
|
3
3
|
import {CachedBeaconStateElectra, getCachedBeaconState} from "../cache/stateCache.js";
|
|
4
4
|
import {G2_POINT_AT_INFINITY} from "../constants/constants.js";
|
|
@@ -78,7 +78,9 @@ export function upgradeStateToElectra(stateDeneb: CachedBeaconStateDeneb): Cache
|
|
|
78
78
|
stateElectraView.commit();
|
|
79
79
|
const tmpElectraState = getCachedBeaconState(stateElectraView, stateDeneb);
|
|
80
80
|
stateElectraView.exitBalanceToConsume = BigInt(getActivationExitChurnLimit(tmpElectraState.epochCtx));
|
|
81
|
-
stateElectraView.consolidationBalanceToConsume = BigInt(
|
|
81
|
+
stateElectraView.consolidationBalanceToConsume = BigInt(
|
|
82
|
+
getConsolidationChurnLimit(ForkSeq.electra, tmpElectraState.epochCtx)
|
|
83
|
+
);
|
|
82
84
|
|
|
83
85
|
preActivation.sort((i0, i1) => {
|
|
84
86
|
const res = validatorsArr[i0].activationEligibilityEpoch - validatorsArr[i1].activationEligibilityEpoch;
|
|
@@ -68,7 +68,7 @@ import {canBuilderCoverBid} from "../util/gloas.js";
|
|
|
68
68
|
import {loadState} from "../util/loadState/loadState.js";
|
|
69
69
|
import {getRandaoMix} from "../util/seed.js";
|
|
70
70
|
import {getLatestWeakSubjectivityCheckpointEpoch} from "../util/weakSubjectivity.js";
|
|
71
|
-
import {IBeaconStateView, IBeaconStateViewLatestFork} from "./interface.js";
|
|
71
|
+
import {IBeaconStateView, IBeaconStateViewGloas, IBeaconStateViewLatestFork, isStatePostGloas} from "./interface.js";
|
|
72
72
|
|
|
73
73
|
export class BeaconStateView implements IBeaconStateViewLatestFork {
|
|
74
74
|
private readonly config: BeaconConfig;
|
|
@@ -803,16 +803,19 @@ export class BeaconStateView implements IBeaconStateViewLatestFork {
|
|
|
803
803
|
/**
|
|
804
804
|
* Spec: https://github.com/ethereum/consensus-specs/blob/v1.7.0-alpha.5/specs/gloas/validator.md#executionpayload
|
|
805
805
|
*/
|
|
806
|
-
|
|
807
|
-
|
|
808
|
-
|
|
809
|
-
throw new Error("getExpectedWithdrawalsForFullParent is not available before Gloas");
|
|
806
|
+
withParentPayloadApplied(executionRequests: electra.ExecutionRequests): IBeaconStateViewGloas {
|
|
807
|
+
if (this.config.getForkSeq(this.cachedState.slot) < ForkSeq.gloas) {
|
|
808
|
+
throw new Error("withParentPayloadApplied is not available before Gloas");
|
|
810
809
|
}
|
|
811
|
-
// Make a copy of the state to avoid mutability issues
|
|
812
810
|
const stateCopy = this.cachedState.clone(true) as CachedBeaconStateGloas;
|
|
813
|
-
|
|
811
|
+
|
|
814
812
|
applyParentExecutionPayload(stateCopy, executionRequests);
|
|
815
813
|
|
|
816
|
-
|
|
814
|
+
const stateView = new BeaconStateView(stateCopy);
|
|
815
|
+
if (!isStatePostGloas(stateView)) {
|
|
816
|
+
throw new Error("Expected gloas state after clone");
|
|
817
|
+
}
|
|
818
|
+
|
|
819
|
+
return stateView;
|
|
817
820
|
}
|
|
818
821
|
}
|
|
@@ -255,11 +255,12 @@ export interface IBeaconStateViewGloas extends IBeaconStateViewFulu {
|
|
|
255
255
|
getEpochPTCs(epoch: Epoch): Uint32Array[];
|
|
256
256
|
getIndexInPayloadTimelinessCommittee(validatorIndex: ValidatorIndex, slot: Slot): number;
|
|
257
257
|
/**
|
|
258
|
-
*
|
|
259
|
-
*
|
|
260
|
-
*
|
|
258
|
+
* Clone the state and apply parent execution payload effects.
|
|
259
|
+
* Used during block production and prepareNextSlot so that withdrawals and
|
|
260
|
+
* operation selection (e.g. voluntary exits) see the same post-apply state that the block
|
|
261
|
+
* processor will see at import.
|
|
261
262
|
*/
|
|
262
|
-
|
|
263
|
+
withParentPayloadApplied(executionRequests: electra.ExecutionRequests): IBeaconStateViewGloas;
|
|
263
264
|
}
|
|
264
265
|
|
|
265
266
|
/**
|
package/src/util/epoch.ts
CHANGED
|
@@ -1,7 +1,13 @@
|
|
|
1
|
-
import {
|
|
1
|
+
import {
|
|
2
|
+
EPOCHS_PER_SYNC_COMMITTEE_PERIOD,
|
|
3
|
+
ForkSeq,
|
|
4
|
+
GENESIS_EPOCH,
|
|
5
|
+
MAX_SEED_LOOKAHEAD,
|
|
6
|
+
SLOTS_PER_EPOCH,
|
|
7
|
+
} from "@lodestar/params";
|
|
2
8
|
import {BeaconState, Epoch, Gwei, Slot, SyncPeriod} from "@lodestar/types";
|
|
3
9
|
import {CachedBeaconStateElectra, CachedBeaconStateGloas} from "../types.js";
|
|
4
|
-
import {getActivationExitChurnLimit, getConsolidationChurnLimit} from "./validator.js";
|
|
10
|
+
import {getActivationExitChurnLimit, getConsolidationChurnLimit, getExitChurnLimit} from "./validator.js";
|
|
5
11
|
|
|
6
12
|
/**
|
|
7
13
|
* Return the epoch number at the given slot.
|
|
@@ -45,8 +51,10 @@ export function computeExitEpochAndUpdateChurn(
|
|
|
45
51
|
state: CachedBeaconStateElectra | CachedBeaconStateGloas,
|
|
46
52
|
exitBalance: Gwei
|
|
47
53
|
): number {
|
|
54
|
+
const fork = state.config.getForkSeq(state.slot);
|
|
48
55
|
let earliestExitEpoch = Math.max(state.earliestExitEpoch, computeActivationExitEpoch(state.epochCtx.epoch));
|
|
49
|
-
const perEpochChurn =
|
|
56
|
+
const perEpochChurn =
|
|
57
|
+
fork >= ForkSeq.gloas ? getExitChurnLimit(state.epochCtx) : getActivationExitChurnLimit(state.epochCtx);
|
|
50
58
|
|
|
51
59
|
// New epoch for exits.
|
|
52
60
|
let exitBalanceToConsume =
|
|
@@ -71,11 +79,12 @@ export function computeConsolidationEpochAndUpdateChurn(
|
|
|
71
79
|
state: CachedBeaconStateElectra | CachedBeaconStateGloas,
|
|
72
80
|
consolidationBalance: Gwei
|
|
73
81
|
): number {
|
|
82
|
+
const fork = state.config.getForkSeq(state.slot);
|
|
74
83
|
let earliestConsolidationEpoch = Math.max(
|
|
75
84
|
state.earliestConsolidationEpoch,
|
|
76
85
|
computeActivationExitEpoch(state.epochCtx.epoch)
|
|
77
86
|
);
|
|
78
|
-
const perEpochConsolidationChurn = getConsolidationChurnLimit(state.epochCtx);
|
|
87
|
+
const perEpochConsolidationChurn = getConsolidationChurnLimit(fork, state.epochCtx);
|
|
79
88
|
|
|
80
89
|
// New epoch for consolidations
|
|
81
90
|
let consolidationBalanceToConsume =
|
|
@@ -110,8 +110,8 @@ function loadInactivityScores(
|
|
|
110
110
|
seedState: BeaconStateAltair,
|
|
111
111
|
inactivityScoresBytes: Uint8Array
|
|
112
112
|
): void {
|
|
113
|
-
//
|
|
114
|
-
migratedState.inactivityScores = seedState.inactivityScores.clone();
|
|
113
|
+
// true = do not transfer cache
|
|
114
|
+
migratedState.inactivityScores = seedState.inactivityScores.clone(true);
|
|
115
115
|
const oldValidator = migratedState.inactivityScores.length;
|
|
116
116
|
// UintNum64 = 8 bytes
|
|
117
117
|
const newValidator = inactivityScoresBytes.length / 8;
|
|
@@ -187,8 +187,8 @@ function loadValidators(
|
|
|
187
187
|
const newValidatorCount = Math.floor(newValidatorsBytes.length / VALIDATOR_BYTES_SIZE);
|
|
188
188
|
const isMoreValidator = newValidatorCount >= seedValidatorCount;
|
|
189
189
|
const minValidatorCount = Math.min(seedValidatorCount, newValidatorCount);
|
|
190
|
-
//
|
|
191
|
-
migratedState.validators = seedState.validators.clone();
|
|
190
|
+
// true = do not transfer cache
|
|
191
|
+
migratedState.validators = seedState.validators.clone(true);
|
|
192
192
|
// 80% of validators serialization time comes from memory allocation
|
|
193
193
|
// seedStateValidatorsBytes is an optimization at beacon-node side to avoid memory allocation here
|
|
194
194
|
const seedValidatorsBytes = seedStateValidatorsBytes ?? seedState.validators.serialize();
|