@lodestar/beacon-node 1.51.0-dev.b3beff2246 → 1.51.0-dev.b8de7b3528

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 (312) hide show
  1. package/lib/api/impl/api.js +1 -1
  2. package/lib/api/impl/api.js.map +1 -1
  3. package/lib/api/impl/beacon/blocks/index.d.ts +2 -1
  4. package/lib/api/impl/beacon/blocks/index.d.ts.map +1 -1
  5. package/lib/api/impl/beacon/blocks/index.js +29 -34
  6. package/lib/api/impl/beacon/blocks/index.js.map +1 -1
  7. package/lib/api/impl/beacon/index.d.ts +2 -1
  8. package/lib/api/impl/beacon/index.d.ts.map +1 -1
  9. package/lib/api/impl/beacon/index.js +2 -2
  10. package/lib/api/impl/beacon/index.js.map +1 -1
  11. package/lib/api/impl/beacon/pool/index.d.ts.map +1 -1
  12. package/lib/api/impl/beacon/pool/index.js +5 -2
  13. package/lib/api/impl/beacon/pool/index.js.map +1 -1
  14. package/lib/api/impl/beacon/state/utils.d.ts +1 -1
  15. package/lib/api/impl/beacon/state/utils.d.ts.map +1 -1
  16. package/lib/api/impl/validator/index.d.ts.map +1 -1
  17. package/lib/api/impl/validator/index.js +4 -1
  18. package/lib/api/impl/validator/index.js.map +1 -1
  19. package/lib/api/options.d.ts +2 -0
  20. package/lib/api/options.d.ts.map +1 -1
  21. package/lib/api/options.js +1 -0
  22. package/lib/api/options.js.map +1 -1
  23. package/lib/chain/GetBlobsTracker.d.ts +11 -0
  24. package/lib/chain/GetBlobsTracker.d.ts.map +1 -1
  25. package/lib/chain/GetBlobsTracker.js +85 -27
  26. package/lib/chain/GetBlobsTracker.js.map +1 -1
  27. package/lib/chain/archiveStore/archiveStore.d.ts.map +1 -1
  28. package/lib/chain/archiveStore/archiveStore.js +1 -0
  29. package/lib/chain/archiveStore/archiveStore.js.map +1 -1
  30. package/lib/chain/archiveStore/utils/archiveBlocks.d.ts +4 -0
  31. package/lib/chain/archiveStore/utils/archiveBlocks.d.ts.map +1 -1
  32. package/lib/chain/archiveStore/utils/archiveBlocks.js +61 -97
  33. package/lib/chain/archiveStore/utils/archiveBlocks.js.map +1 -1
  34. package/lib/chain/blocks/importBlock.d.ts.map +1 -1
  35. package/lib/chain/blocks/importBlock.js +6 -5
  36. package/lib/chain/blocks/importBlock.js.map +1 -1
  37. package/lib/chain/blocks/importExecutionPayload.d.ts +6 -11
  38. package/lib/chain/blocks/importExecutionPayload.d.ts.map +1 -1
  39. package/lib/chain/blocks/importExecutionPayload.js +10 -16
  40. package/lib/chain/blocks/importExecutionPayload.js.map +1 -1
  41. package/lib/chain/blocks/index.js +2 -2
  42. package/lib/chain/blocks/index.js.map +1 -1
  43. package/lib/chain/blocks/payloadEnvelopeProcessor.d.ts +12 -9
  44. package/lib/chain/blocks/payloadEnvelopeProcessor.d.ts.map +1 -1
  45. package/lib/chain/blocks/payloadEnvelopeProcessor.js +24 -19
  46. package/lib/chain/blocks/payloadEnvelopeProcessor.js.map +1 -1
  47. package/lib/chain/blocks/verifyBlock.d.ts.map +1 -1
  48. package/lib/chain/blocks/verifyBlock.js +10 -5
  49. package/lib/chain/blocks/verifyBlock.js.map +1 -1
  50. package/lib/chain/blocks/verifyBlocksDataAvailability.d.ts.map +1 -1
  51. package/lib/chain/blocks/verifyBlocksDataAvailability.js +8 -1
  52. package/lib/chain/blocks/verifyBlocksDataAvailability.js.map +1 -1
  53. package/lib/chain/blocks/verifyBlocksSignatures.d.ts.map +1 -1
  54. package/lib/chain/blocks/verifyBlocksSignatures.js +7 -5
  55. package/lib/chain/blocks/verifyBlocksSignatures.js.map +1 -1
  56. package/lib/chain/blocks/verifyPayloadsDataAvailability.d.ts +3 -3
  57. package/lib/chain/blocks/verifyPayloadsDataAvailability.d.ts.map +1 -1
  58. package/lib/chain/blocks/verifyPayloadsDataAvailability.js +11 -6
  59. package/lib/chain/blocks/verifyPayloadsDataAvailability.js.map +1 -1
  60. package/lib/chain/bls/interface.d.ts +2 -0
  61. package/lib/chain/bls/interface.d.ts.map +1 -1
  62. package/lib/chain/bls/multithread/index.d.ts.map +1 -1
  63. package/lib/chain/bls/multithread/index.js +13 -11
  64. package/lib/chain/bls/multithread/index.js.map +1 -1
  65. package/lib/chain/bls/multithread/types.d.ts +1 -1
  66. package/lib/chain/bls/multithread/types.d.ts.map +1 -1
  67. package/lib/chain/bls/multithread/worker.js +1 -1
  68. package/lib/chain/bls/multithread/worker.js.map +1 -1
  69. package/lib/chain/bls/singleThread.js +1 -1
  70. package/lib/chain/bls/singleThread.js.map +1 -1
  71. package/lib/chain/bls/utils.js +1 -1
  72. package/lib/chain/bls/utils.js.map +1 -1
  73. package/lib/chain/chain.d.ts +1 -1
  74. package/lib/chain/chain.d.ts.map +1 -1
  75. package/lib/chain/chain.js +4 -4
  76. package/lib/chain/chain.js.map +1 -1
  77. package/lib/chain/errors/blockError.d.ts +1 -1
  78. package/lib/chain/errors/blockError.d.ts.map +1 -1
  79. package/lib/chain/errors/blockError.js +1 -1
  80. package/lib/chain/errors/blockError.js.map +1 -1
  81. package/lib/chain/interface.d.ts +2 -3
  82. package/lib/chain/interface.d.ts.map +1 -1
  83. package/lib/chain/interface.js.map +1 -1
  84. package/lib/chain/opPools/aggregatedAttestationPool.d.ts.map +1 -1
  85. package/lib/chain/opPools/aggregatedAttestationPool.js +23 -10
  86. package/lib/chain/opPools/aggregatedAttestationPool.js.map +1 -1
  87. package/lib/chain/opPools/attestationPool.d.ts +1 -1
  88. package/lib/chain/opPools/attestationPool.d.ts.map +1 -1
  89. package/lib/chain/opPools/attestationPool.js +15 -4
  90. package/lib/chain/opPools/attestationPool.js.map +1 -1
  91. package/lib/chain/opPools/inclusionListStore.d.ts.map +1 -1
  92. package/lib/chain/opPools/inclusionListStore.js +2 -2
  93. package/lib/chain/opPools/inclusionListStore.js.map +1 -1
  94. package/lib/chain/opPools/payloadAttestationPool.d.ts.map +1 -1
  95. package/lib/chain/opPools/payloadAttestationPool.js +17 -7
  96. package/lib/chain/opPools/payloadAttestationPool.js.map +1 -1
  97. package/lib/chain/opPools/syncCommitteeMessagePool.d.ts.map +1 -1
  98. package/lib/chain/opPools/syncCommitteeMessagePool.js +9 -3
  99. package/lib/chain/opPools/syncCommitteeMessagePool.js.map +1 -1
  100. package/lib/chain/opPools/syncContributionAndProofPool.d.ts.map +1 -1
  101. package/lib/chain/opPools/syncContributionAndProofPool.js +11 -3
  102. package/lib/chain/opPools/syncContributionAndProofPool.js.map +1 -1
  103. package/lib/chain/opPools/utils.d.ts +1 -1
  104. package/lib/chain/opPools/utils.d.ts.map +1 -1
  105. package/lib/chain/opPools/utils.js +1 -1
  106. package/lib/chain/opPools/utils.js.map +1 -1
  107. package/lib/chain/options.d.ts +0 -1
  108. package/lib/chain/options.d.ts.map +1 -1
  109. package/lib/chain/options.js +0 -1
  110. package/lib/chain/options.js.map +1 -1
  111. package/lib/chain/produceBlock/produceBlockBody.d.ts.map +1 -1
  112. package/lib/chain/produceBlock/produceBlockBody.js +0 -1
  113. package/lib/chain/produceBlock/produceBlockBody.js.map +1 -1
  114. package/lib/chain/regen/interface.d.ts +0 -1
  115. package/lib/chain/regen/interface.d.ts.map +1 -1
  116. package/lib/chain/regen/interface.js +0 -1
  117. package/lib/chain/regen/interface.js.map +1 -1
  118. package/lib/chain/validation/executionPayloadBid.d.ts +0 -15
  119. package/lib/chain/validation/executionPayloadBid.d.ts.map +1 -1
  120. package/lib/chain/validation/executionPayloadBid.js +13 -166
  121. package/lib/chain/validation/executionPayloadBid.js.map +1 -1
  122. package/lib/chain/validation/inclusionList.d.ts.map +1 -1
  123. package/lib/chain/validation/inclusionList.js +11 -2
  124. package/lib/chain/validation/inclusionList.js.map +1 -1
  125. package/lib/db/beacon.d.ts +7 -0
  126. package/lib/db/beacon.d.ts.map +1 -1
  127. package/lib/db/beacon.js +34 -0
  128. package/lib/db/beacon.js.map +1 -1
  129. package/lib/db/dataColumnStore.d.ts +1 -1
  130. package/lib/db/dataColumnStore.d.ts.map +1 -1
  131. package/lib/db/dataColumnStore.js +1 -4
  132. package/lib/db/dataColumnStore.js.map +1 -1
  133. package/lib/db/flatFileStore/flatFileStore.js +5 -5
  134. package/lib/db/flatFileStore/flatFileStore.js.map +1 -1
  135. package/lib/db/flatFileStore/slotIndex.d.ts.map +1 -1
  136. package/lib/db/flatFileStore/slotIndex.js +2 -2
  137. package/lib/db/flatFileStore/slotIndex.js.map +1 -1
  138. package/lib/db/interface.d.ts +1 -0
  139. package/lib/db/interface.d.ts.map +1 -1
  140. package/lib/db/repositories/dataColumnSidecarArchive.d.ts +6 -0
  141. package/lib/db/repositories/dataColumnSidecarArchive.d.ts.map +1 -1
  142. package/lib/db/repositories/dataColumnSidecarArchive.js +19 -0
  143. package/lib/db/repositories/dataColumnSidecarArchive.js.map +1 -1
  144. package/lib/execution/engine/blobVersionedHashes.d.ts +1 -1
  145. package/lib/execution/engine/blobVersionedHashes.d.ts.map +1 -1
  146. package/lib/execution/engine/blobVersionedHashes.js.map +1 -1
  147. package/lib/execution/engine/http.d.ts.map +1 -1
  148. package/lib/execution/engine/http.js +0 -1
  149. package/lib/execution/engine/http.js.map +1 -1
  150. package/lib/execution/engine/index.d.ts +1 -1
  151. package/lib/execution/engine/index.d.ts.map +1 -1
  152. package/lib/execution/engine/index.js +1 -1
  153. package/lib/execution/engine/index.js.map +1 -1
  154. package/lib/execution/engine/interface.d.ts +1 -1
  155. package/lib/execution/engine/interface.d.ts.map +1 -1
  156. package/lib/execution/engine/interface.js.map +1 -1
  157. package/lib/execution/engine/mock.d.ts.map +1 -1
  158. package/lib/execution/engine/mock.js +6 -4
  159. package/lib/execution/engine/mock.js.map +1 -1
  160. package/lib/execution/engine/payloadIdCache.d.ts +1 -2
  161. package/lib/execution/engine/payloadIdCache.d.ts.map +1 -1
  162. package/lib/execution/engine/payloadIdCache.js +3 -3
  163. package/lib/execution/engine/payloadIdCache.js.map +1 -1
  164. package/lib/execution/engine/sszTypes.d.ts +38 -38
  165. package/lib/execution/engine/types.d.ts +1 -1
  166. package/lib/execution/engine/types.d.ts.map +1 -1
  167. package/lib/execution/engine/types.js +9 -8
  168. package/lib/execution/engine/types.js.map +1 -1
  169. package/lib/index.d.ts +1 -0
  170. package/lib/index.d.ts.map +1 -1
  171. package/lib/index.js +2 -0
  172. package/lib/index.js.map +1 -1
  173. package/lib/metrics/metrics/lodestar.d.ts +7 -0
  174. package/lib/metrics/metrics/lodestar.d.ts.map +1 -1
  175. package/lib/metrics/metrics/lodestar.js +15 -0
  176. package/lib/metrics/metrics/lodestar.js.map +1 -1
  177. package/lib/monitoring/service.js +1 -1
  178. package/lib/monitoring/service.js.map +1 -1
  179. package/lib/network/core/networkCore.d.ts +2 -0
  180. package/lib/network/core/networkCore.d.ts.map +1 -1
  181. package/lib/network/core/networkCore.js +3 -0
  182. package/lib/network/core/networkCore.js.map +1 -1
  183. package/lib/network/core/networkCoreWorker.js +1 -0
  184. package/lib/network/core/networkCoreWorker.js.map +1 -1
  185. package/lib/network/core/networkCoreWorkerHandler.d.ts +2 -0
  186. package/lib/network/core/networkCoreWorkerHandler.d.ts.map +1 -1
  187. package/lib/network/core/networkCoreWorkerHandler.js +3 -0
  188. package/lib/network/core/networkCoreWorkerHandler.js.map +1 -1
  189. package/lib/network/core/types.d.ts +2 -0
  190. package/lib/network/core/types.d.ts.map +1 -1
  191. package/lib/network/gossip/topic.d.ts +6 -6
  192. package/lib/network/interface.d.ts +2 -0
  193. package/lib/network/interface.d.ts.map +1 -1
  194. package/lib/network/libp2p/index.d.ts.map +1 -1
  195. package/lib/network/libp2p/index.js +5 -1
  196. package/lib/network/libp2p/index.js.map +1 -1
  197. package/lib/network/network.d.ts +2 -0
  198. package/lib/network/network.d.ts.map +1 -1
  199. package/lib/network/network.js +6 -1
  200. package/lib/network/network.js.map +1 -1
  201. package/lib/network/options.d.ts +2 -0
  202. package/lib/network/options.d.ts.map +1 -1
  203. package/lib/network/options.js.map +1 -1
  204. package/lib/network/peers/peerManager.d.ts +2 -1
  205. package/lib/network/peers/peerManager.d.ts.map +1 -1
  206. package/lib/network/peers/peerManager.js.map +1 -1
  207. package/lib/network/peers/utils/assertPeerRelevance.d.ts +9 -1
  208. package/lib/network/peers/utils/assertPeerRelevance.d.ts.map +1 -1
  209. package/lib/network/peers/utils/assertPeerRelevance.js +32 -21
  210. package/lib/network/peers/utils/assertPeerRelevance.js.map +1 -1
  211. package/lib/network/processor/gossipHandlers.d.ts.map +1 -1
  212. package/lib/network/processor/gossipHandlers.js +36 -26
  213. package/lib/network/processor/gossipHandlers.js.map +1 -1
  214. package/lib/node/nodejs.d.ts +1 -1
  215. package/lib/node/nodejs.d.ts.map +1 -1
  216. package/lib/node/nodejs.js +10 -2
  217. package/lib/node/nodejs.js.map +1 -1
  218. package/lib/node/options.d.ts +1 -1
  219. package/lib/node/options.d.ts.map +1 -1
  220. package/lib/node/options.js +1 -1
  221. package/lib/node/options.js.map +1 -1
  222. package/lib/sync/interface.d.ts.map +1 -1
  223. package/lib/sync/interface.js.map +1 -1
  224. package/lib/sync/sync.d.ts +7 -0
  225. package/lib/sync/sync.d.ts.map +1 -1
  226. package/lib/sync/sync.js +61 -3
  227. package/lib/sync/sync.js.map +1 -1
  228. package/lib/sync/unknownBlock.d.ts.map +1 -1
  229. package/lib/sync/unknownBlock.js +42 -18
  230. package/lib/sync/unknownBlock.js.map +1 -1
  231. package/lib/util/file.d.ts.map +1 -1
  232. package/lib/util/file.js +8 -9
  233. package/lib/util/file.js.map +1 -1
  234. package/lib/util/queue/itemQueue.js +1 -1
  235. package/lib/util/queue/itemQueue.js.map +1 -1
  236. package/lib/util/sszBytes.js +2 -2
  237. package/lib/util/sszBytes.js.map +1 -1
  238. package/package.json +17 -18
  239. package/src/api/impl/api.ts +1 -1
  240. package/src/api/impl/beacon/blocks/index.ts +57 -62
  241. package/src/api/impl/beacon/index.ts +3 -1
  242. package/src/api/impl/beacon/pool/index.ts +5 -1
  243. package/src/api/impl/beacon/state/utils.ts +1 -1
  244. package/src/api/impl/validator/index.ts +4 -1
  245. package/src/api/options.ts +3 -0
  246. package/src/chain/GetBlobsTracker.ts +97 -38
  247. package/src/chain/archiveStore/archiveStore.ts +1 -0
  248. package/src/chain/archiveStore/utils/archiveBlocks.ts +76 -130
  249. package/src/chain/blocks/importBlock.ts +8 -7
  250. package/src/chain/blocks/importExecutionPayload.ts +15 -22
  251. package/src/chain/blocks/index.ts +6 -2
  252. package/src/chain/blocks/payloadEnvelopeProcessor.ts +35 -24
  253. package/src/chain/blocks/verifyBlock.ts +23 -14
  254. package/src/chain/blocks/verifyBlocksDataAvailability.ts +10 -1
  255. package/src/chain/blocks/verifyBlocksSignatures.ts +7 -5
  256. package/src/chain/blocks/verifyPayloadsDataAvailability.ts +14 -6
  257. package/src/chain/bls/interface.ts +2 -0
  258. package/src/chain/bls/multithread/index.ts +14 -10
  259. package/src/chain/bls/multithread/types.ts +1 -1
  260. package/src/chain/bls/multithread/worker.ts +1 -5
  261. package/src/chain/bls/singleThread.ts +1 -1
  262. package/src/chain/bls/utils.ts +1 -1
  263. package/src/chain/chain.ts +5 -5
  264. package/src/chain/errors/blockError.ts +1 -1
  265. package/src/chain/interface.ts +2 -3
  266. package/src/chain/opPools/aggregatedAttestationPool.ts +25 -9
  267. package/src/chain/opPools/attestationPool.ts +16 -4
  268. package/src/chain/opPools/inclusionListStore.ts +3 -3
  269. package/src/chain/opPools/payloadAttestationPool.ts +18 -7
  270. package/src/chain/opPools/syncCommitteeMessagePool.ts +10 -3
  271. package/src/chain/opPools/syncContributionAndProofPool.ts +13 -3
  272. package/src/chain/opPools/utils.ts +1 -1
  273. package/src/chain/options.ts +0 -2
  274. package/src/chain/produceBlock/produceBlockBody.ts +0 -1
  275. package/src/chain/regen/interface.ts +0 -1
  276. package/src/chain/validation/executionPayloadBid.ts +14 -193
  277. package/src/chain/validation/inclusionList.ts +11 -2
  278. package/src/db/beacon.ts +44 -0
  279. package/src/db/dataColumnStore.ts +2 -4
  280. package/src/db/flatFileStore/flatFileStore.ts +7 -7
  281. package/src/db/flatFileStore/slotIndex.ts +4 -3
  282. package/src/db/interface.ts +2 -0
  283. package/src/db/repositories/dataColumnSidecarArchive.ts +20 -0
  284. package/src/execution/engine/blobVersionedHashes.ts +1 -1
  285. package/src/execution/engine/http.ts +0 -1
  286. package/src/execution/engine/index.ts +1 -1
  287. package/src/execution/engine/interface.ts +1 -1
  288. package/src/execution/engine/mock.ts +6 -4
  289. package/src/execution/engine/payloadIdCache.ts +6 -7
  290. package/src/execution/engine/types.ts +11 -9
  291. package/src/index.ts +2 -0
  292. package/src/metrics/metrics/lodestar.ts +15 -0
  293. package/src/monitoring/service.ts +1 -1
  294. package/src/network/core/networkCore.ts +5 -0
  295. package/src/network/core/networkCoreWorker.ts +1 -0
  296. package/src/network/core/networkCoreWorkerHandler.ts +4 -0
  297. package/src/network/core/types.ts +2 -0
  298. package/src/network/interface.ts +2 -0
  299. package/src/network/libp2p/index.ts +5 -1
  300. package/src/network/network.ts +8 -1
  301. package/src/network/options.ts +2 -0
  302. package/src/network/peers/peerManager.ts +1 -1
  303. package/src/network/peers/utils/assertPeerRelevance.ts +39 -23
  304. package/src/network/processor/gossipHandlers.ts +44 -28
  305. package/src/node/nodejs.ts +24 -7
  306. package/src/node/options.ts +4 -5
  307. package/src/sync/interface.ts +1 -0
  308. package/src/sync/sync.ts +65 -4
  309. package/src/sync/unknownBlock.ts +47 -28
  310. package/src/util/file.ts +8 -9
  311. package/src/util/queue/itemQueue.ts +1 -1
  312. package/src/util/sszBytes.ts +2 -2
@@ -1 +1 @@
1
- {"version":3,"file":"sszBytes.js","sourceRoot":"","sources":["../../src/util/sszBytes.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"sszBytes.js","sourceRoot":"","sources":["../../src/util/sszBytes.ts"],"names":[],"mappings":"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"}
package/package.json CHANGED
@@ -11,7 +11,7 @@
11
11
  "bugs": {
12
12
  "url": "https://github.com/ChainSafe/lodestar/issues"
13
13
  },
14
- "version": "1.51.0-dev.b3beff2246",
14
+ "version": "1.51.0-dev.b8de7b3528",
15
15
  "type": "module",
16
16
  "exports": {
17
17
  ".": {
@@ -105,11 +105,10 @@
105
105
  "@chainsafe/enr": "^6.0.2",
106
106
  "@chainsafe/libp2p-noise": "^17.0.0",
107
107
  "@chainsafe/libp2p-quic": "^2.1.5",
108
- "@chainsafe/lodestar-z": "catalog:",
109
108
  "@chainsafe/persistent-merkle-tree": "^1.3.1",
110
109
  "@chainsafe/prometheus-gc-stats": "^1.0.0",
111
110
  "@chainsafe/snappy-wasm": "^0.5.2",
112
- "@chainsafe/ssz": "^1.8.1",
111
+ "@chainsafe/ssz": "^1.9.0",
113
112
  "@chainsafe/threads": "^1.11.3",
114
113
  "@crate-crypto/node-eth-kzg": "0.9.1",
115
114
  "@fastify/bearer-auth": "^10.0.1",
@@ -127,17 +126,18 @@
127
126
  "@libp2p/prometheus-metrics": "^5.0.31",
128
127
  "@libp2p/tcp": "^11.0.30",
129
128
  "@libp2p/utils": "^7.4.3",
130
- "@lodestar/api": "^1.51.0-dev.b3beff2246",
131
- "@lodestar/config": "^1.51.0-dev.b3beff2246",
132
- "@lodestar/db": "^1.51.0-dev.b3beff2246",
133
- "@lodestar/fork-choice": "^1.51.0-dev.b3beff2246",
134
- "@lodestar/logger": "^1.51.0-dev.b3beff2246",
135
- "@lodestar/params": "^1.51.0-dev.b3beff2246",
136
- "@lodestar/reqresp": "^1.51.0-dev.b3beff2246",
137
- "@lodestar/state-transition": "^1.51.0-dev.b3beff2246",
138
- "@lodestar/types": "^1.51.0-dev.b3beff2246",
139
- "@lodestar/utils": "^1.51.0-dev.b3beff2246",
140
- "@lodestar/validator": "^1.51.0-dev.b3beff2246",
129
+ "@lodestar/api": "^1.51.0-dev.b8de7b3528",
130
+ "@lodestar/config": "^1.51.0-dev.b8de7b3528",
131
+ "@lodestar/db": "^1.51.0-dev.b8de7b3528",
132
+ "@lodestar/fork-choice": "^1.51.0-dev.b8de7b3528",
133
+ "@lodestar/logger": "^1.51.0-dev.b8de7b3528",
134
+ "@lodestar/native": "^1.51.0-dev.b8de7b3528",
135
+ "@lodestar/params": "^1.51.0-dev.b8de7b3528",
136
+ "@lodestar/reqresp": "^1.51.0-dev.b8de7b3528",
137
+ "@lodestar/state-transition": "^1.51.0-dev.b8de7b3528",
138
+ "@lodestar/types": "^1.51.0-dev.b8de7b3528",
139
+ "@lodestar/utils": "^1.51.0-dev.b8de7b3528",
140
+ "@lodestar/validator": "^1.51.0-dev.b8de7b3528",
141
141
  "@multiformats/multiaddr": "^13.0.1",
142
142
  "datastore-core": "^12.0.1",
143
143
  "datastore-level": "^13.0.1",
@@ -159,14 +159,13 @@
159
159
  "@ethereumjs/rlp": "^4.0.1",
160
160
  "@libp2p/interface-internal": "^3.2.0",
161
161
  "@libp2p/logger": "^6.2.15",
162
- "@lodestar/spec-test-util": "^1.51.0-dev.b3beff2246",
163
- "@lodestar/test-utils": "^1.51.0-dev.b3beff2246",
162
+ "@lodestar/spec-test-util": "^1.51.0-dev.b8de7b3528",
163
+ "@lodestar/test-utils": "^1.51.0-dev.b8de7b3528",
164
164
  "@types/js-yaml": "^4.0.5",
165
165
  "@types/qs": "^6.9.7",
166
166
  "@types/tmp": "^0.2.3",
167
167
  "dotenv": "^16.4.5",
168
168
  "js-yaml": "^4.1.0",
169
- "rimraf": "^4.4.1",
170
169
  "tmp": "^0.2.1"
171
170
  },
172
171
  "keywords": [
@@ -175,5 +174,5 @@
175
174
  "beacon",
176
175
  "blockchain"
177
176
  ],
178
- "gitHead": "7b70bcaf48e0f212ad066039e2e4674f9643e284"
177
+ "gitHead": "20e80e25ab451930556e652722cef41428e914b8"
179
178
  }
@@ -13,7 +13,7 @@ import {getValidatorApi} from "./validator/index.js";
13
13
 
14
14
  export function getApi(opts: ApiOptions, modules: ApiModules): BeaconApiMethods {
15
15
  return {
16
- beacon: getBeaconApi(modules),
16
+ beacon: getBeaconApi(opts, modules),
17
17
  config: getConfigApi(modules),
18
18
  debug: getDebugApi(modules),
19
19
  events: getEventsApi(modules),
@@ -62,7 +62,7 @@ import {
62
62
  } from "../../../../chain/produceBlock/index.js";
63
63
  import {RegenCaller} from "../../../../chain/regen/index.js";
64
64
  import {validateGossipBlock, verifyBlockProposerSignature} from "../../../../chain/validation/block.js";
65
- import {validateApiExecutionPayloadBid} from "../../../../chain/validation/executionPayloadBid.js";
65
+ import {validateGossipExecutionPayloadBid} from "../../../../chain/validation/executionPayloadBid.js";
66
66
  import {validateApiExecutionPayloadEnvelope} from "../../../../chain/validation/executionPayloadEnvelope.js";
67
67
  import {OpSource} from "../../../../chain/validatorMonitor.js";
68
68
  import {
@@ -79,6 +79,7 @@ import {
79
79
  import {isOptimisticBlock} from "../../../../util/forkChoice.js";
80
80
  import {kzg} from "../../../../util/kzg.js";
81
81
  import {promiseAllMaybeAsync} from "../../../../util/promises.js";
82
+ import {ApiOptions} from "../../../options.js";
82
83
  import {ApiModules} from "../../types.js";
83
84
  import {assertUniqueItems} from "../../utils.js";
84
85
  import {getBlockResponse, toBeaconHeaderResponse} from "./utils.js";
@@ -96,16 +97,10 @@ const MAX_API_CLOCK_DISPARITY_MS = 1000;
96
97
  */
97
98
  const IDENTITY_PEER_ID = ""; // TODO: Compute identity keypair
98
99
 
99
- export function getBeaconBlockApi({
100
- chain,
101
- config,
102
- metrics,
103
- network,
104
- db,
105
- }: Pick<
106
- ApiModules,
107
- "chain" | "config" | "metrics" | "network" | "db"
108
- >): ApplicationMethods<routes.beacon.block.Endpoints> {
100
+ export function getBeaconBlockApi(
101
+ opts: ApiOptions,
102
+ {chain, config, metrics, network, db}: Pick<ApiModules, "chain" | "config" | "metrics" | "network" | "db">
103
+ ): ApplicationMethods<routes.beacon.block.Endpoints> {
109
104
  const publishBlockV2: ApplicationMethods<routes.beacon.block.Endpoints>["publishBlockV2"] = async (
110
105
  {signedBlockContents, broadcastValidation, builderUrl},
111
106
  context,
@@ -321,18 +316,8 @@ export function getBeaconBlockApi({
321
316
  break;
322
317
  }
323
318
 
324
- case routes.beacon.BroadcastValidation.none: {
325
- chain.logger.debug("Skipping broadcast validation", valLogMeta);
326
- break;
327
- }
328
-
329
319
  default: {
330
- // error or log warning we do not support this validation
331
- const message = `Broadcast validation of ${broadcastValidation} type not implemented yet`;
332
- if (chain.opts.broadcastValidationStrictness === "error") {
333
- throw Error(message);
334
- }
335
- chain.logger.warn(message, valLogMeta);
320
+ throw new ApiError(400, `Invalid broadcast validation level ${broadcastValidation}`);
336
321
  }
337
322
  }
338
323
 
@@ -402,26 +387,24 @@ export function getBeaconBlockApi({
402
387
  ...blobSidecars.map((blobSidecar) => () => network.publishBlobSidecar(blobSidecar)),
403
388
  () =>
404
389
  // there is no rush to persist block since we published it to gossip anyway
405
- chain
406
- .processBlock(blockForImport, opts)
407
- .catch((e) => {
408
- if (e instanceof BlockError) {
409
- switch (e.type.code) {
410
- case BlockErrorCode.ALREADY_KNOWN:
411
- // Block was imported while publishing, e.g. received via gossip
412
- chain.logger.debug("Ignoring already-known block during publishing", valLogMeta);
413
- return;
414
- case BlockErrorCode.PARENT_BLOCK_UNKNOWN:
415
- case BlockErrorCode.PARENT_PAYLOAD_UNKNOWN:
416
- chain.emitter.emit(ChainEvent.blockUnknownParent, {
417
- blockInput: blockForImport,
418
- peer: IDENTITY_PEER_ID,
419
- source: BlockInputSource.api,
420
- });
421
- }
390
+ chain.processBlock(blockForImport, opts).catch((e) => {
391
+ if (e instanceof BlockError) {
392
+ switch (e.type.code) {
393
+ case BlockErrorCode.ALREADY_KNOWN:
394
+ // Block was imported while publishing, e.g. received via gossip
395
+ chain.logger.debug("Ignoring already-known block during publishing", valLogMeta);
396
+ return;
397
+ case BlockErrorCode.PARENT_BLOCK_UNKNOWN:
398
+ case BlockErrorCode.PARENT_PAYLOAD_UNKNOWN:
399
+ chain.emitter.emit(ChainEvent.blockUnknownParent, {
400
+ blockInput: blockForImport,
401
+ peer: IDENTITY_PEER_ID,
402
+ source: BlockInputSource.api,
403
+ });
422
404
  }
423
- throw e;
424
- }),
405
+ }
406
+ throw e;
407
+ }),
425
408
  ];
426
409
  const sentPeersArr = await promiseAllMaybeAsync<{sentPeers: number; alreadyPublished: boolean} | number | void>(
427
410
  publishPromises
@@ -809,11 +792,6 @@ export function getBeaconBlockApi({
809
792
  };
810
793
  try {
811
794
  switch (broadcastValidation) {
812
- case routes.beacon.BroadcastValidation.none: {
813
- chain.logger.debug("Skipping broadcast validation of execution payload envelope", valLogMeta);
814
- break;
815
- }
816
-
817
795
  case routes.beacon.BroadcastValidation.gossip: {
818
796
  await validateApiExecutionPayloadEnvelope(chain, signedExecutionPayloadEnvelope);
819
797
  break;
@@ -852,11 +830,7 @@ export function getBeaconBlockApi({
852
830
  }
853
831
 
854
832
  default: {
855
- const message = `Broadcast validation of ${broadcastValidation} type not implemented yet`;
856
- if (chain.opts.broadcastValidationStrictness === "error") {
857
- throw Error(message);
858
- }
859
- chain.logger.warn(message, valLogMeta);
833
+ throw new ApiError(400, `Invalid broadcast validation level ${broadcastValidation}`);
860
834
  }
861
835
  }
862
836
  } catch (error) {
@@ -1008,9 +982,13 @@ export function getBeaconBlockApi({
1008
982
  () => network.publishSignedExecutionPayloadEnvelope(signedExecutionPayloadEnvelope),
1009
983
  // Publish all data column sidecars
1010
984
  ...dataColumnSidecars.map((dataColumnSidecar) => () => network.publishDataColumnSidecar(dataColumnSidecar)),
1011
- // Import execution payload. Signature is verified during broadcast validation, an already
1012
- // known envelope was verified by its original source and `none` deliberately skips validation
1013
- () => chain.processExecutionPayload(payloadInput, {validSignature: true}),
985
+ // Import execution payload
986
+ () =>
987
+ chain.processExecutionPayload(payloadInput, {
988
+ // Signature is verified during broadcast validation only for the submitted envelope,
989
+ // an envelope cached by another source is verified at import
990
+ validSignature: payloadInput.getPayloadEnvelope() === signedExecutionPayloadEnvelope,
991
+ }),
1014
992
  ];
1015
993
 
1016
994
  const publishPromise = promiseAllMaybeAsync<{sentPeers: number; alreadyPublished: boolean} | number | void>(
@@ -1077,15 +1055,25 @@ export function getBeaconBlockApi({
1077
1055
  throw new ApiError(400, `publishExecutionPayloadBid not supported for pre-gloas fork=${fork}`);
1078
1056
  }
1079
1057
 
1080
- const validationTimer = metrics?.opPool.executionPayloadBidPool.apiValidationTime.startTimer();
1081
- // TODO: once the builder is tested and can be trusted, skip this local validation
1082
- // to publish faster, accepting peer-score risk if it ever emits an invalid bid.
1083
- await validateApiExecutionPayloadBid(chain, signedExecutionPayloadBid);
1084
- validationTimer?.();
1085
-
1086
1058
  const elapsedSec = chain.clock.secFromSlot(slot, seenTimestampSec);
1087
1059
  metrics?.gossipExecutionPayloadBid.elapsedTimeTillReceived.observe({source: OpSource.api}, elapsedSec);
1088
1060
 
1061
+ if (!opts.disableBidValidation) {
1062
+ const validationTimer = metrics?.opPool.executionPayloadBidPool.apiValidationTime.startTimer();
1063
+ const {proposerIndex} = await validateGossipExecutionPayloadBid(chain, signedExecutionPayloadBid);
1064
+ validationTimer?.();
1065
+
1066
+ // Gossip does not deliver our own messages back to us, so a validated bid is added to the
1067
+ // pool here to allow a proposer on this node to select it
1068
+ const insertOutcome = chain.executionPayloadBidPool.add(
1069
+ signedExecutionPayloadBid,
1070
+ Math.floor(elapsedSec * 1000)
1071
+ );
1072
+ metrics?.opPool.executionPayloadBidPool.apiInsertOutcome.inc({insertOutcome});
1073
+
1074
+ chain.validatorMonitor?.registerExecutionPayloadBid(OpSource.api, proposerIndex, bid);
1075
+ }
1076
+
1089
1077
  const sentPeers = await network.publishSignedExecutionPayloadBid(signedExecutionPayloadBid);
1090
1078
 
1091
1079
  chain.emitter.emit(routes.events.EventType.executionPayloadBid, {
@@ -1104,7 +1092,7 @@ export function getBeaconBlockApi({
1104
1092
  },
1105
1093
 
1106
1094
  async getSignedExecutionPayloadEnvelope({blockId}, context) {
1107
- const {block, executionOptimistic, finalized} = await getBlockResponse(chain, blockId);
1095
+ const {block, finalized} = await getBlockResponse(chain, blockId);
1108
1096
  const slot = block.message.slot;
1109
1097
  const fork = config.getForkName(slot);
1110
1098
 
@@ -1118,6 +1106,13 @@ export function getBeaconBlockApi({
1118
1106
  const blockRoot = config.getForkTypes(slot).BeaconBlock.hashTreeRoot(block.message);
1119
1107
  const blockRootHex = toRootHex(blockRoot);
1120
1108
 
1109
+ // The block's own flag is the status of the payload it builds on, the envelope's is that of its
1110
+ // FULL variant. An unfinalized block without one has not imported its envelope yet.
1111
+ const payload = finalized ? null : chain.forkChoice.getBlockHex(blockRootHex, PayloadStatus.FULL);
1112
+ if (!finalized && payload === null) {
1113
+ throw new ApiError(404, `Execution payload envelope not found for slot=${slot}, blockRoot=${blockRootHex}`);
1114
+ }
1115
+
1121
1116
  let data: Uint8Array | gloas.SignedExecutionPayloadEnvelope | null;
1122
1117
  try {
1123
1118
  data = context?.returnBytes
@@ -1142,7 +1137,7 @@ export function getBeaconBlockApi({
1142
1137
 
1143
1138
  return {
1144
1139
  data,
1145
- meta: {executionOptimistic, finalized, version: fork},
1140
+ meta: {executionOptimistic: payload !== null && isOptimisticBlock(payload), finalized, version: fork},
1146
1141
  };
1147
1142
  },
1148
1143
 
@@ -3,6 +3,7 @@ import {ApplicationMethods} from "@lodestar/api/server";
3
3
  import {isForkPostGloas} from "@lodestar/params";
4
4
  import {computeStartSlotAtEpoch} from "@lodestar/state-transition";
5
5
  import {toRootHex} from "@lodestar/utils";
6
+ import {ApiOptions} from "../../options.js";
6
7
  import {ApiError} from "../errors.js";
7
8
  import {ApiModules} from "../types.js";
8
9
  import {getBeaconBlockApi} from "./blocks/index.js";
@@ -11,9 +12,10 @@ import {getBeaconRewardsApi} from "./rewards/index.js";
11
12
  import {getBeaconStateApi} from "./state/index.js";
12
13
 
13
14
  export function getBeaconApi(
15
+ opts: ApiOptions,
14
16
  modules: Pick<ApiModules, "chain" | "config" | "logger" | "metrics" | "network" | "db" | "sync">
15
17
  ): ApplicationMethods<routes.beacon.Endpoints> {
16
- const block = getBeaconBlockApi(modules);
18
+ const block = getBeaconBlockApi(opts, modules);
17
19
  const pool = getBeaconPoolApi(modules);
18
20
  const state = getBeaconStateApi(modules);
19
21
  const rewards = getBeaconRewardsApi(modules);
@@ -17,6 +17,7 @@ import {
17
17
  PayloadAttestationError,
18
18
  PayloadAttestationErrorCode,
19
19
  SyncCommitteeError,
20
+ SyncCommitteeErrorCode,
20
21
  } from "../../../../chain/errors/index.js";
21
22
  import {validateApiAttesterSlashing} from "../../../../chain/validation/attesterSlashing.js";
22
23
  import {validateApiBlsToExecutionChange} from "../../../../chain/validation/blsToExecutionChange.js";
@@ -340,7 +341,10 @@ export function getBeaconPoolApi({
340
341
  const synCommittee = state.getIndexedSyncCommittee(signature.slot);
341
342
  const indexesInCommittee = synCommittee.validatorIndexMap.get(signature.validatorIndex);
342
343
  if (indexesInCommittee === undefined || indexesInCommittee.length === 0) {
343
- return; // Not a sync committee member
344
+ throw new SyncCommitteeError(GossipAction.REJECT, {
345
+ code: SyncCommitteeErrorCode.VALIDATOR_NOT_IN_SYNC_COMMITTEE,
346
+ validatorIndex: signature.validatorIndex,
347
+ });
344
348
  }
345
349
 
346
350
  // Verify signature only, all other data is very likely to be correct, since the `signature` object is created by this node.
@@ -1,6 +1,6 @@
1
- import {type PubkeyCache} from "@chainsafe/lodestar-z/pubkeys";
2
1
  import {routes} from "@lodestar/api";
3
2
  import {CheckpointWithHex, IForkChoice} from "@lodestar/fork-choice";
3
+ import {type PubkeyCache} from "@lodestar/native/pubkeys";
4
4
  import {GENESIS_SLOT} from "@lodestar/params";
5
5
  import {IBeaconStateView, IBeaconStateViewGloas} from "@lodestar/state-transition";
6
6
  import {
@@ -1756,7 +1756,10 @@ export function getValidatorApi(
1756
1756
  }
1757
1757
  }
1758
1758
 
1759
- const dependentRoot = fromHex(state.getShufflingDecisionRoot(epoch));
1759
+ // The fork epoch PTC is computed at the fork from effective balances updated at the end of the
1760
+ // last pre-fork epoch, so its dependent root is one epoch later than for other epochs
1761
+ const dependentRootEpoch = epoch === config.GLOAS_FORK_EPOCH ? epoch + 1 : epoch;
1762
+ const dependentRoot = fromHex(state.getShufflingDecisionRoot(dependentRootEpoch));
1760
1763
 
1761
1764
  return {
1762
1765
  data: duties,
@@ -2,6 +2,8 @@ import {BeaconRestApiServerOpts, beaconRestApiServerOpts} from "./rest/index.js"
2
2
 
3
3
  export type ApiOptions = {
4
4
  maxGindicesInProof?: number;
5
+ /** Broadcast execution payload bids submitted via the API without running gossip validation */
6
+ disableBidValidation?: boolean;
5
7
  rest: BeaconRestApiServerOpts;
6
8
  commit?: string;
7
9
  version?: string;
@@ -10,6 +12,7 @@ export type ApiOptions = {
10
12
 
11
13
  export const defaultApiOptions: ApiOptions = {
12
14
  maxGindicesInProof: 512,
15
+ disableBidValidation: false,
13
16
  rest: beaconRestApiServerOpts,
14
17
  version: "dev",
15
18
  private: false,
@@ -1,10 +1,9 @@
1
1
  import {ChainForkConfig} from "@lodestar/config";
2
2
  import {computeEpochAtSlot} from "@lodestar/state-transition";
3
- import {Logger} from "@lodestar/utils";
3
+ import {Logger, pruneSetToMax} from "@lodestar/utils";
4
4
  import {BLOB_AND_PROOF_V2_RPC_BYTES} from "../execution/engine/types.js";
5
5
  import {IExecutionEngine} from "../execution/index.js";
6
6
  import {Metrics} from "../metrics/metrics.js";
7
- import {callInNextEventLoop} from "../util/eventLoop.js";
8
7
  import {
9
8
  DataColumnEngineResult,
10
9
  getBlobSidecarsFromExecution,
@@ -14,6 +13,11 @@ import {IBlockInput, isBlockInputBlobs} from "./blocks/blockInput/index.js";
14
13
  import {PayloadEnvelopeInput} from "./blocks/payloadEnvelopeInput/index.js";
15
14
  import {ChainEventEmitter} from "./emitter.js";
16
15
 
16
+ /** A `null` answer only changes if the EL receives the transactions later, so retries are few and spaced out */
17
+ export const MAX_GET_BLOBS_ATTEMPTS = 3;
18
+ export const GET_BLOBS_RETRY_INTERVAL_MS = 1000;
19
+ const MAX_TRACKED_BLOCK_ROOTS = 64;
20
+
17
21
  export type GetBlobsTrackerInit = {
18
22
  logger: Logger;
19
23
  executionEngine: IExecutionEngine;
@@ -32,6 +36,8 @@ export class GetBlobsTracker {
32
36
  metrics: Metrics | null;
33
37
  config: ChainForkConfig;
34
38
  activeReconstructions = new Set<string>();
39
+ failedAttempts = new Map<string, {count: number; lastAttemptMs: number; retryTimer?: NodeJS.Timeout}>();
40
+ pendingTriggers = new Set<string>();
35
41
  // Preallocate buffers for getBlobsV2 RPC calls
36
42
  // See https://github.com/ChainSafe/lodestar/pull/8282 for context
37
43
  blobsAndProofsBuffers: {buffers: Uint8Array[]; inUse: boolean}[] = [];
@@ -46,23 +52,55 @@ export class GetBlobsTracker {
46
52
 
47
53
  triggerGetBlobs(input: IBlockInput | PayloadEnvelopeInput): void {
48
54
  if (this.activeReconstructions.has(input.blockRootHex)) {
55
+ this.pendingTriggers.add(input.blockRootHex);
49
56
  return;
50
57
  }
51
58
 
59
+ const failed = this.failedAttempts.get(input.blockRootHex);
60
+ if (failed) {
61
+ if (failed.count >= MAX_GET_BLOBS_ATTEMPTS) {
62
+ return;
63
+ }
64
+ const waitMs = GET_BLOBS_RETRY_INTERVAL_MS - (Date.now() - failed.lastAttemptMs);
65
+ if (waitMs > 0) {
66
+ // Columns tend to arrive in one burst, so keep a single trailing retry instead of relying on a later trigger
67
+ failed.retryTimer ??= setTimeout(() => {
68
+ failed.retryTimer = undefined;
69
+ if (this.failedAttempts.get(input.blockRootHex) === failed && !input.hasAllData()) {
70
+ this.triggerGetBlobs(input);
71
+ }
72
+ }, waitMs).unref();
73
+ return;
74
+ }
75
+ }
76
+
77
+ // The request is sent right away, before block processing issues newPayload: ELs that drop a
78
+ // transaction's blobs once the payload is validated can only answer a request that gets there first
52
79
  if (!(input instanceof PayloadEnvelopeInput) && isBlockInputBlobs(input)) {
53
80
  // there is not preallocation for blob sidecars like there is for columns sidecars so no need to
54
81
  // store the index for the preallocated buffers
55
82
  this.activeReconstructions.add(input.blockRootHex);
56
- callInNextEventLoop(() => {
57
- const logCtx = {slot: input.slot, root: input.blockRootHex};
58
- this.logger.verbose("Trigger getBlobsV1 for block", logCtx);
59
- getBlobSidecarsFromExecution(this.config, this.executionEngine, this.metrics, this.emitter, input).finally(
60
- () => {
61
- this.logger.verbose("Completed getBlobsV1 for block", logCtx);
62
- this.activeReconstructions.delete(input.blockRootHex);
83
+ const logCtx = {slot: input.slot, root: input.blockRootHex};
84
+ this.logger.verbose("Trigger getBlobsV1 for block", logCtx);
85
+ let requestFailed = false;
86
+ getBlobSidecarsFromExecution(this.config, this.executionEngine, this.metrics, this.emitter, input)
87
+ .then(() => {
88
+ // EL errors and misses are handled inside the helper, blobs still missing means the attempt failed
89
+ if (!input.hasAllData()) {
90
+ requestFailed = true;
91
+ this.recordFailedAttempt(input.blockRootHex);
63
92
  }
64
- );
65
- });
93
+ })
94
+ .catch((error) => {
95
+ this.logger.debug("Error during getBlobsV1 for block", logCtx, error as Error);
96
+ requestFailed = true;
97
+ this.recordFailedAttempt(input.blockRootHex);
98
+ })
99
+ .finally(() => {
100
+ this.logger.verbose("Completed getBlobsV1 for block", logCtx);
101
+ this.activeReconstructions.delete(input.blockRootHex);
102
+ this.retryPendingTrigger(input, requestFailed);
103
+ });
66
104
 
67
105
  return;
68
106
  }
@@ -83,34 +121,55 @@ export class GetBlobsTracker {
83
121
  }
84
122
  timer?.();
85
123
 
86
- // We don't care about the outcome of this call,
87
- // just that it has been triggered for this block root.
88
124
  this.activeReconstructions.add(input.blockRootHex);
89
125
  this.blobsAndProofsBuffers[freeIndex].inUse = true;
90
- callInNextEventLoop(() => {
91
- const logCtx = {slot: input.slot, root: input.blockRootHex};
92
- this.logger.verbose("Trigger getBlobsV2 for block", logCtx);
93
- getDataColumnSidecarsFromExecution(
94
- this.config,
95
- this.executionEngine,
96
- this.emitter,
97
- input,
98
- this.metrics,
99
- this.blobsAndProofsBuffers[freeIndex].buffers
100
- )
101
- .then((result) => {
102
- this.logger.debug("getBlobsV2 result for block", {...logCtx, result});
103
- this.metrics?.dataColumns.dataColumnEngineResult.inc({result});
104
- })
105
- .catch((error) => {
106
- this.logger.debug("Error during getBlobsV2 for block", logCtx, error as Error);
107
- this.metrics?.dataColumns.dataColumnEngineResult.inc({result: DataColumnEngineResult.Failed});
108
- })
109
- .finally(() => {
110
- this.logger.verbose("Completed getBlobsV2 for block", logCtx);
111
- this.activeReconstructions.delete(input.blockRootHex);
112
- this.blobsAndProofsBuffers[freeIndex].inUse = false;
113
- });
114
- });
126
+ const logCtx = {slot: input.slot, root: input.blockRootHex};
127
+ this.logger.verbose("Trigger getBlobsV2 for block", logCtx);
128
+ let requestFailed = false;
129
+ getDataColumnSidecarsFromExecution(
130
+ this.config,
131
+ this.executionEngine,
132
+ this.emitter,
133
+ input,
134
+ this.metrics,
135
+ this.blobsAndProofsBuffers[freeIndex].buffers
136
+ )
137
+ .then((result) => {
138
+ this.logger.debug("getBlobsV2 result for block", {...logCtx, result});
139
+ this.metrics?.dataColumns.dataColumnEngineResult.inc({result});
140
+ if (result === DataColumnEngineResult.NullResponse) {
141
+ requestFailed = true;
142
+ this.recordFailedAttempt(input.blockRootHex);
143
+ }
144
+ })
145
+ .catch((error) => {
146
+ this.logger.debug("Error during getBlobsV2 for block", logCtx, error as Error);
147
+ this.metrics?.dataColumns.dataColumnEngineResult.inc({result: DataColumnEngineResult.Failed});
148
+ requestFailed = true;
149
+ this.recordFailedAttempt(input.blockRootHex);
150
+ })
151
+ .finally(() => {
152
+ this.logger.verbose("Completed getBlobsV2 for block", logCtx);
153
+ this.activeReconstructions.delete(input.blockRootHex);
154
+ this.blobsAndProofsBuffers[freeIndex].inUse = false;
155
+ this.retryPendingTrigger(input, requestFailed);
156
+ });
157
+ }
158
+
159
+ private retryPendingTrigger(input: IBlockInput | PayloadEnvelopeInput, requestFailed: boolean): void {
160
+ // Triggers dropped while the request was in flight re-enter once it failed, the attempt that was just
161
+ // recorded makes this arm the trailing retry instead of sending another request right away.
162
+ // Post-gloas only the bid triggers a request, so every failed attempt re-enters to arm its own retry
163
+ const hadPendingTrigger = this.pendingTriggers.delete(input.blockRootHex);
164
+ if (requestFailed && (hadPendingTrigger || input instanceof PayloadEnvelopeInput)) {
165
+ this.triggerGetBlobs(input);
166
+ }
167
+ }
168
+
169
+ private recordFailedAttempt(blockRootHex: string): void {
170
+ const failed = this.failedAttempts.get(blockRootHex);
171
+ clearTimeout(failed?.retryTimer);
172
+ this.failedAttempts.set(blockRootHex, {count: (failed?.count ?? 0) + 1, lastAttemptMs: Date.now()});
173
+ pruneSetToMax(this.failedAttempts, MAX_TRACKED_BLOCK_ROOTS);
115
174
  }
116
175
  }