@lodestar/beacon-node 1.29.0-dev.656eef3b16 → 1.29.0-dev.984f565eb8

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 (65) hide show
  1. package/lib/chain/archiveStore/archiveStore.d.ts +54 -0
  2. package/lib/chain/archiveStore/archiveStore.js +126 -0
  3. package/lib/chain/archiveStore/archiveStore.js.map +1 -0
  4. package/lib/chain/archiveStore/constants.d.ts +4 -0
  5. package/lib/chain/archiveStore/constants.js +4 -0
  6. package/lib/chain/archiveStore/constants.js.map +1 -0
  7. package/lib/chain/{historicalState → archiveStore/historicalState}/getHistoricalState.d.ts +1 -1
  8. package/lib/chain/archiveStore/historicalState/getHistoricalState.js.map +1 -0
  9. package/lib/chain/{historicalState/index.d.ts → archiveStore/historicalState/historicalStateRegen.d.ts} +1 -1
  10. package/lib/chain/{historicalState/index.js → archiveStore/historicalState/historicalStateRegen.js} +2 -2
  11. package/lib/chain/archiveStore/historicalState/historicalStateRegen.js.map +1 -0
  12. package/lib/chain/{historicalState → archiveStore/historicalState}/types.d.ts +1 -1
  13. package/lib/chain/archiveStore/historicalState/types.js.map +1 -0
  14. package/lib/chain/{historicalState → archiveStore/historicalState}/worker.js +3 -3
  15. package/lib/chain/archiveStore/historicalState/worker.js.map +1 -0
  16. package/lib/chain/archiveStore/index.d.ts +4 -0
  17. package/lib/chain/archiveStore/index.js +4 -0
  18. package/lib/chain/archiveStore/index.js.map +1 -0
  19. package/lib/chain/{archiver → archiveStore}/interface.d.ts +30 -4
  20. package/lib/chain/archiveStore/interface.js +8 -0
  21. package/lib/chain/archiveStore/interface.js.map +1 -0
  22. package/lib/chain/{archiver → archiveStore}/strategies/frequencyStateArchiveStrategy.d.ts +2 -2
  23. package/lib/chain/archiveStore/strategies/frequencyStateArchiveStrategy.js.map +1 -0
  24. package/lib/chain/{archiver → archiveStore/utils}/archiveBlocks.d.ts +2 -2
  25. package/lib/chain/archiveStore/utils/archiveBlocks.js.map +1 -0
  26. package/lib/chain/{archiver → archiveStore/utils}/pruneHistory.d.ts +2 -2
  27. package/lib/chain/archiveStore/utils/pruneHistory.js.map +1 -0
  28. package/lib/chain/archiveStore/utils/updateBackfillRange.d.ts +20 -0
  29. package/lib/chain/archiveStore/utils/updateBackfillRange.js +40 -0
  30. package/lib/chain/archiveStore/utils/updateBackfillRange.js.map +1 -0
  31. package/lib/chain/chain.d.ts +5 -5
  32. package/lib/chain/chain.js +11 -16
  33. package/lib/chain/chain.js.map +1 -1
  34. package/lib/chain/interface.d.ts +4 -0
  35. package/lib/chain/interface.js.map +1 -1
  36. package/lib/chain/options.d.ts +4 -4
  37. package/lib/chain/options.js +4 -4
  38. package/lib/chain/options.js.map +1 -1
  39. package/lib/node/nodejs.js +4 -21
  40. package/lib/node/nodejs.js.map +1 -1
  41. package/lib/node/options.d.ts +2 -2
  42. package/lib/node/options.js +2 -2
  43. package/lib/node/options.js.map +1 -1
  44. package/package.json +14 -14
  45. package/lib/chain/archiver/archiveBlocks.js.map +0 -1
  46. package/lib/chain/archiver/archiver.d.ts +0 -41
  47. package/lib/chain/archiver/archiver.js +0 -122
  48. package/lib/chain/archiver/archiver.js.map +0 -1
  49. package/lib/chain/archiver/index.d.ts +0 -3
  50. package/lib/chain/archiver/index.js +0 -3
  51. package/lib/chain/archiver/index.js.map +0 -1
  52. package/lib/chain/archiver/interface.js +0 -8
  53. package/lib/chain/archiver/interface.js.map +0 -1
  54. package/lib/chain/archiver/pruneHistory.js.map +0 -1
  55. package/lib/chain/archiver/strategies/frequencyStateArchiveStrategy.js.map +0 -1
  56. package/lib/chain/historicalState/getHistoricalState.js.map +0 -1
  57. package/lib/chain/historicalState/index.js.map +0 -1
  58. package/lib/chain/historicalState/types.js.map +0 -1
  59. package/lib/chain/historicalState/worker.js.map +0 -1
  60. /package/lib/chain/{historicalState → archiveStore/historicalState}/getHistoricalState.js +0 -0
  61. /package/lib/chain/{historicalState → archiveStore/historicalState}/types.js +0 -0
  62. /package/lib/chain/{historicalState → archiveStore/historicalState}/worker.d.ts +0 -0
  63. /package/lib/chain/{archiver → archiveStore}/strategies/frequencyStateArchiveStrategy.js +0 -0
  64. /package/lib/chain/{archiver → archiveStore/utils}/archiveBlocks.js +0 -0
  65. /package/lib/chain/{archiver → archiveStore/utils}/pruneHistory.js +0 -0
@@ -0,0 +1,54 @@
1
+ import { LoggerNode } from "@lodestar/logger/node";
2
+ import { Checkpoint } from "@lodestar/types/phase0";
3
+ import { IBeaconDb } from "../../db/index.js";
4
+ import { Metrics } from "../../metrics/metrics.js";
5
+ import { IBeaconChain } from "../interface.js";
6
+ import { ArchiveStoreOpts } from "./interface.js";
7
+ type ArchiveStoreModules = {
8
+ chain: IBeaconChain;
9
+ db: IBeaconDb;
10
+ logger: LoggerNode;
11
+ metrics: Metrics | null;
12
+ };
13
+ type ArchiveStoreInitOpts = ArchiveStoreOpts & {
14
+ dbName: string;
15
+ anchorState: {
16
+ finalizedCheckpoint: Checkpoint;
17
+ };
18
+ };
19
+ /**
20
+ * Used for running tasks that depends on some events or are executed
21
+ * periodically.
22
+ */
23
+ export declare class ArchiveStore {
24
+ private archiveMode;
25
+ private jobQueue;
26
+ private prevFinalized;
27
+ private archiveBlobEpochs?;
28
+ private readonly statesArchiverStrategy;
29
+ private readonly chain;
30
+ private readonly db;
31
+ private readonly logger;
32
+ private readonly metrics;
33
+ private readonly opts;
34
+ private readonly signal;
35
+ private historicalStateRegen?;
36
+ constructor(modules: ArchiveStoreModules, opts: ArchiveStoreInitOpts, signal: AbortSignal);
37
+ init(): Promise<void>;
38
+ close(): Promise<void>;
39
+ scrapeMetrics(): Promise<string>;
40
+ getHistoricalStateBySlot(slot: number): Promise<{
41
+ state: Uint8Array;
42
+ executionOptimistic: boolean;
43
+ finalized: boolean;
44
+ } | null>;
45
+ /**
46
+ * Archive latest finalized state
47
+ * */
48
+ persistToDisk(): Promise<void>;
49
+ private onFinalizedCheckpoint;
50
+ private onCheckpoint;
51
+ private processFinalizedCheckpoint;
52
+ }
53
+ export {};
54
+ //# sourceMappingURL=archiveStore.d.ts.map
@@ -0,0 +1,126 @@
1
+ import { callFnWhenAwait } from "@lodestar/utils";
2
+ import { JobItemQueue } from "../../util/queue/index.js";
3
+ import { ChainEvent } from "../emitter.js";
4
+ import { PROCESS_FINALIZED_CHECKPOINT_QUEUE_LENGTH } from "./constants.js";
5
+ import { HistoricalStateRegen } from "./historicalState/historicalStateRegen.js";
6
+ import { ArchiveMode } from "./interface.js";
7
+ import { FrequencyStateArchiveStrategy } from "./strategies/frequencyStateArchiveStrategy.js";
8
+ import { archiveBlocks } from "./utils/archiveBlocks.js";
9
+ import { pruneHistory } from "./utils/pruneHistory.js";
10
+ import { updateBackfillRange } from "./utils/updateBackfillRange.js";
11
+ /**
12
+ * Used for running tasks that depends on some events or are executed
13
+ * periodically.
14
+ */
15
+ export class ArchiveStore {
16
+ constructor(modules, opts, signal) {
17
+ //-------------------------------------------------------------------------
18
+ // Event handlers
19
+ //-------------------------------------------------------------------------
20
+ this.onFinalizedCheckpoint = async (finalized) => {
21
+ return this.jobQueue.push(finalized);
22
+ };
23
+ this.onCheckpoint = () => {
24
+ const headStateRoot = this.chain.forkChoice.getHead().stateRoot;
25
+ this.chain.regen.pruneOnCheckpoint(this.chain.forkChoice.getFinalizedCheckpoint().epoch, this.chain.forkChoice.getJustifiedCheckpoint().epoch, headStateRoot);
26
+ this.statesArchiverStrategy.onCheckpoint(headStateRoot, this.metrics).catch((err) => {
27
+ this.logger.error("Error during state archive", { archiveMode: this.archiveMode }, err);
28
+ });
29
+ };
30
+ this.processFinalizedCheckpoint = async (finalized) => {
31
+ try {
32
+ const finalizedEpoch = finalized.epoch;
33
+ this.logger.verbose("Start processing finalized checkpoint", { epoch: finalizedEpoch, rootHex: finalized.rootHex });
34
+ await archiveBlocks(this.chain.config, this.db, this.chain.forkChoice, this.chain.lightClientServer, this.logger, finalized, this.chain.clock.currentEpoch, this.archiveBlobEpochs);
35
+ if (this.opts.pruneHistory) {
36
+ await pruneHistory(this.chain.config, this.db, this.logger, this.metrics, finalizedEpoch, this.chain.clock.currentEpoch);
37
+ }
38
+ this.prevFinalized = finalized;
39
+ await this.statesArchiverStrategy.onFinalizedCheckpoint(finalized, this.metrics);
40
+ // should be after ArchiveBlocksTask to handle restart cleanly
41
+ await this.statesArchiverStrategy.maybeArchiveState(finalized, this.metrics);
42
+ this.chain.regen.pruneOnFinalized(finalizedEpoch);
43
+ // tasks rely on extended fork choice
44
+ const prunedBlocks = this.chain.forkChoice.prune(finalized.rootHex);
45
+ await updateBackfillRange({ chain: this.chain, db: this.db, logger: this.logger }, finalized);
46
+ this.logger.verbose("Finish processing finalized checkpoint", {
47
+ epoch: finalizedEpoch,
48
+ rootHex: finalized.rootHex,
49
+ prunedBlocks: prunedBlocks.length,
50
+ });
51
+ }
52
+ catch (e) {
53
+ this.logger.error("Error processing finalized checkpoint", { epoch: finalized.epoch }, e);
54
+ }
55
+ };
56
+ this.chain = modules.chain;
57
+ this.db = modules.db;
58
+ this.logger = modules.logger;
59
+ this.metrics = modules.metrics;
60
+ this.opts = opts;
61
+ this.signal = signal;
62
+ this.archiveMode = opts.archiveMode;
63
+ this.archiveBlobEpochs = opts.archiveBlobEpochs;
64
+ this.prevFinalized = this.chain.forkChoice.getFinalizedCheckpoint();
65
+ this.jobQueue = new JobItemQueue(this.processFinalizedCheckpoint, {
66
+ maxLength: PROCESS_FINALIZED_CHECKPOINT_QUEUE_LENGTH,
67
+ signal,
68
+ });
69
+ if (opts.archiveMode === ArchiveMode.Frequency) {
70
+ this.statesArchiverStrategy = new FrequencyStateArchiveStrategy(this.chain.regen, this.db, this.logger, opts, this.chain.bufferPool);
71
+ }
72
+ else {
73
+ throw new Error(`State archive strategy "${opts.archiveMode}" currently not supported.`);
74
+ }
75
+ if (!opts.disableArchiveOnCheckpoint) {
76
+ this.chain.emitter.on(ChainEvent.forkChoiceFinalized, this.onFinalizedCheckpoint);
77
+ this.chain.emitter.on(ChainEvent.checkpoint, this.onCheckpoint);
78
+ this.signal.addEventListener("abort", () => {
79
+ this.chain.emitter.off(ChainEvent.forkChoiceFinalized, this.onFinalizedCheckpoint);
80
+ this.chain.emitter.off(ChainEvent.checkpoint, this.onCheckpoint);
81
+ }, { once: true });
82
+ }
83
+ }
84
+ async init() {
85
+ if (this.opts.pruneHistory) {
86
+ // prune ALL stale data before starting
87
+ this.logger.info("Pruning historical data");
88
+ await callFnWhenAwait(pruneHistory(this.chain.config, this.db, this.logger, this.metrics, this.opts.anchorState.finalizedCheckpoint.epoch, this.chain.clock.currentEpoch), () => this.logger.info("Still pruning historical data, please wait..."), 30_000, this.signal);
89
+ }
90
+ this.historicalStateRegen = await HistoricalStateRegen.init({
91
+ opts: {
92
+ genesisTime: this.chain.clock.genesisTime,
93
+ dbLocation: this.opts.dbName,
94
+ },
95
+ config: this.chain.config,
96
+ metrics: this.metrics,
97
+ logger: this.logger,
98
+ signal: this.signal,
99
+ });
100
+ }
101
+ async close() {
102
+ await this.historicalStateRegen?.close();
103
+ }
104
+ async scrapeMetrics() {
105
+ return this.historicalStateRegen?.scrapeMetrics() ?? "";
106
+ }
107
+ async getHistoricalStateBySlot(slot) {
108
+ const finalizedBlock = this.chain.forkChoice.getFinalizedBlock();
109
+ if (slot >= finalizedBlock.slot) {
110
+ return null;
111
+ }
112
+ // request for finalized state using historical state regen
113
+ const stateSerialized = await this.historicalStateRegen?.getHistoricalState(slot);
114
+ if (!stateSerialized) {
115
+ return null;
116
+ }
117
+ return { state: stateSerialized, executionOptimistic: false, finalized: true };
118
+ }
119
+ /**
120
+ * Archive latest finalized state
121
+ * */
122
+ async persistToDisk() {
123
+ return this.statesArchiverStrategy.archiveState(this.chain.forkChoice.getFinalizedCheckpoint());
124
+ }
125
+ }
126
+ //# sourceMappingURL=archiveStore.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"archiveStore.js","sourceRoot":"","sources":["../../../src/chain/archiveStore/archiveStore.ts"],"names":[],"mappings":"AAGA,OAAO,EAAC,eAAe,EAAC,MAAM,iBAAiB,CAAC;AAGhD,OAAO,EAAC,YAAY,EAAC,MAAM,2BAA2B,CAAC;AACvD,OAAO,EAAC,UAAU,EAAC,MAAM,eAAe,CAAC;AAEzC,OAAO,EAAC,yCAAyC,EAAC,MAAM,gBAAgB,CAAC;AACzE,OAAO,EAAC,oBAAoB,EAAC,MAAM,2CAA2C,CAAC;AAC/E,OAAO,EAAC,WAAW,EAAyC,MAAM,gBAAgB,CAAC;AACnF,OAAO,EAAC,6BAA6B,EAAC,MAAM,+CAA+C,CAAC;AAC5F,OAAO,EAAC,aAAa,EAAC,MAAM,0BAA0B,CAAC;AACvD,OAAO,EAAC,YAAY,EAAC,MAAM,yBAAyB,CAAC;AACrD,OAAO,EAAC,mBAAmB,EAAC,MAAM,gCAAgC,CAAC;AAWnE;;;GAGG;AACH,MAAM,OAAO,YAAY;IAgBvB,YAAY,OAA4B,EAAE,IAA0B,EAAE,MAAmB;QA2GzF,2EAA2E;QAC3E,iBAAiB;QACjB,2EAA2E;QACnE,0BAAqB,GAAG,KAAK,EAAE,SAA4B,EAAiB,EAAE;YACpF,OAAO,IAAI,CAAC,QAAQ,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC;QACvC,CAAC,CAAC;QAEM,iBAAY,GAAG,GAAS,EAAE;YAChC,MAAM,aAAa,GAAG,IAAI,CAAC,KAAK,CAAC,UAAU,CAAC,OAAO,EAAE,CAAC,SAAS,CAAC;YAChE,IAAI,CAAC,KAAK,CAAC,KAAK,CAAC,iBAAiB,CAChC,IAAI,CAAC,KAAK,CAAC,UAAU,CAAC,sBAAsB,EAAE,CAAC,KAAK,EACpD,IAAI,CAAC,KAAK,CAAC,UAAU,CAAC,sBAAsB,EAAE,CAAC,KAAK,EACpD,aAAa,CACd,CAAC;YAEF,IAAI,CAAC,sBAAsB,CAAC,YAAY,CAAC,aAAa,EAAE,IAAI,CAAC,OAAO,CAAC,CAAC,KAAK,CAAC,CAAC,GAAG,EAAE,EAAE;gBAClF,IAAI,CAAC,MAAM,CAAC,KAAK,CAAC,4BAA4B,EAAE,EAAC,WAAW,EAAE,IAAI,CAAC,WAAW,EAAC,EAAE,GAAG,CAAC,CAAC;YACxF,CAAC,CAAC,CAAC;QACL,CAAC,CAAC;QAEM,+BAA0B,GAAG,KAAK,EAAE,SAA4B,EAAiB,EAAE;YACzF,IAAI,CAAC;gBACH,MAAM,cAAc,GAAG,SAAS,CAAC,KAAK,CAAC;gBACvC,IAAI,CAAC,MAAM,CAAC,OAAO,CAAC,uCAAuC,EAAE,EAAC,KAAK,EAAE,cAAc,EAAE,OAAO,EAAE,SAAS,CAAC,OAAO,EAAC,CAAC,CAAC;gBAClH,MAAM,aAAa,CACjB,IAAI,CAAC,KAAK,CAAC,MAAM,EACjB,IAAI,CAAC,EAAE,EACP,IAAI,CAAC,KAAK,CAAC,UAAU,EACrB,IAAI,CAAC,KAAK,CAAC,iBAAiB,EAC5B,IAAI,CAAC,MAAM,EACX,SAAS,EACT,IAAI,CAAC,KAAK,CAAC,KAAK,CAAC,YAAY,EAC7B,IAAI,CAAC,iBAAiB,CACvB,CAAC;gBACF,IAAI,IAAI,CAAC,IAAI,CAAC,YAAY,EAAE,CAAC;oBAC3B,MAAM,YAAY,CAChB,IAAI,CAAC,KAAK,CAAC,MAAM,EACjB,IAAI,CAAC,EAAE,EACP,IAAI,CAAC,MAAM,EACX,IAAI,CAAC,OAAO,EACZ,cAAc,EACd,IAAI,CAAC,KAAK,CAAC,KAAK,CAAC,YAAY,CAC9B,CAAC;gBACJ,CAAC;gBAED,IAAI,CAAC,aAAa,GAAG,SAAS,CAAC;gBAE/B,MAAM,IAAI,CAAC,sBAAsB,CAAC,qBAAqB,CAAC,SAAS,EAAE,IAAI,CAAC,OAAO,CAAC,CAAC;gBAEjF,8DAA8D;gBAC9D,MAAM,IAAI,CAAC,sBAAsB,CAAC,iBAAiB,CAAC,SAAS,EAAE,IAAI,CAAC,OAAO,CAAC,CAAC;gBAE7E,IAAI,CAAC,KAAK,CAAC,KAAK,CAAC,gBAAgB,CAAC,cAAc,CAAC,CAAC;gBAElD,qCAAqC;gBACrC,MAAM,YAAY,GAAG,IAAI,CAAC,KAAK,CAAC,UAAU,CAAC,KAAK,CAAC,SAAS,CAAC,OAAO,CAAC,CAAC;gBACpE,MAAM,mBAAmB,CAAC,EAAC,KAAK,EAAE,IAAI,CAAC,KAAK,EAAE,EAAE,EAAE,IAAI,CAAC,EAAE,EAAE,MAAM,EAAE,IAAI,CAAC,MAAM,EAAC,EAAE,SAAS,CAAC,CAAC;gBAE5F,IAAI,CAAC,MAAM,CAAC,OAAO,CAAC,wCAAwC,EAAE;oBAC5D,KAAK,EAAE,cAAc;oBACrB,OAAO,EAAE,SAAS,CAAC,OAAO;oBAC1B,YAAY,EAAE,YAAY,CAAC,MAAM;iBAClC,CAAC,CAAC;YACL,CAAC;YAAC,OAAO,CAAC,EAAE,CAAC;gBACX,IAAI,CAAC,MAAM,CAAC,KAAK,CAAC,uCAAuC,EAAE,EAAC,KAAK,EAAE,SAAS,CAAC,KAAK,EAAC,EAAE,CAAU,CAAC,CAAC;YACnG,CAAC;QACH,CAAC,CAAC;QA5KA,IAAI,CAAC,KAAK,GAAG,OAAO,CAAC,KAAK,CAAC;QAC3B,IAAI,CAAC,EAAE,GAAG,OAAO,CAAC,EAAE,CAAC;QACrB,IAAI,CAAC,MAAM,GAAG,OAAO,CAAC,MAAM,CAAC;QAC7B,IAAI,CAAC,OAAO,GAAG,OAAO,CAAC,OAAO,CAAC;QAC/B,IAAI,CAAC,IAAI,GAAG,IAAI,CAAC;QACjB,IAAI,CAAC,MAAM,GAAG,MAAM,CAAC;QACrB,IAAI,CAAC,WAAW,GAAG,IAAI,CAAC,WAAW,CAAC;QACpC,IAAI,CAAC,iBAAiB,GAAG,IAAI,CAAC,iBAAiB,CAAC;QAChD,IAAI,CAAC,aAAa,GAAG,IAAI,CAAC,KAAK,CAAC,UAAU,CAAC,sBAAsB,EAAE,CAAC;QAEpE,IAAI,CAAC,QAAQ,GAAG,IAAI,YAAY,CAA4B,IAAI,CAAC,0BAA0B,EAAE;YAC3F,SAAS,EAAE,yCAAyC;YACpD,MAAM;SACP,CAAC,CAAC;QAEH,IAAI,IAAI,CAAC,WAAW,KAAK,WAAW,CAAC,SAAS,EAAE,CAAC;YAC/C,IAAI,CAAC,sBAAsB,GAAG,IAAI,6BAA6B,CAC7D,IAAI,CAAC,KAAK,CAAC,KAAK,EAChB,IAAI,CAAC,EAAE,EACP,IAAI,CAAC,MAAM,EACX,IAAI,EACJ,IAAI,CAAC,KAAK,CAAC,UAAU,CACtB,CAAC;QACJ,CAAC;aAAM,CAAC;YACN,MAAM,IAAI,KAAK,CAAC,2BAA2B,IAAI,CAAC,WAAW,4BAA4B,CAAC,CAAC;QAC3F,CAAC;QAED,IAAI,CAAC,IAAI,CAAC,0BAA0B,EAAE,CAAC;YACrC,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,EAAE,CAAC,UAAU,CAAC,mBAAmB,EAAE,IAAI,CAAC,qBAAqB,CAAC,CAAC;YAClF,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,EAAE,CAAC,UAAU,CAAC,UAAU,EAAE,IAAI,CAAC,YAAY,CAAC,CAAC;YAEhE,IAAI,CAAC,MAAM,CAAC,gBAAgB,CAC1B,OAAO,EACP,GAAG,EAAE;gBACH,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,GAAG,CAAC,UAAU,CAAC,mBAAmB,EAAE,IAAI,CAAC,qBAAqB,CAAC,CAAC;gBACnF,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,GAAG,CAAC,UAAU,CAAC,UAAU,EAAE,IAAI,CAAC,YAAY,CAAC,CAAC;YACnE,CAAC,EACD,EAAC,IAAI,EAAE,IAAI,EAAC,CACb,CAAC;QACJ,CAAC;IACH,CAAC;IAED,KAAK,CAAC,IAAI;QACR,IAAI,IAAI,CAAC,IAAI,CAAC,YAAY,EAAE,CAAC;YAC3B,uCAAuC;YACvC,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,yBAAyB,CAAC,CAAC;YAC5C,MAAM,eAAe,CACnB,YAAY,CACV,IAAI,CAAC,KAAK,CAAC,MAAM,EACjB,IAAI,CAAC,EAAE,EACP,IAAI,CAAC,MAAM,EACX,IAAI,CAAC,OAAO,EACZ,IAAI,CAAC,IAAI,CAAC,WAAW,CAAC,mBAAmB,CAAC,KAAK,EAC/C,IAAI,CAAC,KAAK,CAAC,KAAK,CAAC,YAAY,CAC9B,EACD,GAAG,EAAE,CAAC,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,+CAA+C,CAAC,EACvE,MAAM,EACN,IAAI,CAAC,MAAM,CACZ,CAAC;QACJ,CAAC;QAED,IAAI,CAAC,oBAAoB,GAAG,MAAM,oBAAoB,CAAC,IAAI,CAAC;YAC1D,IAAI,EAAE;gBACJ,WAAW,EAAE,IAAI,CAAC,KAAK,CAAC,KAAK,CAAC,WAAW;gBACzC,UAAU,EAAE,IAAI,CAAC,IAAI,CAAC,MAAM;aAC7B;YACD,MAAM,EAAE,IAAI,CAAC,KAAK,CAAC,MAAM;YACzB,OAAO,EAAE,IAAI,CAAC,OAAO;YACrB,MAAM,EAAE,IAAI,CAAC,MAAM;YACnB,MAAM,EAAE,IAAI,CAAC,MAAM;SACpB,CAAC,CAAC;IACL,CAAC;IAED,KAAK,CAAC,KAAK;QACT,MAAM,IAAI,CAAC,oBAAoB,EAAE,KAAK,EAAE,CAAC;IAC3C,CAAC;IAED,KAAK,CAAC,aAAa;QACjB,OAAO,IAAI,CAAC,oBAAoB,EAAE,aAAa,EAAE,IAAI,EAAE,CAAC;IAC1D,CAAC;IAED,KAAK,CAAC,wBAAwB,CAC5B,IAAY;QAEZ,MAAM,cAAc,GAAG,IAAI,CAAC,KAAK,CAAC,UAAU,CAAC,iBAAiB,EAAE,CAAC;QAEjE,IAAI,IAAI,IAAI,cAAc,CAAC,IAAI,EAAE,CAAC;YAChC,OAAO,IAAI,CAAC;QACd,CAAC;QAED,2DAA2D;QAC3D,MAAM,eAAe,GAAG,MAAM,IAAI,CAAC,oBAAoB,EAAE,kBAAkB,CAAC,IAAI,CAAC,CAAC;QAClF,IAAI,CAAC,eAAe,EAAE,CAAC;YACrB,OAAO,IAAI,CAAC;QACd,CAAC;QAED,OAAO,EAAC,KAAK,EAAE,eAAe,EAAE,mBAAmB,EAAE,KAAK,EAAE,SAAS,EAAE,IAAI,EAAC,CAAC;IAC/E,CAAC;IAED;;SAEK;IACL,KAAK,CAAC,aAAa;QACjB,OAAO,IAAI,CAAC,sBAAsB,CAAC,YAAY,CAAC,IAAI,CAAC,KAAK,CAAC,UAAU,CAAC,sBAAsB,EAAE,CAAC,CAAC;IAClG,CAAC;CAqEF"}
@@ -0,0 +1,4 @@
1
+ import { ArchiveMode } from "./interface.js";
2
+ export declare const DEFAULT_ARCHIVE_MODE = ArchiveMode.Frequency;
3
+ export declare const PROCESS_FINALIZED_CHECKPOINT_QUEUE_LENGTH = 256;
4
+ //# sourceMappingURL=constants.d.ts.map
@@ -0,0 +1,4 @@
1
+ import { ArchiveMode } from "./interface.js";
2
+ export const DEFAULT_ARCHIVE_MODE = ArchiveMode.Frequency;
3
+ export const PROCESS_FINALIZED_CHECKPOINT_QUEUE_LENGTH = 256;
4
+ //# sourceMappingURL=constants.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"constants.js","sourceRoot":"","sources":["../../../src/chain/archiveStore/constants.ts"],"names":[],"mappings":"AAAA,OAAO,EAAC,WAAW,EAAC,MAAM,gBAAgB,CAAC;AAE3C,MAAM,CAAC,MAAM,oBAAoB,GAAG,WAAW,CAAC,SAAS,CAAC;AAE1D,MAAM,CAAC,MAAM,yCAAyC,GAAG,GAAG,CAAC"}
@@ -1,7 +1,7 @@
1
1
  import { PubkeyIndexMap } from "@chainsafe/pubkey-index-map";
2
2
  import { BeaconConfig } from "@lodestar/config";
3
3
  import { BeaconStateAllForks, CachedBeaconStateAllForks } from "@lodestar/state-transition";
4
- import { IBeaconDb } from "../../db/index.js";
4
+ import { IBeaconDb } from "../../../db/index.js";
5
5
  import { HistoricalStateRegenMetrics } from "./types.js";
6
6
  /**
7
7
  * Populate a PubkeyIndexMap with any new entries based on a BeaconState
@@ -0,0 +1 @@
1
+ {"version":3,"file":"getHistoricalState.js","sourceRoot":"","sources":["../../../../src/chain/archiveStore/historicalState/getHistoricalState.ts"],"names":[],"mappings":"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"}
@@ -12,4 +12,4 @@ export declare class HistoricalStateRegen implements HistoricalStateWorkerApi {
12
12
  close(): Promise<void>;
13
13
  getHistoricalState(slot: number): Promise<Uint8Array>;
14
14
  }
15
- //# sourceMappingURL=index.d.ts.map
15
+ //# sourceMappingURL=historicalStateRegen.d.ts.map
@@ -2,7 +2,7 @@ import path from "node:path";
2
2
  import { Thread, Worker, spawn } from "@chainsafe/threads";
3
3
  import { chainConfigToJson } from "@lodestar/config";
4
4
  // Worker constructor consider the path relative to the current working directory
5
- const WORKER_DIR = process.env.NODE_ENV === "test" ? "../../../lib/chain/historicalState" : "./";
5
+ const WORKER_DIR = process.env.NODE_ENV === "test" ? "../../../../lib/chain/archiveStore/historicalState" : "./";
6
6
  /**
7
7
  * HistoricalStateRegen limits the damage from recreating historical states
8
8
  * by running regen in a separate worker thread.
@@ -47,4 +47,4 @@ export class HistoricalStateRegen {
47
47
  return this.api.getHistoricalState(slot);
48
48
  }
49
49
  }
50
- //# sourceMappingURL=index.js.map
50
+ //# sourceMappingURL=historicalStateRegen.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"historicalStateRegen.js","sourceRoot":"","sources":["../../../../src/chain/archiveStore/historicalState/historicalStateRegen.ts"],"names":[],"mappings":"AAAA,OAAO,IAAI,MAAM,WAAW,CAAC;AAC7B,OAAO,EAAe,MAAM,EAAE,MAAM,EAAE,KAAK,EAAC,MAAM,oBAAoB,CAAC;AACvE,OAAO,EAAC,iBAAiB,EAAC,MAAM,kBAAkB,CAAC;AASnD,iFAAiF;AACjF,MAAM,UAAU,GAAG,OAAO,CAAC,GAAG,CAAC,QAAQ,KAAK,MAAM,CAAC,CAAC,CAAC,oDAAoD,CAAC,CAAC,CAAC,IAAI,CAAC;AAEjH;;;GAGG;AACH,MAAM,OAAO,oBAAoB;IAI/B,YAAY,OAAoC;QAC9C,IAAI,CAAC,GAAG,GAAG,OAAO,CAAC,GAAG,CAAC;QACvB,IAAI,CAAC,MAAM,GAAG,OAAO,CAAC,MAAM,CAAC;QAC7B,OAAO,CAAC,MAAM,EAAE,gBAAgB,CAAC,OAAO,EAAE,GAAG,EAAE,CAAC,IAAI,CAAC,KAAK,EAAE,EAAE,EAAC,IAAI,EAAE,IAAI,EAAC,CAAC,CAAC;IAC9E,CAAC;IACD,MAAM,CAAC,KAAK,CAAC,IAAI,CAAC,OAAwC;QACxD,MAAM,UAAU,GAA8B;YAC5C,eAAe,EAAE,iBAAiB,CAAC,OAAO,CAAC,MAAM,CAAC;YAClD,qBAAqB,EAAE,OAAO,CAAC,MAAM,CAAC,qBAAqB;YAC3D,WAAW,EAAE,OAAO,CAAC,IAAI,CAAC,WAAW;YACrC,cAAc,EAAE,CAAC;YACjB,SAAS,EAAE,EAAE;YACb,UAAU,EAAE,OAAO,CAAC,IAAI,CAAC,UAAU;YACnC,cAAc,EAAE,OAAO,CAAC,OAAO,CAAC,OAAO,CAAC;YACxC,UAAU,EAAE,OAAO,CAAC,MAAM,CAAC,MAAM,EAAE;SACpC,CAAC;QAEF,MAAM,MAAM,GAAG,IAAI,MAAM,CAAC,IAAI,CAAC,IAAI,CAAC,UAAU,EAAE,WAAW,CAAC,EAAE;YAC5D,UAAU;SACgC,CAAC,CAAC;QAE9C,MAAM,GAAG,GAAG,MAAM,KAAK,CAA2B,MAAM,EAAE;YACxD,0FAA0F;YAC1F,8FAA8F;YAC9F,OAAO,EAAE,CAAC,GAAG,EAAE,GAAG,IAAI;SACvB,CAAC,CAAC;QAEH,OAAO,IAAI,oBAAoB,CAAC,EAAC,GAAG,OAAO,EAAE,GAAG,EAAC,CAAC,CAAC;IACrD,CAAC;IAED,KAAK,CAAC,aAAa;QACjB,OAAO,IAAI,CAAC,GAAG,CAAC,aAAa,EAAE,CAAC;IAClC,CAAC;IAED,KAAK,CAAC,KAAK;QACT,MAAM,IAAI,CAAC,GAAG,CAAC,KAAK,EAAE,CAAC;QACvB,IAAI,CAAC,MAAM,CAAC,KAAK,CAAC,qCAAqC,CAAC,CAAC;QACzD,MAAM,MAAM,CAAC,SAAS,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;QACjC,IAAI,CAAC,MAAM,CAAC,KAAK,CAAC,oCAAoC,CAAC,CAAC;IAC1D,CAAC;IAED,KAAK,CAAC,kBAAkB,CAAC,IAAY;QACnC,OAAO,IAAI,CAAC,GAAG,CAAC,kBAAkB,CAAC,IAAI,CAAC,CAAC;IAC3C,CAAC;CACF"}
@@ -3,7 +3,7 @@ import { BeaconConfig } from "@lodestar/config";
3
3
  import { LoggerNode, LoggerNodeOpts } from "@lodestar/logger/node";
4
4
  import { BeaconStateTransitionMetrics } from "@lodestar/state-transition";
5
5
  import { Gauge, Histogram } from "@lodestar/utils";
6
- import { Metrics } from "../../metrics/index.js";
6
+ import { Metrics } from "../../../metrics/index.js";
7
7
  export type HistoricalStateRegenInitModules = {
8
8
  opts: {
9
9
  genesisTime: number;
@@ -0,0 +1 @@
1
+ {"version":3,"file":"types.js","sourceRoot":"","sources":["../../../../src/chain/archiveStore/historicalState/types.ts"],"names":[],"mappings":"AAsCA,MAAM,CAAN,IAAY,cAIX;AAJD,WAAY,cAAc;IACxB,0CAAwB,CAAA;IACxB,yDAAuC,CAAA;IACvC,sDAAoC,CAAA;AACtC,CAAC,EAJW,cAAc,KAAd,cAAc,QAIzB"}
@@ -4,9 +4,9 @@ import { Transfer, expose } from "@chainsafe/threads/worker";
4
4
  import { chainConfigFromJson, createBeaconConfig } from "@lodestar/config";
5
5
  import { LevelDbController } from "@lodestar/db";
6
6
  import { getNodeLogger } from "@lodestar/logger/node";
7
- import { BeaconDb } from "../../db/index.js";
8
- import { RegistryMetricCreator, collectNodeJSMetrics } from "../../metrics/index.js";
9
- import { JobFnQueue } from "../../util/queue/fnQueue.js";
7
+ import { BeaconDb } from "../../../db/index.js";
8
+ import { RegistryMetricCreator, collectNodeJSMetrics } from "../../../metrics/index.js";
9
+ import { JobFnQueue } from "../../../util/queue/fnQueue.js";
10
10
  import { getHistoricalState } from "./getHistoricalState.js";
11
11
  // most of this setup copied from networkCoreWorker.ts
12
12
  const workerData = worker.workerData;
@@ -0,0 +1 @@
1
+ {"version":3,"file":"worker.js","sourceRoot":"","sources":["../../../../src/chain/archiveStore/historicalState/worker.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,4 @@
1
+ export * from "./archiveStore.js";
2
+ export * from "./interface.js";
3
+ export * from "./constants.js";
4
+ //# sourceMappingURL=index.d.ts.map
@@ -0,0 +1,4 @@
1
+ export * from "./archiveStore.js";
2
+ export * from "./interface.js";
3
+ export * from "./constants.js";
4
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/chain/archiveStore/index.ts"],"names":[],"mappings":"AAAA,cAAc,mBAAmB,CAAC;AAClC,cAAc,gBAAgB,CAAC;AAC/B,cAAc,gBAAgB,CAAC"}
@@ -1,10 +1,10 @@
1
1
  import { CheckpointWithHex } from "@lodestar/fork-choice";
2
2
  import { RootHex } from "@lodestar/types";
3
3
  import { Metrics } from "../../metrics/metrics.js";
4
- export declare enum StateArchiveMode {
4
+ export declare enum ArchiveMode {
5
5
  Frequency = "frequency"
6
6
  }
7
- export interface StatesArchiverOpts {
7
+ export interface StatesArchiveOpts {
8
8
  /**
9
9
  * Minimum number of epochs between archived states
10
10
  */
@@ -12,9 +12,9 @@ export interface StatesArchiverOpts {
12
12
  /**
13
13
  * Strategy to store archive states
14
14
  */
15
- stateArchiveMode: StateArchiveMode;
15
+ archiveMode: ArchiveMode;
16
16
  }
17
- export type ArchiverOpts = StatesArchiverOpts & {
17
+ export type ArchiveStoreOpts = StatesArchiveOpts & {
18
18
  disableArchiveOnCheckpoint?: boolean;
19
19
  archiveBlobEpochs?: number;
20
20
  pruneHistory?: boolean;
@@ -38,4 +38,30 @@ export interface StateArchiveStrategy {
38
38
  maybeArchiveState(finalized: CheckpointWithHex, metrics?: Metrics | null): Promise<void>;
39
39
  archiveState(finalized: CheckpointWithHex, metrics?: Metrics | null): Promise<void>;
40
40
  }
41
+ export interface IArchiveStore {
42
+ /**
43
+ * Initialize archive store and load any worker required
44
+ */
45
+ init(): Promise<void>;
46
+ /**
47
+ * Cleanup and close any worker
48
+ */
49
+ close(): Promise<void>;
50
+ /**
51
+ * Scrape metrics from the archive store
52
+ */
53
+ scrapeMetrics(): Promise<string>;
54
+ /**
55
+ * Get historical state by slot
56
+ */
57
+ getHistoricalStateBySlot(slot: number): Promise<{
58
+ state: Uint8Array;
59
+ executionOptimistic: boolean;
60
+ finalized: boolean;
61
+ } | null>;
62
+ /**
63
+ * Archive latest finalized state
64
+ */
65
+ persistToDisk(): Promise<void>;
66
+ }
41
67
  //# sourceMappingURL=interface.d.ts.map
@@ -0,0 +1,8 @@
1
+ export var ArchiveMode;
2
+ (function (ArchiveMode) {
3
+ ArchiveMode["Frequency"] = "frequency";
4
+ // New strategy to be implemented
5
+ // WIP: https://github.com/ChainSafe/lodestar/pull/7005
6
+ // Differential = "diff",
7
+ })(ArchiveMode || (ArchiveMode = {}));
8
+ //# sourceMappingURL=interface.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"interface.js","sourceRoot":"","sources":["../../../src/chain/archiveStore/interface.ts"],"names":[],"mappings":"AAIA,MAAM,CAAN,IAAY,WAKX;AALD,WAAY,WAAW;IACrB,sCAAuB,CAAA;IACvB,iCAAiC;IACjC,uDAAuD;IACvD,yBAAyB;AAC3B,CAAC,EALW,WAAW,KAAX,WAAW,QAKtB"}
@@ -5,7 +5,7 @@ import { IBeaconDb } from "../../../db/index.js";
5
5
  import { Metrics } from "../../../metrics/metrics.js";
6
6
  import { BufferPool } from "../../../util/bufferPool.js";
7
7
  import { IStateRegenerator } from "../../regen/interface.js";
8
- import { StateArchiveStrategy, StatesArchiverOpts } from "../interface.js";
8
+ import { StateArchiveStrategy, StatesArchiveOpts } from "../interface.js";
9
9
  /**
10
10
  * Minimum number of epochs between single temp archived states
11
11
  * These states will be pruned once a new state is persisted
@@ -22,7 +22,7 @@ export declare class FrequencyStateArchiveStrategy implements StateArchiveStrate
22
22
  private readonly logger;
23
23
  private readonly opts;
24
24
  private readonly bufferPool?;
25
- constructor(regen: IStateRegenerator, db: IBeaconDb, logger: Logger, opts: StatesArchiverOpts, bufferPool?: (BufferPool | null) | undefined);
25
+ constructor(regen: IStateRegenerator, db: IBeaconDb, logger: Logger, opts: StatesArchiveOpts, bufferPool?: (BufferPool | null) | undefined);
26
26
  onFinalizedCheckpoint(_finalized: CheckpointWithHex, _metrics?: Metrics | null): Promise<void>;
27
27
  onCheckpoint(_stateRoot: RootHex, _metrics?: Metrics | null): Promise<void>;
28
28
  /**
@@ -0,0 +1 @@
1
+ {"version":3,"file":"frequencyStateArchiveStrategy.js","sourceRoot":"","sources":["../../../../src/chain/archiveStore/strategies/frequencyStateArchiveStrategy.ts"],"names":[],"mappings":"AACA,OAAO,EAAC,eAAe,EAAC,MAAM,kBAAkB,CAAC;AACjD,OAAO,EAAC,kBAAkB,EAAE,uBAAuB,EAAC,MAAM,4BAA4B,CAAC;AAKvF,OAAO,EAAC,WAAW,EAAa,MAAM,6BAA6B,CAAC;AACpE,OAAO,EAAC,qBAAqB,EAAC,MAAM,4BAA4B,CAAC;AAEjE,OAAO,EAAC,cAAc,EAAC,MAAM,yBAAyB,CAAC;AAGvD;;;GAGG;AACH,MAAM,CAAC,MAAM,+BAA+B,GAAG,EAAE,CAAC;AAElD;;;;GAIG;AACH,MAAM,OAAO,6BAA6B;IACxC,YACmB,KAAwB,EACxB,EAAa,EACb,MAAc,EACd,IAAuB,EACvB,UAA8B;QAJ9B,UAAK,GAAL,KAAK,CAAmB;QACxB,OAAE,GAAF,EAAE,CAAW;QACb,WAAM,GAAN,MAAM,CAAQ;QACd,SAAI,GAAJ,IAAI,CAAmB;QACvB,eAAU,GAAV,UAAU,CAAoB;IAC9C,CAAC;IAEJ,KAAK,CAAC,qBAAqB,CAAC,UAA6B,EAAE,QAAyB,IAAkB,CAAC;IACvG,KAAK,CAAC,YAAY,CAAC,UAAmB,EAAE,QAAyB,IAAkB,CAAC;IAEpF;;;;;;;;;;;OAWG;IACH,KAAK,CAAC,iBAAiB,CAAC,SAA4B,EAAE,OAAwB;QAC5E,MAAM,cAAc,GAAG,MAAM,IAAI,CAAC,EAAE,CAAC,YAAY,CAAC,OAAO,EAAE,CAAC;QAC5D,MAAM,eAAe,GAAG,kBAAkB,CAAC,cAAc,IAAI,CAAC,CAAC,CAAC;QAChE,MAAM,EAAC,0BAA0B,EAAC,GAAG,IAAI,CAAC,IAAI,CAAC;QAE/C,IAAI,SAAS,CAAC,KAAK,GAAG,eAAe,IAAI,IAAI,CAAC,GAAG,CAAC,+BAA+B,EAAE,0BAA0B,CAAC,EAAE,CAAC;YAC/G,MAAM,IAAI,CAAC,YAAY,CAAC,SAAS,EAAE,OAAO,CAAC,CAAC;YAE5C,gDAAgD;YAChD,MAAM,QAAQ,GAAG,IAAI,CAAC,GAAG,CACvB,CAAC,EACD,CAAC,IAAI,CAAC,KAAK,CAAC,SAAS,CAAC,KAAK,GAAG,0BAA0B,CAAC,GAAG,CAAC,CAAC,GAAG,0BAA0B,CAC5F,CAAC;YAEF,MAAM,gBAAgB,GAAG,MAAM,IAAI,CAAC,EAAE,CAAC,YAAY,CAAC,IAAI,CAAC;gBACvD,EAAE,EAAE,uBAAuB,CAAC,SAAS,CAAC,KAAK,CAAC;gBAC5C,GAAG,EAAE,uBAAuB,CAAC,QAAQ,CAAC;aACvC,CAAC,CAAC;YAEH,MAAM,mBAAmB,GAAG,yBAAyB,CAAC,gBAAgB,EAAE,0BAA0B,CAAC,CAAC;YACpG,IAAI,mBAAmB,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;gBACnC,MAAM,IAAI,CAAC,EAAE,CAAC,YAAY,CAAC,WAAW,CAAC,mBAAmB,CAAC,CAAC;YAC9D,CAAC;YAED,iGAAiG;YACjG,IAAI,CAAC,MAAM,CAAC,OAAO,CAAC,0BAA0B,EAAE;gBAC9C,cAAc,EAAE,SAAS,CAAC,KAAK;gBAC/B,QAAQ;gBACR,gBAAgB,EAAE,gBAAgB,CAAC,IAAI,CAAC,GAAG,CAAC;gBAC5C,mBAAmB,EAAE,mBAAmB,CAAC,IAAI,CAAC,GAAG,CAAC;aACnD,CAAC,CAAC;QACL,CAAC;IACH,CAAC;IAED;;;OAGG;IACH,KAAK,CAAC,YAAY,CAAC,SAA4B,EAAE,OAAwB;QACvE,8EAA8E;QAC9E,MAAM,qBAAqB,GAAG,MAAM,IAAI,CAAC,KAAK,CAAC,yBAAyB,CAAC,SAAS,CAAC,CAAC;QACpF,MAAM,EAAC,OAAO,EAAC,GAAG,SAAS,CAAC;QAC5B,IAAI,CAAC,qBAAqB,EAAE,CAAC;YAC3B,MAAM,KAAK,CAAC,2DAA2D,SAAS,CAAC,KAAK,SAAS,OAAO,EAAE,CAAC,CAAC;QAC5G,CAAC;QACD,IAAI,qBAAqB,YAAY,UAAU,EAAE,CAAC;YAChD,MAAM,IAAI,GAAG,qBAAqB,CAAC,qBAAqB,CAAC,CAAC;YAC1D,MAAM,IAAI,CAAC,EAAE,CAAC,YAAY,CAAC,SAAS,CAAC,IAAI,EAAE,qBAAqB,CAAC,CAAC;YAClE,IAAI,CAAC,MAAM,CAAC,OAAO,CAAC,gCAAgC,EAAE,EAAC,KAAK,EAAE,SAAS,CAAC,KAAK,EAAE,IAAI,EAAE,IAAI,EAAE,OAAO,EAAC,CAAC,CAAC;QACvG,CAAC;aAAM,CAAC;YACN,+CAA+C;YAC/C,MAAM,KAAK,GAAG,OAAO,EAAE,sBAAsB,CAAC,UAAU,CAAC,EAAC,MAAM,EAAE,WAAW,CAAC,aAAa,EAAC,CAAC,CAAC;YAC9F,MAAM,cAAc,CAClB,qBAAqB,EACrB,WAAW,CAAC,aAAa,EACzB,CAAC,UAAU,EAAE,EAAE;gBACb,KAAK,EAAE,EAAE,CAAC;gBACV,OAAO,IAAI,CAAC,EAAE,CAAC,YAAY,CAAC,SAAS,CAAC,qBAAqB,CAAC,IAAI,EAAE,UAAU,CAAC,CAAC;YAChF,CAAC,EACD,IAAI,CAAC,UAAU,CAChB,CAAC;YACF,kFAAkF;YAClF,IAAI,CAAC,MAAM,CAAC,OAAO,CAAC,0BAA0B,EAAE;gBAC9C,KAAK,EAAE,SAAS,CAAC,KAAK;gBACtB,IAAI,EAAE,qBAAqB,CAAC,IAAI;gBAChC,IAAI,EAAE,OAAO;aACd,CAAC,CAAC;QACL,CAAC;IACH,CAAC;CACF;AAED;;GAEG;AACH,MAAM,UAAU,yBAAyB,CAAC,gBAAwB,EAAE,kBAAyB;IAC3F,MAAM,iBAAiB,GAAG,kBAAkB,GAAG,eAAe,CAAC;IAC/D,MAAM,mBAAmB,GAAG,IAAI,GAAG,EAAU,CAAC;IAC9C,MAAM,kBAAkB,GAAG,IAAI,GAAG,EAAU,CAAC;IAE7C,KAAK,MAAM,IAAI,IAAI,gBAAgB,EAAE,CAAC;QACpC,MAAM,QAAQ,GAAG,IAAI,CAAC,KAAK,CAAC,IAAI,GAAG,iBAAiB,CAAC,CAAC;QACtD,IAAI,mBAAmB,CAAC,GAAG,CAAC,QAAQ,CAAC,EAAE,CAAC;YACtC,kBAAkB,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC;QAC/B,CAAC;aAAM,CAAC;YACN,mBAAmB,CAAC,GAAG,CAAC,QAAQ,CAAC,CAAC;QACpC,CAAC;IACH,CAAC;IAED,OAAO,KAAK,CAAC,IAAI,CAAC,kBAAkB,CAAC,MAAM,EAAE,CAAC,CAAC;AACjD,CAAC"}
@@ -2,8 +2,8 @@ import { ChainForkConfig } from "@lodestar/config";
2
2
  import { IForkChoice } from "@lodestar/fork-choice";
3
3
  import { Epoch, RootHex, Slot } from "@lodestar/types";
4
4
  import { Logger } from "@lodestar/utils";
5
- import { IBeaconDb } from "../../db/index.js";
6
- import { LightClientServer } from "../lightClient/index.js";
5
+ import { IBeaconDb } from "../../../db/index.js";
6
+ import { LightClientServer } from "../../lightClient/index.js";
7
7
  type CheckpointHex = {
8
8
  epoch: Epoch;
9
9
  rootHex: RootHex;
@@ -0,0 +1 @@
1
+ {"version":3,"file":"archiveBlocks.js","sourceRoot":"","sources":["../../../../src/chain/archiveStore/utils/archiveBlocks.ts"],"names":[],"mappings":"AAGA,OAAO,EAAC,OAAO,EAAE,eAAe,EAAC,MAAM,kBAAkB,CAAC;AAC1D,OAAO,EAAC,kBAAkB,EAAE,uBAAuB,EAAC,MAAM,4BAA4B,CAAC;AAEvF,OAAO,EAAS,OAAO,EAAE,SAAS,EAAC,MAAM,iBAAiB,CAAC;AAK3D,iCAAiC;AACjC,6EAA6E;AAC7E,gFAAgF;AAChF,MAAM,gBAAgB,GAAG,GAAG,CAAC;AAC7B,MAAM,uBAAuB,GAAG,EAAE,CAAC;AAKnC;;;;;;;;GAQG;AACH,MAAM,CAAC,KAAK,UAAU,aAAa,CACjC,MAAuB,EACvB,EAAa,EACb,UAAuB,EACvB,iBAAgD,EAChD,MAAc,EACd,mBAAkC,EAClC,YAAmB,EACnB,iBAA0B;IAE1B,gEAAgE;IAChE,gGAAgG;IAChG,MAAM,wBAAwB,GAAG,UAAU,CAAC,oBAAoB,CAAC,mBAAmB,CAAC,OAAO,CAAC,CAAC;IAC9F,MAAM,2BAA2B,GAAG,UAAU,CAAC,uBAAuB,CAAC,mBAAmB,CAAC,OAAO,CAAC,CAAC;IAEpG,mFAAmF;IACnF,MAAM,kBAAkB,GAAG,mBAAmB,CAAC,KAAK,IAAI,MAAM,CAAC,gBAAgB,CAAC;IAEhF,MAAM,4BAA4B,GAAoB,wBAAwB,CAAC,GAAG,CAAC,CAAC,KAAK,EAAE,EAAE,CAAC,CAAC;QAC7F,IAAI,EAAE,KAAK,CAAC,IAAI;QAChB,IAAI,EAAE,OAAO,CAAC,KAAK,CAAC,SAAS,CAAC;KAC/B,CAAC,CAAC,CAAC;IAEJ,IAAI,4BAA4B,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;QAC5C,MAAM,4BAA4B,CAAC,EAAE,EAAE,4BAA4B,CAAC,CAAC;QACrE,MAAM,CAAC,OAAO,CAAC,wCAAwC,EAAE;YACvD,QAAQ,EAAE,4BAA4B,CAAC,CAAC,CAAC,CAAC,IAAI;YAC9C,MAAM,EAAE,4BAA4B,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,EAAE,IAAI;YACjD,IAAI,EAAE,4BAA4B,CAAC,MAAM;SAC1C,CAAC,CAAC;QAEH,IAAI,kBAAkB,EAAE,CAAC;YACvB,MAAM,OAAO,GAAG,MAAM,kCAAkC,CAAC,MAAM,EAAE,EAAE,EAAE,4BAA4B,EAAE,YAAY,CAAC,CAAC;YACjH,MAAM,CAAC,OAAO,CAAC,OAAO,CAAC,CAAC,CAAC,8CAA8C,CAAC,CAAC,CAAC,6BAA6B,CAAC,CAAC;QAC3G,CAAC;IACH,CAAC;IAED,2BAA2B;IAC3B,sCAAsC;IAEtC,MAAM,sBAAsB,GAAG,2BAA2B,CAAC,GAAG,CAAC,CAAC,OAAO,EAAE,EAAE,CAAC,OAAO,CAAC,OAAO,CAAC,SAAS,CAAC,CAAC,CAAC;IACxG,IAAI,sBAAsB,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;QACtC,MAAM,EAAE,CAAC,KAAK,CAAC,WAAW,CAAC,sBAAsB,CAAC,CAAC;QACnD,MAAM,CAAC,OAAO,CAAC,0CAA0C,EAAE;YACzD,KAAK,EAAE,2BAA2B,CAAC,GAAG,CAAC,CAAC,OAAO,EAAE,EAAE,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC;SAC5E,CAAC,CAAC;QAEH,IAAI,kBAAkB,EAAE,CAAC;YACvB,MAAM,EAAE,CAAC,YAAY,CAAC,WAAW,CAAC,sBAAsB,CAAC,CAAC;YAC1D,MAAM,CAAC,OAAO,CAAC,8CAA8C,CAAC,CAAC;QACjE,CAAC;IACH,CAAC;IAED,uBAAuB;IACvB,6FAA6F;IAC7F,qDAAqD;IACrD,IAAI,kBAAkB,EAAE,CAAC;QACvB,IAAI,iBAAiB,KAAK,QAAQ,EAAE,CAAC;YACnC,MAAM,kBAAkB,GAAG,IAAI,CAAC,GAAG,CAAC,MAAM,CAAC,qCAAqC,EAAE,iBAAiB,IAAI,CAAC,CAAC,CAAC;YAC1G,MAAM,oBAAoB,GAAG,YAAY,GAAG,kBAAkB,CAAC;YAC/D,IAAI,oBAAoB,IAAI,MAAM,CAAC,gBAAgB,EAAE,CAAC;gBACpD,MAAM,aAAa,GAAG,MAAM,EAAE,CAAC,mBAAmB,CAAC,IAAI,CAAC,EAAC,EAAE,EAAE,uBAAuB,CAAC,oBAAoB,CAAC,EAAC,CAAC,CAAC;gBAC7G,IAAI,aAAa,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;oBAC7B,MAAM,EAAE,CAAC,mBAAmB,CAAC,WAAW,CAAC,aAAa,CAAC,CAAC;oBACxD,MAAM,CAAC,OAAO,CAAC,yCAAyC,aAAa,CAAC,CAAC,CAAC,KAAK,aAAa,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC;gBACvG,CAAC;qBAAM,CAAC;oBACN,MAAM,CAAC,OAAO,CAAC,+CAA+C,oBAAoB,EAAE,CAAC,CAAC;gBACxF,CAAC;YACH,CAAC;QACH,CAAC;aAAM,CAAC;YACN,MAAM,CAAC,OAAO,CAAC,iEAAiE,CAAC,CAAC;QACpF,CAAC;IACH,CAAC;IAED,qCAAqC;IACrC,MAAM,qCAAqC,GAAG,sBAAsB,CAAC,4BAA4B,CAAC,CAAC;IACnG,MAAM,uBAAuB,GAAiB,CAAC,GAAG,sBAAsB,CAAC,CAAC;IAC1E,KAAK,MAAM,KAAK,IAAI,qCAAqC,EAAE,CAAC;QAC1D,uBAAuB,CAAC,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC;IAC3C,CAAC;IAED,IAAI,iBAAiB,EAAE,CAAC;QACtB,MAAM,iBAAiB,CAAC,sBAAsB,CAAC,uBAAuB,CAAC,CAAC;IAC1E,CAAC;IAED,MAAM,CAAC,OAAO,CAAC,wCAAwC,EAAE;QACvD,aAAa,EAAE,wBAAwB,CAAC,MAAM;QAC9C,cAAc,EAAE,mBAAmB,CAAC,KAAK;KAC1C,CAAC,CAAC;AACL,CAAC;AAED,KAAK,UAAU,4BAA4B,CAAC,EAAa,EAAE,MAAuB;IAChF,uFAAuF;IACvF,sFAAsF;IACtF,iEAAiE;IACjE,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,MAAM,CAAC,MAAM,EAAE,CAAC,IAAI,gBAAgB,EAAE,CAAC;QACzD,MAAM,KAAK,GAAG,IAAI,CAAC,GAAG,CAAC,CAAC,GAAG,gBAAgB,EAAE,MAAM,CAAC,MAAM,CAAC,CAAC;QAC5D,MAAM,eAAe,GAAG,MAAM,CAAC,KAAK,CAAC,CAAC,EAAE,KAAK,CAAC,CAAC;QAE/C,yBAAyB;QACzB,IAAI,eAAe,CAAC,MAAM,KAAK,CAAC;YAAE,OAAO;QAEzC,kEAAkE;QAClE,MAAM,qBAAqB,GAAqC,MAAM,OAAO,CAAC,GAAG,CAC/E,eAAe,CAAC,GAAG,CAAC,KAAK,EAAE,KAAK,EAAE,EAAE;YAClC,MAAM,WAAW,GAAG,MAAM,EAAE,CAAC,KAAK,CAAC,SAAS,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC;YACzD,IAAI,CAAC,WAAW,EAAE,CAAC;gBACjB,MAAM,KAAK,CAAC,2BAA2B,KAAK,CAAC,IAAI,SAAS,SAAS,CAAC,KAAK,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;YACrF,CAAC;YACD,OAAO;gBACL,GAAG,EAAE,KAAK,CAAC,IAAI;gBACf,KAAK,EAAE,WAAW;gBAClB,IAAI,EAAE,KAAK,CAAC,IAAI;gBAChB,SAAS,EAAE,KAAK,CAAC,IAAI;gBACrB,yDAAyD;gBACzD,UAAU,EAAE,4BAA4B,CAAC,WAAW,CAAC;aACtD,CAAC;QACJ,CAAC,CAAC,CACH,CAAC;QAEF,6CAA6C;QAC7C,MAAM,OAAO,CAAC,GAAG,CAAC;YAChB,EAAE,CAAC,YAAY,CAAC,cAAc,CAAC,qBAAqB,CAAC;YACrD,EAAE,CAAC,KAAK,CAAC,WAAW,CAAC,eAAe,CAAC,GAAG,CAAC,CAAC,KAAK,EAAE,EAAE,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC;SACjE,CAAC,CAAC;IACL,CAAC;AACH,CAAC;AAED;;;GAGG;AACH,KAAK,UAAU,kCAAkC,CAC/C,MAAuB,EACvB,EAAa,EACb,MAAuB,EACvB,YAAmB;IAEnB,IAAI,MAAM,GAAG,KAAK,CAAC;IAEnB,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,MAAM,CAAC,MAAM,EAAE,CAAC,IAAI,uBAAuB,EAAE,CAAC;QAChE,MAAM,KAAK,GAAG,IAAI,CAAC,GAAG,CAAC,CAAC,GAAG,uBAAuB,EAAE,MAAM,CAAC,MAAM,CAAC,CAAC;QACnE,MAAM,eAAe,GAAG,MAAM,CAAC,KAAK,CAAC,CAAC,EAAE,KAAK,CAAC,CAAC;QAE/C,yBAAyB;QACzB,IAAI,eAAe,CAAC,MAAM,KAAK,CAAC;YAAE,OAAO,KAAK,CAAC;QAE/C,iEAAiE;QACjE,MAAM,4BAA4B,GAAiC,MAAM,OAAO,CAAC,GAAG,CAClF,eAAe;aACZ,MAAM,CAAC,CAAC,KAAK,EAAE,EAAE;YAChB,MAAM,SAAS,GAAG,KAAK,CAAC,IAAI,CAAC;YAC7B,MAAM,UAAU,GAAG,kBAAkB,CAAC,SAAS,CAAC,CAAC;YACjD,OAAO,CACL,MAAM,CAAC,UAAU,CAAC,SAAS,CAAC,IAAI,OAAO,CAAC,KAAK;gBAC7C,UAAU,IAAI,YAAY,GAAG,MAAM,CAAC,qCAAqC,CAC1E,CAAC;QACJ,CAAC,CAAC;aACD,GAAG,CAAC,KAAK,EAAE,KAAK,EAAE,EAAE;YACnB,MAAM,KAAK,GAAG,MAAM,EAAE,CAAC,YAAY,CAAC,SAAS,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC;YAC1D,IAAI,CAAC,KAAK,EAAE,CAAC;gBACX,MAAM,KAAK,CAAC,kCAAkC,KAAK,CAAC,IAAI,SAAS,SAAS,CAAC,KAAK,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;YAC5F,CAAC;YACD,OAAO,EAAC,GAAG,EAAE,KAAK,CAAC,IAAI,EAAE,KAAK,EAAE,KAAK,EAAC,CAAC;QACzC,CAAC,CAAC,CACL,CAAC;QAEF,MAAM,OAAO,GAAG,4BAA4B,CAAC,MAAM,GAAG,CAAC,CAAC;QAExD,IAAI,OAAO,EAAE,CAAC;YACZ,6CAA6C;YAC7C,MAAM,OAAO,CAAC,GAAG,CAAC;gBAChB,EAAE,CAAC,mBAAmB,CAAC,cAAc,CAAC,4BAA4B,CAAC;gBACnE,EAAE,CAAC,YAAY,CAAC,WAAW,CAAC,eAAe,CAAC,GAAG,CAAC,CAAC,KAAK,EAAE,EAAE,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC;aACxE,CAAC,CAAC;QACL,CAAC;QAED,MAAM,GAAG,MAAM,IAAI,OAAO,CAAC;IAC7B,CAAC;IAED,OAAO,MAAM,CAAC;AAChB,CAAC;AAED;;;;;;;;;;;;;;;GAeG;AACH,MAAM,UAAU,4BAA4B,CAAC,KAAiB;IAC5D,OAAO,KAAK,CAAC,KAAK,CAAC,GAAG,EAAE,GAAG,CAAC,CAAC;AAC/B,CAAC;AAED;;;;GAIG;AACH,MAAM,UAAU,sBAAsB,CAAyB,MAAW;IACxE,gDAAgD;IAChD,8CAA8C;IAC9C,4DAA4D;IAC5D,yEAAyE;IACzE,oEAAoE;IAEpE,IAAI,MAAM,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;QACtB,OAAO,EAAE,CAAC;IACZ,CAAC;IAED,MAAM,mBAAmB,GAAQ,EAAE,CAAC;IACpC,kFAAkF;IAClF,IAAI,QAAQ,GAAG,QAAQ,CAAC;IACxB,2FAA2F;IAC3F,yFAAyF;IACzF,IAAI,oBAAoB,GAAG,KAAK,CAAC;IAEjC,wDAAwD;IACxD,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,MAAM,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE,CAAC;QACvC,IAAI,YAAY,GAAG,KAAK,CAAC;QACzB,MAAM,KAAK,GAAG,MAAM,CAAC,CAAC,CAAC,CAAC;QACxB,MAAM,UAAU,GAAG,kBAAkB,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC;QAElD,IAAI,UAAU,GAAG,QAAQ,EAAE,CAAC;YAC1B,mGAAmG;YACnG,IAAI,CAAC,oBAAoB,EAAE,CAAC;gBAC1B,YAAY,GAAG,IAAI,CAAC;YACtB,CAAC;YAED,sBAAsB;YACtB,QAAQ,GAAG,UAAU,CAAC;YACtB,oBAAoB,GAAG,KAAK,CAAC;QAC/B,CAAC;QAED,sEAAsE;QACtE,IAAI,KAAK,CAAC,IAAI,GAAG,eAAe,KAAK,CAAC,EAAE,CAAC;YACvC,oBAAoB,GAAG,IAAI,CAAC;YAC5B,YAAY,GAAG,IAAI,CAAC;QACtB,CAAC;QAED,IAAI,CAAC,YAAY,EAAE,CAAC;YAClB,mBAAmB,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;QAClC,CAAC;IACH,CAAC;IAED,OAAO,mBAAmB,CAAC;AAC7B,CAAC"}
@@ -1,7 +1,7 @@
1
1
  import { ChainConfig } from "@lodestar/config";
2
2
  import { Epoch } from "@lodestar/types";
3
3
  import { Logger } from "@lodestar/utils";
4
- import { IBeaconDb } from "../../db/interface.js";
5
- import { Metrics } from "../../metrics/index.js";
4
+ import { IBeaconDb } from "../../../db/interface.js";
5
+ import { Metrics } from "../../../metrics/index.js";
6
6
  export declare function pruneHistory(config: ChainConfig, db: IBeaconDb, logger: Logger, metrics: Metrics | null | undefined, finalizedEpoch: Epoch, currentEpoch: Epoch): Promise<void>;
7
7
  //# sourceMappingURL=pruneHistory.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"pruneHistory.js","sourceRoot":"","sources":["../../../../src/chain/archiveStore/utils/pruneHistory.ts"],"names":[],"mappings":"AACA,OAAO,EAAC,uBAAuB,EAAC,MAAM,4BAA4B,CAAC;AAMnE,MAAM,CAAC,KAAK,UAAU,YAAY,CAChC,MAAmB,EACnB,EAAa,EACb,MAAc,EACd,OAAmC,EACnC,cAAqB,EACrB,YAAmB;IAEnB,MAAM,gBAAgB,GAAG,IAAI,CAAC,GAAG;IAC/B,2CAA2C;IAC3C,IAAI,CAAC,GAAG,CAAC,YAAY,GAAG,MAAM,CAAC,6BAA6B,EAAE,CAAC,CAAC;IAChE,yGAAyG;IACzG,cAAc,CACf,CAAC;IACF,MAAM,eAAe,GAAG,uBAAuB,CAAC,gBAAgB,CAAC,CAAC;IAElE,MAAM,CAAC,KAAK,CAAC,4BAA4B,EAAE;QACzC,YAAY;QACZ,cAAc;QACd,gBAAgB;KACjB,CAAC,CAAC;IAEH,MAAM,KAAK,GAAG,OAAO,EAAE,YAAY,CAAC,SAAS,CAAC,UAAU,EAAE,CAAC;IAC3D,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,GAAG,MAAM,OAAO,CAAC,GAAG,CAAC;QACzC,EAAE,CAAC,YAAY,CAAC,IAAI,CAAC,EAAC,GAAG,EAAE,CAAC,EAAE,EAAE,EAAE,eAAe,EAAC,CAAC;QACnD,EAAE,CAAC,YAAY,CAAC,IAAI,CAAC,EAAC,GAAG,EAAE,CAAC,EAAE,EAAE,EAAE,cAAc,EAAC,CAAC;KACnD,CAAC,CAAC;IACH,KAAK,EAAE,EAAE,CAAC;IAEV,MAAM,CAAC,KAAK,CAAC,iBAAiB,EAAE;QAC9B,YAAY;QACZ,aAAa,EAAE,MAAM,CAAC,MAAM;QAC5B,aAAa,EAAE,MAAM,CAAC,MAAM;KAC7B,CAAC,CAAC;IAEH,MAAM,KAAK,GAAG,OAAO,EAAE,YAAY,CAAC,SAAS,CAAC,UAAU,EAAE,CAAC;IAC3D,MAAM,OAAO,CAAC,GAAG,CAAC;QAChB,KAAK;QACL,EAAE,CAAC,YAAY,CAAC,WAAW,CAAC,MAAM,CAAC;QACnC,EAAE,CAAC,YAAY,CAAC,WAAW,CAAC,MAAM,CAAC;KACpC,CAAC,CAAC;IACH,KAAK,EAAE,EAAE,CAAC;IAEV,MAAM,CAAC,KAAK,CAAC,gBAAgB,EAAE;QAC7B,YAAY;KACb,CAAC,CAAC;IAEH,OAAO,EAAE,YAAY,CAAC,UAAU,CAAC,GAAG,EAAE,CAAC;AACzC,CAAC"}
@@ -0,0 +1,20 @@
1
+ import { CheckpointWithHex } from "@lodestar/fork-choice";
2
+ import { Logger } from "@lodestar/logger";
3
+ import { IBeaconDb } from "../../../db/interface.js";
4
+ import { IBeaconChain } from "../../interface.js";
5
+ /**
6
+ * Backfill sync relies on verified connected ranges (which are represented as key,value
7
+ * with a verified jump from a key back to value). Since the node could have progressed
8
+ * ahead from, we need to save the forward progress of this node as another backfill
9
+ * range entry, that backfill sync will use to jump back if this node is restarted
10
+ * for any reason.
11
+ * The current backfill has its own backfill entry from anchor slot to last backfilled
12
+ * slot. And this would create the entry from the current finalized slot to the anchor
13
+ * slot.
14
+ */
15
+ export declare function updateBackfillRange({ chain, db, logger }: {
16
+ chain: IBeaconChain;
17
+ db: IBeaconDb;
18
+ logger: Logger;
19
+ }, finalized: CheckpointWithHex): Promise<void>;
20
+ //# sourceMappingURL=updateBackfillRange.d.ts.map
@@ -0,0 +1,40 @@
1
+ /**
2
+ * Backfill sync relies on verified connected ranges (which are represented as key,value
3
+ * with a verified jump from a key back to value). Since the node could have progressed
4
+ * ahead from, we need to save the forward progress of this node as another backfill
5
+ * range entry, that backfill sync will use to jump back if this node is restarted
6
+ * for any reason.
7
+ * The current backfill has its own backfill entry from anchor slot to last backfilled
8
+ * slot. And this would create the entry from the current finalized slot to the anchor
9
+ * slot.
10
+ */
11
+ export async function updateBackfillRange({ chain, db, logger }, finalized) {
12
+ try {
13
+ // Mark the sequence in backfill db from finalized block's slot till anchor slot as
14
+ // filled.
15
+ const finalizedBlockFC = chain.forkChoice.getBlockHex(finalized.rootHex);
16
+ if (finalizedBlockFC && finalizedBlockFC.slot > chain.anchorStateLatestBlockSlot) {
17
+ await db.backfilledRanges.put(finalizedBlockFC.slot, chain.anchorStateLatestBlockSlot);
18
+ // Clear previously marked sequence till anchorStateLatestBlockSlot, without
19
+ // touching backfill sync process sequence which are at
20
+ // <=anchorStateLatestBlockSlot i.e. clear >anchorStateLatestBlockSlot
21
+ // and < currentSlot
22
+ const filteredSeqs = await db.backfilledRanges.entries({
23
+ gt: chain.anchorStateLatestBlockSlot,
24
+ lt: finalizedBlockFC.slot,
25
+ });
26
+ logger.debug("updated backfilledRanges", {
27
+ key: finalizedBlockFC.slot,
28
+ value: chain.anchorStateLatestBlockSlot,
29
+ });
30
+ if (filteredSeqs.length > 0) {
31
+ await db.backfilledRanges.batchDelete(filteredSeqs.map((entry) => entry.key));
32
+ logger.debug(`Forward Sync - cleaned up backfilledRanges between ${finalizedBlockFC.slot},${chain.anchorStateLatestBlockSlot}`, { seqs: JSON.stringify(filteredSeqs) });
33
+ }
34
+ }
35
+ }
36
+ catch (e) {
37
+ logger.error("Error updating backfilledRanges on finalization", { epoch: finalized.epoch }, e);
38
+ }
39
+ }
40
+ //# sourceMappingURL=updateBackfillRange.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"updateBackfillRange.js","sourceRoot":"","sources":["../../../../src/chain/archiveStore/utils/updateBackfillRange.ts"],"names":[],"mappings":"AAKA;;;;;;;;;GASG;AACH,MAAM,CAAC,KAAK,UAAU,mBAAmB,CACvC,EAAC,KAAK,EAAE,EAAE,EAAE,MAAM,EAAuD,EACzE,SAA4B;IAE5B,IAAI,CAAC;QACH,mFAAmF;QACnF,UAAU;QACV,MAAM,gBAAgB,GAAG,KAAK,CAAC,UAAU,CAAC,WAAW,CAAC,SAAS,CAAC,OAAO,CAAC,CAAC;QACzE,IAAI,gBAAgB,IAAI,gBAAgB,CAAC,IAAI,GAAG,KAAK,CAAC,0BAA0B,EAAE,CAAC;YACjF,MAAM,EAAE,CAAC,gBAAgB,CAAC,GAAG,CAAC,gBAAgB,CAAC,IAAI,EAAE,KAAK,CAAC,0BAA0B,CAAC,CAAC;YAEvF,4EAA4E;YAC5E,uDAAuD;YACvD,sEAAsE;YACtE,oBAAoB;YACpB,MAAM,YAAY,GAAG,MAAM,EAAE,CAAC,gBAAgB,CAAC,OAAO,CAAC;gBACrD,EAAE,EAAE,KAAK,CAAC,0BAA0B;gBACpC,EAAE,EAAE,gBAAgB,CAAC,IAAI;aAC1B,CAAC,CAAC;YACH,MAAM,CAAC,KAAK,CAAC,0BAA0B,EAAE;gBACvC,GAAG,EAAE,gBAAgB,CAAC,IAAI;gBAC1B,KAAK,EAAE,KAAK,CAAC,0BAA0B;aACxC,CAAC,CAAC;YACH,IAAI,YAAY,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;gBAC5B,MAAM,EAAE,CAAC,gBAAgB,CAAC,WAAW,CAAC,YAAY,CAAC,GAAG,CAAC,CAAC,KAAK,EAAE,EAAE,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,CAAC;gBAC9E,MAAM,CAAC,KAAK,CACV,sDAAsD,gBAAgB,CAAC,IAAI,IAAI,KAAK,CAAC,0BAA0B,EAAE,EACjH,EAAC,IAAI,EAAE,IAAI,CAAC,SAAS,CAAC,YAAY,CAAC,EAAC,CACrC,CAAC;YACJ,CAAC;QACH,CAAC;IACH,CAAC;IAAC,OAAO,CAAC,EAAE,CAAC;QACX,MAAM,CAAC,KAAK,CAAC,iDAAiD,EAAE,EAAC,KAAK,EAAE,SAAS,CAAC,KAAK,EAAC,EAAE,CAAU,CAAC,CAAC;IACxG,CAAC;AACH,CAAC"}
@@ -13,6 +13,7 @@ import { Metrics } from "../metrics/index.js";
13
13
  import { BufferPool } from "../util/bufferPool.js";
14
14
  import { IClock } from "../util/clock.js";
15
15
  import { SerializedCache } from "../util/serializedCache.js";
16
+ import { ArchiveStore } from "./archiveStore/archiveStore.js";
16
17
  import { CheckpointBalancesCache } from "./balancesCache.js";
17
18
  import { BeaconProposerCache } from "./beaconProposerCache.js";
18
19
  import { BlockProcessor, ImportBlockOpts } from "./blocks/index.js";
@@ -20,7 +21,6 @@ import { BlockInput } from "./blocks/types.js";
20
21
  import { IBlsVerifier } from "./bls/index.js";
21
22
  import { ChainEventEmitter } from "./emitter.js";
22
23
  import { ForkchoiceCaller } from "./forkChoice/index.js";
23
- import { HistoricalStateRegen } from "./historicalState/index.js";
24
24
  import { CommonBlockBody, IBeaconChain, ProposerPreparationData, StateGetOpts } from "./interface.js";
25
25
  import { LightClientServer } from "./lightClient/index.js";
26
26
  import { AggregatedAttestationPool, AttestationPool, OpPool, SyncCommitteeMessagePool, SyncContributionAndProofPool } from "./opPools/index.js";
@@ -56,7 +56,7 @@ export declare class BeaconChain implements IBeaconChain {
56
56
  readonly regen: QueuedStateRegenerator;
57
57
  readonly lightClientServer?: LightClientServer;
58
58
  readonly reprocessController: ReprocessController;
59
- readonly historicalStateRegen?: HistoricalStateRegen;
59
+ readonly archiveStore: ArchiveStore;
60
60
  readonly attestationPool: AttestationPool;
61
61
  readonly aggregatedAttestationPool: AggregatedAttestationPool;
62
62
  readonly syncCommitteeMessagePool: SyncCommitteeMessagePool;
@@ -144,12 +144,12 @@ export declare class BeaconChain implements IBeaconChain {
144
144
  readonly opts: IChainOptions;
145
145
  protected readonly blockProcessor: BlockProcessor;
146
146
  protected readonly db: IBeaconDb;
147
- private readonly archiver;
148
147
  private abortController;
149
148
  private processShutdownCallback;
150
- constructor(opts: IChainOptions, { config, db, dataDir, logger, processShutdownCallback, clock, metrics, anchorState, eth1, executionEngine, executionBuilder, historicalStateRegen, }: {
149
+ constructor(opts: IChainOptions, { config, db, dbName, dataDir, logger, processShutdownCallback, clock, metrics, anchorState, eth1, executionEngine, executionBuilder, }: {
151
150
  config: BeaconConfig;
152
151
  db: IBeaconDb;
152
+ dbName: string;
153
153
  dataDir: string;
154
154
  logger: Logger;
155
155
  processShutdownCallback: ProcessShutdownCallback;
@@ -160,8 +160,8 @@ export declare class BeaconChain implements IBeaconChain {
160
160
  eth1: IEth1ForBlockProduction;
161
161
  executionEngine: IExecutionEngine;
162
162
  executionBuilder?: IExecutionBuilder;
163
- historicalStateRegen?: HistoricalStateRegen;
164
163
  });
164
+ init(): Promise<void>;
165
165
  close(): Promise<void>;
166
166
  seenBlock(blockRoot: RootHex): boolean;
167
167
  regenCanAcceptWork(): boolean;