@chainsafe/lodestar 1.50.0-dev.1f38fe79fb → 1.50.0-dev.2201499bbf
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/.git-data.json +1 -1
- package/lib/cmds/beacon/handler.d.ts +1 -0
- package/lib/cmds/beacon/handler.d.ts.map +1 -1
- package/lib/cmds/beacon/handler.js +11 -6
- package/lib/cmds/beacon/handler.js.map +1 -1
- package/lib/cmds/beacon/initBeaconState.d.ts +4 -2
- package/lib/cmds/beacon/initBeaconState.d.ts.map +1 -1
- package/lib/cmds/beacon/initBeaconState.js +15 -10
- package/lib/cmds/beacon/initBeaconState.js.map +1 -1
- package/lib/cmds/beacon/options.d.ts +1 -0
- package/lib/cmds/beacon/options.d.ts.map +1 -1
- package/lib/cmds/beacon/options.js +6 -0
- package/lib/cmds/beacon/options.js.map +1 -1
- package/lib/cmds/beacon/paths.d.ts +4 -0
- package/lib/cmds/beacon/paths.d.ts.map +1 -1
- package/lib/cmds/beacon/paths.js +3 -0
- package/lib/cmds/beacon/paths.js.map +1 -1
- package/lib/cmds/beacon/pubkeysFile.d.ts +10 -0
- package/lib/cmds/beacon/pubkeysFile.d.ts.map +1 -0
- package/lib/cmds/beacon/pubkeysFile.js +39 -0
- package/lib/cmds/beacon/pubkeysFile.js.map +1 -0
- package/lib/cmds/beacon/stateInitialization/checkpointState.js +22 -6
- package/lib/cmds/beacon/stateInitialization/checkpointState.js.map +1 -1
- package/lib/cmds/beacon/stateInitialization/genesisState.d.ts.map +1 -1
- package/lib/cmds/beacon/stateInitialization/genesisState.js +15 -1
- package/lib/cmds/beacon/stateInitialization/genesisState.js.map +1 -1
- package/lib/cmds/beacon/stateInitialization/prepareStateInitialization.d.ts +1 -1
- package/lib/cmds/beacon/stateInitialization/prepareStateInitialization.d.ts.map +1 -1
- package/lib/cmds/beacon/stateInitialization/prepareStateInitialization.js +17 -2
- package/lib/cmds/beacon/stateInitialization/prepareStateInitialization.js.map +1 -1
- package/lib/cmds/beacon/stateInitialization/types.d.ts +4 -2
- package/lib/cmds/beacon/stateInitialization/types.d.ts.map +1 -1
- package/lib/cmds/dev/handler.d.ts.map +1 -1
- package/lib/cmds/dev/handler.js +3 -1
- package/lib/cmds/dev/handler.js.map +1 -1
- package/lib/cmds/dev/options.d.ts +2 -1
- package/lib/cmds/dev/options.d.ts.map +1 -1
- package/lib/options/beaconNodeOptions/chain.d.ts +2 -1
- package/lib/options/beaconNodeOptions/chain.d.ts.map +1 -1
- package/lib/options/beaconNodeOptions/chain.js +11 -4
- package/lib/options/beaconNodeOptions/chain.js.map +1 -1
- package/lib/options/beaconNodeOptions/index.d.ts +2 -1
- package/lib/options/beaconNodeOptions/index.d.ts.map +1 -1
- package/package.json +15 -15
- package/src/cmds/beacon/handler.ts +15 -6
- package/src/cmds/beacon/initBeaconState.ts +29 -10
- package/src/cmds/beacon/options.ts +8 -0
- package/src/cmds/beacon/paths.ts +5 -0
- package/src/cmds/beacon/pubkeysFile.ts +50 -0
- package/src/cmds/beacon/stateInitialization/checkpointState.ts +26 -10
- package/src/cmds/beacon/stateInitialization/genesisState.ts +15 -1
- package/src/cmds/beacon/stateInitialization/prepareStateInitialization.ts +17 -2
- package/src/cmds/beacon/stateInitialization/types.ts +4 -2
- package/src/cmds/dev/handler.ts +3 -1
- package/src/options/beaconNodeOptions/chain.ts +14 -5
|
@@ -3,7 +3,7 @@ import { computeEpochAtSlot } from "@lodestar/state-transition";
|
|
|
3
3
|
import { formatBytes, toRootHex } from "@lodestar/utils";
|
|
4
4
|
import { prepareCheckpointApiInitialization, prepareCheckpointFileInitialization, prepareUnfinalizedCheckpointInitialization, } from "./checkpointState.js";
|
|
5
5
|
import { assertAnchorStateForkMatchesConfig } from "./validation.js";
|
|
6
|
-
export function prepareArchivedStateInitialization({ stateBytes, metadata, isWithinWeakSubjectivityPeriod }, { chainForkConfig, logger }) {
|
|
6
|
+
export function prepareArchivedStateInitialization({ stateBytes, metadata, isWithinWeakSubjectivityPeriod }, { chainForkConfig, db, logger }) {
|
|
7
7
|
const config = createBeaconConfig(chainForkConfig, metadata.genesisValidatorsRoot);
|
|
8
8
|
return {
|
|
9
9
|
stateBytes,
|
|
@@ -26,13 +26,28 @@ export function prepareArchivedStateInitialization({ stateBytes, metadata, isWit
|
|
|
26
26
|
logger.warn("Checkpoint sync recommended, please use --help to see checkpoint sync options");
|
|
27
27
|
}
|
|
28
28
|
},
|
|
29
|
+
async initializeEarliestAvailableSlot(state) {
|
|
30
|
+
const stored = await db.earliestAvailableSlot.get();
|
|
31
|
+
// we bootstrap the node with archived db, use the previous earliestAvailableSLot
|
|
32
|
+
if (stored !== null) {
|
|
33
|
+
logger.verbose("Reusing persisted earliest available slot", {
|
|
34
|
+
anchorSlot: state.slot,
|
|
35
|
+
earliestAvailableSlot: stored,
|
|
36
|
+
});
|
|
37
|
+
return stored;
|
|
38
|
+
}
|
|
39
|
+
// legacy db: blockArchive.firstKey() is not a safe floor, a past checkpoint sync may have left a gap.
|
|
40
|
+
await db.earliestAvailableSlot.set(state.slot);
|
|
41
|
+
return state.slot;
|
|
42
|
+
},
|
|
29
43
|
persist: null,
|
|
30
|
-
log(state) {
|
|
44
|
+
log(state, nativeStateTransition) {
|
|
31
45
|
logger.info("Initialized state from db", {
|
|
32
46
|
slot: state.slot,
|
|
33
47
|
epoch: computeEpochAtSlot(state.slot),
|
|
34
48
|
stateRoot: toRootHex(state.hashTreeRoot()),
|
|
35
49
|
isFinalized: true,
|
|
50
|
+
nativeStateTransition,
|
|
36
51
|
});
|
|
37
52
|
},
|
|
38
53
|
};
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"prepareStateInitialization.js","sourceRoot":"","sources":["../../../../src/cmds/beacon/stateInitialization/prepareStateInitialization.ts"],"names":[],"mappings":"AAAA,OAAO,EAAC,kBAAkB,EAAC,MAAM,kBAAkB,CAAC;AACpD,OAAO,EAAC,kBAAkB,EAAC,MAAM,4BAA4B,CAAC;AAC9D,OAAO,EAAC,WAAW,EAAE,SAAS,EAAC,MAAM,iBAAiB,CAAC;AACvD,OAAO,EACL,kCAAkC,EAClC,mCAAmC,EACnC,0CAA0C,GAC3C,MAAM,sBAAsB,CAAC;AAE9B,OAAO,EAAC,kCAAkC,EAAC,MAAM,iBAAiB,CAAC;AAEnE,MAAM,UAAU,kCAAkC,CAChD,EAAC,UAAU,EAAE,QAAQ,EAAE,8BAA8B,EAAqB,EAC1E,EAAC,eAAe,EAAE,MAAM,EAA0B;
|
|
1
|
+
{"version":3,"file":"prepareStateInitialization.js","sourceRoot":"","sources":["../../../../src/cmds/beacon/stateInitialization/prepareStateInitialization.ts"],"names":[],"mappings":"AAAA,OAAO,EAAC,kBAAkB,EAAC,MAAM,kBAAkB,CAAC;AACpD,OAAO,EAAC,kBAAkB,EAAC,MAAM,4BAA4B,CAAC;AAC9D,OAAO,EAAC,WAAW,EAAE,SAAS,EAAC,MAAM,iBAAiB,CAAC;AACvD,OAAO,EACL,kCAAkC,EAClC,mCAAmC,EACnC,0CAA0C,GAC3C,MAAM,sBAAsB,CAAC;AAE9B,OAAO,EAAC,kCAAkC,EAAC,MAAM,iBAAiB,CAAC;AAEnE,MAAM,UAAU,kCAAkC,CAChD,EAAC,UAAU,EAAE,QAAQ,EAAE,8BAA8B,EAAqB,EAC1E,EAAC,eAAe,EAAE,EAAE,EAAE,MAAM,EAA0B;IAEtD,MAAM,MAAM,GAAG,kBAAkB,CAAC,eAAe,EAAE,QAAQ,CAAC,qBAAqB,CAAC,CAAC;IACnF,OAAO;QACL,UAAU;QACV,MAAM;QACN,WAAW,EAAE,IAAI;QACjB,QAAQ,CAAC,KAAK;YACZ,kCAAkC,CAAC,MAAM,EAAE,KAAK,CAAC,CAAC;YAClD,MAAM,OAAO,GAAG;gBACd,IAAI,EAAE,KAAK,CAAC,IAAI;gBAChB,KAAK,EAAE,kBAAkB,CAAC,KAAK,CAAC,IAAI,CAAC;gBACrC,SAAS,EAAE,WAAW,CAAC,UAAU,CAAC,MAAM,CAAC;gBACzC,SAAS,EAAE,SAAS,CAAC,KAAK,CAAC,YAAY,EAAE,CAAC;gBAC1C,8BAA8B;aAC/B,CAAC;YACF,IAAI,8BAA8B,EAAE,CAAC;gBACnC,MAAM,CAAC,IAAI,CAAC,2CAA2C,EAAE,OAAO,CAAC,CAAC;YACpE,CAAC;iBAAM,CAAC;gBACN,MAAM,CAAC,IAAI,CAAC,qEAAqE,EAAE,OAAO,CAAC,CAAC;gBAC5F,MAAM,CAAC,IAAI,CAAC,+EAA+E,CAAC,CAAC;YAC/F,CAAC;QACH,CAAC;QACD,KAAK,CAAC,+BAA+B,CAAC,KAAK;YACzC,MAAM,MAAM,GAAG,MAAM,EAAE,CAAC,qBAAqB,CAAC,GAAG,EAAE,CAAC;YACpD,iFAAiF;YACjF,IAAI,MAAM,KAAK,IAAI,EAAE,CAAC;gBACpB,MAAM,CAAC,OAAO,CAAC,2CAA2C,EAAE;oBAC1D,UAAU,EAAE,KAAK,CAAC,IAAI;oBACtB,qBAAqB,EAAE,MAAM;iBAC9B,CAAC,CAAC;gBACH,OAAO,MAAM,CAAC;YAChB,CAAC;YACD,sGAAsG;YACtG,MAAM,EAAE,CAAC,qBAAqB,CAAC,GAAG,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC;YAC/C,OAAO,KAAK,CAAC,IAAI,CAAC;QACpB,CAAC;QACD,OAAO,EAAE,IAAI;QACb,GAAG,CAAC,KAAK,EAAE,qBAAqB;YAC9B,MAAM,CAAC,IAAI,CAAC,2BAA2B,EAAE;gBACvC,IAAI,EAAE,KAAK,CAAC,IAAI;gBAChB,KAAK,EAAE,kBAAkB,CAAC,KAAK,CAAC,IAAI,CAAC;gBACrC,SAAS,EAAE,SAAS,CAAC,KAAK,CAAC,YAAY,EAAE,CAAC;gBAC1C,WAAW,EAAE,IAAI;gBACjB,qBAAqB;aACtB,CAAC,CAAC;QACL,CAAC;KACF,CAAC;AACJ,CAAC;AAED,MAAM,CAAC,KAAK,UAAU,qCAAqC,CACzD,OAAmC,EACnC,QAAmC,EACnC,OAAgC;IAEhC,IAAI,OAAO,CAAC,eAAe,EAAE,CAAC;QAC5B,OAAO,mCAAmC,CAAC,OAAO,CAAC,eAAe,EAAE,OAAO,EAAE,QAAQ,EAAE,OAAO,CAAC,CAAC;IAClG,CAAC;IACD,IAAI,OAAO,CAAC,iBAAiB,EAAE,CAAC;QAC9B,OAAO,kCAAkC,CAAC,OAAO,CAAC,iBAAiB,EAAE,OAAO,EAAE,QAAQ,EAAE,OAAO,CAAC,CAAC;IACnG,CAAC;IACD,IAAI,OAAO,CAAC,4BAA4B,IAAI,OAAO,CAAC,qBAAqB,EAAE,CAAC;QAC1E,OAAO,0CAA0C,CAAC,OAAO,EAAE,QAAQ,EAAE,OAAO,CAAC,CAAC;IAChF,CAAC;IACD,OAAO,IAAI,CAAC;AACd,CAAC"}
|
|
@@ -1,11 +1,12 @@
|
|
|
1
1
|
import { IBeaconDb } from "@lodestar/beacon-node";
|
|
2
2
|
import { BeaconConfig, ChainForkConfig } from "@lodestar/config";
|
|
3
3
|
import { IBeaconStateView, StateBytesMetadata, WeakSubjectivitySummary } from "@lodestar/state-transition";
|
|
4
|
+
import { Slot } from "@lodestar/types";
|
|
4
5
|
import { Checkpoint } from "@lodestar/types/phase0";
|
|
5
6
|
import { Logger } from "@lodestar/utils";
|
|
6
7
|
import { GlobalArgs } from "../../../options/globalOptions.js";
|
|
7
8
|
import { BeaconArgs } from "../options.js";
|
|
8
|
-
export type StateInitializationOptions = Pick<BeaconArgs & GlobalArgs, "checkpointState" | "checkpointSyncUrl" | "unsafeCheckpointState" | "lastPersistedCheckpointState" | "genesisStateFile" | "wssCheckpoint" | "forceCheckpointSync" | "ignoreWeakSubjectivityCheck" | "network" | "chain.nHistoricalStatesFileDataStore" | "chain.
|
|
9
|
+
export type StateInitializationOptions = Pick<BeaconArgs & GlobalArgs, "checkpointState" | "checkpointSyncUrl" | "unsafeCheckpointState" | "lastPersistedCheckpointState" | "genesisStateFile" | "wssCheckpoint" | "forceCheckpointSync" | "ignoreWeakSubjectivityCheck" | "network" | "chain.nHistoricalStatesFileDataStore" | "chain.nativeStateTransition">;
|
|
9
10
|
export type StatePreparationContext = {
|
|
10
11
|
chainForkConfig: ChainForkConfig;
|
|
11
12
|
db: IBeaconDb;
|
|
@@ -34,7 +35,8 @@ export type StateInitialization = {
|
|
|
34
35
|
config: BeaconConfig;
|
|
35
36
|
isFinalized: boolean;
|
|
36
37
|
validate: (state: IBeaconStateView) => void;
|
|
38
|
+
initializeEarliestAvailableSlot: (state: IBeaconStateView) => Promise<Slot>;
|
|
37
39
|
persist: ((state: IBeaconStateView, stateBytes: Uint8Array) => Promise<void>) | null;
|
|
38
|
-
log: (state: IBeaconStateView) => void;
|
|
40
|
+
log: (state: IBeaconStateView, nativeStateTransition: boolean) => void;
|
|
39
41
|
};
|
|
40
42
|
//# sourceMappingURL=types.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../../../src/cmds/beacon/stateInitialization/types.ts"],"names":[],"mappings":"AAAA,OAAO,EAAC,SAAS,EAAC,MAAM,uBAAuB,CAAC;AAChD,OAAO,EAAC,YAAY,EAAE,eAAe,EAAC,MAAM,kBAAkB,CAAC;AAC/D,OAAO,EAAC,gBAAgB,EAAE,kBAAkB,EAAE,uBAAuB,EAAC,MAAM,4BAA4B,CAAC;AACzG,OAAO,EAAC,UAAU,EAAC,MAAM,wBAAwB,CAAC;AAClD,OAAO,EAAC,MAAM,EAAC,MAAM,iBAAiB,CAAC;AACvC,OAAO,EAAC,UAAU,EAAC,MAAM,mCAAmC,CAAC;AAC7D,OAAO,EAAC,UAAU,EAAC,MAAM,eAAe,CAAC;AAEzC,MAAM,MAAM,0BAA0B,GAAG,IAAI,CAC3C,UAAU,GAAG,UAAU,EACrB,iBAAiB,GACjB,mBAAmB,GACnB,uBAAuB,GACvB,8BAA8B,GAC9B,kBAAkB,GAClB,eAAe,GACf,qBAAqB,GACrB,6BAA6B,GAC7B,SAAS,GACT,sCAAsC,GACtC,
|
|
1
|
+
{"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../../../src/cmds/beacon/stateInitialization/types.ts"],"names":[],"mappings":"AAAA,OAAO,EAAC,SAAS,EAAC,MAAM,uBAAuB,CAAC;AAChD,OAAO,EAAC,YAAY,EAAE,eAAe,EAAC,MAAM,kBAAkB,CAAC;AAC/D,OAAO,EAAC,gBAAgB,EAAE,kBAAkB,EAAE,uBAAuB,EAAC,MAAM,4BAA4B,CAAC;AACzG,OAAO,EAAC,IAAI,EAAC,MAAM,iBAAiB,CAAC;AACrC,OAAO,EAAC,UAAU,EAAC,MAAM,wBAAwB,CAAC;AAClD,OAAO,EAAC,MAAM,EAAC,MAAM,iBAAiB,CAAC;AACvC,OAAO,EAAC,UAAU,EAAC,MAAM,mCAAmC,CAAC;AAC7D,OAAO,EAAC,UAAU,EAAC,MAAM,eAAe,CAAC;AAEzC,MAAM,MAAM,0BAA0B,GAAG,IAAI,CAC3C,UAAU,GAAG,UAAU,EACrB,iBAAiB,GACjB,mBAAmB,GACnB,uBAAuB,GACvB,8BAA8B,GAC9B,kBAAkB,GAClB,eAAe,GACf,qBAAqB,GACrB,6BAA6B,GAC7B,SAAS,GACT,sCAAsC,GACtC,6BAA6B,CAChC,CAAC;AAEF,MAAM,MAAM,uBAAuB,GAAG;IACpC,eAAe,EAAE,eAAe,CAAC;IACjC,EAAE,EAAE,SAAS,CAAC;IACd,OAAO,EAAE,MAAM,CAAC;IAChB,MAAM,EAAE,MAAM,CAAC;CAChB,CAAC;AAEF,MAAM,MAAM,kBAAkB,GAAG;IAC/B,UAAU,EAAE,UAAU,CAAC;IACvB,QAAQ,EAAE,kBAAkB,CAAC;IAC7B,gBAAgB,EAAE,uBAAuB,CAAC;IAC1C,8BAA8B,EAAE,OAAO,CAAC;CACzC,CAAC;AAEF,MAAM,MAAM,6BAA6B,GAAG;IAC1C,UAAU,EAAE,UAAU,CAAC;IACvB,kBAAkB,EAAE,UAAU,GAAG,IAAI,CAAC;IACtC,MAAM,EAAE,iBAAiB,GAAG,mBAAmB,GAAG,oBAAoB,CAAC;CACxE,CAAC;AAEF,MAAM,MAAM,uBAAuB,GAAG;IACpC,WAAW,EAAE,OAAO,CAAC;IACrB,mBAAmB,EAAE,OAAO,CAAC;IAC7B,2BAA2B,EAAE,OAAO,CAAC;CACtC,CAAC;AAEF,qEAAqE;AACrE,MAAM,MAAM,mBAAmB,GAAG;IAChC,UAAU,EAAE,UAAU,CAAC;IACvB,MAAM,EAAE,YAAY,CAAC;IACrB,WAAW,EAAE,OAAO,CAAC;IACrB,QAAQ,EAAE,CAAC,KAAK,EAAE,gBAAgB,KAAK,IAAI,CAAC;IAC5C,+BAA+B,EAAE,CAAC,KAAK,EAAE,gBAAgB,KAAK,OAAO,CAAC,IAAI,CAAC,CAAC;IAC5E,OAAO,EAAE,CAAC,CAAC,KAAK,EAAE,gBAAgB,EAAE,UAAU,EAAE,UAAU,KAAK,OAAO,CAAC,IAAI,CAAC,CAAC,GAAG,IAAI,CAAC;IACrF,GAAG,EAAE,CAAC,KAAK,EAAE,gBAAgB,EAAE,qBAAqB,EAAE,OAAO,KAAK,IAAI,CAAC;CACxE,CAAC"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"handler.d.ts","sourceRoot":"","sources":["../../../src/cmds/dev/handler.ts"],"names":[],"mappings":"AAKA,OAAO,EAAC,UAAU,EAAC,MAAM,wBAAwB,CAAC;AAOlD,OAAO,EAAC,QAAQ,EAAC,MAAM,cAAc,CAAC;AAEtC;;GAEG;AACH,wBAAsB,UAAU,CAAC,IAAI,EAAE,QAAQ,GAAG,UAAU,GAAG,OAAO,CAAC,IAAI,CAAC,
|
|
1
|
+
{"version":3,"file":"handler.d.ts","sourceRoot":"","sources":["../../../src/cmds/dev/handler.ts"],"names":[],"mappings":"AAKA,OAAO,EAAC,UAAU,EAAC,MAAM,wBAAwB,CAAC;AAOlD,OAAO,EAAC,QAAQ,EAAC,MAAM,cAAc,CAAC;AAEtC;;GAEG;AACH,wBAAsB,UAAU,CAAC,IAAI,EAAE,QAAQ,GAAG,UAAU,GAAG,OAAO,CAAC,IAAI,CAAC,CAsE3E"}
|
package/lib/cmds/dev/handler.js
CHANGED
|
@@ -25,13 +25,15 @@ export async function devHandler(args) {
|
|
|
25
25
|
}
|
|
26
26
|
// Note: defaults to network "dev", to all paths are custom and don't conflict with networks.
|
|
27
27
|
// Flag --reset cleans up the custom dirs on dev stop
|
|
28
|
-
const beaconDbDir = getBeaconPaths(args, network)
|
|
28
|
+
const { dbDir: beaconDbDir, pubkeysFile } = getBeaconPaths(args, network);
|
|
29
29
|
const validatorsDbDir = getValidatorPaths(args, network).validatorsDbDir;
|
|
30
30
|
// Remove slashing protection db. Otherwise the validators won't be able to propose nor attest
|
|
31
31
|
// until the clock reach a higher slot than the previous run of the dev command
|
|
32
32
|
if (args.genesisTime === undefined) {
|
|
33
33
|
await rimraf(beaconDbDir);
|
|
34
34
|
await rimraf(validatorsDbDir);
|
|
35
|
+
// Validators deposited in the previous run do not exist on the new chain
|
|
36
|
+
await rimraf(pubkeysFile);
|
|
35
37
|
}
|
|
36
38
|
mkdir(beaconDbDir);
|
|
37
39
|
mkdir(validatorsDbDir);
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"handler.js","sourceRoot":"","sources":["../../../src/cmds/dev/handler.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,MAAM,SAAS,CAAC;AACzB,OAAO,EAAC,MAAM,EAAC,MAAM,QAAQ,CAAC;AAC9B,OAAO,EAAC,SAAS,EAAC,MAAM,uBAAuB,CAAC;AAChD,OAAO,EAAC,OAAO,EAAE,KAAK,EAAC,MAAM,iBAAiB,CAAC;AAC/C,OAAO,EAAC,uBAAuB,EAAC,MAAM,8BAA8B,CAAC;AAErE,OAAO,EAAC,KAAK,EAAE,kBAAkB,EAAC,MAAM,qBAAqB,CAAC;AAC9D,OAAO,EAAC,aAAa,EAAC,MAAM,sBAAsB,CAAC;AACnD,OAAO,EAAC,cAAc,EAAC,MAAM,oBAAoB,CAAC;AAClD,OAAO,EAAC,gBAAgB,EAAC,MAAM,yBAAyB,CAAC;AACzD,OAAO,EAAC,iBAAiB,EAAC,MAAM,uBAAuB,CAAC;AACxD,OAAO,EAAC,iBAAiB,EAAC,MAAM,YAAY,CAAC;AAG7C;;GAEG;AACH,MAAM,CAAC,KAAK,UAAU,UAAU,CAAC,IAA2B;IAC1D,MAAM,EAAC,MAAM,EAAC,GAAG,uBAAuB,CAAC,IAAI,CAAC,CAAC;IAE/C,IAAI,IAAI,CAAC,gBAAgB,EAAE,CAAC;QAC1B,MAAM,iBAAiB,CAAC,MAAM,EAAE,IAAI,CAAC,gBAAgB,EAAE,IAAI,CAAC,iBAAiB,CAAC,CAAC;QAC/E,OAAO;IACT,CAAC;IAED,2BAA2B;IAC3B,MAAM,OAAO,GAAG,KAAK,CAAC;IACtB,IAAI,IAAI,CAAC,OAAO,IAAI,IAAI,CAAC,OAAO,KAAK,OAAO,EAAE,CAAC;QAC7C,MAAM,KAAK,CAAC,0CAA0C,IAAI,CAAC,OAAO,uBAAuB,CAAC,CAAC;IAC7F,CAAC;IAED,6FAA6F;IAC7F,qDAAqD;IACrD,MAAM,WAAW,GAAG,cAAc,CAAC,IAAI,EAAE,OAAO,CAAC,CAAC
|
|
1
|
+
{"version":3,"file":"handler.js","sourceRoot":"","sources":["../../../src/cmds/dev/handler.ts"],"names":[],"mappings":"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"}
|
|
@@ -119,10 +119,11 @@ export declare const devOptions: {
|
|
|
119
119
|
"chain.maxSkipSlots"?: CliOptionDefinition<any> | undefined;
|
|
120
120
|
"chain.minSameMessageSignatureSetsToBatch"?: CliOptionDefinition<any> | undefined;
|
|
121
121
|
"chain.nHistoricalStatesFileDataStore"?: CliOptionDefinition<any> | undefined;
|
|
122
|
-
"chain.
|
|
122
|
+
"chain.nativeStateTransition"?: CliOptionDefinition<any> | undefined;
|
|
123
123
|
"chain.persistInvalidSszObjects"?: CliOptionDefinition<any> | undefined;
|
|
124
124
|
"chain.persistOrphanedBlocks"?: CliOptionDefinition<any> | undefined;
|
|
125
125
|
"chain.persistProducedBlocks"?: CliOptionDefinition<any> | undefined;
|
|
126
|
+
"chain.persistProducedPayloadEnvelopes"?: CliOptionDefinition<any> | undefined;
|
|
126
127
|
"chain.preaggregateSlotDistance"?: CliOptionDefinition<any> | undefined;
|
|
127
128
|
"chain.proposerBoost"?: CliOptionDefinition<any> | undefined;
|
|
128
129
|
"chain.proposerBoostReorg"?: CliOptionDefinition<any> | undefined;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"options.d.ts","sourceRoot":"","sources":["../../../src/cmds/dev/options.ts"],"names":[],"mappings":"AAAA,OAAO,EAAoB,mBAAmB,EAAC,MAAM,iBAAiB,CAAC;AAIvE,OAAO,EAAC,UAAU,EAAgB,MAAM,sBAAsB,CAAC;AAC/D,OAAO,EAAC,iBAAiB,EAAmB,MAAM,yBAAyB,CAAC;AAE5E,KAAK,WAAW,GAAG;IACjB,eAAe,CAAC,EAAE,MAAM,CAAC;IACzB,iBAAiB,EAAE,MAAM,CAAC;IAC1B,eAAe,CAAC,EAAE,MAAM,EAAE,CAAC;IAC3B,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,KAAK,CAAC,EAAE,OAAO,CAAC;IAChB,gBAAgB,CAAC,EAAE,MAAM,CAAC;CAC3B,CAAC;AA6FF,eAAO,MAAM,UAAU
|
|
1
|
+
{"version":3,"file":"options.d.ts","sourceRoot":"","sources":["../../../src/cmds/dev/options.ts"],"names":[],"mappings":"AAAA,OAAO,EAAoB,mBAAmB,EAAC,MAAM,iBAAiB,CAAC;AAIvE,OAAO,EAAC,UAAU,EAAgB,MAAM,sBAAsB,CAAC;AAC/D,OAAO,EAAC,iBAAiB,EAAmB,MAAM,yBAAyB,CAAC;AAE5E,KAAK,WAAW,GAAG;IACjB,eAAe,CAAC,EAAE,MAAM,CAAC;IACzB,iBAAiB,EAAE,MAAM,CAAC;IAC1B,eAAe,CAAC,EAAE,MAAM,EAAE,CAAC;IAC3B,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,KAAK,CAAC,EAAE,OAAO,CAAC;IAChB,gBAAgB,CAAC,EAAE,MAAM,CAAC;CAC3B,CAAC;AA6FF,eAAO,MAAM,UAAU;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;CAKtB,CAAC;AAEF,MAAM,MAAM,QAAQ,GAAG,UAAU,GAAG,iBAAiB,GAAG,WAAW,CAAC"}
|
|
@@ -10,6 +10,7 @@ export type ChainArgs = {
|
|
|
10
10
|
"chain.blsVerifyAllMainThread"?: boolean;
|
|
11
11
|
"chain.disableBlsBatchVerify"?: boolean;
|
|
12
12
|
"chain.persistProducedBlocks"?: boolean;
|
|
13
|
+
"chain.persistProducedPayloadEnvelopes"?: boolean;
|
|
13
14
|
"chain.persistInvalidSszObjects"?: boolean;
|
|
14
15
|
"chain.persistOrphanedBlocks"?: boolean;
|
|
15
16
|
"chain.dedupePayloads"?: boolean;
|
|
@@ -30,7 +31,7 @@ export type ChainArgs = {
|
|
|
30
31
|
"chain.archiveDataEpochs"?: number;
|
|
31
32
|
"chain.archiveMode": ArchiveMode;
|
|
32
33
|
"chain.nHistoricalStatesFileDataStore"?: boolean;
|
|
33
|
-
"chain.
|
|
34
|
+
"chain.nativeStateTransition"?: boolean;
|
|
34
35
|
"chain.maxBlockStates"?: number;
|
|
35
36
|
"chain.maxCPStateEpochsInMemory"?: number;
|
|
36
37
|
"chain.maxCPStateEpochsOnDisk"?: number;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"chain.d.ts","sourceRoot":"","sources":["../../../src/options/beaconNodeOptions/chain.ts"],"names":[],"mappings":"AAAA,OAAO,EAAC,WAAW,EAAwB,kBAAkB,EAAiB,MAAM,uBAAuB,CAAC;AAC5G,OAAO,EAAC,iBAAiB,EAAC,MAAM,iBAAiB,CAAC;AAElD,OAAO,EAAC,kBAAkB,EAAC,MAAM,cAAc,CAAC;AAEhD,MAAM,MAAM,SAAS,GAAG;IACtB,qBAAqB,EAAE,MAAM,CAAC;IAC9B,cAAc,CAAC,EAAE,OAAO,CAAC;IACzB,oBAAoB,CAAC,EAAE,OAAO,CAAC;IAC/B,yBAAyB,CAAC,EAAE,MAAM,EAAE,CAAC;IACrC,+BAA+B,CAAC,EAAE,OAAO,CAAC;IAC1C,8BAA8B,CAAC,EAAE,OAAO,CAAC;IACzC,6BAA6B,CAAC,EAAE,OAAO,CAAC;IACxC,6BAA6B,CAAC,EAAE,OAAO,CAAC;IACxC,gCAAgC,CAAC,EAAE,OAAO,CAAC;IAI3C,6BAA6B,CAAC,EAAE,OAAO,CAAC;IACxC,sBAAsB,CAAC,EAAE,OAAO,CAAC;IACjC,qBAAqB,CAAC,EAAE,OAAO,CAAC;IAChC,0BAA0B,CAAC,EAAE,OAAO,CAAC;IACrC,iCAAiC,CAAC,EAAE,OAAO,CAAC;IAC5C,gCAAgC,CAAC,EAAE,MAAM,CAAC;IAC1C,gCAAgC,CAAC,EAAE,MAAM,CAAC;IAC1C,yBAAyB,CAAC,EAAE,OAAO,CAAC;IACpC,wBAAwB,CAAC,EAAE,OAAO,CAAC;IACnC,oBAAoB,CAAC,EAAE,MAAM,CAAC;IAC9B,gCAAgC,CAAC,EAAE,OAAO,CAAC;IAC3C,qBAAqB,CAAC,EAAE,OAAO,CAAC;IAChC,6BAA6B,CAAC,EAAE,MAAM,CAAC;IACvC,0CAA0C,CAAC,EAAE,MAAM,CAAC;IACpD,+BAA+B,CAAC,EAAE,MAAM,CAAC;IACzC,kCAAkC,EAAE,MAAM,CAAC;IAC3C,yBAAyB,CAAC,EAAE,MAAM,CAAC;IACnC,mBAAmB,EAAE,WAAW,CAAC;IACjC,sCAAsC,CAAC,EAAE,OAAO,CAAC;IACjD,
|
|
1
|
+
{"version":3,"file":"chain.d.ts","sourceRoot":"","sources":["../../../src/options/beaconNodeOptions/chain.ts"],"names":[],"mappings":"AAAA,OAAO,EAAC,WAAW,EAAwB,kBAAkB,EAAiB,MAAM,uBAAuB,CAAC;AAC5G,OAAO,EAAC,iBAAiB,EAAC,MAAM,iBAAiB,CAAC;AAElD,OAAO,EAAC,kBAAkB,EAAC,MAAM,cAAc,CAAC;AAEhD,MAAM,MAAM,SAAS,GAAG;IACtB,qBAAqB,EAAE,MAAM,CAAC;IAC9B,cAAc,CAAC,EAAE,OAAO,CAAC;IACzB,oBAAoB,CAAC,EAAE,OAAO,CAAC;IAC/B,yBAAyB,CAAC,EAAE,MAAM,EAAE,CAAC;IACrC,+BAA+B,CAAC,EAAE,OAAO,CAAC;IAC1C,8BAA8B,CAAC,EAAE,OAAO,CAAC;IACzC,6BAA6B,CAAC,EAAE,OAAO,CAAC;IACxC,6BAA6B,CAAC,EAAE,OAAO,CAAC;IACxC,uCAAuC,CAAC,EAAE,OAAO,CAAC;IAClD,gCAAgC,CAAC,EAAE,OAAO,CAAC;IAI3C,6BAA6B,CAAC,EAAE,OAAO,CAAC;IACxC,sBAAsB,CAAC,EAAE,OAAO,CAAC;IACjC,qBAAqB,CAAC,EAAE,OAAO,CAAC;IAChC,0BAA0B,CAAC,EAAE,OAAO,CAAC;IACrC,iCAAiC,CAAC,EAAE,OAAO,CAAC;IAC5C,gCAAgC,CAAC,EAAE,MAAM,CAAC;IAC1C,gCAAgC,CAAC,EAAE,MAAM,CAAC;IAC1C,yBAAyB,CAAC,EAAE,OAAO,CAAC;IACpC,wBAAwB,CAAC,EAAE,OAAO,CAAC;IACnC,oBAAoB,CAAC,EAAE,MAAM,CAAC;IAC9B,gCAAgC,CAAC,EAAE,OAAO,CAAC;IAC3C,qBAAqB,CAAC,EAAE,OAAO,CAAC;IAChC,6BAA6B,CAAC,EAAE,MAAM,CAAC;IACvC,0CAA0C,CAAC,EAAE,MAAM,CAAC;IACpD,+BAA+B,CAAC,EAAE,MAAM,CAAC;IACzC,kCAAkC,EAAE,MAAM,CAAC;IAC3C,yBAAyB,CAAC,EAAE,MAAM,CAAC;IACnC,mBAAmB,EAAE,WAAW,CAAC;IACjC,sCAAsC,CAAC,EAAE,OAAO,CAAC;IACjD,6BAA6B,CAAC,EAAE,OAAO,CAAC;IACxC,sBAAsB,CAAC,EAAE,MAAM,CAAC;IAChC,gCAAgC,CAAC,EAAE,MAAM,CAAC;IAC1C,8BAA8B,CAAC,EAAE,MAAM,CAAC;IAExC,oBAAoB,CAAC,EAAE,OAAO,CAAC;CAChC,CAAC;AAEF,wBAAgB,SAAS,CAAC,IAAI,EAAE,SAAS,GAAG,kBAAkB,GAAG,kBAAkB,CAAC,OAAO,CAAC,CA8C3F;AAED,eAAO,MAAM,OAAO,EAAE,iBAAiB,CAAC,SAAS,CAqRhD,CAAC"}
|
|
@@ -10,6 +10,7 @@ export function parseArgs(args) {
|
|
|
10
10
|
blsVerifyAllMainThread: args["chain.blsVerifyAllMainThread"],
|
|
11
11
|
disableBlsBatchVerify: args["chain.disableBlsBatchVerify"],
|
|
12
12
|
persistProducedBlocks: args["chain.persistProducedBlocks"],
|
|
13
|
+
persistProducedPayloadEnvelopes: args["chain.persistProducedPayloadEnvelopes"],
|
|
13
14
|
persistInvalidSszObjects: args["chain.persistInvalidSszObjects"],
|
|
14
15
|
// biome-ignore lint/suspicious/noExplicitAny: We need to use `any` type here
|
|
15
16
|
persistInvalidSszObjectsDir: undefined,
|
|
@@ -34,7 +35,7 @@ export function parseArgs(args) {
|
|
|
34
35
|
archiveDataEpochs: args["chain.archiveDataEpochs"],
|
|
35
36
|
archiveMode: args["chain.archiveMode"] ?? defaultOptions.chain.archiveMode,
|
|
36
37
|
nHistoricalStatesFileDataStore: args["chain.nHistoricalStatesFileDataStore"] ?? defaultOptions.chain.nHistoricalStatesFileDataStore,
|
|
37
|
-
|
|
38
|
+
nativeStateTransition: args["chain.nativeStateTransition"] ?? defaultOptions.chain.nativeStateTransition,
|
|
38
39
|
maxBlockStates: args["chain.maxBlockStates"] ?? defaultOptions.chain.maxBlockStates,
|
|
39
40
|
maxCPStateEpochsInMemory: args["chain.maxCPStateEpochsInMemory"] ?? defaultOptions.chain.maxCPStateEpochsInMemory,
|
|
40
41
|
maxCPStateEpochsOnDisk: args["chain.maxCPStateEpochsOnDisk"] ?? defaultOptions.chain.maxCPStateEpochsOnDisk,
|
|
@@ -110,6 +111,12 @@ Will double processing times. Use only for debugging purposes.",
|
|
|
110
111
|
description: "Persist produced blocks or not for debugging purpose",
|
|
111
112
|
group: "chain",
|
|
112
113
|
},
|
|
114
|
+
"chain.persistProducedPayloadEnvelopes": {
|
|
115
|
+
hidden: true,
|
|
116
|
+
type: "boolean",
|
|
117
|
+
description: "Persist produced execution payload envelopes as SSZ files for debugging",
|
|
118
|
+
group: "chain",
|
|
119
|
+
},
|
|
113
120
|
"chain.persistInvalidSszObjects": {
|
|
114
121
|
hidden: true,
|
|
115
122
|
type: "boolean",
|
|
@@ -235,11 +242,11 @@ Will double processing times. Use only for debugging purposes.",
|
|
|
235
242
|
default: defaultOptions.chain.nHistoricalStatesFileDataStore,
|
|
236
243
|
group: "chain",
|
|
237
244
|
},
|
|
238
|
-
"chain.
|
|
245
|
+
"chain.nativeStateTransition": {
|
|
239
246
|
hidden: true,
|
|
240
|
-
description: "Use native (Zig)
|
|
247
|
+
description: "Use native (Zig) state transition instead of JS implementation",
|
|
241
248
|
type: "boolean",
|
|
242
|
-
default: defaultOptions.chain.
|
|
249
|
+
default: defaultOptions.chain.nativeStateTransition,
|
|
243
250
|
group: "chain",
|
|
244
251
|
},
|
|
245
252
|
"chain.maxBlockStates": {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"chain.js","sourceRoot":"","sources":["../../../src/options/beaconNodeOptions/chain.ts"],"names":[],"mappings":"AAAA,OAAO,EAAC,WAAW,EAAE,oBAAoB,EAAsB,cAAc,EAAC,MAAM,uBAAuB,CAAC;AAE5G,OAAO,EAAC,cAAc,EAAC,MAAM,sBAAsB,CAAC;
|
|
1
|
+
{"version":3,"file":"chain.js","sourceRoot":"","sources":["../../../src/options/beaconNodeOptions/chain.ts"],"names":[],"mappings":"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"}
|
|
@@ -43,6 +43,7 @@ export declare const beaconNodeOptions: {
|
|
|
43
43
|
"chain.blsVerifyAllMainThread": import("@lodestar/utils").CliOptionDefinition<boolean | undefined>;
|
|
44
44
|
"chain.disableBlsBatchVerify": import("@lodestar/utils").CliOptionDefinition<boolean | undefined>;
|
|
45
45
|
"chain.persistProducedBlocks": import("@lodestar/utils").CliOptionDefinition<boolean | undefined>;
|
|
46
|
+
"chain.persistProducedPayloadEnvelopes": import("@lodestar/utils").CliOptionDefinition<boolean | undefined>;
|
|
46
47
|
"chain.persistInvalidSszObjects": import("@lodestar/utils").CliOptionDefinition<boolean | undefined>;
|
|
47
48
|
"chain.persistOrphanedBlocks": import("@lodestar/utils").CliOptionDefinition<boolean | undefined>;
|
|
48
49
|
"chain.dedupePayloads": import("@lodestar/utils").CliOptionDefinition<boolean | undefined>;
|
|
@@ -67,7 +68,7 @@ export declare const beaconNodeOptions: {
|
|
|
67
68
|
demandOption: true;
|
|
68
69
|
});
|
|
69
70
|
"chain.nHistoricalStatesFileDataStore": import("@lodestar/utils").CliOptionDefinition<boolean | undefined>;
|
|
70
|
-
"chain.
|
|
71
|
+
"chain.nativeStateTransition": import("@lodestar/utils").CliOptionDefinition<boolean | undefined>;
|
|
71
72
|
"chain.maxBlockStates": import("@lodestar/utils").CliOptionDefinition<number | undefined>;
|
|
72
73
|
"chain.maxCPStateEpochsInMemory": import("@lodestar/utils").CliOptionDefinition<number | undefined>;
|
|
73
74
|
"chain.maxCPStateEpochsOnDisk": import("@lodestar/utils").CliOptionDefinition<number | undefined>;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/options/beaconNodeOptions/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAC,kBAAkB,EAAC,MAAM,uBAAuB,CAAC;AACzD,OAAO,EAAC,gBAAgB,EAAC,MAAM,iBAAiB,CAAC;AAEjD,OAAO,KAAK,GAAG,MAAM,UAAU,CAAC;AAChC,OAAO,KAAK,OAAO,MAAM,cAAc,CAAC;AACxC,OAAO,KAAK,KAAK,MAAM,YAAY,CAAC;AACpC,OAAO,KAAK,IAAI,MAAM,WAAW,CAAC;AAClC,OAAO,KAAK,SAAS,MAAM,gBAAgB,CAAC;AAC5C,OAAO,KAAK,OAAO,MAAM,cAAc,CAAC;AACxC,OAAO,KAAK,UAAU,MAAM,iBAAiB,CAAC;AAC9C,OAAO,KAAK,OAAO,MAAM,cAAc,CAAC;AACxC,OAAO,KAAK,IAAI,MAAM,WAAW,CAAC;AAElC,MAAM,MAAM,cAAc,GAAG,GAAG,CAAC,OAAO,GACtC,KAAK,CAAC,SAAS,GACf,IAAI,CAAC,QAAQ,GACb,SAAS,CAAC,mBAAmB,GAC7B,OAAO,CAAC,oBAAoB,GAC5B,OAAO,CAAC,WAAW,GACnB,UAAU,CAAC,cAAc,GACzB,OAAO,CAAC,WAAW,GACnB,IAAI,CAAC,QAAQ,CAAC;AAEhB,wBAAgB,mBAAmB,CAAC,IAAI,EAAE,cAAc,GAAG,gBAAgB,CAAC,kBAAkB,CAAC,CAa9F;AAED,eAAO,MAAM,iBAAiB
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/options/beaconNodeOptions/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAC,kBAAkB,EAAC,MAAM,uBAAuB,CAAC;AACzD,OAAO,EAAC,gBAAgB,EAAC,MAAM,iBAAiB,CAAC;AAEjD,OAAO,KAAK,GAAG,MAAM,UAAU,CAAC;AAChC,OAAO,KAAK,OAAO,MAAM,cAAc,CAAC;AACxC,OAAO,KAAK,KAAK,MAAM,YAAY,CAAC;AACpC,OAAO,KAAK,IAAI,MAAM,WAAW,CAAC;AAClC,OAAO,KAAK,SAAS,MAAM,gBAAgB,CAAC;AAC5C,OAAO,KAAK,OAAO,MAAM,cAAc,CAAC;AACxC,OAAO,KAAK,UAAU,MAAM,iBAAiB,CAAC;AAC9C,OAAO,KAAK,OAAO,MAAM,cAAc,CAAC;AACxC,OAAO,KAAK,IAAI,MAAM,WAAW,CAAC;AAElC,MAAM,MAAM,cAAc,GAAG,GAAG,CAAC,OAAO,GACtC,KAAK,CAAC,SAAS,GACf,IAAI,CAAC,QAAQ,GACb,SAAS,CAAC,mBAAmB,GAC7B,OAAO,CAAC,oBAAoB,GAC5B,OAAO,CAAC,WAAW,GACnB,UAAU,CAAC,cAAc,GACzB,OAAO,CAAC,WAAW,GACnB,IAAI,CAAC,QAAQ,CAAC;AAEhB,wBAAgB,mBAAmB,CAAC,IAAI,EAAE,cAAc,GAAG,gBAAgB,CAAC,kBAAkB,CAAC,CAa9F;AAED,eAAO,MAAM,iBAAiB;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;CAU7B,CAAC"}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@chainsafe/lodestar",
|
|
3
|
-
"version": "1.50.0-dev.
|
|
3
|
+
"version": "1.50.0-dev.2201499bbf",
|
|
4
4
|
"description": "Command line interface for lodestar",
|
|
5
5
|
"author": "ChainSafe Systems",
|
|
6
6
|
"license": "Apache-2.0",
|
|
@@ -63,22 +63,22 @@
|
|
|
63
63
|
"@chainsafe/enr": "^6.0.2",
|
|
64
64
|
"@chainsafe/lodestar-z": "catalog:",
|
|
65
65
|
"@chainsafe/persistent-merkle-tree": "^1.3.1",
|
|
66
|
-
"@chainsafe/ssz": "^1.8.
|
|
66
|
+
"@chainsafe/ssz": "^1.8.1",
|
|
67
67
|
"@chainsafe/threads": "^1.11.3",
|
|
68
68
|
"@libp2p/crypto": "^5.1.23",
|
|
69
69
|
"@libp2p/interface": "^3.3.0",
|
|
70
70
|
"@libp2p/peer-id": "^6.0.15",
|
|
71
|
-
"@lodestar/api": "^1.50.0-dev.
|
|
72
|
-
"@lodestar/beacon-node": "^1.50.0-dev.
|
|
73
|
-
"@lodestar/builder": "^1.50.0-dev.
|
|
74
|
-
"@lodestar/config": "^1.50.0-dev.
|
|
75
|
-
"@lodestar/db": "^1.50.0-dev.
|
|
76
|
-
"@lodestar/logger": "^1.50.0-dev.
|
|
77
|
-
"@lodestar/params": "^1.50.0-dev.
|
|
78
|
-
"@lodestar/state-transition": "^1.50.0-dev.
|
|
79
|
-
"@lodestar/types": "^1.50.0-dev.
|
|
80
|
-
"@lodestar/utils": "^1.50.0-dev.
|
|
81
|
-
"@lodestar/validator": "^1.50.0-dev.
|
|
71
|
+
"@lodestar/api": "^1.50.0-dev.2201499bbf",
|
|
72
|
+
"@lodestar/beacon-node": "^1.50.0-dev.2201499bbf",
|
|
73
|
+
"@lodestar/builder": "^1.50.0-dev.2201499bbf",
|
|
74
|
+
"@lodestar/config": "^1.50.0-dev.2201499bbf",
|
|
75
|
+
"@lodestar/db": "^1.50.0-dev.2201499bbf",
|
|
76
|
+
"@lodestar/logger": "^1.50.0-dev.2201499bbf",
|
|
77
|
+
"@lodestar/params": "^1.50.0-dev.2201499bbf",
|
|
78
|
+
"@lodestar/state-transition": "^1.50.0-dev.2201499bbf",
|
|
79
|
+
"@lodestar/types": "^1.50.0-dev.2201499bbf",
|
|
80
|
+
"@lodestar/utils": "^1.50.0-dev.2201499bbf",
|
|
81
|
+
"@lodestar/validator": "^1.50.0-dev.2201499bbf",
|
|
82
82
|
"@multiformats/multiaddr": "^13.0.1",
|
|
83
83
|
"deepmerge": "^4.3.1",
|
|
84
84
|
"ethers": "^6.7.0",
|
|
@@ -94,7 +94,7 @@
|
|
|
94
94
|
"devDependencies": {
|
|
95
95
|
"@chainsafe/as-sha256": "^1.2.5",
|
|
96
96
|
"@ethereumjs/rlp": "^4.0.1",
|
|
97
|
-
"@lodestar/test-utils": "^1.50.0-dev.
|
|
97
|
+
"@lodestar/test-utils": "^1.50.0-dev.2201499bbf",
|
|
98
98
|
"@types/debug": "^4.1.7",
|
|
99
99
|
"@types/inquirer": "^9.0.3",
|
|
100
100
|
"@types/js-yaml": "^4.0.5",
|
|
@@ -108,5 +108,5 @@
|
|
|
108
108
|
"web3": "^4.0.3",
|
|
109
109
|
"web3-eth-accounts": "^4.0.3"
|
|
110
110
|
},
|
|
111
|
-
"gitHead": "
|
|
111
|
+
"gitHead": "f17be8f75cae589ece74540313a79d6fcd270bc4"
|
|
112
112
|
}
|
|
@@ -27,6 +27,7 @@ import {initBeaconState} from "./initBeaconState.js";
|
|
|
27
27
|
import {initPrivateKeyAndEnr} from "./initPeerIdAndEnr.js";
|
|
28
28
|
import {BeaconArgs} from "./options.js";
|
|
29
29
|
import {getBeaconPaths} from "./paths.js";
|
|
30
|
+
import {savePubkeysFile} from "./pubkeysFile.js";
|
|
30
31
|
|
|
31
32
|
const DEFAULT_RETENTION_SSZ_OBJECTS_HOURS = 15 * 24;
|
|
32
33
|
const HOURS_TO_MS = 3600 * 1000;
|
|
@@ -78,7 +79,8 @@ export async function beaconHandler(args: BeaconArgs & GlobalArgs): Promise<void
|
|
|
78
79
|
anchorState,
|
|
79
80
|
config: beaconConfig,
|
|
80
81
|
isFinalized,
|
|
81
|
-
|
|
82
|
+
earliestAvailableSlot,
|
|
83
|
+
} = await initBeaconState(args, beaconPaths.dataDir, beaconPaths.pubkeysFile, config, db, logger);
|
|
82
84
|
|
|
83
85
|
const node = await BeaconNode.init({
|
|
84
86
|
opts: options,
|
|
@@ -93,6 +95,7 @@ export async function beaconHandler(args: BeaconArgs & GlobalArgs): Promise<void
|
|
|
93
95
|
peerStoreDir: beaconPaths.peerStoreDir,
|
|
94
96
|
anchorState,
|
|
95
97
|
isAnchorStateFinalized: isFinalized,
|
|
98
|
+
earliestAvailableSlot,
|
|
96
99
|
});
|
|
97
100
|
|
|
98
101
|
// dev debug option to have access to the BN instance
|
|
@@ -139,21 +142,21 @@ export async function beaconHandler(args: BeaconArgs & GlobalArgs): Promise<void
|
|
|
139
142
|
abortController.signal.addEventListener(
|
|
140
143
|
"abort",
|
|
141
144
|
async () => {
|
|
145
|
+
let exitCode = 0;
|
|
142
146
|
try {
|
|
143
147
|
await node.close();
|
|
144
148
|
logger.debug("Beacon node closed");
|
|
145
|
-
// Explicitly exit until active handles issue is resolved
|
|
146
|
-
// See https://github.com/ChainSafe/lodestar/issues/5642
|
|
147
|
-
process.exit(0);
|
|
148
149
|
} catch (e) {
|
|
149
150
|
// If we start from unfinalized state, we don't have checkpoint state so there is this error
|
|
150
151
|
// "No state in cache for finalized checkpoint state epoch"
|
|
151
152
|
logger.warn("Error closing beacon node", {}, e as Error);
|
|
152
153
|
// Make sure db is always closed gracefully
|
|
153
154
|
await db.close();
|
|
154
|
-
|
|
155
|
-
process.exit(1);
|
|
155
|
+
exitCode = 1;
|
|
156
156
|
}
|
|
157
|
+
savePubkeysFile(pubkeyCache, beaconPaths.pubkeysFile, logger);
|
|
158
|
+
// Explicitly exit process due to potential active handles
|
|
159
|
+
process.exit(exitCode);
|
|
157
160
|
},
|
|
158
161
|
{once: true}
|
|
159
162
|
);
|
|
@@ -229,6 +232,12 @@ export async function beaconHandlerInit(args: BeaconArgs & GlobalArgs) {
|
|
|
229
232
|
// Render final options
|
|
230
233
|
const options = beaconNodeOptions.getWithDefaults();
|
|
231
234
|
|
|
235
|
+
if (options.chain.nativeStateTransition && config.GLOAS_FORK_EPOCH !== Infinity) {
|
|
236
|
+
throw Error(
|
|
237
|
+
`--chain.nativeStateTransition does not support Gloas, which is scheduled at epoch ${config.GLOAS_FORK_EPOCH}`
|
|
238
|
+
);
|
|
239
|
+
}
|
|
240
|
+
|
|
232
241
|
return {config, options, beaconPaths, network, version, commit, privateKey, logger};
|
|
233
242
|
}
|
|
234
243
|
|
|
@@ -10,9 +10,11 @@ import {
|
|
|
10
10
|
isWithinWeakSubjectivityPeriodFromSummary,
|
|
11
11
|
readBeaconStateBytesMetadata,
|
|
12
12
|
} from "@lodestar/state-transition";
|
|
13
|
+
import {Slot} from "@lodestar/types";
|
|
13
14
|
import {Logger, formatBytes} from "@lodestar/utils";
|
|
14
15
|
import {GlobalArgs} from "../../options/globalOptions.js";
|
|
15
16
|
import {BeaconArgs} from "./options.js";
|
|
17
|
+
import {loadPubkeysFile} from "./pubkeysFile.js";
|
|
16
18
|
import {StateInitializationError, StateInitializationErrorCode} from "./stateInitialization/errors.js";
|
|
17
19
|
import {prepareGenesisInitialization} from "./stateInitialization/genesisState.js";
|
|
18
20
|
import {
|
|
@@ -26,21 +28,27 @@ import {
|
|
|
26
28
|
StatePreparationContext,
|
|
27
29
|
} from "./stateInitialization/types.js";
|
|
28
30
|
|
|
29
|
-
type InitBeaconStateResult = {
|
|
31
|
+
type InitBeaconStateResult = {
|
|
32
|
+
anchorState: IBeaconStateView;
|
|
33
|
+
config: BeaconConfig;
|
|
34
|
+
isFinalized: boolean;
|
|
35
|
+
earliestAvailableSlot: Slot;
|
|
36
|
+
};
|
|
30
37
|
|
|
31
38
|
/**
|
|
32
39
|
* Select serialized anchor bytes before constructing the state used for validation, persistence, and return.
|
|
33
|
-
* Populates the global `pubkeyCache` with the anchor state's validators.
|
|
40
|
+
* Populates the global `pubkeyCache` with the anchor state's validators, reusing `pubkeysFile` if it matches.
|
|
34
41
|
*/
|
|
35
42
|
export async function initBeaconState(
|
|
36
43
|
args: BeaconArgs & GlobalArgs,
|
|
37
44
|
dataDir: string,
|
|
45
|
+
pubkeysFile: string,
|
|
38
46
|
chainForkConfig: ChainForkConfig,
|
|
39
47
|
db: IBeaconDb,
|
|
40
48
|
logger: Logger
|
|
41
49
|
): Promise<InitBeaconStateResult> {
|
|
42
50
|
const options: StateInitializationOptions = args;
|
|
43
|
-
const
|
|
51
|
+
const nativeStateTransition = options["chain.nativeStateTransition"] ?? false;
|
|
44
52
|
if (
|
|
45
53
|
options.forceCheckpointSync &&
|
|
46
54
|
!(options.checkpointState || options.checkpointSyncUrl || options.unsafeCheckpointState)
|
|
@@ -66,7 +74,12 @@ export async function initBeaconState(
|
|
|
66
74
|
options.lastPersistedCheckpointState
|
|
67
75
|
);
|
|
68
76
|
if (!options.forceCheckpointSync && (!hasCheckpointSource || archived.isWithinWeakSubjectivityPeriod)) {
|
|
69
|
-
return executeStateInitialization(
|
|
77
|
+
return executeStateInitialization(
|
|
78
|
+
prepareArchivedStateInitialization(archived, context),
|
|
79
|
+
nativeStateTransition,
|
|
80
|
+
pubkeysFile,
|
|
81
|
+
logger
|
|
82
|
+
);
|
|
70
83
|
}
|
|
71
84
|
}
|
|
72
85
|
let stateInit = await prepareCheckpointSourceInitialization(options, archived, context);
|
|
@@ -77,7 +90,7 @@ export async function initBeaconState(
|
|
|
77
90
|
? prepareArchivedStateInitialization(archived, context)
|
|
78
91
|
: await prepareGenesisInitialization(options, context);
|
|
79
92
|
}
|
|
80
|
-
return executeStateInitialization(stateInit,
|
|
93
|
+
return executeStateInitialization(stateInit, nativeStateTransition, pubkeysFile, logger);
|
|
81
94
|
}
|
|
82
95
|
|
|
83
96
|
/**
|
|
@@ -122,7 +135,9 @@ async function readLatestArchivedStateBytes({
|
|
|
122
135
|
*/
|
|
123
136
|
async function executeStateInitialization(
|
|
124
137
|
stateInit: StateInitialization,
|
|
125
|
-
|
|
138
|
+
nativeStateTransition: boolean,
|
|
139
|
+
pubkeysFile: string,
|
|
140
|
+
logger: Logger
|
|
126
141
|
): Promise<InitBeaconStateResult> {
|
|
127
142
|
const {config, stateBytes} = stateInit;
|
|
128
143
|
const validatorCount = getValidatorCountFromStateBytes(config, stateBytes);
|
|
@@ -137,10 +152,14 @@ async function executeStateInitialization(
|
|
|
137
152
|
// by its native lock; if this headroom is exceeded, it grows by the same fixed step.
|
|
138
153
|
// The view syncs pubkeys during construction, so capacity must be reserved first.
|
|
139
154
|
const headroomEpochs = (90 * 24 * 60 * 60) / (config.SECONDS_PER_SLOT * SLOTS_PER_EPOCH);
|
|
140
|
-
|
|
141
|
-
|
|
155
|
+
const pubkeyCacheCapacity = validatorCount + MAX_PENDING_DEPOSITS_PER_EPOCH * Math.ceil(headroomEpochs);
|
|
156
|
+
loadPubkeysFile(pubkeyCache, pubkeysFile, pubkeyCacheCapacity, config, stateBytes, validatorCount, logger);
|
|
157
|
+
// unilaterally expand capacity after best-effort pubkey file loading
|
|
158
|
+
pubkeyCache.ensureCapacity(pubkeyCacheCapacity);
|
|
159
|
+
const anchorState = createBeaconStateView({nativeStateTransition, config, stateBytes});
|
|
142
160
|
stateInit.validate(anchorState);
|
|
161
|
+
const earliestAvailableSlot = await stateInit.initializeEarliestAvailableSlot(anchorState);
|
|
143
162
|
await stateInit.persist?.(anchorState, stateBytes);
|
|
144
|
-
stateInit.log(anchorState);
|
|
145
|
-
return {anchorState, config, isFinalized: stateInit.isFinalized};
|
|
163
|
+
stateInit.log(anchorState, nativeStateTransition);
|
|
164
|
+
return {anchorState, config, isFinalized: stateInit.isFinalized, earliestAvailableSlot};
|
|
146
165
|
}
|
|
@@ -21,6 +21,7 @@ type BeaconExtraArgs = {
|
|
|
21
21
|
persistInvalidSszObjectsRetentionHours?: number;
|
|
22
22
|
persistOrphanedBlocksDir?: string;
|
|
23
23
|
peerStoreDir?: string;
|
|
24
|
+
pubkeysFile?: string;
|
|
24
25
|
persistNetworkIdentity?: boolean;
|
|
25
26
|
private?: boolean;
|
|
26
27
|
validatorMonitorLogs?: boolean;
|
|
@@ -141,6 +142,13 @@ export const beaconExtraOptions: CliCommandOptions<BeaconExtraArgs> = {
|
|
|
141
142
|
type: "string",
|
|
142
143
|
},
|
|
143
144
|
|
|
145
|
+
pubkeysFile: {
|
|
146
|
+
hidden: true,
|
|
147
|
+
description: "Pubkey cache file, loaded on startup and saved on graceful shutdown",
|
|
148
|
+
defaultDescription: defaultBeaconPaths.pubkeysFile,
|
|
149
|
+
type: "string",
|
|
150
|
+
},
|
|
151
|
+
|
|
144
152
|
persistNetworkIdentity: {
|
|
145
153
|
description:
|
|
146
154
|
"Whether to reuse the same peer-id across restarts. Validator custody requires custody group count to persist relative to a given ENR. Setting to false will reset ENR and validator custody requirements on restarts.",
|
package/src/cmds/beacon/paths.ts
CHANGED
|
@@ -9,6 +9,7 @@ export type BeaconPathsPartial = Partial<{
|
|
|
9
9
|
dataColumnDir: string;
|
|
10
10
|
persistInvalidSszObjectsDir: string;
|
|
11
11
|
persistOrphanedBlocksDir?: string;
|
|
12
|
+
pubkeysFile: string;
|
|
12
13
|
}>;
|
|
13
14
|
|
|
14
15
|
export type BeaconPaths = {
|
|
@@ -18,6 +19,7 @@ export type BeaconPaths = {
|
|
|
18
19
|
dataColumnDir: string;
|
|
19
20
|
persistInvalidSszObjectsDir: string;
|
|
20
21
|
persistOrphanedBlocksDir: string;
|
|
22
|
+
pubkeysFile: string;
|
|
21
23
|
};
|
|
22
24
|
|
|
23
25
|
/**
|
|
@@ -29,6 +31,7 @@ export type BeaconPaths = {
|
|
|
29
31
|
* ├── beacon.config.json
|
|
30
32
|
* ├── peer-id.json
|
|
31
33
|
* ├── enr
|
|
34
|
+
* ├── pubkeys
|
|
32
35
|
* ├── chain-db
|
|
33
36
|
* └── beacon.log
|
|
34
37
|
* ```
|
|
@@ -48,6 +51,7 @@ export function getBeaconPaths(
|
|
|
48
51
|
const persistInvalidSszObjectsDir = args.persistInvalidSszObjectsDir ?? path.join(beaconDir, "invalidSszObjects");
|
|
49
52
|
const peerStoreDir = args.peerStoreDir ?? path.join(beaconDir, "peerstore");
|
|
50
53
|
const persistOrphanedBlocksDir = args.persistOrphanedBlocksDir ?? path.join(beaconDir, "orphaned_blocks");
|
|
54
|
+
const pubkeysFile = args.pubkeysFile ?? path.join(beaconDir, "pubkeys");
|
|
51
55
|
|
|
52
56
|
return {
|
|
53
57
|
...globalPaths,
|
|
@@ -57,6 +61,7 @@ export function getBeaconPaths(
|
|
|
57
61
|
persistInvalidSszObjectsDir,
|
|
58
62
|
peerStoreDir,
|
|
59
63
|
persistOrphanedBlocksDir,
|
|
64
|
+
pubkeysFile,
|
|
60
65
|
};
|
|
61
66
|
}
|
|
62
67
|
|
|
@@ -0,0 +1,50 @@
|
|
|
1
|
+
import {type PubkeyCache} from "@chainsafe/lodestar-z/pubkeys";
|
|
2
|
+
import {ChainForkConfig} from "@lodestar/config";
|
|
3
|
+
import {getValidatorPubkeyFromStateBytes} from "@lodestar/state-transition";
|
|
4
|
+
import {Logger, byteArrayEquals} from "@lodestar/utils";
|
|
5
|
+
|
|
6
|
+
/**
|
|
7
|
+
* Best effort load of a trusted pubkey cache saved by a previous run, to skip decompressing every validator
|
|
8
|
+
* pubkey on boot. Must be called before any worker uses the cache.
|
|
9
|
+
*/
|
|
10
|
+
export function loadPubkeysFile(
|
|
11
|
+
pubkeyCache: PubkeyCache,
|
|
12
|
+
filepath: string,
|
|
13
|
+
maxCapacity: number,
|
|
14
|
+
config: ChainForkConfig,
|
|
15
|
+
anchorStateBytes: Uint8Array,
|
|
16
|
+
anchorValidatorCount: number,
|
|
17
|
+
logger: Logger
|
|
18
|
+
): void {
|
|
19
|
+
const start = Date.now();
|
|
20
|
+
try {
|
|
21
|
+
pubkeyCache.load(filepath, maxCapacity);
|
|
22
|
+
} catch (e) {
|
|
23
|
+
logger.debug("Unable to load pubkeys file", {filepath}, e as Error);
|
|
24
|
+
return;
|
|
25
|
+
}
|
|
26
|
+
|
|
27
|
+
// load() only checks framing and checksum, so reject a file from another chain. Checking the endpoints
|
|
28
|
+
// suffices since the registry is append-only.
|
|
29
|
+
const overlap = Math.min(pubkeyCache.size, anchorValidatorCount);
|
|
30
|
+
for (const index of overlap > 0 ? [0, overlap - 1] : []) {
|
|
31
|
+
const anchorPubkey = getValidatorPubkeyFromStateBytes(config, anchorStateBytes, index);
|
|
32
|
+
if (anchorPubkey === null || !byteArrayEquals(pubkeyCache.getPubkeyBytesOrThrow(index), anchorPubkey)) {
|
|
33
|
+
pubkeyCache.reset();
|
|
34
|
+
logger.debug("Discarded pubkeys file not matching anchor state", {filepath, index});
|
|
35
|
+
return;
|
|
36
|
+
}
|
|
37
|
+
}
|
|
38
|
+
|
|
39
|
+
logger.debug("Loaded pubkeys file", {filepath, count: pubkeyCache.size, durationMs: Date.now() - start});
|
|
40
|
+
}
|
|
41
|
+
|
|
42
|
+
export function savePubkeysFile(pubkeyCache: PubkeyCache, filepath: string, logger: Logger): void {
|
|
43
|
+
const start = Date.now();
|
|
44
|
+
try {
|
|
45
|
+
pubkeyCache.save(filepath);
|
|
46
|
+
logger.debug("Saved pubkeys file", {filepath, count: pubkeyCache.size, durationMs: Date.now() - start});
|
|
47
|
+
} catch (e) {
|
|
48
|
+
logger.debug("Unable to save pubkeys file", {filepath}, e as Error);
|
|
49
|
+
}
|
|
50
|
+
}
|