@chainsafe/lodestar 1.22.0-dev.fe6c4acbfc → 1.22.0

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 CHANGED
@@ -1,4 +1,4 @@
1
1
  {
2
- "branch": "unstable",
3
- "commit": "fe6c4acbfcc6ee3027b1c4833706b415417e448e"
2
+ "branch": "HEAD",
3
+ "commit": "c26cc63751f0a9f6f802153f002512dc5b8c58e5"
4
4
  }
@@ -1,39 +1,42 @@
1
1
  import { ssz } from "@lodestar/types";
2
2
  import { createBeaconConfig } from "@lodestar/config";
3
- import { isWithinWeakSubjectivityPeriod, ensureWithinWeakSubjectivityPeriod, } from "@lodestar/state-transition";
4
- import { initStateFromAnchorState, initStateFromEth1, getStateTypeFromBytes, } from "@lodestar/beacon-node";
3
+ import { formatBytes } from "@lodestar/utils";
4
+ import { isWithinWeakSubjectivityPeriod, ensureWithinWeakSubjectivityPeriod, loadState, loadStateAndValidators, } from "@lodestar/state-transition";
5
+ import { checkAndPersistAnchorState, initStateFromEth1, getStateTypeFromBytes, } from "@lodestar/beacon-node";
5
6
  import { downloadOrLoadFile, wrapFnError } from "../../util/index.js";
6
7
  import { defaultNetwork } from "../../options/globalOptions.js";
7
8
  import { fetchWeakSubjectivityState, getCheckpointFromArg, getGenesisFileUrl, getCheckpointFromState, } from "../../networks/index.js";
8
- async function initAndVerifyWeakSubjectivityState(config, db, logger, store, wsState, wsCheckpoint, opts = {}) {
9
+ async function initAndVerifyWeakSubjectivityState(config, db, logger, dbStateBytes, wsStateBytes, wsCheckpoint, opts = {}) {
10
+ const dbState = dbStateBytes.state;
11
+ const wsState = wsStateBytes.state;
9
12
  // Check if the store's state and wsState are compatible
10
- if (store.genesisTime !== wsState.genesisTime ||
11
- !ssz.Root.equals(store.genesisValidatorsRoot, wsState.genesisValidatorsRoot)) {
13
+ if (dbState.genesisTime !== wsState.genesisTime ||
14
+ !ssz.Root.equals(dbState.genesisValidatorsRoot, wsState.genesisValidatorsRoot)) {
12
15
  throw new Error("Db state and checkpoint state are not compatible, either clear the db or verify your checkpoint source");
13
16
  }
14
17
  // Pick the state which is ahead as an anchor to initialize the beacon chain
15
- let anchorState = wsState;
18
+ let anchorState = wsStateBytes;
16
19
  let anchorCheckpoint = wsCheckpoint;
17
20
  let isCheckpointState = true;
18
- if (store.slot > wsState.slot) {
19
- anchorState = store;
20
- anchorCheckpoint = getCheckpointFromState(store);
21
+ if (dbState.slot > wsState.slot) {
22
+ anchorState = dbStateBytes;
23
+ anchorCheckpoint = getCheckpointFromState(dbState);
21
24
  isCheckpointState = false;
22
25
  logger.verbose("Db state is ahead of the provided checkpoint state, using the db state to initialize the beacon chain");
23
26
  }
24
27
  // Throw error unless user explicitly asked not to, in testnets can happen that wss period is too small
25
28
  // that even some epochs of non finalization can cause finalized checkpoint to be out of valid range
26
- const wssCheck = wrapFnError(() => ensureWithinWeakSubjectivityPeriod(config, anchorState, anchorCheckpoint));
29
+ const wssCheck = wrapFnError(() => ensureWithinWeakSubjectivityPeriod(config, anchorState.state, anchorCheckpoint));
27
30
  const isWithinWeakSubjectivityPeriod = wssCheck.err === null;
28
31
  if (!isWithinWeakSubjectivityPeriod && !opts.ignoreWeakSubjectivityCheck) {
29
32
  throw wssCheck.err;
30
33
  }
31
- anchorState = await initStateFromAnchorState(config, db, logger, anchorState, {
34
+ await checkAndPersistAnchorState(config, db, logger, anchorState.state, anchorState.stateBytes, {
32
35
  isWithinWeakSubjectivityPeriod,
33
36
  isCheckpointState,
34
37
  });
35
38
  // Return the latest anchorState but still return original wsCheckpoint to validate in backfill
36
- return { anchorState, wsCheckpoint };
39
+ return { anchorState: anchorState.state, wsCheckpoint };
37
40
  }
38
41
  /**
39
42
  * Initialize a beacon state, picking the strategy based on the `IBeaconArgs`
@@ -50,8 +53,19 @@ export async function initBeaconState(options, args, chainForkConfig, db, logger
50
53
  }
51
54
  // fetch the latest state stored in the db which will be used in all cases, if it exists, either
52
55
  // i) used directly as the anchor state
53
- // ii) used during verification of a weak subjectivity state,
54
- const lastDbState = await db.stateArchive.lastValue();
56
+ // ii) used to load and verify a weak subjectivity state,
57
+ const lastDbSlot = await db.stateArchive.lastKey();
58
+ const stateBytes = lastDbSlot !== null ? await db.stateArchive.getBinary(lastDbSlot) : null;
59
+ let lastDbState = null;
60
+ let lastDbValidatorsBytes = null;
61
+ let lastDbStateWithBytes = null;
62
+ if (stateBytes) {
63
+ logger.verbose("Found the last archived state", { slot: lastDbSlot, size: formatBytes(stateBytes.length) });
64
+ const { state, validatorsBytes } = loadStateAndValidators(chainForkConfig, stateBytes);
65
+ lastDbState = state;
66
+ lastDbValidatorsBytes = validatorsBytes;
67
+ lastDbStateWithBytes = { state, stateBytes: stateBytes };
68
+ }
55
69
  if (lastDbState) {
56
70
  const config = createBeaconConfig(chainForkConfig, lastDbState.genesisValidatorsRoot);
57
71
  const wssCheck = isWithinWeakSubjectivityPeriod(config, lastDbState, getCheckpointFromState(lastDbState));
@@ -60,7 +74,7 @@ export async function initBeaconState(options, args, chainForkConfig, db, logger
60
74
  // Forcing to sync from checkpoint is only recommended if node is taking too long to sync from last db state.
61
75
  // It is important to remind the user to remove this flag again unless it is absolutely necessary.
62
76
  if (wssCheck) {
63
- logger.warn("Forced syncing from checkpoint even though db state is within weak subjectivity period");
77
+ logger.warn(`Forced syncing from checkpoint even though db state at slot ${lastDbState.slot} is within weak subjectivity period`);
64
78
  logger.warn("Please consider removing --forceCheckpointSync flag unless absolutely necessary");
65
79
  }
66
80
  }
@@ -69,24 +83,28 @@ export async function initBeaconState(options, args, chainForkConfig, db, logger
69
83
  // - if no checkpoint sync args provided, or
70
84
  // - the lastDbState is within weak subjectivity period:
71
85
  if ((!args.checkpointState && !args.checkpointSyncUrl) || wssCheck) {
72
- const anchorState = await initStateFromAnchorState(config, db, logger, lastDbState, {
86
+ if (stateBytes === null) {
87
+ // this never happens
88
+ throw Error(`There is no stateBytes for the lastDbState at slot ${lastDbState.slot}`);
89
+ }
90
+ await checkAndPersistAnchorState(config, db, logger, lastDbState, stateBytes, {
73
91
  isWithinWeakSubjectivityPeriod: wssCheck,
74
92
  isCheckpointState: false,
75
93
  });
76
- return { anchorState };
94
+ return { anchorState: lastDbState };
77
95
  }
78
96
  }
79
97
  }
80
98
  // See if we can sync state using checkpoint sync args or else start from genesis
81
99
  if (args.checkpointState) {
82
- return readWSState(lastDbState, {
100
+ return readWSState(lastDbStateWithBytes, lastDbValidatorsBytes, {
83
101
  checkpointState: args.checkpointState,
84
102
  wssCheckpoint: args.wssCheckpoint,
85
103
  ignoreWeakSubjectivityCheck: args.ignoreWeakSubjectivityCheck,
86
104
  }, chainForkConfig, db, logger);
87
105
  }
88
106
  else if (args.checkpointSyncUrl) {
89
- return fetchWSStateFromBeaconApi(lastDbState, {
107
+ return fetchWSStateFromBeaconApi(lastDbStateWithBytes, lastDbValidatorsBytes, {
90
108
  checkpointSyncUrl: args.checkpointSyncUrl,
91
109
  wssCheckpoint: args.wssCheckpoint,
92
110
  ignoreWeakSubjectivityCheck: args.ignoreWeakSubjectivityCheck,
@@ -96,10 +114,10 @@ export async function initBeaconState(options, args, chainForkConfig, db, logger
96
114
  const genesisStateFile = args.genesisStateFile || getGenesisFileUrl(args.network || defaultNetwork);
97
115
  if (genesisStateFile && !args.forceGenesis) {
98
116
  const stateBytes = await downloadOrLoadFile(genesisStateFile);
99
- let anchorState = getStateTypeFromBytes(chainForkConfig, stateBytes).deserializeToViewDU(stateBytes);
117
+ const anchorState = getStateTypeFromBytes(chainForkConfig, stateBytes).deserializeToViewDU(stateBytes);
100
118
  const config = createBeaconConfig(chainForkConfig, anchorState.genesisValidatorsRoot);
101
119
  const wssCheck = isWithinWeakSubjectivityPeriod(config, anchorState, getCheckpointFromState(anchorState));
102
- anchorState = await initStateFromAnchorState(config, db, logger, anchorState, {
120
+ await checkAndPersistAnchorState(config, db, logger, anchorState, stateBytes, {
103
121
  isWithinWeakSubjectivityPeriod: wssCheck,
104
122
  isCheckpointState: true,
105
123
  });
@@ -112,21 +130,30 @@ export async function initBeaconState(options, args, chainForkConfig, db, logger
112
130
  }
113
131
  }
114
132
  }
115
- async function readWSState(lastDbState, wssOpts, chainForkConfig, db, logger) {
133
+ async function readWSState(lastDbStateBytes, lastDbValidatorsBytes, wssOpts, chainForkConfig, db, logger) {
116
134
  // weak subjectivity sync from a provided state file:
117
135
  // if a weak subjectivity checkpoint has been provided, it is used for additional verification
118
136
  // otherwise, the state itself is used for verification (not bad, because the trusted state has been explicitly provided)
119
137
  const { checkpointState, wssCheckpoint, ignoreWeakSubjectivityCheck } = wssOpts;
138
+ const lastDbState = lastDbStateBytes?.state ?? null;
120
139
  const stateBytes = await downloadOrLoadFile(checkpointState);
121
- const wsState = getStateTypeFromBytes(chainForkConfig, stateBytes).deserializeToViewDU(stateBytes);
140
+ let wsState;
141
+ if (lastDbState && lastDbValidatorsBytes) {
142
+ // use lastDbState to load wsState if possible to share the same state tree
143
+ wsState = loadState(chainForkConfig, lastDbState, stateBytes, lastDbValidatorsBytes).state;
144
+ }
145
+ else {
146
+ wsState = getStateTypeFromBytes(chainForkConfig, stateBytes).deserializeToViewDU(stateBytes);
147
+ }
122
148
  const config = createBeaconConfig(chainForkConfig, wsState.genesisValidatorsRoot);
123
- const store = lastDbState ?? wsState;
149
+ const wsStateBytes = { state: wsState, stateBytes };
150
+ const store = lastDbStateBytes ?? wsStateBytes;
124
151
  const checkpoint = wssCheckpoint ? getCheckpointFromArg(wssCheckpoint) : getCheckpointFromState(wsState);
125
- return initAndVerifyWeakSubjectivityState(config, db, logger, store, wsState, checkpoint, {
152
+ return initAndVerifyWeakSubjectivityState(config, db, logger, store, wsStateBytes, checkpoint, {
126
153
  ignoreWeakSubjectivityCheck,
127
154
  });
128
155
  }
129
- async function fetchWSStateFromBeaconApi(lastDbState, wssOpts, chainForkConfig, db, logger) {
156
+ async function fetchWSStateFromBeaconApi(lastDbStateBytes, lastDbValidatorsBytes, wssOpts, chainForkConfig, db, logger) {
130
157
  // weak subjectivity sync from a state that needs to be fetched:
131
158
  // if a weak subjectivity checkpoint has been provided, it is used to inform which state to download and used for additional verification
132
159
  // otherwise, the 'finalized' state is downloaded and the state itself is used for verification (all trust delegated to the remote beacon node)
@@ -142,10 +169,14 @@ async function fetchWSStateFromBeaconApi(lastDbState, wssOpts, chainForkConfig,
142
169
  logger.error("Invalid", { checkpointSyncUrl: wssOpts.checkpointSyncUrl }, e);
143
170
  throw e;
144
171
  }
145
- const { wsState, wsCheckpoint } = await fetchWeakSubjectivityState(chainForkConfig, logger, wssOpts);
172
+ const { wsState, wsStateBytes, wsCheckpoint } = await fetchWeakSubjectivityState(chainForkConfig, logger, wssOpts, {
173
+ lastDbState: lastDbStateBytes?.state ?? null,
174
+ lastDbValidatorsBytes,
175
+ });
146
176
  const config = createBeaconConfig(chainForkConfig, wsState.genesisValidatorsRoot);
147
- const store = lastDbState ?? wsState;
148
- return initAndVerifyWeakSubjectivityState(config, db, logger, store, wsState, wsCheckpoint, {
177
+ const wsStateWithBytes = { state: wsState, stateBytes: wsStateBytes };
178
+ const store = lastDbStateBytes ?? wsStateWithBytes;
179
+ return initAndVerifyWeakSubjectivityState(config, db, logger, store, wsStateWithBytes, wsCheckpoint, {
149
180
  ignoreWeakSubjectivityCheck: wssOpts.ignoreWeakSubjectivityCheck,
150
181
  });
151
182
  }
@@ -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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"}
@@ -37,8 +37,12 @@ export declare function readBootnodes(bootnodesFilePath: string): string[];
37
37
  export declare function fetchWeakSubjectivityState(config: ChainForkConfig, logger: Logger, { checkpointSyncUrl, wssCheckpoint }: {
38
38
  checkpointSyncUrl: string;
39
39
  wssCheckpoint?: string;
40
+ }, { lastDbState, lastDbValidatorsBytes, }: {
41
+ lastDbState: BeaconStateAllForks | null;
42
+ lastDbValidatorsBytes: Uint8Array | null;
40
43
  }): Promise<{
41
44
  wsState: BeaconStateAllForks;
45
+ wsStateBytes: Uint8Array;
42
46
  wsCheckpoint: Checkpoint;
43
47
  }>;
44
48
  export declare function getCheckpointFromArg(checkpointStr: string): Checkpoint;
@@ -3,9 +3,9 @@ import got from "got";
3
3
  import { ENR } from "@chainsafe/enr";
4
4
  import { SLOTS_PER_EPOCH } from "@lodestar/params";
5
5
  import { HttpHeader, MediaType, WireFormat, getClient } from "@lodestar/api";
6
- import { getStateTypeFromBytes } from "@lodestar/beacon-node";
7
- import { fromHex, callFnWhenAwait } from "@lodestar/utils";
8
- import { getLatestBlockRoot, computeCheckpointEpochAtStateSlot } from "@lodestar/state-transition";
6
+ import { getStateSlotFromBytes } from "@lodestar/beacon-node";
7
+ import { fromHex, callFnWhenAwait, formatBytes } from "@lodestar/utils";
8
+ import { getLatestBlockRoot, computeCheckpointEpochAtStateSlot, loadState, } from "@lodestar/state-transition";
9
9
  import { parseBootnodesFile } from "../util/format.js";
10
10
  import * as mainnet from "./mainnet.js";
11
11
  import * as dev from "./dev.js";
@@ -107,7 +107,7 @@ export function readBootnodes(bootnodesFilePath) {
107
107
  /**
108
108
  * Fetch weak subjectivity state from a remote beacon node
109
109
  */
110
- export async function fetchWeakSubjectivityState(config, logger, { checkpointSyncUrl, wssCheckpoint }) {
110
+ export async function fetchWeakSubjectivityState(config, logger, { checkpointSyncUrl, wssCheckpoint }, { lastDbState, lastDbValidatorsBytes, }) {
111
111
  try {
112
112
  let wsCheckpoint;
113
113
  let stateId;
@@ -130,15 +130,26 @@ export async function fetchWeakSubjectivityState(config, logger, { checkpointSyn
130
130
  [HttpHeader.Accept]: MediaType.ssz,
131
131
  },
132
132
  });
133
- const stateBytes = await callFnWhenAwait(getStatePromise, () => logger.info("Download in progress, please wait..."), GET_STATE_LOG_INTERVAL).then((res) => {
133
+ const wsStateBytes = await callFnWhenAwait(getStatePromise, () => logger.info("Download in progress, please wait..."), GET_STATE_LOG_INTERVAL).then((res) => {
134
134
  return res.ssz();
135
135
  });
136
- logger.info("Download completed", { stateId });
136
+ const wsSlot = getStateSlotFromBytes(wsStateBytes);
137
+ const logData = { stateId, size: formatBytes(wsStateBytes.length) };
138
+ logger.info("Download completed", typeof stateId === "number" ? logData : { ...logData, slot: wsSlot });
137
139
  // It should not be required to get fork type from bytes but Checkpointz does not return
138
140
  // Eth-Consensus-Version header, see https://github.com/ethpandaops/checkpointz/issues/164
139
- const wsState = getStateTypeFromBytes(config, stateBytes).deserializeToViewDU(stateBytes);
141
+ let wsState;
142
+ if (lastDbState && lastDbValidatorsBytes) {
143
+ // use lastDbState to load wsState if possible to share the same state tree
144
+ wsState = loadState(config, lastDbState, wsStateBytes, lastDbValidatorsBytes).state;
145
+ }
146
+ else {
147
+ const stateType = config.getForkTypes(wsSlot).BeaconState;
148
+ wsState = stateType.deserializeToViewDU(wsStateBytes);
149
+ }
140
150
  return {
141
151
  wsState,
152
+ wsStateBytes,
142
153
  wsCheckpoint: wsCheckpoint ?? getCheckpointFromState(wsState),
143
154
  };
144
155
  }
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/networks/index.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/networks/index.ts"],"names":[],"mappings":"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"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@chainsafe/lodestar",
3
- "version": "1.22.0-dev.fe6c4acbfc",
3
+ "version": "1.22.0",
4
4
  "description": "Command line interface for lodestar",
5
5
  "author": "ChainSafe Systems",
6
6
  "license": "LGPL-3.0",
@@ -62,17 +62,17 @@
62
62
  "@libp2p/crypto": "^4.1.0",
63
63
  "@libp2p/peer-id": "^4.1.0",
64
64
  "@libp2p/peer-id-factory": "^4.1.0",
65
- "@lodestar/api": "1.22.0-dev.fe6c4acbfc",
66
- "@lodestar/beacon-node": "1.22.0-dev.fe6c4acbfc",
67
- "@lodestar/config": "1.22.0-dev.fe6c4acbfc",
68
- "@lodestar/db": "1.22.0-dev.fe6c4acbfc",
69
- "@lodestar/light-client": "1.22.0-dev.fe6c4acbfc",
70
- "@lodestar/logger": "1.22.0-dev.fe6c4acbfc",
71
- "@lodestar/params": "1.22.0-dev.fe6c4acbfc",
72
- "@lodestar/state-transition": "1.22.0-dev.fe6c4acbfc",
73
- "@lodestar/types": "1.22.0-dev.fe6c4acbfc",
74
- "@lodestar/utils": "1.22.0-dev.fe6c4acbfc",
75
- "@lodestar/validator": "1.22.0-dev.fe6c4acbfc",
65
+ "@lodestar/api": "^1.22.0",
66
+ "@lodestar/beacon-node": "^1.22.0",
67
+ "@lodestar/config": "^1.22.0",
68
+ "@lodestar/db": "^1.22.0",
69
+ "@lodestar/light-client": "^1.22.0",
70
+ "@lodestar/logger": "^1.22.0",
71
+ "@lodestar/params": "^1.22.0",
72
+ "@lodestar/state-transition": "^1.22.0",
73
+ "@lodestar/types": "^1.22.0",
74
+ "@lodestar/utils": "^1.22.0",
75
+ "@lodestar/validator": "^1.22.0",
76
76
  "@multiformats/multiaddr": "^12.1.3",
77
77
  "deepmerge": "^4.3.1",
78
78
  "ethers": "^6.7.0",
@@ -88,7 +88,7 @@
88
88
  "yargs": "^17.7.1"
89
89
  },
90
90
  "devDependencies": {
91
- "@lodestar/test-utils": "1.22.0-dev.fe6c4acbfc",
91
+ "@lodestar/test-utils": "^1.22.0",
92
92
  "@types/debug": "^4.1.7",
93
93
  "@types/got": "^9.6.12",
94
94
  "@types/inquirer": "^9.0.3",
@@ -96,5 +96,5 @@
96
96
  "@types/yargs": "^17.0.24",
97
97
  "fastify": "^4.27.0"
98
98
  },
99
- "gitHead": "253fccfbb97169c5e0202251b836ce03c5a56a45"
99
+ "gitHead": "c26cc63751f0a9f6f802153f002512dc5b8c58e5"
100
100
  }