@lodestar/beacon-node 1.49.0-dev.3f33d73d55 → 1.49.0-dev.418afc191b

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 (235) hide show
  1. package/lib/api/impl/beacon/blocks/index.d.ts.map +1 -1
  2. package/lib/api/impl/beacon/blocks/index.js +13 -4
  3. package/lib/api/impl/beacon/blocks/index.js.map +1 -1
  4. package/lib/api/impl/beacon/pool/index.d.ts.map +1 -1
  5. package/lib/api/impl/beacon/pool/index.js +4 -2
  6. package/lib/api/impl/beacon/pool/index.js.map +1 -1
  7. package/lib/api/impl/beacon/state/index.d.ts.map +1 -1
  8. package/lib/api/impl/beacon/state/index.js +28 -0
  9. package/lib/api/impl/beacon/state/index.js.map +1 -1
  10. package/lib/api/impl/validator/index.d.ts.map +1 -1
  11. package/lib/api/impl/validator/index.js +3 -1
  12. package/lib/api/impl/validator/index.js.map +1 -1
  13. package/lib/chain/archiveStore/archiveStore.d.ts +1 -2
  14. package/lib/chain/archiveStore/archiveStore.d.ts.map +1 -1
  15. package/lib/chain/archiveStore/archiveStore.js +23 -7
  16. package/lib/chain/archiveStore/archiveStore.js.map +1 -1
  17. package/lib/chain/archiveStore/historicalState/metrics.d.ts.map +1 -1
  18. package/lib/chain/archiveStore/historicalState/metrics.js +5 -6
  19. package/lib/chain/archiveStore/historicalState/metrics.js.map +1 -1
  20. package/lib/chain/archiveStore/utils/archiveBlocks.d.ts +11 -2
  21. package/lib/chain/archiveStore/utils/archiveBlocks.d.ts.map +1 -1
  22. package/lib/chain/archiveStore/utils/archiveBlocks.js +46 -28
  23. package/lib/chain/archiveStore/utils/archiveBlocks.js.map +1 -1
  24. package/lib/chain/archiveStore/utils/pruneHistory.d.ts +2 -2
  25. package/lib/chain/archiveStore/utils/pruneHistory.d.ts.map +1 -1
  26. package/lib/chain/archiveStore/utils/pruneHistory.js +1 -0
  27. package/lib/chain/archiveStore/utils/pruneHistory.js.map +1 -1
  28. package/lib/chain/blocks/importExecutionPayload.d.ts.map +1 -1
  29. package/lib/chain/blocks/importExecutionPayload.js +13 -0
  30. package/lib/chain/blocks/importExecutionPayload.js.map +1 -1
  31. package/lib/chain/chain.d.ts +10 -0
  32. package/lib/chain/chain.d.ts.map +1 -1
  33. package/lib/chain/chain.js +85 -16
  34. package/lib/chain/chain.js.map +1 -1
  35. package/lib/chain/errors/envelopeReconstructionError.d.ts +23 -0
  36. package/lib/chain/errors/envelopeReconstructionError.d.ts.map +1 -0
  37. package/lib/chain/errors/envelopeReconstructionError.js +13 -0
  38. package/lib/chain/errors/envelopeReconstructionError.js.map +1 -0
  39. package/lib/chain/errors/index.d.ts +1 -0
  40. package/lib/chain/errors/index.d.ts.map +1 -1
  41. package/lib/chain/errors/index.js +1 -0
  42. package/lib/chain/errors/index.js.map +1 -1
  43. package/lib/chain/errors/payloadAttestation.d.ts +4 -0
  44. package/lib/chain/errors/payloadAttestation.d.ts.map +1 -1
  45. package/lib/chain/errors/payloadAttestation.js +1 -0
  46. package/lib/chain/errors/payloadAttestation.js.map +1 -1
  47. package/lib/chain/interface.d.ts +6 -1
  48. package/lib/chain/interface.d.ts.map +1 -1
  49. package/lib/chain/interface.js.map +1 -1
  50. package/lib/chain/options.d.ts +2 -4
  51. package/lib/chain/options.d.ts.map +1 -1
  52. package/lib/chain/options.js +1 -1
  53. package/lib/chain/options.js.map +1 -1
  54. package/lib/chain/produceBlock/computeNewStateRoot.d.ts.map +1 -1
  55. package/lib/chain/produceBlock/computeNewStateRoot.js +4 -2
  56. package/lib/chain/produceBlock/computeNewStateRoot.js.map +1 -1
  57. package/lib/chain/validation/payloadAttestationMessage.d.ts.map +1 -1
  58. package/lib/chain/validation/payloadAttestationMessage.js +8 -1
  59. package/lib/chain/validation/payloadAttestationMessage.js.map +1 -1
  60. package/lib/db/beacon.d.ts +1 -2
  61. package/lib/db/beacon.d.ts.map +1 -1
  62. package/lib/db/beacon.js +1 -3
  63. package/lib/db/beacon.js.map +1 -1
  64. package/lib/db/buckets.d.ts +0 -1
  65. package/lib/db/buckets.d.ts.map +1 -1
  66. package/lib/db/buckets.js +1 -1
  67. package/lib/db/buckets.js.map +1 -1
  68. package/lib/db/interface.d.ts +1 -2
  69. package/lib/db/interface.d.ts.map +1 -1
  70. package/lib/db/repositories/blockArchiveIndex.d.ts +2 -2
  71. package/lib/db/repositories/blockArchiveIndex.d.ts.map +1 -1
  72. package/lib/db/repositories/executionPayloadEnvelopeArchive.d.ts +21 -9
  73. package/lib/db/repositories/executionPayloadEnvelopeArchive.d.ts.map +1 -1
  74. package/lib/db/repositories/executionPayloadEnvelopeArchive.js +32 -12
  75. package/lib/db/repositories/executionPayloadEnvelopeArchive.js.map +1 -1
  76. package/lib/db/repositories/index.d.ts +1 -2
  77. package/lib/db/repositories/index.d.ts.map +1 -1
  78. package/lib/db/repositories/index.js +1 -2
  79. package/lib/db/repositories/index.js.map +1 -1
  80. package/lib/execution/engine/disabled.d.ts +1 -0
  81. package/lib/execution/engine/disabled.d.ts.map +1 -1
  82. package/lib/execution/engine/disabled.js +3 -0
  83. package/lib/execution/engine/disabled.js.map +1 -1
  84. package/lib/execution/engine/http.d.ts +2 -1
  85. package/lib/execution/engine/http.d.ts.map +1 -1
  86. package/lib/execution/engine/http.js +7 -1
  87. package/lib/execution/engine/http.js.map +1 -1
  88. package/lib/execution/engine/interface.d.ts +3 -1
  89. package/lib/execution/engine/interface.d.ts.map +1 -1
  90. package/lib/execution/engine/jsonRpcHttpClient.d.ts +2 -1
  91. package/lib/execution/engine/jsonRpcHttpClient.d.ts.map +1 -1
  92. package/lib/execution/engine/jsonRpcHttpClient.js +6 -1
  93. package/lib/execution/engine/jsonRpcHttpClient.js.map +1 -1
  94. package/lib/execution/engine/mock.d.ts +1 -0
  95. package/lib/execution/engine/mock.d.ts.map +1 -1
  96. package/lib/execution/engine/mock.js +14 -2
  97. package/lib/execution/engine/mock.js.map +1 -1
  98. package/lib/execution/engine/transportMetrics.d.ts +13 -0
  99. package/lib/execution/engine/transportMetrics.d.ts.map +1 -0
  100. package/lib/execution/engine/transportMetrics.js +2 -0
  101. package/lib/execution/engine/transportMetrics.js.map +1 -0
  102. package/lib/execution/engine/types.d.ts +11 -0
  103. package/lib/execution/engine/types.d.ts.map +1 -1
  104. package/lib/execution/engine/types.js +10 -0
  105. package/lib/execution/engine/types.js.map +1 -1
  106. package/lib/metrics/metrics/beacon.d.ts +9 -0
  107. package/lib/metrics/metrics/beacon.d.ts.map +1 -1
  108. package/lib/metrics/metrics/beacon.js +16 -0
  109. package/lib/metrics/metrics/beacon.js.map +1 -1
  110. package/lib/metrics/metrics/lodestar.d.ts +27 -11
  111. package/lib/metrics/metrics/lodestar.d.ts.map +1 -1
  112. package/lib/metrics/metrics/lodestar.js +58 -23
  113. package/lib/metrics/metrics/lodestar.js.map +1 -1
  114. package/lib/metrics/metrics.d.ts +3 -1
  115. package/lib/metrics/metrics.d.ts.map +1 -1
  116. package/lib/metrics/metrics.js +2 -2
  117. package/lib/metrics/metrics.js.map +1 -1
  118. package/lib/network/processor/index.d.ts +1 -1
  119. package/lib/network/processor/index.d.ts.map +1 -1
  120. package/lib/network/processor/index.js +42 -21
  121. package/lib/network/processor/index.js.map +1 -1
  122. package/lib/network/reqresp/handlers/executionPayloadEnvelopesByRange.d.ts.map +1 -1
  123. package/lib/network/reqresp/handlers/executionPayloadEnvelopesByRange.js +47 -34
  124. package/lib/network/reqresp/handlers/executionPayloadEnvelopesByRange.js.map +1 -1
  125. package/lib/network/reqresp/handlers/executionPayloadEnvelopesByRoot.d.ts.map +1 -1
  126. package/lib/network/reqresp/handlers/executionPayloadEnvelopesByRoot.js +23 -4
  127. package/lib/network/reqresp/handlers/executionPayloadEnvelopesByRoot.js.map +1 -1
  128. package/lib/network/reqresp/handlers/index.d.ts.map +1 -1
  129. package/lib/network/reqresp/handlers/index.js +20 -4
  130. package/lib/network/reqresp/handlers/index.js.map +1 -1
  131. package/lib/node/nodejs.d.ts +2 -7
  132. package/lib/node/nodejs.d.ts.map +1 -1
  133. package/lib/node/nodejs.js +2 -22
  134. package/lib/node/nodejs.js.map +1 -1
  135. package/lib/sync/interface.d.ts +1 -2
  136. package/lib/sync/interface.d.ts.map +1 -1
  137. package/lib/sync/options.d.ts +0 -6
  138. package/lib/sync/options.d.ts.map +1 -1
  139. package/lib/sync/options.js +0 -2
  140. package/lib/sync/options.js.map +1 -1
  141. package/lib/sync/types.d.ts +18 -3
  142. package/lib/sync/types.d.ts.map +1 -1
  143. package/lib/sync/types.js +19 -3
  144. package/lib/sync/types.js.map +1 -1
  145. package/lib/sync/unknownBlock.d.ts +19 -0
  146. package/lib/sync/unknownBlock.d.ts.map +1 -1
  147. package/lib/sync/unknownBlock.js +184 -15
  148. package/lib/sync/unknownBlock.js.map +1 -1
  149. package/lib/util/execution.d.ts +42 -0
  150. package/lib/util/execution.d.ts.map +1 -1
  151. package/lib/util/execution.js +123 -2
  152. package/lib/util/execution.js.map +1 -1
  153. package/lib/util/headerEnvelope.d.ts +17 -0
  154. package/lib/util/headerEnvelope.d.ts.map +1 -0
  155. package/lib/util/headerEnvelope.js +43 -0
  156. package/lib/util/headerEnvelope.js.map +1 -0
  157. package/lib/util/shuffle.d.ts +0 -4
  158. package/lib/util/shuffle.d.ts.map +1 -1
  159. package/lib/util/shuffle.js +0 -8
  160. package/lib/util/shuffle.js.map +1 -1
  161. package/package.json +16 -16
  162. package/src/api/impl/beacon/blocks/index.ts +16 -3
  163. package/src/api/impl/beacon/pool/index.ts +6 -2
  164. package/src/api/impl/beacon/state/index.ts +36 -0
  165. package/src/api/impl/validator/index.ts +3 -1
  166. package/src/chain/archiveStore/archiveStore.ts +24 -8
  167. package/src/chain/archiveStore/historicalState/metrics.ts +5 -7
  168. package/src/chain/archiveStore/utils/archiveBlocks.ts +54 -32
  169. package/src/chain/archiveStore/utils/pruneHistory.ts +4 -2
  170. package/src/chain/blocks/importExecutionPayload.ts +14 -0
  171. package/src/chain/chain.ts +96 -20
  172. package/src/chain/errors/envelopeReconstructionError.ts +22 -0
  173. package/src/chain/errors/index.ts +1 -0
  174. package/src/chain/errors/payloadAttestation.ts +2 -0
  175. package/src/chain/interface.ts +6 -1
  176. package/src/chain/options.ts +3 -5
  177. package/src/chain/produceBlock/computeNewStateRoot.ts +9 -2
  178. package/src/chain/validation/payloadAttestationMessage.ts +9 -0
  179. package/src/db/beacon.ts +0 -5
  180. package/src/db/buckets.ts +2 -2
  181. package/src/db/interface.ts +0 -3
  182. package/src/db/repositories/executionPayloadEnvelopeArchive.ts +43 -13
  183. package/src/db/repositories/index.ts +6 -2
  184. package/src/execution/engine/disabled.ts +4 -0
  185. package/src/execution/engine/http.ts +12 -0
  186. package/src/execution/engine/interface.ts +4 -1
  187. package/src/execution/engine/jsonRpcHttpClient.ts +9 -2
  188. package/src/execution/engine/mock.ts +22 -2
  189. package/src/execution/engine/transportMetrics.ts +9 -0
  190. package/src/execution/engine/types.ts +25 -0
  191. package/src/metrics/metrics/beacon.ts +16 -0
  192. package/src/metrics/metrics/lodestar.ts +68 -26
  193. package/src/metrics/metrics.ts +7 -2
  194. package/src/network/processor/index.ts +51 -22
  195. package/src/network/reqresp/handlers/executionPayloadEnvelopesByRange.ts +57 -39
  196. package/src/network/reqresp/handlers/executionPayloadEnvelopesByRoot.ts +27 -5
  197. package/src/network/reqresp/handlers/index.ts +49 -5
  198. package/src/node/nodejs.ts +0 -27
  199. package/src/sync/interface.ts +1 -2
  200. package/src/sync/options.ts +0 -8
  201. package/src/sync/types.ts +19 -3
  202. package/src/sync/unknownBlock.ts +192 -14
  203. package/src/util/execution.ts +175 -2
  204. package/src/util/headerEnvelope.ts +76 -0
  205. package/src/util/shuffle.ts +0 -9
  206. package/lib/chain/archiveStore/utils/updateBackfillRange.d.ts +0 -20
  207. package/lib/chain/archiveStore/utils/updateBackfillRange.d.ts.map +0 -1
  208. package/lib/chain/archiveStore/utils/updateBackfillRange.js +0 -40
  209. package/lib/chain/archiveStore/utils/updateBackfillRange.js.map +0 -1
  210. package/lib/db/repositories/backfilledRanges.d.ts +0 -18
  211. package/lib/db/repositories/backfilledRanges.d.ts.map +0 -1
  212. package/lib/db/repositories/backfilledRanges.js +0 -26
  213. package/lib/db/repositories/backfilledRanges.js.map +0 -1
  214. package/lib/sync/backfill/backfill.d.ts +0 -169
  215. package/lib/sync/backfill/backfill.d.ts.map +0 -1
  216. package/lib/sync/backfill/backfill.js +0 -686
  217. package/lib/sync/backfill/backfill.js.map +0 -1
  218. package/lib/sync/backfill/errors.d.ts +0 -30
  219. package/lib/sync/backfill/errors.d.ts.map +0 -1
  220. package/lib/sync/backfill/errors.js +0 -15
  221. package/lib/sync/backfill/errors.js.map +0 -1
  222. package/lib/sync/backfill/index.d.ts +0 -2
  223. package/lib/sync/backfill/index.d.ts.map +0 -1
  224. package/lib/sync/backfill/index.js +0 -2
  225. package/lib/sync/backfill/index.js.map +0 -1
  226. package/lib/sync/backfill/verify.d.ts +0 -18
  227. package/lib/sync/backfill/verify.d.ts.map +0 -1
  228. package/lib/sync/backfill/verify.js +0 -36
  229. package/lib/sync/backfill/verify.js.map +0 -1
  230. package/src/chain/archiveStore/utils/updateBackfillRange.ts +0 -50
  231. package/src/db/repositories/backfilledRanges.ts +0 -29
  232. package/src/sync/backfill/backfill.ts +0 -916
  233. package/src/sync/backfill/errors.ts +0 -23
  234. package/src/sync/backfill/index.ts +0 -1
  235. package/src/sync/backfill/verify.ts +0 -58
@@ -130,6 +130,11 @@ var PreprocessAction;
130
130
  PreprocessAction[PreprocessAction["AwaitEnvelope"] = 1] = "AwaitEnvelope";
131
131
  PreprocessAction[PreprocessAction["PushToQueue"] = 2] = "PushToQueue";
132
132
  })(PreprocessAction || (PreprocessAction = {}));
133
+ var SearchTarget;
134
+ (function (SearchTarget) {
135
+ SearchTarget[SearchTarget["Block"] = 0] = "Block";
136
+ SearchTarget[SearchTarget["PayloadEnvelope"] = 1] = "PayloadEnvelope";
137
+ })(SearchTarget || (SearchTarget = {}));
133
138
  /**
134
139
  * Network processor handles the gossip queues and throtles processing to not overload the main thread
135
140
  * - Decides when to process work and what to process
@@ -345,7 +350,7 @@ export class NetworkProcessor {
345
350
  // no need to check if root is a descendant of the current finalized block, it will be checked once we validate the message if needed
346
351
  if (root && !this.chain.forkChoice.hasBlockHexUnsafe(root)) {
347
352
  // starting from GLOAS, unknown root from data_column_sidecar also falls into this case
348
- this.searchUnknownRoot({ slot, root }, true, false, peerId);
353
+ this.searchUnknownRoot({ slot, root }, peerId, { target: SearchTarget.Block });
349
354
  // for beacon_attestation and beacon_aggregate_and_proof messages, this is only temporary.
350
355
  // if "index = 1" we need to await for the Envelope instead
351
356
  preprocessResult = { action: PreprocessAction.AwaitBlock, root };
@@ -358,27 +363,28 @@ export class NetworkProcessor {
358
363
  if (topicType === GossipType.beacon_block) {
359
364
  const parentRoot = getParentRootFromSignedBeaconBlockSerialized(message.msg.data);
360
365
  if (parentRoot) {
361
- let searchParentBlock = false;
362
- let searchParentEnvelope = false;
366
+ let search = null;
363
367
  if (ForkSeq[fork] >= ForkSeq.gloas) {
364
368
  // GLOAS: also check parent envelope, same logic as execution_payload_bid
365
369
  const parentBlockHash = getParentBlockHashFromGloasSignedBeaconBlockSerialized(message.msg.data);
366
370
  if (parentBlockHash && !this.chain.forkChoice.getBlockHexAndBlockHash(parentRoot, parentBlockHash)) {
367
371
  const protoBlock = this.chain.forkChoice.getBlockHexDefaultStatus(parentRoot);
368
372
  if (protoBlock === null) {
369
- searchParentBlock = true;
373
+ search = { target: SearchTarget.Block };
370
374
  }
371
375
  else if (protoBlock.executionPayloadBlockHash &&
372
376
  protoBlock.executionPayloadBlockHash !== parentBlockHash) {
373
377
  // only search for the envelope by block root if we're sure there is one. Otherwise UnknownBlockSync will penalize the peer.
374
- searchParentEnvelope = true;
378
+ search = { target: SearchTarget.PayloadEnvelope, slotIsPayloadSlot: false };
375
379
  }
376
380
  }
377
381
  }
378
382
  else if (!this.chain.forkChoice.hasBlockHexUnsafe(parentRoot)) {
379
- searchParentBlock = true;
383
+ search = { target: SearchTarget.Block };
384
+ }
385
+ if (search !== null) {
386
+ this.searchUnknownRoot({ slot, root: parentRoot }, peerId, search);
380
387
  }
381
- this.searchUnknownRoot({ slot, root: parentRoot }, searchParentBlock, searchParentEnvelope, peerId);
382
388
  }
383
389
  preprocessResult = { action: PreprocessAction.PushToQueue };
384
390
  }
@@ -396,7 +402,10 @@ export class NetworkProcessor {
396
402
  : getDataIndexFromSignedAggregateAndProofSerialized(message.msg.data);
397
403
  if (attIndex === 1 && !this.chain.forkChoice.hasPayloadHexUnsafe(root)) {
398
404
  // attestation votes that the payload is available but it is not yet known
399
- this.searchUnknownRoot({ slot, root }, false, true, peerId);
405
+ this.searchUnknownRoot({ slot, root }, peerId, {
406
+ target: SearchTarget.PayloadEnvelope,
407
+ slotIsPayloadSlot: false,
408
+ });
400
409
  preprocessResult = { action: PreprocessAction.AwaitEnvelope, root };
401
410
  }
402
411
  break;
@@ -407,8 +416,12 @@ export class NetworkProcessor {
407
416
  const payloadPresent = getPayloadPresentFromPayloadAttestationMessageSerialized(message.msg.data);
408
417
  if (payloadPresent && !this.chain.forkChoice.hasPayloadHexUnsafe(root)) {
409
418
  // payload attestation votes that the payload is available but it is not yet known.
419
+ // this is optimistic search, the peer may not have the payload (only the ptc committee had).
410
420
  // the PTC vote's slot is the payload's slot
411
- this.searchUnknownRoot({ slot, root }, false, true, peerId, true);
421
+ this.searchUnknownRoot({ slot, root }, undefined, {
422
+ target: SearchTarget.PayloadEnvelope,
423
+ slotIsPayloadSlot: true,
424
+ });
412
425
  // do not await the envelope, payload attestation processing only requires that the block is known
413
426
  // also do not reset preprocessResult, we may already await for the block
414
427
  }
@@ -418,8 +431,12 @@ export class NetworkProcessor {
418
431
  if (root == null)
419
432
  break;
420
433
  if (!this.chain.forkChoice.hasPayloadHexUnsafe(root)) {
434
+ // this is optimistic search, the peer may not have the payload.
421
435
  // the sidecar's slot is the block's (and so the payload's) slot
422
- this.searchUnknownRoot({ slot, root }, false, true, peerId, true);
436
+ this.searchUnknownRoot({ slot, root }, undefined, {
437
+ target: SearchTarget.PayloadEnvelope,
438
+ slotIsPayloadSlot: true,
439
+ });
423
440
  // do not await the envelope, we can do gossip validation
424
441
  // also do not reset preprocessResult, we may already await for the block
425
442
  }
@@ -430,7 +447,7 @@ export class NetworkProcessor {
430
447
  // Extract beacon_block_root directly
431
448
  const blockRoot = getBeaconBlockRootFromExecutionPayloadEnvelopeSerialized(message.msg.data);
432
449
  if (blockRoot && !this.chain.forkChoice.hasBlockHexUnsafe(blockRoot)) {
433
- this.searchUnknownRoot({ slot, root: blockRoot }, true, false, peerId);
450
+ this.searchUnknownRoot({ slot, root: blockRoot }, peerId, { target: SearchTarget.Block });
434
451
  // We always want to await the block
435
452
  // This allows us to properly forward the payload envelope
436
453
  preprocessResult = { action: PreprocessAction.AwaitBlock, root: blockRoot };
@@ -447,12 +464,15 @@ export class NetworkProcessor {
447
464
  !this.chain.forkChoice.getBlockHexAndBlockHash(parentBlockRoot, parentBlockHash)) {
448
465
  const protoBlock = this.chain.forkChoice.getBlockHexDefaultStatus(parentBlockRoot);
449
466
  if (protoBlock === null) {
450
- this.searchUnknownRoot({ slot, root: parentBlockRoot }, true, false, peerId);
467
+ this.searchUnknownRoot({ slot, root: parentBlockRoot }, peerId, { target: SearchTarget.Block });
451
468
  preprocessResult = { action: PreprocessAction.AwaitBlock, root: parentBlockRoot };
452
469
  }
453
470
  else if (protoBlock.executionPayloadBlockHash &&
454
471
  protoBlock.executionPayloadBlockHash !== parentBlockHash) {
455
- this.searchUnknownRoot({ slot, root: parentBlockRoot }, false, true, peerId);
472
+ this.searchUnknownRoot({ slot, root: parentBlockRoot }, peerId, {
473
+ target: SearchTarget.PayloadEnvelope,
474
+ slotIsPayloadSlot: false,
475
+ });
456
476
  preprocessResult = { action: PreprocessAction.AwaitEnvelope, root: parentBlockRoot };
457
477
  }
458
478
  }
@@ -546,17 +566,18 @@ export class NetworkProcessor {
546
566
  }
547
567
  /**
548
568
  * Search block/envelope given a SlotRootHex
549
- * envelopeSlotIsPayloadSlot: the message slot is the payload's slot or not
569
+ * undefined peer id means optimistic search
550
570
  */
551
- searchUnknownRoot(slotRoot, searchBlock, searchEnvelope, peerId, envelopeSlotIsPayloadSlot = false) {
552
- if (!searchBlock && !searchEnvelope)
553
- return;
571
+ searchUnknownRoot(slotRoot, peerId, search) {
554
572
  if (this.tooManySearchedRoots(slotRoot.slot, slotRoot.root))
555
573
  return;
556
- if (searchBlock)
557
- this.searchUnknownBlock(slotRoot, BlockInputSource.network_processor, peerId);
558
- if (searchEnvelope) {
559
- this.searchUnknownEnvelope(slotRoot, BlockInputSource.network_processor, peerId, envelopeSlotIsPayloadSlot);
574
+ switch (search.target) {
575
+ case SearchTarget.Block:
576
+ this.searchUnknownBlock(slotRoot, BlockInputSource.network_processor, peerId);
577
+ break;
578
+ case SearchTarget.PayloadEnvelope:
579
+ this.searchUnknownEnvelope(slotRoot, BlockInputSource.network_processor, peerId, search.slotIsPayloadSlot);
580
+ break;
560
581
  }
561
582
  }
562
583
  pushPendingGossipsubMessageToQueue(message) {
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/network/processor/index.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/network/processor/index.ts"],"names":[],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"executionPayloadEnvelopesByRange.d.ts","sourceRoot":"","sources":["../../../../src/network/reqresp/handlers/executionPayloadEnvelopesByRange.ts"],"names":[],"mappings":"AAAA,OAAO,EAAC,MAAM,EAAC,MAAM,mBAAmB,CAAC;AACzC,OAAO,EAAC,WAAW,EAAC,MAAM,kBAAkB,CAAC;AAG7C,OAAO,EAA4B,gBAAgB,EAAC,MAAM,mBAAmB,CAAC;AAE9E,OAAO,EAAC,KAAK,EAAC,MAAM,iBAAiB,CAAC;AACtC,OAAO,EAAC,YAAY,EAAC,MAAM,yBAAyB,CAAC;AACrD,OAAO,EAAC,SAAS,EAAC,MAAM,sBAAsB,CAAC;AAG/C,wBAAuB,kCAAkC,CACvD,OAAO,EAAE,KAAK,CAAC,uCAAuC,EACtD,KAAK,EAAE,YAAY,EACnB,EAAE,EAAE,SAAS,EACb,MAAM,EAAE,MAAM,EACd,UAAU,EAAE,MAAM,GACjB,aAAa,CAAC,gBAAgB,CAAC,CAyEjC;AAED,wBAAgB,+CAA+C,CAC7D,MAAM,EAAE,WAAW,EACnB,OAAO,EAAE,KAAK,CAAC,uCAAuC,GACrD,KAAK,CAAC,uCAAuC,CAqB/C"}
1
+ {"version":3,"file":"executionPayloadEnvelopesByRange.d.ts","sourceRoot":"","sources":["../../../../src/network/reqresp/handlers/executionPayloadEnvelopesByRange.ts"],"names":[],"mappings":"AAAA,OAAO,EAAC,MAAM,EAAC,MAAM,mBAAmB,CAAC;AACzC,OAAO,EAAC,WAAW,EAAC,MAAM,kBAAkB,CAAC;AAG7C,OAAO,EAA4B,gBAAgB,EAAC,MAAM,mBAAmB,CAAC;AAE9E,OAAO,EAAC,KAAK,EAAC,MAAM,iBAAiB,CAAC;AAEtC,OAAO,EAAC,YAAY,EAAC,MAAM,yBAAyB,CAAC;AACrD,OAAO,EAAC,SAAS,EAAC,MAAM,sBAAsB,CAAC;AAI/C,wBAAuB,kCAAkC,CACvD,OAAO,EAAE,KAAK,CAAC,uCAAuC,EACtD,KAAK,EAAE,YAAY,EACnB,EAAE,EAAE,SAAS,EACb,MAAM,EAAE,MAAM,EACd,UAAU,EAAE,MAAM,GACjB,aAAa,CAAC,gBAAgB,CAAC,CAyFjC;AAED,wBAAgB,+CAA+C,CAC7D,MAAM,EAAE,WAAW,EACnB,OAAO,EAAE,KAAK,CAAC,uCAAuC,GACrD,KAAK,CAAC,uCAAuC,CAqB/C"}
@@ -2,6 +2,8 @@ import { PayloadStatus } from "@lodestar/fork-choice";
2
2
  import { GENESIS_SLOT } from "@lodestar/params";
3
3
  import { RespStatus, ResponseError } from "@lodestar/reqresp";
4
4
  import { computeEpochAtSlot } from "@lodestar/state-transition";
5
+ import { EnvelopeReconstructionError } from "../../../chain/errors/index.js";
6
+ import { reconstructExecutionPayloadEnvelopesByRange } from "../../../util/execution.js";
5
7
  import { prettyPrintPeerId } from "../../util.js";
6
8
  export async function* onExecutionPayloadEnvelopesByRange(request, chain, db, peerId, peerClient) {
7
9
  const { startSlot, count } = validateExecutionPayloadEnvelopesByRangeRequest(chain.config, request);
@@ -18,51 +20,62 @@ export async function* onExecutionPayloadEnvelopesByRange(request, chain, db, pe
18
20
  });
19
21
  throw new ResponseError(RespStatus.RESOURCE_UNAVAILABLE, `Requested range is before earliestAvailableSlot startSlot=${startSlot} count=${count} earliestAvailableSlot=${chain.earliestAvailableSlot}`);
20
22
  }
21
- const finalized = db.executionPayloadEnvelopeArchive;
22
23
  // Use the finalized block's actual slot as the checkpoint epoch-boundary slot may be skipped
23
24
  const finalizedSlot = chain.forkChoice.getFinalizedBlock().slot;
24
25
  // The finalized block's envelope stays in the hot db until the next finalization run
25
26
  const archiveMaxSlot = finalizedSlot - 1;
26
- // Finalized range of envelopes
27
- if (startSlot <= archiveMaxSlot) {
28
- for await (const { key, value: envelopeBytes } of finalized.binaryEntriesStream({
29
- gte: startSlot,
30
- lt: Math.min(endSlot, archiveMaxSlot + 1),
31
- })) {
32
- const slot = finalized.decodeKey(key);
33
- yield {
34
- data: envelopeBytes,
35
- boundary: chain.config.getForkBoundaryAtEpoch(computeEpochAtSlot(slot)),
36
- };
37
- }
38
- }
39
- // Non-finalized range of envelopes
40
- if (endSlot > archiveMaxSlot) {
41
- const headBlock = chain.forkChoice.getHead();
42
- const headRoot = headBlock.blockRoot;
43
- const headChain = chain.forkChoice.getAllAncestorBlocks(headRoot, headBlock.payloadStatus);
44
- // Iterate head chain with ascending block numbers
45
- for (let i = headChain.length - 1; i >= 0; i--) {
46
- const block = headChain[i];
47
- if (block.slot > archiveMaxSlot && block.slot >= startSlot && block.slot < endSlot) {
48
- // Skip EMPTY blocks
49
- if (block.payloadStatus !== PayloadStatus.FULL) {
50
- continue;
51
- }
52
- const envelopeBytes = await chain.getSerializedExecutionPayloadEnvelope(block.slot, block.blockRoot);
53
- if (!envelopeBytes) {
54
- throw new ResponseError(RespStatus.SERVER_ERROR, `No envelope for root ${block.blockRoot} slot ${block.slot}, startSlot=${startSlot} endSlot=${endSlot} finalizedSlot=${finalizedSlot}`);
55
- }
27
+ let yielded = 0;
28
+ try {
29
+ if (startSlot <= archiveMaxSlot) {
30
+ for await (const { slot, envelopeBytes } of reconstructExecutionPayloadEnvelopesByRange(db, chain.executionEngine, chain.logger, chain.metrics, startSlot, Math.min(endSlot, archiveMaxSlot + 1))) {
31
+ yielded++;
56
32
  yield {
57
33
  data: envelopeBytes,
58
- boundary: chain.config.getForkBoundaryAtEpoch(computeEpochAtSlot(block.slot)),
34
+ boundary: chain.config.getForkBoundaryAtEpoch(computeEpochAtSlot(slot)),
59
35
  };
60
36
  }
61
- else if (block.slot >= endSlot) {
62
- break;
37
+ }
38
+ // Non-finalized range of envelopes. The finalized block's own envelope may be archived by a
39
+ // migration that ran since archiveMaxSlot was computed, so this read can reconstruct too.
40
+ if (endSlot > archiveMaxSlot) {
41
+ const headBlock = chain.forkChoice.getHead();
42
+ const headRoot = headBlock.blockRoot;
43
+ const headChain = chain.forkChoice.getAllAncestorBlocks(headRoot, headBlock.payloadStatus);
44
+ // Iterate head chain with ascending block numbers
45
+ for (let i = headChain.length - 1; i >= 0; i--) {
46
+ const block = headChain[i];
47
+ if (block.slot > archiveMaxSlot && block.slot >= startSlot && block.slot < endSlot) {
48
+ // Skip EMPTY blocks
49
+ if (block.payloadStatus !== PayloadStatus.FULL) {
50
+ continue;
51
+ }
52
+ const envelopeBytes = await chain.getSerializedExecutionPayloadEnvelope(block.slot, block.blockRoot);
53
+ if (!envelopeBytes) {
54
+ throw new ResponseError(RespStatus.SERVER_ERROR, `No envelope for root ${block.blockRoot} slot ${block.slot}, startSlot=${startSlot} endSlot=${endSlot} finalizedSlot=${finalizedSlot}`);
55
+ }
56
+ yielded++;
57
+ yield {
58
+ data: envelopeBytes,
59
+ boundary: chain.config.getForkBoundaryAtEpoch(computeEpochAtSlot(block.slot)),
60
+ };
61
+ }
62
+ else if (block.slot >= endSlot) {
63
+ break;
64
+ }
63
65
  }
64
66
  }
65
67
  }
68
+ catch (e) {
69
+ if (e instanceof EnvelopeReconstructionError) {
70
+ // An unservable entry or our own EL failing: after some envelopes, end short (spec-legal, the
71
+ // peer fetches the rest elsewhere); with nothing served, RESOURCE_UNAVAILABLE rather than
72
+ // SERVER_ERROR so peers don't downscore us for it
73
+ if (yielded > 0)
74
+ return;
75
+ throw new ResponseError(RespStatus.RESOURCE_UNAVAILABLE, `Failed to serve envelopes: ${e.message}`);
76
+ }
77
+ throw e;
78
+ }
66
79
  }
67
80
  export function validateExecutionPayloadEnvelopesByRangeRequest(config, request) {
68
81
  const { startSlot } = request;
@@ -1 +1 @@
1
- {"version":3,"file":"executionPayloadEnvelopesByRange.js","sourceRoot":"","sources":["../../../../src/network/reqresp/handlers/executionPayloadEnvelopesByRange.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"executionPayloadEnvelopesByRange.js","sourceRoot":"","sources":["../../../../src/network/reqresp/handlers/executionPayloadEnvelopesByRange.ts"],"names":[],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"executionPayloadEnvelopesByRoot.d.ts","sourceRoot":"","sources":["../../../../src/network/reqresp/handlers/executionPayloadEnvelopesByRoot.ts"],"names":[],"mappings":"AAAA,OAAO,EAAC,MAAM,EAAC,MAAM,mBAAmB,CAAC;AACzC,OAAO,EAAC,gBAAgB,EAAC,MAAM,mBAAmB,CAAC;AAGnD,OAAO,EAAC,YAAY,EAAC,MAAM,yBAAyB,CAAC;AACrD,OAAO,EAAC,SAAS,EAAC,MAAM,sBAAsB,CAAC;AAC/C,OAAO,EAAC,sCAAsC,EAAC,MAAM,wBAAwB,CAAC;AAG9E,wBAAuB,iCAAiC,CACtD,WAAW,EAAE,sCAAsC,EACnD,KAAK,EAAE,YAAY,EACnB,EAAE,EAAE,SAAS,EACb,MAAM,EAAE,MAAM,EACd,UAAU,EAAE,MAAM,GACjB,aAAa,CAAC,gBAAgB,CAAC,CAqCjC"}
1
+ {"version":3,"file":"executionPayloadEnvelopesByRoot.d.ts","sourceRoot":"","sources":["../../../../src/network/reqresp/handlers/executionPayloadEnvelopesByRoot.ts"],"names":[],"mappings":"AAAA,OAAO,EAAC,MAAM,EAAC,MAAM,mBAAmB,CAAC;AACzC,OAAO,EAA4B,gBAAgB,EAAC,MAAM,mBAAmB,CAAC;AAK9E,OAAO,EAAC,YAAY,EAAC,MAAM,yBAAyB,CAAC;AACrD,OAAO,EAAC,SAAS,EAAC,MAAM,sBAAsB,CAAC;AAC/C,OAAO,EAAC,sCAAsC,EAAC,MAAM,wBAAwB,CAAC;AAG9E,wBAAuB,iCAAiC,CACtD,WAAW,EAAE,sCAAsC,EACnD,KAAK,EAAE,YAAY,EACnB,EAAE,EAAE,SAAS,EACb,MAAM,EAAE,MAAM,EACd,UAAU,EAAE,MAAM,GACjB,aAAa,CAAC,gBAAgB,CAAC,CAyDjC"}
@@ -1,9 +1,13 @@
1
+ import { RespStatus, ResponseError } from "@lodestar/reqresp";
1
2
  import { computeEpochAtSlot } from "@lodestar/state-transition";
2
3
  import { toRootHex } from "@lodestar/utils";
4
+ import { EnvelopeReconstructionError } from "../../../chain/errors/index.js";
3
5
  import { prettyPrintPeerId } from "../../util.js";
4
6
  export async function* onExecutionPayloadEnvelopesByRoot(requestBody, chain, db, peerId, peerClient) {
5
7
  // The gloas req/resp spec uses MIN_EPOCHS_FOR_BLOCK_REQUESTS to define the minimum range peers MUST serve.
6
8
  // Archival nodes may still serve older retained payloads to allow genesis sync.
9
+ // Resolve slots first so archived header envelopes are rebuilt in one EL batch, not one call per root
10
+ const requests = [];
7
11
  for (const root of requestBody) {
8
12
  const rootHex = toRootHex(root);
9
13
  const block = chain.forkChoice.getBlockHexDefaultStatus(rootHex);
@@ -17,17 +21,32 @@ export async function* onExecutionPayloadEnvelopesByRoot(requestBody, chain, db,
17
21
  });
18
22
  continue;
19
23
  }
20
- const envelopeBytes = await chain.getSerializedExecutionPayloadEnvelope(slot, rootHex);
24
+ requests.push({ blockSlot: slot, blockRootHex: rootHex });
25
+ }
26
+ let envelopesBytes;
27
+ try {
28
+ // by-root allows omission, so a mismatched envelope is left out rather than failing the response
29
+ envelopesBytes = await chain.getSerializedExecutionPayloadEnvelopes(requests, "omit");
30
+ }
31
+ catch (e) {
32
+ if (e instanceof EnvelopeReconstructionError) {
33
+ throw new ResponseError(RespStatus.RESOURCE_UNAVAILABLE, `Failed to reconstruct archived envelopes: ${e.message}`);
34
+ }
35
+ throw e;
36
+ }
37
+ for (let i = 0; i < requests.length; i++) {
38
+ const { blockSlot, blockRootHex } = requests[i];
39
+ const envelopeBytes = envelopesBytes[i];
21
40
  if (envelopeBytes) {
22
41
  yield {
23
42
  data: envelopeBytes,
24
- boundary: chain.config.getForkBoundaryAtEpoch(computeEpochAtSlot(slot)),
43
+ boundary: chain.config.getForkBoundaryAtEpoch(computeEpochAtSlot(blockSlot)),
25
44
  };
26
45
  }
27
46
  else {
28
47
  chain.logger.debug("Cannot serve ExecutionPayloadEnvelopesByRoot: envelope not found", {
29
- slot,
30
- root: rootHex,
48
+ slot: blockSlot,
49
+ root: blockRootHex,
31
50
  peer: prettyPrintPeerId(peerId),
32
51
  client: peerClient,
33
52
  });
@@ -1 +1 @@
1
- {"version":3,"file":"executionPayloadEnvelopesByRoot.js","sourceRoot":"","sources":["../../../../src/network/reqresp/handlers/executionPayloadEnvelopesByRoot.ts"],"names":[],"mappings":"AAEA,OAAO,EAAC,kBAAkB,EAAC,MAAM,4BAA4B,CAAC;AAC9D,OAAO,EAAC,SAAS,EAAC,MAAM,iBAAiB,CAAC;AAI1C,OAAO,EAAC,iBAAiB,EAAC,MAAM,eAAe,CAAC;AAEhD,MAAM,CAAC,KAAK,SAAS,CAAC,CAAC,iCAAiC,CACtD,WAAmD,EACnD,KAAmB,EACnB,EAAa,EACb,MAAc,EACd,UAAkB;IAElB,2GAA2G;IAC3G,gFAAgF;IAEhF,KAAK,MAAM,IAAI,IAAI,WAAW,EAAE,CAAC;QAC/B,MAAM,OAAO,GAAG,SAAS,CAAC,IAAI,CAAC,CAAC;QAChC,MAAM,KAAK,GAAG,KAAK,CAAC,UAAU,CAAC,wBAAwB,CAAC,OAAO,CAAC,CAAC;QACjE,qGAAqG;QACrG,MAAM,IAAI,GAAG,KAAK,CAAC,CAAC,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC,CAAC,MAAM,EAAE,CAAC,YAAY,CAAC,aAAa,CAAC,IAAI,CAAC,CAAC;QAE5E,IAAI,IAAI,KAAK,IAAI,EAAE,CAAC;YAClB,KAAK,CAAC,MAAM,CAAC,KAAK,CAChB,8FAA8F,EAC9F;gBACE,IAAI,EAAE,OAAO;gBACb,IAAI,EAAE,iBAAiB,CAAC,MAAM,CAAC;gBAC/B,MAAM,EAAE,UAAU;aACnB,CACF,CAAC;YACF,SAAS;QACX,CAAC;QAED,MAAM,aAAa,GAAG,MAAM,KAAK,CAAC,qCAAqC,CAAC,IAAI,EAAE,OAAO,CAAC,CAAC;QACvF,IAAI,aAAa,EAAE,CAAC;YAClB,MAAM;gBACJ,IAAI,EAAE,aAAa;gBACnB,QAAQ,EAAE,KAAK,CAAC,MAAM,CAAC,sBAAsB,CAAC,kBAAkB,CAAC,IAAI,CAAC,CAAC;aACxE,CAAC;QACJ,CAAC;aAAM,CAAC;YACN,KAAK,CAAC,MAAM,CAAC,KAAK,CAAC,kEAAkE,EAAE;gBACrF,IAAI;gBACJ,IAAI,EAAE,OAAO;gBACb,IAAI,EAAE,iBAAiB,CAAC,MAAM,CAAC;gBAC/B,MAAM,EAAE,UAAU;aACnB,CAAC,CAAC;QACL,CAAC;IACH,CAAC;AACH,CAAC"}
1
+ {"version":3,"file":"executionPayloadEnvelopesByRoot.js","sourceRoot":"","sources":["../../../../src/network/reqresp/handlers/executionPayloadEnvelopesByRoot.ts"],"names":[],"mappings":"AACA,OAAO,EAAC,UAAU,EAAE,aAAa,EAAmB,MAAM,mBAAmB,CAAC;AAC9E,OAAO,EAAC,kBAAkB,EAAC,MAAM,4BAA4B,CAAC;AAE9D,OAAO,EAAC,SAAS,EAAC,MAAM,iBAAiB,CAAC;AAC1C,OAAO,EAAC,2BAA2B,EAAC,MAAM,gCAAgC,CAAC;AAI3E,OAAO,EAAC,iBAAiB,EAAC,MAAM,eAAe,CAAC;AAEhD,MAAM,CAAC,KAAK,SAAS,CAAC,CAAC,iCAAiC,CACtD,WAAmD,EACnD,KAAmB,EACnB,EAAa,EACb,MAAc,EACd,UAAkB;IAElB,2GAA2G;IAC3G,gFAAgF;IAEhF,sGAAsG;IACtG,MAAM,QAAQ,GAA+C,EAAE,CAAC;IAChE,KAAK,MAAM,IAAI,IAAI,WAAW,EAAE,CAAC;QAC/B,MAAM,OAAO,GAAG,SAAS,CAAC,IAAI,CAAC,CAAC;QAChC,MAAM,KAAK,GAAG,KAAK,CAAC,UAAU,CAAC,wBAAwB,CAAC,OAAO,CAAC,CAAC;QACjE,qGAAqG;QACrG,MAAM,IAAI,GAAG,KAAK,CAAC,CAAC,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC,CAAC,MAAM,EAAE,CAAC,YAAY,CAAC,aAAa,CAAC,IAAI,CAAC,CAAC;QAE5E,IAAI,IAAI,KAAK,IAAI,EAAE,CAAC;YAClB,KAAK,CAAC,MAAM,CAAC,KAAK,CAChB,8FAA8F,EAC9F;gBACE,IAAI,EAAE,OAAO;gBACb,IAAI,EAAE,iBAAiB,CAAC,MAAM,CAAC;gBAC/B,MAAM,EAAE,UAAU;aACnB,CACF,CAAC;YACF,SAAS;QACX,CAAC;QACD,QAAQ,CAAC,IAAI,CAAC,EAAC,SAAS,EAAE,IAAI,EAAE,YAAY,EAAE,OAAO,EAAC,CAAC,CAAC;IAC1D,CAAC;IAED,IAAI,cAAqC,CAAC;IAC1C,IAAI,CAAC;QACH,iGAAiG;QACjG,cAAc,GAAG,MAAM,KAAK,CAAC,sCAAsC,CAAC,QAAQ,EAAE,MAAM,CAAC,CAAC;IACxF,CAAC;IAAC,OAAO,CAAC,EAAE,CAAC;QACX,IAAI,CAAC,YAAY,2BAA2B,EAAE,CAAC;YAC7C,MAAM,IAAI,aAAa,CACrB,UAAU,CAAC,oBAAoB,EAC/B,6CAA6C,CAAC,CAAC,OAAO,EAAE,CACzD,CAAC;QACJ,CAAC;QACD,MAAM,CAAC,CAAC;IACV,CAAC;IAED,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,QAAQ,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE,CAAC;QACzC,MAAM,EAAC,SAAS,EAAE,YAAY,EAAC,GAAG,QAAQ,CAAC,CAAC,CAAC,CAAC;QAC9C,MAAM,aAAa,GAAG,cAAc,CAAC,CAAC,CAAC,CAAC;QACxC,IAAI,aAAa,EAAE,CAAC;YAClB,MAAM;gBACJ,IAAI,EAAE,aAAa;gBACnB,QAAQ,EAAE,KAAK,CAAC,MAAM,CAAC,sBAAsB,CAAC,kBAAkB,CAAC,SAAS,CAAC,CAAC;aAC7E,CAAC;QACJ,CAAC;aAAM,CAAC;YACN,KAAK,CAAC,MAAM,CAAC,KAAK,CAAC,kEAAkE,EAAE;gBACrF,IAAI,EAAE,SAAS;gBACf,IAAI,EAAE,YAAY;gBAClB,IAAI,EAAE,iBAAiB,CAAC,MAAM,CAAC;gBAC/B,MAAM,EAAE,UAAU;aACnB,CAAC,CAAC;QACL,CAAC;IACH,CAAC;AACH,CAAC"}
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../src/network/reqresp/handlers/index.ts"],"names":[],"mappings":"AAGA,OAAO,EAAC,YAAY,EAAC,MAAM,yBAAyB,CAAC;AACrD,OAAO,EAAC,SAAS,EAAC,MAAM,sBAAsB,CAAC;AAO/C,OAAO,EAAC,mBAAmB,EAAgB,MAAM,aAAa,CAAC;AA6B/D;;;GAGG;AACH,wBAAgB,kBAAkB,CAAC,EAAC,EAAE,EAAE,KAAK,EAAC,EAAE;IAAC,EAAE,EAAE,SAAS,CAAC;IAAC,KAAK,EAAE,YAAY,CAAA;CAAC,GAAG,mBAAmB,CA2DzG"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../src/network/reqresp/handlers/index.ts"],"names":[],"mappings":"AAGA,OAAO,EAAC,YAAY,EAAC,MAAM,yBAAyB,CAAC;AACrD,OAAO,EAAC,SAAS,EAAC,MAAM,sBAAsB,CAAC;AAO/C,OAAO,EAAC,mBAAmB,EAAgB,MAAM,aAAa,CAAC;AAoD/D;;;GAGG;AACH,wBAAgB,kBAAkB,CAAC,EAAC,EAAE,EAAE,KAAK,EAAC,EAAE;IAAC,EAAE,EAAE,SAAS,CAAC;IAAC,KAAK,EAAE,YAAY,CAAA;CAAC,GAAG,mBAAmB,CAgFzG"}
@@ -28,6 +28,22 @@ function deserializeRequestBody(type, data) {
28
28
  throw new ResponseError(RespStatus.INVALID_REQUEST, e instanceof Error ? e.message : String(e));
29
29
  }
30
30
  }
31
+ async function* trackByRangeResponse(chain, method, count, source, columns) {
32
+ chain.metrics?.reqRespByRange.requestedSlots.observe({ method }, count);
33
+ if (columns !== undefined) {
34
+ chain.metrics?.reqRespByRange.requestedColumns.observe(columns);
35
+ }
36
+ let servedBytes = 0;
37
+ try {
38
+ for await (const chunk of source) {
39
+ servedBytes += chunk.data.length;
40
+ yield chunk;
41
+ }
42
+ }
43
+ finally {
44
+ chain.metrics?.reqRespByRange.servedBytes.observe({ method }, servedBytes);
45
+ }
46
+ }
31
47
  /**
32
48
  * The ReqRespHandler module handles app-level requests / responses from other peers,
33
49
  * fetching state from the chain and database as needed.
@@ -40,7 +56,7 @@ export function getReqRespHandlers({ db, chain }) {
40
56
  [ReqRespMethod.Metadata]: notImplemented(ReqRespMethod.Metadata),
41
57
  [ReqRespMethod.BeaconBlocksByRange]: (req, peerId, peerClient) => {
42
58
  const body = deserializeRequestBody(ssz.phase0.BeaconBlocksByRangeRequest, req.data);
43
- return onBeaconBlocksByRange(body, chain, db, peerId, peerClient);
59
+ return trackByRangeResponse(chain, ReqRespMethod.BeaconBlocksByRange, body.count, onBeaconBlocksByRange(body, chain, db, peerId, peerClient));
44
60
  },
45
61
  [ReqRespMethod.BeaconBlocksByRoot]: (req) => {
46
62
  const fork = chain.config.getForkName(chain.clock.currentSlot);
@@ -58,11 +74,11 @@ export function getReqRespHandlers({ db, chain }) {
58
74
  },
59
75
  [ReqRespMethod.BlobSidecarsByRange]: (req) => {
60
76
  const body = deserializeRequestBody(ssz.deneb.BlobSidecarsByRangeRequest, req.data);
61
- return onBlobSidecarsByRange(body, chain, db);
77
+ return trackByRangeResponse(chain, ReqRespMethod.BlobSidecarsByRange, body.count, onBlobSidecarsByRange(body, chain, db));
62
78
  },
63
79
  [ReqRespMethod.DataColumnSidecarsByRange]: (req, peerId, peerClient) => {
64
80
  const body = deserializeRequestBody(ssz.fulu.DataColumnSidecarsByRangeRequest, req.data);
65
- return onDataColumnSidecarsByRange(body, chain, db, peerId, peerClient);
81
+ return trackByRangeResponse(chain, ReqRespMethod.DataColumnSidecarsByRange, body.count, onDataColumnSidecarsByRange(body, chain, db, peerId, peerClient), body.columns.length);
66
82
  },
67
83
  [ReqRespMethod.DataColumnSidecarsByRoot]: (req, peerId, peerClient) => {
68
84
  const body = deserializeRequestBody(DataColumnSidecarsByRootRequestType(chain.config), req.data);
@@ -74,7 +90,7 @@ export function getReqRespHandlers({ db, chain }) {
74
90
  },
75
91
  [ReqRespMethod.ExecutionPayloadEnvelopesByRange]: (req, peerId, peerClient) => {
76
92
  const body = deserializeRequestBody(ssz.gloas.ExecutionPayloadEnvelopesByRangeRequest, req.data);
77
- return onExecutionPayloadEnvelopesByRange(body, chain, db, peerId, peerClient);
93
+ return trackByRangeResponse(chain, ReqRespMethod.ExecutionPayloadEnvelopesByRange, body.count, onExecutionPayloadEnvelopesByRange(body, chain, db, peerId, peerClient));
78
94
  },
79
95
  [ReqRespMethod.LightClientBootstrap]: (req) => {
80
96
  const body = deserializeRequestBody(ssz.Root, req.data);
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../src/network/reqresp/handlers/index.ts"],"names":[],"mappings":"AACA,OAAO,EAAkB,UAAU,EAAE,aAAa,EAAC,MAAM,mBAAmB,CAAC;AAC7E,OAAO,EAAC,GAAG,EAAC,MAAM,iBAAiB,CAAC;AAGpC,OAAO,EACL,6BAA6B,EAC7B,6BAA6B,EAC7B,mCAAmC,EACnC,0CAA0C,GAC3C,MAAM,wBAAwB,CAAC;AAChC,OAAO,EAAsB,aAAa,EAAC,MAAM,aAAa,CAAC;AAC/D,OAAO,EAAC,oBAAoB,EAAC,MAAM,yBAAyB,CAAC;AAC7D,OAAO,EAAC,qBAAqB,EAAC,MAAM,0BAA0B,CAAC;AAC/D,OAAO,EAAC,oBAAoB,EAAC,MAAM,yBAAyB,CAAC;AAC7D,OAAO,EAAC,qBAAqB,EAAC,MAAM,0BAA0B,CAAC;AAC/D,OAAO,EAAC,oBAAoB,EAAC,MAAM,yBAAyB,CAAC;AAC7D,OAAO,EAAC,2BAA2B,EAAC,MAAM,gCAAgC,CAAC;AAC3E,OAAO,EAAC,0BAA0B,EAAC,MAAM,+BAA+B,CAAC;AACzE,OAAO,EAAC,kCAAkC,EAAC,MAAM,uCAAuC,CAAC;AACzF,OAAO,EAAC,iCAAiC,EAAC,MAAM,sCAAsC,CAAC;AACvF,OAAO,EAAC,sBAAsB,EAAC,MAAM,2BAA2B,CAAC;AACjE,OAAO,EAAC,2BAA2B,EAAC,MAAM,gCAAgC,CAAC;AAC3E,OAAO,EAAC,6BAA6B,EAAC,MAAM,kCAAkC,CAAC;AAC/E,OAAO,EAAC,2BAA2B,EAAC,MAAM,gCAAgC,CAAC;AAE3E,SAAS,cAAc,CAAC,MAAqB;IAC3C,OAAO,GAAG,EAAE;QACV,MAAM,KAAK,CAAC,+BAA+B,MAAM,EAAE,CAAC,CAAC;IACvD,CAAC,CAAC;AACJ,CAAC;AAED,SAAS,sBAAsB,CAAI,IAAa,EAAE,IAAgB;IAChE,IAAI,CAAC;QACH,OAAO,IAAI,CAAC,WAAW,CAAC,IAAI,CAAC,CAAC;IAChC,CAAC;IAAC,OAAO,CAAC,EAAE,CAAC;QACX,MAAM,IAAI,aAAa,CAAC,UAAU,CAAC,eAAe,EAAE,CAAC,YAAY,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,CAAC;IAClG,CAAC;AACH,CAAC;AAED;;;GAGG;AACH,MAAM,UAAU,kBAAkB,CAAC,EAAC,EAAE,EAAE,KAAK,EAAuC;IAClF,MAAM,QAAQ,GAA2C;QACvD,CAAC,aAAa,CAAC,MAAM,CAAC,EAAE,cAAc,CAAC,aAAa,CAAC,MAAM,CAAC;QAC5D,CAAC,aAAa,CAAC,OAAO,CAAC,EAAE,cAAc,CAAC,aAAa,CAAC,OAAO,CAAC;QAC9D,CAAC,aAAa,CAAC,IAAI,CAAC,EAAE,cAAc,CAAC,aAAa,CAAC,IAAI,CAAC;QACxD,CAAC,aAAa,CAAC,QAAQ,CAAC,EAAE,cAAc,CAAC,aAAa,CAAC,QAAQ,CAAC;QAChE,CAAC,aAAa,CAAC,mBAAmB,CAAC,EAAE,CAAC,GAAG,EAAE,MAAM,EAAE,UAAU,EAAE,EAAE;YAC/D,MAAM,IAAI,GAAG,sBAAsB,CAAC,GAAG,CAAC,MAAM,CAAC,0BAA0B,EAAE,GAAG,CAAC,IAAI,CAAC,CAAC;YACrF,OAAO,qBAAqB,CAAC,IAAI,EAAE,KAAK,EAAE,EAAE,EAAE,MAAM,EAAE,UAAU,CAAC,CAAC;QACpE,CAAC;QACD,CAAC,aAAa,CAAC,kBAAkB,CAAC,EAAE,CAAC,GAAG,EAAE,EAAE;YAC1C,MAAM,IAAI,GAAG,KAAK,CAAC,MAAM,CAAC,WAAW,CAAC,KAAK,CAAC,KAAK,CAAC,WAAW,CAAC,CAAC;YAC/D,MAAM,IAAI,GAAG,sBAAsB,CAAC,6BAA6B,CAAC,IAAI,EAAE,KAAK,CAAC,MAAM,CAAC,EAAE,GAAG,CAAC,IAAI,CAAC,CAAC;YACjG,OAAO,oBAAoB,CAAC,IAAI,EAAE,KAAK,CAAC,CAAC;QAC3C,CAAC;QACD,CAAC,aAAa,CAAC,kBAAkB,CAAC,EAAE,CAAC,GAAG,EAAE,MAAM,EAAE,UAAU,EAAE,EAAE;YAC9D,MAAM,IAAI,GAAG,sBAAsB,CAAC,GAAG,CAAC,IAAI,CAAC,yBAAyB,EAAE,GAAG,CAAC,IAAI,CAAC,CAAC;YAClF,OAAO,oBAAoB,CAAC,IAAI,EAAE,KAAK,EAAE,MAAM,EAAE,UAAU,CAAC,CAAC;QAC/D,CAAC;QACD,CAAC,aAAa,CAAC,kBAAkB,CAAC,EAAE,CAAC,GAAG,EAAE,EAAE;YAC1C,MAAM,IAAI,GAAG,KAAK,CAAC,MAAM,CAAC,WAAW,CAAC,KAAK,CAAC,KAAK,CAAC,WAAW,CAAC,CAAC;YAC/D,MAAM,IAAI,GAAG,sBAAsB,CAAC,6BAA6B,CAAC,IAAI,EAAE,KAAK,CAAC,MAAM,CAAC,EAAE,GAAG,CAAC,IAAI,CAAC,CAAC;YACjG,OAAO,oBAAoB,CAAC,IAAI,EAAE,KAAK,CAAC,CAAC;QAC3C,CAAC;QACD,CAAC,aAAa,CAAC,mBAAmB,CAAC,EAAE,CAAC,GAAG,EAAE,EAAE;YAC3C,MAAM,IAAI,GAAG,sBAAsB,CAAC,GAAG,CAAC,KAAK,CAAC,0BAA0B,EAAE,GAAG,CAAC,IAAI,CAAC,CAAC;YACpF,OAAO,qBAAqB,CAAC,IAAI,EAAE,KAAK,EAAE,EAAE,CAAC,CAAC;QAChD,CAAC;QACD,CAAC,aAAa,CAAC,yBAAyB,CAAC,EAAE,CAAC,GAAG,EAAE,MAAM,EAAE,UAAU,EAAE,EAAE;YACrE,MAAM,IAAI,GAAG,sBAAsB,CAAC,GAAG,CAAC,IAAI,CAAC,gCAAgC,EAAE,GAAG,CAAC,IAAI,CAAC,CAAC;YACzF,OAAO,2BAA2B,CAAC,IAAI,EAAE,KAAK,EAAE,EAAE,EAAE,MAAM,EAAE,UAAU,CAAC,CAAC;QAC1E,CAAC;QACD,CAAC,aAAa,CAAC,wBAAwB,CAAC,EAAE,CAAC,GAAG,EAAE,MAAM,EAAE,UAAU,EAAE,EAAE;YACpE,MAAM,IAAI,GAAG,sBAAsB,CAAC,mCAAmC,CAAC,KAAK,CAAC,MAAM,CAAC,EAAE,GAAG,CAAC,IAAI,CAAC,CAAC;YACjG,OAAO,0BAA0B,CAAC,IAAI,EAAE,KAAK,EAAE,EAAE,EAAE,MAAM,EAAE,UAAU,CAAC,CAAC;QACzE,CAAC;QAED,CAAC,aAAa,CAAC,+BAA+B,CAAC,EAAE,CAAC,GAAG,EAAE,MAAM,EAAE,UAAU,EAAE,EAAE;YAC3E,MAAM,IAAI,GAAG,sBAAsB,CAAC,0CAA0C,CAAC,KAAK,CAAC,MAAM,CAAC,EAAE,GAAG,CAAC,IAAI,CAAC,CAAC;YACxG,OAAO,iCAAiC,CAAC,IAAI,EAAE,KAAK,EAAE,EAAE,EAAE,MAAM,EAAE,UAAU,CAAC,CAAC;QAChF,CAAC;QACD,CAAC,aAAa,CAAC,gCAAgC,CAAC,EAAE,CAAC,GAAG,EAAE,MAAM,EAAE,UAAU,EAAE,EAAE;YAC5E,MAAM,IAAI,GAAG,sBAAsB,CAAC,GAAG,CAAC,KAAK,CAAC,uCAAuC,EAAE,GAAG,CAAC,IAAI,CAAC,CAAC;YACjG,OAAO,kCAAkC,CAAC,IAAI,EAAE,KAAK,EAAE,EAAE,EAAE,MAAM,EAAE,UAAU,CAAC,CAAC;QACjF,CAAC;QAED,CAAC,aAAa,CAAC,oBAAoB,CAAC,EAAE,CAAC,GAAG,EAAE,EAAE;YAC5C,MAAM,IAAI,GAAG,sBAAsB,CAAC,GAAG,CAAC,IAAI,EAAE,GAAG,CAAC,IAAI,CAAC,CAAC;YACxD,OAAO,sBAAsB,CAAC,IAAI,EAAE,KAAK,CAAC,CAAC;QAC7C,CAAC;QACD,CAAC,aAAa,CAAC,yBAAyB,CAAC,EAAE,CAAC,GAAG,EAAE,EAAE;YACjD,MAAM,IAAI,GAAG,sBAAsB,CAAC,GAAG,CAAC,MAAM,CAAC,yBAAyB,EAAE,GAAG,CAAC,IAAI,CAAC,CAAC;YACpF,OAAO,2BAA2B,CAAC,IAAI,EAAE,KAAK,CAAC,CAAC;QAClD,CAAC;QACD,CAAC,aAAa,CAAC,yBAAyB,CAAC,EAAE,GAAG,EAAE,CAAC,2BAA2B,CAAC,KAAK,CAAC;QACnF,CAAC,aAAa,CAAC,2BAA2B,CAAC,EAAE,GAAG,EAAE,CAAC,6BAA6B,CAAC,KAAK,CAAC;KACxF,CAAC;IAEF,OAAO,CAAC,MAAM,EAAE,EAAE,CAAC,QAAQ,CAAC,MAAM,CAAC,CAAC;AACtC,CAAC"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../src/network/reqresp/handlers/index.ts"],"names":[],"mappings":"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"}