@lodestar/state-transition 1.27.0-dev.85b13c1bcb → 1.27.0-dev.92d77e3443
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/processExecutionPayload.js +3 -3
- package/lib/block/processExecutionPayload.js.map +1 -1
- package/lib/cache/types.d.ts +2 -2
- package/lib/signatureSets/proposer.js +1 -1
- package/lib/signatureSets/proposer.js.map +1 -1
- package/lib/util/blindedBlock.d.ts +3 -3
- package/lib/util/blindedBlock.js +2 -2
- package/lib/util/blindedBlock.js.map +1 -1
- package/lib/util/execution.d.ts +2 -2
- package/lib/util/execution.js.map +1 -1
- package/lib/util/seed.d.ts +1 -22
- package/lib/util/seed.js +4 -217
- package/lib/util/seed.js.map +1 -1
- package/package.json +7 -7
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
import { byteArrayEquals } from "@chainsafe/ssz";
|
|
2
|
-
import { ForkName, ForkSeq,
|
|
2
|
+
import { ForkName, ForkSeq, isForkBlobs } from "@lodestar/params";
|
|
3
3
|
import { isExecutionPayload } from "@lodestar/types";
|
|
4
4
|
import { toHex, toRootHex } from "@lodestar/utils";
|
|
5
5
|
import { executionPayloadToPayloadHeader, getFullOrBlindedPayloadFromBody, isMergeTransitionComplete, } from "../util/execution.js";
|
|
@@ -30,7 +30,7 @@ export function processExecutionPayload(fork, state, body, externalData) {
|
|
|
30
30
|
if (payload.timestamp !== state.genesisTime + state.slot * state.config.SECONDS_PER_SLOT) {
|
|
31
31
|
throw Error(`Invalid timestamp ${payload.timestamp} genesisTime=${state.genesisTime} slot=${state.slot}`);
|
|
32
32
|
}
|
|
33
|
-
if (
|
|
33
|
+
if (isForkBlobs(forkName)) {
|
|
34
34
|
const maxBlobsPerBlock = state.config.getMaxBlobsPerBlock(forkName);
|
|
35
35
|
const blobKzgCommitmentsLen = body.blobKzgCommitments?.length ?? 0;
|
|
36
36
|
if (blobKzgCommitmentsLen > maxBlobsPerBlock) {
|
|
@@ -58,7 +58,7 @@ export function processExecutionPayload(fork, state, body, externalData) {
|
|
|
58
58
|
// TODO Deneb: Types are not happy by default. Since it's a generic type going through ViewDU
|
|
59
59
|
// transformation then into all forks compatible probably some weird intersection incompatibility happens
|
|
60
60
|
state.latestExecutionPayloadHeader = state.config
|
|
61
|
-
.
|
|
61
|
+
.getExecutionForkTypes(state.slot)
|
|
62
62
|
.ExecutionPayloadHeader.toViewDU(payloadHeader);
|
|
63
63
|
}
|
|
64
64
|
//# sourceMappingURL=processExecutionPayload.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"processExecutionPayload.js","sourceRoot":"","sources":["../../src/block/processExecutionPayload.ts"],"names":[],"mappings":"AAAA,OAAO,EAAC,eAAe,EAAC,MAAM,gBAAgB,CAAC;AAC/C,OAAO,EAAC,QAAQ,EAAE,OAAO,EAAE,
|
|
1
|
+
{"version":3,"file":"processExecutionPayload.js","sourceRoot":"","sources":["../../src/block/processExecutionPayload.ts"],"names":[],"mappings":"AAAA,OAAO,EAAC,eAAe,EAAC,MAAM,gBAAgB,CAAC;AAC/C,OAAO,EAAC,QAAQ,EAAE,OAAO,EAAE,WAAW,EAAC,MAAM,kBAAkB,CAAC;AAChE,OAAO,EAAiD,kBAAkB,EAAC,MAAM,iBAAiB,CAAC;AACnG,OAAO,EAAC,KAAK,EAAE,SAAS,EAAC,MAAM,iBAAiB,CAAC;AAEjD,OAAO,EACL,+BAA+B,EAC/B,+BAA+B,EAC/B,yBAAyB,GAC1B,MAAM,sBAAsB,CAAC;AAC9B,OAAO,EAAC,YAAY,EAAC,MAAM,kBAAkB,CAAC;AAC9C,OAAO,EAAoB,sBAAsB,EAAC,MAAM,mBAAmB,CAAC;AAE5E,MAAM,UAAU,uBAAuB,CACrC,IAAa,EACb,KAA4D,EAC5D,IAA8C,EAC9C,YAA4D;IAE5D,MAAM,OAAO,GAAG,+BAA+B,CAAC,IAAI,CAAC,CAAC;IACtD,MAAM,QAAQ,GAAG,QAAQ,CAAC,OAAO,CAAC,IAAI,CAAa,CAAC,CAAC;IACrD,sFAAsF;IACtF,wDAAwD;IACxD,IAAI,yBAAyB,CAAC,KAAK,CAAC,EAAE,CAAC;QACrC,MAAM,EAAC,4BAA4B,EAAC,GAAG,KAAK,CAAC;QAC7C,IAAI,CAAC,eAAe,CAAC,OAAO,CAAC,UAAU,EAAE,4BAA4B,CAAC,SAAS,CAAC,EAAE,CAAC;YACjF,MAAM,KAAK,CACT,wCAAwC,SAAS,CAAC,OAAO,CAAC,UAAU,CAAC,qBAAqB,SAAS,CACjG,4BAA4B,CAAC,SAAS,CACvC,EAAE,CACJ,CAAC;QACJ,CAAC;IACH,CAAC;IAED,gBAAgB;IAChB,MAAM,cAAc,GAAG,YAAY,CAAC,KAAK,EAAE,KAAK,CAAC,QAAQ,CAAC,KAAK,CAAC,CAAC;IACjE,IAAI,CAAC,eAAe,CAAC,OAAO,CAAC,UAAU,EAAE,cAAc,CAAC,EAAE,CAAC;QACzD,MAAM,KAAK,CAAC,oCAAoC,KAAK,CAAC,OAAO,CAAC,UAAU,CAAC,aAAa,KAAK,CAAC,cAAc,CAAC,EAAE,CAAC,CAAC;IACjH,CAAC;IAED,mBAAmB;IACnB,EAAE;IACF,yCAAyC;IACzC,2EAA2E;IAC3E,8CAA8C;IAC9C,+EAA+E;IAC/E,IAAI,OAAO,CAAC,SAAS,KAAK,KAAK,CAAC,WAAW,GAAG,KAAK,CAAC,IAAI,GAAG,KAAK,CAAC,MAAM,CAAC,gBAAgB,EAAE,CAAC;QACzF,MAAM,KAAK,CAAC,qBAAqB,OAAO,CAAC,SAAS,gBAAgB,KAAK,CAAC,WAAW,SAAS,KAAK,CAAC,IAAI,EAAE,CAAC,CAAC;IAC5G,CAAC;IAED,IAAI,WAAW,CAAC,QAAQ,CAAC,EAAE,CAAC;QAC1B,MAAM,gBAAgB,GAAG,KAAK,CAAC,MAAM,CAAC,mBAAmB,CAAC,QAAQ,CAAC,CAAC;QACpE,MAAM,qBAAqB,GAAI,IAA8B,CAAC,kBAAkB,EAAE,MAAM,IAAI,CAAC,CAAC;QAC9F,IAAI,qBAAqB,GAAG,gBAAgB,EAAE,CAAC;YAC7C,MAAM,KAAK,CAAC,uCAAuC,gBAAgB,EAAE,CAAC,CAAC;QACzE,CAAC;IACH,CAAC;IAED,wCAAwC;IACxC,EAAE;IACF,6GAA6G;IAC7G,gHAAgH;IAChH,4BAA4B;IAC5B,EAAE;IACF,mEAAmE;IACnE,IAAI,kBAAkB,CAAC,OAAO,CAAC,EAAE,CAAC;QAChC,QAAQ,YAAY,CAAC,sBAAsB,EAAE,CAAC;YAC5C,KAAK,sBAAsB,CAAC,QAAQ;gBAClC,MAAM,KAAK,CAAC,iCAAiC,CAAC,CAAC;YACjD,KAAK,sBAAsB,CAAC,OAAO;gBACjC,MAAM,KAAK,CAAC,2BAA2B,CAAC,CAAC;YAC3C,KAAK,sBAAsB,CAAC,KAAK;gBAC/B,MAAM,CAAC,KAAK;QAChB,CAAC;IACH,CAAC;IAED,MAAM,aAAa,GAAG,kBAAkB,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,+BAA+B,CAAC,IAAI,EAAE,OAAO,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC;IAE7G,6FAA6F;IAC7F,yGAAyG;IACzG,KAAK,CAAC,4BAA4B,GAAG,KAAK,CAAC,MAAM;SAC9C,qBAAqB,CAAC,KAAK,CAAC,IAAI,CAAC;SACjC,sBAAsB,CAAC,QAAQ,CAAC,aAAa,CAA8C,CAAC;AACjG,CAAC"}
|
package/lib/cache/types.d.ts
CHANGED
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
import { CompositeViewDU } from "@chainsafe/ssz";
|
|
2
|
-
import { ForkAll,
|
|
2
|
+
import { ForkAll, ForkExecution, ForkName } from "@lodestar/params";
|
|
3
3
|
import { Epoch, RootHex, SSZTypesFor } from "@lodestar/types";
|
|
4
4
|
import { EpochShuffling } from "../util/epochShuffling.js";
|
|
5
5
|
export type BeaconStatePhase0 = CompositeViewDU<SSZTypesFor<ForkName.phase0, "BeaconState">>;
|
|
@@ -9,6 +9,6 @@ export type BeaconStateCapella = CompositeViewDU<SSZTypesFor<ForkName.capella, "
|
|
|
9
9
|
export type BeaconStateDeneb = CompositeViewDU<SSZTypesFor<ForkName.deneb, "BeaconState">>;
|
|
10
10
|
export type BeaconStateElectra = CompositeViewDU<SSZTypesFor<ForkName.electra, "BeaconState">>;
|
|
11
11
|
export type BeaconStateAllForks = CompositeViewDU<SSZTypesFor<ForkAll, "BeaconState">>;
|
|
12
|
-
export type BeaconStateExecutions = CompositeViewDU<SSZTypesFor<
|
|
12
|
+
export type BeaconStateExecutions = CompositeViewDU<SSZTypesFor<ForkExecution, "BeaconState">>;
|
|
13
13
|
export type ShufflingGetter = (shufflingEpoch: Epoch, dependentRoot: RootHex) => EpochShuffling | null;
|
|
14
14
|
//# sourceMappingURL=types.d.ts.map
|
|
@@ -10,7 +10,7 @@ export function getBlockProposerSignatureSet(state, signedBlock) {
|
|
|
10
10
|
const { config, epochCtx } = state;
|
|
11
11
|
const domain = config.getDomain(state.slot, DOMAIN_BEACON_PROPOSER, signedBlock.message.slot);
|
|
12
12
|
const blockType = isBlindedBeaconBlock(signedBlock.message)
|
|
13
|
-
? config.
|
|
13
|
+
? config.getExecutionForkTypes(signedBlock.message.slot).BlindedBeaconBlock
|
|
14
14
|
: config.getForkTypes(signedBlock.message.slot).BeaconBlock;
|
|
15
15
|
return {
|
|
16
16
|
type: SignatureSetType.single,
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"proposer.js","sourceRoot":"","sources":["../../src/signatureSets/proposer.ts"],"names":[],"mappings":"AAAA,OAAO,EAAC,sBAAsB,EAAC,MAAM,kBAAkB,CAAC;AACxD,OAAO,EAA8C,oBAAoB,EAAU,GAAG,EAAC,MAAM,iBAAiB,CAAC;AAE/G,OAAO,EAAC,kBAAkB,EAAC,MAAM,kBAAkB,CAAC;AACpD,OAAO,EAAgB,gBAAgB,EAAE,kBAAkB,EAAC,MAAM,0BAA0B,CAAC;AAE7F,MAAM,UAAU,uBAAuB,CACrC,KAAgC,EAChC,WAAyD;IAEzD,MAAM,YAAY,GAAG,4BAA4B,CAAC,KAAK,EAAE,WAAW,CAAC,CAAC;IACtE,OAAO,kBAAkB,CAAC,YAAY,CAAC,CAAC;AAC1C,CAAC;AAED,MAAM,UAAU,4BAA4B,CAC1C,KAAgC,EAChC,WAAyD;IAEzD,MAAM,EAAC,MAAM,EAAE,QAAQ,EAAC,GAAG,KAAK,CAAC;IACjC,MAAM,MAAM,GAAG,MAAM,CAAC,SAAS,CAAC,KAAK,CAAC,IAAI,EAAE,sBAAsB,EAAE,WAAW,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC;IAE9F,MAAM,SAAS,GAAG,oBAAoB,CAAC,WAAW,CAAC,OAAO,CAAC;QACzD,CAAC,CAAC,MAAM,CAAC,
|
|
1
|
+
{"version":3,"file":"proposer.js","sourceRoot":"","sources":["../../src/signatureSets/proposer.ts"],"names":[],"mappings":"AAAA,OAAO,EAAC,sBAAsB,EAAC,MAAM,kBAAkB,CAAC;AACxD,OAAO,EAA8C,oBAAoB,EAAU,GAAG,EAAC,MAAM,iBAAiB,CAAC;AAE/G,OAAO,EAAC,kBAAkB,EAAC,MAAM,kBAAkB,CAAC;AACpD,OAAO,EAAgB,gBAAgB,EAAE,kBAAkB,EAAC,MAAM,0BAA0B,CAAC;AAE7F,MAAM,UAAU,uBAAuB,CACrC,KAAgC,EAChC,WAAyD;IAEzD,MAAM,YAAY,GAAG,4BAA4B,CAAC,KAAK,EAAE,WAAW,CAAC,CAAC;IACtE,OAAO,kBAAkB,CAAC,YAAY,CAAC,CAAC;AAC1C,CAAC;AAED,MAAM,UAAU,4BAA4B,CAC1C,KAAgC,EAChC,WAAyD;IAEzD,MAAM,EAAC,MAAM,EAAE,QAAQ,EAAC,GAAG,KAAK,CAAC;IACjC,MAAM,MAAM,GAAG,MAAM,CAAC,SAAS,CAAC,KAAK,CAAC,IAAI,EAAE,sBAAsB,EAAE,WAAW,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC;IAE9F,MAAM,SAAS,GAAG,oBAAoB,CAAC,WAAW,CAAC,OAAO,CAAC;QACzD,CAAC,CAAC,MAAM,CAAC,qBAAqB,CAAC,WAAW,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC,kBAAkB;QAC3E,CAAC,CAAC,MAAM,CAAC,YAAY,CAAC,WAAW,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC,WAAW,CAAC;IAE9D,OAAO;QACL,IAAI,EAAE,gBAAgB,CAAC,MAAM;QAC7B,MAAM,EAAE,QAAQ,CAAC,YAAY,CAAC,WAAW,CAAC,OAAO,CAAC,aAAa,CAAC;QAChE,WAAW,EAAE,kBAAkB,CAAC,SAAS,EAAE,WAAW,CAAC,OAAO,EAAE,MAAM,CAAC;QACvE,SAAS,EAAE,WAAW,CAAC,SAAS;KACjC,CAAC;AACJ,CAAC;AAED,MAAM,UAAU,kCAAkC,CAChD,KAAgC,EAChC,iBAAiD;IAEjD,MAAM,EAAC,MAAM,EAAE,QAAQ,EAAC,GAAG,KAAK,CAAC;IACjC,MAAM,MAAM,GAAG,MAAM,CAAC,SAAS,CAAC,KAAK,CAAC,IAAI,EAAE,sBAAsB,EAAE,iBAAiB,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC;IAEpG,OAAO;QACL,IAAI,EAAE,gBAAgB,CAAC,MAAM;QAC7B,MAAM,EAAE,QAAQ,CAAC,YAAY,CAAC,iBAAiB,CAAC,OAAO,CAAC,aAAa,CAAC;QACtE,WAAW,EAAE,kBAAkB,CAAC,GAAG,CAAC,MAAM,CAAC,iBAAiB,EAAE,iBAAiB,CAAC,OAAO,EAAE,MAAM,CAAC;QAChG,SAAS,EAAE,iBAAiB,CAAC,SAAS;KACvC,CAAC;AACJ,CAAC"}
|
|
@@ -1,10 +1,10 @@
|
|
|
1
1
|
import { ChainForkConfig } from "@lodestar/config";
|
|
2
|
-
import {
|
|
2
|
+
import { ForkExecution } from "@lodestar/params";
|
|
3
3
|
import { BeaconBlock, BeaconBlockHeader, BlindedBeaconBlock, BlobsBundle, Contents, ExecutionPayload, ExecutionPayloadAndBlobsBundle, Root, SignedBeaconBlock, SignedBeaconBlockOrContents, SignedBlindedBeaconBlock } from "@lodestar/types";
|
|
4
4
|
export declare function blindedOrFullBlockHashTreeRoot(config: ChainForkConfig, blindedOrFull: BeaconBlock | BlindedBeaconBlock): Root;
|
|
5
5
|
export declare function blindedOrFullBlockToHeader(config: ChainForkConfig, blindedOrFull: BeaconBlock | BlindedBeaconBlock): BeaconBlockHeader;
|
|
6
|
-
export declare function beaconBlockToBlinded(config: ChainForkConfig, block: BeaconBlock<
|
|
7
|
-
export declare function signedBeaconBlockToBlinded(config: ChainForkConfig, signedBlock: SignedBeaconBlock<
|
|
6
|
+
export declare function beaconBlockToBlinded(config: ChainForkConfig, block: BeaconBlock<ForkExecution>): BlindedBeaconBlock;
|
|
7
|
+
export declare function signedBeaconBlockToBlinded(config: ChainForkConfig, signedBlock: SignedBeaconBlock<ForkExecution>): SignedBlindedBeaconBlock;
|
|
8
8
|
export declare function signedBlindedBlockToFull(signedBlindedBlock: SignedBlindedBeaconBlock, executionPayload: ExecutionPayload | null): SignedBeaconBlock;
|
|
9
9
|
export declare function parseExecutionPayloadAndBlobsBundle(data: ExecutionPayload | ExecutionPayloadAndBlobsBundle): {
|
|
10
10
|
executionPayload: ExecutionPayload;
|
package/lib/util/blindedBlock.js
CHANGED
|
@@ -5,7 +5,7 @@ export function blindedOrFullBlockHashTreeRoot(config, blindedOrFull) {
|
|
|
5
5
|
return isBlindedBeaconBlock(blindedOrFull)
|
|
6
6
|
? // Blinded
|
|
7
7
|
config
|
|
8
|
-
.
|
|
8
|
+
.getExecutionForkTypes(blindedOrFull.slot)
|
|
9
9
|
.BlindedBeaconBlock.hashTreeRoot(blindedOrFull)
|
|
10
10
|
: // Full
|
|
11
11
|
config
|
|
@@ -16,7 +16,7 @@ export function blindedOrFullBlockToHeader(config, blindedOrFull) {
|
|
|
16
16
|
const bodyRoot = isBlindedBeaconBlock(blindedOrFull)
|
|
17
17
|
? // Blinded
|
|
18
18
|
config
|
|
19
|
-
.
|
|
19
|
+
.getExecutionForkTypes(blindedOrFull.slot)
|
|
20
20
|
.BlindedBeaconBlockBody.hashTreeRoot(blindedOrFull.body)
|
|
21
21
|
: // Full
|
|
22
22
|
config
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"blindedBlock.js","sourceRoot":"","sources":["../../src/util/blindedBlock.ts"],"names":[],"mappings":"AACA,OAAO,
|
|
1
|
+
{"version":3,"file":"blindedBlock.js","sourceRoot":"","sources":["../../src/util/blindedBlock.ts"],"names":[],"mappings":"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"}
|
package/lib/util/execution.d.ts
CHANGED
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import {
|
|
1
|
+
import { ForkExecution, ForkName, ForkSeq } from "@lodestar/params";
|
|
2
2
|
import { BeaconBlock, BeaconBlockBody, BlindedBeaconBlock, BlindedBeaconBlockBody, ExecutionPayload, ExecutionPayloadHeader, bellatrix, capella } from "@lodestar/types";
|
|
3
3
|
import { BeaconStateAllForks, BeaconStateCapella, BeaconStateExecutions, CachedBeaconStateAllForks, CachedBeaconStateExecutions } from "../types.js";
|
|
4
4
|
/**
|
|
@@ -23,7 +23,7 @@ export declare function isCapellaStateType(state: BeaconStateAllForks): state is
|
|
|
23
23
|
/** Type guard for bellatrix.CachedBeaconState */
|
|
24
24
|
export declare function isExecutionCachedStateType(state: CachedBeaconStateAllForks): state is CachedBeaconStateExecutions;
|
|
25
25
|
/** Type guard for ExecutionBlockBody */
|
|
26
|
-
export declare function isExecutionBlockBodyType(blockBody: BeaconBlockBody): blockBody is BeaconBlockBody<
|
|
26
|
+
export declare function isExecutionBlockBodyType(blockBody: BeaconBlockBody): blockBody is BeaconBlockBody<ForkExecution>;
|
|
27
27
|
export declare function getFullOrBlindedPayload(block: BeaconBlock): ExecutionPayload | ExecutionPayloadHeader;
|
|
28
28
|
export declare function getFullOrBlindedPayloadFromBody(body: BeaconBlockBody | BlindedBeaconBlockBody): ExecutionPayload | ExecutionPayloadHeader;
|
|
29
29
|
export declare function isCapellaPayload(payload: ExecutionPayload | ExecutionPayloadHeader): payload is ExecutionPayload<ForkName.capella> | ExecutionPayloadHeader<ForkName.capella>;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"execution.js","sourceRoot":"","sources":["../../src/util/execution.ts"],"names":[],"mappings":"AAAA,OAAO,
|
|
1
|
+
{"version":3,"file":"execution.js","sourceRoot":"","sources":["../../src/util/execution.ts"],"names":[],"mappings":"AAAA,OAAO,EAA0B,OAAO,EAAC,MAAM,kBAAkB,CAAC;AAClE,OAAO,EAUL,wBAAwB,EACxB,kBAAkB,EAClB,GAAG,GACJ,MAAM,iBAAiB,CAAC;AAWzB;;;GAGG;AACH,MAAM,UAAU,kBAAkB,CAAC,KAA4B,EAAE,KAAuC;IACtG,IAAI,yBAAyB,CAAC,KAAK,CAAC,EAAE,CAAC;QACrC,OAAO,IAAI,CAAC;IACd,CAAC;IAED,wGAAwG;IACxG,MAAM,OAAO,GAAG,uBAAuB,CAAC,KAAK,CAAC,CAAC;IAC/C,iHAAiH;IACjH,oFAAoF;IACpF,yDAAyD;IAEzD,oGAAoG;IACpG,0DAA0D;IAC1D,OAAO,kBAAkB,CAAC,OAAO,CAAC;QAChC,CAAC,CAAC,CAAC,GAAG,CAAC,SAAS,CAAC,gBAAgB,CAAC,MAAM,CAAC,OAAO,EAAE,GAAG,CAAC,SAAS,CAAC,gBAAgB,CAAC,YAAY,EAAE,CAAC;QAChG,CAAC,CAAC,CAAC,GAAG,CAAC,SAAS,CAAC,sBAAsB,CAAC,MAAM,CAC1C,KAAK,CAAC,4BAA4B;QAClC,oBAAoB;QACpB,GAAG,CAAC,SAAS,CAAC,sBAAsB,CAAC,YAAY,EAAE,CACpD,CAAC;AACR,CAAC;AAED;;;GAGG;AACH,MAAM,UAAU,sBAAsB,CAAC,KAA4B,EAAE,IAA+B;IAClG,OAAO,CACL,CAAC,yBAAyB,CAAC,KAAK,CAAC;QACjC,CAAC,GAAG,CAAC,SAAS,CAAC,gBAAgB,CAAC,MAAM,CAAC,IAAI,CAAC,gBAAgB,EAAE,GAAG,CAAC,SAAS,CAAC,gBAAgB,CAAC,YAAY,EAAE,CAAC,CAC7G,CAAC;AACJ,CAAC;AAED;;;GAGG;AACH,MAAM,UAAU,yBAAyB,CAAC,KAA4B;IACpE,IAAI,CAAC,kBAAkB,CAAC,KAAK,CAAC,EAAE,CAAC;QAC/B,OAAO,CAAC,GAAG,CAAC,SAAS,CAAC,sBAAsB,CAAC,MAAM,CAChD,KAA8B,CAAC,4BAA4B;QAC5D,oBAAoB;QACpB,GAAG,CAAC,SAAS,CAAC,sBAAsB,CAAC,YAAY,EAAE,CACpD,CAAC;IACJ,CAAC;IAED,OAAO,CAAC,GAAG,CAAC,OAAO,CAAC,sBAAsB,CAAC,MAAM,CAC/C,KAAK,CAAC,4BAA4B;IAClC,oBAAoB;IACpB,GAAG,CAAC,OAAO,CAAC,sBAAsB,CAAC,YAAY,EAAE,CAClD,CAAC;AACJ,CAAC;AAED,2CAA2C;AAC3C,MAAM,UAAU,oBAAoB,CAAC,KAA0B;IAC7D,OAAQ,KAA+B,CAAC,4BAA4B,KAAK,SAAS,CAAC;AACrF,CAAC;AAED,yCAAyC;AACzC,MAAM,UAAU,kBAAkB,CAAC,KAA0B;IAC3D,OAAO,CACJ,KAA4B,CAAC,4BAA4B,KAAK,SAAS;QACvE,KAA4B,CAAC,4BAA4B,CAAC,eAAe,KAAK,SAAS,CACzF,CAAC;AACJ,CAAC;AAED,iDAAiD;AACjD,MAAM,UAAU,0BAA0B,CAAC,KAAgC;IACzE,OAAQ,KAAqC,CAAC,4BAA4B,KAAK,SAAS,CAAC;AAC3F,CAAC;AAED,wCAAwC;AACxC,MAAM,UAAU,wBAAwB,CAAC,SAA0B;IACjE,OAAQ,SAA4C,CAAC,gBAAgB,KAAK,SAAS,CAAC;AACtF,CAAC;AAED,MAAM,UAAU,uBAAuB,CAAC,KAAkB;IACxD,OAAO,+BAA+B,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC;AACrD,CAAC;AAED,MAAM,UAAU,+BAA+B,CAC7C,IAA8C;IAE9C,IAAI,wBAAwB,CAAC,IAAI,CAAC,EAAE,CAAC;QACnC,OAAO,IAAI,CAAC,sBAAsB,CAAC;IACrC,CAAC;IAED,IAAK,IAAkC,CAAC,gBAAgB,KAAK,SAAS,EAAE,CAAC;QACvE,OAAQ,IAAkC,CAAC,gBAAgB,CAAC;IAC9D,CAAC;IAED,MAAM,KAAK,CAAC,kCAAkC,CAAC,CAAC;AAClD,CAAC;AAED,MAAM,UAAU,gBAAgB,CAC9B,OAAkD;IAElD,OAAO,CACJ,OAA8C,CAAC,WAAW,KAAK,SAAS;QACxE,OAAoD,CAAC,eAAe,KAAK,SAAS,CACpF,CAAC;AACJ,CAAC;AAED,MAAM,UAAU,sBAAsB,CACpC,OAA8C;IAE9C,OAAQ,OAA0C,CAAC,eAAe,KAAK,SAAS,CAAC;AACnF,CAAC;AAED,MAAM,UAAU,+BAA+B,CAAC,IAAa,EAAE,OAAyB;IACtF,MAAM,gBAAgB,GAAG,GAAG,CAAC,SAAS,CAAC,YAAY,CAAC,YAAY,CAAC,OAAO,CAAC,YAAY,CAAC,CAAC;IAEvF,MAAM,sBAAsB,GAA2B;QACrD,UAAU,EAAE,OAAO,CAAC,UAAU;QAC9B,YAAY,EAAE,OAAO,CAAC,YAAY;QAClC,SAAS,EAAE,OAAO,CAAC,SAAS;QAC5B,YAAY,EAAE,OAAO,CAAC,YAAY;QAClC,SAAS,EAAE,OAAO,CAAC,SAAS;QAC5B,UAAU,EAAE,OAAO,CAAC,UAAU;QAC9B,WAAW,EAAE,OAAO,CAAC,WAAW;QAChC,QAAQ,EAAE,OAAO,CAAC,QAAQ;QAC1B,OAAO,EAAE,OAAO,CAAC,OAAO;QACxB,SAAS,EAAE,OAAO,CAAC,SAAS;QAC5B,SAAS,EAAE,OAAO,CAAC,SAAS;QAC5B,aAAa,EAAE,OAAO,CAAC,aAAa;QACpC,SAAS,EAAE,OAAO,CAAC,SAAS;QAC5B,gBAAgB;KACjB,CAAC;IAEF,IAAI,IAAI,IAAI,OAAO,CAAC,OAAO,EAAE,CAAC;QAC3B,sBAAyD,CAAC,eAAe,GAAG,GAAG,CAAC,OAAO,CAAC,WAAW,CAAC,YAAY,CAC9G,OAAoC,CAAC,WAAW,CAClD,CAAC;IACJ,CAAC;IAED,IAAI,IAAI,IAAI,OAAO,CAAC,KAAK,EAAE,CAAC;QAC1B,+GAA+G;QAC9G,sBAAuD,CAAC,WAAW,GAClE,OACD,CAAC,WAAW,CAAC;QACb,sBAAuD,CAAC,aAAa,GACpE,OACD,CAAC,aAAa,CAAC;IAClB,CAAC;IAED,uBAAuB;IAEvB,OAAO,sBAAsB,CAAC;AAChC,CAAC"}
|
package/lib/util/seed.d.ts
CHANGED
|
@@ -11,19 +11,12 @@ export declare function computeProposers(fork: ForkSeq, epochSeed: Uint8Array, s
|
|
|
11
11
|
}, effectiveBalanceIncrements: EffectiveBalanceIncrements): number[];
|
|
12
12
|
/**
|
|
13
13
|
* Return from ``indices`` a random index sampled by effective balance.
|
|
14
|
-
* This is just to make sure lodestar follows the spec, this is not for production.
|
|
15
14
|
*
|
|
16
15
|
* SLOW CODE - 🐢
|
|
17
16
|
*/
|
|
18
|
-
export declare function naiveComputeProposerIndex(fork: ForkSeq, effectiveBalanceIncrements: EffectiveBalanceIncrements, indices: ArrayLike<ValidatorIndex>, seed: Uint8Array): ValidatorIndex;
|
|
19
|
-
/**
|
|
20
|
-
* Optimized version of `naiveComputeProposerIndex`.
|
|
21
|
-
* It shows > 3x speedup according to the perf test.
|
|
22
|
-
*/
|
|
23
17
|
export declare function computeProposerIndex(fork: ForkSeq, effectiveBalanceIncrements: EffectiveBalanceIncrements, indices: ArrayLike<ValidatorIndex>, seed: Uint8Array): ValidatorIndex;
|
|
24
18
|
/**
|
|
25
|
-
*
|
|
26
|
-
* See `computeProposerIndex` for the optimized version.
|
|
19
|
+
* TODO: NAIVE
|
|
27
20
|
*
|
|
28
21
|
* Return the sync committee indices for a given state and epoch.
|
|
29
22
|
* Aligns `epoch` to `baseEpoch` so the result is the same with any `epoch` within a sync period.
|
|
@@ -32,12 +25,6 @@ export declare function computeProposerIndex(fork: ForkSeq, effectiveBalanceIncr
|
|
|
32
25
|
*
|
|
33
26
|
* SLOW CODE - 🐢
|
|
34
27
|
*/
|
|
35
|
-
export declare function naiveGetNextSyncCommitteeIndices(fork: ForkSeq, state: BeaconStateAllForks, activeValidatorIndices: ArrayLike<ValidatorIndex>, effectiveBalanceIncrements: EffectiveBalanceIncrements): ValidatorIndex[];
|
|
36
|
-
/**
|
|
37
|
-
* Optmized version of `naiveGetNextSyncCommitteeIndices`.
|
|
38
|
-
*
|
|
39
|
-
* In the worse case scenario, this could be >1000x speedup according to the perf test.
|
|
40
|
-
*/
|
|
41
28
|
export declare function getNextSyncCommitteeIndices(fork: ForkSeq, state: BeaconStateAllForks, activeValidatorIndices: ArrayLike<ValidatorIndex>, effectiveBalanceIncrements: EffectiveBalanceIncrements): ValidatorIndex[];
|
|
42
29
|
/**
|
|
43
30
|
* Return the shuffled validator index corresponding to ``seed`` (and ``index_count``).
|
|
@@ -46,15 +33,8 @@ export declare function getNextSyncCommitteeIndices(fork: ForkSeq, state: Beacon
|
|
|
46
33
|
* https://link.springer.com/content/pdf/10.1007%2F978-3-642-32009-5_1.pdf
|
|
47
34
|
*
|
|
48
35
|
* See the 'generalized domain' algorithm on page 3.
|
|
49
|
-
* This is the naive implementation just to make sure lodestar follows the spec, this is not for production.
|
|
50
|
-
* The optimized version is in `getComputeShuffledIndexFn`.
|
|
51
36
|
*/
|
|
52
37
|
export declare function computeShuffledIndex(index: number, indexCount: number, seed: Bytes32): number;
|
|
53
|
-
type ComputeShuffledIndexFn = (index: number) => number;
|
|
54
|
-
/**
|
|
55
|
-
* An optimized version of `computeShuffledIndex`, this is for production.
|
|
56
|
-
*/
|
|
57
|
-
export declare function getComputeShuffledIndexFn(indexCount: number, seed: Bytes32): ComputeShuffledIndexFn;
|
|
58
38
|
/**
|
|
59
39
|
* Return the randao mix at a recent [[epoch]].
|
|
60
40
|
*/
|
|
@@ -63,5 +43,4 @@ export declare function getRandaoMix(state: BeaconStateAllForks, epoch: Epoch):
|
|
|
63
43
|
* Return the seed at [[epoch]].
|
|
64
44
|
*/
|
|
65
45
|
export declare function getSeed(state: BeaconStateAllForks, epoch: Epoch, domainType: DomainType): Uint8Array;
|
|
66
|
-
export {};
|
|
67
46
|
//# sourceMappingURL=seed.d.ts.map
|
package/lib/util/seed.js
CHANGED
|
@@ -10,19 +10,16 @@ export function computeProposers(fork, epochSeed, shuffling, effectiveBalanceInc
|
|
|
10
10
|
const startSlot = computeStartSlotAtEpoch(shuffling.epoch);
|
|
11
11
|
const proposers = [];
|
|
12
12
|
for (let slot = startSlot; slot < startSlot + SLOTS_PER_EPOCH; slot++) {
|
|
13
|
-
proposers.push(computeProposerIndex(fork, effectiveBalanceIncrements, shuffling.activeIndices,
|
|
14
|
-
// TODO: if we use hashTree, we can precompute the roots for the next n loops
|
|
15
|
-
digest(Buffer.concat([epochSeed, intToBytes(slot, 8)]))));
|
|
13
|
+
proposers.push(computeProposerIndex(fork, effectiveBalanceIncrements, shuffling.activeIndices, digest(Buffer.concat([epochSeed, intToBytes(slot, 8)]))));
|
|
16
14
|
}
|
|
17
15
|
return proposers;
|
|
18
16
|
}
|
|
19
17
|
/**
|
|
20
18
|
* Return from ``indices`` a random index sampled by effective balance.
|
|
21
|
-
* This is just to make sure lodestar follows the spec, this is not for production.
|
|
22
19
|
*
|
|
23
20
|
* SLOW CODE - 🐢
|
|
24
21
|
*/
|
|
25
|
-
export function
|
|
22
|
+
export function computeProposerIndex(fork, effectiveBalanceIncrements, indices, seed) {
|
|
26
23
|
if (indices.length === 0) {
|
|
27
24
|
throw Error("Validator indices must not be empty");
|
|
28
25
|
}
|
|
@@ -58,77 +55,7 @@ export function naiveComputeProposerIndex(fork, effectiveBalanceIncrements, indi
|
|
|
58
55
|
}
|
|
59
56
|
}
|
|
60
57
|
/**
|
|
61
|
-
*
|
|
62
|
-
* It shows > 3x speedup according to the perf test.
|
|
63
|
-
*/
|
|
64
|
-
export function computeProposerIndex(fork, effectiveBalanceIncrements, indices, seed) {
|
|
65
|
-
if (indices.length === 0) {
|
|
66
|
-
throw Error("Validator indices must not be empty");
|
|
67
|
-
}
|
|
68
|
-
if (fork >= ForkSeq.electra) {
|
|
69
|
-
// electra, see inline comments for the optimization
|
|
70
|
-
const MAX_RANDOM_VALUE = 2 ** 16 - 1;
|
|
71
|
-
const MAX_EFFECTIVE_BALANCE_INCREMENT = MAX_EFFECTIVE_BALANCE_ELECTRA / EFFECTIVE_BALANCE_INCREMENT;
|
|
72
|
-
const shuffledIndexFn = getComputeShuffledIndexFn(indices.length, seed);
|
|
73
|
-
// this simple cache makes sure we don't have to recompute the shuffled index for the next round of activeValidatorCount
|
|
74
|
-
const shuffledResult = new Map();
|
|
75
|
-
let i = 0;
|
|
76
|
-
const cachedHashInput = Buffer.allocUnsafe(32 + 8);
|
|
77
|
-
cachedHashInput.set(seed, 0);
|
|
78
|
-
cachedHashInput.writeUint32LE(0, 32 + 4);
|
|
79
|
-
let cachedHash = null;
|
|
80
|
-
while (true) {
|
|
81
|
-
// an optimized version of the below naive code
|
|
82
|
-
// const candidateIndex = indices[computeShuffledIndex(i % indices.length, indices.length, seed)];
|
|
83
|
-
const index = i % indices.length;
|
|
84
|
-
let shuffledIndex = shuffledResult.get(index);
|
|
85
|
-
if (shuffledIndex == null) {
|
|
86
|
-
shuffledIndex = shuffledIndexFn(index);
|
|
87
|
-
shuffledResult.set(index, shuffledIndex);
|
|
88
|
-
}
|
|
89
|
-
const candidateIndex = indices[shuffledIndex];
|
|
90
|
-
// compute a new hash every 16 iterations
|
|
91
|
-
if (i % 16 === 0) {
|
|
92
|
-
cachedHashInput.writeUint32LE(Math.floor(i / 16), 32);
|
|
93
|
-
cachedHash = digest(cachedHashInput);
|
|
94
|
-
}
|
|
95
|
-
if (cachedHash == null) {
|
|
96
|
-
// there is always a cachedHash, handle this to make the compiler happy
|
|
97
|
-
throw new Error("cachedHash should not be null");
|
|
98
|
-
}
|
|
99
|
-
const randomBytes = cachedHash;
|
|
100
|
-
const offset = (i % 16) * 2;
|
|
101
|
-
// this is equivalent to bytesToInt(randomBytes.subarray(offset, offset + 2));
|
|
102
|
-
// but it does not get through BigInt
|
|
103
|
-
const lowByte = randomBytes[offset];
|
|
104
|
-
const highByte = randomBytes[offset + 1];
|
|
105
|
-
const randomValue = lowByte + highByte * 256;
|
|
106
|
-
const effectiveBalanceIncrement = effectiveBalanceIncrements[candidateIndex];
|
|
107
|
-
if (effectiveBalanceIncrement * MAX_RANDOM_VALUE >= MAX_EFFECTIVE_BALANCE_INCREMENT * randomValue) {
|
|
108
|
-
return candidateIndex;
|
|
109
|
-
}
|
|
110
|
-
i += 1;
|
|
111
|
-
}
|
|
112
|
-
}
|
|
113
|
-
else {
|
|
114
|
-
// preelectra, this function is the same to the naive version
|
|
115
|
-
const MAX_RANDOM_BYTE = 2 ** 8 - 1;
|
|
116
|
-
const MAX_EFFECTIVE_BALANCE_INCREMENT = MAX_EFFECTIVE_BALANCE / EFFECTIVE_BALANCE_INCREMENT;
|
|
117
|
-
let i = 0;
|
|
118
|
-
while (true) {
|
|
119
|
-
const candidateIndex = indices[computeShuffledIndex(i % indices.length, indices.length, seed)];
|
|
120
|
-
const randomByte = digest(Buffer.concat([seed, intToBytes(Math.floor(i / 32), 8, "le")]))[i % 32];
|
|
121
|
-
const effectiveBalanceIncrement = effectiveBalanceIncrements[candidateIndex];
|
|
122
|
-
if (effectiveBalanceIncrement * MAX_RANDOM_BYTE >= MAX_EFFECTIVE_BALANCE_INCREMENT * randomByte) {
|
|
123
|
-
return candidateIndex;
|
|
124
|
-
}
|
|
125
|
-
i += 1;
|
|
126
|
-
}
|
|
127
|
-
}
|
|
128
|
-
}
|
|
129
|
-
/**
|
|
130
|
-
* Naive version, this is not supposed to be used in production.
|
|
131
|
-
* See `computeProposerIndex` for the optimized version.
|
|
58
|
+
* TODO: NAIVE
|
|
132
59
|
*
|
|
133
60
|
* Return the sync committee indices for a given state and epoch.
|
|
134
61
|
* Aligns `epoch` to `baseEpoch` so the result is the same with any `epoch` within a sync period.
|
|
@@ -137,7 +64,7 @@ export function computeProposerIndex(fork, effectiveBalanceIncrements, indices,
|
|
|
137
64
|
*
|
|
138
65
|
* SLOW CODE - 🐢
|
|
139
66
|
*/
|
|
140
|
-
export function
|
|
67
|
+
export function getNextSyncCommitteeIndices(fork, state, activeValidatorIndices, effectiveBalanceIncrements) {
|
|
141
68
|
const syncCommitteeIndices = [];
|
|
142
69
|
if (fork >= ForkSeq.electra) {
|
|
143
70
|
const MAX_RANDOM_VALUE = 2 ** 16 - 1;
|
|
@@ -179,82 +106,6 @@ export function naiveGetNextSyncCommitteeIndices(fork, state, activeValidatorInd
|
|
|
179
106
|
}
|
|
180
107
|
return syncCommitteeIndices;
|
|
181
108
|
}
|
|
182
|
-
/**
|
|
183
|
-
* Optmized version of `naiveGetNextSyncCommitteeIndices`.
|
|
184
|
-
*
|
|
185
|
-
* In the worse case scenario, this could be >1000x speedup according to the perf test.
|
|
186
|
-
*/
|
|
187
|
-
export function getNextSyncCommitteeIndices(fork, state, activeValidatorIndices, effectiveBalanceIncrements) {
|
|
188
|
-
const syncCommitteeIndices = [];
|
|
189
|
-
if (fork >= ForkSeq.electra) {
|
|
190
|
-
// electra, see inline comments for the optimization
|
|
191
|
-
const MAX_RANDOM_VALUE = 2 ** 16 - 1;
|
|
192
|
-
const MAX_EFFECTIVE_BALANCE_INCREMENT = MAX_EFFECTIVE_BALANCE_ELECTRA / EFFECTIVE_BALANCE_INCREMENT;
|
|
193
|
-
const epoch = computeEpochAtSlot(state.slot) + 1;
|
|
194
|
-
const activeValidatorCount = activeValidatorIndices.length;
|
|
195
|
-
const seed = getSeed(state, epoch, DOMAIN_SYNC_COMMITTEE);
|
|
196
|
-
const shuffledIndexFn = getComputeShuffledIndexFn(activeValidatorCount, seed);
|
|
197
|
-
let i = 0;
|
|
198
|
-
let cachedHash = null;
|
|
199
|
-
const cachedHashInput = Buffer.allocUnsafe(32 + 8);
|
|
200
|
-
cachedHashInput.set(seed, 0);
|
|
201
|
-
cachedHashInput.writeUInt32LE(0, 32 + 4);
|
|
202
|
-
// this simple cache makes sure we don't have to recompute the shuffled index for the next round of activeValidatorCount
|
|
203
|
-
const shuffledResult = new Map();
|
|
204
|
-
while (syncCommitteeIndices.length < SYNC_COMMITTEE_SIZE) {
|
|
205
|
-
// optimized version of the below naive code
|
|
206
|
-
// const shuffledIndex = shuffledIndexFn(i % activeValidatorCount);
|
|
207
|
-
const index = i % activeValidatorCount;
|
|
208
|
-
let shuffledIndex = shuffledResult.get(index);
|
|
209
|
-
if (shuffledIndex == null) {
|
|
210
|
-
shuffledIndex = shuffledIndexFn(index);
|
|
211
|
-
shuffledResult.set(index, shuffledIndex);
|
|
212
|
-
}
|
|
213
|
-
const candidateIndex = activeValidatorIndices[shuffledIndex];
|
|
214
|
-
// compute a new hash every 16 iterations
|
|
215
|
-
if (i % 16 === 0) {
|
|
216
|
-
cachedHashInput.writeUint32LE(Math.floor(i / 16), 32);
|
|
217
|
-
cachedHash = digest(cachedHashInput);
|
|
218
|
-
}
|
|
219
|
-
if (cachedHash == null) {
|
|
220
|
-
// there is always a cachedHash, handle this to make the compiler happy
|
|
221
|
-
throw new Error("cachedHash should not be null");
|
|
222
|
-
}
|
|
223
|
-
const randomBytes = cachedHash;
|
|
224
|
-
const offset = (i % 16) * 2;
|
|
225
|
-
// this is equivalent to bytesToInt(randomBytes.subarray(offset, offset + 2));
|
|
226
|
-
// but it does not get through BigInt
|
|
227
|
-
const lowByte = randomBytes[offset];
|
|
228
|
-
const highByte = randomBytes[offset + 1];
|
|
229
|
-
const randomValue = lowByte + highByte * 256;
|
|
230
|
-
const effectiveBalanceIncrement = effectiveBalanceIncrements[candidateIndex];
|
|
231
|
-
if (effectiveBalanceIncrement * MAX_RANDOM_VALUE >= MAX_EFFECTIVE_BALANCE_INCREMENT * randomValue) {
|
|
232
|
-
syncCommitteeIndices.push(candidateIndex);
|
|
233
|
-
}
|
|
234
|
-
i += 1;
|
|
235
|
-
}
|
|
236
|
-
}
|
|
237
|
-
else {
|
|
238
|
-
// pre-electra, keep the same naive version
|
|
239
|
-
const MAX_RANDOM_BYTE = 2 ** 8 - 1;
|
|
240
|
-
const MAX_EFFECTIVE_BALANCE_INCREMENT = MAX_EFFECTIVE_BALANCE / EFFECTIVE_BALANCE_INCREMENT;
|
|
241
|
-
const epoch = computeEpochAtSlot(state.slot) + 1;
|
|
242
|
-
const activeValidatorCount = activeValidatorIndices.length;
|
|
243
|
-
const seed = getSeed(state, epoch, DOMAIN_SYNC_COMMITTEE);
|
|
244
|
-
let i = 0;
|
|
245
|
-
while (syncCommitteeIndices.length < SYNC_COMMITTEE_SIZE) {
|
|
246
|
-
const shuffledIndex = computeShuffledIndex(i % activeValidatorCount, activeValidatorCount, seed);
|
|
247
|
-
const candidateIndex = activeValidatorIndices[shuffledIndex];
|
|
248
|
-
const randomByte = digest(Buffer.concat([seed, intToBytes(Math.floor(i / 32), 8, "le")]))[i % 32];
|
|
249
|
-
const effectiveBalanceIncrement = effectiveBalanceIncrements[candidateIndex];
|
|
250
|
-
if (effectiveBalanceIncrement * MAX_RANDOM_BYTE >= MAX_EFFECTIVE_BALANCE_INCREMENT * randomByte) {
|
|
251
|
-
syncCommitteeIndices.push(candidateIndex);
|
|
252
|
-
}
|
|
253
|
-
i += 1;
|
|
254
|
-
}
|
|
255
|
-
}
|
|
256
|
-
return syncCommitteeIndices;
|
|
257
|
-
}
|
|
258
109
|
/**
|
|
259
110
|
* Return the shuffled validator index corresponding to ``seed`` (and ``index_count``).
|
|
260
111
|
*
|
|
@@ -262,8 +113,6 @@ export function getNextSyncCommitteeIndices(fork, state, activeValidatorIndices,
|
|
|
262
113
|
* https://link.springer.com/content/pdf/10.1007%2F978-3-642-32009-5_1.pdf
|
|
263
114
|
*
|
|
264
115
|
* See the 'generalized domain' algorithm on page 3.
|
|
265
|
-
* This is the naive implementation just to make sure lodestar follows the spec, this is not for production.
|
|
266
|
-
* The optimized version is in `getComputeShuffledIndexFn`.
|
|
267
116
|
*/
|
|
268
117
|
export function computeShuffledIndex(index, indexCount, seed) {
|
|
269
118
|
let permuted = index;
|
|
@@ -281,68 +130,6 @@ export function computeShuffledIndex(index, indexCount, seed) {
|
|
|
281
130
|
}
|
|
282
131
|
return permuted;
|
|
283
132
|
}
|
|
284
|
-
/**
|
|
285
|
-
* An optimized version of `computeShuffledIndex`, this is for production.
|
|
286
|
-
*/
|
|
287
|
-
export function getComputeShuffledIndexFn(indexCount, seed) {
|
|
288
|
-
// there are possibly SHUFFLE_ROUND_COUNT (90 for mainnet) values for this cache
|
|
289
|
-
// this cache will always hit after the 1st call
|
|
290
|
-
const pivotByIndex = new Map();
|
|
291
|
-
// given 2M active validators, there are 2 M / 256 = 8k possible positionDiv
|
|
292
|
-
// it means there are at most 8k different sources for each round
|
|
293
|
-
const sourceByPositionDivByIndex = new Map();
|
|
294
|
-
// 32 bytes seed + 1 byte i
|
|
295
|
-
const pivotBuffer = Buffer.alloc(32 + 1);
|
|
296
|
-
pivotBuffer.set(seed, 0);
|
|
297
|
-
// 32 bytes seed + 1 byte i + 4 bytes positionDiv
|
|
298
|
-
const sourceBuffer = Buffer.alloc(32 + 1 + 4);
|
|
299
|
-
sourceBuffer.set(seed, 0);
|
|
300
|
-
return (index) => {
|
|
301
|
-
assert.lt(index, indexCount, "indexCount must be less than index");
|
|
302
|
-
assert.lte(indexCount, 2 ** 40, "indexCount too big");
|
|
303
|
-
let permuted = index;
|
|
304
|
-
const _seed = seed;
|
|
305
|
-
for (let i = 0; i < SHUFFLE_ROUND_COUNT; i++) {
|
|
306
|
-
// optimized version of the below naive code
|
|
307
|
-
// const pivot = Number(
|
|
308
|
-
// bytesToBigInt(digest(Buffer.concat([_seed, intToBytes(i, 1)])).slice(0, 8)) % BigInt(indexCount)
|
|
309
|
-
// );
|
|
310
|
-
let pivot = pivotByIndex.get(i);
|
|
311
|
-
if (pivot == null) {
|
|
312
|
-
// naive version always creates a new buffer, we can reuse the buffer
|
|
313
|
-
// pivot = Number(
|
|
314
|
-
// bytesToBigInt(digest(Buffer.concat([_seed, intToBytes(i, 1)])).slice(0, 8)) % BigInt(indexCount)
|
|
315
|
-
// );
|
|
316
|
-
pivotBuffer[32] = i % 256;
|
|
317
|
-
pivot = Number(bytesToBigInt(digest(pivotBuffer).subarray(0, 8)) % BigInt(indexCount));
|
|
318
|
-
pivotByIndex.set(i, pivot);
|
|
319
|
-
}
|
|
320
|
-
const flip = (pivot + indexCount - permuted) % indexCount;
|
|
321
|
-
const position = Math.max(permuted, flip);
|
|
322
|
-
// optimized version of the below naive code
|
|
323
|
-
// const source = digest(Buffer.concat([_seed, intToBytes(i, 1), intToBytes(Math.floor(position / 256), 4)]));
|
|
324
|
-
let sourceByPositionDiv = sourceByPositionDivByIndex.get(i);
|
|
325
|
-
if (sourceByPositionDiv == null) {
|
|
326
|
-
sourceByPositionDiv = new Map();
|
|
327
|
-
sourceByPositionDivByIndex.set(i, sourceByPositionDiv);
|
|
328
|
-
}
|
|
329
|
-
const positionDiv256 = Math.floor(position / 256);
|
|
330
|
-
let source = sourceByPositionDiv.get(positionDiv256);
|
|
331
|
-
if (source == null) {
|
|
332
|
-
// naive version always creates a new buffer, we can reuse the buffer
|
|
333
|
-
// don't want to go through intToBytes() to avoid BigInt
|
|
334
|
-
sourceBuffer[32] = i % 256;
|
|
335
|
-
sourceBuffer.writeUint32LE(positionDiv256, 33);
|
|
336
|
-
source = digest(sourceBuffer);
|
|
337
|
-
sourceByPositionDiv.set(positionDiv256, source);
|
|
338
|
-
}
|
|
339
|
-
const byte = source[Math.floor((position % 256) / 8)];
|
|
340
|
-
const bit = (byte >> (position % 8)) % 2;
|
|
341
|
-
permuted = bit ? flip : permuted;
|
|
342
|
-
}
|
|
343
|
-
return permuted;
|
|
344
|
-
};
|
|
345
|
-
}
|
|
346
133
|
/**
|
|
347
134
|
* Return the randao mix at a recent [[epoch]].
|
|
348
135
|
*/
|
package/lib/util/seed.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"seed.js","sourceRoot":"","sources":["../../src/util/seed.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"seed.js","sourceRoot":"","sources":["../../src/util/seed.ts"],"names":[],"mappings":"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"}
|
package/package.json
CHANGED
|
@@ -11,7 +11,7 @@
|
|
|
11
11
|
"bugs": {
|
|
12
12
|
"url": "https://github.com/ChainSafe/lodestar/issues"
|
|
13
13
|
},
|
|
14
|
-
"version": "1.27.0-dev.
|
|
14
|
+
"version": "1.27.0-dev.92d77e3443",
|
|
15
15
|
"type": "module",
|
|
16
16
|
"exports": {
|
|
17
17
|
".": {
|
|
@@ -59,16 +59,16 @@
|
|
|
59
59
|
"types": "lib/index.d.ts",
|
|
60
60
|
"dependencies": {
|
|
61
61
|
"@chainsafe/as-sha256": "^1.0.0",
|
|
62
|
-
"@chainsafe/blst": "^2.
|
|
62
|
+
"@chainsafe/blst": "^2.2.0",
|
|
63
63
|
"@chainsafe/persistent-merkle-tree": "^1.0.1",
|
|
64
64
|
"@chainsafe/persistent-ts": "^1.0.0",
|
|
65
65
|
"@chainsafe/pubkey-index-map": "2.0.0",
|
|
66
66
|
"@chainsafe/ssz": "^1.0.2",
|
|
67
67
|
"@chainsafe/swap-or-not-shuffle": "^0.0.2",
|
|
68
|
-
"@lodestar/config": "1.27.0-dev.
|
|
69
|
-
"@lodestar/params": "1.27.0-dev.
|
|
70
|
-
"@lodestar/types": "1.27.0-dev.
|
|
71
|
-
"@lodestar/utils": "1.27.0-dev.
|
|
68
|
+
"@lodestar/config": "1.27.0-dev.92d77e3443",
|
|
69
|
+
"@lodestar/params": "1.27.0-dev.92d77e3443",
|
|
70
|
+
"@lodestar/types": "1.27.0-dev.92d77e3443",
|
|
71
|
+
"@lodestar/utils": "1.27.0-dev.92d77e3443",
|
|
72
72
|
"bigint-buffer": "^1.1.5"
|
|
73
73
|
},
|
|
74
74
|
"keywords": [
|
|
@@ -77,5 +77,5 @@
|
|
|
77
77
|
"beacon",
|
|
78
78
|
"blockchain"
|
|
79
79
|
],
|
|
80
|
-
"gitHead": "
|
|
80
|
+
"gitHead": "9326bc6f7917eea46ddbc51dd4047527fdc4ee0d"
|
|
81
81
|
}
|