@lodestar/era 1.45.0-dev.f535421f29 → 1.45.0-dev.fadf0fbb1f
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/lib/era/reader.d.ts +3 -3
- package/lib/era/reader.d.ts.map +1 -1
- package/lib/era/reader.js +6 -6
- package/lib/era/reader.js.map +1 -1
- package/lib/era/util.d.ts +6 -6
- package/lib/era/util.d.ts.map +1 -1
- package/lib/era/util.js +3 -3
- package/lib/era/util.js.map +1 -1
- package/lib/era/writer.d.ts +3 -3
- package/lib/era/writer.d.ts.map +1 -1
- package/lib/era/writer.js +8 -8
- package/lib/era/writer.js.map +1 -1
- package/package.json +7 -7
- package/src/era/reader.ts +6 -12
- package/src/era/util.ts +7 -7
- package/src/era/writer.ts +9 -14
package/lib/era/reader.d.ts
CHANGED
|
@@ -13,11 +13,11 @@ export declare class EraReader {
|
|
|
13
13
|
readonly fh: FileHandle;
|
|
14
14
|
/** The era number retrieved from the file name */
|
|
15
15
|
readonly eraNumber: number;
|
|
16
|
-
/** The short
|
|
17
|
-
readonly
|
|
16
|
+
/** The short era root retrieved from the file name */
|
|
17
|
+
readonly shortEraRoot: string;
|
|
18
18
|
/** An array of state and block indices, one per group */
|
|
19
19
|
readonly groups: EraIndices[];
|
|
20
|
-
constructor(config: ChainForkConfig, fh: FileHandle, eraNumber: number,
|
|
20
|
+
constructor(config: ChainForkConfig, fh: FileHandle, eraNumber: number, shortEraRoot: string, indices: EraIndices[]);
|
|
21
21
|
static open(config: ChainForkConfig, path: string): Promise<EraReader>;
|
|
22
22
|
/**
|
|
23
23
|
* Close the underlying file descriptor
|
package/lib/era/reader.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"reader.d.ts","sourceRoot":"","sources":["../../src/era/reader.ts"],"names":[],"mappings":"AAAA,OAAO,EAAC,KAAK,UAAU,EAAO,MAAM,kBAAkB,CAAC;AAGvD,OAAO,EAAC,eAAe,EAAsB,MAAM,kBAAkB,CAAC;AAEtE,OAAO,EAAC,WAAW,EAAE,iBAAiB,EAAE,IAAI,EAAM,MAAM,iBAAiB,CAAC;AAI1E,OAAO,EACL,UAAU,EAKX,MAAM,WAAW,CAAC;AAEnB;;;;GAIG;AACH,qBAAa,SAAS;IACpB,QAAQ,CAAC,MAAM,EAAE,eAAe,CAAC;IACjC,iCAAiC;IACjC,QAAQ,CAAC,EAAE,EAAE,UAAU,CAAC;IACxB,kDAAkD;IAClD,QAAQ,CAAC,SAAS,EAAE,MAAM,CAAC;IAC3B,
|
|
1
|
+
{"version":3,"file":"reader.d.ts","sourceRoot":"","sources":["../../src/era/reader.ts"],"names":[],"mappings":"AAAA,OAAO,EAAC,KAAK,UAAU,EAAO,MAAM,kBAAkB,CAAC;AAGvD,OAAO,EAAC,eAAe,EAAsB,MAAM,kBAAkB,CAAC;AAEtE,OAAO,EAAC,WAAW,EAAE,iBAAiB,EAAE,IAAI,EAAM,MAAM,iBAAiB,CAAC;AAI1E,OAAO,EACL,UAAU,EAKX,MAAM,WAAW,CAAC;AAEnB;;;;GAIG;AACH,qBAAa,SAAS;IACpB,QAAQ,CAAC,MAAM,EAAE,eAAe,CAAC;IACjC,iCAAiC;IACjC,QAAQ,CAAC,EAAE,EAAE,UAAU,CAAC;IACxB,kDAAkD;IAClD,QAAQ,CAAC,SAAS,EAAE,MAAM,CAAC;IAC3B,sDAAsD;IACtD,QAAQ,CAAC,YAAY,EAAE,MAAM,CAAC;IAC9B,yDAAyD;IACzD,QAAQ,CAAC,MAAM,EAAE,UAAU,EAAE,CAAC;IAE9B,YAAY,MAAM,EAAE,eAAe,EAAE,EAAE,EAAE,UAAU,EAAE,SAAS,EAAE,MAAM,EAAE,YAAY,EAAE,MAAM,EAAE,OAAO,EAAE,UAAU,EAAE,EAMlH;IAED,OAAa,IAAI,CAAC,MAAM,EAAE,eAAe,EAAE,IAAI,EAAE,MAAM,GAAG,OAAO,CAAC,SAAS,CAAC,CAS3E;IAED;;;;OAIG;IACG,KAAK,IAAI,OAAO,CAAC,IAAI,CAAC,CAE3B;IAEK,mBAAmB,CAAC,SAAS,CAAC,EAAE,MAAM,GAAG,OAAO,CAAC,UAAU,CAAC,CAajE;IAEK,mBAAmB,CAAC,SAAS,CAAC,EAAE,MAAM,GAAG,OAAO,CAAC,UAAU,CAAC,CAGjE;IAEK,SAAS,CAAC,SAAS,CAAC,EAAE,MAAM,GAAG,OAAO,CAAC,WAAW,CAAC,CAIxD;IAEK,mBAAmB,CAAC,IAAI,EAAE,IAAI,GAAG,OAAO,CAAC,UAAU,GAAG,IAAI,CAAC,CAqBhE;IAEK,mBAAmB,CAAC,IAAI,EAAE,IAAI,GAAG,OAAO,CAAC,UAAU,GAAG,IAAI,CAAC,CAIhE;IAEK,SAAS,CAAC,IAAI,EAAE,IAAI,GAAG,OAAO,CAAC,iBAAiB,GAAG,IAAI,CAAC,CAI7D;IAED;;;;;;OAMG;IACG,QAAQ,IAAI,OAAO,CAAC,IAAI,CAAC,CAgE9B;CACF"}
|
package/lib/era/reader.js
CHANGED
|
@@ -19,26 +19,26 @@ export class EraReader {
|
|
|
19
19
|
fh;
|
|
20
20
|
/** The era number retrieved from the file name */
|
|
21
21
|
eraNumber;
|
|
22
|
-
/** The short
|
|
23
|
-
|
|
22
|
+
/** The short era root retrieved from the file name */
|
|
23
|
+
shortEraRoot;
|
|
24
24
|
/** An array of state and block indices, one per group */
|
|
25
25
|
groups;
|
|
26
|
-
constructor(config, fh, eraNumber,
|
|
26
|
+
constructor(config, fh, eraNumber, shortEraRoot, indices) {
|
|
27
27
|
this.config = config;
|
|
28
28
|
this.fh = fh;
|
|
29
29
|
this.eraNumber = eraNumber;
|
|
30
|
-
this.
|
|
30
|
+
this.shortEraRoot = shortEraRoot;
|
|
31
31
|
this.groups = indices;
|
|
32
32
|
}
|
|
33
33
|
static async open(config, path) {
|
|
34
34
|
const fh = await open(path, "r");
|
|
35
35
|
const name = basename(path);
|
|
36
|
-
const { configName, eraNumber,
|
|
36
|
+
const { configName, eraNumber, shortEraRoot } = parseEraName(name);
|
|
37
37
|
if (config.CONFIG_NAME !== configName) {
|
|
38
38
|
throw new Error(`Config name mismatch: expected ${config.CONFIG_NAME}, got ${configName}`);
|
|
39
39
|
}
|
|
40
40
|
const indices = await readAllEraIndices(fh);
|
|
41
|
-
return new EraReader(config, fh, eraNumber,
|
|
41
|
+
return new EraReader(config, fh, eraNumber, shortEraRoot, indices);
|
|
42
42
|
}
|
|
43
43
|
/**
|
|
44
44
|
* Close the underlying file descriptor
|
package/lib/era/reader.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"reader.js","sourceRoot":"","sources":["../../src/era/reader.ts"],"names":[],"mappings":"AAAA,OAAO,EAAkB,IAAI,EAAC,MAAM,kBAAkB,CAAC;AACvD,OAAO,EAAC,QAAQ,EAAC,MAAM,WAAW,CAAC;AACnC,OAAO,EAAC,SAAS,EAAE,SAAS,EAAE,MAAM,EAAC,MAAM,iBAAiB,CAAC;AAC7D,OAAO,EAAkB,mBAAmB,EAAC,MAAM,kBAAkB,CAAC;AACtE,OAAO,EAAC,sBAAsB,EAAE,YAAY,EAAE,yBAAyB,EAAC,MAAM,kBAAkB,CAAC;AACjG,OAAO,EAAuC,GAAG,EAAC,MAAM,iBAAiB,CAAC;AAC1E,OAAO,EAAC,eAAe,EAAC,MAAM,iBAAiB,CAAC;AAChD,OAAO,EAAC,mBAAmB,EAAE,SAAS,EAAE,SAAS,EAAE,WAAW,EAAC,MAAM,WAAW,CAAC;AACjF,OAAO,EAAC,gBAAgB,EAAC,MAAM,YAAY,CAAC;AAC5C,OAAO,EAEL,6BAA6B,EAC7B,YAAY,EACZ,iBAAiB,EACjB,4BAA4B,GAC7B,MAAM,WAAW,CAAC;AAEnB;;;;GAIG;AACH,MAAM,OAAO,SAAS;IACX,MAAM,CAAkB;IACjC,iCAAiC;IACxB,EAAE,CAAa;IACxB,kDAAkD;IACzC,SAAS,CAAS;IAC3B,
|
|
1
|
+
{"version":3,"file":"reader.js","sourceRoot":"","sources":["../../src/era/reader.ts"],"names":[],"mappings":"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"}
|
package/lib/era/util.d.ts
CHANGED
|
@@ -4,15 +4,15 @@ import { BeaconState, Slot } from "@lodestar/types";
|
|
|
4
4
|
import { SlotIndex } from "../e2s.js";
|
|
5
5
|
/**
|
|
6
6
|
* Parsed components of an .era file name.
|
|
7
|
-
* Format: <config-name>-<era-number>-<short-
|
|
7
|
+
* Format: <config-name>-<era-number>-<short-era-root>.era
|
|
8
8
|
*/
|
|
9
9
|
export interface EraFileName {
|
|
10
10
|
/** CONFIG_NAME field of runtime config (mainnet, sepolia, hoodi, etc.) */
|
|
11
11
|
configName: string;
|
|
12
12
|
/** Number of the first era stored in file, 5-digit zero-padded (00000, 00001, etc.) */
|
|
13
13
|
eraNumber: number;
|
|
14
|
-
/** First 4 bytes of last
|
|
15
|
-
|
|
14
|
+
/** First 4 bytes of last era root, lower-case hex-encoded (8 chars) */
|
|
15
|
+
shortEraRoot: string;
|
|
16
16
|
}
|
|
17
17
|
export interface EraIndices {
|
|
18
18
|
stateIndex: SlotIndex;
|
|
@@ -26,12 +26,12 @@ export declare function computeStartBlockSlotFromEraNumber(eraNumber: number): S
|
|
|
26
26
|
/**
|
|
27
27
|
* Parse era filename.
|
|
28
28
|
*
|
|
29
|
-
* Format: `<config-name>-<era-number>-<short-
|
|
29
|
+
* Format: `<config-name>-<era-number>-<short-era-root>.era`
|
|
30
30
|
*/
|
|
31
31
|
export declare function parseEraName(filename: string): {
|
|
32
32
|
configName: string;
|
|
33
33
|
eraNumber: number;
|
|
34
|
-
|
|
34
|
+
shortEraRoot: string;
|
|
35
35
|
};
|
|
36
36
|
/**
|
|
37
37
|
* Read all indices from an era file.
|
|
@@ -42,5 +42,5 @@ export declare function readAllEraIndices(fh: FileHandle): Promise<EraIndices[]>
|
|
|
42
42
|
*/
|
|
43
43
|
export declare function readEraIndexes(fh: FileHandle, end: number): Promise<EraIndices>;
|
|
44
44
|
export declare function readSlotFromBeaconStateBytes(beaconStateBytes: Uint8Array): Slot;
|
|
45
|
-
export declare function
|
|
45
|
+
export declare function getShortEraRoot(config: ChainForkConfig, state: BeaconState): string;
|
|
46
46
|
//# sourceMappingURL=util.d.ts.map
|
package/lib/era/util.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"util.d.ts","sourceRoot":"","sources":["../../src/era/util.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAC,UAAU,EAAC,MAAM,kBAAkB,CAAC;AACjD,OAAO,EAAC,eAAe,EAAC,MAAM,kBAAkB,CAAC;AAEjD,OAAO,EAAC,WAAW,EAAE,IAAI,EAAe,MAAM,iBAAiB,CAAC;AAChE,OAAO,EAAsB,SAAS,EAAgB,MAAM,WAAW,CAAC;AAGxE;;;GAGG;AACH,MAAM,WAAW,WAAW;IAC1B,0EAA0E;IAC1E,UAAU,EAAE,MAAM,CAAC;IACnB,uFAAuF;IACvF,SAAS,EAAE,MAAM,CAAC;IAClB,
|
|
1
|
+
{"version":3,"file":"util.d.ts","sourceRoot":"","sources":["../../src/era/util.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAC,UAAU,EAAC,MAAM,kBAAkB,CAAC;AACjD,OAAO,EAAC,eAAe,EAAC,MAAM,kBAAkB,CAAC;AAEjD,OAAO,EAAC,WAAW,EAAE,IAAI,EAAe,MAAM,iBAAiB,CAAC;AAChE,OAAO,EAAsB,SAAS,EAAgB,MAAM,WAAW,CAAC;AAGxE;;;GAGG;AACH,MAAM,WAAW,WAAW;IAC1B,0EAA0E;IAC1E,UAAU,EAAE,MAAM,CAAC;IACnB,uFAAuF;IACvF,SAAS,EAAE,MAAM,CAAC;IAClB,uEAAuE;IACvE,YAAY,EAAE,MAAM,CAAC;CACtB;AAED,MAAM,WAAW,UAAU;IACzB,UAAU,EAAE,SAAS,CAAC;IACtB,WAAW,CAAC,EAAE,SAAS,CAAC;CACzB;AAED,oDAAoD;AACpD,wBAAgB,aAAa,CAAC,IAAI,EAAE,IAAI,EAAE,SAAS,EAAE,MAAM,GAAG,OAAO,CAEpE;AAED,wBAAgB,mBAAmB,CAAC,IAAI,EAAE,IAAI,EAAE,SAAS,EAAE,MAAM,GAAG,OAAO,CAE1E;AAED,wBAAgB,6BAA6B,CAAC,IAAI,EAAE,IAAI,GAAG,MAAM,CAEhE;AAED,wBAAgB,kCAAkC,CAAC,SAAS,EAAE,MAAM,GAAG,IAAI,CAK1E;AAED;;;;GAIG;AACH,wBAAgB,YAAY,CAAC,QAAQ,EAAE,MAAM,GAAG;IAAC,UAAU,EAAE,MAAM,CAAC;IAAC,SAAS,EAAE,MAAM,CAAC;IAAC,YAAY,EAAE,MAAM,CAAA;CAAC,CAU5G;AAED;;GAEG;AACH,wBAAsB,iBAAiB,CAAC,EAAE,EAAE,UAAU,GAAG,OAAO,CAAC,UAAU,EAAE,CAAC,CAY7E;AAED;;GAEG;AACH,wBAAsB,cAAc,CAAC,EAAE,EAAE,UAAU,EAAE,GAAG,EAAE,MAAM,GAAG,OAAO,CAAC,UAAU,CAAC,CA2BrF;AAED,wBAAgB,4BAA4B,CAAC,gBAAgB,EAAE,UAAU,GAAG,IAAI,CAO/E;AAED,wBAAgB,eAAe,CAAC,MAAM,EAAE,eAAe,EAAE,KAAK,EAAE,WAAW,GAAG,MAAM,CAanF"}
|
package/lib/era/util.js
CHANGED
|
@@ -21,7 +21,7 @@ export function computeStartBlockSlotFromEraNumber(eraNumber) {
|
|
|
21
21
|
/**
|
|
22
22
|
* Parse era filename.
|
|
23
23
|
*
|
|
24
|
-
* Format: `<config-name>-<era-number>-<short-
|
|
24
|
+
* Format: `<config-name>-<era-number>-<short-era-root>.era`
|
|
25
25
|
*/
|
|
26
26
|
export function parseEraName(filename) {
|
|
27
27
|
const match = filename.match(/^(.*)-(\d{5})-([0-9a-f]{8})\.era$/);
|
|
@@ -31,7 +31,7 @@ export function parseEraName(filename) {
|
|
|
31
31
|
return {
|
|
32
32
|
configName: match[1],
|
|
33
33
|
eraNumber: parseInt(match[2], 10),
|
|
34
|
-
|
|
34
|
+
shortEraRoot: match[3],
|
|
35
35
|
};
|
|
36
36
|
}
|
|
37
37
|
/**
|
|
@@ -79,7 +79,7 @@ export function readSlotFromBeaconStateBytes(beaconStateBytes) {
|
|
|
79
79
|
// slot is at offset 40: 8 (genesisTime) + 32 (genesisValidatorsRoot)
|
|
80
80
|
40);
|
|
81
81
|
}
|
|
82
|
-
export function
|
|
82
|
+
export function getShortEraRoot(config, state) {
|
|
83
83
|
return Buffer.from(state.slot === 0
|
|
84
84
|
? state.genesisValidatorsRoot
|
|
85
85
|
: // Post-Capella, historical_roots is replaced by historical_summaries
|
package/lib/era/util.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"util.js","sourceRoot":"","sources":["../../src/era/util.ts"],"names":[],"mappings":"AAEA,OAAO,EAAC,yBAAyB,EAAE,iBAAiB,EAAC,MAAM,kBAAkB,CAAC;AAC9E,OAAO,EAA6B,GAAG,EAAC,MAAM,iBAAiB,CAAC;AAChE,OAAO,EAAC,mBAAmB,EAAa,aAAa,EAAC,MAAM,WAAW,CAAC;AACxE,OAAO,EAAC,UAAU,EAAC,MAAM,YAAY,CAAC;AAoBtC,oDAAoD;AACpD,MAAM,UAAU,aAAa,CAAC,IAAU,EAAE,SAAiB,EAAW;IACpE,OAAO,6BAA6B,CAAC,IAAI,CAAC,KAAK,SAAS,CAAC;AAAA,CAC1D;AAED,MAAM,UAAU,mBAAmB,CAAC,IAAU,EAAE,SAAiB,EAAW;IAC1E,OAAO,IAAI,GAAG,yBAAyB,KAAK,CAAC,IAAI,IAAI,GAAG,yBAAyB,KAAK,SAAS,CAAC;AAAA,CACjG;AAED,MAAM,UAAU,6BAA6B,CAAC,IAAU,EAAU;IAChE,OAAO,IAAI,CAAC,KAAK,CAAC,IAAI,GAAG,yBAAyB,CAAC,GAAG,CAAC,CAAC;AAAA,CACzD;AAED,MAAM,UAAU,kCAAkC,CAAC,SAAiB,EAAQ;IAC1E,IAAI,SAAS,KAAK,CAAC,EAAE,CAAC;QACpB,MAAM,IAAI,KAAK,CAAC,6CAA6C,CAAC,CAAC;IACjE,CAAC;IACD,OAAO,CAAC,SAAS,GAAG,CAAC,CAAC,GAAG,yBAAyB,CAAC;AAAA,CACpD;AAED;;;;GAIG;AACH,MAAM,UAAU,YAAY,CAAC,QAAgB,
|
|
1
|
+
{"version":3,"file":"util.js","sourceRoot":"","sources":["../../src/era/util.ts"],"names":[],"mappings":"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"}
|
package/lib/era/writer.d.ts
CHANGED
|
@@ -20,7 +20,7 @@ type WriterState = {
|
|
|
20
20
|
type: WriterStateType.FinishedGroup;
|
|
21
21
|
eraNumber: number;
|
|
22
22
|
currentOffset: number;
|
|
23
|
-
|
|
23
|
+
shortEraRoot: string;
|
|
24
24
|
};
|
|
25
25
|
/**
|
|
26
26
|
* EraWriter is responsible for writing ERA files.
|
|
@@ -37,8 +37,8 @@ export declare class EraWriter {
|
|
|
37
37
|
static create(config: ChainForkConfig, path: string, eraNumber: number): Promise<EraWriter>;
|
|
38
38
|
finish(): Promise<string>;
|
|
39
39
|
writeVersion(): Promise<void>;
|
|
40
|
-
writeCompressedState(slot: Slot,
|
|
41
|
-
writeSerializedState(slot: Slot,
|
|
40
|
+
writeCompressedState(slot: Slot, shortEraRoot: string, data: Uint8Array): Promise<void>;
|
|
41
|
+
writeSerializedState(slot: Slot, shortEraRoot: string, data: Uint8Array): Promise<void>;
|
|
42
42
|
writeState(state: BeaconState): Promise<void>;
|
|
43
43
|
writeCompressedBlock(slot: Slot, data: Uint8Array): Promise<void>;
|
|
44
44
|
writeSerializedBlock(slot: Slot, data: Uint8Array): Promise<void>;
|
package/lib/era/writer.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"writer.d.ts","sourceRoot":"","sources":["../../src/era/writer.ts"],"names":[],"mappings":"AAAA,OAAO,EAAC,KAAK,UAAU,EAAe,MAAM,kBAAkB,CAAC;AAE/D,OAAO,EAAC,eAAe,EAAC,MAAM,kBAAkB,CAAC;AAEjD,OAAO,EAAC,WAAW,EAAE,iBAAiB,EAAE,IAAI,EAAC,MAAM,iBAAiB,CAAC;
|
|
1
|
+
{"version":3,"file":"writer.d.ts","sourceRoot":"","sources":["../../src/era/writer.ts"],"names":[],"mappings":"AAAA,OAAO,EAAC,KAAK,UAAU,EAAe,MAAM,kBAAkB,CAAC;AAE/D,OAAO,EAAC,eAAe,EAAC,MAAM,kBAAkB,CAAC;AAEjD,OAAO,EAAC,WAAW,EAAE,iBAAiB,EAAE,IAAI,EAAC,MAAM,iBAAiB,CAAC;AAKrE,aAAK,eAAe;IAClB,SAAS,IAAA;IACT,UAAU,IAAA;IACV,aAAa,IAAA;CACd;AAED,KAAK,WAAW,GACZ;IACE,IAAI,EAAE,eAAe,CAAC,SAAS,CAAC;IAChC,SAAS,EAAE,MAAM,CAAC;IAClB,aAAa,EAAE,MAAM,CAAC;CACvB,GACD;IACE,IAAI,EAAE,eAAe,CAAC,UAAU,CAAC;IACjC,SAAS,EAAE,MAAM,CAAC;IAClB,aAAa,EAAE,MAAM,CAAC;IACtB,YAAY,EAAE,MAAM,EAAE,CAAC;IACvB,QAAQ,EAAE,IAAI,CAAC;CAChB,GACD;IACE,IAAI,EAAE,eAAe,CAAC,aAAa,CAAC;IACpC,SAAS,EAAE,MAAM,CAAC;IAClB,aAAa,EAAE,MAAM,CAAC;IACtB,YAAY,EAAE,MAAM,CAAC;CACtB,CAAC;AAEN;;;;GAIG;AACH,qBAAa,SAAS;IACpB,MAAM,EAAE,eAAe,CAAC;IACxB,IAAI,EAAE,MAAM,CAAC;IACb,EAAE,EAAE,UAAU,CAAC;IACf,SAAS,EAAE,MAAM,CAAC;IAClB,KAAK,EAAE,WAAW,CAAC;IAEnB,YAAY,MAAM,EAAE,eAAe,EAAE,IAAI,EAAE,MAAM,EAAE,EAAE,EAAE,UAAU,EAAE,SAAS,EAAE,MAAM,EAUnF;IAED,OAAa,MAAM,CAAC,MAAM,EAAE,eAAe,EAAE,IAAI,EAAE,MAAM,EAAE,SAAS,EAAE,MAAM,GAAG,OAAO,CAAC,SAAS,CAAC,CAGhG;IAEK,MAAM,IAAI,OAAO,CAAC,MAAM,CAAC,CAc9B;IAEK,YAAY,IAAI,OAAO,CAAC,IAAI,CAAC,CAoBlC;IAEK,oBAAoB,CAAC,IAAI,EAAE,IAAI,EAAE,YAAY,EAAE,MAAM,EAAE,IAAI,EAAE,UAAU,GAAG,OAAO,CAAC,IAAI,CAAC,CA6C5F;IAEK,oBAAoB,CAAC,IAAI,EAAE,IAAI,EAAE,YAAY,EAAE,MAAM,EAAE,IAAI,EAAE,UAAU,GAAG,OAAO,CAAC,IAAI,CAAC,CAG5F;IAEK,UAAU,CAAC,KAAK,EAAE,WAAW,GAAG,OAAO,CAAC,IAAI,CAAC,CAMlD;IAEK,oBAAoB,CAAC,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,UAAU,GAAG,OAAO,CAAC,IAAI,CAAC,CAyBtE;IAEK,oBAAoB,CAAC,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,UAAU,GAAG,OAAO,CAAC,IAAI,CAAC,CAGtE;IAEK,UAAU,CAAC,KAAK,EAAE,iBAAiB,GAAG,OAAO,CAAC,IAAI,CAAC,CAKxD;CACF"}
|
package/lib/era/writer.js
CHANGED
|
@@ -3,7 +3,7 @@ import { format, parse } from "node:path";
|
|
|
3
3
|
import { SLOTS_PER_HISTORICAL_ROOT } from "@lodestar/params";
|
|
4
4
|
import { E2STORE_HEADER_SIZE, EntryType, serializeSlotIndex, writeEntry } from "../e2s.js";
|
|
5
5
|
import { snappyCompress } from "../util.js";
|
|
6
|
-
import { computeStartBlockSlotFromEraNumber,
|
|
6
|
+
import { computeStartBlockSlotFromEraNumber, getShortEraRoot, isSlotInRange, isValidEraStateSlot } from "./util.js";
|
|
7
7
|
var WriterStateType;
|
|
8
8
|
(function (WriterStateType) {
|
|
9
9
|
WriterStateType[WriterStateType["InitGroup"] = 0] = "InitGroup";
|
|
@@ -44,7 +44,7 @@ export class EraWriter {
|
|
|
44
44
|
const pathParts = parse(this.path);
|
|
45
45
|
const newPath = format({
|
|
46
46
|
...pathParts,
|
|
47
|
-
base: `${this.config.CONFIG_NAME}-${String(this.eraNumber).padStart(5, "0")}-${this.state.
|
|
47
|
+
base: `${this.config.CONFIG_NAME}-${String(this.eraNumber).padStart(5, "0")}-${this.state.shortEraRoot}.era`,
|
|
48
48
|
});
|
|
49
49
|
await rename(this.path, newPath);
|
|
50
50
|
return newPath;
|
|
@@ -70,7 +70,7 @@ export class EraWriter {
|
|
|
70
70
|
lastSlot: computeStartBlockSlotFromEraNumber(this.state.eraNumber) - 1,
|
|
71
71
|
};
|
|
72
72
|
}
|
|
73
|
-
async writeCompressedState(slot,
|
|
73
|
+
async writeCompressedState(slot, shortEraRoot, data) {
|
|
74
74
|
if (this.state.type === WriterStateType.InitGroup) {
|
|
75
75
|
await this.writeVersion();
|
|
76
76
|
}
|
|
@@ -111,18 +111,18 @@ export class EraWriter {
|
|
|
111
111
|
type: WriterStateType.FinishedGroup,
|
|
112
112
|
eraNumber: this.state.eraNumber,
|
|
113
113
|
currentOffset: this.state.currentOffset,
|
|
114
|
-
|
|
114
|
+
shortEraRoot,
|
|
115
115
|
};
|
|
116
116
|
}
|
|
117
|
-
async writeSerializedState(slot,
|
|
117
|
+
async writeSerializedState(slot, shortEraRoot, data) {
|
|
118
118
|
const compressed = await snappyCompress(data);
|
|
119
|
-
await this.writeCompressedState(slot,
|
|
119
|
+
await this.writeCompressedState(slot, shortEraRoot, compressed);
|
|
120
120
|
}
|
|
121
121
|
async writeState(state) {
|
|
122
122
|
const slot = state.slot;
|
|
123
|
-
const
|
|
123
|
+
const shortEraRoot = getShortEraRoot(this.config, state);
|
|
124
124
|
const ssz = this.config.getForkTypes(slot).BeaconState.serialize(state);
|
|
125
|
-
await this.writeSerializedState(slot,
|
|
125
|
+
await this.writeSerializedState(slot, shortEraRoot, ssz);
|
|
126
126
|
}
|
|
127
127
|
async writeCompressedBlock(slot, data) {
|
|
128
128
|
if (this.state.type === WriterStateType.InitGroup) {
|
package/lib/era/writer.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"writer.js","sourceRoot":"","sources":["../../src/era/writer.ts"],"names":[],"mappings":"AAAA,OAAO,EAAkB,IAAI,EAAE,MAAM,EAAC,MAAM,kBAAkB,CAAC;AAC/D,OAAO,EAAC,MAAM,EAAE,KAAK,EAAC,MAAM,WAAW,CAAC;AAExC,OAAO,EAAC,yBAAyB,EAAC,MAAM,kBAAkB,CAAC;AAE3D,OAAO,EAAC,mBAAmB,EAAE,SAAS,EAAa,kBAAkB,EAAE,UAAU,EAAC,MAAM,WAAW,CAAC;AACpG,OAAO,EAAC,cAAc,EAAC,MAAM,YAAY,CAAC;AAC1C,OAAO,
|
|
1
|
+
{"version":3,"file":"writer.js","sourceRoot":"","sources":["../../src/era/writer.ts"],"names":[],"mappings":"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"}
|
package/package.json
CHANGED
|
@@ -11,7 +11,7 @@
|
|
|
11
11
|
"bugs": {
|
|
12
12
|
"url": "https://github.com/ChainSafe/lodestar/issues"
|
|
13
13
|
},
|
|
14
|
-
"version": "1.45.0-dev.
|
|
14
|
+
"version": "1.45.0-dev.fadf0fbb1f",
|
|
15
15
|
"type": "module",
|
|
16
16
|
"exports": {
|
|
17
17
|
".": {
|
|
@@ -40,11 +40,11 @@
|
|
|
40
40
|
},
|
|
41
41
|
"dependencies": {
|
|
42
42
|
"@chainsafe/blst": "^2.2.0",
|
|
43
|
-
"@lodestar/config": "^1.45.0-dev.
|
|
44
|
-
"@lodestar/params": "^1.45.0-dev.
|
|
45
|
-
"@lodestar/reqresp": "^1.45.0-dev.
|
|
46
|
-
"@lodestar/types": "^1.45.0-dev.
|
|
47
|
-
"@lodestar/utils": "^1.45.0-dev.
|
|
43
|
+
"@lodestar/config": "^1.45.0-dev.fadf0fbb1f",
|
|
44
|
+
"@lodestar/params": "^1.45.0-dev.fadf0fbb1f",
|
|
45
|
+
"@lodestar/reqresp": "^1.45.0-dev.fadf0fbb1f",
|
|
46
|
+
"@lodestar/types": "^1.45.0-dev.fadf0fbb1f",
|
|
47
|
+
"@lodestar/utils": "^1.45.0-dev.fadf0fbb1f"
|
|
48
48
|
},
|
|
49
|
-
"gitHead": "
|
|
49
|
+
"gitHead": "3c79c57c7b5f21ae8bdf32e48167216cf2cab5d2"
|
|
50
50
|
}
|
package/src/era/reader.ts
CHANGED
|
@@ -26,34 +26,28 @@ export class EraReader {
|
|
|
26
26
|
readonly fh: FileHandle;
|
|
27
27
|
/** The era number retrieved from the file name */
|
|
28
28
|
readonly eraNumber: number;
|
|
29
|
-
/** The short
|
|
30
|
-
readonly
|
|
29
|
+
/** The short era root retrieved from the file name */
|
|
30
|
+
readonly shortEraRoot: string;
|
|
31
31
|
/** An array of state and block indices, one per group */
|
|
32
32
|
readonly groups: EraIndices[];
|
|
33
33
|
|
|
34
|
-
constructor(
|
|
35
|
-
config: ChainForkConfig,
|
|
36
|
-
fh: FileHandle,
|
|
37
|
-
eraNumber: number,
|
|
38
|
-
shortHistoricalRoot: string,
|
|
39
|
-
indices: EraIndices[]
|
|
40
|
-
) {
|
|
34
|
+
constructor(config: ChainForkConfig, fh: FileHandle, eraNumber: number, shortEraRoot: string, indices: EraIndices[]) {
|
|
41
35
|
this.config = config;
|
|
42
36
|
this.fh = fh;
|
|
43
37
|
this.eraNumber = eraNumber;
|
|
44
|
-
this.
|
|
38
|
+
this.shortEraRoot = shortEraRoot;
|
|
45
39
|
this.groups = indices;
|
|
46
40
|
}
|
|
47
41
|
|
|
48
42
|
static async open(config: ChainForkConfig, path: string): Promise<EraReader> {
|
|
49
43
|
const fh = await open(path, "r");
|
|
50
44
|
const name = basename(path);
|
|
51
|
-
const {configName, eraNumber,
|
|
45
|
+
const {configName, eraNumber, shortEraRoot} = parseEraName(name);
|
|
52
46
|
if (config.CONFIG_NAME !== configName) {
|
|
53
47
|
throw new Error(`Config name mismatch: expected ${config.CONFIG_NAME}, got ${configName}`);
|
|
54
48
|
}
|
|
55
49
|
const indices = await readAllEraIndices(fh);
|
|
56
|
-
return new EraReader(config, fh, eraNumber,
|
|
50
|
+
return new EraReader(config, fh, eraNumber, shortEraRoot, indices);
|
|
57
51
|
}
|
|
58
52
|
|
|
59
53
|
/**
|
package/src/era/util.ts
CHANGED
|
@@ -7,15 +7,15 @@ import {readUint48} from "../util.js";
|
|
|
7
7
|
|
|
8
8
|
/**
|
|
9
9
|
* Parsed components of an .era file name.
|
|
10
|
-
* Format: <config-name>-<era-number>-<short-
|
|
10
|
+
* Format: <config-name>-<era-number>-<short-era-root>.era
|
|
11
11
|
*/
|
|
12
12
|
export interface EraFileName {
|
|
13
13
|
/** CONFIG_NAME field of runtime config (mainnet, sepolia, hoodi, etc.) */
|
|
14
14
|
configName: string;
|
|
15
15
|
/** Number of the first era stored in file, 5-digit zero-padded (00000, 00001, etc.) */
|
|
16
16
|
eraNumber: number;
|
|
17
|
-
/** First 4 bytes of last
|
|
18
|
-
|
|
17
|
+
/** First 4 bytes of last era root, lower-case hex-encoded (8 chars) */
|
|
18
|
+
shortEraRoot: string;
|
|
19
19
|
}
|
|
20
20
|
|
|
21
21
|
export interface EraIndices {
|
|
@@ -46,9 +46,9 @@ export function computeStartBlockSlotFromEraNumber(eraNumber: number): Slot {
|
|
|
46
46
|
/**
|
|
47
47
|
* Parse era filename.
|
|
48
48
|
*
|
|
49
|
-
* Format: `<config-name>-<era-number>-<short-
|
|
49
|
+
* Format: `<config-name>-<era-number>-<short-era-root>.era`
|
|
50
50
|
*/
|
|
51
|
-
export function parseEraName(filename: string): {configName: string; eraNumber: number;
|
|
51
|
+
export function parseEraName(filename: string): {configName: string; eraNumber: number; shortEraRoot: string} {
|
|
52
52
|
const match = filename.match(/^(.*)-(\d{5})-([0-9a-f]{8})\.era$/);
|
|
53
53
|
if (!match) {
|
|
54
54
|
throw new Error(`Invalid era filename format: ${filename}`);
|
|
@@ -56,7 +56,7 @@ export function parseEraName(filename: string): {configName: string; eraNumber:
|
|
|
56
56
|
return {
|
|
57
57
|
configName: match[1],
|
|
58
58
|
eraNumber: parseInt(match[2], 10),
|
|
59
|
-
|
|
59
|
+
shortEraRoot: match[3],
|
|
60
60
|
};
|
|
61
61
|
}
|
|
62
62
|
|
|
@@ -118,7 +118,7 @@ export function readSlotFromBeaconStateBytes(beaconStateBytes: Uint8Array): Slot
|
|
|
118
118
|
);
|
|
119
119
|
}
|
|
120
120
|
|
|
121
|
-
export function
|
|
121
|
+
export function getShortEraRoot(config: ChainForkConfig, state: BeaconState): string {
|
|
122
122
|
return Buffer.from(
|
|
123
123
|
state.slot === 0
|
|
124
124
|
? state.genesisValidatorsRoot
|
package/src/era/writer.ts
CHANGED
|
@@ -5,12 +5,7 @@ import {SLOTS_PER_HISTORICAL_ROOT} from "@lodestar/params";
|
|
|
5
5
|
import {BeaconState, SignedBeaconBlock, Slot} from "@lodestar/types";
|
|
6
6
|
import {E2STORE_HEADER_SIZE, EntryType, SlotIndex, serializeSlotIndex, writeEntry} from "../e2s.js";
|
|
7
7
|
import {snappyCompress} from "../util.js";
|
|
8
|
-
import {
|
|
9
|
-
computeStartBlockSlotFromEraNumber,
|
|
10
|
-
getShortHistoricalRoot,
|
|
11
|
-
isSlotInRange,
|
|
12
|
-
isValidEraStateSlot,
|
|
13
|
-
} from "./util.js";
|
|
8
|
+
import {computeStartBlockSlotFromEraNumber, getShortEraRoot, isSlotInRange, isValidEraStateSlot} from "./util.js";
|
|
14
9
|
|
|
15
10
|
enum WriterStateType {
|
|
16
11
|
InitGroup,
|
|
@@ -35,7 +30,7 @@ type WriterState =
|
|
|
35
30
|
type: WriterStateType.FinishedGroup;
|
|
36
31
|
eraNumber: number;
|
|
37
32
|
currentOffset: number;
|
|
38
|
-
|
|
33
|
+
shortEraRoot: string;
|
|
39
34
|
};
|
|
40
35
|
|
|
41
36
|
/**
|
|
@@ -76,7 +71,7 @@ export class EraWriter {
|
|
|
76
71
|
const pathParts = parse(this.path);
|
|
77
72
|
const newPath = format({
|
|
78
73
|
...pathParts,
|
|
79
|
-
base: `${this.config.CONFIG_NAME}-${String(this.eraNumber).padStart(5, "0")}-${this.state.
|
|
74
|
+
base: `${this.config.CONFIG_NAME}-${String(this.eraNumber).padStart(5, "0")}-${this.state.shortEraRoot}.era`,
|
|
80
75
|
});
|
|
81
76
|
await rename(this.path, newPath);
|
|
82
77
|
|
|
@@ -105,7 +100,7 @@ export class EraWriter {
|
|
|
105
100
|
};
|
|
106
101
|
}
|
|
107
102
|
|
|
108
|
-
async writeCompressedState(slot: Slot,
|
|
103
|
+
async writeCompressedState(slot: Slot, shortEraRoot: string, data: Uint8Array): Promise<void> {
|
|
109
104
|
if (this.state.type === WriterStateType.InitGroup) {
|
|
110
105
|
await this.writeVersion();
|
|
111
106
|
}
|
|
@@ -148,21 +143,21 @@ export class EraWriter {
|
|
|
148
143
|
type: WriterStateType.FinishedGroup,
|
|
149
144
|
eraNumber: this.state.eraNumber,
|
|
150
145
|
currentOffset: this.state.currentOffset,
|
|
151
|
-
|
|
146
|
+
shortEraRoot,
|
|
152
147
|
};
|
|
153
148
|
}
|
|
154
149
|
|
|
155
|
-
async writeSerializedState(slot: Slot,
|
|
150
|
+
async writeSerializedState(slot: Slot, shortEraRoot: string, data: Uint8Array): Promise<void> {
|
|
156
151
|
const compressed = await snappyCompress(data);
|
|
157
|
-
await this.writeCompressedState(slot,
|
|
152
|
+
await this.writeCompressedState(slot, shortEraRoot, compressed);
|
|
158
153
|
}
|
|
159
154
|
|
|
160
155
|
async writeState(state: BeaconState): Promise<void> {
|
|
161
156
|
const slot = state.slot;
|
|
162
|
-
const
|
|
157
|
+
const shortEraRoot = getShortEraRoot(this.config, state);
|
|
163
158
|
const ssz = this.config.getForkTypes(slot).BeaconState.serialize(state);
|
|
164
159
|
|
|
165
|
-
await this.writeSerializedState(slot,
|
|
160
|
+
await this.writeSerializedState(slot, shortEraRoot, ssz);
|
|
166
161
|
}
|
|
167
162
|
|
|
168
163
|
async writeCompressedBlock(slot: Slot, data: Uint8Array): Promise<void> {
|