@chainsafe/lodestar 1.50.0-dev.ebecebb9ba → 1.50.0-dev.f0a5c36612

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 (75) 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 +13 -21
  5. package/lib/cmds/beacon/handler.js.map +1 -1
  6. package/lib/cmds/beacon/initBeaconState.d.ts +13 -17
  7. package/lib/cmds/beacon/initBeaconState.d.ts.map +1 -1
  8. package/lib/cmds/beacon/initBeaconState.js +84 -275
  9. package/lib/cmds/beacon/initBeaconState.js.map +1 -1
  10. package/lib/cmds/beacon/options.d.ts +1 -1
  11. package/lib/cmds/beacon/options.d.ts.map +1 -1
  12. package/lib/cmds/beacon/options.js +6 -5
  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.d.ts +7 -0
  23. package/lib/cmds/beacon/stateInitialization/checkpointState.d.ts.map +1 -0
  24. package/lib/cmds/beacon/stateInitialization/checkpointState.js +184 -0
  25. package/lib/cmds/beacon/stateInitialization/checkpointState.js.map +1 -0
  26. package/lib/cmds/beacon/stateInitialization/errors.d.ts +17 -0
  27. package/lib/cmds/beacon/stateInitialization/errors.d.ts.map +1 -0
  28. package/lib/cmds/beacon/stateInitialization/errors.js +16 -0
  29. package/lib/cmds/beacon/stateInitialization/errors.js.map +1 -0
  30. package/lib/cmds/beacon/stateInitialization/genesisState.d.ts +3 -0
  31. package/lib/cmds/beacon/stateInitialization/genesisState.d.ts.map +1 -0
  32. package/lib/cmds/beacon/stateInitialization/genesisState.js +79 -0
  33. package/lib/cmds/beacon/stateInitialization/genesisState.js.map +1 -0
  34. package/lib/cmds/beacon/stateInitialization/prepareStateInitialization.d.ts +4 -0
  35. package/lib/cmds/beacon/stateInitialization/prepareStateInitialization.d.ts.map +1 -0
  36. package/lib/cmds/beacon/stateInitialization/prepareStateInitialization.js +67 -0
  37. package/lib/cmds/beacon/stateInitialization/prepareStateInitialization.js.map +1 -0
  38. package/lib/cmds/beacon/stateInitialization/types.d.ts +42 -0
  39. package/lib/cmds/beacon/stateInitialization/types.d.ts.map +1 -0
  40. package/lib/cmds/beacon/stateInitialization/types.js +2 -0
  41. package/lib/cmds/beacon/stateInitialization/types.js.map +1 -0
  42. package/lib/cmds/beacon/stateInitialization/validation.d.ts +4 -0
  43. package/lib/cmds/beacon/stateInitialization/validation.d.ts.map +1 -0
  44. package/lib/cmds/beacon/stateInitialization/validation.js +12 -0
  45. package/lib/cmds/beacon/stateInitialization/validation.js.map +1 -0
  46. package/lib/cmds/dev/handler.d.ts.map +1 -1
  47. package/lib/cmds/dev/handler.js +3 -1
  48. package/lib/cmds/dev/handler.js.map +1 -1
  49. package/lib/cmds/dev/options.d.ts +2 -1
  50. package/lib/cmds/dev/options.d.ts.map +1 -1
  51. package/lib/networks/index.d.ts +3 -9
  52. package/lib/networks/index.d.ts.map +1 -1
  53. package/lib/networks/index.js +15 -28
  54. package/lib/networks/index.js.map +1 -1
  55. package/lib/options/beaconNodeOptions/chain.d.ts +2 -1
  56. package/lib/options/beaconNodeOptions/chain.d.ts.map +1 -1
  57. package/lib/options/beaconNodeOptions/chain.js +12 -5
  58. package/lib/options/beaconNodeOptions/chain.js.map +1 -1
  59. package/lib/options/beaconNodeOptions/index.d.ts +2 -1
  60. package/lib/options/beaconNodeOptions/index.d.ts.map +1 -1
  61. package/package.json +15 -15
  62. package/src/cmds/beacon/handler.ts +19 -22
  63. package/src/cmds/beacon/initBeaconState.ts +136 -387
  64. package/src/cmds/beacon/options.ts +8 -7
  65. package/src/cmds/beacon/paths.ts +5 -0
  66. package/src/cmds/beacon/pubkeysFile.ts +50 -0
  67. package/src/cmds/beacon/stateInitialization/checkpointState.ts +272 -0
  68. package/src/cmds/beacon/stateInitialization/errors.ts +15 -0
  69. package/src/cmds/beacon/stateInitialization/genesisState.ts +99 -0
  70. package/src/cmds/beacon/stateInitialization/prepareStateInitialization.ts +79 -0
  71. package/src/cmds/beacon/stateInitialization/types.ts +60 -0
  72. package/src/cmds/beacon/stateInitialization/validation.ts +16 -0
  73. package/src/cmds/dev/handler.ts +3 -1
  74. package/src/networks/index.ts +25 -40
  75. package/src/options/beaconNodeOptions/chain.ts +15 -6
@@ -1 +1 @@
1
- {"version":3,"file":"initBeaconState.js","sourceRoot":"","sources":["../../../src/cmds/beacon/initBeaconState.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"initBeaconState.js","sourceRoot":"","sources":["../../../src/cmds/beacon/initBeaconState.ts"],"names":[],"mappings":"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"}
@@ -3,7 +3,6 @@ import { BeaconNodeArgs } from "../../options/index.js";
3
3
  import { LogArgs } from "../../options/logOptions.js";
4
4
  import { BeaconPaths } from "./paths.js";
5
5
  type BeaconExtraArgs = {
6
- forceGenesis?: boolean;
7
6
  genesisStateFile?: string;
8
7
  configFile?: string;
9
8
  bootnodesFile?: string;
@@ -21,6 +20,7 @@ type BeaconExtraArgs = {
21
20
  persistInvalidSszObjectsRetentionHours?: number;
22
21
  persistOrphanedBlocksDir?: string;
23
22
  peerStoreDir?: string;
23
+ pubkeysFile?: string;
24
24
  persistNetworkIdentity?: boolean;
25
25
  private?: boolean;
26
26
  validatorMonitorLogs?: boolean;
@@ -1 +1 @@
1
- {"version":3,"file":"options.d.ts","sourceRoot":"","sources":["../../../src/cmds/beacon/options.ts"],"names":[],"mappings":"AAAA,OAAO,EAAC,iBAAiB,EAAE,mBAAmB,EAAC,MAAM,iBAAiB,CAAC;AACvE,OAAO,EAAC,cAAc,EAAmC,MAAM,wBAAwB,CAAC;AACxF,OAAO,EAAC,OAAO,EAAa,MAAM,6BAA6B,CAAC;AAChE,OAAO,EAAC,WAAW,EAAqB,MAAM,YAAY,CAAC;AAE3D,KAAK,eAAe,GAAG;IACrB,YAAY,CAAC,EAAE,OAAO,CAAC;IACvB,gBAAgB,CAAC,EAAE,MAAM,CAAC;IAC1B,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,aAAa,CAAC,EAAE,MAAM,CAAC;IACvB,iBAAiB,CAAC,EAAE,MAAM,CAAC;IAC3B,eAAe,CAAC,EAAE,MAAM,CAAC;IACzB,qBAAqB,CAAC,EAAE,MAAM,CAAC;IAC/B,4BAA4B,CAAC,EAAE,OAAO,CAAC;IACvC,aAAa,CAAC,EAAE,MAAM,CAAC;IACvB,mBAAmB,CAAC,EAAE,OAAO,CAAC;IAC9B,2BAA2B,CAAC,EAAE,OAAO,CAAC;IACtC,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,aAAa,CAAC,EAAE,MAAM,CAAC;IACvB,2BAA2B,CAAC,EAAE,MAAM,CAAC;IACrC,sCAAsC,CAAC,EAAE,MAAM,CAAC;IAChD,wBAAwB,CAAC,EAAE,MAAM,CAAC;IAClC,YAAY,CAAC,EAAE,MAAM,CAAC;IACtB,sBAAsB,CAAC,EAAE,OAAO,CAAC;IACjC,OAAO,CAAC,EAAE,OAAO,CAAC;IAClB,oBAAoB,CAAC,EAAE,OAAO,CAAC;IAC/B,kBAAkB,CAAC,EAAE,OAAO,CAAC;IAC7B,wBAAwB,CAAC,EAAE,OAAO,CAAC;CACpC,CAAC;AAEF,eAAO,MAAM,kBAAkB,EAAE,iBAAiB,CAAC,eAAe,CAmJjE,CAAC;AAEF,KAAK,OAAO,GAAG;IACb,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,GAAG,CAAC,EAAE,OAAO,CAAC;CACf,CAAC;AAkDF,MAAM,MAAM,UAAU,GAAG,eAAe,GAAG,OAAO,GAAG,WAAW,GAAG,cAAc,GAAG,OAAO,CAAC;AAE5F,eAAO,MAAM,aAAa,EAAE;IAAC,CAAC,CAAC,EAAE,MAAM,GAAG,mBAAmB,CAAA;CAM5D,CAAC"}
1
+ {"version":3,"file":"options.d.ts","sourceRoot":"","sources":["../../../src/cmds/beacon/options.ts"],"names":[],"mappings":"AAAA,OAAO,EAAC,iBAAiB,EAAE,mBAAmB,EAAC,MAAM,iBAAiB,CAAC;AACvE,OAAO,EAAC,cAAc,EAAmC,MAAM,wBAAwB,CAAC;AACxF,OAAO,EAAC,OAAO,EAAa,MAAM,6BAA6B,CAAC;AAChE,OAAO,EAAC,WAAW,EAAqB,MAAM,YAAY,CAAC;AAE3D,KAAK,eAAe,GAAG;IACrB,gBAAgB,CAAC,EAAE,MAAM,CAAC;IAC1B,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,aAAa,CAAC,EAAE,MAAM,CAAC;IACvB,iBAAiB,CAAC,EAAE,MAAM,CAAC;IAC3B,eAAe,CAAC,EAAE,MAAM,CAAC;IACzB,qBAAqB,CAAC,EAAE,MAAM,CAAC;IAC/B,4BAA4B,CAAC,EAAE,OAAO,CAAC;IACvC,aAAa,CAAC,EAAE,MAAM,CAAC;IACvB,mBAAmB,CAAC,EAAE,OAAO,CAAC;IAC9B,2BAA2B,CAAC,EAAE,OAAO,CAAC;IACtC,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,aAAa,CAAC,EAAE,MAAM,CAAC;IACvB,2BAA2B,CAAC,EAAE,MAAM,CAAC;IACrC,sCAAsC,CAAC,EAAE,MAAM,CAAC;IAChD,wBAAwB,CAAC,EAAE,MAAM,CAAC;IAClC,YAAY,CAAC,EAAE,MAAM,CAAC;IACtB,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,sBAAsB,CAAC,EAAE,OAAO,CAAC;IACjC,OAAO,CAAC,EAAE,OAAO,CAAC;IAClB,oBAAoB,CAAC,EAAE,OAAO,CAAC;IAC/B,kBAAkB,CAAC,EAAE,OAAO,CAAC;IAC7B,wBAAwB,CAAC,EAAE,OAAO,CAAC;CACpC,CAAC;AAEF,eAAO,MAAM,kBAAkB,EAAE,iBAAiB,CAAC,eAAe,CAoJjE,CAAC;AAEF,KAAK,OAAO,GAAG;IACb,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,GAAG,CAAC,EAAE,OAAO,CAAC;CACf,CAAC;AAkDF,MAAM,MAAM,UAAU,GAAG,eAAe,GAAG,OAAO,GAAG,WAAW,GAAG,cAAc,GAAG,OAAO,CAAC;AAE5F,eAAO,MAAM,aAAa,EAAE;IAAC,CAAC,CAAC,EAAE,MAAM,GAAG,mBAAmB,CAAA;CAM5D,CAAC"}
@@ -2,11 +2,6 @@ import { beaconNodeOptions, paramsOptions } from "../../options/index.js";
2
2
  import { logOptions } from "../../options/logOptions.js";
3
3
  import { defaultBeaconPaths } from "./paths.js";
4
4
  export const beaconExtraOptions = {
5
- forceGenesis: {
6
- description: "Force beacon to create genesis without file",
7
- type: "boolean",
8
- hidden: true,
9
- },
10
5
  genesisStateFile: {
11
6
  description: "Path or URL to download a genesis state file in ssz-encoded format",
12
7
  type: "string",
@@ -98,6 +93,12 @@ export const beaconExtraOptions = {
98
93
  defaultDescription: defaultBeaconPaths.peerStoreDir,
99
94
  type: "string",
100
95
  },
96
+ pubkeysFile: {
97
+ hidden: true,
98
+ description: "Pubkey cache file, loaded on startup and saved on graceful shutdown",
99
+ defaultDescription: defaultBeaconPaths.pubkeysFile,
100
+ type: "string",
101
+ },
101
102
  persistNetworkIdentity: {
102
103
  description: "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.",
103
104
  default: true,
@@ -1 +1 @@
1
- {"version":3,"file":"options.js","sourceRoot":"","sources":["../../../src/cmds/beacon/options.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"options.js","sourceRoot":"","sources":["../../../src/cmds/beacon/options.ts"],"names":[],"mappings":"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"}
@@ -7,6 +7,7 @@ export type BeaconPathsPartial = Partial<{
7
7
  dataColumnDir: string;
8
8
  persistInvalidSszObjectsDir: string;
9
9
  persistOrphanedBlocksDir?: string;
10
+ pubkeysFile: string;
10
11
  }>;
11
12
  export type BeaconPaths = {
12
13
  beaconDir: string;
@@ -15,6 +16,7 @@ export type BeaconPaths = {
15
16
  dataColumnDir: string;
16
17
  persistInvalidSszObjectsDir: string;
17
18
  persistOrphanedBlocksDir: string;
19
+ pubkeysFile: string;
18
20
  };
19
21
  /**
20
22
  * Defines the path structure of the files relevant to the beacon node
@@ -25,6 +27,7 @@ export type BeaconPaths = {
25
27
  * ├── beacon.config.json
26
28
  * ├── peer-id.json
27
29
  * ├── enr
30
+ * ├── pubkeys
28
31
  * ├── chain-db
29
32
  * └── beacon.log
30
33
  * ```
@@ -40,5 +43,6 @@ export declare const defaultBeaconPaths: GlobalPaths & Required<Partial<{
40
43
  dataColumnDir: string;
41
44
  persistInvalidSszObjectsDir: string;
42
45
  persistOrphanedBlocksDir?: string;
46
+ pubkeysFile: string;
43
47
  }>>;
44
48
  //# sourceMappingURL=paths.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"paths.d.ts","sourceRoot":"","sources":["../../../src/cmds/beacon/paths.ts"],"names":[],"mappings":"AACA,OAAO,EAAC,UAAU,EAAC,MAAM,wBAAwB,CAAC;AAClD,OAAO,EAAC,WAAW,EAAiB,MAAM,uBAAuB,CAAC;AAElE,MAAM,MAAM,kBAAkB,GAAG,OAAO,CAAC;IACvC,SAAS,EAAE,MAAM,CAAC;IAClB,YAAY,EAAE,MAAM,CAAC;IACrB,KAAK,EAAE,MAAM,CAAC;IACd,aAAa,EAAE,MAAM,CAAC;IACtB,2BAA2B,EAAE,MAAM,CAAC;IACpC,wBAAwB,CAAC,EAAE,MAAM,CAAC;CACnC,CAAC,CAAC;AAEH,MAAM,MAAM,WAAW,GAAG;IACxB,SAAS,EAAE,MAAM,CAAC;IAClB,YAAY,EAAE,MAAM,CAAC;IACrB,KAAK,EAAE,MAAM,CAAC;IACd,aAAa,EAAE,MAAM,CAAC;IACtB,2BAA2B,EAAE,MAAM,CAAC;IACpC,wBAAwB,EAAE,MAAM,CAAC;CAClC,CAAC;AAEF;;;;;;;;;;;;GAYG;AACH,wBAAgB,cAAc,CAE5B,IAAI,EAAE,kBAAkB,GAAG,IAAI,CAAC,UAAU,EAAE,SAAS,CAAC,EACtD,OAAO,EAAE,MAAM,GACd,WAAW,GAAG,QAAQ,CAAC,kBAAkB,CAAC,CAqB5C;AAED;;GAEG;AACH,eAAO,MAAM,kBAAkB;eA5DlB,MAAM;kBACH,MAAM;WACb,MAAM;mBACE,MAAM;iCACQ,MAAM;+BACR,MAAM;GAuDgD,CAAC"}
1
+ {"version":3,"file":"paths.d.ts","sourceRoot":"","sources":["../../../src/cmds/beacon/paths.ts"],"names":[],"mappings":"AACA,OAAO,EAAC,UAAU,EAAC,MAAM,wBAAwB,CAAC;AAClD,OAAO,EAAC,WAAW,EAAiB,MAAM,uBAAuB,CAAC;AAElE,MAAM,MAAM,kBAAkB,GAAG,OAAO,CAAC;IACvC,SAAS,EAAE,MAAM,CAAC;IAClB,YAAY,EAAE,MAAM,CAAC;IACrB,KAAK,EAAE,MAAM,CAAC;IACd,aAAa,EAAE,MAAM,CAAC;IACtB,2BAA2B,EAAE,MAAM,CAAC;IACpC,wBAAwB,CAAC,EAAE,MAAM,CAAC;IAClC,WAAW,EAAE,MAAM,CAAC;CACrB,CAAC,CAAC;AAEH,MAAM,MAAM,WAAW,GAAG;IACxB,SAAS,EAAE,MAAM,CAAC;IAClB,YAAY,EAAE,MAAM,CAAC;IACrB,KAAK,EAAE,MAAM,CAAC;IACd,aAAa,EAAE,MAAM,CAAC;IACtB,2BAA2B,EAAE,MAAM,CAAC;IACpC,wBAAwB,EAAE,MAAM,CAAC;IACjC,WAAW,EAAE,MAAM,CAAC;CACrB,CAAC;AAEF;;;;;;;;;;;;;GAaG;AACH,wBAAgB,cAAc,CAE5B,IAAI,EAAE,kBAAkB,GAAG,IAAI,CAAC,UAAU,EAAE,SAAS,CAAC,EACtD,OAAO,EAAE,MAAM,GACd,WAAW,GAAG,QAAQ,CAAC,kBAAkB,CAAC,CAuB5C;AAED;;GAEG;AACH,eAAO,MAAM,kBAAkB;eAjElB,MAAM;kBACH,MAAM;WACb,MAAM;mBACE,MAAM;iCACQ,MAAM;+BACR,MAAM;iBACpB,MAAM;GA2D8D,CAAC"}
@@ -9,6 +9,7 @@ import { getGlobalPaths } from "../../paths/global.js";
9
9
  * ├── beacon.config.json
10
10
  * ├── peer-id.json
11
11
  * ├── enr
12
+ * ├── pubkeys
12
13
  * ├── chain-db
13
14
  * └── beacon.log
14
15
  * ```
@@ -25,6 +26,7 @@ args, network) {
25
26
  const persistInvalidSszObjectsDir = args.persistInvalidSszObjectsDir ?? path.join(beaconDir, "invalidSszObjects");
26
27
  const peerStoreDir = args.peerStoreDir ?? path.join(beaconDir, "peerstore");
27
28
  const persistOrphanedBlocksDir = args.persistOrphanedBlocksDir ?? path.join(beaconDir, "orphaned_blocks");
29
+ const pubkeysFile = args.pubkeysFile ?? path.join(beaconDir, "pubkeys");
28
30
  return {
29
31
  ...globalPaths,
30
32
  beaconDir,
@@ -33,6 +35,7 @@ args, network) {
33
35
  persistInvalidSszObjectsDir,
34
36
  peerStoreDir,
35
37
  persistOrphanedBlocksDir,
38
+ pubkeysFile,
36
39
  };
37
40
  }
38
41
  /**
@@ -1 +1 @@
1
- {"version":3,"file":"paths.js","sourceRoot":"","sources":["../../../src/cmds/beacon/paths.ts"],"names":[],"mappings":"AAAA,OAAO,IAAI,MAAM,WAAW,CAAC;AAE7B,OAAO,EAAc,cAAc,EAAC,MAAM,uBAAuB,CAAC;AAoBlE;;;;;;;;;;;;GAYG;AACH,MAAM,UAAU,cAAc;AAC5B,uFAAuF;AACvF,IAAsD,EACtD,OAAe;IAEf,6BAA6B;IAC7B,MAAM,WAAW,GAAG,cAAc,CAAC,IAAI,EAAE,OAAO,CAAC,CAAC;IAElD,MAAM,OAAO,GAAG,WAAW,CAAC,OAAO,CAAC;IACpC,MAAM,SAAS,GAAG,OAAO,CAAC;IAC1B,MAAM,KAAK,GAAG,IAAI,CAAC,KAAK,IAAI,IAAI,CAAC,IAAI,CAAC,SAAS,EAAE,UAAU,CAAC,CAAC;IAC7D,MAAM,aAAa,GAAG,IAAI,CAAC,aAAa,IAAI,IAAI,CAAC,IAAI,CAAC,SAAS,EAAE,cAAc,CAAC,CAAC;IACjF,MAAM,2BAA2B,GAAG,IAAI,CAAC,2BAA2B,IAAI,IAAI,CAAC,IAAI,CAAC,SAAS,EAAE,mBAAmB,CAAC,CAAC;IAClH,MAAM,YAAY,GAAG,IAAI,CAAC,YAAY,IAAI,IAAI,CAAC,IAAI,CAAC,SAAS,EAAE,WAAW,CAAC,CAAC;IAC5E,MAAM,wBAAwB,GAAG,IAAI,CAAC,wBAAwB,IAAI,IAAI,CAAC,IAAI,CAAC,SAAS,EAAE,iBAAiB,CAAC,CAAC;IAE1G,OAAO;QACL,GAAG,WAAW;QACd,SAAS;QACT,KAAK;QACL,aAAa;QACb,2BAA2B;QAC3B,YAAY;QACZ,wBAAwB;KACzB,CAAC;AACJ,CAAC;AAED;;GAEG;AACH,MAAM,CAAC,MAAM,kBAAkB,GAAG,cAAc,CAAC,EAAC,OAAO,EAAE,UAAU,EAAC,EAAE,UAAU,CAAC,CAAC"}
1
+ {"version":3,"file":"paths.js","sourceRoot":"","sources":["../../../src/cmds/beacon/paths.ts"],"names":[],"mappings":"AAAA,OAAO,IAAI,MAAM,WAAW,CAAC;AAE7B,OAAO,EAAc,cAAc,EAAC,MAAM,uBAAuB,CAAC;AAsBlE;;;;;;;;;;;;;GAaG;AACH,MAAM,UAAU,cAAc;AAC5B,uFAAuF;AACvF,IAAsD,EACtD,OAAe;IAEf,6BAA6B;IAC7B,MAAM,WAAW,GAAG,cAAc,CAAC,IAAI,EAAE,OAAO,CAAC,CAAC;IAElD,MAAM,OAAO,GAAG,WAAW,CAAC,OAAO,CAAC;IACpC,MAAM,SAAS,GAAG,OAAO,CAAC;IAC1B,MAAM,KAAK,GAAG,IAAI,CAAC,KAAK,IAAI,IAAI,CAAC,IAAI,CAAC,SAAS,EAAE,UAAU,CAAC,CAAC;IAC7D,MAAM,aAAa,GAAG,IAAI,CAAC,aAAa,IAAI,IAAI,CAAC,IAAI,CAAC,SAAS,EAAE,cAAc,CAAC,CAAC;IACjF,MAAM,2BAA2B,GAAG,IAAI,CAAC,2BAA2B,IAAI,IAAI,CAAC,IAAI,CAAC,SAAS,EAAE,mBAAmB,CAAC,CAAC;IAClH,MAAM,YAAY,GAAG,IAAI,CAAC,YAAY,IAAI,IAAI,CAAC,IAAI,CAAC,SAAS,EAAE,WAAW,CAAC,CAAC;IAC5E,MAAM,wBAAwB,GAAG,IAAI,CAAC,wBAAwB,IAAI,IAAI,CAAC,IAAI,CAAC,SAAS,EAAE,iBAAiB,CAAC,CAAC;IAC1G,MAAM,WAAW,GAAG,IAAI,CAAC,WAAW,IAAI,IAAI,CAAC,IAAI,CAAC,SAAS,EAAE,SAAS,CAAC,CAAC;IAExE,OAAO;QACL,GAAG,WAAW;QACd,SAAS;QACT,KAAK;QACL,aAAa;QACb,2BAA2B;QAC3B,YAAY;QACZ,wBAAwB;QACxB,WAAW;KACZ,CAAC;AACJ,CAAC;AAED;;GAEG;AACH,MAAM,CAAC,MAAM,kBAAkB,GAAG,cAAc,CAAC,EAAC,OAAO,EAAE,UAAU,EAAC,EAAE,UAAU,CAAC,CAAC"}
@@ -0,0 +1,10 @@
1
+ import { type PubkeyCache } from "@chainsafe/lodestar-z/pubkeys";
2
+ import { ChainForkConfig } from "@lodestar/config";
3
+ import { Logger } from "@lodestar/utils";
4
+ /**
5
+ * Best effort load of a trusted pubkey cache saved by a previous run, to skip decompressing every validator
6
+ * pubkey on boot. Must be called before any worker uses the cache.
7
+ */
8
+ export declare function loadPubkeysFile(pubkeyCache: PubkeyCache, filepath: string, maxCapacity: number, config: ChainForkConfig, anchorStateBytes: Uint8Array, anchorValidatorCount: number, logger: Logger): void;
9
+ export declare function savePubkeysFile(pubkeyCache: PubkeyCache, filepath: string, logger: Logger): void;
10
+ //# sourceMappingURL=pubkeysFile.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"pubkeysFile.d.ts","sourceRoot":"","sources":["../../../src/cmds/beacon/pubkeysFile.ts"],"names":[],"mappings":"AAAA,OAAO,EAAC,KAAK,WAAW,EAAC,MAAM,+BAA+B,CAAC;AAC/D,OAAO,EAAC,eAAe,EAAC,MAAM,kBAAkB,CAAC;AAEjD,OAAO,EAAC,MAAM,EAAkB,MAAM,iBAAiB,CAAC;AAExD;;;GAGG;AACH,wBAAgB,eAAe,CAC7B,WAAW,EAAE,WAAW,EACxB,QAAQ,EAAE,MAAM,EAChB,WAAW,EAAE,MAAM,EACnB,MAAM,EAAE,eAAe,EACvB,gBAAgB,EAAE,UAAU,EAC5B,oBAAoB,EAAE,MAAM,EAC5B,MAAM,EAAE,MAAM,GACb,IAAI,CAsBN;AAED,wBAAgB,eAAe,CAAC,WAAW,EAAE,WAAW,EAAE,QAAQ,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,GAAG,IAAI,CAQhG"}
@@ -0,0 +1,39 @@
1
+ import { getValidatorPubkeyFromStateBytes } from "@lodestar/state-transition";
2
+ import { byteArrayEquals } from "@lodestar/utils";
3
+ /**
4
+ * Best effort load of a trusted pubkey cache saved by a previous run, to skip decompressing every validator
5
+ * pubkey on boot. Must be called before any worker uses the cache.
6
+ */
7
+ export function loadPubkeysFile(pubkeyCache, filepath, maxCapacity, config, anchorStateBytes, anchorValidatorCount, logger) {
8
+ const start = Date.now();
9
+ try {
10
+ pubkeyCache.load(filepath, maxCapacity);
11
+ }
12
+ catch (e) {
13
+ logger.debug("Unable to load pubkeys file", { filepath }, e);
14
+ return;
15
+ }
16
+ // load() only checks framing and checksum, so reject a file from another chain. Checking the endpoints
17
+ // suffices since the registry is append-only.
18
+ const overlap = Math.min(pubkeyCache.size, anchorValidatorCount);
19
+ for (const index of overlap > 0 ? [0, overlap - 1] : []) {
20
+ const anchorPubkey = getValidatorPubkeyFromStateBytes(config, anchorStateBytes, index);
21
+ if (anchorPubkey === null || !byteArrayEquals(pubkeyCache.getPubkeyBytesOrThrow(index), anchorPubkey)) {
22
+ pubkeyCache.reset();
23
+ logger.debug("Discarded pubkeys file not matching anchor state", { filepath, index });
24
+ return;
25
+ }
26
+ }
27
+ logger.debug("Loaded pubkeys file", { filepath, count: pubkeyCache.size, durationMs: Date.now() - start });
28
+ }
29
+ export function savePubkeysFile(pubkeyCache, filepath, logger) {
30
+ const start = Date.now();
31
+ try {
32
+ pubkeyCache.save(filepath);
33
+ logger.debug("Saved pubkeys file", { filepath, count: pubkeyCache.size, durationMs: Date.now() - start });
34
+ }
35
+ catch (e) {
36
+ logger.debug("Unable to save pubkeys file", { filepath }, e);
37
+ }
38
+ }
39
+ //# sourceMappingURL=pubkeysFile.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"pubkeysFile.js","sourceRoot":"","sources":["../../../src/cmds/beacon/pubkeysFile.ts"],"names":[],"mappings":"AAEA,OAAO,EAAC,gCAAgC,EAAC,MAAM,4BAA4B,CAAC;AAC5E,OAAO,EAAS,eAAe,EAAC,MAAM,iBAAiB,CAAC;AAExD;;;GAGG;AACH,MAAM,UAAU,eAAe,CAC7B,WAAwB,EACxB,QAAgB,EAChB,WAAmB,EACnB,MAAuB,EACvB,gBAA4B,EAC5B,oBAA4B,EAC5B,MAAc;IAEd,MAAM,KAAK,GAAG,IAAI,CAAC,GAAG,EAAE,CAAC;IACzB,IAAI,CAAC;QACH,WAAW,CAAC,IAAI,CAAC,QAAQ,EAAE,WAAW,CAAC,CAAC;IAC1C,CAAC;IAAC,OAAO,CAAC,EAAE,CAAC;QACX,MAAM,CAAC,KAAK,CAAC,6BAA6B,EAAE,EAAC,QAAQ,EAAC,EAAE,CAAU,CAAC,CAAC;QACpE,OAAO;IACT,CAAC;IAED,uGAAuG;IACvG,8CAA8C;IAC9C,MAAM,OAAO,GAAG,IAAI,CAAC,GAAG,CAAC,WAAW,CAAC,IAAI,EAAE,oBAAoB,CAAC,CAAC;IACjE,KAAK,MAAM,KAAK,IAAI,OAAO,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,OAAO,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC;QACxD,MAAM,YAAY,GAAG,gCAAgC,CAAC,MAAM,EAAE,gBAAgB,EAAE,KAAK,CAAC,CAAC;QACvF,IAAI,YAAY,KAAK,IAAI,IAAI,CAAC,eAAe,CAAC,WAAW,CAAC,qBAAqB,CAAC,KAAK,CAAC,EAAE,YAAY,CAAC,EAAE,CAAC;YACtG,WAAW,CAAC,KAAK,EAAE,CAAC;YACpB,MAAM,CAAC,KAAK,CAAC,kDAAkD,EAAE,EAAC,QAAQ,EAAE,KAAK,EAAC,CAAC,CAAC;YACpF,OAAO;QACT,CAAC;IACH,CAAC;IAED,MAAM,CAAC,KAAK,CAAC,qBAAqB,EAAE,EAAC,QAAQ,EAAE,KAAK,EAAE,WAAW,CAAC,IAAI,EAAE,UAAU,EAAE,IAAI,CAAC,GAAG,EAAE,GAAG,KAAK,EAAC,CAAC,CAAC;AAC3G,CAAC;AAED,MAAM,UAAU,eAAe,CAAC,WAAwB,EAAE,QAAgB,EAAE,MAAc;IACxF,MAAM,KAAK,GAAG,IAAI,CAAC,GAAG,EAAE,CAAC;IACzB,IAAI,CAAC;QACH,WAAW,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC;QAC3B,MAAM,CAAC,KAAK,CAAC,oBAAoB,EAAE,EAAC,QAAQ,EAAE,KAAK,EAAE,WAAW,CAAC,IAAI,EAAE,UAAU,EAAE,IAAI,CAAC,GAAG,EAAE,GAAG,KAAK,EAAC,CAAC,CAAC;IAC1G,CAAC;IAAC,OAAO,CAAC,EAAE,CAAC;QACX,MAAM,CAAC,KAAK,CAAC,6BAA6B,EAAE,EAAC,QAAQ,EAAC,EAAE,CAAU,CAAC,CAAC;IACtE,CAAC;AACH,CAAC"}
@@ -0,0 +1,7 @@
1
+ import { ArchivedStateBytes, StateInitialization, StateInitializationOptions, StatePreparationContext } from "./types.js";
2
+ type CheckpointOptions = Pick<StateInitializationOptions, "wssCheckpoint" | "forceCheckpointSync" | "ignoreWeakSubjectivityCheck">;
3
+ export declare function prepareCheckpointFileInitialization(checkpointState: string, options: CheckpointOptions, archived: ArchivedStateBytes | null, context: StatePreparationContext): Promise<StateInitialization>;
4
+ export declare function prepareCheckpointApiInitialization(checkpointSyncUrl: string, options: CheckpointOptions, archived: ArchivedStateBytes | null, context: StatePreparationContext): Promise<StateInitialization>;
5
+ export declare function prepareUnfinalizedCheckpointInitialization(options: CheckpointOptions & Pick<StateInitializationOptions, "lastPersistedCheckpointState" | "unsafeCheckpointState" | "chain.nHistoricalStatesFileDataStore">, archived: ArchivedStateBytes | null, context: StatePreparationContext): Promise<StateInitialization | null>;
6
+ export {};
7
+ //# sourceMappingURL=checkpointState.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"checkpointState.d.ts","sourceRoot":"","sources":["../../../../src/cmds/beacon/stateInitialization/checkpointState.ts"],"names":[],"mappings":"AAgBA,OAAO,EACL,kBAAkB,EAGlB,mBAAmB,EACnB,0BAA0B,EAC1B,uBAAuB,EACxB,MAAM,YAAY,CAAC;AAGpB,KAAK,iBAAiB,GAAG,IAAI,CAC3B,0BAA0B,EAC1B,eAAe,GAAG,qBAAqB,GAAG,6BAA6B,CACxE,CAAC;AAEF,wBAAsB,mCAAmC,CACvD,eAAe,EAAE,MAAM,EACvB,OAAO,EAAE,iBAAiB,EAC1B,QAAQ,EAAE,kBAAkB,GAAG,IAAI,EACnC,OAAO,EAAE,uBAAuB,GAC/B,OAAO,CAAC,mBAAmB,CAAC,CAmB9B;AAED,wBAAsB,kCAAkC,CACtD,iBAAiB,EAAE,MAAM,EACzB,OAAO,EAAE,iBAAiB,EAC1B,QAAQ,EAAE,kBAAkB,GAAG,IAAI,EACnC,OAAO,EAAE,uBAAuB,GAC/B,OAAO,CAAC,mBAAmB,CAAC,CAuB9B;AAED,wBAAsB,0CAA0C,CAC9D,OAAO,EAAE,iBAAiB,GACxB,IAAI,CACF,0BAA0B,EAC1B,8BAA8B,GAAG,uBAAuB,GAAG,sCAAsC,CAClG,EACH,QAAQ,EAAE,kBAAkB,GAAG,IAAI,EACnC,OAAO,EAAE,uBAAuB,GAC/B,OAAO,CAAC,mBAAmB,GAAG,IAAI,CAAC,CAuCrC"}
@@ -0,0 +1,184 @@
1
+ import { DbCPStateDatastore, FileCPStateDatastore, persistAnchorState } from "@lodestar/beacon-node";
2
+ import { createBeaconConfig } from "@lodestar/config";
3
+ import { computeEpochAtSlot, computeWeakSubjectivitySummaryFromStateBytes, getCurrentSlot, isWithinWeakSubjectivityPeriodFromSummary, readBeaconStateBytesMetadata, } from "@lodestar/state-transition";
4
+ import { ssz } from "@lodestar/types";
5
+ import { formatBytes, toRootHex } from "@lodestar/utils";
6
+ import { fetchWeakSubjectivityStateBytes, getCheckpointFromArg } from "../../../networks/index.js";
7
+ import { downloadOrLoadFile } from "../../../util/index.js";
8
+ import { StateInitializationError, StateInitializationErrorCode } from "./errors.js";
9
+ import { assertAnchorStateForkMatchesConfig } from "./validation.js";
10
+ export async function prepareCheckpointFileInitialization(checkpointState, options, archived, context) {
11
+ context.logger.info("Loading checkpoint state", { checkpointState });
12
+ const bytes = await downloadOrLoadFile(checkpointState);
13
+ const stateBytes = new Uint8Array(bytes.buffer, bytes.byteOffset, bytes.byteLength);
14
+ context.logger.info("Loaded checkpoint state", { checkpointState, size: formatBytes(stateBytes.length) });
15
+ return prepareCheckpointInitialization({
16
+ stateBytes,
17
+ expectedCheckpoint: options.wssCheckpoint ? getCheckpointFromArg(options.wssCheckpoint) : null,
18
+ source: "checkpoint file",
19
+ }, archived, {
20
+ isFinalized: true,
21
+ forceCheckpointSync: Boolean(options.forceCheckpointSync),
22
+ ignoreWeakSubjectivityCheck: Boolean(options.ignoreWeakSubjectivityCheck),
23
+ }, context);
24
+ }
25
+ export async function prepareCheckpointApiInitialization(checkpointSyncUrl, options, archived, context) {
26
+ const { chainForkConfig, logger } = context;
27
+ try {
28
+ const url = new URL(checkpointSyncUrl);
29
+ logger.info("Fetching checkpoint state", { checkpointSyncUrl: url.origin });
30
+ }
31
+ catch (error) {
32
+ logger.error("Invalid checkpoint sync URL", { checkpointSyncUrl }, error);
33
+ throw error;
34
+ }
35
+ const { stateBytes, expectedCheckpoint } = await fetchWeakSubjectivityStateBytes(chainForkConfig, logger, {
36
+ checkpointSyncUrl,
37
+ wssCheckpoint: options.wssCheckpoint,
38
+ });
39
+ return prepareCheckpointInitialization({ stateBytes, expectedCheckpoint, source: "checkpointSyncUrl" }, archived, {
40
+ isFinalized: true,
41
+ forceCheckpointSync: Boolean(options.forceCheckpointSync),
42
+ ignoreWeakSubjectivityCheck: Boolean(options.ignoreWeakSubjectivityCheck),
43
+ }, context);
44
+ }
45
+ export async function prepareUnfinalizedCheckpointInitialization(options, archived, context) {
46
+ const { db, dataDir, logger } = context;
47
+ let bytes = null;
48
+ if (options.lastPersistedCheckpointState && !options.forceCheckpointSync) {
49
+ const store = options["chain.nHistoricalStatesFileDataStore"]
50
+ ? new FileCPStateDatastore(dataDir)
51
+ : new DbCPStateDatastore(db);
52
+ logger.verbose(`Finding last persisted checkpoint state from ${store.constructor.name}`);
53
+ bytes = await store.readLatestSafe();
54
+ if (bytes === null) {
55
+ logger.warn("Last persisted checkpoint state not found");
56
+ }
57
+ else {
58
+ logger.info("Found last persisted checkpoint state", { size: formatBytes(bytes.length) });
59
+ }
60
+ }
61
+ if (bytes === null && options.unsafeCheckpointState) {
62
+ logger.info("Loading checkpoint state", { unsafeCheckpointState: options.unsafeCheckpointState });
63
+ bytes = await downloadOrLoadFile(options.unsafeCheckpointState);
64
+ logger.info("Loaded checkpoint state", { size: formatBytes(bytes.length) });
65
+ }
66
+ if (bytes === null)
67
+ return null;
68
+ logger.warn("Initializing from unfinalized checkpoint state is unsafe and may cause the node to follow a minority chain");
69
+ const stateBytes = new Uint8Array(bytes.buffer, bytes.byteOffset, bytes.byteLength);
70
+ return prepareCheckpointInitialization({
71
+ stateBytes,
72
+ expectedCheckpoint: options.wssCheckpoint ? getCheckpointFromArg(options.wssCheckpoint) : null,
73
+ source: "unfinalized source",
74
+ }, archived, {
75
+ isFinalized: false,
76
+ forceCheckpointSync: Boolean(options.forceCheckpointSync),
77
+ ignoreWeakSubjectivityCheck: Boolean(options.ignoreWeakSubjectivityCheck),
78
+ }, context);
79
+ }
80
+ function prepareCheckpointInitialization(candidate, archived, policy, { chainForkConfig, db, logger }) {
81
+ const candidateMetadata = readBeaconStateBytesMetadata(candidate.stateBytes);
82
+ if (candidateMetadata === null) {
83
+ throw new StateInitializationError({ code: StateInitializationErrorCode.MALFORMED_STATE_BYTES }, `Cannot read state metadata from ${candidate.source}`);
84
+ }
85
+ if (archived !== null &&
86
+ (archived.metadata.genesisTime !== candidateMetadata.genesisTime ||
87
+ !ssz.Root.equals(archived.metadata.genesisValidatorsRoot, candidateMetadata.genesisValidatorsRoot))) {
88
+ throw new StateInitializationError({ code: StateInitializationErrorCode.INCOMPATIBLE_GENESIS }, "Db state and checkpoint state are not compatible, either clear the db or verify your checkpoint source");
89
+ }
90
+ const useArchived = archived !== null && archived.metadata.slot > candidateMetadata.slot && !policy.forceCheckpointSync;
91
+ if (useArchived) {
92
+ logger.verbose("Db state is ahead of the provided checkpoint state, using the db state to initialize the beacon chain");
93
+ }
94
+ const { stateBytes, metadata, weakSubjectivity } = useArchived
95
+ ? archived
96
+ : {
97
+ stateBytes: candidate.stateBytes,
98
+ metadata: candidateMetadata,
99
+ weakSubjectivity: computeWeakSubjectivitySummaryFromStateBytes(chainForkConfig, candidate.stateBytes, candidateMetadata),
100
+ };
101
+ if (weakSubjectivity === null) {
102
+ throw new StateInitializationError({ code: StateInitializationErrorCode.MALFORMED_STATE_BYTES }, `Cannot extract weak subjectivity summary from ${candidate.source}, expected ${chainForkConfig.getForkName(metadata.slot)} state at slot ${metadata.slot}, possible fork or network mismatch`);
103
+ }
104
+ const expectedCheckpoint = useArchived ? null : candidate.expectedCheckpoint;
105
+ const source = useArchived ? "db" : candidate.source;
106
+ const { isFinalized, ignoreWeakSubjectivityCheck } = policy;
107
+ const config = createBeaconConfig(chainForkConfig, metadata.genesisValidatorsRoot);
108
+ const archivedWithinWeakSubjectivityPeriod = useArchived ? archived.isWithinWeakSubjectivityPeriod : null;
109
+ const passedValidation = archivedWithinWeakSubjectivityPeriod ?? isWithinWeakSubjectivityPeriodFromSummary(config, weakSubjectivity);
110
+ // Fast-fail stale checkpoints before deserializing the state or reserving pubkey-cache capacity.
111
+ if (!passedValidation && !ignoreWeakSubjectivityCheck) {
112
+ const clockEpoch = computeEpochAtSlot(getCurrentSlot(config, weakSubjectivity.genesisTime));
113
+ throw new StateInitializationError({ code: StateInitializationErrorCode.STALE_CHECKPOINT }, `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`);
114
+ }
115
+ // DB-selected anchors need no persistence, including at slot zero.
116
+ const shouldPersist = isFinalized && !useArchived;
117
+ return {
118
+ stateBytes,
119
+ config,
120
+ isFinalized,
121
+ validate(state) {
122
+ // A supplied checkpoint must match even when the period check is ignored.
123
+ if (expectedCheckpoint !== null)
124
+ assertStateMatchesCheckpoint(state, expectedCheckpoint);
125
+ assertAnchorStateForkMatchesConfig(config, state);
126
+ if (isFinalized) {
127
+ const source = useArchived ? "db" : "checkpoint";
128
+ const logData = {
129
+ slot: state.slot,
130
+ epoch: computeEpochAtSlot(state.slot),
131
+ stateSize: formatBytes(stateBytes.length),
132
+ stateRoot: toRootHex(state.hashTreeRoot()),
133
+ isWithinWeakSubjectivityPeriod: passedValidation,
134
+ };
135
+ if (passedValidation) {
136
+ logger.info(`Initializing beacon from a valid ${source} state`, logData);
137
+ }
138
+ else {
139
+ logger.warn(`Initializing from a stale ${source} state vulnerable to long range attacks`, logData);
140
+ logger.warn("Checkpoint sync recommended, please use --help to see checkpoint sync options");
141
+ }
142
+ }
143
+ },
144
+ async initializeEarliestAvailableSlot(state) {
145
+ const stored = await db.earliestAvailableSlot.get();
146
+ const floor = useArchived ? (stored ?? state.slot) : Math.max(stored ?? 0, state.slot);
147
+ if (stored !== floor) {
148
+ await db.earliestAvailableSlot.set(floor);
149
+ }
150
+ logger.verbose("Initialized earliest available slot", {
151
+ source,
152
+ anchorSlot: state.slot,
153
+ previousSlot: stored,
154
+ earliestAvailableSlot: floor,
155
+ });
156
+ return floor;
157
+ },
158
+ persist: shouldPersist ? (state, bytes) => persistAnchorState(config, db, state, bytes) : null,
159
+ log(state, nativeStateTransition) {
160
+ const { checkpoint } = state.computeAnchorCheckpoint();
161
+ logger.info("Initialized checkpoint state", {
162
+ source,
163
+ slot: state.slot,
164
+ epoch: checkpoint.epoch,
165
+ stateSize: formatBytes(stateBytes.length),
166
+ stateRoot: toRootHex(state.hashTreeRoot()),
167
+ checkpointRoot: toRootHex(checkpoint.root),
168
+ isFinalized,
169
+ nativeStateTransition,
170
+ ...(isFinalized ? {} : { lastProcessedSlot: state.latestBlockHeader.slot }),
171
+ });
172
+ },
173
+ };
174
+ }
175
+ function assertStateMatchesCheckpoint(state, checkpoint) {
176
+ const { root: blockRoot, epoch: stateEpoch } = state.computeAnchorCheckpoint().checkpoint;
177
+ if (!ssz.Root.equals(blockRoot, checkpoint.root)) {
178
+ throw new StateInitializationError({ code: StateInitializationErrorCode.CHECKPOINT_ROOT_MISMATCH }, `Roots do not match. expected=${toRootHex(checkpoint.root)}, actual=${toRootHex(blockRoot)}`);
179
+ }
180
+ if (!ssz.Epoch.equals(stateEpoch, checkpoint.epoch)) {
181
+ throw new StateInitializationError({ code: StateInitializationErrorCode.CHECKPOINT_EPOCH_MISMATCH }, `Epochs do not match. expected=${checkpoint.epoch}, actual=${stateEpoch}`);
182
+ }
183
+ }
184
+ //# sourceMappingURL=checkpointState.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"checkpointState.js","sourceRoot":"","sources":["../../../../src/cmds/beacon/stateInitialization/checkpointState.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,17 @@
1
+ import { LodestarError } from "@lodestar/utils";
2
+ export declare enum StateInitializationErrorCode {
3
+ INVALID_CHECKPOINT_SOURCE = "INVALID_CHECKPOINT_SOURCE",
4
+ MALFORMED_STATE_BYTES = "MALFORMED_STATE_BYTES",
5
+ INCOMPATIBLE_GENESIS = "INCOMPATIBLE_GENESIS",
6
+ CHECKPOINT_ROOT_MISMATCH = "CHECKPOINT_ROOT_MISMATCH",
7
+ CHECKPOINT_EPOCH_MISMATCH = "CHECKPOINT_EPOCH_MISMATCH",
8
+ STALE_CHECKPOINT = "STALE_CHECKPOINT",
9
+ ANCHOR_STATE_FORK_MISMATCH = "ANCHOR_STATE_FORK_MISMATCH",
10
+ GENESIS_ROOT_MISMATCH = "GENESIS_ROOT_MISMATCH",
11
+ MISSING_INITIALIZATION_SOURCE = "MISSING_INITIALIZATION_SOURCE"
12
+ }
13
+ export declare class StateInitializationError extends LodestarError<{
14
+ code: StateInitializationErrorCode;
15
+ }> {
16
+ }
17
+ //# sourceMappingURL=errors.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"errors.d.ts","sourceRoot":"","sources":["../../../../src/cmds/beacon/stateInitialization/errors.ts"],"names":[],"mappings":"AAAA,OAAO,EAAC,aAAa,EAAC,MAAM,iBAAiB,CAAC;AAE9C,oBAAY,4BAA4B;IACtC,yBAAyB,8BAA8B;IACvD,qBAAqB,0BAA0B;IAC/C,oBAAoB,yBAAyB;IAC7C,wBAAwB,6BAA6B;IACrD,yBAAyB,8BAA8B;IACvD,gBAAgB,qBAAqB;IACrC,0BAA0B,+BAA+B;IACzD,qBAAqB,0BAA0B;IAC/C,6BAA6B,kCAAkC;CAChE;AAED,qBAAa,wBAAyB,SAAQ,aAAa,CAAC;IAAC,IAAI,EAAE,4BAA4B,CAAA;CAAC,CAAC;CAAG"}
@@ -0,0 +1,16 @@
1
+ import { LodestarError } from "@lodestar/utils";
2
+ export var StateInitializationErrorCode;
3
+ (function (StateInitializationErrorCode) {
4
+ StateInitializationErrorCode["INVALID_CHECKPOINT_SOURCE"] = "INVALID_CHECKPOINT_SOURCE";
5
+ StateInitializationErrorCode["MALFORMED_STATE_BYTES"] = "MALFORMED_STATE_BYTES";
6
+ StateInitializationErrorCode["INCOMPATIBLE_GENESIS"] = "INCOMPATIBLE_GENESIS";
7
+ StateInitializationErrorCode["CHECKPOINT_ROOT_MISMATCH"] = "CHECKPOINT_ROOT_MISMATCH";
8
+ StateInitializationErrorCode["CHECKPOINT_EPOCH_MISMATCH"] = "CHECKPOINT_EPOCH_MISMATCH";
9
+ StateInitializationErrorCode["STALE_CHECKPOINT"] = "STALE_CHECKPOINT";
10
+ StateInitializationErrorCode["ANCHOR_STATE_FORK_MISMATCH"] = "ANCHOR_STATE_FORK_MISMATCH";
11
+ StateInitializationErrorCode["GENESIS_ROOT_MISMATCH"] = "GENESIS_ROOT_MISMATCH";
12
+ StateInitializationErrorCode["MISSING_INITIALIZATION_SOURCE"] = "MISSING_INITIALIZATION_SOURCE";
13
+ })(StateInitializationErrorCode || (StateInitializationErrorCode = {}));
14
+ export class StateInitializationError extends LodestarError {
15
+ }
16
+ //# sourceMappingURL=errors.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"errors.js","sourceRoot":"","sources":["../../../../src/cmds/beacon/stateInitialization/errors.ts"],"names":[],"mappings":"AAAA,OAAO,EAAC,aAAa,EAAC,MAAM,iBAAiB,CAAC;AAE9C,MAAM,CAAN,IAAY,4BAUX;AAVD,WAAY,4BAA4B;IACtC,uFAAuD,CAAA;IACvD,+EAA+C,CAAA;IAC/C,6EAA6C,CAAA;IAC7C,qFAAqD,CAAA;IACrD,uFAAuD,CAAA;IACvD,qEAAqC,CAAA;IACrC,yFAAyD,CAAA;IACzD,+EAA+C,CAAA;IAC/C,+FAA+D,CAAA;AACjE,CAAC,EAVW,4BAA4B,KAA5B,4BAA4B,QAUvC;AAED,MAAM,OAAO,wBAAyB,SAAQ,aAAmD;CAAG"}
@@ -0,0 +1,3 @@
1
+ import { StateInitialization, StateInitializationOptions, StatePreparationContext } from "./types.js";
2
+ export declare function prepareGenesisInitialization(options: Pick<StateInitializationOptions, "genesisStateFile" | "network">, { chainForkConfig, db, logger }: StatePreparationContext): Promise<StateInitialization>;
3
+ //# sourceMappingURL=genesisState.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"genesisState.d.ts","sourceRoot":"","sources":["../../../../src/cmds/beacon/stateInitialization/genesisState.ts"],"names":[],"mappings":"AAaA,OAAO,EAAC,mBAAmB,EAAE,0BAA0B,EAAE,uBAAuB,EAAC,MAAM,YAAY,CAAC;AAGpG,wBAAsB,4BAA4B,CAChD,OAAO,EAAE,IAAI,CAAC,0BAA0B,EAAE,kBAAkB,GAAG,SAAS,CAAC,EACzE,EAAC,eAAe,EAAE,EAAE,EAAE,MAAM,EAAC,EAAE,uBAAuB,GACrD,OAAO,CAAC,mBAAmB,CAAC,CA+E9B"}
@@ -0,0 +1,79 @@
1
+ import { persistAnchorState } from "@lodestar/beacon-node";
2
+ import { createBeaconConfig } from "@lodestar/config";
3
+ import { computeEpochAtSlot, computeWeakSubjectivitySummaryFromStateBytes, isWithinWeakSubjectivityPeriodFromSummary, readBeaconStateBytesMetadata, } from "@lodestar/state-transition";
4
+ import { formatBytes, toRootHex } from "@lodestar/utils";
5
+ import { getGenesisFileUrl, getGenesisStateRoot } from "../../../networks/index.js";
6
+ import { defaultNetwork } from "../../../options/globalOptions.js";
7
+ import { downloadOrLoadFile } from "../../../util/index.js";
8
+ import { StateInitializationError, StateInitializationErrorCode } from "./errors.js";
9
+ import { assertAnchorStateForkMatchesConfig } from "./validation.js";
10
+ export async function prepareGenesisInitialization(options, { chainForkConfig, db, logger }) {
11
+ const source = options.genesisStateFile || getGenesisFileUrl(options.network || defaultNetwork);
12
+ if (!source) {
13
+ throw new StateInitializationError({ code: StateInitializationErrorCode.MISSING_INITIALIZATION_SOURCE }, "Failed to initialize beacon state, please provide a genesis state file or use checkpoint sync");
14
+ }
15
+ logger.info("Loading genesis state", { genesisStateFile: source });
16
+ const bytes = await downloadOrLoadFile(source);
17
+ const stateBytes = new Uint8Array(bytes.buffer, bytes.byteOffset, bytes.byteLength);
18
+ logger.info("Loaded genesis state", { size: formatBytes(stateBytes.length) });
19
+ const metadata = readBeaconStateBytesMetadata(stateBytes);
20
+ if (metadata === null) {
21
+ throw new StateInitializationError({ code: StateInitializationErrorCode.MALFORMED_STATE_BYTES }, "Cannot read metadata from genesis state bytes");
22
+ }
23
+ const weakSubjectivity = computeWeakSubjectivitySummaryFromStateBytes(chainForkConfig, stateBytes, metadata);
24
+ if (weakSubjectivity === null) {
25
+ throw new StateInitializationError({ code: StateInitializationErrorCode.MALFORMED_STATE_BYTES }, `Cannot extract weak subjectivity summary from genesis state bytes, expected ${chainForkConfig.getForkName(metadata.slot)} state at slot ${metadata.slot}, possible fork or network mismatch`);
26
+ }
27
+ const config = createBeaconConfig(chainForkConfig, metadata.genesisValidatorsRoot);
28
+ const expectedRoot = getGenesisStateRoot(options.network);
29
+ return {
30
+ stateBytes,
31
+ config,
32
+ isFinalized: true,
33
+ validate(state) {
34
+ const stateRoot = toRootHex(state.hashTreeRoot());
35
+ if (expectedRoot !== null && stateRoot !== expectedRoot) {
36
+ throw new StateInitializationError({ code: StateInitializationErrorCode.GENESIS_ROOT_MISMATCH }, `Genesis state root mismatch expected=${expectedRoot} received=${stateRoot}`);
37
+ }
38
+ assertAnchorStateForkMatchesConfig(config, state);
39
+ const passedValidation = isWithinWeakSubjectivityPeriodFromSummary(config, weakSubjectivity);
40
+ const logData = {
41
+ slot: state.slot,
42
+ epoch: computeEpochAtSlot(state.slot),
43
+ stateSize: formatBytes(stateBytes.length),
44
+ stateRoot,
45
+ isWithinWeakSubjectivityPeriod: passedValidation,
46
+ };
47
+ if (passedValidation) {
48
+ logger.info("Initializing beacon from a valid checkpoint state", logData);
49
+ }
50
+ else {
51
+ logger.warn("Initializing from a stale checkpoint state vulnerable to long range attacks", logData);
52
+ logger.warn("Checkpoint sync recommended, please use --help to see checkpoint sync options");
53
+ }
54
+ },
55
+ async initializeEarliestAvailableSlot(state) {
56
+ const stored = await db.earliestAvailableSlot.get();
57
+ if (stored !== null && stored !== state.slot) {
58
+ logger.warn("Resetting earliest available slot for genesis initialization", {
59
+ previousSlot: stored,
60
+ earliestAvailableSlot: state.slot,
61
+ });
62
+ }
63
+ if (stored !== state.slot) {
64
+ await db.earliestAvailableSlot.set(state.slot);
65
+ }
66
+ return state.slot;
67
+ },
68
+ persist: (state, bytes) => persistAnchorState(config, db, state, bytes),
69
+ log(state, nativeStateTransition) {
70
+ logger.info("Initialized genesis state", {
71
+ slot: state.slot,
72
+ stateRoot: toRootHex(state.hashTreeRoot()),
73
+ isFinalized: true,
74
+ nativeStateTransition,
75
+ });
76
+ },
77
+ };
78
+ }
79
+ //# sourceMappingURL=genesisState.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"genesisState.js","sourceRoot":"","sources":["../../../../src/cmds/beacon/stateInitialization/genesisState.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,4 @@
1
+ import { ArchivedStateBytes, StateInitialization, StateInitializationOptions, StatePreparationContext } from "./types.js";
2
+ export declare function prepareArchivedStateInitialization({ stateBytes, metadata, isWithinWeakSubjectivityPeriod }: ArchivedStateBytes, { chainForkConfig, db, logger }: StatePreparationContext): StateInitialization;
3
+ export declare function prepareCheckpointSourceInitialization(options: StateInitializationOptions, archived: ArchivedStateBytes | null, context: StatePreparationContext): Promise<StateInitialization | null>;
4
+ //# sourceMappingURL=prepareStateInitialization.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"prepareStateInitialization.d.ts","sourceRoot":"","sources":["../../../../src/cmds/beacon/stateInitialization/prepareStateInitialization.ts"],"names":[],"mappings":"AAQA,OAAO,EAAC,kBAAkB,EAAE,mBAAmB,EAAE,0BAA0B,EAAE,uBAAuB,EAAC,MAAM,YAAY,CAAC;AAGxH,wBAAgB,kCAAkC,CAChD,EAAC,UAAU,EAAE,QAAQ,EAAE,8BAA8B,EAAC,EAAE,kBAAkB,EAC1E,EAAC,eAAe,EAAE,EAAE,EAAE,MAAM,EAAC,EAAE,uBAAuB,GACrD,mBAAmB,CA+CrB;AAED,wBAAsB,qCAAqC,CACzD,OAAO,EAAE,0BAA0B,EACnC,QAAQ,EAAE,kBAAkB,GAAG,IAAI,EACnC,OAAO,EAAE,uBAAuB,GAC/B,OAAO,CAAC,mBAAmB,GAAG,IAAI,CAAC,CAWrC"}