@lodestar/state-transition 1.42.0-dev.a5906cd323 → 1.42.0-dev.b2b4af3e21
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/testUtils/util.d.ts +23 -1
- package/lib/testUtils/util.d.ts.map +1 -1
- package/lib/testUtils/util.js +140 -19
- package/lib/testUtils/util.js.map +1 -1
- package/package.json +7 -7
- package/src/testUtils/util.ts +158 -22
package/lib/testUtils/util.d.ts
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
import { PublicKey, SecretKey } from "@chainsafe/blst";
|
|
2
2
|
import { Slot, phase0 } from "@lodestar/types";
|
|
3
|
-
import { BeaconStateAltair, CachedBeaconStateAllForks, CachedBeaconStateAltair, CachedBeaconStatePhase0 } from "../types.js";
|
|
3
|
+
import { BeaconStateAltair, BeaconStateElectra, CachedBeaconStateAllForks, CachedBeaconStateAltair, CachedBeaconStateElectra, CachedBeaconStatePhase0 } from "../types.js";
|
|
4
4
|
/**
|
|
5
5
|
* Number of validators in prater is 210000 as of May 2021
|
|
6
6
|
*/
|
|
@@ -35,10 +35,22 @@ export declare function generatePerfTestCachedStateAltair(opts?: {
|
|
|
35
35
|
goBackOneSlot: boolean;
|
|
36
36
|
vc?: number;
|
|
37
37
|
}): CachedBeaconStateAltair;
|
|
38
|
+
/**
|
|
39
|
+
* Warning: This function has side effects on the cached state
|
|
40
|
+
* The order in which the caches are populated is important and can cause stable tests to fail.
|
|
41
|
+
*/
|
|
42
|
+
export declare function generatePerfTestCachedStateElectra(opts?: {
|
|
43
|
+
goBackOneSlot: boolean;
|
|
44
|
+
vc?: number;
|
|
45
|
+
}): CachedBeaconStateElectra;
|
|
38
46
|
/**
|
|
39
47
|
* This is generated from Medalla state 756416
|
|
40
48
|
*/
|
|
41
49
|
export declare function generatePerformanceStateAltair(pubkeysArg?: Uint8Array[]): BeaconStateAltair;
|
|
50
|
+
/**
|
|
51
|
+
* This is generated from the same performance state as Altair, upgraded to Electra fields.
|
|
52
|
+
*/
|
|
53
|
+
export declare function generatePerformanceStateElectra(pubkeysArg?: Uint8Array[]): BeaconStateElectra;
|
|
42
54
|
/**
|
|
43
55
|
* This is generated from Medalla block 756417
|
|
44
56
|
*/
|
|
@@ -47,4 +59,14 @@ export declare function generateTestCachedBeaconStateOnlyValidators({ vc, slot }
|
|
|
47
59
|
vc: number;
|
|
48
60
|
slot: Slot;
|
|
49
61
|
}): CachedBeaconStateAllForks;
|
|
62
|
+
/**
|
|
63
|
+
* Release all cached perf states to free memory.
|
|
64
|
+
* Only call this before memory-intensive benchmarks that need to allocate
|
|
65
|
+
* very large states (e.g. loadState with 1.5M validators) where the
|
|
66
|
+
* accumulated singletons would cause OOM.
|
|
67
|
+
*
|
|
68
|
+
* WARNING: Do NOT call this in epoch/block benchmark afterAll blocks —
|
|
69
|
+
* destroying singletons mid-suite causes GC storms that corrupt measurements.
|
|
70
|
+
*/
|
|
71
|
+
export declare function clearPerfStateCache(): void;
|
|
50
72
|
//# sourceMappingURL=util.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"util.d.ts","sourceRoot":"","sources":["../../src/testUtils/util.ts"],"names":[],"mappings":"AAAA,OAAO,EAAC,SAAS,EAAE,SAAS,EAAC,MAAM,iBAAiB,CAAC;AAcrD,OAAO,EAAc,IAAI,EAAE,MAAM,EAAM,MAAM,iBAAiB,CAAC;AAW/D,OAAO,EACL,iBAAiB,
|
|
1
|
+
{"version":3,"file":"util.d.ts","sourceRoot":"","sources":["../../src/testUtils/util.ts"],"names":[],"mappings":"AAAA,OAAO,EAAC,SAAS,EAAE,SAAS,EAAC,MAAM,iBAAiB,CAAC;AAcrD,OAAO,EAAc,IAAI,EAAE,MAAM,EAAM,MAAM,iBAAiB,CAAC;AAW/D,OAAO,EACL,iBAAiB,EACjB,kBAAkB,EAElB,yBAAyB,EACzB,uBAAuB,EACvB,wBAAwB,EACxB,uBAAuB,EACxB,MAAM,aAAa,CAAC;AAgBrB;;GAEG;AACH,eAAO,MAAM,aAAa,SAAS,CAAC;AACpC,eAAO,MAAM,WAAW,MAAM,CAAC;AAE/B;;;;;GAKG;AACH,eAAO,MAAM,WAAW,sBAAgC,CAAC;AAKzD,eAAO,MAAM,cAAc,QAAQ,CAAC;AAEpC,wBAAgB,UAAU,CAAC,EAAE,SAAgB;;;;EAK5C;AAED,2FAA2F;AAC3F,wBAAgB,qBAAqB,CAAC,cAAc,EAAE,MAAM,GAAG,SAAS,CAEvE;AAED,2FAA2F;AAC3F,wBAAgB,2BAA2B,CAAC,cAAc,EAAE,MAAM,GAAG,SAAS,CAQ7E;AAaD,wBAAgB,iCAAiC,CAAC,IAAI,CAAC,EAAE;IAAC,aAAa,EAAE,OAAO,CAAA;CAAC,GAAG,uBAAuB,CA0F1G;AAED,wBAAgB,+BAA+B,CAAC,KAAK,EAAE,uBAAuB,GAAG,IAAI,CASpF;AAED;;;GAGG;AACH,wBAAgB,iCAAiC,CAAC,IAAI,CAAC,EAAE;IACvD,aAAa,EAAE,OAAO,CAAC;IACvB,EAAE,CAAC,EAAE,MAAM,CAAC;CACb,GAAG,uBAAuB,CAgC1B;AAED;;;GAGG;AACH,wBAAgB,kCAAkC,CAAC,IAAI,CAAC,EAAE;IACxD,aAAa,EAAE,OAAO,CAAC;IACvB,EAAE,CAAC,EAAE,MAAM,CAAC;CACb,GAAG,wBAAwB,CAoC3B;AAED;;GAEG;AACH,wBAAgB,8BAA8B,CAAC,UAAU,CAAC,EAAE,UAAU,EAAE,GAAG,iBAAiB,CAyC3F;AAED;;GAEG;AACH,wBAAgB,+BAA+B,CAAC,UAAU,CAAC,EAAE,UAAU,EAAE,GAAG,kBAAkB,CAgD7F;AAED;;GAEG;AACH,wBAAgB,8BAA8B,IAAI,MAAM,CAAC,iBAAiB,CAgBzE;AA2ED,wBAAgB,2CAA2C,CAAC,EAC1D,EAAE,EACF,IAAI,EACL,EAAE;IACD,EAAE,EAAE,MAAM,CAAC;IACX,IAAI,EAAE,IAAI,CAAC;CACZ,GAAG,yBAAyB,CAoD5B;AAED;;;;;;;;GAQG;AACH,wBAAgB,mBAAmB,IAAI,IAAI,CAW1C"}
|
package/lib/testUtils/util.js
CHANGED
|
@@ -16,6 +16,9 @@ let phase0SignedBlock = null;
|
|
|
16
16
|
let altairState = null;
|
|
17
17
|
let altairCachedState23637 = null;
|
|
18
18
|
let altairCachedState23638 = null;
|
|
19
|
+
let electraState = null;
|
|
20
|
+
let electraCachedState23637 = null;
|
|
21
|
+
let electraCachedState23638 = null;
|
|
19
22
|
/**
|
|
20
23
|
* Number of validators in prater is 210000 as of May 2021
|
|
21
24
|
*/
|
|
@@ -52,10 +55,10 @@ export function getSecretKeyFromIndexCached(validatorIndex) {
|
|
|
52
55
|
}
|
|
53
56
|
return sk;
|
|
54
57
|
}
|
|
55
|
-
function getPubkeyCaches({ pubkeysMod }) {
|
|
58
|
+
function getPubkeyCaches({ pubkeysMod }, vc = numValidators) {
|
|
56
59
|
// Manually sync pubkeys to prevent doing BLS opts 110_000 times
|
|
57
60
|
const pubkeyCache = createPubkeyCache();
|
|
58
|
-
for (let i = 0; i <
|
|
61
|
+
for (let i = 0; i < vc; i++) {
|
|
59
62
|
const pubkey = pubkeysMod[i % keypairsMod];
|
|
60
63
|
pubkeyCache.set(i, pubkey);
|
|
61
64
|
}
|
|
@@ -151,31 +154,83 @@ export function cachedStateAltairPopulateCaches(state) {
|
|
|
151
154
|
* The order in which the caches are populated is important and can cause stable tests to fail.
|
|
152
155
|
*/
|
|
153
156
|
export function generatePerfTestCachedStateAltair(opts) {
|
|
154
|
-
const
|
|
155
|
-
const {
|
|
157
|
+
const vc = opts?.vc ?? numValidators;
|
|
158
|
+
const { pubkeys, pubkeysMod, pubkeysModObj } = getPubkeys(vc);
|
|
159
|
+
const { pubkeyCache } = getPubkeyCaches({ pubkeys, pubkeysMod, pubkeysModObj }, vc);
|
|
156
160
|
const altairConfig = createChainForkConfig({ ALTAIR_FORK_EPOCH: 0 });
|
|
157
161
|
const origState = generatePerformanceStateAltair(pubkeys);
|
|
158
|
-
|
|
162
|
+
// For non-default vc, generate fresh without caching to avoid accumulating large states in memory
|
|
163
|
+
const isDefaultVc = vc === numValidators;
|
|
164
|
+
let cachedState23637 = isDefaultVc ? altairCachedState23637 : null;
|
|
165
|
+
if (!cachedState23637) {
|
|
159
166
|
const state = origState.clone();
|
|
160
167
|
state.slot -= 1;
|
|
161
|
-
|
|
168
|
+
cachedState23637 = createCachedBeaconState(state, {
|
|
162
169
|
config: createBeaconConfig(altairConfig, state.genesisValidatorsRoot),
|
|
163
170
|
pubkeyCache,
|
|
164
171
|
});
|
|
172
|
+
if (isDefaultVc)
|
|
173
|
+
altairCachedState23637 = cachedState23637;
|
|
165
174
|
}
|
|
166
|
-
|
|
167
|
-
|
|
168
|
-
|
|
175
|
+
let cachedState23638 = isDefaultVc ? altairCachedState23638 : null;
|
|
176
|
+
if (!cachedState23638) {
|
|
177
|
+
cachedState23638 = processSlots(cachedState23637, cachedState23637.slot + 1);
|
|
178
|
+
cachedState23638.slot += 1;
|
|
179
|
+
if (isDefaultVc)
|
|
180
|
+
altairCachedState23638 = cachedState23638;
|
|
169
181
|
}
|
|
170
|
-
const resultingState = opts?.goBackOneSlot ?
|
|
182
|
+
const resultingState = opts?.goBackOneSlot ? cachedState23637 : cachedState23638;
|
|
183
|
+
return resultingState.clone();
|
|
184
|
+
}
|
|
185
|
+
/**
|
|
186
|
+
* Warning: This function has side effects on the cached state
|
|
187
|
+
* The order in which the caches are populated is important and can cause stable tests to fail.
|
|
188
|
+
*/
|
|
189
|
+
export function generatePerfTestCachedStateElectra(opts) {
|
|
190
|
+
const vc = opts?.vc ?? numValidators;
|
|
191
|
+
const { pubkeys, pubkeysMod, pubkeysModObj } = getPubkeys(vc);
|
|
192
|
+
const { pubkeyCache } = getPubkeyCaches({ pubkeys, pubkeysMod, pubkeysModObj }, vc);
|
|
193
|
+
const electraConfig = createChainForkConfig({
|
|
194
|
+
ALTAIR_FORK_EPOCH: 0,
|
|
195
|
+
BELLATRIX_FORK_EPOCH: 0,
|
|
196
|
+
CAPELLA_FORK_EPOCH: 0,
|
|
197
|
+
DENEB_FORK_EPOCH: 0,
|
|
198
|
+
ELECTRA_FORK_EPOCH: 0,
|
|
199
|
+
});
|
|
200
|
+
const origState = generatePerformanceStateElectra(pubkeys);
|
|
201
|
+
// For non-default vc, generate fresh without caching to avoid accumulating large states in memory
|
|
202
|
+
const isDefaultVc = vc === numValidators;
|
|
203
|
+
let cachedState23637 = isDefaultVc ? electraCachedState23637 : null;
|
|
204
|
+
if (!cachedState23637) {
|
|
205
|
+
const state = origState.clone();
|
|
206
|
+
state.slot -= 1;
|
|
207
|
+
cachedState23637 = createCachedBeaconState(state, {
|
|
208
|
+
config: createBeaconConfig(electraConfig, state.genesisValidatorsRoot),
|
|
209
|
+
pubkeyCache,
|
|
210
|
+
});
|
|
211
|
+
if (isDefaultVc)
|
|
212
|
+
electraCachedState23637 = cachedState23637;
|
|
213
|
+
}
|
|
214
|
+
let cachedState23638 = isDefaultVc ? electraCachedState23638 : null;
|
|
215
|
+
if (!cachedState23638) {
|
|
216
|
+
cachedState23638 = processSlots(cachedState23637, cachedState23637.slot + 1);
|
|
217
|
+
cachedState23638.slot += 1;
|
|
218
|
+
if (isDefaultVc)
|
|
219
|
+
electraCachedState23638 = cachedState23638;
|
|
220
|
+
}
|
|
221
|
+
const resultingState = opts?.goBackOneSlot ? cachedState23637 : cachedState23638;
|
|
171
222
|
return resultingState.clone();
|
|
172
223
|
}
|
|
173
224
|
/**
|
|
174
225
|
* This is generated from Medalla state 756416
|
|
175
226
|
*/
|
|
176
227
|
export function generatePerformanceStateAltair(pubkeysArg) {
|
|
177
|
-
|
|
178
|
-
|
|
228
|
+
const pubkeys = pubkeysArg || getPubkeys().pubkeys;
|
|
229
|
+
const vc = pubkeys.length;
|
|
230
|
+
const isDefaultVc = vc === numValidators;
|
|
231
|
+
// Only use cached state for default vc to avoid accumulating large states in memory
|
|
232
|
+
let cached = isDefaultVc ? altairState : null;
|
|
233
|
+
if (!cached) {
|
|
179
234
|
const statePhase0 = buildPerformanceStatePhase0(pubkeys);
|
|
180
235
|
const state = statePhase0;
|
|
181
236
|
state.previousEpochParticipation = newFilledArray(pubkeys.length, 0b111);
|
|
@@ -185,19 +240,64 @@ export function generatePerformanceStateAltair(pubkeysArg) {
|
|
|
185
240
|
state.currentSyncCommittee = ssz.altair.SyncCommittee.defaultValue();
|
|
186
241
|
state.nextSyncCommittee = state.currentSyncCommittee;
|
|
187
242
|
// Now the state is fully populated to convert to ViewDU
|
|
188
|
-
|
|
243
|
+
cached = ssz.altair.BeaconState.toViewDU(state);
|
|
189
244
|
// Now set correct syncCommittees
|
|
190
245
|
const epoch = computeEpochAtSlot(state.slot);
|
|
191
|
-
const activeValidatorIndices = getActiveValidatorIndices(
|
|
192
|
-
const effectiveBalanceIncrements = getEffectiveBalanceIncrements(
|
|
193
|
-
const { syncCommittee } = getNextSyncCommittee(ForkSeq.altair,
|
|
246
|
+
const activeValidatorIndices = getActiveValidatorIndices(cached, epoch);
|
|
247
|
+
const effectiveBalanceIncrements = getEffectiveBalanceIncrements(cached);
|
|
248
|
+
const { syncCommittee } = getNextSyncCommittee(ForkSeq.altair, cached, activeValidatorIndices, effectiveBalanceIncrements);
|
|
194
249
|
state.currentSyncCommittee = syncCommittee;
|
|
195
250
|
state.nextSyncCommittee = syncCommittee;
|
|
196
|
-
|
|
251
|
+
cached = ssz.altair.BeaconState.toViewDU(state);
|
|
197
252
|
// cache roots
|
|
198
|
-
|
|
253
|
+
cached.hashTreeRoot();
|
|
254
|
+
if (isDefaultVc)
|
|
255
|
+
altairState = cached;
|
|
199
256
|
}
|
|
200
|
-
return
|
|
257
|
+
return cached.clone();
|
|
258
|
+
}
|
|
259
|
+
/**
|
|
260
|
+
* This is generated from the same performance state as Altair, upgraded to Electra fields.
|
|
261
|
+
*/
|
|
262
|
+
export function generatePerformanceStateElectra(pubkeysArg) {
|
|
263
|
+
const pubkeys = pubkeysArg || getPubkeys().pubkeys;
|
|
264
|
+
const vc = pubkeys.length;
|
|
265
|
+
const isDefaultVc = vc === numValidators;
|
|
266
|
+
// Only use cached state for default vc to avoid accumulating large states in memory
|
|
267
|
+
let cached = isDefaultVc ? electraState : null;
|
|
268
|
+
if (!cached) {
|
|
269
|
+
const electraConfig = createChainForkConfig({
|
|
270
|
+
ALTAIR_FORK_EPOCH: 0,
|
|
271
|
+
BELLATRIX_FORK_EPOCH: 0,
|
|
272
|
+
CAPELLA_FORK_EPOCH: 0,
|
|
273
|
+
DENEB_FORK_EPOCH: 0,
|
|
274
|
+
ELECTRA_FORK_EPOCH: 0,
|
|
275
|
+
});
|
|
276
|
+
const state = ssz.electra.BeaconState.defaultValue();
|
|
277
|
+
Object.assign(state, buildPerformanceStatePhase0(pubkeys));
|
|
278
|
+
state.fork.previousVersion = electraConfig.DENEB_FORK_VERSION;
|
|
279
|
+
state.fork.currentVersion = electraConfig.ELECTRA_FORK_VERSION;
|
|
280
|
+
state.fork.epoch = electraConfig.ELECTRA_FORK_EPOCH;
|
|
281
|
+
state.previousEpochParticipation = newFilledArray(pubkeys.length, 0b111);
|
|
282
|
+
state.currentEpochParticipation = state.previousEpochParticipation;
|
|
283
|
+
state.inactivityScores = Array.from({ length: pubkeys.length }, (_, i) => i % 2);
|
|
284
|
+
state.currentSyncCommittee = ssz.altair.SyncCommittee.defaultValue();
|
|
285
|
+
state.nextSyncCommittee = state.currentSyncCommittee;
|
|
286
|
+
state.latestExecutionPayloadHeader = ssz.electra.ExecutionPayloadHeader.defaultValue();
|
|
287
|
+
state.depositRequestsStartIndex = 2023n;
|
|
288
|
+
cached = ssz.electra.BeaconState.toViewDU(state);
|
|
289
|
+
const epoch = computeEpochAtSlot(state.slot);
|
|
290
|
+
const activeValidatorIndices = getActiveValidatorIndices(cached, epoch);
|
|
291
|
+
const effectiveBalanceIncrements = getEffectiveBalanceIncrements(cached);
|
|
292
|
+
const { syncCommittee } = getNextSyncCommittee(ForkSeq.electra, cached, activeValidatorIndices, effectiveBalanceIncrements);
|
|
293
|
+
state.currentSyncCommittee = syncCommittee;
|
|
294
|
+
state.nextSyncCommittee = syncCommittee;
|
|
295
|
+
cached = ssz.electra.BeaconState.toViewDU(state);
|
|
296
|
+
cached.hashTreeRoot();
|
|
297
|
+
if (isDefaultVc)
|
|
298
|
+
electraState = cached;
|
|
299
|
+
}
|
|
300
|
+
return cached.clone();
|
|
201
301
|
}
|
|
202
302
|
/**
|
|
203
303
|
* This is generated from Medalla block 756417
|
|
@@ -326,4 +426,25 @@ export function generateTestCachedBeaconStateOnlyValidators({ vc, slot, }) {
|
|
|
326
426
|
pubkeyCache,
|
|
327
427
|
}, { skipSyncPubkeys: true });
|
|
328
428
|
}
|
|
429
|
+
/**
|
|
430
|
+
* Release all cached perf states to free memory.
|
|
431
|
+
* Only call this before memory-intensive benchmarks that need to allocate
|
|
432
|
+
* very large states (e.g. loadState with 1.5M validators) where the
|
|
433
|
+
* accumulated singletons would cause OOM.
|
|
434
|
+
*
|
|
435
|
+
* WARNING: Do NOT call this in epoch/block benchmark afterAll blocks —
|
|
436
|
+
* destroying singletons mid-suite causes GC storms that corrupt measurements.
|
|
437
|
+
*/
|
|
438
|
+
export function clearPerfStateCache() {
|
|
439
|
+
phase0State = null;
|
|
440
|
+
phase0CachedState23637 = null;
|
|
441
|
+
phase0CachedState23638 = null;
|
|
442
|
+
phase0SignedBlock = null;
|
|
443
|
+
altairState = null;
|
|
444
|
+
altairCachedState23637 = null;
|
|
445
|
+
altairCachedState23638 = null;
|
|
446
|
+
electraState = null;
|
|
447
|
+
electraCachedState23637 = null;
|
|
448
|
+
electraCachedState23638 = null;
|
|
449
|
+
}
|
|
329
450
|
//# sourceMappingURL=util.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"util.js","sourceRoot":"","sources":["../../src/testUtils/util.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"util.js","sourceRoot":"","sources":["../../src/testUtils/util.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.42.0-dev.
|
|
14
|
+
"version": "1.42.0-dev.b2b4af3e21",
|
|
15
15
|
"type": "module",
|
|
16
16
|
"exports": {
|
|
17
17
|
".": {
|
|
@@ -67,14 +67,14 @@
|
|
|
67
67
|
"@chainsafe/pubkey-index-map": "^3.0.0",
|
|
68
68
|
"@chainsafe/ssz": "^1.2.2",
|
|
69
69
|
"@chainsafe/swap-or-not-shuffle": "^1.2.1",
|
|
70
|
-
"@lodestar/config": "^1.42.0-dev.
|
|
71
|
-
"@lodestar/params": "^1.42.0-dev.
|
|
72
|
-
"@lodestar/types": "^1.42.0-dev.
|
|
73
|
-
"@lodestar/utils": "^1.42.0-dev.
|
|
70
|
+
"@lodestar/config": "^1.42.0-dev.b2b4af3e21",
|
|
71
|
+
"@lodestar/params": "^1.42.0-dev.b2b4af3e21",
|
|
72
|
+
"@lodestar/types": "^1.42.0-dev.b2b4af3e21",
|
|
73
|
+
"@lodestar/utils": "^1.42.0-dev.b2b4af3e21",
|
|
74
74
|
"@vekexasia/bigint-buffer2": "^1.1.1"
|
|
75
75
|
},
|
|
76
76
|
"devDependencies": {
|
|
77
|
-
"@lodestar/api": "^1.42.0-dev.
|
|
77
|
+
"@lodestar/api": "^1.42.0-dev.b2b4af3e21"
|
|
78
78
|
},
|
|
79
79
|
"keywords": [
|
|
80
80
|
"ethereum",
|
|
@@ -82,5 +82,5 @@
|
|
|
82
82
|
"beacon",
|
|
83
83
|
"blockchain"
|
|
84
84
|
],
|
|
85
|
-
"gitHead": "
|
|
85
|
+
"gitHead": "a5bde2c055ddcd99b7111796759cc7b884b9468c"
|
|
86
86
|
}
|
package/src/testUtils/util.ts
CHANGED
|
@@ -25,9 +25,11 @@ import {
|
|
|
25
25
|
} from "../index.js";
|
|
26
26
|
import {
|
|
27
27
|
BeaconStateAltair,
|
|
28
|
+
BeaconStateElectra,
|
|
28
29
|
BeaconStatePhase0,
|
|
29
30
|
CachedBeaconStateAllForks,
|
|
30
31
|
CachedBeaconStateAltair,
|
|
32
|
+
CachedBeaconStateElectra,
|
|
31
33
|
CachedBeaconStatePhase0,
|
|
32
34
|
} from "../types.js";
|
|
33
35
|
import {getNextSyncCommittee} from "../util/syncCommittee.js";
|
|
@@ -41,6 +43,9 @@ let phase0SignedBlock: phase0.SignedBeaconBlock | null = null;
|
|
|
41
43
|
let altairState: BeaconStateAltair | null = null;
|
|
42
44
|
let altairCachedState23637: CachedBeaconStateAltair | null = null;
|
|
43
45
|
let altairCachedState23638: CachedBeaconStateAltair | null = null;
|
|
46
|
+
let electraState: BeaconStateElectra | null = null;
|
|
47
|
+
let electraCachedState23637: CachedBeaconStateElectra | null = null;
|
|
48
|
+
let electraCachedState23638: CachedBeaconStateElectra | null = null;
|
|
44
49
|
|
|
45
50
|
/**
|
|
46
51
|
* Number of validators in prater is 210000 as of May 2021
|
|
@@ -84,10 +89,10 @@ export function getSecretKeyFromIndexCached(validatorIndex: number): SecretKey {
|
|
|
84
89
|
return sk;
|
|
85
90
|
}
|
|
86
91
|
|
|
87
|
-
function getPubkeyCaches({pubkeysMod}: ReturnType<typeof getPubkeys
|
|
92
|
+
function getPubkeyCaches({pubkeysMod}: ReturnType<typeof getPubkeys>, vc = numValidators) {
|
|
88
93
|
// Manually sync pubkeys to prevent doing BLS opts 110_000 times
|
|
89
94
|
const pubkeyCache = createPubkeyCache();
|
|
90
|
-
for (let i = 0; i <
|
|
95
|
+
for (let i = 0; i < vc; i++) {
|
|
91
96
|
const pubkey = pubkeysMod[i % keypairsMod];
|
|
92
97
|
pubkeyCache.set(i, pubkey);
|
|
93
98
|
}
|
|
@@ -206,29 +211,80 @@ export function generatePerfTestCachedStateAltair(opts?: {
|
|
|
206
211
|
goBackOneSlot: boolean;
|
|
207
212
|
vc?: number;
|
|
208
213
|
}): CachedBeaconStateAltair {
|
|
209
|
-
const
|
|
210
|
-
const {
|
|
214
|
+
const vc = opts?.vc ?? numValidators;
|
|
215
|
+
const {pubkeys, pubkeysMod, pubkeysModObj} = getPubkeys(vc);
|
|
216
|
+
const {pubkeyCache} = getPubkeyCaches({pubkeys, pubkeysMod, pubkeysModObj}, vc);
|
|
211
217
|
|
|
212
218
|
const altairConfig = createChainForkConfig({ALTAIR_FORK_EPOCH: 0});
|
|
213
219
|
|
|
214
220
|
const origState = generatePerformanceStateAltair(pubkeys);
|
|
215
221
|
|
|
216
|
-
|
|
222
|
+
// For non-default vc, generate fresh without caching to avoid accumulating large states in memory
|
|
223
|
+
const isDefaultVc = vc === numValidators;
|
|
224
|
+
let cachedState23637 = isDefaultVc ? altairCachedState23637 : null;
|
|
225
|
+
if (!cachedState23637) {
|
|
217
226
|
const state = origState.clone();
|
|
218
227
|
state.slot -= 1;
|
|
219
|
-
|
|
228
|
+
cachedState23637 = createCachedBeaconState(state, {
|
|
220
229
|
config: createBeaconConfig(altairConfig, state.genesisValidatorsRoot),
|
|
221
230
|
pubkeyCache,
|
|
222
231
|
});
|
|
232
|
+
if (isDefaultVc) altairCachedState23637 = cachedState23637;
|
|
233
|
+
}
|
|
234
|
+
|
|
235
|
+
let cachedState23638 = isDefaultVc ? altairCachedState23638 : null;
|
|
236
|
+
if (!cachedState23638) {
|
|
237
|
+
cachedState23638 = processSlots(cachedState23637, cachedState23637.slot + 1) as CachedBeaconStateAltair;
|
|
238
|
+
cachedState23638.slot += 1;
|
|
239
|
+
if (isDefaultVc) altairCachedState23638 = cachedState23638;
|
|
240
|
+
}
|
|
241
|
+
|
|
242
|
+
const resultingState = opts?.goBackOneSlot ? cachedState23637 : cachedState23638;
|
|
243
|
+
|
|
244
|
+
return resultingState.clone();
|
|
245
|
+
}
|
|
246
|
+
|
|
247
|
+
/**
|
|
248
|
+
* Warning: This function has side effects on the cached state
|
|
249
|
+
* The order in which the caches are populated is important and can cause stable tests to fail.
|
|
250
|
+
*/
|
|
251
|
+
export function generatePerfTestCachedStateElectra(opts?: {
|
|
252
|
+
goBackOneSlot: boolean;
|
|
253
|
+
vc?: number;
|
|
254
|
+
}): CachedBeaconStateElectra {
|
|
255
|
+
const vc = opts?.vc ?? numValidators;
|
|
256
|
+
const {pubkeys, pubkeysMod, pubkeysModObj} = getPubkeys(vc);
|
|
257
|
+
const {pubkeyCache} = getPubkeyCaches({pubkeys, pubkeysMod, pubkeysModObj}, vc);
|
|
258
|
+
|
|
259
|
+
const electraConfig = createChainForkConfig({
|
|
260
|
+
ALTAIR_FORK_EPOCH: 0,
|
|
261
|
+
BELLATRIX_FORK_EPOCH: 0,
|
|
262
|
+
CAPELLA_FORK_EPOCH: 0,
|
|
263
|
+
DENEB_FORK_EPOCH: 0,
|
|
264
|
+
ELECTRA_FORK_EPOCH: 0,
|
|
265
|
+
});
|
|
266
|
+
|
|
267
|
+
const origState = generatePerformanceStateElectra(pubkeys);
|
|
268
|
+
|
|
269
|
+
// For non-default vc, generate fresh without caching to avoid accumulating large states in memory
|
|
270
|
+
const isDefaultVc = vc === numValidators;
|
|
271
|
+
let cachedState23637 = isDefaultVc ? electraCachedState23637 : null;
|
|
272
|
+
if (!cachedState23637) {
|
|
273
|
+
const state = origState.clone();
|
|
274
|
+
state.slot -= 1;
|
|
275
|
+
cachedState23637 = createCachedBeaconState(state, {
|
|
276
|
+
config: createBeaconConfig(electraConfig, state.genesisValidatorsRoot),
|
|
277
|
+
pubkeyCache,
|
|
278
|
+
});
|
|
279
|
+
if (isDefaultVc) electraCachedState23637 = cachedState23637;
|
|
223
280
|
}
|
|
224
|
-
|
|
225
|
-
|
|
226
|
-
|
|
227
|
-
|
|
228
|
-
)
|
|
229
|
-
altairCachedState23638.slot += 1;
|
|
281
|
+
let cachedState23638 = isDefaultVc ? electraCachedState23638 : null;
|
|
282
|
+
if (!cachedState23638) {
|
|
283
|
+
cachedState23638 = processSlots(cachedState23637, cachedState23637.slot + 1) as CachedBeaconStateElectra;
|
|
284
|
+
cachedState23638.slot += 1;
|
|
285
|
+
if (isDefaultVc) electraCachedState23638 = cachedState23638;
|
|
230
286
|
}
|
|
231
|
-
const resultingState = opts?.goBackOneSlot ?
|
|
287
|
+
const resultingState = opts?.goBackOneSlot ? cachedState23637 : cachedState23638;
|
|
232
288
|
|
|
233
289
|
return resultingState.clone();
|
|
234
290
|
}
|
|
@@ -237,8 +293,12 @@ export function generatePerfTestCachedStateAltair(opts?: {
|
|
|
237
293
|
* This is generated from Medalla state 756416
|
|
238
294
|
*/
|
|
239
295
|
export function generatePerformanceStateAltair(pubkeysArg?: Uint8Array[]): BeaconStateAltair {
|
|
240
|
-
|
|
241
|
-
|
|
296
|
+
const pubkeys = pubkeysArg || getPubkeys().pubkeys;
|
|
297
|
+
const vc = pubkeys.length;
|
|
298
|
+
const isDefaultVc = vc === numValidators;
|
|
299
|
+
// Only use cached state for default vc to avoid accumulating large states in memory
|
|
300
|
+
let cached = isDefaultVc ? altairState : null;
|
|
301
|
+
if (!cached) {
|
|
242
302
|
const statePhase0 = buildPerformanceStatePhase0(pubkeys);
|
|
243
303
|
const state = statePhase0 as BeaconState as BeaconState<ForkName.altair>;
|
|
244
304
|
|
|
@@ -251,27 +311,81 @@ export function generatePerformanceStateAltair(pubkeysArg?: Uint8Array[]): Beaco
|
|
|
251
311
|
state.nextSyncCommittee = state.currentSyncCommittee;
|
|
252
312
|
|
|
253
313
|
// Now the state is fully populated to convert to ViewDU
|
|
254
|
-
|
|
314
|
+
cached = ssz.altair.BeaconState.toViewDU(state);
|
|
255
315
|
|
|
256
316
|
// Now set correct syncCommittees
|
|
257
317
|
const epoch = computeEpochAtSlot(state.slot);
|
|
258
|
-
const activeValidatorIndices = getActiveValidatorIndices(
|
|
318
|
+
const activeValidatorIndices = getActiveValidatorIndices(cached, epoch);
|
|
259
319
|
|
|
260
|
-
const effectiveBalanceIncrements = getEffectiveBalanceIncrements(
|
|
320
|
+
const effectiveBalanceIncrements = getEffectiveBalanceIncrements(cached);
|
|
261
321
|
const {syncCommittee} = getNextSyncCommittee(
|
|
262
322
|
ForkSeq.altair,
|
|
263
|
-
|
|
323
|
+
cached,
|
|
264
324
|
activeValidatorIndices,
|
|
265
325
|
effectiveBalanceIncrements
|
|
266
326
|
);
|
|
267
327
|
state.currentSyncCommittee = syncCommittee;
|
|
268
328
|
state.nextSyncCommittee = syncCommittee;
|
|
269
329
|
|
|
270
|
-
|
|
330
|
+
cached = ssz.altair.BeaconState.toViewDU(state);
|
|
271
331
|
// cache roots
|
|
272
|
-
|
|
332
|
+
cached.hashTreeRoot();
|
|
333
|
+
if (isDefaultVc) altairState = cached;
|
|
334
|
+
}
|
|
335
|
+
return cached.clone();
|
|
336
|
+
}
|
|
337
|
+
|
|
338
|
+
/**
|
|
339
|
+
* This is generated from the same performance state as Altair, upgraded to Electra fields.
|
|
340
|
+
*/
|
|
341
|
+
export function generatePerformanceStateElectra(pubkeysArg?: Uint8Array[]): BeaconStateElectra {
|
|
342
|
+
const pubkeys = pubkeysArg || getPubkeys().pubkeys;
|
|
343
|
+
const vc = pubkeys.length;
|
|
344
|
+
const isDefaultVc = vc === numValidators;
|
|
345
|
+
// Only use cached state for default vc to avoid accumulating large states in memory
|
|
346
|
+
let cached = isDefaultVc ? electraState : null;
|
|
347
|
+
if (!cached) {
|
|
348
|
+
const electraConfig = createChainForkConfig({
|
|
349
|
+
ALTAIR_FORK_EPOCH: 0,
|
|
350
|
+
BELLATRIX_FORK_EPOCH: 0,
|
|
351
|
+
CAPELLA_FORK_EPOCH: 0,
|
|
352
|
+
DENEB_FORK_EPOCH: 0,
|
|
353
|
+
ELECTRA_FORK_EPOCH: 0,
|
|
354
|
+
});
|
|
355
|
+
const state = ssz.electra.BeaconState.defaultValue();
|
|
356
|
+
|
|
357
|
+
Object.assign(state, buildPerformanceStatePhase0(pubkeys));
|
|
358
|
+
|
|
359
|
+
state.fork.previousVersion = electraConfig.DENEB_FORK_VERSION;
|
|
360
|
+
state.fork.currentVersion = electraConfig.ELECTRA_FORK_VERSION;
|
|
361
|
+
state.fork.epoch = electraConfig.ELECTRA_FORK_EPOCH;
|
|
362
|
+
state.previousEpochParticipation = newFilledArray(pubkeys.length, 0b111);
|
|
363
|
+
state.currentEpochParticipation = state.previousEpochParticipation;
|
|
364
|
+
state.inactivityScores = Array.from({length: pubkeys.length}, (_, i) => i % 2);
|
|
365
|
+
state.currentSyncCommittee = ssz.altair.SyncCommittee.defaultValue();
|
|
366
|
+
state.nextSyncCommittee = state.currentSyncCommittee;
|
|
367
|
+
state.latestExecutionPayloadHeader = ssz.electra.ExecutionPayloadHeader.defaultValue();
|
|
368
|
+
state.depositRequestsStartIndex = 2023n;
|
|
369
|
+
|
|
370
|
+
cached = ssz.electra.BeaconState.toViewDU(state);
|
|
371
|
+
|
|
372
|
+
const epoch = computeEpochAtSlot(state.slot);
|
|
373
|
+
const activeValidatorIndices = getActiveValidatorIndices(cached, epoch);
|
|
374
|
+
const effectiveBalanceIncrements = getEffectiveBalanceIncrements(cached);
|
|
375
|
+
const {syncCommittee} = getNextSyncCommittee(
|
|
376
|
+
ForkSeq.electra,
|
|
377
|
+
cached,
|
|
378
|
+
activeValidatorIndices,
|
|
379
|
+
effectiveBalanceIncrements
|
|
380
|
+
);
|
|
381
|
+
state.currentSyncCommittee = syncCommittee;
|
|
382
|
+
state.nextSyncCommittee = syncCommittee;
|
|
383
|
+
|
|
384
|
+
cached = ssz.electra.BeaconState.toViewDU(state);
|
|
385
|
+
cached.hashTreeRoot();
|
|
386
|
+
if (isDefaultVc) electraState = cached;
|
|
273
387
|
}
|
|
274
|
-
return
|
|
388
|
+
return cached.clone();
|
|
275
389
|
}
|
|
276
390
|
|
|
277
391
|
/**
|
|
@@ -427,3 +541,25 @@ export function generateTestCachedBeaconStateOnlyValidators({
|
|
|
427
541
|
{skipSyncPubkeys: true}
|
|
428
542
|
);
|
|
429
543
|
}
|
|
544
|
+
|
|
545
|
+
/**
|
|
546
|
+
* Release all cached perf states to free memory.
|
|
547
|
+
* Only call this before memory-intensive benchmarks that need to allocate
|
|
548
|
+
* very large states (e.g. loadState with 1.5M validators) where the
|
|
549
|
+
* accumulated singletons would cause OOM.
|
|
550
|
+
*
|
|
551
|
+
* WARNING: Do NOT call this in epoch/block benchmark afterAll blocks —
|
|
552
|
+
* destroying singletons mid-suite causes GC storms that corrupt measurements.
|
|
553
|
+
*/
|
|
554
|
+
export function clearPerfStateCache(): void {
|
|
555
|
+
phase0State = null;
|
|
556
|
+
phase0CachedState23637 = null;
|
|
557
|
+
phase0CachedState23638 = null;
|
|
558
|
+
phase0SignedBlock = null;
|
|
559
|
+
altairState = null;
|
|
560
|
+
altairCachedState23637 = null;
|
|
561
|
+
altairCachedState23638 = null;
|
|
562
|
+
electraState = null;
|
|
563
|
+
electraCachedState23637 = null;
|
|
564
|
+
electraCachedState23638 = null;
|
|
565
|
+
}
|