@lodestar/config 1.32.0-dev.42e678f502 → 1.32.0-dev.48f2ff71ae

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.
@@ -65,22 +65,48 @@ export function createForkConfig(config) {
65
65
  // Prevents allocating an array on every getForkInfo() call
66
66
  const forksAscendingEpochOrder = Object.values(forks);
67
67
  const forksDescendingEpochOrder = Object.values(forks).reverse();
68
+ const blobScheduleDescendingEpochOrder = [...config.BLOB_SCHEDULE].sort((a, b) => b.EPOCH - a.EPOCH);
69
+ const forkBoundariesAscendingEpochOrder = [
70
+ // Normal hard-forks (phase0, altair, etc.)
71
+ ...forksAscendingEpochOrder.map((fork) => ({
72
+ fork: fork.name,
73
+ epoch: fork.epoch,
74
+ })),
75
+ // Blob Parameter Only (BPO) forks
76
+ // Note: Must be appended after normal hard-forks to have precedence if scheduled at the same epoch
77
+ ...config.BLOB_SCHEDULE.map((entry) => ({
78
+ fork: forksDescendingEpochOrder.find((f) => entry.EPOCH >= f.epoch)?.name ?? phase0.name,
79
+ epoch: entry.EPOCH,
80
+ })),
81
+ ]
82
+ // Remove unscheduled fork boundaries
83
+ .filter(({ epoch }) => epoch !== Infinity)
84
+ // Sort by epoch in ascending order
85
+ .sort((a, b) => a.epoch - b.epoch);
86
+ const forkBoundariesDescendingEpochOrder = [...forkBoundariesAscendingEpochOrder].reverse();
68
87
  return {
69
88
  forks,
70
89
  forksAscendingEpochOrder,
71
90
  forksDescendingEpochOrder,
91
+ forkBoundariesAscendingEpochOrder,
92
+ forkBoundariesDescendingEpochOrder,
72
93
  // Fork convenience methods
73
94
  getForkInfo(slot) {
74
95
  const epoch = Math.floor(Math.max(slot, 0) / SLOTS_PER_EPOCH);
75
96
  return this.getForkInfoAtEpoch(epoch);
76
97
  },
77
98
  getForkInfoAtEpoch(epoch) {
78
- // NOTE: forks must be sorted by descending epoch, latest fork first
79
- for (const fork of forksDescendingEpochOrder) {
80
- if (epoch >= fork.epoch)
81
- return fork;
99
+ return forks[this.getForkBoundaryAtEpoch(epoch).fork];
100
+ },
101
+ getForkBoundaryAtEpoch(epoch) {
102
+ if (epoch < 0)
103
+ epoch = 0;
104
+ // NOTE: fork boundaries must be sorted by descending epoch, latest first
105
+ for (const boundary of forkBoundariesDescendingEpochOrder) {
106
+ if (epoch >= boundary.epoch)
107
+ return boundary;
82
108
  }
83
- return phase0;
109
+ throw Error("Unreachable as phase0 is scheduled at epoch 0");
84
110
  },
85
111
  getForkName(slot) {
86
112
  return this.getForkInfo(slot).name;
@@ -126,14 +152,19 @@ export function createForkConfig(config) {
126
152
  case ForkName.deneb:
127
153
  return config.MAX_BLOBS_PER_BLOCK;
128
154
  }
129
- // Sort by epoch in descending order to find the latest applicable value
130
- const blobSchedule = [...config.BLOB_SCHEDULE].sort((a, b) => b.EPOCH - a.EPOCH);
131
- for (const entry of blobSchedule) {
155
+ return this.getBlobParameters(epoch).maxBlobsPerBlock;
156
+ },
157
+ getBlobParameters(epoch) {
158
+ if (epoch < config.FULU_FORK_EPOCH) {
159
+ throw Error(`getBlobParameters is not available pre-fulu epoch=${epoch}`);
160
+ }
161
+ // Find the latest applicable value from blob schedule
162
+ for (const entry of blobScheduleDescendingEpochOrder) {
132
163
  if (epoch >= entry.EPOCH) {
133
- return entry.MAX_BLOBS_PER_BLOCK;
164
+ return { epoch: entry.EPOCH, maxBlobsPerBlock: entry.MAX_BLOBS_PER_BLOCK };
134
165
  }
135
166
  }
136
- return config.MAX_BLOBS_PER_BLOCK_ELECTRA;
167
+ return { epoch: config.ELECTRA_FORK_EPOCH, maxBlobsPerBlock: config.MAX_BLOBS_PER_BLOCK_ELECTRA };
137
168
  },
138
169
  getMaxRequestBlobSidecars(fork) {
139
170
  return isForkPostElectra(fork) ? config.MAX_REQUEST_BLOB_SIDECARS_ELECTRA : config.MAX_REQUEST_BLOB_SIDECARS;
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/forkConfig/index.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/forkConfig/index.ts"],"names":[],"mappings":"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"}
@@ -1,5 +1,5 @@
1
1
  import { ForkAll, ForkName, ForkPostAltair, ForkPostBellatrix, ForkPostDeneb, ForkSeq } from "@lodestar/params";
2
- import { Epoch, SSZTypesFor, Slot, Version } from "@lodestar/types";
2
+ import { Epoch, SSZTypesFor, Slot, UintNum64, Version } from "@lodestar/types";
3
3
  export type ForkInfo = {
4
4
  name: ForkName;
5
5
  seq: ForkSeq;
@@ -8,6 +8,19 @@ export type ForkInfo = {
8
8
  prevVersion: Version;
9
9
  prevForkName: ForkName;
10
10
  };
11
+ /**
12
+ * Fork boundaries include both normal hard-forks (phase0, altair, etc.)
13
+ * and Blob Parameter Only (BPO) forks and are used to un-/subscribe to gossip topics
14
+ * and compute the fork digest primarily for domain separation on the p2p layer.
15
+ */
16
+ export type ForkBoundary = {
17
+ fork: ForkName;
18
+ epoch: Epoch;
19
+ };
20
+ export type BlobParameters = {
21
+ epoch: Epoch;
22
+ maxBlobsPerBlock: UintNum64;
23
+ };
11
24
  /**
12
25
  * Fork schedule and helper methods
13
26
  */
@@ -18,10 +31,14 @@ export type ForkConfig = {
18
31
  };
19
32
  forksAscendingEpochOrder: ForkInfo[];
20
33
  forksDescendingEpochOrder: ForkInfo[];
34
+ forkBoundariesAscendingEpochOrder: ForkBoundary[];
35
+ forkBoundariesDescendingEpochOrder: ForkBoundary[];
21
36
  /** Get the hard-fork info for the active fork at `slot` */
22
37
  getForkInfo(slot: Slot): ForkInfo;
23
38
  /** Get the hard-fork info for the active fork at `epoch` */
24
39
  getForkInfoAtEpoch(epoch: Epoch): ForkInfo;
40
+ /** Get the active fork boundary at a given `epoch` */
41
+ getForkBoundaryAtEpoch(epoch: Epoch): ForkBoundary;
25
42
  /** Get the hard-fork name at a given slot */
26
43
  getForkName(slot: Slot): ForkName;
27
44
  /** Get the hard-fork sequence number at a given slot */
@@ -40,6 +57,8 @@ export type ForkConfig = {
40
57
  getPostDenebForkTypes(slot: Slot): SSZTypesFor<ForkPostDeneb>;
41
58
  /** Get max blobs per block at a given epoch */
42
59
  getMaxBlobsPerBlock(epoch: Epoch): number;
60
+ /** Get blob parameters at a given epoch */
61
+ getBlobParameters(epoch: Epoch): BlobParameters;
43
62
  /** Get max request blob sidecars by hard-fork */
44
63
  getMaxRequestBlobSidecars(fork: ForkName): number;
45
64
  };
@@ -1,6 +1,7 @@
1
- import { Root } from "@lodestar/types";
1
+ import { Epoch, ForkDigest, Root } from "@lodestar/types";
2
2
  import { ChainForkConfig } from "../beaconConfig.js";
3
3
  import { CachedGenesis } from "./types.js";
4
4
  export type { ForkDigestContext } from "./types.js";
5
5
  export declare function createCachedGenesis(chainForkConfig: ChainForkConfig, genesisValidatorsRoot: Root): CachedGenesis;
6
+ export declare function computeForkDigest(config: ChainForkConfig, genesisValidatorsRoot: Root, epoch: Epoch): ForkDigest;
6
7
  //# sourceMappingURL=index.d.ts.map
@@ -1,18 +1,28 @@
1
- import { DOMAIN_VOLUNTARY_EXIT, ForkName, SLOTS_PER_EPOCH } from "@lodestar/params";
1
+ import { digest } from "@chainsafe/as-sha256";
2
+ import { DOMAIN_VOLUNTARY_EXIT, ForkName, ForkSeq, SLOTS_PER_EPOCH } from "@lodestar/params";
2
3
  import { ssz } from "@lodestar/types";
3
- import { strip0xPrefix, toHex } from "@lodestar/utils";
4
+ import { intToBytes, strip0xPrefix, toHex, xor } from "@lodestar/utils";
4
5
  export function createCachedGenesis(chainForkConfig, genesisValidatorsRoot) {
5
6
  const domainCache = new Map();
6
- const forkDigestByForkName = new Map();
7
- const forkDigestHexByForkName = new Map();
7
+ const forkDigestByEpoch = new Map();
8
+ const forkDigestHexByEpoch = new Map();
8
9
  /** Map of ForkDigest in hex format without prefix: `0011aabb` */
9
- const forkNameByForkDigest = new Map();
10
- for (const fork of Object.values(chainForkConfig.forks)) {
11
- const forkDigest = computeForkDigest(fork.version, genesisValidatorsRoot);
10
+ const epochByForkDigest = new Map();
11
+ const { forkBoundariesAscendingEpochOrder } = chainForkConfig;
12
+ for (let i = 0; i < forkBoundariesAscendingEpochOrder.length; i++) {
13
+ const currentForkBoundary = forkBoundariesAscendingEpochOrder[i];
14
+ const nextForkBoundary = forkBoundariesAscendingEpochOrder[i + 1];
15
+ const currentEpoch = currentForkBoundary.epoch;
16
+ const nextEpoch = nextForkBoundary !== undefined ? nextForkBoundary.epoch : Infinity;
17
+ // Edge case: If multiple fork boundaries start at the same epoch, only consider the latest one
18
+ if (currentEpoch === nextEpoch) {
19
+ continue;
20
+ }
21
+ const forkDigest = computeForkDigest(chainForkConfig, genesisValidatorsRoot, currentEpoch);
12
22
  const forkDigestHex = toHexStringNoPrefix(forkDigest);
13
- forkNameByForkDigest.set(forkDigestHex, fork.name);
14
- forkDigestByForkName.set(fork.name, forkDigest);
15
- forkDigestHexByForkName.set(fork.name, forkDigestHex);
23
+ epochByForkDigest.set(forkDigestHex, currentEpoch);
24
+ forkDigestByEpoch.set(currentEpoch, forkDigest);
25
+ forkDigestHexByEpoch.set(currentEpoch, forkDigestHex);
16
26
  }
17
27
  return {
18
28
  genesisValidatorsRoot,
@@ -71,33 +81,33 @@ export function createCachedGenesis(chainForkConfig, genesisValidatorsRoot) {
71
81
  : this.getDomainAtFork(ForkName.capella, DOMAIN_VOLUNTARY_EXIT);
72
82
  return domain;
73
83
  },
74
- forkDigest2ForkName(forkDigest) {
84
+ forkDigest2ForkBoundary(forkDigest) {
75
85
  const forkDigestHex = toHexStringNoPrefix(forkDigest);
76
- const forkName = forkNameByForkDigest.get(forkDigestHex);
77
- if (forkName == null) {
86
+ const epoch = epochByForkDigest.get(forkDigestHex);
87
+ if (epoch == null) {
78
88
  throw Error(`Unknown forkDigest ${forkDigestHex}`);
79
89
  }
80
- return forkName;
90
+ return chainForkConfig.getForkBoundaryAtEpoch(epoch);
81
91
  },
82
- forkDigest2ForkNameOption(forkDigest) {
92
+ forkDigest2ForkBoundaryOption(forkDigest) {
83
93
  const forkDigestHex = toHexStringNoPrefix(forkDigest);
84
- const forkName = forkNameByForkDigest.get(forkDigestHex);
85
- if (forkName == null) {
94
+ const epoch = epochByForkDigest.get(forkDigestHex);
95
+ if (epoch == null) {
86
96
  return null;
87
97
  }
88
- return forkName;
98
+ return chainForkConfig.getForkBoundaryAtEpoch(epoch);
89
99
  },
90
- forkName2ForkDigest(forkName) {
91
- const forkDigest = forkDigestByForkName.get(forkName);
100
+ forkBoundary2ForkDigest(boundary) {
101
+ const forkDigest = forkDigestByEpoch.get(boundary.epoch);
92
102
  if (!forkDigest) {
93
- throw Error(`No precomputed forkDigest for ${forkName}`);
103
+ throw Error(`No precomputed forkDigest for ${boundary.epoch}`);
94
104
  }
95
105
  return forkDigest;
96
106
  },
97
- forkName2ForkDigestHex(forkName) {
98
- const forkDigestHex = forkDigestHexByForkName.get(forkName);
107
+ forkBoundary2ForkDigestHex(boundary) {
108
+ const forkDigestHex = forkDigestHexByEpoch.get(boundary.epoch);
99
109
  if (!forkDigestHex) {
100
- throw Error(`No precomputed forkDigest for ${forkName}`);
110
+ throw Error(`No precomputed forkDigest for ${boundary.epoch}`);
101
111
  }
102
112
  return toHexStringNoPrefix(forkDigestHex);
103
113
  },
@@ -120,7 +130,13 @@ function computeForkDataRoot(currentVersion, genesisValidatorsRoot) {
120
130
  function toHexStringNoPrefix(hex) {
121
131
  return strip0xPrefix(typeof hex === "string" ? hex : toHex(hex));
122
132
  }
123
- function computeForkDigest(currentVersion, genesisValidatorsRoot) {
124
- return computeForkDataRoot(currentVersion, genesisValidatorsRoot).slice(0, 4);
133
+ export function computeForkDigest(config, genesisValidatorsRoot, epoch) {
134
+ const currentFork = config.getForkInfoAtEpoch(epoch);
135
+ const baseDigest = computeForkDataRoot(currentFork.version, genesisValidatorsRoot);
136
+ if (currentFork.seq < ForkSeq.fulu) {
137
+ return baseDigest.slice(0, 4);
138
+ }
139
+ const blobParameters = config.getBlobParameters(epoch);
140
+ return xor(baseDigest, digest(Buffer.concat([intToBytes(blobParameters.epoch, 8, "le"), intToBytes(blobParameters.maxBlobsPerBlock, 8, "le")]))).slice(0, 4);
125
141
  }
126
142
  //# sourceMappingURL=index.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/genesisConfig/index.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/genesisConfig/index.ts"],"names":[],"mappings":"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"}
@@ -1,11 +1,12 @@
1
1
  import { ForkName } from "@lodestar/params";
2
2
  import { DomainType, ForkDigest, Root, Slot } from "@lodestar/types";
3
+ import { ForkBoundary } from "../forkConfig/types.js";
3
4
  export type ForkDigestHex = string;
4
5
  export type ForkDigestContext = {
5
- forkDigest2ForkName(forkDigest: ForkDigest | ForkDigestHex): ForkName;
6
- forkDigest2ForkNameOption(forkDigest: ForkDigest | ForkDigestHex): ForkName | null;
7
- forkName2ForkDigest(forkName: ForkName): ForkDigest;
8
- forkName2ForkDigestHex(forkName: ForkName): ForkDigestHex;
6
+ forkDigest2ForkBoundary(forkDigest: ForkDigest | ForkDigestHex): ForkBoundary;
7
+ forkDigest2ForkBoundaryOption(forkDigest: ForkDigest | ForkDigestHex): ForkBoundary | null;
8
+ forkBoundary2ForkDigest(boundary: ForkBoundary): ForkDigest;
9
+ forkBoundary2ForkDigestHex(boundary: ForkBoundary): ForkDigestHex;
9
10
  };
10
11
  export interface CachedGenesis extends ForkDigestContext {
11
12
  /**
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@lodestar/config",
3
- "version": "1.32.0-dev.42e678f502",
3
+ "version": "1.32.0-dev.48f2ff71ae",
4
4
  "description": "Chain configuration required for lodestar",
5
5
  "author": "ChainSafe Systems",
6
6
  "license": "Apache-2.0",
@@ -65,9 +65,9 @@
65
65
  ],
66
66
  "dependencies": {
67
67
  "@chainsafe/ssz": "^1.2.1",
68
- "@lodestar/params": "1.32.0-dev.42e678f502",
69
- "@lodestar/types": "1.32.0-dev.42e678f502",
70
- "@lodestar/utils": "1.32.0-dev.42e678f502"
68
+ "@lodestar/params": "1.32.0-dev.48f2ff71ae",
69
+ "@lodestar/types": "1.32.0-dev.48f2ff71ae",
70
+ "@lodestar/utils": "1.32.0-dev.48f2ff71ae"
71
71
  },
72
- "gitHead": "42204acfedd85c8b9b50196c56736237b0dabe93"
72
+ "gitHead": "7eabe2a328103d339c130e16a9d9e98c155f2ea4"
73
73
  }