@chainsafe/lodestar 1.50.0-dev.f2fb26d453 → 1.50.0-dev.fc618d94e9

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.
Files changed (52) hide show
  1. package/.git-data.json +1 -1
  2. package/lib/cmds/beacon/handler.d.ts +1 -0
  3. package/lib/cmds/beacon/handler.d.ts.map +1 -1
  4. package/lib/cmds/beacon/handler.js +10 -6
  5. package/lib/cmds/beacon/handler.js.map +1 -1
  6. package/lib/cmds/beacon/initBeaconState.d.ts +2 -2
  7. package/lib/cmds/beacon/initBeaconState.d.ts.map +1 -1
  8. package/lib/cmds/beacon/initBeaconState.js +13 -9
  9. package/lib/cmds/beacon/initBeaconState.js.map +1 -1
  10. package/lib/cmds/beacon/options.d.ts +1 -0
  11. package/lib/cmds/beacon/options.d.ts.map +1 -1
  12. package/lib/cmds/beacon/options.js +6 -0
  13. package/lib/cmds/beacon/options.js.map +1 -1
  14. package/lib/cmds/beacon/paths.d.ts +4 -0
  15. package/lib/cmds/beacon/paths.d.ts.map +1 -1
  16. package/lib/cmds/beacon/paths.js +3 -0
  17. package/lib/cmds/beacon/paths.js.map +1 -1
  18. package/lib/cmds/beacon/pubkeysFile.d.ts +10 -0
  19. package/lib/cmds/beacon/pubkeysFile.d.ts.map +1 -0
  20. package/lib/cmds/beacon/pubkeysFile.js +39 -0
  21. package/lib/cmds/beacon/pubkeysFile.js.map +1 -0
  22. package/lib/cmds/beacon/stateInitialization/checkpointState.js +8 -6
  23. package/lib/cmds/beacon/stateInitialization/checkpointState.js.map +1 -1
  24. package/lib/cmds/beacon/stateInitialization/genesisState.d.ts.map +1 -1
  25. package/lib/cmds/beacon/stateInitialization/genesisState.js +2 -1
  26. package/lib/cmds/beacon/stateInitialization/genesisState.js.map +1 -1
  27. package/lib/cmds/beacon/stateInitialization/prepareStateInitialization.d.ts.map +1 -1
  28. package/lib/cmds/beacon/stateInitialization/prepareStateInitialization.js +2 -1
  29. package/lib/cmds/beacon/stateInitialization/prepareStateInitialization.js.map +1 -1
  30. package/lib/cmds/beacon/stateInitialization/types.d.ts +2 -2
  31. package/lib/cmds/beacon/stateInitialization/types.d.ts.map +1 -1
  32. package/lib/cmds/dev/handler.d.ts.map +1 -1
  33. package/lib/cmds/dev/handler.js +3 -1
  34. package/lib/cmds/dev/handler.js.map +1 -1
  35. package/lib/cmds/dev/options.d.ts +1 -1
  36. package/lib/options/beaconNodeOptions/chain.d.ts +1 -1
  37. package/lib/options/beaconNodeOptions/chain.d.ts.map +1 -1
  38. package/lib/options/beaconNodeOptions/chain.js +4 -4
  39. package/lib/options/beaconNodeOptions/chain.js.map +1 -1
  40. package/lib/options/beaconNodeOptions/index.d.ts +1 -1
  41. package/package.json +14 -14
  42. package/src/cmds/beacon/handler.ts +13 -6
  43. package/src/cmds/beacon/initBeaconState.ts +20 -8
  44. package/src/cmds/beacon/options.ts +8 -0
  45. package/src/cmds/beacon/paths.ts +5 -0
  46. package/src/cmds/beacon/pubkeysFile.ts +50 -0
  47. package/src/cmds/beacon/stateInitialization/checkpointState.ts +12 -10
  48. package/src/cmds/beacon/stateInitialization/genesisState.ts +2 -1
  49. package/src/cmds/beacon/stateInitialization/prepareStateInitialization.ts +2 -1
  50. package/src/cmds/beacon/stateInitialization/types.ts +2 -2
  51. package/src/cmds/dev/handler.ts +3 -1
  52. package/src/options/beaconNodeOptions/chain.ts +5 -5
@@ -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,uBAAuB,CAC1B,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,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,KAAK,IAAI,CAAC;CACxC,CAAC"}
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,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,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,CAoE3E"}
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"}
@@ -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).dbDir;
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":"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"}
1
+ {"version":3,"file":"handler.js","sourceRoot":"","sources":["../../../src/cmds/dev/handler.ts"],"names":[],"mappings":"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"}
@@ -119,7 +119,7 @@ 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.nativeStateView"?: CliOptionDefinition<any> | undefined;
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;
@@ -30,7 +30,7 @@ export type ChainArgs = {
30
30
  "chain.archiveDataEpochs"?: number;
31
31
  "chain.archiveMode": ArchiveMode;
32
32
  "chain.nHistoricalStatesFileDataStore"?: boolean;
33
- "chain.nativeStateView"?: boolean;
33
+ "chain.nativeStateTransition"?: boolean;
34
34
  "chain.maxBlockStates"?: number;
35
35
  "chain.maxCPStateEpochsInMemory"?: number;
36
36
  "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,uBAAuB,CAAC,EAAE,OAAO,CAAC;IAClC,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,CA6C3F;AAED,eAAO,MAAM,OAAO,EAAE,iBAAiB,CAAC,SAAS,CA8QhD,CAAC"}
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,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,CA6C3F;AAED,eAAO,MAAM,OAAO,EAAE,iBAAiB,CAAC,SAAS,CA8QhD,CAAC"}
@@ -34,7 +34,7 @@ export function parseArgs(args) {
34
34
  archiveDataEpochs: args["chain.archiveDataEpochs"],
35
35
  archiveMode: args["chain.archiveMode"] ?? defaultOptions.chain.archiveMode,
36
36
  nHistoricalStatesFileDataStore: args["chain.nHistoricalStatesFileDataStore"] ?? defaultOptions.chain.nHistoricalStatesFileDataStore,
37
- nativeStateView: args["chain.nativeStateView"] ?? defaultOptions.chain.nativeStateView,
37
+ nativeStateTransition: args["chain.nativeStateTransition"] ?? defaultOptions.chain.nativeStateTransition,
38
38
  maxBlockStates: args["chain.maxBlockStates"] ?? defaultOptions.chain.maxBlockStates,
39
39
  maxCPStateEpochsInMemory: args["chain.maxCPStateEpochsInMemory"] ?? defaultOptions.chain.maxCPStateEpochsInMemory,
40
40
  maxCPStateEpochsOnDisk: args["chain.maxCPStateEpochsOnDisk"] ?? defaultOptions.chain.maxCPStateEpochsOnDisk,
@@ -235,11 +235,11 @@ Will double processing times. Use only for debugging purposes.",
235
235
  default: defaultOptions.chain.nHistoricalStatesFileDataStore,
236
236
  group: "chain",
237
237
  },
238
- "chain.nativeStateView": {
238
+ "chain.nativeStateTransition": {
239
239
  hidden: true,
240
- description: "Use native (Zig) BeaconStateView instead of JS implementation",
240
+ description: "Use native (Zig) state transition instead of JS implementation",
241
241
  type: "boolean",
242
- default: defaultOptions.chain.nativeStateView,
242
+ default: defaultOptions.chain.nativeStateTransition,
243
243
  group: "chain",
244
244
  },
245
245
  "chain.maxBlockStates": {
@@ -1 +1 @@
1
- {"version":3,"file":"chain.js","sourceRoot":"","sources":["../../../src/options/beaconNodeOptions/chain.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"chain.js","sourceRoot":"","sources":["../../../src/options/beaconNodeOptions/chain.ts"],"names":[],"mappings":"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"}
@@ -67,7 +67,7 @@ export declare const beaconNodeOptions: {
67
67
  demandOption: true;
68
68
  });
69
69
  "chain.nHistoricalStatesFileDataStore": import("@lodestar/utils").CliOptionDefinition<boolean | undefined>;
70
- "chain.nativeStateView": import("@lodestar/utils").CliOptionDefinition<boolean | undefined>;
70
+ "chain.nativeStateTransition": import("@lodestar/utils").CliOptionDefinition<boolean | undefined>;
71
71
  "chain.maxBlockStates": import("@lodestar/utils").CliOptionDefinition<number | undefined>;
72
72
  "chain.maxCPStateEpochsInMemory": import("@lodestar/utils").CliOptionDefinition<number | undefined>;
73
73
  "chain.maxCPStateEpochsOnDisk": import("@lodestar/utils").CliOptionDefinition<number | undefined>;
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@chainsafe/lodestar",
3
- "version": "1.50.0-dev.f2fb26d453",
3
+ "version": "1.50.0-dev.fc618d94e9",
4
4
  "description": "Command line interface for lodestar",
5
5
  "author": "ChainSafe Systems",
6
6
  "license": "Apache-2.0",
@@ -68,17 +68,17 @@
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.f2fb26d453",
72
- "@lodestar/beacon-node": "^1.50.0-dev.f2fb26d453",
73
- "@lodestar/builder": "^1.50.0-dev.f2fb26d453",
74
- "@lodestar/config": "^1.50.0-dev.f2fb26d453",
75
- "@lodestar/db": "^1.50.0-dev.f2fb26d453",
76
- "@lodestar/logger": "^1.50.0-dev.f2fb26d453",
77
- "@lodestar/params": "^1.50.0-dev.f2fb26d453",
78
- "@lodestar/state-transition": "^1.50.0-dev.f2fb26d453",
79
- "@lodestar/types": "^1.50.0-dev.f2fb26d453",
80
- "@lodestar/utils": "^1.50.0-dev.f2fb26d453",
81
- "@lodestar/validator": "^1.50.0-dev.f2fb26d453",
71
+ "@lodestar/api": "^1.50.0-dev.fc618d94e9",
72
+ "@lodestar/beacon-node": "^1.50.0-dev.fc618d94e9",
73
+ "@lodestar/builder": "^1.50.0-dev.fc618d94e9",
74
+ "@lodestar/config": "^1.50.0-dev.fc618d94e9",
75
+ "@lodestar/db": "^1.50.0-dev.fc618d94e9",
76
+ "@lodestar/logger": "^1.50.0-dev.fc618d94e9",
77
+ "@lodestar/params": "^1.50.0-dev.fc618d94e9",
78
+ "@lodestar/state-transition": "^1.50.0-dev.fc618d94e9",
79
+ "@lodestar/types": "^1.50.0-dev.fc618d94e9",
80
+ "@lodestar/utils": "^1.50.0-dev.fc618d94e9",
81
+ "@lodestar/validator": "^1.50.0-dev.fc618d94e9",
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.f2fb26d453",
97
+ "@lodestar/test-utils": "^1.50.0-dev.fc618d94e9",
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": "639434e12d5aa481d4e1334c8cd43561f0d1da33"
111
+ "gitHead": "3dcc2888e0f0749b337f77efd442b1e603ad4e62"
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,7 @@ export async function beaconHandler(args: BeaconArgs & GlobalArgs): Promise<void
78
79
  anchorState,
79
80
  config: beaconConfig,
80
81
  isFinalized,
81
- } = await initBeaconState(args, beaconPaths.dataDir, config, db, logger);
82
+ } = await initBeaconState(args, beaconPaths.dataDir, beaconPaths.pubkeysFile, config, db, logger);
82
83
 
83
84
  const node = await BeaconNode.init({
84
85
  opts: options,
@@ -139,21 +140,21 @@ export async function beaconHandler(args: BeaconArgs & GlobalArgs): Promise<void
139
140
  abortController.signal.addEventListener(
140
141
  "abort",
141
142
  async () => {
143
+ let exitCode = 0;
142
144
  try {
143
145
  await node.close();
144
146
  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
147
  } catch (e) {
149
148
  // If we start from unfinalized state, we don't have checkpoint state so there is this error
150
149
  // "No state in cache for finalized checkpoint state epoch"
151
150
  logger.warn("Error closing beacon node", {}, e as Error);
152
151
  // Make sure db is always closed gracefully
153
152
  await db.close();
154
- // Must explicitly exit process due to potential active handles
155
- process.exit(1);
153
+ exitCode = 1;
156
154
  }
155
+ savePubkeysFile(pubkeyCache, beaconPaths.pubkeysFile, logger);
156
+ // Explicitly exit process due to potential active handles
157
+ process.exit(exitCode);
157
158
  },
158
159
  {once: true}
159
160
  );
@@ -229,6 +230,12 @@ export async function beaconHandlerInit(args: BeaconArgs & GlobalArgs) {
229
230
  // Render final options
230
231
  const options = beaconNodeOptions.getWithDefaults();
231
232
 
233
+ if (options.chain.nativeStateTransition && config.GLOAS_FORK_EPOCH !== Infinity) {
234
+ throw Error(
235
+ `--chain.nativeStateTransition does not support Gloas, which is scheduled at epoch ${config.GLOAS_FORK_EPOCH}`
236
+ );
237
+ }
238
+
232
239
  return {config, options, beaconPaths, network, version, commit, privateKey, logger};
233
240
  }
234
241
 
@@ -13,6 +13,7 @@ import {
13
13
  import {Logger, formatBytes} from "@lodestar/utils";
14
14
  import {GlobalArgs} from "../../options/globalOptions.js";
15
15
  import {BeaconArgs} from "./options.js";
16
+ import {loadPubkeysFile} from "./pubkeysFile.js";
16
17
  import {StateInitializationError, StateInitializationErrorCode} from "./stateInitialization/errors.js";
17
18
  import {prepareGenesisInitialization} from "./stateInitialization/genesisState.js";
18
19
  import {
@@ -30,17 +31,18 @@ type InitBeaconStateResult = {anchorState: IBeaconStateView; config: BeaconConfi
30
31
 
31
32
  /**
32
33
  * 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.
34
+ * Populates the global `pubkeyCache` with the anchor state's validators, reusing `pubkeysFile` if it matches.
34
35
  */
35
36
  export async function initBeaconState(
36
37
  args: BeaconArgs & GlobalArgs,
37
38
  dataDir: string,
39
+ pubkeysFile: string,
38
40
  chainForkConfig: ChainForkConfig,
39
41
  db: IBeaconDb,
40
42
  logger: Logger
41
43
  ): Promise<InitBeaconStateResult> {
42
44
  const options: StateInitializationOptions = args;
43
- const useNative = options["chain.nativeStateView"] ?? false;
45
+ const nativeStateTransition = options["chain.nativeStateTransition"] ?? false;
44
46
  if (
45
47
  options.forceCheckpointSync &&
46
48
  !(options.checkpointState || options.checkpointSyncUrl || options.unsafeCheckpointState)
@@ -66,7 +68,12 @@ export async function initBeaconState(
66
68
  options.lastPersistedCheckpointState
67
69
  );
68
70
  if (!options.forceCheckpointSync && (!hasCheckpointSource || archived.isWithinWeakSubjectivityPeriod)) {
69
- return executeStateInitialization(prepareArchivedStateInitialization(archived, context), useNative);
71
+ return executeStateInitialization(
72
+ prepareArchivedStateInitialization(archived, context),
73
+ nativeStateTransition,
74
+ pubkeysFile,
75
+ logger
76
+ );
70
77
  }
71
78
  }
72
79
  let stateInit = await prepareCheckpointSourceInitialization(options, archived, context);
@@ -77,7 +84,7 @@ export async function initBeaconState(
77
84
  ? prepareArchivedStateInitialization(archived, context)
78
85
  : await prepareGenesisInitialization(options, context);
79
86
  }
80
- return executeStateInitialization(stateInit, useNative);
87
+ return executeStateInitialization(stateInit, nativeStateTransition, pubkeysFile, logger);
81
88
  }
82
89
 
83
90
  /**
@@ -122,7 +129,9 @@ async function readLatestArchivedStateBytes({
122
129
  */
123
130
  async function executeStateInitialization(
124
131
  stateInit: StateInitialization,
125
- useNative: boolean
132
+ nativeStateTransition: boolean,
133
+ pubkeysFile: string,
134
+ logger: Logger
126
135
  ): Promise<InitBeaconStateResult> {
127
136
  const {config, stateBytes} = stateInit;
128
137
  const validatorCount = getValidatorCountFromStateBytes(config, stateBytes);
@@ -137,10 +146,13 @@ async function executeStateInitialization(
137
146
  // by its native lock; if this headroom is exceeded, it grows by the same fixed step.
138
147
  // The view syncs pubkeys during construction, so capacity must be reserved first.
139
148
  const headroomEpochs = (90 * 24 * 60 * 60) / (config.SECONDS_PER_SLOT * SLOTS_PER_EPOCH);
140
- pubkeyCache.ensureCapacity(validatorCount + MAX_PENDING_DEPOSITS_PER_EPOCH * Math.ceil(headroomEpochs));
141
- const anchorState = createBeaconStateView({useNative, config, stateBytes});
149
+ const pubkeyCacheCapacity = validatorCount + MAX_PENDING_DEPOSITS_PER_EPOCH * Math.ceil(headroomEpochs);
150
+ loadPubkeysFile(pubkeyCache, pubkeysFile, pubkeyCacheCapacity, config, stateBytes, validatorCount, logger);
151
+ // unilaterally expand capacity after best-effort pubkey file loading
152
+ pubkeyCache.ensureCapacity(pubkeyCacheCapacity);
153
+ const anchorState = createBeaconStateView({nativeStateTransition, config, stateBytes});
142
154
  stateInit.validate(anchorState);
143
155
  await stateInit.persist?.(anchorState, stateBytes);
144
- stateInit.log(anchorState);
156
+ stateInit.log(anchorState, nativeStateTransition);
145
157
  return {anchorState, config, isFinalized: stateInit.isFinalized};
146
158
  }
@@ -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.",
@@ -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
+ }
@@ -186,6 +186,16 @@ function prepareCheckpointInitialization(
186
186
  const {isFinalized, ignoreWeakSubjectivityCheck} = policy;
187
187
  const config = createBeaconConfig(chainForkConfig, metadata.genesisValidatorsRoot);
188
188
  const archivedWithinWeakSubjectivityPeriod = useArchived ? archived.isWithinWeakSubjectivityPeriod : null;
189
+ const passedValidation =
190
+ archivedWithinWeakSubjectivityPeriod ?? isWithinWeakSubjectivityPeriodFromSummary(config, weakSubjectivity);
191
+ // Fast-fail stale checkpoints before deserializing the state or reserving pubkey-cache capacity.
192
+ if (!passedValidation && !ignoreWeakSubjectivityCheck) {
193
+ const clockEpoch = computeEpochAtSlot(getCurrentSlot(config, weakSubjectivity.genesisTime));
194
+ throw new StateInitializationError(
195
+ {code: StateInitializationErrorCode.STALE_CHECKPOINT},
196
+ `The selected state with epoch ${weakSubjectivity.checkpointEpoch} is not within weak subjectivity period of ${weakSubjectivity.period} epochs from the current epoch ${clockEpoch}. Please verify your checkpoint source`
197
+ );
198
+ }
189
199
  // DB-selected anchors need no persistence, including at slot zero.
190
200
  const shouldPersist = isFinalized && !useArchived;
191
201
  return {
@@ -195,15 +205,6 @@ function prepareCheckpointInitialization(
195
205
  validate(state) {
196
206
  // A supplied checkpoint must match even when the period check is ignored.
197
207
  if (expectedCheckpoint !== null) assertStateMatchesCheckpoint(state, expectedCheckpoint);
198
- const passedValidation =
199
- archivedWithinWeakSubjectivityPeriod ?? isWithinWeakSubjectivityPeriodFromSummary(config, weakSubjectivity);
200
- if (!passedValidation && !ignoreWeakSubjectivityCheck) {
201
- const clockEpoch = computeEpochAtSlot(getCurrentSlot(config, weakSubjectivity.genesisTime));
202
- throw new StateInitializationError(
203
- {code: StateInitializationErrorCode.STALE_CHECKPOINT},
204
- `The selected state with epoch ${weakSubjectivity.checkpointEpoch} is not within weak subjectivity period of ${weakSubjectivity.period} epochs from the current epoch ${clockEpoch}. Please verify your checkpoint source`
205
- );
206
- }
207
208
  assertAnchorStateForkMatchesConfig(config, state);
208
209
  if (isFinalized) {
209
210
  const source = useArchived ? "db" : "checkpoint";
@@ -223,7 +224,7 @@ function prepareCheckpointInitialization(
223
224
  }
224
225
  },
225
226
  persist: shouldPersist ? (state, bytes) => persistAnchorState(config, db, state, bytes) : null,
226
- log(state) {
227
+ log(state, nativeStateTransition) {
227
228
  const {checkpoint} = state.computeAnchorCheckpoint();
228
229
  logger.info("Initialized checkpoint state", {
229
230
  source,
@@ -233,6 +234,7 @@ function prepareCheckpointInitialization(
233
234
  stateRoot: toRootHex(state.hashTreeRoot()),
234
235
  checkpointRoot: toRootHex(checkpoint.root),
235
236
  isFinalized,
237
+ nativeStateTransition,
236
238
  ...(isFinalized ? {} : {lastProcessedSlot: state.latestBlockHeader.slot}),
237
239
  });
238
240
  },
@@ -74,11 +74,12 @@ export async function prepareGenesisInitialization(
74
74
  }
75
75
  },
76
76
  persist: (state, bytes) => persistAnchorState(config, db, state, bytes),
77
- log(state) {
77
+ log(state, nativeStateTransition) {
78
78
  logger.info("Initialized genesis state", {
79
79
  slot: state.slot,
80
80
  stateRoot: toRootHex(state.hashTreeRoot()),
81
81
  isFinalized: true,
82
+ nativeStateTransition,
82
83
  });
83
84
  },
84
85
  };
@@ -35,12 +35,13 @@ export function prepareArchivedStateInitialization(
35
35
  }
36
36
  },
37
37
  persist: null,
38
- log(state) {
38
+ log(state, nativeStateTransition) {
39
39
  logger.info("Initialized state from db", {
40
40
  slot: state.slot,
41
41
  epoch: computeEpochAtSlot(state.slot),
42
42
  stateRoot: toRootHex(state.hashTreeRoot()),
43
43
  isFinalized: true,
44
+ nativeStateTransition,
44
45
  });
45
46
  },
46
47
  };
@@ -18,7 +18,7 @@ export type StateInitializationOptions = Pick<
18
18
  | "ignoreWeakSubjectivityCheck"
19
19
  | "network"
20
20
  | "chain.nHistoricalStatesFileDataStore"
21
- | "chain.nativeStateView"
21
+ | "chain.nativeStateTransition"
22
22
  >;
23
23
 
24
24
  export type StatePreparationContext = {
@@ -54,5 +54,5 @@ export type StateInitialization = {
54
54
  isFinalized: boolean;
55
55
  validate: (state: IBeaconStateView) => void;
56
56
  persist: ((state: IBeaconStateView, stateBytes: Uint8Array) => Promise<void>) | null;
57
- log: (state: IBeaconStateView) => void;
57
+ log: (state: IBeaconStateView, nativeStateTransition: boolean) => void;
58
58
  };
@@ -31,7 +31,7 @@ export async function devHandler(args: IDevArgs & GlobalArgs): Promise<void> {
31
31
 
32
32
  // Note: defaults to network "dev", to all paths are custom and don't conflict with networks.
33
33
  // Flag --reset cleans up the custom dirs on dev stop
34
- const beaconDbDir = getBeaconPaths(args, network).dbDir;
34
+ const {dbDir: beaconDbDir, pubkeysFile} = getBeaconPaths(args, network);
35
35
  const validatorsDbDir = getValidatorPaths(args, network).validatorsDbDir;
36
36
 
37
37
  // Remove slashing protection db. Otherwise the validators won't be able to propose nor attest
@@ -39,6 +39,8 @@ export async function devHandler(args: IDevArgs & GlobalArgs): Promise<void> {
39
39
  if (args.genesisTime === undefined) {
40
40
  await rimraf(beaconDbDir);
41
41
  await rimraf(validatorsDbDir);
42
+ // Validators deposited in the previous run do not exist on the new chain
43
+ await rimraf(pubkeysFile);
42
44
  }
43
45
 
44
46
  mkdir(beaconDbDir);
@@ -35,7 +35,7 @@ export type ChainArgs = {
35
35
  "chain.archiveDataEpochs"?: number;
36
36
  "chain.archiveMode": ArchiveMode;
37
37
  "chain.nHistoricalStatesFileDataStore"?: boolean;
38
- "chain.nativeStateView"?: boolean;
38
+ "chain.nativeStateTransition"?: boolean;
39
39
  "chain.maxBlockStates"?: number;
40
40
  "chain.maxCPStateEpochsInMemory"?: number;
41
41
  "chain.maxCPStateEpochsOnDisk"?: number;
@@ -79,7 +79,7 @@ export function parseArgs(args: ChainArgs & CircuitBreakerArgs): IBeaconNodeOpti
79
79
  archiveMode: args["chain.archiveMode"] ?? defaultOptions.chain.archiveMode,
80
80
  nHistoricalStatesFileDataStore:
81
81
  args["chain.nHistoricalStatesFileDataStore"] ?? defaultOptions.chain.nHistoricalStatesFileDataStore,
82
- nativeStateView: args["chain.nativeStateView"] ?? defaultOptions.chain.nativeStateView,
82
+ nativeStateTransition: args["chain.nativeStateTransition"] ?? defaultOptions.chain.nativeStateTransition,
83
83
  maxBlockStates: args["chain.maxBlockStates"] ?? defaultOptions.chain.maxBlockStates,
84
84
  maxCPStateEpochsInMemory: args["chain.maxCPStateEpochsInMemory"] ?? defaultOptions.chain.maxCPStateEpochsInMemory,
85
85
  maxCPStateEpochsOnDisk: args["chain.maxCPStateEpochsOnDisk"] ?? defaultOptions.chain.maxCPStateEpochsOnDisk,
@@ -318,11 +318,11 @@ Will double processing times. Use only for debugging purposes.",
318
318
  group: "chain",
319
319
  },
320
320
 
321
- "chain.nativeStateView": {
321
+ "chain.nativeStateTransition": {
322
322
  hidden: true,
323
- description: "Use native (Zig) BeaconStateView instead of JS implementation",
323
+ description: "Use native (Zig) state transition instead of JS implementation",
324
324
  type: "boolean",
325
- default: defaultOptions.chain.nativeStateView,
325
+ default: defaultOptions.chain.nativeStateTransition,
326
326
  group: "chain",
327
327
  },
328
328