@lodestar/beacon-node 1.34.0-dev.6fe1606bdb → 1.34.0-dev.7332b1afe1

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 (283) hide show
  1. package/lib/api/impl/beacon/blocks/index.js +161 -56
  2. package/lib/api/impl/beacon/blocks/index.js.map +1 -1
  3. package/lib/api/impl/beacon/pool/index.js +5 -5
  4. package/lib/api/impl/beacon/pool/index.js.map +1 -1
  5. package/lib/api/impl/beacon/state/index.js +15 -16
  6. package/lib/api/impl/beacon/state/index.js.map +1 -1
  7. package/lib/api/impl/debug/index.d.ts +1 -1
  8. package/lib/api/impl/debug/index.js +24 -1
  9. package/lib/api/impl/debug/index.js.map +1 -1
  10. package/lib/api/impl/validator/index.js +70 -47
  11. package/lib/api/impl/validator/index.js.map +1 -1
  12. package/lib/api/impl/validator/utils.d.ts +3 -3
  13. package/lib/api/impl/validator/utils.js +2 -2
  14. package/lib/api/impl/validator/utils.js.map +1 -1
  15. package/lib/chain/archiveStore/archiveStore.d.ts +1 -1
  16. package/lib/chain/archiveStore/archiveStore.js +2 -2
  17. package/lib/chain/archiveStore/interface.d.ts +1 -1
  18. package/lib/chain/archiveStore/utils/archiveBlocks.d.ts +1 -1
  19. package/lib/chain/archiveStore/utils/archiveBlocks.js +89 -22
  20. package/lib/chain/archiveStore/utils/archiveBlocks.js.map +1 -1
  21. package/lib/chain/beaconProposerCache.d.ts +1 -0
  22. package/lib/chain/beaconProposerCache.js +3 -0
  23. package/lib/chain/beaconProposerCache.js.map +1 -1
  24. package/lib/chain/blocks/importBlock.js +3 -2
  25. package/lib/chain/blocks/importBlock.js.map +1 -1
  26. package/lib/chain/blocks/types.d.ts +66 -23
  27. package/lib/chain/blocks/types.js +39 -5
  28. package/lib/chain/blocks/types.js.map +1 -1
  29. package/lib/chain/blocks/utils/zebraBanner.d.ts +2 -0
  30. package/lib/chain/blocks/utils/zebraBanner.js +45 -0
  31. package/lib/chain/blocks/utils/zebraBanner.js.map +1 -0
  32. package/lib/chain/blocks/verifyBlock.js +18 -5
  33. package/lib/chain/blocks/verifyBlock.js.map +1 -1
  34. package/lib/chain/blocks/verifyBlocksDataAvailability.js +21 -10
  35. package/lib/chain/blocks/verifyBlocksDataAvailability.js.map +1 -1
  36. package/lib/chain/blocks/writeBlockInputToDb.js +63 -16
  37. package/lib/chain/blocks/writeBlockInputToDb.js.map +1 -1
  38. package/lib/chain/chain.d.ts +18 -101
  39. package/lib/chain/chain.js +108 -76
  40. package/lib/chain/chain.js.map +1 -1
  41. package/lib/chain/emitter.d.ts +18 -2
  42. package/lib/chain/emitter.js +13 -0
  43. package/lib/chain/emitter.js.map +1 -1
  44. package/lib/chain/errors/dataColumnSidecarError.d.ts +69 -0
  45. package/lib/chain/errors/dataColumnSidecarError.js +21 -0
  46. package/lib/chain/errors/dataColumnSidecarError.js.map +1 -0
  47. package/lib/chain/errors/index.d.ts +1 -0
  48. package/lib/chain/errors/index.js +1 -0
  49. package/lib/chain/errors/index.js.map +1 -1
  50. package/lib/chain/forkChoice/index.d.ts +2 -1
  51. package/lib/chain/forkChoice/index.js +2 -2
  52. package/lib/chain/forkChoice/index.js.map +1 -1
  53. package/lib/chain/interface.d.ts +6 -7
  54. package/lib/chain/interface.js.map +1 -1
  55. package/lib/chain/opPools/aggregatedAttestationPool.js +13 -3
  56. package/lib/chain/opPools/aggregatedAttestationPool.js.map +1 -1
  57. package/lib/chain/opPools/attestationPool.d.ts +1 -1
  58. package/lib/chain/opPools/attestationPool.js +7 -7
  59. package/lib/chain/options.d.ts +4 -1
  60. package/lib/chain/options.js +1 -0
  61. package/lib/chain/options.js.map +1 -1
  62. package/lib/chain/prepareNextSlot.js +4 -2
  63. package/lib/chain/prepareNextSlot.js.map +1 -1
  64. package/lib/chain/produceBlock/produceBlockBody.d.ts +30 -16
  65. package/lib/chain/produceBlock/produceBlockBody.js +28 -28
  66. package/lib/chain/produceBlock/produceBlockBody.js.map +1 -1
  67. package/lib/chain/produceBlock/validateBlobsAndKzgCommitments.d.ts +6 -3
  68. package/lib/chain/produceBlock/validateBlobsAndKzgCommitments.js +28 -4
  69. package/lib/chain/produceBlock/validateBlobsAndKzgCommitments.js.map +1 -1
  70. package/lib/chain/seenCache/seenGossipBlockInput.d.ts +64 -18
  71. package/lib/chain/seenCache/seenGossipBlockInput.js +321 -53
  72. package/lib/chain/seenCache/seenGossipBlockInput.js.map +1 -1
  73. package/lib/chain/validation/aggregateAndProof.d.ts +1 -1
  74. package/lib/chain/validation/aggregateAndProof.js +8 -8
  75. package/lib/chain/validation/aggregateAndProof.js.map +1 -1
  76. package/lib/chain/validation/attestation.d.ts +3 -3
  77. package/lib/chain/validation/attestation.js +10 -10
  78. package/lib/chain/validation/attestation.js.map +1 -1
  79. package/lib/chain/validation/dataColumnSidecar.d.ts +29 -0
  80. package/lib/chain/validation/dataColumnSidecar.js +257 -0
  81. package/lib/chain/validation/dataColumnSidecar.js.map +1 -0
  82. package/lib/db/beacon.d.ts +3 -1
  83. package/lib/db/beacon.js +3 -1
  84. package/lib/db/beacon.js.map +1 -1
  85. package/lib/db/buckets.d.ts +3 -1
  86. package/lib/db/buckets.js +2 -0
  87. package/lib/db/buckets.js.map +1 -1
  88. package/lib/db/interface.d.ts +3 -1
  89. package/lib/db/repositories/dataColumnSidecar.d.ts +26 -0
  90. package/lib/db/repositories/dataColumnSidecar.js +39 -0
  91. package/lib/db/repositories/dataColumnSidecar.js.map +1 -0
  92. package/lib/db/repositories/dataColumnSidecarArchive.d.ts +24 -0
  93. package/lib/db/repositories/dataColumnSidecarArchive.js +39 -0
  94. package/lib/db/repositories/dataColumnSidecarArchive.js.map +1 -0
  95. package/lib/db/repositories/index.d.ts +2 -0
  96. package/lib/db/repositories/index.js +2 -0
  97. package/lib/db/repositories/index.js.map +1 -1
  98. package/lib/execution/builder/http.d.ts +20 -4
  99. package/lib/execution/builder/http.js +30 -11
  100. package/lib/execution/builder/http.js.map +1 -1
  101. package/lib/execution/builder/interface.d.ts +5 -4
  102. package/lib/execution/engine/http.d.ts +8 -5
  103. package/lib/execution/engine/http.js +65 -46
  104. package/lib/execution/engine/http.js.map +1 -1
  105. package/lib/execution/engine/interface.d.ts +6 -13
  106. package/lib/execution/engine/interface.js +1 -1
  107. package/lib/execution/engine/interface.js.map +1 -1
  108. package/lib/execution/engine/mock.d.ts +5 -1
  109. package/lib/execution/engine/mock.js +58 -15
  110. package/lib/execution/engine/mock.js.map +1 -1
  111. package/lib/execution/engine/types.d.ts +15 -5
  112. package/lib/execution/engine/types.js +8 -2
  113. package/lib/execution/engine/types.js.map +1 -1
  114. package/lib/metrics/metrics/beacon.d.ts +16 -28
  115. package/lib/metrics/metrics/beacon.js +66 -75
  116. package/lib/metrics/metrics/beacon.js.map +1 -1
  117. package/lib/metrics/metrics/lodestar.d.ts +29 -1
  118. package/lib/metrics/metrics/lodestar.js +59 -0
  119. package/lib/metrics/metrics/lodestar.js.map +1 -1
  120. package/lib/metrics/metrics.d.ts +2 -1
  121. package/lib/metrics/metrics.js +3 -0
  122. package/lib/metrics/metrics.js.map +1 -1
  123. package/lib/network/core/metrics.d.ts +10 -3
  124. package/lib/network/core/metrics.js +22 -4
  125. package/lib/network/core/metrics.js.map +1 -1
  126. package/lib/network/core/networkCore.d.ts +15 -4
  127. package/lib/network/core/networkCore.js +73 -23
  128. package/lib/network/core/networkCore.js.map +1 -1
  129. package/lib/network/core/networkCoreWorker.js +2 -0
  130. package/lib/network/core/networkCoreWorker.js.map +1 -1
  131. package/lib/network/core/networkCoreWorkerHandler.d.ts +5 -3
  132. package/lib/network/core/networkCoreWorkerHandler.js +6 -1
  133. package/lib/network/core/networkCoreWorkerHandler.js.map +1 -1
  134. package/lib/network/core/types.d.ts +7 -4
  135. package/lib/network/events.d.ts +4 -2
  136. package/lib/network/events.js.map +1 -1
  137. package/lib/network/gossip/gossipsub.d.ts +2 -2
  138. package/lib/network/gossip/gossipsub.js +8 -6
  139. package/lib/network/gossip/gossipsub.js.map +1 -1
  140. package/lib/network/gossip/interface.d.ts +8 -1
  141. package/lib/network/gossip/interface.js +1 -0
  142. package/lib/network/gossip/interface.js.map +1 -1
  143. package/lib/network/gossip/scoringParameters.d.ts +6 -2
  144. package/lib/network/gossip/scoringParameters.js.map +1 -1
  145. package/lib/network/gossip/topic.d.ts +2038 -1489
  146. package/lib/network/gossip/topic.js +29 -1
  147. package/lib/network/gossip/topic.js.map +1 -1
  148. package/lib/network/interface.d.ts +11 -3
  149. package/lib/network/metadata.d.ts +9 -5
  150. package/lib/network/metadata.js +26 -5
  151. package/lib/network/metadata.js.map +1 -1
  152. package/lib/network/network.d.ts +14 -4
  153. package/lib/network/network.js +73 -11
  154. package/lib/network/network.js.map +1 -1
  155. package/lib/network/networkConfig.d.ts +12 -0
  156. package/lib/network/networkConfig.js +2 -0
  157. package/lib/network/networkConfig.js.map +1 -0
  158. package/lib/network/options.d.ts +1 -0
  159. package/lib/network/options.js +7 -2
  160. package/lib/network/options.js.map +1 -1
  161. package/lib/network/peers/discover.d.ts +8 -3
  162. package/lib/network/peers/discover.js +99 -14
  163. package/lib/network/peers/discover.js.map +1 -1
  164. package/lib/network/peers/peerManager.d.ts +10 -4
  165. package/lib/network/peers/peerManager.js +108 -19
  166. package/lib/network/peers/peerManager.js.map +1 -1
  167. package/lib/network/peers/peersData.d.ts +17 -3
  168. package/lib/network/peers/peersData.js.map +1 -1
  169. package/lib/network/peers/score/interface.d.ts +1 -1
  170. package/lib/network/peers/score/score.d.ts +2 -2
  171. package/lib/network/peers/score/score.js +4 -1
  172. package/lib/network/peers/score/score.js.map +1 -1
  173. package/lib/network/peers/score/store.d.ts +3 -1
  174. package/lib/network/peers/score/store.js +6 -2
  175. package/lib/network/peers/score/store.js.map +1 -1
  176. package/lib/network/peers/utils/assertPeerRelevance.d.ts +7 -3
  177. package/lib/network/peers/utils/assertPeerRelevance.js +10 -1
  178. package/lib/network/peers/utils/assertPeerRelevance.js.map +1 -1
  179. package/lib/network/peers/utils/prioritizePeers.d.ts +19 -7
  180. package/lib/network/peers/utils/prioritizePeers.js +42 -6
  181. package/lib/network/peers/utils/prioritizePeers.js.map +1 -1
  182. package/lib/network/processor/extractSlotRootFns.js +8 -1
  183. package/lib/network/processor/extractSlotRootFns.js.map +1 -1
  184. package/lib/network/processor/gossipHandlers.js +172 -23
  185. package/lib/network/processor/gossipHandlers.js.map +1 -1
  186. package/lib/network/processor/gossipQueues/index.js +5 -0
  187. package/lib/network/processor/gossipQueues/index.js.map +1 -1
  188. package/lib/network/processor/index.js +1 -0
  189. package/lib/network/processor/index.js.map +1 -1
  190. package/lib/network/reqresp/ReqRespBeaconNode.d.ts +2 -2
  191. package/lib/network/reqresp/ReqRespBeaconNode.js +36 -14
  192. package/lib/network/reqresp/ReqRespBeaconNode.js.map +1 -1
  193. package/lib/network/reqresp/beaconBlocksMaybeBlobsByRange.d.ts +24 -4
  194. package/lib/network/reqresp/beaconBlocksMaybeBlobsByRange.js +259 -20
  195. package/lib/network/reqresp/beaconBlocksMaybeBlobsByRange.js.map +1 -1
  196. package/lib/network/reqresp/beaconBlocksMaybeBlobsByRoot.d.ts +37 -6
  197. package/lib/network/reqresp/beaconBlocksMaybeBlobsByRoot.js +283 -28
  198. package/lib/network/reqresp/beaconBlocksMaybeBlobsByRoot.js.map +1 -1
  199. package/lib/network/reqresp/handlers/beaconBlocksByRange.d.ts +1 -1
  200. package/lib/network/reqresp/handlers/beaconBlocksByRange.js +3 -3
  201. package/lib/network/reqresp/handlers/beaconBlocksByRange.js.map +1 -1
  202. package/lib/network/reqresp/handlers/beaconBlocksByRoot.d.ts +2 -2
  203. package/lib/network/reqresp/handlers/beaconBlocksByRoot.js.map +1 -1
  204. package/lib/network/reqresp/handlers/blobSidecarsByRange.d.ts +2 -2
  205. package/lib/network/reqresp/handlers/blobSidecarsByRange.js +2 -3
  206. package/lib/network/reqresp/handlers/blobSidecarsByRange.js.map +1 -1
  207. package/lib/network/reqresp/handlers/dataColumnSidecarsByRange.d.ts +8 -0
  208. package/lib/network/reqresp/handlers/dataColumnSidecarsByRange.js +101 -0
  209. package/lib/network/reqresp/handlers/dataColumnSidecarsByRange.js.map +1 -0
  210. package/lib/network/reqresp/handlers/dataColumnSidecarsByRoot.d.ts +6 -0
  211. package/lib/network/reqresp/handlers/dataColumnSidecarsByRoot.js +58 -0
  212. package/lib/network/reqresp/handlers/dataColumnSidecarsByRoot.js.map +1 -0
  213. package/lib/network/reqresp/handlers/index.js +13 -2
  214. package/lib/network/reqresp/handlers/index.js.map +1 -1
  215. package/lib/network/reqresp/protocols.d.ts +4 -0
  216. package/lib/network/reqresp/protocols.js +20 -0
  217. package/lib/network/reqresp/protocols.js.map +1 -1
  218. package/lib/network/reqresp/rateLimit.js +19 -3
  219. package/lib/network/reqresp/rateLimit.js.map +1 -1
  220. package/lib/network/reqresp/score.js +3 -0
  221. package/lib/network/reqresp/score.js.map +1 -1
  222. package/lib/network/reqresp/types.d.ts +13 -6
  223. package/lib/network/reqresp/types.js +14 -5
  224. package/lib/network/reqresp/types.js.map +1 -1
  225. package/lib/network/reqresp/utils/dataColumnResponseValidation.d.ts +14 -0
  226. package/lib/network/reqresp/utils/dataColumnResponseValidation.js +56 -0
  227. package/lib/network/reqresp/utils/dataColumnResponseValidation.js.map +1 -0
  228. package/lib/network/statusCache.d.ts +5 -5
  229. package/lib/network/statusCache.js.map +1 -1
  230. package/lib/network/subnets/interface.d.ts +3 -0
  231. package/lib/network/subnets/interface.js +14 -1
  232. package/lib/network/subnets/interface.js.map +1 -1
  233. package/lib/network/subnets/syncnetsService.js +4 -5
  234. package/lib/network/subnets/syncnetsService.js.map +1 -1
  235. package/lib/node/nodejs.js +1 -0
  236. package/lib/node/nodejs.js.map +1 -1
  237. package/lib/sync/constants.d.ts +18 -3
  238. package/lib/sync/constants.js +21 -3
  239. package/lib/sync/constants.js.map +1 -1
  240. package/lib/sync/interface.d.ts +2 -2
  241. package/lib/sync/interface.js +1 -1
  242. package/lib/sync/interface.js.map +1 -1
  243. package/lib/sync/range/batch.d.ts +17 -2
  244. package/lib/sync/range/batch.js +39 -7
  245. package/lib/sync/range/batch.js.map +1 -1
  246. package/lib/sync/range/chain.d.ts +15 -1
  247. package/lib/sync/range/chain.js +124 -33
  248. package/lib/sync/range/chain.js.map +1 -1
  249. package/lib/sync/range/range.d.ts +3 -2
  250. package/lib/sync/range/range.js +9 -3
  251. package/lib/sync/range/range.js.map +1 -1
  252. package/lib/sync/range/utils/chainTarget.d.ts +5 -1
  253. package/lib/sync/range/utils/chainTarget.js +26 -1
  254. package/lib/sync/range/utils/chainTarget.js.map +1 -1
  255. package/lib/sync/range/utils/peerBalancer.d.ts +19 -5
  256. package/lib/sync/range/utils/peerBalancer.js +104 -10
  257. package/lib/sync/range/utils/peerBalancer.js.map +1 -1
  258. package/lib/sync/sync.js +1 -1
  259. package/lib/sync/sync.js.map +1 -1
  260. package/lib/sync/unknownBlock.d.ts +54 -5
  261. package/lib/sync/unknownBlock.js +321 -61
  262. package/lib/sync/unknownBlock.js.map +1 -1
  263. package/lib/sync/utils/remoteSyncType.d.ts +4 -4
  264. package/lib/sync/utils/remoteSyncType.js.map +1 -1
  265. package/lib/util/blobs.d.ts +16 -4
  266. package/lib/util/blobs.js +122 -5
  267. package/lib/util/blobs.js.map +1 -1
  268. package/lib/util/dataColumns.d.ts +137 -0
  269. package/lib/util/dataColumns.js +362 -0
  270. package/lib/util/dataColumns.js.map +1 -0
  271. package/lib/util/metadata.d.ts +5 -0
  272. package/lib/util/metadata.js +10 -0
  273. package/lib/util/metadata.js.map +1 -1
  274. package/lib/util/sszBytes.d.ts +3 -0
  275. package/lib/util/sszBytes.js +40 -0
  276. package/lib/util/sszBytes.js.map +1 -1
  277. package/lib/util/types.d.ts +7 -0
  278. package/lib/util/types.js +3 -0
  279. package/lib/util/types.js.map +1 -1
  280. package/package.json +19 -20
  281. package/lib/network/reqresp/handlers/status.d.ts +0 -4
  282. package/lib/network/reqresp/handlers/status.js +0 -11
  283. package/lib/network/reqresp/handlers/status.js.map +0 -1
@@ -0,0 +1,56 @@
1
+ import { RespStatus, ResponseError } from "@lodestar/reqresp";
2
+ import { prettyBytes, prettyPrintIndices } from "@lodestar/utils";
3
+ import { getBlobKzgCommitmentsCountFromSignedBeaconBlockSerialized } from "../../../util/sszBytes.js";
4
+ export async function handleColumnSidecarUnavailability({ chain, db, unavailableColumnIndex, requestedColumns, availableColumns, slot, blockRoot, }) {
5
+ const logData = {
6
+ unavailableColumnIndex,
7
+ requestedColumns: prettyPrintIndices(requestedColumns),
8
+ availableColumns: prettyPrintIndices(availableColumns),
9
+ slot,
10
+ };
11
+ if (blockRoot) {
12
+ logData.blockRoot = prettyBytes(blockRoot);
13
+ }
14
+ chain.logger.debug("dataColumnSidecar requested unavailable", logData);
15
+ const blockBytes = blockRoot ? await db.block.getBinary(blockRoot) : await db.blockArchive.getBinary(slot);
16
+ if (!blockBytes) {
17
+ chain.logger.error(`Expected ${blockRoot ? "unfinalized" : "finalized"} block not found while handling unavailable dataColumnSidecar`);
18
+ return;
19
+ }
20
+ // Check for blob count in actual block
21
+ const blobsCount = getBlobKzgCommitmentsCountFromSignedBeaconBlockSerialized(chain.config, blockBytes);
22
+ // There are zero blobs for that column index, so we can safely return without any error
23
+ if (blobsCount > 0)
24
+ return;
25
+ // There are blobs for that column index so we should have synced for it
26
+ // We need to inform to peers that we don't have that expected data
27
+ // NOTE: We may look to add some metrics to track such scenario
28
+ throw new ResponseError(RespStatus.RESOURCE_UNAVAILABLE, `dataColumnSidecar requested and within custody not available for columnIndex=${unavailableColumnIndex}`);
29
+ }
30
+ export function validateRequestedDataColumns(chain, requestedColumns) {
31
+ if (requestedColumns.length === 0) {
32
+ throw new ResponseError(RespStatus.INVALID_REQUEST, "dataColumnSidecar requested without column indices");
33
+ }
34
+ const custodyColumns = chain.custodyConfig.custodyColumns;
35
+ const availableColumns = requestedColumns.filter((c) => custodyColumns.includes(c));
36
+ const missingColumns = requestedColumns.filter((c) => !custodyColumns.includes(c));
37
+ if (missingColumns.length > 0) {
38
+ chain.logger.verbose("Requested dataColumnSidecar for non-custody columns", {
39
+ requestedColumns: prettyPrintIndices(requestedColumns),
40
+ custodyColumns: prettyPrintIndices(custodyColumns),
41
+ availableColumns: prettyPrintIndices(availableColumns),
42
+ missingColumns: prettyPrintIndices(missingColumns),
43
+ });
44
+ // TODO: We should throw error and only respond to valid requests
45
+ // A peer must check what we announced in our custody and only ask for those columns
46
+ // throw new ResponseError(RespStatus.INVALID_REQUEST, "dataColumnSidecar requested for non-custody columns");
47
+ }
48
+ if (availableColumns.length === 0) {
49
+ chain.logger.verbose("Requested dataColumnSidecars not available", {
50
+ requestedColumns: prettyPrintIndices(requestedColumns),
51
+ custodyColumns: prettyPrintIndices(custodyColumns),
52
+ });
53
+ }
54
+ return availableColumns;
55
+ }
56
+ //# sourceMappingURL=dataColumnResponseValidation.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"dataColumnResponseValidation.js","sourceRoot":"","sources":["../../../../src/network/reqresp/utils/dataColumnResponseValidation.ts"],"names":[],"mappings":"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"}
@@ -1,11 +1,11 @@
1
- import { phase0 } from "@lodestar/types";
1
+ import { Status } from "@lodestar/types";
2
2
  export interface StatusCache {
3
- get(): phase0.Status;
3
+ get(): Status;
4
4
  }
5
5
  export declare class LocalStatusCache implements StatusCache {
6
6
  private status;
7
- constructor(status: phase0.Status);
8
- get(): phase0.Status;
9
- update(localStatus: phase0.Status): void;
7
+ constructor(status: Status);
8
+ get(): Status;
9
+ update(localStatus: Status): void;
10
10
  }
11
11
  //# sourceMappingURL=statusCache.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"statusCache.js","sourceRoot":"","sources":["../../src/network/statusCache.ts"],"names":[],"mappings":"AAMA,MAAM,OAAO,gBAAgB;IAC3B,YAAoB,MAAqB;QAArB,WAAM,GAAN,MAAM,CAAe;IAAG,CAAC;IAE7C,GAAG;QACD,OAAO,IAAI,CAAC,MAAM,CAAC;IACrB,CAAC;IAED,MAAM,CAAC,WAA0B;QAC/B,IAAI,CAAC,MAAM,GAAG,WAAW,CAAC;IAC5B,CAAC;CACF"}
1
+ {"version":3,"file":"statusCache.js","sourceRoot":"","sources":["../../src/network/statusCache.ts"],"names":[],"mappings":"AAMA,MAAM,OAAO,gBAAgB;IAC3B,YAAoB,MAAc;QAAd,WAAM,GAAN,MAAM,CAAQ;IAAG,CAAC;IAEtC,GAAG;QACD,OAAO,IAAI,CAAC,MAAM,CAAC;IACrB,CAAC;IAED,MAAM,CAAC,WAAmB;QACxB,IAAI,CAAC,MAAM,GAAG,WAAW,CAAC;IAC5B,CAAC;CACF"}
@@ -1,3 +1,4 @@
1
+ import type { PeerId, PrivateKey } from "@libp2p/interface";
1
2
  import { ForkBoundary } from "@lodestar/config";
2
3
  import { Bytes32, Slot, SubnetID, ValidatorIndex } from "@lodestar/types";
3
4
  import { GossipTopic } from "../gossip/interface.js";
@@ -37,5 +38,7 @@ export type GossipSubscriber = {
37
38
  mesh: Map<TopicStr, Set<PeerIdStr>>;
38
39
  };
39
40
  export type NodeId = Bytes32;
41
+ export declare function computeNodeIdFromPrivateKey(privateKey: PrivateKey): NodeId;
42
+ export declare function computeNodeId(peerId: PeerId): Uint8Array;
40
43
  export {};
41
44
  //# sourceMappingURL=interface.d.ts.map
@@ -1,2 +1,15 @@
1
- export {};
1
+ import { getV4Crypto } from "@chainsafe/enr";
2
+ import { peerIdFromPrivateKey } from "@libp2p/peer-id";
3
+ import { fromHex } from "@lodestar/utils";
4
+ export function computeNodeIdFromPrivateKey(privateKey) {
5
+ const peerId = peerIdFromPrivateKey(privateKey);
6
+ return computeNodeId(peerId);
7
+ }
8
+ export function computeNodeId(peerId) {
9
+ if (peerId.publicKey === undefined) {
10
+ throw Error(`Undefined publicKey peerId=${peerId.toString()}`);
11
+ }
12
+ const nodeIdHex = getV4Crypto().nodeId(peerId.publicKey.raw);
13
+ return fromHex(nodeIdHex);
14
+ }
2
15
  //# sourceMappingURL=interface.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"interface.js","sourceRoot":"","sources":["../../../src/network/subnets/interface.ts"],"names":[],"mappings":""}
1
+ {"version":3,"file":"interface.js","sourceRoot":"","sources":["../../../src/network/subnets/interface.ts"],"names":[],"mappings":"AAAA,OAAO,EAAC,WAAW,EAAC,MAAM,gBAAgB,CAAC;AAE3C,OAAO,EAAC,oBAAoB,EAAC,MAAM,iBAAiB,CAAC;AAGrD,OAAO,EAAC,OAAO,EAAC,MAAM,iBAAiB,CAAC;AAiDxC,MAAM,UAAU,2BAA2B,CAAC,UAAsB;IAChE,MAAM,MAAM,GAAG,oBAAoB,CAAC,UAAU,CAAC,CAAC;IAChD,OAAO,aAAa,CAAC,MAAM,CAAC,CAAC;AAC/B,CAAC;AAED,MAAM,UAAU,aAAa,CAAC,MAAc;IAC1C,IAAI,MAAM,CAAC,SAAS,KAAK,SAAS,EAAE,CAAC;QACnC,MAAM,KAAK,CAAC,8BAA8B,MAAM,CAAC,QAAQ,EAAE,EAAE,CAAC,CAAC;IACjE,CAAC;IACD,MAAM,SAAS,GAAG,WAAW,EAAE,CAAC,MAAM,CAAC,MAAM,CAAC,SAAS,CAAC,GAAG,CAAC,CAAC;IAC7D,OAAO,OAAO,CAAC,SAAS,CAAC,CAAC;AAC5B,CAAC"}
@@ -5,7 +5,6 @@ import { ClockEvent } from "../../util/clock.js";
5
5
  import { getActiveForkBoundaries } from "../forks.js";
6
6
  import { GossipType } from "../gossip/index.js";
7
7
  import { SubnetMap } from "../peers/utils/index.js";
8
- const gossipType = GossipType.sync_committee;
9
8
  /**
10
9
  * Manage sync committee subnets. Sync committees are long (~27h) so there aren't random long-lived subscriptions
11
10
  */
@@ -73,7 +72,7 @@ export class SyncnetsService {
73
72
  subscribeSubnetsNextBoundary(boundary) {
74
73
  this.logger.info("Subscribing to random attnets for next fork boundary", boundary);
75
74
  for (const subnet of this.subscriptionsCommittee.getAll()) {
76
- this.gossip.subscribeTopic({ type: gossipType, boundary, subnet });
75
+ this.gossip.subscribeTopic({ type: GossipType.sync_committee, boundary, subnet });
77
76
  }
78
77
  }
79
78
  /** Call ONLY ONCE: Two epochs after the fork, un-subscribe all subnets from the old fork */
@@ -81,7 +80,7 @@ export class SyncnetsService {
81
80
  this.logger.info("Unsubscribing from random attnets of previous fork boundary", boundary);
82
81
  for (let subnet = 0; subnet < SYNC_COMMITTEE_SUBNET_COUNT; subnet++) {
83
82
  if (!this.opts?.subscribeAllSubnets) {
84
- this.gossip.unsubscribeTopic({ type: gossipType, boundary, subnet });
83
+ this.gossip.unsubscribeTopic({ type: GossipType.sync_committee, boundary, subnet });
85
84
  }
86
85
  }
87
86
  }
@@ -102,7 +101,7 @@ export class SyncnetsService {
102
101
  for (const subnet of subnets) {
103
102
  if (!this.subscriptionsCommittee.has(subnet)) {
104
103
  for (const boundary of boundaries) {
105
- this.gossip.subscribeTopic({ type: gossipType, boundary, subnet });
104
+ this.gossip.subscribeTopic({ type: GossipType.sync_committee, boundary, subnet });
106
105
  }
107
106
  this.metrics?.syncnetsService.subscribeSubnets.inc({ subnet });
108
107
  }
@@ -115,7 +114,7 @@ export class SyncnetsService {
115
114
  // No need to check if active in subscriptionsCommittee since we only have a single SubnetMap
116
115
  if (!this.opts?.subscribeAllSubnets) {
117
116
  for (const boundary of boundaries) {
118
- this.gossip.unsubscribeTopic({ type: gossipType, boundary, subnet });
117
+ this.gossip.unsubscribeTopic({ type: GossipType.sync_committee, boundary, subnet });
119
118
  }
120
119
  this.metrics?.syncnetsService.unsubscribeSubnets.inc({ subnet });
121
120
  }
@@ -1 +1 @@
1
- {"version":3,"file":"syncnetsService.js","sourceRoot":"","sources":["../../../src/network/subnets/syncnetsService.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"syncnetsService.js","sourceRoot":"","sources":["../../../src/network/subnets/syncnetsService.ts"],"names":[],"mappings":"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"}
@@ -96,6 +96,7 @@ export class BeaconNode {
96
96
  ? new MonitoringService("beacon", { ...opts.monitoring, endpoint: opts.monitoring.endpoint }, { register: metrics.register, logger: logger.child({ module: LoggerModule.monitoring }) })
97
97
  : null;
98
98
  const chain = new BeaconChain(opts.chain, {
99
+ privateKey,
99
100
  config,
100
101
  clock,
101
102
  dataDir,
@@ -1 +1 @@
1
- {"version":3,"file":"nodejs.js","sourceRoot":"","sources":["../../src/node/nodejs.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"nodejs.js","sourceRoot":"","sources":["../../src/node/nodejs.ts"],"names":[],"mappings":"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"}
@@ -3,9 +3,13 @@ export declare const PARALLEL_HEAD_CHAINS = 2;
3
3
  /** Minimum work we require a finalized chain to do before picking a chain with more peers. */
4
4
  export declare const MIN_FINALIZED_CHAIN_VALIDATED_EPOCHS = 10;
5
5
  /** The number of times to retry a batch before it is considered failed. */
6
- export declare const MAX_BATCH_DOWNLOAD_ATTEMPTS = 5;
7
- /** Consider batch faulty after downloading and processing this number of times */
8
- export declare const MAX_BATCH_PROCESSING_ATTEMPTS = 3;
6
+ export declare const MAX_BATCH_DOWNLOAD_ATTEMPTS = 20;
7
+ /**
8
+ * Consider batch faulty after downloading and processing this number of times
9
+ * for example a peer may send us a non-canonical chain segment or not returning all blocks
10
+ * in that case we should throw error and `RangeSync` should remove that error chain and add a new one.
11
+ **/
12
+ export declare const MAX_BATCH_PROCESSING_ATTEMPTS = 0;
9
13
  /**
10
14
  * Number of slots to offset batches.
11
15
  *
@@ -41,4 +45,15 @@ export declare const EPOCHS_PER_BATCH = 1;
41
45
  * TODO: When switching branches usually all batches in AwaitingProcessing are dropped, could it be optimized?
42
46
  */
43
47
  export declare const BATCH_BUFFER_SIZE: number;
48
+ /**
49
+ * Maximum number of concurrent requests to perform with a SyncChain.
50
+ * This is according to the spec https://github.com/ethereum/consensus-specs/blob/dev/specs/phase0/p2p-interface.md
51
+ */
52
+ export declare const MAX_CONCURRENT_REQUESTS = 2;
53
+ /**
54
+ * Maximum number of epochs to download ahead when syncing.
55
+ * In fulu, to fully process a batch we may need to download columns from multiple peers
56
+ * so having this constant too big is a waste of resources and peers may rate limit us.
57
+ */
58
+ export declare const MAX_LOOK_AHEAD_EPOCHS = 2;
44
59
  //# sourceMappingURL=constants.d.ts.map
@@ -3,9 +3,16 @@ export const PARALLEL_HEAD_CHAINS = 2;
3
3
  /** Minimum work we require a finalized chain to do before picking a chain with more peers. */
4
4
  export const MIN_FINALIZED_CHAIN_VALIDATED_EPOCHS = 10;
5
5
  /** The number of times to retry a batch before it is considered failed. */
6
- export const MAX_BATCH_DOWNLOAD_ATTEMPTS = 5;
7
- /** Consider batch faulty after downloading and processing this number of times */
8
- export const MAX_BATCH_PROCESSING_ATTEMPTS = 3;
6
+ // export const MAX_BATCH_DOWNLOAD_ATTEMPTS = 5;
7
+ // this constant is increased a lot for peerDAS because we may have many failed download due to rate limit not implemented yet
8
+ // TODO: change it back to 5 when this issue is implemented https://github.com/ChainSafe/lodestar/issues/8033
9
+ export const MAX_BATCH_DOWNLOAD_ATTEMPTS = 20;
10
+ /**
11
+ * Consider batch faulty after downloading and processing this number of times
12
+ * for example a peer may send us a non-canonical chain segment or not returning all blocks
13
+ * in that case we should throw error and `RangeSync` should remove that error chain and add a new one.
14
+ **/
15
+ export const MAX_BATCH_PROCESSING_ATTEMPTS = 0;
9
16
  /**
10
17
  * Number of slots to offset batches.
11
18
  *
@@ -41,4 +48,15 @@ export const EPOCHS_PER_BATCH = 1;
41
48
  * TODO: When switching branches usually all batches in AwaitingProcessing are dropped, could it be optimized?
42
49
  */
43
50
  export const BATCH_BUFFER_SIZE = Math.ceil(10 / EPOCHS_PER_BATCH);
51
+ /**
52
+ * Maximum number of concurrent requests to perform with a SyncChain.
53
+ * This is according to the spec https://github.com/ethereum/consensus-specs/blob/dev/specs/phase0/p2p-interface.md
54
+ */
55
+ export const MAX_CONCURRENT_REQUESTS = 2;
56
+ /**
57
+ * Maximum number of epochs to download ahead when syncing.
58
+ * In fulu, to fully process a batch we may need to download columns from multiple peers
59
+ * so having this constant too big is a waste of resources and peers may rate limit us.
60
+ */
61
+ export const MAX_LOOK_AHEAD_EPOCHS = 2;
44
62
  //# sourceMappingURL=constants.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"constants.js","sourceRoot":"","sources":["../../src/sync/constants.ts"],"names":[],"mappings":"AAAA,2DAA2D;AAC3D,MAAM,CAAC,MAAM,oBAAoB,GAAG,CAAC,CAAC;AAEtC,8FAA8F;AAC9F,MAAM,CAAC,MAAM,oCAAoC,GAAG,EAAE,CAAC;AAEvD,2EAA2E;AAC3E,MAAM,CAAC,MAAM,2BAA2B,GAAG,CAAC,CAAC;AAE7C,kFAAkF;AAClF,MAAM,CAAC,MAAM,6BAA6B,GAAG,CAAC,CAAC;AAE/C;;;;;;;;;;;GAWG;AACH,MAAM,CAAC,MAAM,iBAAiB,GAAG,CAAC,CAAC;AAEnC,4CAA4C;AAC5C,MAAM,CAAC,MAAM,yBAAyB,GAAG,CAAC,CAAC,CAAC;AAE5C;;;;;;;;;;GAUG;AACH,MAAM,CAAC,MAAM,gBAAgB,GAAG,CAAC,CAAC;AAElC;;;;;;GAMG;AACH,MAAM,CAAC,MAAM,iBAAiB,GAAG,IAAI,CAAC,IAAI,CAAC,EAAE,GAAG,gBAAgB,CAAC,CAAC"}
1
+ {"version":3,"file":"constants.js","sourceRoot":"","sources":["../../src/sync/constants.ts"],"names":[],"mappings":"AAAA,2DAA2D;AAC3D,MAAM,CAAC,MAAM,oBAAoB,GAAG,CAAC,CAAC;AAEtC,8FAA8F;AAC9F,MAAM,CAAC,MAAM,oCAAoC,GAAG,EAAE,CAAC;AAEvD,2EAA2E;AAC3E,gDAAgD;AAChD,8HAA8H;AAC9H,6GAA6G;AAC7G,MAAM,CAAC,MAAM,2BAA2B,GAAG,EAAE,CAAC;AAE9C;;;;IAII;AACJ,MAAM,CAAC,MAAM,6BAA6B,GAAG,CAAC,CAAC;AAE/C;;;;;;;;;;;GAWG;AACH,MAAM,CAAC,MAAM,iBAAiB,GAAG,CAAC,CAAC;AAEnC,4CAA4C;AAC5C,MAAM,CAAC,MAAM,yBAAyB,GAAG,CAAC,CAAC,CAAC;AAE5C;;;;;;;;;;GAUG;AACH,MAAM,CAAC,MAAM,gBAAgB,GAAG,CAAC,CAAC;AAElC;;;;;;GAMG;AACH,MAAM,CAAC,MAAM,iBAAiB,GAAG,IAAI,CAAC,IAAI,CAAC,EAAE,GAAG,gBAAgB,CAAC,CAAC;AAElE;;;GAGG;AACH,MAAM,CAAC,MAAM,uBAAuB,GAAG,CAAC,CAAC;AAEzC;;;;GAIG;AACH,MAAM,CAAC,MAAM,qBAAqB,GAAG,CAAC,CAAC"}
@@ -68,7 +68,7 @@ export type UnknownBlock = PendingBlockCommon & {
68
68
  unknownBlockType: PendingBlockType.UNKNOWN_BLOCK;
69
69
  blockInput: null;
70
70
  } | {
71
- unknownBlockType: PendingBlockType.UNKNOWN_BLOBS;
71
+ unknownBlockType: PendingBlockType.UNKNOWN_DATA;
72
72
  blockInput: BlockInput & {
73
73
  type: BlockInputType.dataPromise;
74
74
  };
@@ -100,6 +100,6 @@ export declare enum PendingBlockType {
100
100
  */
101
101
  UNKNOWN_PARENT = "unknown_parent",
102
102
  UNKNOWN_BLOCKINPUT = "unknown_blockinput",
103
- UNKNOWN_BLOBS = "unknown_blobs"
103
+ UNKNOWN_DATA = "unknown_data"
104
104
  }
105
105
  //# sourceMappingURL=interface.d.ts.map
@@ -34,6 +34,6 @@ export var PendingBlockType;
34
34
  */
35
35
  PendingBlockType["UNKNOWN_PARENT"] = "unknown_parent";
36
36
  PendingBlockType["UNKNOWN_BLOCKINPUT"] = "unknown_blockinput";
37
- PendingBlockType["UNKNOWN_BLOBS"] = "unknown_blobs";
37
+ PendingBlockType["UNKNOWN_DATA"] = "unknown_data";
38
38
  })(PendingBlockType || (PendingBlockType = {}));
39
39
  //# sourceMappingURL=interface.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"interface.js","sourceRoot":"","sources":["../../src/sync/interface.ts"],"names":[],"mappings":"AAuBA,MAAM,CAAN,IAAY,SASX;AATD,WAAY,SAAS;IACnB,oCAAoC;IACpC,gCAAmB,CAAA;IACnB,sEAAsE;IACtE,kDAAqC,CAAA;IACrC,gEAAgE;IAChE,wCAA2B,CAAA;IAC3B,kDAAkD;IAClD,8BAAiB,CAAA;AACnB,CAAC,EATW,SAAS,KAAT,SAAS,QASpB;AAED,6DAA6D;AAC7D,MAAM,CAAC,MAAM,eAAe,GAA+B;IACzD,CAAC,SAAS,CAAC,OAAO,CAAC,EAAE,CAAC;IACtB,CAAC,SAAS,CAAC,gBAAgB,CAAC,EAAE,CAAC;IAC/B,CAAC,SAAS,CAAC,WAAW,CAAC,EAAE,CAAC;IAC1B,CAAC,SAAS,CAAC,MAAM,CAAC,EAAE,CAAC;CACtB,CAAC;AAuDF,MAAM,CAAN,IAAY,kBAKX;AALD,WAAY,kBAAkB;IAC5B,yCAAmB,CAAA;IACnB,2CAAqB,CAAA;IACrB,+CAAyB,CAAA;IACzB,+CAAyB,CAAA;AAC3B,CAAC,EALW,kBAAkB,KAAlB,kBAAkB,QAK7B;AAED,MAAM,CAAN,IAAY,gBAYX;AAZD,WAAY,gBAAgB;IAC1B;;OAEG;IACH,mDAA+B,CAAA;IAC/B;;OAEG;IACH,qDAAiC,CAAA;IAEjC,6DAAyC,CAAA;IACzC,mDAA+B,CAAA;AACjC,CAAC,EAZW,gBAAgB,KAAhB,gBAAgB,QAY3B"}
1
+ {"version":3,"file":"interface.js","sourceRoot":"","sources":["../../src/sync/interface.ts"],"names":[],"mappings":"AAuBA,MAAM,CAAN,IAAY,SASX;AATD,WAAY,SAAS;IACnB,oCAAoC;IACpC,gCAAmB,CAAA;IACnB,sEAAsE;IACtE,kDAAqC,CAAA;IACrC,gEAAgE;IAChE,wCAA2B,CAAA;IAC3B,kDAAkD;IAClD,8BAAiB,CAAA;AACnB,CAAC,EATW,SAAS,KAAT,SAAS,QASpB;AAED,6DAA6D;AAC7D,MAAM,CAAC,MAAM,eAAe,GAA+B;IACzD,CAAC,SAAS,CAAC,OAAO,CAAC,EAAE,CAAC;IACtB,CAAC,SAAS,CAAC,gBAAgB,CAAC,EAAE,CAAC;IAC/B,CAAC,SAAS,CAAC,WAAW,CAAC,EAAE,CAAC;IAC1B,CAAC,SAAS,CAAC,MAAM,CAAC,EAAE,CAAC;CACtB,CAAC;AAuDF,MAAM,CAAN,IAAY,kBAKX;AALD,WAAY,kBAAkB;IAC5B,yCAAmB,CAAA;IACnB,2CAAqB,CAAA;IACrB,+CAAyB,CAAA;IACzB,+CAAyB,CAAA;AAC3B,CAAC,EALW,kBAAkB,KAAlB,kBAAkB,QAK7B;AAED,MAAM,CAAN,IAAY,gBAYX;AAZD,WAAY,gBAAgB;IAC1B;;OAEG;IACH,mDAA+B,CAAA;IAC/B;;OAEG;IACH,qDAAiC,CAAA;IAEjC,6DAAyC,CAAA;IACzC,iDAA6B,CAAA;AAC/B,CAAC,EAZW,gBAAgB,KAAhB,gBAAgB,QAY3B"}
@@ -2,6 +2,7 @@ import { ChainForkConfig } from "@lodestar/config";
2
2
  import { Epoch, RootHex, phase0 } from "@lodestar/types";
3
3
  import { LodestarError } from "@lodestar/utils";
4
4
  import { BlockInput } from "../../chain/blocks/types.js";
5
+ import { PartialDownload } from "../../network/reqresp/beaconBlocksMaybeBlobsByRange.js";
5
6
  import { PeerIdStr } from "../../util/peerId.js";
6
7
  /**
7
8
  * Current state of a batch
@@ -32,9 +33,11 @@ export type Attempt = {
32
33
  };
33
34
  export type BatchState = {
34
35
  status: BatchStatus.AwaitingDownload;
36
+ partialDownload: PartialDownload;
35
37
  } | {
36
38
  status: BatchStatus.Downloading;
37
39
  peer: PeerIdStr;
40
+ partialDownload: PartialDownload;
38
41
  } | {
39
42
  status: BatchStatus.AwaitingProcessing;
40
43
  peer: PeerIdStr;
@@ -50,6 +53,13 @@ export type BatchMetadata = {
50
53
  startEpoch: Epoch;
51
54
  status: BatchStatus;
52
55
  };
56
+ export type DownloadSuccessOutput = {
57
+ status: BatchStatus.AwaitingProcessing;
58
+ blocks: BlockInput[];
59
+ } | {
60
+ status: BatchStatus.AwaitingDownload;
61
+ pendingDataColumns: number[];
62
+ };
53
63
  /**
54
64
  * Batches are downloaded at the first block of the epoch.
55
65
  *
@@ -83,11 +93,15 @@ export declare class Batch {
83
93
  /**
84
94
  * AwaitingDownload -> Downloading
85
95
  */
86
- startDownloading(peer: PeerIdStr): void;
96
+ startDownloading(peer: PeerIdStr): PartialDownload;
87
97
  /**
88
98
  * Downloading -> AwaitingProcessing
99
+ * pendingDataColumns is null when a complete download is done, otherwise it contains the columns that are still pending
89
100
  */
90
- downloadingSuccess(blocks: BlockInput[]): void;
101
+ downloadingSuccess(downloadResult: {
102
+ blocks: BlockInput[];
103
+ pendingDataColumns: null | number[];
104
+ }): DownloadSuccessOutput;
91
105
  /**
92
106
  * Downloading -> AwaitingDownload
93
107
  */
@@ -112,6 +126,7 @@ export declare class Batch {
112
126
  * AwaitingValidation -> Done
113
127
  */
114
128
  validationSuccess(): Attempt;
129
+ isPostFulu(): boolean;
115
130
  private onExecutionEngineError;
116
131
  private onProcessingError;
117
132
  /** Helper to construct typed BatchError. Stack traces are correct as the error is thrown above */
@@ -1,3 +1,4 @@
1
+ import { ForkSeq } from "@lodestar/params";
1
2
  import { LodestarError } from "@lodestar/utils";
2
3
  import { BlockError, BlockErrorCode } from "../../chain/errors/index.js";
3
4
  import { MAX_BATCH_DOWNLOAD_ATTEMPTS, MAX_BATCH_PROCESSING_ATTEMPTS } from "../constants.js";
@@ -38,7 +39,7 @@ export var BatchStatus;
38
39
  export class Batch {
39
40
  constructor(startEpoch, config) {
40
41
  /** State of the batch. */
41
- this.state = { status: BatchStatus.AwaitingDownload };
42
+ this.state = { status: BatchStatus.AwaitingDownload, partialDownload: null };
42
43
  /** The `Attempts` that have been made and failed to send us this batch. */
43
44
  this.failedProcessingAttempts = [];
44
45
  /** The `Attempts` that have been made and failed because of execution malfunction. */
@@ -70,16 +71,43 @@ export class Batch {
70
71
  if (this.state.status !== BatchStatus.AwaitingDownload) {
71
72
  throw new BatchError(this.wrongStatusErrorType(BatchStatus.AwaitingDownload));
72
73
  }
73
- this.state = { status: BatchStatus.Downloading, peer };
74
+ const { partialDownload } = this.state;
75
+ this.state = { status: BatchStatus.Downloading, peer, partialDownload };
76
+ return partialDownload;
74
77
  }
75
78
  /**
76
79
  * Downloading -> AwaitingProcessing
80
+ * pendingDataColumns is null when a complete download is done, otherwise it contains the columns that are still pending
77
81
  */
78
- downloadingSuccess(blocks) {
82
+ downloadingSuccess(downloadResult) {
79
83
  if (this.state.status !== BatchStatus.Downloading) {
80
84
  throw new BatchError(this.wrongStatusErrorType(BatchStatus.Downloading));
81
85
  }
82
- this.state = { status: BatchStatus.AwaitingProcessing, peer: this.state.peer, blocks };
86
+ let updatedPendingDataColumns = this.state.partialDownload?.pendingDataColumns ?? null;
87
+ const { blocks, pendingDataColumns } = downloadResult;
88
+ if (updatedPendingDataColumns == null) {
89
+ // state pendingDataColumns is null as initial value, just update it to pendingDataColumns in this case
90
+ updatedPendingDataColumns = pendingDataColumns;
91
+ }
92
+ else {
93
+ updatedPendingDataColumns =
94
+ // pendingDataColumns = null means a complete download
95
+ pendingDataColumns == null
96
+ ? null
97
+ : // if not state pendingDataColumns should be reduced over time, see see https://github.com/ChainSafe/lodestar/issues/8036
98
+ updatedPendingDataColumns.filter((column) => pendingDataColumns.includes(column));
99
+ }
100
+ if (updatedPendingDataColumns === null) {
101
+ // complete download
102
+ this.state = { status: BatchStatus.AwaitingProcessing, peer: this.state.peer, blocks };
103
+ return { status: BatchStatus.AwaitingProcessing, blocks };
104
+ }
105
+ // partial download, track updatedPendingDataColumns in state
106
+ this.state = {
107
+ status: BatchStatus.AwaitingDownload,
108
+ partialDownload: blocks.length === 0 ? null : { blocks, pendingDataColumns: updatedPendingDataColumns },
109
+ };
110
+ return { status: BatchStatus.AwaitingDownload, pendingDataColumns: updatedPendingDataColumns };
83
111
  }
84
112
  /**
85
113
  * Downloading -> AwaitingDownload
@@ -92,7 +120,8 @@ export class Batch {
92
120
  if (this.failedDownloadAttempts.length > MAX_BATCH_DOWNLOAD_ATTEMPTS) {
93
121
  throw new BatchError(this.errorType({ code: BatchErrorCode.MAX_DOWNLOAD_ATTEMPTS }));
94
122
  }
95
- this.state = { status: BatchStatus.AwaitingDownload };
123
+ const { partialDownload } = this.state;
124
+ this.state = { status: BatchStatus.AwaitingDownload, partialDownload };
96
125
  }
97
126
  /**
98
127
  * AwaitingProcessing -> Processing
@@ -152,19 +181,22 @@ export class Batch {
152
181
  }
153
182
  return this.state.attempt;
154
183
  }
184
+ isPostFulu() {
185
+ return this.config.getForkSeq(this.request.startSlot) >= ForkSeq.fulu;
186
+ }
155
187
  onExecutionEngineError(attempt) {
156
188
  this.executionErrorAttempts.push(attempt);
157
189
  if (this.executionErrorAttempts.length > MAX_BATCH_PROCESSING_ATTEMPTS) {
158
190
  throw new BatchError(this.errorType({ code: BatchErrorCode.MAX_EXECUTION_ENGINE_ERROR_ATTEMPTS }));
159
191
  }
160
- this.state = { status: BatchStatus.AwaitingDownload };
192
+ this.state = { status: BatchStatus.AwaitingDownload, partialDownload: null };
161
193
  }
162
194
  onProcessingError(attempt) {
163
195
  this.failedProcessingAttempts.push(attempt);
164
196
  if (this.failedProcessingAttempts.length > MAX_BATCH_PROCESSING_ATTEMPTS) {
165
197
  throw new BatchError(this.errorType({ code: BatchErrorCode.MAX_PROCESSING_ATTEMPTS }));
166
198
  }
167
- this.state = { status: BatchStatus.AwaitingDownload };
199
+ this.state = { status: BatchStatus.AwaitingDownload, partialDownload: null };
168
200
  }
169
201
  /** Helper to construct typed BatchError. Stack traces are correct as the error is thrown above */
170
202
  errorType(type) {
@@ -1 +1 @@
1
- {"version":3,"file":"batch.js","sourceRoot":"","sources":["../../../src/sync/range/batch.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"batch.js","sourceRoot":"","sources":["../../../src/sync/range/batch.ts"],"names":[],"mappings":"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"}
@@ -2,13 +2,19 @@ import { ChainForkConfig } from "@lodestar/config";
2
2
  import { Epoch, Root, Slot, phase0 } from "@lodestar/types";
3
3
  import { Logger } from "@lodestar/utils";
4
4
  import { BlockInput } from "../../chain/blocks/types.js";
5
+ import { Metrics } from "../../metrics/metrics.js";
5
6
  import { PeerAction } from "../../network/index.js";
7
+ import { PeerSyncMeta } from "../../network/peers/peersData.js";
8
+ import { PartialDownload } from "../../network/reqresp/beaconBlocksMaybeBlobsByRange.js";
9
+ import { CustodyConfig } from "../../util/dataColumns.js";
6
10
  import { PeerIdStr } from "../../util/peerId.js";
7
11
  import { RangeSyncType } from "../utils/remoteSyncType.js";
8
12
  import { BatchErrorCode, BatchMetadata } from "./batch.js";
9
13
  export type SyncChainModules = {
10
14
  config: ChainForkConfig;
15
+ custodyConfig: CustodyConfig;
11
16
  logger: Logger;
17
+ metrics: Metrics | null;
12
18
  };
13
19
  export type SyncChainFns = {
14
20
  /**
@@ -17,9 +23,14 @@ export type SyncChainFns = {
17
23
  */
18
24
  processChainSegment: (blocks: BlockInput[], syncType: RangeSyncType) => Promise<void>;
19
25
  /** Must download blocks, and validate their range */
20
- downloadBeaconBlocksByRange: (peer: PeerIdStr, request: phase0.BeaconBlocksByRangeRequest) => Promise<BlockInput[]>;
26
+ downloadBeaconBlocksByRange: (peer: PeerSyncMeta, request: phase0.BeaconBlocksByRangeRequest, partialDownload: PartialDownload, syncType: RangeSyncType) => Promise<{
27
+ blocks: BlockInput[];
28
+ pendingDataColumns: null | number[];
29
+ }>;
21
30
  /** Report peer for negative actions. Decouples from the full network instance */
22
31
  reportPeer: (peer: PeerIdStr, action: PeerAction, actionName: string) => void;
32
+ /** Gets current peer custodyColumns and earliestAvailableSlot */
33
+ getConnectedPeerSyncMeta: (peerId: string) => PeerSyncMeta;
23
34
  /** Hook called when Chain state completes */
24
35
  onEnd: (err: Error | null, target: ChainTarget | null) => void;
25
36
  };
@@ -77,6 +88,7 @@ export declare class SyncChain {
77
88
  private readonly processChainSegment;
78
89
  private readonly downloadBeaconBlocksByRange;
79
90
  private readonly reportPeer;
91
+ private readonly getConnectedPeerSyncMeta;
80
92
  /** AsyncIterable that guarantees processChainSegment is run only at once at anytime */
81
93
  private readonly batchProcessor;
82
94
  /** Sorted map of batches undergoing some kind of processing. */
@@ -84,6 +96,7 @@ export declare class SyncChain {
84
96
  private readonly peerset;
85
97
  private readonly logger;
86
98
  private readonly config;
99
+ private readonly custodyConfig;
87
100
  constructor(initialBatchEpoch: Epoch, initialTarget: ChainTarget, syncType: RangeSyncType, fns: SyncChainFns, modules: SyncChainModules);
88
101
  /**
89
102
  * Start syncing a new chain or an old one with an existing peer list
@@ -154,6 +167,7 @@ export declare class SyncChain {
154
167
  * Drops any batches previous to `newLatestValidatedEpoch` and updates the chain boundaries
155
168
  */
156
169
  private advanceChain;
170
+ private scrapeMetrics;
157
171
  }
158
172
  /**
159
173
  * Enforces that a report peer action is defined for all BatchErrorCode exhaustively.