@lodestar/beacon-node 1.33.0-peerDAS.e03bda542e → 1.33.0-rc.0

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 (233) hide show
  1. package/lib/api/impl/beacon/blocks/index.js +26 -66
  2. package/lib/api/impl/beacon/blocks/index.js.map +1 -1
  3. package/lib/api/impl/debug/index.d.ts +1 -1
  4. package/lib/api/impl/debug/index.js +1 -24
  5. package/lib/api/impl/debug/index.js.map +1 -1
  6. package/lib/chain/archiveStore/archiveStore.d.ts +1 -1
  7. package/lib/chain/archiveStore/archiveStore.js +2 -2
  8. package/lib/chain/archiveStore/interface.d.ts +1 -1
  9. package/lib/chain/archiveStore/utils/archiveBlocks.d.ts +1 -1
  10. package/lib/chain/archiveStore/utils/archiveBlocks.js +23 -88
  11. package/lib/chain/archiveStore/utils/archiveBlocks.js.map +1 -1
  12. package/lib/chain/beaconProposerCache.d.ts +0 -1
  13. package/lib/chain/beaconProposerCache.js +0 -3
  14. package/lib/chain/beaconProposerCache.js.map +1 -1
  15. package/lib/chain/blocks/importBlock.js +3 -8
  16. package/lib/chain/blocks/importBlock.js.map +1 -1
  17. package/lib/chain/blocks/types.d.ts +24 -67
  18. package/lib/chain/blocks/types.js +6 -40
  19. package/lib/chain/blocks/types.js.map +1 -1
  20. package/lib/chain/blocks/verifyBlocksDataAvailability.js +10 -21
  21. package/lib/chain/blocks/verifyBlocksDataAvailability.js.map +1 -1
  22. package/lib/chain/blocks/writeBlockInputToDb.js +15 -89
  23. package/lib/chain/blocks/writeBlockInputToDb.js.map +1 -1
  24. package/lib/chain/chain.d.ts +5 -16
  25. package/lib/chain/chain.js +6 -34
  26. package/lib/chain/chain.js.map +1 -1
  27. package/lib/chain/emitter.d.ts +2 -18
  28. package/lib/chain/emitter.js +0 -13
  29. package/lib/chain/emitter.js.map +1 -1
  30. package/lib/chain/errors/index.d.ts +0 -1
  31. package/lib/chain/errors/index.js +0 -1
  32. package/lib/chain/errors/index.js.map +1 -1
  33. package/lib/chain/interface.d.ts +4 -10
  34. package/lib/chain/interface.js.map +1 -1
  35. package/lib/chain/options.d.ts +1 -4
  36. package/lib/chain/options.js +1 -5
  37. package/lib/chain/options.js.map +1 -1
  38. package/lib/chain/prepareNextSlot.js +1 -1
  39. package/lib/chain/prepareNextSlot.js.map +1 -1
  40. package/lib/chain/produceBlock/produceBlockBody.d.ts +2 -4
  41. package/lib/chain/produceBlock/produceBlockBody.js +2 -7
  42. package/lib/chain/produceBlock/produceBlockBody.js.map +1 -1
  43. package/lib/chain/produceBlock/validateBlobsAndKzgCommitments.d.ts +2 -3
  44. package/lib/chain/produceBlock/validateBlobsAndKzgCommitments.js +2 -25
  45. package/lib/chain/produceBlock/validateBlobsAndKzgCommitments.js.map +1 -1
  46. package/lib/chain/seenCache/seenGossipBlockInput.d.ts +18 -64
  47. package/lib/chain/seenCache/seenGossipBlockInput.js +53 -321
  48. package/lib/chain/seenCache/seenGossipBlockInput.js.map +1 -1
  49. package/lib/constants/network.d.ts +1 -0
  50. package/lib/constants/network.js +2 -0
  51. package/lib/constants/network.js.map +1 -1
  52. package/lib/db/beacon.d.ts +1 -3
  53. package/lib/db/beacon.js +1 -3
  54. package/lib/db/beacon.js.map +1 -1
  55. package/lib/db/buckets.d.ts +1 -3
  56. package/lib/db/buckets.js +0 -2
  57. package/lib/db/buckets.js.map +1 -1
  58. package/lib/db/interface.d.ts +1 -3
  59. package/lib/db/repositories/index.d.ts +0 -2
  60. package/lib/db/repositories/index.js +0 -2
  61. package/lib/db/repositories/index.js.map +1 -1
  62. package/lib/execution/engine/http.d.ts +3 -5
  63. package/lib/execution/engine/http.js +31 -70
  64. package/lib/execution/engine/http.js.map +1 -1
  65. package/lib/execution/engine/interface.d.ts +2 -4
  66. package/lib/execution/engine/interface.js +1 -1
  67. package/lib/execution/engine/interface.js.map +1 -1
  68. package/lib/execution/engine/mock.d.ts +0 -1
  69. package/lib/execution/engine/mock.js +0 -5
  70. package/lib/execution/engine/mock.js.map +1 -1
  71. package/lib/execution/engine/types.d.ts +0 -10
  72. package/lib/execution/engine/types.js +0 -6
  73. package/lib/execution/engine/types.js.map +1 -1
  74. package/lib/metrics/metrics/beacon.d.ts +1 -15
  75. package/lib/metrics/metrics/beacon.js +1 -58
  76. package/lib/metrics/metrics/beacon.js.map +1 -1
  77. package/lib/metrics/metrics/lodestar.d.ts +1 -23
  78. package/lib/metrics/metrics/lodestar.js +0 -39
  79. package/lib/metrics/metrics/lodestar.js.map +1 -1
  80. package/lib/network/core/metrics.d.ts +3 -10
  81. package/lib/network/core/metrics.js +4 -22
  82. package/lib/network/core/metrics.js.map +1 -1
  83. package/lib/network/core/networkCore.d.ts +3 -8
  84. package/lib/network/core/networkCore.js +10 -24
  85. package/lib/network/core/networkCore.js.map +1 -1
  86. package/lib/network/core/networkCoreWorker.js +0 -1
  87. package/lib/network/core/networkCoreWorker.js.map +1 -1
  88. package/lib/network/core/networkCoreWorkerHandler.d.ts +3 -4
  89. package/lib/network/core/networkCoreWorkerHandler.js +0 -4
  90. package/lib/network/core/networkCoreWorkerHandler.js.map +1 -1
  91. package/lib/network/core/types.d.ts +4 -6
  92. package/lib/network/events.d.ts +2 -4
  93. package/lib/network/events.js.map +1 -1
  94. package/lib/network/gossip/interface.d.ts +1 -8
  95. package/lib/network/gossip/interface.js +0 -1
  96. package/lib/network/gossip/interface.js.map +1 -1
  97. package/lib/network/gossip/topic.d.ts +1497 -1513
  98. package/lib/network/gossip/topic.js +1 -20
  99. package/lib/network/gossip/topic.js.map +1 -1
  100. package/lib/network/interface.d.ts +1 -13
  101. package/lib/network/metadata.d.ts +5 -9
  102. package/lib/network/metadata.js +5 -25
  103. package/lib/network/metadata.js.map +1 -1
  104. package/lib/network/network.d.ts +2 -12
  105. package/lib/network/network.js +8 -59
  106. package/lib/network/network.js.map +1 -1
  107. package/lib/network/options.js +0 -5
  108. package/lib/network/options.js.map +1 -1
  109. package/lib/network/peers/discover.d.ts +5 -9
  110. package/lib/network/peers/discover.js +23 -108
  111. package/lib/network/peers/discover.js.map +1 -1
  112. package/lib/network/peers/peerManager.d.ts +4 -10
  113. package/lib/network/peers/peerManager.js +46 -101
  114. package/lib/network/peers/peerManager.js.map +1 -1
  115. package/lib/network/peers/peersData.d.ts +3 -17
  116. package/lib/network/peers/peersData.js.map +1 -1
  117. package/lib/network/peers/score/constants.d.ts +3 -1
  118. package/lib/network/peers/score/constants.js +3 -1
  119. package/lib/network/peers/score/constants.js.map +1 -1
  120. package/lib/network/peers/score/interface.d.ts +6 -1
  121. package/lib/network/peers/score/interface.js.map +1 -1
  122. package/lib/network/peers/score/score.d.ts +7 -2
  123. package/lib/network/peers/score/score.js +35 -5
  124. package/lib/network/peers/score/score.js.map +1 -1
  125. package/lib/network/peers/score/store.d.ts +10 -3
  126. package/lib/network/peers/score/store.js +15 -6
  127. package/lib/network/peers/score/store.js.map +1 -1
  128. package/lib/network/peers/utils/assertPeerRelevance.d.ts +3 -7
  129. package/lib/network/peers/utils/assertPeerRelevance.js +1 -10
  130. package/lib/network/peers/utils/assertPeerRelevance.js.map +1 -1
  131. package/lib/network/peers/utils/prioritizePeers.d.ts +7 -18
  132. package/lib/network/peers/utils/prioritizePeers.js +7 -43
  133. package/lib/network/peers/utils/prioritizePeers.js.map +1 -1
  134. package/lib/network/processor/extractSlotRootFns.js +1 -8
  135. package/lib/network/processor/extractSlotRootFns.js.map +1 -1
  136. package/lib/network/processor/gossipHandlers.js +9 -156
  137. package/lib/network/processor/gossipHandlers.js.map +1 -1
  138. package/lib/network/processor/gossipQueues/index.js +0 -5
  139. package/lib/network/processor/gossipQueues/index.js.map +1 -1
  140. package/lib/network/processor/index.js +0 -1
  141. package/lib/network/processor/index.js.map +1 -1
  142. package/lib/network/reqresp/ReqRespBeaconNode.d.ts +2 -2
  143. package/lib/network/reqresp/ReqRespBeaconNode.js +10 -33
  144. package/lib/network/reqresp/ReqRespBeaconNode.js.map +1 -1
  145. package/lib/network/reqresp/beaconBlocksMaybeBlobsByRange.d.ts +5 -16
  146. package/lib/network/reqresp/beaconBlocksMaybeBlobsByRange.js +14 -204
  147. package/lib/network/reqresp/beaconBlocksMaybeBlobsByRange.js.map +1 -1
  148. package/lib/network/reqresp/beaconBlocksMaybeBlobsByRoot.d.ts +6 -32
  149. package/lib/network/reqresp/beaconBlocksMaybeBlobsByRoot.js +28 -283
  150. package/lib/network/reqresp/beaconBlocksMaybeBlobsByRoot.js.map +1 -1
  151. package/lib/network/reqresp/handlers/beaconBlocksByRange.d.ts +1 -1
  152. package/lib/network/reqresp/handlers/beaconBlocksByRange.js.map +1 -1
  153. package/lib/network/reqresp/handlers/index.js +0 -10
  154. package/lib/network/reqresp/handlers/index.js.map +1 -1
  155. package/lib/network/reqresp/handlers/status.js +2 -3
  156. package/lib/network/reqresp/handlers/status.js.map +1 -1
  157. package/lib/network/reqresp/protocols.d.ts +0 -4
  158. package/lib/network/reqresp/protocols.js +0 -20
  159. package/lib/network/reqresp/protocols.js.map +1 -1
  160. package/lib/network/reqresp/rateLimit.js +1 -11
  161. package/lib/network/reqresp/rateLimit.js.map +1 -1
  162. package/lib/network/reqresp/types.d.ts +8 -15
  163. package/lib/network/reqresp/types.js +3 -10
  164. package/lib/network/reqresp/types.js.map +1 -1
  165. package/lib/network/statusCache.d.ts +5 -5
  166. package/lib/network/statusCache.js.map +1 -1
  167. package/lib/network/subnets/interface.d.ts +0 -3
  168. package/lib/network/subnets/interface.js +1 -14
  169. package/lib/network/subnets/interface.js.map +1 -1
  170. package/lib/network/subnets/syncnetsService.js +5 -4
  171. package/lib/network/subnets/syncnetsService.js.map +1 -1
  172. package/lib/node/nodejs.js +0 -1
  173. package/lib/node/nodejs.js.map +1 -1
  174. package/lib/sync/constants.d.ts +1 -1
  175. package/lib/sync/constants.js +1 -4
  176. package/lib/sync/constants.js.map +1 -1
  177. package/lib/sync/interface.d.ts +2 -2
  178. package/lib/sync/interface.js +1 -1
  179. package/lib/sync/interface.js.map +1 -1
  180. package/lib/sync/range/batch.d.ts +2 -16
  181. package/lib/sync/range/batch.js +7 -38
  182. package/lib/sync/range/batch.js.map +1 -1
  183. package/lib/sync/range/chain.d.ts +1 -16
  184. package/lib/sync/range/chain.js +30 -110
  185. package/lib/sync/range/chain.js.map +1 -1
  186. package/lib/sync/range/range.d.ts +2 -3
  187. package/lib/sync/range/range.js +3 -9
  188. package/lib/sync/range/range.js.map +1 -1
  189. package/lib/sync/range/utils/chainTarget.d.ts +1 -5
  190. package/lib/sync/range/utils/chainTarget.js +1 -26
  191. package/lib/sync/range/utils/chainTarget.js.map +1 -1
  192. package/lib/sync/range/utils/peerBalancer.d.ts +5 -12
  193. package/lib/sync/range/utils/peerBalancer.js +10 -69
  194. package/lib/sync/range/utils/peerBalancer.js.map +1 -1
  195. package/lib/sync/unknownBlock.d.ts +1 -8
  196. package/lib/sync/unknownBlock.js +69 -226
  197. package/lib/sync/unknownBlock.js.map +1 -1
  198. package/lib/sync/utils/remoteSyncType.d.ts +4 -4
  199. package/lib/sync/utils/remoteSyncType.js.map +1 -1
  200. package/lib/util/blobs.d.ts +1 -18
  201. package/lib/util/blobs.js +1 -104
  202. package/lib/util/blobs.js.map +1 -1
  203. package/lib/util/metadata.d.ts +0 -4
  204. package/lib/util/metadata.js +0 -7
  205. package/lib/util/metadata.js.map +1 -1
  206. package/lib/util/sszBytes.d.ts +0 -1
  207. package/lib/util/sszBytes.js +0 -17
  208. package/lib/util/sszBytes.js.map +1 -1
  209. package/package.json +14 -14
  210. package/lib/chain/errors/dataColumnSidecarError.d.ts +0 -69
  211. package/lib/chain/errors/dataColumnSidecarError.js +0 -21
  212. package/lib/chain/errors/dataColumnSidecarError.js.map +0 -1
  213. package/lib/chain/validation/dataColumnSidecar.d.ts +0 -28
  214. package/lib/chain/validation/dataColumnSidecar.js +0 -248
  215. package/lib/chain/validation/dataColumnSidecar.js.map +0 -1
  216. package/lib/db/repositories/dataColumnSidecars.d.ts +0 -47
  217. package/lib/db/repositories/dataColumnSidecars.js +0 -40
  218. package/lib/db/repositories/dataColumnSidecars.js.map +0 -1
  219. package/lib/db/repositories/dataColumnSidecarsArchive.d.ts +0 -15
  220. package/lib/db/repositories/dataColumnSidecarsArchive.js +0 -23
  221. package/lib/db/repositories/dataColumnSidecarsArchive.js.map +0 -1
  222. package/lib/network/networkConfig.d.ts +0 -22
  223. package/lib/network/networkConfig.js +0 -29
  224. package/lib/network/networkConfig.js.map +0 -1
  225. package/lib/network/reqresp/handlers/dataColumnSidecarsByRange.d.ts +0 -8
  226. package/lib/network/reqresp/handlers/dataColumnSidecarsByRange.js +0 -106
  227. package/lib/network/reqresp/handlers/dataColumnSidecarsByRange.js.map +0 -1
  228. package/lib/network/reqresp/handlers/dataColumnSidecarsByRoot.d.ts +0 -6
  229. package/lib/network/reqresp/handlers/dataColumnSidecarsByRoot.js +0 -57
  230. package/lib/network/reqresp/handlers/dataColumnSidecarsByRoot.js.map +0 -1
  231. package/lib/util/dataColumns.d.ts +0 -132
  232. package/lib/util/dataColumns.js +0 -353
  233. package/lib/util/dataColumns.js.map +0 -1
@@ -1,19 +1,8 @@
1
1
  import { ChainForkConfig } from "@lodestar/config";
2
- import { ColumnIndex, Epoch, SignedBeaconBlock, Slot, deneb, fulu, phase0 } from "@lodestar/types";
3
- import { Logger } from "@lodestar/utils";
4
- import { BlobsSource, BlockInput, BlockSource, DataColumnsSource } from "../../chain/blocks/types.js";
5
- import { Metrics } from "../../metrics/index.js";
2
+ import { Epoch, SignedBeaconBlock, Slot, WithBytes, deneb, phase0 } from "@lodestar/types";
3
+ import { BlobsSource, BlockInput, BlockSource } from "../../chain/blocks/types.js";
6
4
  import { PeerIdStr } from "../../util/peerId.js";
7
- import { INetwork, WithOptionalBytes } from "../interface.js";
8
- import { PeerSyncMeta } from "../peers/peersData.js";
9
- export type PartialDownload = null | {
10
- blocks: BlockInput[];
11
- pendingDataColumns: number[];
12
- };
13
- export declare function beaconBlocksMaybeBlobsByRange(config: ChainForkConfig, network: INetwork, peer: PeerSyncMeta, request: phase0.BeaconBlocksByRangeRequest, currentEpoch: Epoch, partialDownload: PartialDownload, metrics: Metrics | null, logger?: Logger): Promise<{
14
- blocks: BlockInput[];
15
- pendingDataColumns: null | number[];
16
- }>;
17
- export declare function matchBlockWithBlobs(config: ChainForkConfig, allBlocks: WithOptionalBytes<SignedBeaconBlock>[], allBlobSidecars: deneb.BlobSidecar[], endSlot: Slot, blockSource: BlockSource, blobsSource: BlobsSource): BlockInput[];
18
- export declare function matchBlockWithDataColumns(_network: INetwork, peerId: PeerIdStr, config: ChainForkConfig, sampledColumns: ColumnIndex[], requestedColumns: number[], allBlocks: WithOptionalBytes<SignedBeaconBlock>[], allDataColumnSidecars: fulu.DataColumnSidecar[], endSlot: Slot, blockSource: BlockSource, dataColumnsSource: DataColumnsSource, prevPartialDownload: null | PartialDownload, peerClient: string, metrics: Metrics | null, logger?: Logger): BlockInput[];
5
+ import { INetwork } from "../interface.js";
6
+ export declare function beaconBlocksMaybeBlobsByRange(config: ChainForkConfig, network: INetwork, peerId: PeerIdStr, request: phase0.BeaconBlocksByRangeRequest, currentEpoch: Epoch): Promise<BlockInput[]>;
7
+ export declare function matchBlockWithBlobs(config: ChainForkConfig, allBlocks: WithBytes<SignedBeaconBlock>[], allBlobSidecars: deneb.BlobSidecar[], endSlot: Slot, blockSource: BlockSource, blobsSource: BlobsSource): BlockInput[];
19
8
  //# sourceMappingURL=beaconBlocksMaybeBlobsByRange.d.ts.map
@@ -1,15 +1,12 @@
1
- import { ForkName, ForkSeq } from "@lodestar/params";
1
+ import { ForkSeq } from "@lodestar/params";
2
2
  import { computeEpochAtSlot } from "@lodestar/state-transition";
3
- import { ssz } from "@lodestar/types";
4
- import { BlobsSource, BlockInputType, BlockSource, DataColumnsSource, getBlockInput, getBlockInputDataColumns, } from "../../chain/blocks/types.js";
5
- import { getEmptyBlockInputCacheEntry } from "../../chain/seenCache/seenGossipBlockInput.js";
6
- export async function beaconBlocksMaybeBlobsByRange(config, network, peer, request, currentEpoch, partialDownload, metrics, logger) {
7
- const { peerId, client: peerClient, custodyGroups: peerColumns, earliestAvailableSlot } = peer;
3
+ import { BlobsSource, BlockSource, getBlockInput } from "../../chain/blocks/types.js";
4
+ export async function beaconBlocksMaybeBlobsByRange(config, network, peerId, request, currentEpoch) {
8
5
  // Code below assumes the request is in the same epoch
9
6
  // Range sync satisfies this condition, but double check here for sanity
10
7
  const { startSlot, count } = request;
11
8
  if (count < 1) {
12
- return { blocks: [], pendingDataColumns: null };
9
+ return [];
13
10
  }
14
11
  const endSlot = startSlot + count - 1;
15
12
  const startEpoch = computeEpochAtSlot(startSlot);
@@ -17,86 +14,23 @@ export async function beaconBlocksMaybeBlobsByRange(config, network, peer, reque
17
14
  if (startEpoch !== endEpoch) {
18
15
  throw Error(`BeaconBlocksByRangeRequest must be in the same epoch startEpoch=${startEpoch} != endEpoch=${endEpoch}`);
19
16
  }
20
- const forkSeq = config.getForkSeq(startSlot);
21
17
  // Note: Assumes all blocks in the same epoch
22
- if (forkSeq < ForkSeq.deneb) {
23
- const beaconBlocks = await network.sendBeaconBlocksByRange(peerId, request);
24
- const blocks = beaconBlocks.map((block) => getBlockInput.preData(config, block.data, BlockSource.byRange));
25
- return { blocks, pendingDataColumns: null };
18
+ if (config.getForkSeq(startSlot) < ForkSeq.deneb) {
19
+ const blocks = await network.sendBeaconBlocksByRange(peerId, request);
20
+ return blocks.map((block) => getBlockInput.preData(config, block.data, BlockSource.byRange));
26
21
  }
27
22
  // From Deneb
28
23
  // Only request blobs if they are recent enough
29
24
  if (startEpoch >= currentEpoch - config.MIN_EPOCHS_FOR_BLOB_SIDECARS_REQUESTS) {
30
- if (forkSeq < ForkSeq.fulu) {
31
- const [allBlocks, allBlobSidecars] = await Promise.all([
32
- network.sendBeaconBlocksByRange(peerId, request),
33
- network.sendBlobSidecarsByRange(peerId, request),
34
- ]);
35
- const blocks = matchBlockWithBlobs(config, allBlocks, allBlobSidecars, endSlot, BlockSource.byRange, BlobsSource.byRange);
36
- return { blocks, pendingDataColumns: null };
37
- }
38
- // get columns
39
- const sampledColumns = network.custodyConfig.sampledColumns;
40
- const neededColumns = partialDownload ? partialDownload.pendingDataColumns : sampledColumns;
41
- // This should never throw. Already checking for this in ChainPeerBalancer when selecting the peer
42
- if ((earliestAvailableSlot ?? 0) > startSlot) {
43
- throw new Error(`earliestAvailableSlot=${earliestAvailableSlot} not respected for ByRange startSlot=${startSlot}`);
44
- }
45
- // get match
46
- const columns = peerColumns.reduce((acc, elem) => {
47
- if (neededColumns.includes(elem)) {
48
- acc.push(elem);
49
- }
50
- return acc;
51
- }, []);
52
- if (columns.length === 0 && partialDownload !== null) {
53
- // this peer has nothing to offer and should not have been selected for batch download
54
- // throw error?
55
- return partialDownload;
56
- }
57
- const pendingDataColumns = neededColumns.reduce((acc, elem) => {
58
- if (!columns.includes(elem)) {
59
- acc.push(elem);
60
- }
61
- return acc;
62
- }, []);
63
- const dataColumnRequest = { ...request, columns };
64
- const [allBlocks, allDataColumnSidecars] = await Promise.all([
65
- // TODO-das: investigate why partialDownload blocks is empty here
66
- partialDownload && partialDownload.blocks.length > 0
67
- ? partialDownload.blocks.map((blockInput) => ({ data: blockInput.block }))
68
- : network.sendBeaconBlocksByRange(peerId, request),
69
- columns.length === 0 ? [] : network.sendDataColumnSidecarsByRange(peerId, dataColumnRequest),
25
+ const [allBlocks, allBlobSidecars] = await Promise.all([
26
+ network.sendBeaconBlocksByRange(peerId, request),
27
+ network.sendBlobSidecarsByRange(peerId, request),
70
28
  ]);
71
- logger?.debug("ByRange requests", {
72
- beaconBlocksRequest: JSON.stringify(ssz.phase0.BeaconBlocksByRangeRequest.toJson(request)),
73
- dataColumnRequest: JSON.stringify(ssz.fulu.DataColumnSidecarsByRangeRequest.toJson(dataColumnRequest)),
74
- [`allBlocks(${allBlocks.length})`]: allBlocks.map((blk) => blk.data.message.slot).join(" "),
75
- [`allDataColumnSidecars(${allDataColumnSidecars.length})`]: allDataColumnSidecars
76
- .map((dCol) => `${dCol.signedBlockHeader.message.slot}:${dCol.index}`)
77
- .join(" "),
78
- peerColumns: peerColumns.join(" "),
79
- peerId,
80
- peerClient,
81
- prevPartialDownload: !!partialDownload,
82
- });
83
- const blocks = matchBlockWithDataColumns(network, peerId, config, sampledColumns, columns, allBlocks, allDataColumnSidecars, endSlot, BlockSource.byRange, DataColumnsSource.byRange, partialDownload, peerClient, metrics, logger);
84
- return { blocks, pendingDataColumns: pendingDataColumns.length > 0 ? pendingDataColumns : null };
29
+ return matchBlockWithBlobs(config, allBlocks, allBlobSidecars, endSlot, BlockSource.byRange, BlobsSource.byRange);
85
30
  }
86
- logger?.verbose(`Download range is out of ${config.MIN_EPOCHS_FOR_BLOB_SIDECARS_REQUESTS} epochs, skip Blobs and DataColumnSidecars download`, {
87
- startEpoch,
88
- startSlot,
89
- endSlot,
90
- currentEpoch,
91
- });
92
31
  // Data is out of range, only request blocks
93
32
  const blocks = await network.sendBeaconBlocksByRange(peerId, request);
94
- return {
95
- blocks: blocks.map((block) => getBlockInput.outOfRangeData(config, block.data, BlockSource.byRange)),
96
- // TODO: (@matthewkeil) this was a merge conflict when rebased on electra. Should this be a null or an empty array? Should it
97
- // depend on which fork we are in? Need to revisit
98
- pendingDataColumns: null,
99
- };
33
+ return blocks.map((block) => getBlockInput.outOfRangeData(config, block.data, BlockSource.byRange));
100
34
  }
101
35
  // Assumes that the blobs are in the same sequence as blocks, doesn't require block to be sorted
102
36
  export function matchBlockWithBlobs(config, allBlocks, allBlobSidecars, endSlot, blockSource, blobsSource) {
@@ -134,6 +68,7 @@ export function matchBlockWithBlobs(config, allBlocks, allBlobSidecars, endSlot,
134
68
  blobs: blobSidecars,
135
69
  blobsSource,
136
70
  };
71
+ // TODO DENEB: instead of null, pass payload in bytes
137
72
  blockInputs.push(getBlockInput.availableData(config, block.data, blockSource, blockData));
138
73
  }
139
74
  }
@@ -145,133 +80,8 @@ export function matchBlockWithBlobs(config, allBlocks, allBlobSidecars, endSlot,
145
80
  throw Error(`Unmatched blobSidecars, blocks=${allBlocks.length}, blobs=${allBlobSidecars.length} lastMatchedSlot=${lastMatchedSlot}, pending blobSidecars slots=${allBlobSidecars
146
81
  .slice(blobSideCarIndex)
147
82
  .map((blb) => blb.signedBlockHeader.message.slot)
148
- .join(" ")}`);
149
- }
150
- return blockInputs;
151
- }
152
- export function matchBlockWithDataColumns(_network, peerId, config, sampledColumns, requestedColumns, allBlocks, allDataColumnSidecars, endSlot, blockSource, dataColumnsSource, prevPartialDownload, peerClient, metrics, logger) {
153
- const blockInputs = [];
154
- let dataColumnSideCarIndex = 0;
155
- let lastMatchedSlot = -1;
156
- const neededColumns = prevPartialDownload?.pendingDataColumns ?? sampledColumns;
157
- const shouldHaveAllData = neededColumns.reduce((acc, elem) => acc && requestedColumns.includes(elem), true);
158
- // Match dataColumnSideCar with the block as some blocks would have no dataColumns and hence
159
- // would be omitted from the response. If there are any inconsitencies in the
160
- // response, the validations during import will reject the block and hence this
161
- // entire segment.
162
- //
163
- // Assuming that the blocks and blobs will come in same sorted order
164
- for (let i = 0; i < allBlocks.length; i++) {
165
- const block = allBlocks[i];
166
- const forkSeq = config.getForkSeq(block.data.message.slot);
167
- if (forkSeq < ForkSeq.fulu) {
168
- throw Error(`Invalid block forkSeq=${forkSeq} < ForSeq.fulu for matchBlockWithDataColumns`);
169
- }
170
- const dataColumnSidecars = [];
171
- while (allDataColumnSidecars[dataColumnSideCarIndex]?.signedBlockHeader.message.slot === block.data.message.slot) {
172
- dataColumnSidecars.push(allDataColumnSidecars[dataColumnSideCarIndex]);
173
- lastMatchedSlot = block.data.message.slot;
174
- dataColumnSideCarIndex++;
175
- }
176
- metrics?.dataColumns.bySource.inc({ source: DataColumnsSource.byRange }, dataColumnSidecars.length);
177
- const blobKzgCommitmentsLen = block.data.message.body.blobKzgCommitments.length;
178
- logger?.debug("processing matchBlockWithDataColumns", {
179
- blobKzgCommitmentsLen,
180
- dataColumnSidecars: dataColumnSidecars.length,
181
- shouldHaveAllData,
182
- neededColumns: neededColumns.join(" "),
183
- requestedColumns: requestedColumns.join(" "),
184
- slot: block.data.message.slot,
185
- dataColumnsSlots: dataColumnSidecars.map((dcm) => dcm.signedBlockHeader.message.slot).join(" "),
186
- peerClient,
187
- });
188
- if (blobKzgCommitmentsLen === 0) {
189
- if (dataColumnSidecars.length > 0) {
190
- throw Error(`Missing or mismatching dataColumnSidecars from peerId=${peerId} for blockSlot=${block.data.message.slot} with blobKzgCommitmentsLen=0 dataColumnSidecars=${dataColumnSidecars.length}>0`);
191
- }
192
- const blockData = {
193
- fork: config.getForkName(block.data.message.slot),
194
- dataColumns: [],
195
- dataColumnsBytes: [],
196
- dataColumnsSource,
197
- };
198
- blockInputs.push(getBlockInput.availableData(config, block.data, blockSource, blockData));
199
- }
200
- else {
201
- // Quick inspect how many blobSidecars was expected
202
- const dataColumnIndexes = dataColumnSidecars.map((dataColumnSidecar) => dataColumnSidecar.index);
203
- const requestedColumnsPresent = requestedColumns.reduce((acc, columnIndex) => acc && dataColumnIndexes.includes(columnIndex), true);
204
- logger?.debug("matchBlockWithDataColumns2", {
205
- dataColumnIndexes: dataColumnIndexes.join(" "),
206
- requestedColumnsPresent,
207
- slot: block.data.message.slot,
208
- peerClient,
209
- });
210
- if (dataColumnSidecars.length !== requestedColumns.length || !requestedColumnsPresent) {
211
- logger?.debug(`Missing or mismatching dataColumnSidecars from peerId=${peerId} for blockSlot=${block.data.message.slot} with numColumns=${sampledColumns.length} dataColumnSidecars=${dataColumnSidecars.length} requestedColumnsPresent=${requestedColumnsPresent} received dataColumnIndexes=${dataColumnIndexes.join(" ")} requested=${requestedColumns.join(" ")}`, {
212
- allBlocks: allBlocks.length,
213
- allDataColumnSidecars: allDataColumnSidecars.length,
214
- peerId,
215
- blobKzgCommitmentsLen,
216
- peerClient,
217
- });
218
- throw Error(`Missing or mismatching dataColumnSidecars from peerId=${peerId} for blockSlot=${block.data.message.slot} blobKzgCommitmentsLen=${blobKzgCommitmentsLen} with numColumns=${sampledColumns.length} dataColumnSidecars=${dataColumnSidecars.length} requestedColumnsPresent=${requestedColumnsPresent} received dataColumnIndexes=${dataColumnIndexes.join(" ")} requested=${requestedColumns.join(" ")}`);
219
- }
220
- let cachedData;
221
- // TODO-das: investigate why partialDownload blocks is empty here
222
- if (prevPartialDownload !== null && prevPartialDownload.blocks.length > 0) {
223
- const prevBlockInput = prevPartialDownload.blocks[i];
224
- if (prevBlockInput.type !== BlockInputType.dataPromise) {
225
- throw Error(`prevBlockInput.type=${prevBlockInput.type} in prevPartialDownload`);
226
- }
227
- cachedData = prevBlockInput.cachedData;
228
- }
229
- else {
230
- // biome-ignore lint/style/noNonNullAssertion: checked below for validity
231
- cachedData = getEmptyBlockInputCacheEntry(config.getForkName(block.data.message.slot), -1).cachedData;
232
- if (cachedData === undefined) {
233
- throw Error("Invalid cachedData=undefined from getEmptyBlockInputCacheEntry");
234
- }
235
- }
236
- if (cachedData.fork !== ForkName.fulu) {
237
- throw Error("Invalid fork for cachedData on dataColumns");
238
- }
239
- for (const dataColumnSidecar of dataColumnSidecars) {
240
- cachedData.dataColumnsCache.set(dataColumnSidecar.index, {
241
- dataColumn: dataColumnSidecar,
242
- dataColumnBytes: null,
243
- });
244
- }
245
- if (shouldHaveAllData) {
246
- const { dataColumns, dataColumnsBytes } = getBlockInputDataColumns(cachedData.dataColumnsCache, sampledColumns);
247
- const blockData = {
248
- fork: config.getForkName(block.data.message.slot),
249
- dataColumns,
250
- dataColumnsBytes,
251
- dataColumnsSource,
252
- };
253
- // TODO DENEB: instead of null, pass payload in bytes
254
- blockInputs.push(getBlockInput.availableData(config, block.data, blockSource, blockData));
255
- }
256
- else {
257
- blockInputs.push(getBlockInput.dataPromise(config, block.data, blockSource, cachedData));
258
- }
259
- }
260
- }
261
- // If there are still unconsumed blobs this means that the response was inconsistent
262
- // and matching was wrong and hence we should throw error
263
- if (allDataColumnSidecars[dataColumnSideCarIndex] !== undefined &&
264
- // If there are no data columns, the data columns request can give 1 block outside the requested range
265
- allDataColumnSidecars[dataColumnSideCarIndex].signedBlockHeader.message.slot <= endSlot) {
266
- throw Error(`Unmatched blobSidecars, blocks=${allBlocks.length}, blobs=${allDataColumnSidecars.length} lastMatchedSlot=${lastMatchedSlot}, pending blobSidecars slots=${allDataColumnSidecars
267
- .slice(dataColumnSideCarIndex)
268
- .map((blb) => blb.signedBlockHeader.message.slot)
269
- .join(" ")}`);
83
+ .join(",")}`);
270
84
  }
271
- logger?.debug("matched BlockWithDataColumns", {
272
- peerClient,
273
- blockInputs: blockInputs.map((bInpt) => `${bInpt.block.message.slot}=${bInpt.type}`).join(" "),
274
- });
275
85
  return blockInputs;
276
86
  }
277
87
  //# sourceMappingURL=beaconBlocksMaybeBlobsByRange.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"beaconBlocksMaybeBlobsByRange.js","sourceRoot":"","sources":["../../../src/network/reqresp/beaconBlocksMaybeBlobsByRange.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"beaconBlocksMaybeBlobsByRange.js","sourceRoot":"","sources":["../../../src/network/reqresp/beaconBlocksMaybeBlobsByRange.ts"],"names":[],"mappings":"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"}
@@ -1,44 +1,18 @@
1
1
  import { ChainForkConfig } from "@lodestar/config";
2
- import { RootHex, SignedBeaconBlock, phase0 } from "@lodestar/types";
2
+ import { RootHex, phase0 } from "@lodestar/types";
3
3
  import { BlobAndProof } from "@lodestar/types/deneb";
4
- import { Logger } from "@lodestar/utils";
5
- import { BlockInput, CachedBlobs, NullBlockInput } from "../../chain/blocks/types.js";
4
+ import { BlockInput, NullBlockInput } from "../../chain/blocks/types.js";
6
5
  import { ChainEventEmitter } from "../../chain/emitter.js";
7
6
  import { IExecutionEngine } from "../../execution/index.js";
8
7
  import { Metrics } from "../../metrics/index.js";
9
8
  import { PeerIdStr } from "../../util/peerId.js";
10
9
  import { INetwork } from "../interface.js";
11
- import { PartialDownload } from "./beaconBlocksMaybeBlobsByRange.js";
12
- export declare function beaconBlocksMaybeBlobsByRoot(config: ChainForkConfig, network: INetwork, peerId: PeerIdStr, request: phase0.BeaconBlocksByRootRequest, partialDownload: null | PartialDownload, peerClient: string, metrics: Metrics | null, logger?: Logger): Promise<{
13
- blocks: BlockInput[];
14
- pendingDataColumns: null | number[];
15
- }>;
16
- export declare function unavailableBeaconBlobsByRoot(config: ChainForkConfig, network: INetwork, peerId: PeerIdStr, peerClient: string, unavailableBlockInput: BlockInput | NullBlockInput, opts: {
17
- logger?: Logger;
18
- metrics?: Metrics | null;
10
+ export declare function beaconBlocksMaybeBlobsByRoot(config: ChainForkConfig, network: INetwork, peerId: PeerIdStr, request: phase0.BeaconBlocksByRootRequest): Promise<BlockInput[]>;
11
+ export declare function unavailableBeaconBlobsByRoot(config: ChainForkConfig, network: INetwork, peerId: PeerIdStr, unavailableBlockInput: BlockInput | NullBlockInput, opts: {
12
+ metrics: Metrics | null;
13
+ emitter: ChainEventEmitter | null;
19
14
  executionEngine: IExecutionEngine;
20
- emitter: ChainEventEmitter;
21
15
  engineGetBlobsCache?: Map<RootHex, BlobAndProof | null>;
22
16
  blockInputsRetryTrackerCache?: Set<RootHex>;
23
17
  }): Promise<BlockInput>;
24
- export declare function unavailableBeaconBlobsByRootPreFulu(config: ChainForkConfig, network: INetwork, peerId: PeerIdStr, unavailableBlockInput: BlockInput | NullBlockInput, block: SignedBeaconBlock, cachedData: CachedBlobs, opts: {
25
- metrics?: Metrics | null;
26
- emitter: ChainEventEmitter;
27
- executionEngine: IExecutionEngine;
28
- engineGetBlobsCache?: Map<RootHex, BlobAndProof | null>;
29
- blockInputsRetryTrackerCache?: Set<RootHex>;
30
- }): Promise<BlockInput>;
31
- /**
32
- * Download more columns for a BlockInput
33
- * - unavailableBlockInput should have block, but not enough blobs (deneb) or data columns (fulu)
34
- *
35
- * This function may return data promise, and consumer should continue with fetching more blobs or columns from other peers
36
- * see UnknownBlockSync.fetchUnavailableBlockInput()
37
- */
38
- export declare function unavailableBeaconBlobsByRootPostFulu(config: ChainForkConfig, network: INetwork, peerId: PeerIdStr, peerClient: string, unavailableBlockInput: BlockInput, block: SignedBeaconBlock, cachedData: NullBlockInput["cachedData"], opts: {
39
- metrics?: Metrics | null;
40
- executionEngine: IExecutionEngine;
41
- emitter: ChainEventEmitter;
42
- logger?: Logger;
43
- }): Promise<BlockInput>;
44
18
  //# sourceMappingURL=beaconBlocksMaybeBlobsByRoot.d.ts.map