@lodestar/beacon-node 1.49.0-dev.ceea36c6f2 → 1.49.0-dev.ee3c432d85

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 (128) hide show
  1. package/lib/api/impl/beacon/pool/index.d.ts.map +1 -1
  2. package/lib/api/impl/beacon/pool/index.js +4 -2
  3. package/lib/api/impl/beacon/pool/index.js.map +1 -1
  4. package/lib/api/impl/validator/index.d.ts.map +1 -1
  5. package/lib/api/impl/validator/index.js +3 -1
  6. package/lib/api/impl/validator/index.js.map +1 -1
  7. package/lib/chain/archiveStore/archiveStore.d.ts +1 -2
  8. package/lib/chain/archiveStore/archiveStore.d.ts.map +1 -1
  9. package/lib/chain/archiveStore/archiveStore.js +0 -5
  10. package/lib/chain/archiveStore/archiveStore.js.map +1 -1
  11. package/lib/chain/archiveStore/historicalState/metrics.d.ts.map +1 -1
  12. package/lib/chain/archiveStore/historicalState/metrics.js +4 -6
  13. package/lib/chain/archiveStore/historicalState/metrics.js.map +1 -1
  14. package/lib/chain/blocks/importExecutionPayload.d.ts.map +1 -1
  15. package/lib/chain/blocks/importExecutionPayload.js +13 -0
  16. package/lib/chain/blocks/importExecutionPayload.js.map +1 -1
  17. package/lib/chain/errors/payloadAttestation.d.ts +4 -0
  18. package/lib/chain/errors/payloadAttestation.d.ts.map +1 -1
  19. package/lib/chain/errors/payloadAttestation.js +1 -0
  20. package/lib/chain/errors/payloadAttestation.js.map +1 -1
  21. package/lib/chain/options.d.ts +0 -4
  22. package/lib/chain/options.d.ts.map +1 -1
  23. package/lib/chain/options.js +0 -1
  24. package/lib/chain/options.js.map +1 -1
  25. package/lib/chain/produceBlock/computeNewStateRoot.d.ts.map +1 -1
  26. package/lib/chain/produceBlock/computeNewStateRoot.js +4 -2
  27. package/lib/chain/produceBlock/computeNewStateRoot.js.map +1 -1
  28. package/lib/chain/validation/payloadAttestationMessage.d.ts.map +1 -1
  29. package/lib/chain/validation/payloadAttestationMessage.js +8 -1
  30. package/lib/chain/validation/payloadAttestationMessage.js.map +1 -1
  31. package/lib/db/beacon.d.ts +1 -2
  32. package/lib/db/beacon.d.ts.map +1 -1
  33. package/lib/db/beacon.js +1 -3
  34. package/lib/db/beacon.js.map +1 -1
  35. package/lib/db/buckets.d.ts +0 -1
  36. package/lib/db/buckets.d.ts.map +1 -1
  37. package/lib/db/buckets.js +1 -1
  38. package/lib/db/buckets.js.map +1 -1
  39. package/lib/db/interface.d.ts +1 -2
  40. package/lib/db/interface.d.ts.map +1 -1
  41. package/lib/db/repositories/blockArchiveIndex.d.ts +2 -2
  42. package/lib/db/repositories/blockArchiveIndex.d.ts.map +1 -1
  43. package/lib/db/repositories/index.d.ts +0 -1
  44. package/lib/db/repositories/index.d.ts.map +1 -1
  45. package/lib/db/repositories/index.js +0 -1
  46. package/lib/db/repositories/index.js.map +1 -1
  47. package/lib/metrics/metrics/lodestar.d.ts +12 -11
  48. package/lib/metrics/metrics/lodestar.d.ts.map +1 -1
  49. package/lib/metrics/metrics/lodestar.js +25 -23
  50. package/lib/metrics/metrics/lodestar.js.map +1 -1
  51. package/lib/network/processor/index.d.ts +1 -1
  52. package/lib/network/processor/index.d.ts.map +1 -1
  53. package/lib/network/processor/index.js +42 -21
  54. package/lib/network/processor/index.js.map +1 -1
  55. package/lib/node/nodejs.d.ts +2 -7
  56. package/lib/node/nodejs.d.ts.map +1 -1
  57. package/lib/node/nodejs.js +2 -22
  58. package/lib/node/nodejs.js.map +1 -1
  59. package/lib/sync/interface.d.ts +1 -2
  60. package/lib/sync/interface.d.ts.map +1 -1
  61. package/lib/sync/options.d.ts +0 -6
  62. package/lib/sync/options.d.ts.map +1 -1
  63. package/lib/sync/options.js +0 -2
  64. package/lib/sync/options.js.map +1 -1
  65. package/lib/sync/types.d.ts +18 -1
  66. package/lib/sync/types.d.ts.map +1 -1
  67. package/lib/sync/types.js +19 -1
  68. package/lib/sync/types.js.map +1 -1
  69. package/lib/sync/unknownBlock.d.ts +19 -0
  70. package/lib/sync/unknownBlock.d.ts.map +1 -1
  71. package/lib/sync/unknownBlock.js +143 -2
  72. package/lib/sync/unknownBlock.js.map +1 -1
  73. package/lib/util/shuffle.d.ts +0 -4
  74. package/lib/util/shuffle.d.ts.map +1 -1
  75. package/lib/util/shuffle.js +0 -8
  76. package/lib/util/shuffle.js.map +1 -1
  77. package/package.json +15 -16
  78. package/src/api/impl/beacon/pool/index.ts +6 -2
  79. package/src/api/impl/validator/index.ts +3 -1
  80. package/src/chain/archiveStore/archiveStore.ts +0 -6
  81. package/src/chain/archiveStore/historicalState/metrics.ts +4 -7
  82. package/src/chain/blocks/importExecutionPayload.ts +14 -0
  83. package/src/chain/errors/payloadAttestation.ts +2 -0
  84. package/src/chain/options.ts +0 -5
  85. package/src/chain/produceBlock/computeNewStateRoot.ts +9 -2
  86. package/src/chain/validation/payloadAttestationMessage.ts +9 -0
  87. package/src/db/beacon.ts +0 -5
  88. package/src/db/buckets.ts +1 -1
  89. package/src/db/interface.ts +0 -3
  90. package/src/db/repositories/index.ts +0 -1
  91. package/src/metrics/metrics/lodestar.ts +34 -26
  92. package/src/network/processor/index.ts +51 -22
  93. package/src/node/nodejs.ts +0 -27
  94. package/src/sync/interface.ts +1 -2
  95. package/src/sync/options.ts +0 -8
  96. package/src/sync/types.ts +19 -1
  97. package/src/sync/unknownBlock.ts +151 -1
  98. package/src/util/shuffle.ts +0 -9
  99. package/lib/chain/archiveStore/utils/updateBackfillRange.d.ts +0 -20
  100. package/lib/chain/archiveStore/utils/updateBackfillRange.d.ts.map +0 -1
  101. package/lib/chain/archiveStore/utils/updateBackfillRange.js +0 -40
  102. package/lib/chain/archiveStore/utils/updateBackfillRange.js.map +0 -1
  103. package/lib/db/repositories/backfilledRanges.d.ts +0 -18
  104. package/lib/db/repositories/backfilledRanges.d.ts.map +0 -1
  105. package/lib/db/repositories/backfilledRanges.js +0 -26
  106. package/lib/db/repositories/backfilledRanges.js.map +0 -1
  107. package/lib/sync/backfill/backfill.d.ts +0 -169
  108. package/lib/sync/backfill/backfill.d.ts.map +0 -1
  109. package/lib/sync/backfill/backfill.js +0 -686
  110. package/lib/sync/backfill/backfill.js.map +0 -1
  111. package/lib/sync/backfill/errors.d.ts +0 -30
  112. package/lib/sync/backfill/errors.d.ts.map +0 -1
  113. package/lib/sync/backfill/errors.js +0 -15
  114. package/lib/sync/backfill/errors.js.map +0 -1
  115. package/lib/sync/backfill/index.d.ts +0 -2
  116. package/lib/sync/backfill/index.d.ts.map +0 -1
  117. package/lib/sync/backfill/index.js +0 -2
  118. package/lib/sync/backfill/index.js.map +0 -1
  119. package/lib/sync/backfill/verify.d.ts +0 -18
  120. package/lib/sync/backfill/verify.d.ts.map +0 -1
  121. package/lib/sync/backfill/verify.js +0 -36
  122. package/lib/sync/backfill/verify.js.map +0 -1
  123. package/src/chain/archiveStore/utils/updateBackfillRange.ts +0 -50
  124. package/src/db/repositories/backfilledRanges.ts +0 -29
  125. package/src/sync/backfill/backfill.ts +0 -916
  126. package/src/sync/backfill/errors.ts +0 -23
  127. package/src/sync/backfill/index.ts +0 -1
  128. package/src/sync/backfill/verify.ts +0 -58
@@ -1 +0,0 @@
1
- {"version":3,"file":"backfill.js","sourceRoot":"","sources":["../../../src/sync/backfill/backfill.ts"],"names":[],"mappings":"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"}
@@ -1,30 +0,0 @@
1
- import { PeerId } from "@libp2p/interface";
2
- import { Root } from "@lodestar/types";
3
- import { LodestarError } from "@lodestar/utils";
4
- export declare enum BackfillSyncErrorCode {
5
- /** fetched block doesn't connect to anchor block */
6
- NOT_ANCHORED = "not_anchored",
7
- /** fetched blocks are not linear */
8
- NOT_LINEAR = "not_linear",
9
- /** peer doesn't have required block by root */
10
- MISSING_BLOCK = "missing_blocks",
11
- INVALID_SIGNATURE = "invalid_proposer_signature",
12
- INTERNAL_ERROR = "backfill_internal_error"
13
- }
14
- export type BackfillSyncErrorType = {
15
- code: BackfillSyncErrorCode.NOT_ANCHORED;
16
- } | {
17
- code: BackfillSyncErrorCode.NOT_LINEAR;
18
- } | {
19
- code: BackfillSyncErrorCode.INVALID_SIGNATURE;
20
- } | {
21
- code: BackfillSyncErrorCode.MISSING_BLOCK;
22
- root: Root;
23
- peerId: PeerId;
24
- } | {
25
- code: BackfillSyncErrorCode.INTERNAL_ERROR;
26
- reason: string;
27
- };
28
- export declare class BackfillSyncError extends LodestarError<BackfillSyncErrorType> {
29
- }
30
- //# sourceMappingURL=errors.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"errors.d.ts","sourceRoot":"","sources":["../../../src/sync/backfill/errors.ts"],"names":[],"mappings":"AAAA,OAAO,EAAC,MAAM,EAAC,MAAM,mBAAmB,CAAC;AACzC,OAAO,EAAC,IAAI,EAAC,MAAM,iBAAiB,CAAC;AACrC,OAAO,EAAC,aAAa,EAAC,MAAM,iBAAiB,CAAC;AAE9C,oBAAY,qBAAqB;IAC/B,oDAAoD;IACpD,YAAY,iBAAiB;IAC7B,oCAAoC;IACpC,UAAU,eAAe;IACzB,+CAA+C;IAC/C,aAAa,mBAAmB;IAChC,iBAAiB,+BAA+B;IAChD,cAAc,4BAA4B;CAC3C;AAED,MAAM,MAAM,qBAAqB,GAC7B;IAAC,IAAI,EAAE,qBAAqB,CAAC,YAAY,CAAA;CAAC,GAC1C;IAAC,IAAI,EAAE,qBAAqB,CAAC,UAAU,CAAA;CAAC,GACxC;IAAC,IAAI,EAAE,qBAAqB,CAAC,iBAAiB,CAAA;CAAC,GAC/C;IAAC,IAAI,EAAE,qBAAqB,CAAC,aAAa,CAAC;IAAC,IAAI,EAAE,IAAI,CAAC;IAAC,MAAM,EAAE,MAAM,CAAA;CAAC,GACvE;IAAC,IAAI,EAAE,qBAAqB,CAAC,cAAc,CAAC;IAAC,MAAM,EAAE,MAAM,CAAA;CAAC,CAAC;AAEjE,qBAAa,iBAAkB,SAAQ,aAAa,CAAC,qBAAqB,CAAC;CAAG"}
@@ -1,15 +0,0 @@
1
- import { LodestarError } from "@lodestar/utils";
2
- export var BackfillSyncErrorCode;
3
- (function (BackfillSyncErrorCode) {
4
- /** fetched block doesn't connect to anchor block */
5
- BackfillSyncErrorCode["NOT_ANCHORED"] = "not_anchored";
6
- /** fetched blocks are not linear */
7
- BackfillSyncErrorCode["NOT_LINEAR"] = "not_linear";
8
- /** peer doesn't have required block by root */
9
- BackfillSyncErrorCode["MISSING_BLOCK"] = "missing_blocks";
10
- BackfillSyncErrorCode["INVALID_SIGNATURE"] = "invalid_proposer_signature";
11
- BackfillSyncErrorCode["INTERNAL_ERROR"] = "backfill_internal_error";
12
- })(BackfillSyncErrorCode || (BackfillSyncErrorCode = {}));
13
- export class BackfillSyncError extends LodestarError {
14
- }
15
- //# sourceMappingURL=errors.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"errors.js","sourceRoot":"","sources":["../../../src/sync/backfill/errors.ts"],"names":[],"mappings":"AAEA,OAAO,EAAC,aAAa,EAAC,MAAM,iBAAiB,CAAC;AAE9C,MAAM,CAAN,IAAY,qBASX;AATD,WAAY,qBAAqB;IAC/B,oDAAoD;IACpD,sDAA6B,CAAA;IAC7B,oCAAoC;IACpC,kDAAyB,CAAA;IACzB,+CAA+C;IAC/C,yDAAgC,CAAA;IAChC,yEAAgD,CAAA;IAChD,mEAA0C,CAAA;AAC5C,CAAC,EATW,qBAAqB,KAArB,qBAAqB,QAShC;AASD,MAAM,OAAO,iBAAkB,SAAQ,aAAoC;CAAG"}
@@ -1,2 +0,0 @@
1
- export * from "./backfill.js";
2
- //# sourceMappingURL=index.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/sync/backfill/index.ts"],"names":[],"mappings":"AAAA,cAAc,eAAe,CAAC"}
@@ -1,2 +0,0 @@
1
- export * from "./backfill.js";
2
- //# sourceMappingURL=index.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/sync/backfill/index.ts"],"names":[],"mappings":"AAAA,cAAc,eAAe,CAAC"}
@@ -1,18 +0,0 @@
1
- import { BeaconConfig } from "@lodestar/config";
2
- import { Root, SignedBeaconBlock, Slot } from "@lodestar/types";
3
- import { IBlsVerifier } from "../../chain/bls/index.js";
4
- import { BackfillSyncErrorCode } from "./errors.js";
5
- export type BackfillBlockHeader = {
6
- slot: Slot;
7
- root: Root;
8
- };
9
- export type BackfillBlock = BackfillBlockHeader & {
10
- block: SignedBeaconBlock;
11
- };
12
- export declare function verifyBlockSequence(config: BeaconConfig, blocks: SignedBeaconBlock[], anchorRoot: Root): {
13
- nextAnchor: BackfillBlock | null;
14
- verifiedBlocks: SignedBeaconBlock[];
15
- error?: BackfillSyncErrorCode.NOT_LINEAR;
16
- };
17
- export declare function verifyBlockProposerSignature(config: BeaconConfig, bls: IBlsVerifier, blocks: SignedBeaconBlock[]): Promise<void>;
18
- //# sourceMappingURL=verify.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"verify.d.ts","sourceRoot":"","sources":["../../../src/sync/backfill/verify.ts"],"names":[],"mappings":"AAAA,OAAO,EAAC,YAAY,EAAC,MAAM,kBAAkB,CAAC;AAG9C,OAAO,EAAC,IAAI,EAAE,iBAAiB,EAAE,IAAI,EAAM,MAAM,iBAAiB,CAAC;AACnE,OAAO,EAAC,YAAY,EAAC,MAAM,0BAA0B,CAAC;AACtD,OAAO,EAAoB,qBAAqB,EAAC,MAAM,aAAa,CAAC;AAErE,MAAM,MAAM,mBAAmB,GAAG;IAChC,IAAI,EAAE,IAAI,CAAC;IACX,IAAI,EAAE,IAAI,CAAC;CACZ,CAAC;AAEF,MAAM,MAAM,aAAa,GAAG,mBAAmB,GAAG;IAAC,KAAK,EAAE,iBAAiB,CAAA;CAAC,CAAC;AAE7E,wBAAgB,mBAAmB,CACjC,MAAM,EAAE,YAAY,EACpB,MAAM,EAAE,iBAAiB,EAAE,EAC3B,UAAU,EAAE,IAAI,GACf;IACD,UAAU,EAAE,aAAa,GAAG,IAAI,CAAC;IACjC,cAAc,EAAE,iBAAiB,EAAE,CAAC;IACpC,KAAK,CAAC,EAAE,qBAAqB,CAAC,UAAU,CAAC;CAC1C,CAkBA;AAED,wBAAsB,4BAA4B,CAChD,MAAM,EAAE,YAAY,EACpB,GAAG,EAAE,YAAY,EACjB,MAAM,EAAE,iBAAiB,EAAE,GAC1B,OAAO,CAAC,IAAI,CAAC,CAWf"}
@@ -1,36 +0,0 @@
1
- import { GENESIS_SLOT } from "@lodestar/params";
2
- import { getBlockProposerSignatureSet } from "@lodestar/state-transition";
3
- import { ssz } from "@lodestar/types";
4
- import { BackfillSyncError, BackfillSyncErrorCode } from "./errors.js";
5
- export function verifyBlockSequence(config, blocks, anchorRoot) {
6
- let nextRoot = anchorRoot;
7
- let nextAnchor = null;
8
- const verifiedBlocks = [];
9
- for (const block of blocks.reverse()) {
10
- const blockRoot = config.getForkTypes(block.message.slot).BeaconBlock.hashTreeRoot(block.message);
11
- if (!ssz.Root.equals(blockRoot, nextRoot)) {
12
- if (ssz.Root.equals(nextRoot, anchorRoot)) {
13
- throw new BackfillSyncError({ code: BackfillSyncErrorCode.NOT_ANCHORED });
14
- }
15
- return { nextAnchor, verifiedBlocks, error: BackfillSyncErrorCode.NOT_LINEAR };
16
- }
17
- verifiedBlocks.push(block);
18
- nextAnchor = { block: block, slot: block.message.slot, root: nextRoot };
19
- nextRoot = block.message.parentRoot;
20
- }
21
- return { nextAnchor, verifiedBlocks };
22
- }
23
- export async function verifyBlockProposerSignature(config, bls, blocks) {
24
- if (blocks.length === 1 && blocks[0].message.slot === GENESIS_SLOT)
25
- return;
26
- const signatures = blocks.reduce((sigs, block) => {
27
- // genesis block doesn't have valid signature
28
- if (block.message.slot !== GENESIS_SLOT)
29
- sigs.push(getBlockProposerSignatureSet(config, block));
30
- return sigs;
31
- }, []);
32
- if (!(await bls.verifySignatureSets(signatures, { batchable: true }))) {
33
- throw new BackfillSyncError({ code: BackfillSyncErrorCode.INVALID_SIGNATURE });
34
- }
35
- }
36
- //# sourceMappingURL=verify.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"verify.js","sourceRoot":"","sources":["../../../src/sync/backfill/verify.ts"],"names":[],"mappings":"AACA,OAAO,EAAC,YAAY,EAAC,MAAM,kBAAkB,CAAC;AAC9C,OAAO,EAAgB,4BAA4B,EAAC,MAAM,4BAA4B,CAAC;AACvF,OAAO,EAAgC,GAAG,EAAC,MAAM,iBAAiB,CAAC;AAEnE,OAAO,EAAC,iBAAiB,EAAE,qBAAqB,EAAC,MAAM,aAAa,CAAC;AASrE,MAAM,UAAU,mBAAmB,CACjC,MAAoB,EACpB,MAA2B,EAC3B,UAAgB;IAMhB,IAAI,QAAQ,GAAS,UAAU,CAAC;IAChC,IAAI,UAAU,GAAyB,IAAI,CAAC;IAE5C,MAAM,cAAc,GAAwB,EAAE,CAAC;IAC/C,KAAK,MAAM,KAAK,IAAI,MAAM,CAAC,OAAO,EAAE,EAAE,CAAC;QACrC,MAAM,SAAS,GAAG,MAAM,CAAC,YAAY,CAAC,KAAK,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC,WAAW,CAAC,YAAY,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC;QAClG,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,MAAM,CAAC,SAAS,EAAE,QAAQ,CAAC,EAAE,CAAC;YAC1C,IAAI,GAAG,CAAC,IAAI,CAAC,MAAM,CAAC,QAAQ,EAAE,UAAU,CAAC,EAAE,CAAC;gBAC1C,MAAM,IAAI,iBAAiB,CAAC,EAAC,IAAI,EAAE,qBAAqB,CAAC,YAAY,EAAC,CAAC,CAAC;YAC1E,CAAC;YACD,OAAO,EAAC,UAAU,EAAE,cAAc,EAAE,KAAK,EAAE,qBAAqB,CAAC,UAAU,EAAC,CAAC;QAC/E,CAAC;QACD,cAAc,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;QAC3B,UAAU,GAAG,EAAC,KAAK,EAAE,KAAK,EAAE,IAAI,EAAE,KAAK,CAAC,OAAO,CAAC,IAAI,EAAE,IAAI,EAAE,QAAQ,EAAC,CAAC;QACtE,QAAQ,GAAG,KAAK,CAAC,OAAO,CAAC,UAAU,CAAC;IACtC,CAAC;IACD,OAAO,EAAC,UAAU,EAAE,cAAc,EAAC,CAAC;AACtC,CAAC;AAED,MAAM,CAAC,KAAK,UAAU,4BAA4B,CAChD,MAAoB,EACpB,GAAiB,EACjB,MAA2B;IAE3B,IAAI,MAAM,CAAC,MAAM,KAAK,CAAC,IAAI,MAAM,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,IAAI,KAAK,YAAY;QAAE,OAAO;IAC3E,MAAM,UAAU,GAAG,MAAM,CAAC,MAAM,CAAC,CAAC,IAAqB,EAAE,KAAK,EAAE,EAAE;QAChE,6CAA6C;QAC7C,IAAI,KAAK,CAAC,OAAO,CAAC,IAAI,KAAK,YAAY;YAAE,IAAI,CAAC,IAAI,CAAC,4BAA4B,CAAC,MAAM,EAAE,KAAK,CAAC,CAAC,CAAC;QAChG,OAAO,IAAI,CAAC;IACd,CAAC,EAAE,EAAE,CAAC,CAAC;IAEP,IAAI,CAAC,CAAC,MAAM,GAAG,CAAC,mBAAmB,CAAC,UAAU,EAAE,EAAC,SAAS,EAAE,IAAI,EAAC,CAAC,CAAC,EAAE,CAAC;QACpE,MAAM,IAAI,iBAAiB,CAAC,EAAC,IAAI,EAAE,qBAAqB,CAAC,iBAAiB,EAAC,CAAC,CAAC;IAC/E,CAAC;AACH,CAAC"}
@@ -1,50 +0,0 @@
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
- /**
7
- * Backfill sync relies on verified connected ranges (which are represented as key,value
8
- * with a verified jump from a key back to value). Since the node could have progressed
9
- * ahead from, we need to save the forward progress of this node as another backfill
10
- * range entry, that backfill sync will use to jump back if this node is restarted
11
- * for any reason.
12
- * The current backfill has its own backfill entry from anchor slot to last backfilled
13
- * slot. And this would create the entry from the current finalized slot to the anchor
14
- * slot.
15
- */
16
- export async function updateBackfillRange(
17
- {chain, db, logger}: {chain: IBeaconChain; db: IBeaconDb; logger: Logger},
18
- finalized: CheckpointWithHex
19
- ): Promise<void> {
20
- try {
21
- // Mark the sequence in backfill db from finalized block's slot till anchor slot as
22
- // filled.
23
- const finalizedBlockFC = chain.forkChoice.getBlockHexDefaultStatus(finalized.rootHex);
24
- if (finalizedBlockFC && finalizedBlockFC.slot > chain.anchorStateLatestBlockSlot) {
25
- await db.backfilledRanges.put(finalizedBlockFC.slot, chain.anchorStateLatestBlockSlot);
26
-
27
- // Clear previously marked sequence till anchorStateLatestBlockSlot, without
28
- // touching backfill sync process sequence which are at
29
- // <=anchorStateLatestBlockSlot i.e. clear >anchorStateLatestBlockSlot
30
- // and < currentSlot
31
- const filteredSeqs = await db.backfilledRanges.entries({
32
- gt: chain.anchorStateLatestBlockSlot,
33
- lt: finalizedBlockFC.slot,
34
- });
35
- logger.debug("updated backfilledRanges", {
36
- key: finalizedBlockFC.slot,
37
- value: chain.anchorStateLatestBlockSlot,
38
- });
39
- if (filteredSeqs.length > 0) {
40
- await db.backfilledRanges.batchDelete(filteredSeqs.map((entry) => entry.key));
41
- logger.debug(
42
- `Forward Sync - cleaned up backfilledRanges between ${finalizedBlockFC.slot},${chain.anchorStateLatestBlockSlot}`,
43
- {seqs: JSON.stringify(filteredSeqs)}
44
- );
45
- }
46
- }
47
- } catch (e) {
48
- logger.error("Error updating backfilledRanges on finalization", {epoch: finalized.epoch}, e as Error);
49
- }
50
- }
@@ -1,29 +0,0 @@
1
- import {ChainForkConfig} from "@lodestar/config";
2
- import {DatabaseController, Repository} from "@lodestar/db";
3
- import {Slot, ssz} from "@lodestar/types";
4
- import {bytesToInt} from "@lodestar/utils";
5
- import {Bucket, getBucketNameByValue} from "../buckets.js";
6
-
7
- /**
8
- * Slot to slot ranges that ensure that block range is fully backfilled
9
- *
10
- * If node starts backfilling at slots 1000, and backfills to 800, there will be an entry
11
- * 1000 -> 800
12
- *
13
- * When the node is backfilling if it starts at 1200 and backfills to 1000, it will find this sequence and,
14
- * jump directly to 800 and delete the key 1000.
15
- */
16
- export class BackfilledRanges extends Repository<Slot, Slot> {
17
- constructor(config: ChainForkConfig, db: DatabaseController<Uint8Array, Uint8Array>) {
18
- const bucket = Bucket.backfilled_ranges;
19
- super(config, db, bucket, ssz.Slot, getBucketNameByValue(bucket));
20
- }
21
-
22
- decodeKey(data: Buffer): number {
23
- return bytesToInt(super.decodeKey(data) as unknown as Uint8Array, "be");
24
- }
25
-
26
- getId(_value: Slot): number {
27
- throw new Error("Cannot get the db key from slot");
28
- }
29
- }