@lodestar/beacon-node 1.41.0-dev.bb33751bfd → 1.41.0-dev.be5acbb8f7

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 (166) hide show
  1. package/lib/api/impl/beacon/blocks/index.d.ts.map +1 -1
  2. package/lib/api/impl/beacon/blocks/index.js +3 -2
  3. package/lib/api/impl/beacon/blocks/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 +26 -10
  6. package/lib/api/impl/validator/index.js.map +1 -1
  7. package/lib/chain/archiveStore/archiveStore.d.ts.map +1 -1
  8. package/lib/chain/archiveStore/archiveStore.js.map +1 -1
  9. package/lib/chain/archiveStore/utils/archiveBlocks.d.ts +3 -8
  10. package/lib/chain/archiveStore/utils/archiveBlocks.d.ts.map +1 -1
  11. package/lib/chain/archiveStore/utils/archiveBlocks.js +1 -1
  12. package/lib/chain/archiveStore/utils/archiveBlocks.js.map +1 -1
  13. package/lib/chain/archiveStore/utils/updateBackfillRange.js +1 -1
  14. package/lib/chain/archiveStore/utils/updateBackfillRange.js.map +1 -1
  15. package/lib/chain/blocks/blockInput/blockInput.d.ts +5 -0
  16. package/lib/chain/blocks/blockInput/blockInput.d.ts.map +1 -1
  17. package/lib/chain/blocks/blockInput/blockInput.js +24 -0
  18. package/lib/chain/blocks/blockInput/blockInput.js.map +1 -1
  19. package/lib/chain/blocks/blockInput/types.d.ts +16 -0
  20. package/lib/chain/blocks/blockInput/types.d.ts.map +1 -1
  21. package/lib/chain/blocks/importBlock.d.ts.map +1 -1
  22. package/lib/chain/blocks/importBlock.js +27 -4
  23. package/lib/chain/blocks/importBlock.js.map +1 -1
  24. package/lib/chain/blocks/verifyBlocksSanityChecks.d.ts.map +1 -1
  25. package/lib/chain/blocks/verifyBlocksSanityChecks.js +4 -1
  26. package/lib/chain/blocks/verifyBlocksSanityChecks.js.map +1 -1
  27. package/lib/chain/blocks/writeBlockInputToDb.d.ts +12 -3
  28. package/lib/chain/blocks/writeBlockInputToDb.d.ts.map +1 -1
  29. package/lib/chain/blocks/writeBlockInputToDb.js +92 -98
  30. package/lib/chain/blocks/writeBlockInputToDb.js.map +1 -1
  31. package/lib/chain/chain.d.ts +2 -2
  32. package/lib/chain/chain.d.ts.map +1 -1
  33. package/lib/chain/chain.js +13 -12
  34. package/lib/chain/chain.js.map +1 -1
  35. package/lib/chain/emitter.d.ts +3 -3
  36. package/lib/chain/emitter.d.ts.map +1 -1
  37. package/lib/chain/errors/executionPayloadBid.d.ts +1 -1
  38. package/lib/chain/errors/executionPayloadEnvelope.d.ts +2 -2
  39. package/lib/chain/errors/executionPayloadEnvelope.d.ts.map +1 -1
  40. package/lib/chain/errors/executionPayloadEnvelope.js.map +1 -1
  41. package/lib/chain/errors/payloadAttestation.d.ts +1 -1
  42. package/lib/chain/forkChoice/index.d.ts.map +1 -1
  43. package/lib/chain/forkChoice/index.js +30 -24
  44. package/lib/chain/forkChoice/index.js.map +1 -1
  45. package/lib/chain/opPools/aggregatedAttestationPool.js +1 -1
  46. package/lib/chain/opPools/aggregatedAttestationPool.js.map +1 -1
  47. package/lib/chain/produceBlock/computeNewStateRoot.d.ts +0 -1
  48. package/lib/chain/produceBlock/computeNewStateRoot.d.ts.map +1 -1
  49. package/lib/chain/produceBlock/computeNewStateRoot.js +4 -3
  50. package/lib/chain/produceBlock/computeNewStateRoot.js.map +1 -1
  51. package/lib/chain/produceBlock/produceBlockBody.d.ts.map +1 -1
  52. package/lib/chain/produceBlock/produceBlockBody.js +1 -2
  53. package/lib/chain/produceBlock/produceBlockBody.js.map +1 -1
  54. package/lib/chain/regen/queued.d.ts.map +1 -1
  55. package/lib/chain/regen/queued.js +4 -1
  56. package/lib/chain/regen/queued.js.map +1 -1
  57. package/lib/chain/regen/regen.d.ts.map +1 -1
  58. package/lib/chain/regen/regen.js +6 -2
  59. package/lib/chain/regen/regen.js.map +1 -1
  60. package/lib/chain/seenCache/seenGossipBlockInput.d.ts +5 -1
  61. package/lib/chain/seenCache/seenGossipBlockInput.d.ts.map +1 -1
  62. package/lib/chain/seenCache/seenGossipBlockInput.js +21 -8
  63. package/lib/chain/seenCache/seenGossipBlockInput.js.map +1 -1
  64. package/lib/chain/validation/aggregateAndProof.js +1 -1
  65. package/lib/chain/validation/aggregateAndProof.js.map +1 -1
  66. package/lib/chain/validation/attestation.js +3 -3
  67. package/lib/chain/validation/attestation.js.map +1 -1
  68. package/lib/chain/validation/attesterSlashing.d.ts.map +1 -1
  69. package/lib/chain/validation/attesterSlashing.js +8 -1
  70. package/lib/chain/validation/attesterSlashing.js.map +1 -1
  71. package/lib/chain/validation/blobSidecar.js +2 -2
  72. package/lib/chain/validation/blobSidecar.js.map +1 -1
  73. package/lib/chain/validation/block.d.ts.map +1 -1
  74. package/lib/chain/validation/block.js +6 -3
  75. package/lib/chain/validation/block.js.map +1 -1
  76. package/lib/chain/validation/dataColumnSidecar.js +1 -1
  77. package/lib/chain/validation/dataColumnSidecar.js.map +1 -1
  78. package/lib/chain/validation/executionPayloadBid.js +1 -2
  79. package/lib/chain/validation/executionPayloadBid.js.map +1 -1
  80. package/lib/chain/validation/executionPayloadEnvelope.js +4 -4
  81. package/lib/chain/validation/executionPayloadEnvelope.js.map +1 -1
  82. package/lib/chain/validation/payloadAttestationMessage.js +1 -2
  83. package/lib/chain/validation/payloadAttestationMessage.js.map +1 -1
  84. package/lib/db/index.d.ts +1 -0
  85. package/lib/db/index.d.ts.map +1 -1
  86. package/lib/db/index.js +1 -0
  87. package/lib/db/index.js.map +1 -1
  88. package/lib/metrics/metrics/lodestar.d.ts +1 -0
  89. package/lib/metrics/metrics/lodestar.d.ts.map +1 -1
  90. package/lib/metrics/metrics/lodestar.js +4 -0
  91. package/lib/metrics/metrics/lodestar.js.map +1 -1
  92. package/lib/network/network.d.ts.map +1 -1
  93. package/lib/network/network.js +1 -1
  94. package/lib/network/network.js.map +1 -1
  95. package/lib/network/processor/gossipHandlers.d.ts.map +1 -1
  96. package/lib/network/processor/gossipHandlers.js +1 -0
  97. package/lib/network/processor/gossipHandlers.js.map +1 -1
  98. package/lib/network/reqresp/handlers/beaconBlocksByRange.d.ts.map +1 -1
  99. package/lib/network/reqresp/handlers/beaconBlocksByRange.js +3 -2
  100. package/lib/network/reqresp/handlers/beaconBlocksByRange.js.map +1 -1
  101. package/lib/network/reqresp/handlers/blobSidecarsByRange.d.ts.map +1 -1
  102. package/lib/network/reqresp/handlers/blobSidecarsByRange.js +3 -2
  103. package/lib/network/reqresp/handlers/blobSidecarsByRange.js.map +1 -1
  104. package/lib/network/reqresp/handlers/blobSidecarsByRoot.js +1 -1
  105. package/lib/network/reqresp/handlers/blobSidecarsByRoot.js.map +1 -1
  106. package/lib/network/reqresp/handlers/dataColumnSidecarsByRange.d.ts.map +1 -1
  107. package/lib/network/reqresp/handlers/dataColumnSidecarsByRange.js +3 -2
  108. package/lib/network/reqresp/handlers/dataColumnSidecarsByRange.js.map +1 -1
  109. package/lib/network/reqresp/handlers/dataColumnSidecarsByRoot.js +1 -1
  110. package/lib/network/reqresp/handlers/dataColumnSidecarsByRoot.js.map +1 -1
  111. package/lib/network/reqresp/utils/collect.d.ts +1 -1
  112. package/lib/network/reqresp/utils/collectSequentialBlocksInRange.d.ts +1 -1
  113. package/lib/sync/utils/downloadByRoot.d.ts +1 -1
  114. package/lib/sync/utils/remoteSyncType.d.ts +1 -1
  115. package/lib/util/serializedCache.d.ts +4 -4
  116. package/lib/util/serializedCache.d.ts.map +1 -1
  117. package/lib/util/serializedCache.js +6 -4
  118. package/lib/util/serializedCache.js.map +1 -1
  119. package/package.json +26 -26
  120. package/src/api/impl/beacon/blocks/index.ts +3 -2
  121. package/src/api/impl/validator/index.ts +26 -12
  122. package/src/chain/archiveStore/archiveStore.ts +5 -5
  123. package/src/chain/archiveStore/utils/archiveBlocks.ts +4 -5
  124. package/src/chain/archiveStore/utils/updateBackfillRange.ts +1 -1
  125. package/src/chain/blocks/blockInput/blockInput.ts +35 -0
  126. package/src/chain/blocks/blockInput/types.ts +17 -0
  127. package/src/chain/blocks/importBlock.ts +35 -4
  128. package/src/chain/blocks/verifyBlocksSanityChecks.ts +7 -2
  129. package/src/chain/blocks/writeBlockInputToDb.ts +105 -104
  130. package/src/chain/chain.ts +31 -19
  131. package/src/chain/emitter.ts +3 -3
  132. package/src/chain/errors/executionPayloadBid.ts +1 -1
  133. package/src/chain/errors/executionPayloadEnvelope.ts +6 -2
  134. package/src/chain/errors/payloadAttestation.ts +1 -1
  135. package/src/chain/forkChoice/index.ts +39 -21
  136. package/src/chain/opPools/aggregatedAttestationPool.ts +1 -1
  137. package/src/chain/produceBlock/computeNewStateRoot.ts +4 -3
  138. package/src/chain/produceBlock/produceBlockBody.ts +1 -2
  139. package/src/chain/regen/queued.ts +7 -2
  140. package/src/chain/regen/regen.ts +9 -3
  141. package/src/chain/seenCache/seenGossipBlockInput.ts +38 -10
  142. package/src/chain/validation/aggregateAndProof.ts +1 -1
  143. package/src/chain/validation/attestation.ts +3 -3
  144. package/src/chain/validation/attesterSlashing.ts +9 -0
  145. package/src/chain/validation/blobSidecar.ts +2 -2
  146. package/src/chain/validation/block.ts +9 -4
  147. package/src/chain/validation/dataColumnSidecar.ts +1 -1
  148. package/src/chain/validation/executionPayloadBid.ts +1 -2
  149. package/src/chain/validation/executionPayloadEnvelope.ts +4 -4
  150. package/src/chain/validation/payloadAttestationMessage.ts +1 -2
  151. package/src/db/index.ts +1 -0
  152. package/src/metrics/metrics/lodestar.ts +4 -0
  153. package/src/network/network.ts +2 -1
  154. package/src/network/processor/gossipHandlers.ts +6 -1
  155. package/src/network/processor/gossipValidatorFn.ts +1 -1
  156. package/src/network/reqresp/ReqRespBeaconNode.ts +1 -1
  157. package/src/network/reqresp/handlers/beaconBlocksByRange.ts +4 -3
  158. package/src/network/reqresp/handlers/blobSidecarsByRange.ts +3 -2
  159. package/src/network/reqresp/handlers/blobSidecarsByRoot.ts +1 -1
  160. package/src/network/reqresp/handlers/dataColumnSidecarsByRange.ts +4 -3
  161. package/src/network/reqresp/handlers/dataColumnSidecarsByRoot.ts +2 -2
  162. package/src/network/reqresp/utils/collect.ts +1 -1
  163. package/src/network/reqresp/utils/collectSequentialBlocksInRange.ts +1 -1
  164. package/src/sync/utils/downloadByRoot.ts +1 -1
  165. package/src/sync/utils/remoteSyncType.ts +1 -1
  166. package/src/util/serializedCache.ts +7 -5
@@ -7,7 +7,7 @@ import {ColumnIndex, fulu} from "@lodestar/types";
7
7
  import {fromHex} from "@lodestar/utils";
8
8
  import {IBeaconChain} from "../../../chain/index.js";
9
9
  import {IBeaconDb} from "../../../db/index.js";
10
- import {prettyPrintPeerId} from "../../util.ts";
10
+ import {prettyPrintPeerId} from "../../util.js";
11
11
  import {
12
12
  handleColumnSidecarUnavailability,
13
13
  validateRequestedDataColumns,
@@ -78,8 +78,9 @@ export async function* onDataColumnSidecarsByRange(
78
78
 
79
79
  // Non-finalized range of columns
80
80
  if (endSlot > finalizedSlot) {
81
- const headRoot = chain.forkChoice.getHeadRoot();
82
- const headChain = chain.forkChoice.getAllAncestorBlocks(headRoot);
81
+ const headBlock = chain.forkChoice.getHead();
82
+ const headRoot = headBlock.blockRoot;
83
+ const headChain = chain.forkChoice.getAllAncestorBlocks(headRoot, headBlock.payloadStatus);
83
84
 
84
85
  // Iterate head chain with ascending block numbers
85
86
  for (let i = headChain.length - 1; i >= 0; i--) {
@@ -6,7 +6,7 @@ import {toRootHex} from "@lodestar/utils";
6
6
  import {IBeaconChain} from "../../../chain/index.js";
7
7
  import {IBeaconDb} from "../../../db/index.js";
8
8
  import {DataColumnSidecarsByRootRequest} from "../../../util/types.js";
9
- import {prettyPrintPeerId} from "../../util.ts";
9
+ import {prettyPrintPeerId} from "../../util.js";
10
10
  import {
11
11
  handleColumnSidecarUnavailability,
12
12
  validateRequestedDataColumns,
@@ -34,7 +34,7 @@ export async function* onDataColumnSidecarsByRoot(
34
34
  }
35
35
 
36
36
  const blockRootHex = toRootHex(blockRoot);
37
- const block = chain.forkChoice.getBlockHex(blockRootHex);
37
+ const block = chain.forkChoice.getBlockHexDefaultStatus(blockRootHex);
38
38
  // If the block is not in fork choice, it may be finalized. Attempt to find its slot in block archive
39
39
  const slot = block ? block.slot : await db.blockArchive.getSlotByRoot(blockRoot);
40
40
 
@@ -1,6 +1,6 @@
1
1
  import {Type} from "@chainsafe/ssz";
2
2
  import {RequestError, RequestErrorCode, ResponseIncoming} from "@lodestar/reqresp";
3
- import {SerializedCache} from "../../../util/serializedCache.ts";
3
+ import {SerializedCache} from "../../../util/serializedCache.js";
4
4
  import {ResponseTypeGetter} from "../types.js";
5
5
 
6
6
  /**
@@ -1,7 +1,7 @@
1
1
  import {ResponseIncoming} from "@lodestar/reqresp";
2
2
  import {SignedBeaconBlock, phase0} from "@lodestar/types";
3
3
  import {LodestarError} from "@lodestar/utils";
4
- import {SerializedCache} from "../../../util/serializedCache.ts";
4
+ import {SerializedCache} from "../../../util/serializedCache.js";
5
5
  import {ReqRespMethod, responseSszTypeByMethod} from "../types.js";
6
6
  import {sszDeserializeResponse} from "./collect.js";
7
7
 
@@ -6,7 +6,7 @@ import {LodestarError, byteArrayEquals, fromHex, prettyPrintIndices, toHex, toRo
6
6
  import {isBlockInputBlobs, isBlockInputColumns} from "../../chain/blocks/blockInput/blockInput.js";
7
7
  import {BlockInputSource, IBlockInput} from "../../chain/blocks/blockInput/types.js";
8
8
  import {ChainEventEmitter} from "../../chain/emitter.js";
9
- import {IBeaconChain} from "../../chain/interface.ts";
9
+ import {IBeaconChain} from "../../chain/interface.js";
10
10
  import {validateBlockBlobSidecars} from "../../chain/validation/blobSidecar.js";
11
11
  import {validateBlockDataColumnSidecars} from "../../chain/validation/dataColumnSidecar.js";
12
12
  import {INetwork} from "../../network/interface.js";
@@ -1,7 +1,7 @@
1
1
  import {IForkChoice} from "@lodestar/fork-choice";
2
2
  import {computeEpochAtSlot, computeStartSlotAtEpoch} from "@lodestar/state-transition";
3
3
  import {Slot, Status} from "@lodestar/types";
4
- import {IBeaconChain} from "../../chain/interface.ts";
4
+ import {IBeaconChain} from "../../chain/interface.js";
5
5
  import {ChainTarget} from "../range/utils/index.js";
6
6
 
7
7
  /** The type of peer relative to our current state */
@@ -4,7 +4,7 @@
4
4
  * This is a thin wrapper around WeakMap
5
5
  */
6
6
  export class SerializedCache {
7
- map: WeakMap<object, Uint8Array> = new WeakMap();
7
+ private map: WeakMap<object, Uint8Array> = new WeakMap();
8
8
 
9
9
  get(obj: object): Uint8Array | undefined {
10
10
  return this.map.get(obj);
@@ -15,11 +15,13 @@ export class SerializedCache {
15
15
  }
16
16
 
17
17
  /**
18
- * Replace the internal WeakMap to force GC of all cached entries.
19
- * Must only be called after all DB writes that may read from this cache have completed,
18
+ * Delete cached serialized entries for the provided object references.
19
+ * Must only be called after all DB writes that read from this cache for these objects have completed,
20
20
  * otherwise cached serialized bytes will be unavailable and data will be re-serialized unnecessarily.
21
21
  */
22
- clear(): void {
23
- this.map = new WeakMap();
22
+ delete(objs: object[]): void {
23
+ for (const obj of objs) {
24
+ this.map.delete(obj);
25
+ }
24
26
  }
25
27
  }