@lodestar/beacon-node 1.51.0-dev.c6e566f915 → 1.51.0-dev.cda05d18f1

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 (598) 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 +48 -95
  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 +22 -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 +6 -0
  17. package/lib/api/impl/validator/index.d.ts.map +1 -1
  18. package/lib/api/impl/validator/index.js +49 -31
  19. package/lib/api/impl/validator/index.js.map +1 -1
  20. package/lib/api/options.d.ts +2 -0
  21. package/lib/api/options.d.ts.map +1 -1
  22. package/lib/api/options.js +1 -0
  23. package/lib/api/options.js.map +1 -1
  24. package/lib/chain/GetBlobsTracker.d.ts +13 -2
  25. package/lib/chain/GetBlobsTracker.d.ts.map +1 -1
  26. package/lib/chain/GetBlobsTracker.js +69 -35
  27. package/lib/chain/GetBlobsTracker.js.map +1 -1
  28. package/lib/chain/archiveStore/archiveStore.d.ts.map +1 -1
  29. package/lib/chain/archiveStore/archiveStore.js +1 -0
  30. package/lib/chain/archiveStore/archiveStore.js.map +1 -1
  31. package/lib/chain/archiveStore/utils/archiveBlocks.d.ts +4 -0
  32. package/lib/chain/archiveStore/utils/archiveBlocks.d.ts.map +1 -1
  33. package/lib/chain/archiveStore/utils/archiveBlocks.js +61 -97
  34. package/lib/chain/archiveStore/utils/archiveBlocks.js.map +1 -1
  35. package/lib/chain/blocks/blockInput/blockInput.d.ts +11 -56
  36. package/lib/chain/blocks/blockInput/blockInput.d.ts.map +1 -1
  37. package/lib/chain/blocks/blockInput/blockInput.js +5 -241
  38. package/lib/chain/blocks/blockInput/blockInput.js.map +1 -1
  39. package/lib/chain/blocks/blockInput/errors.d.ts +2 -4
  40. package/lib/chain/blocks/blockInput/errors.d.ts.map +1 -1
  41. package/lib/chain/blocks/blockInput/errors.js.map +1 -1
  42. package/lib/chain/blocks/blockInput/types.d.ts +2 -18
  43. package/lib/chain/blocks/blockInput/types.d.ts.map +1 -1
  44. package/lib/chain/blocks/blockInput/types.js +0 -1
  45. package/lib/chain/blocks/blockInput/types.js.map +1 -1
  46. package/lib/chain/blocks/importBlock.d.ts.map +1 -1
  47. package/lib/chain/blocks/importBlock.js +40 -56
  48. package/lib/chain/blocks/importBlock.js.map +1 -1
  49. package/lib/chain/blocks/importExecutionPayload.d.ts +10 -11
  50. package/lib/chain/blocks/importExecutionPayload.d.ts.map +1 -1
  51. package/lib/chain/blocks/importExecutionPayload.js +34 -19
  52. package/lib/chain/blocks/importExecutionPayload.js.map +1 -1
  53. package/lib/chain/blocks/index.d.ts.map +1 -1
  54. package/lib/chain/blocks/index.js +4 -4
  55. package/lib/chain/blocks/index.js.map +1 -1
  56. package/lib/chain/blocks/payloadEnvelopeProcessor.d.ts +12 -9
  57. package/lib/chain/blocks/payloadEnvelopeProcessor.d.ts.map +1 -1
  58. package/lib/chain/blocks/payloadEnvelopeProcessor.js +24 -19
  59. package/lib/chain/blocks/payloadEnvelopeProcessor.js.map +1 -1
  60. package/lib/chain/blocks/types.d.ts +4 -20
  61. package/lib/chain/blocks/types.d.ts.map +1 -1
  62. package/lib/chain/blocks/types.js +0 -24
  63. package/lib/chain/blocks/types.js.map +1 -1
  64. package/lib/chain/blocks/verifyBlock.d.ts.map +1 -1
  65. package/lib/chain/blocks/verifyBlock.js +18 -7
  66. package/lib/chain/blocks/verifyBlock.js.map +1 -1
  67. package/lib/chain/blocks/verifyBlocksDataAvailability.d.ts.map +1 -1
  68. package/lib/chain/blocks/verifyBlocksDataAvailability.js +14 -2
  69. package/lib/chain/blocks/verifyBlocksDataAvailability.js.map +1 -1
  70. package/lib/chain/blocks/verifyBlocksExecutionPayloads.d.ts +1 -1
  71. package/lib/chain/blocks/verifyBlocksExecutionPayloads.d.ts.map +1 -1
  72. package/lib/chain/blocks/verifyBlocksExecutionPayloads.js +7 -3
  73. package/lib/chain/blocks/verifyBlocksExecutionPayloads.js.map +1 -1
  74. package/lib/chain/blocks/verifyBlocksSanityChecks.d.ts.map +1 -1
  75. package/lib/chain/blocks/verifyBlocksSanityChecks.js +4 -0
  76. package/lib/chain/blocks/verifyBlocksSanityChecks.js.map +1 -1
  77. package/lib/chain/blocks/verifyBlocksSignatures.d.ts.map +1 -1
  78. package/lib/chain/blocks/verifyBlocksSignatures.js +10 -5
  79. package/lib/chain/blocks/verifyBlocksSignatures.js.map +1 -1
  80. package/lib/chain/blocks/verifyPayloadsDataAvailability.d.ts +3 -3
  81. package/lib/chain/blocks/verifyPayloadsDataAvailability.d.ts.map +1 -1
  82. package/lib/chain/blocks/verifyPayloadsDataAvailability.js +11 -6
  83. package/lib/chain/blocks/verifyPayloadsDataAvailability.js.map +1 -1
  84. package/lib/chain/blocks/writeBlockInputToDb.d.ts +0 -2
  85. package/lib/chain/blocks/writeBlockInputToDb.d.ts.map +1 -1
  86. package/lib/chain/blocks/writeBlockInputToDb.js +6 -24
  87. package/lib/chain/blocks/writeBlockInputToDb.js.map +1 -1
  88. package/lib/chain/bls/interface.d.ts +2 -0
  89. package/lib/chain/bls/interface.d.ts.map +1 -1
  90. package/lib/chain/bls/multithread/index.d.ts +1 -1
  91. package/lib/chain/bls/multithread/index.d.ts.map +1 -1
  92. package/lib/chain/bls/multithread/index.js +50 -22
  93. package/lib/chain/bls/multithread/index.js.map +1 -1
  94. package/lib/chain/bls/multithread/types.d.ts +1 -1
  95. package/lib/chain/bls/multithread/types.d.ts.map +1 -1
  96. package/lib/chain/bls/multithread/worker.js +1 -1
  97. package/lib/chain/bls/multithread/worker.js.map +1 -1
  98. package/lib/chain/bls/singleThread.js +1 -1
  99. package/lib/chain/bls/singleThread.js.map +1 -1
  100. package/lib/chain/bls/utils.js +1 -1
  101. package/lib/chain/bls/utils.js.map +1 -1
  102. package/lib/chain/chain.d.ts +25 -4
  103. package/lib/chain/chain.d.ts.map +1 -1
  104. package/lib/chain/chain.js +124 -43
  105. package/lib/chain/chain.js.map +1 -1
  106. package/lib/chain/emitter.d.ts +7 -7
  107. package/lib/chain/emitter.d.ts.map +1 -1
  108. package/lib/chain/emitter.js +5 -5
  109. package/lib/chain/emitter.js.map +1 -1
  110. package/lib/chain/errors/blockError.d.ts +1 -1
  111. package/lib/chain/errors/blockError.d.ts.map +1 -1
  112. package/lib/chain/errors/blockError.js +1 -1
  113. package/lib/chain/errors/blockError.js.map +1 -1
  114. package/lib/chain/errors/executionPayloadEnvelope.d.ts +7 -0
  115. package/lib/chain/errors/executionPayloadEnvelope.d.ts.map +1 -1
  116. package/lib/chain/errors/executionPayloadEnvelope.js +1 -0
  117. package/lib/chain/errors/executionPayloadEnvelope.js.map +1 -1
  118. package/lib/chain/errors/index.d.ts +0 -1
  119. package/lib/chain/errors/index.d.ts.map +1 -1
  120. package/lib/chain/errors/index.js +0 -1
  121. package/lib/chain/errors/index.js.map +1 -1
  122. package/lib/chain/forkChoice/index.d.ts +11 -1
  123. package/lib/chain/forkChoice/index.d.ts.map +1 -1
  124. package/lib/chain/forkChoice/index.js +11 -0
  125. package/lib/chain/forkChoice/index.js.map +1 -1
  126. package/lib/chain/forkChoiceExecutionEngine.d.ts +51 -0
  127. package/lib/chain/forkChoiceExecutionEngine.d.ts.map +1 -0
  128. package/lib/chain/forkChoiceExecutionEngine.js +117 -0
  129. package/lib/chain/forkChoiceExecutionEngine.js.map +1 -0
  130. package/lib/chain/interface.d.ts +9 -7
  131. package/lib/chain/interface.d.ts.map +1 -1
  132. package/lib/chain/interface.js.map +1 -1
  133. package/lib/chain/opPools/aggregatedAttestationPool.d.ts +17 -4
  134. package/lib/chain/opPools/aggregatedAttestationPool.d.ts.map +1 -1
  135. package/lib/chain/opPools/aggregatedAttestationPool.js +199 -46
  136. package/lib/chain/opPools/aggregatedAttestationPool.js.map +1 -1
  137. package/lib/chain/opPools/attestationPool.d.ts +1 -1
  138. package/lib/chain/opPools/attestationPool.d.ts.map +1 -1
  139. package/lib/chain/opPools/attestationPool.js +15 -4
  140. package/lib/chain/opPools/attestationPool.js.map +1 -1
  141. package/lib/chain/opPools/inclusionListStore.d.ts.map +1 -1
  142. package/lib/chain/opPools/inclusionListStore.js +2 -2
  143. package/lib/chain/opPools/inclusionListStore.js.map +1 -1
  144. package/lib/chain/opPools/index.d.ts +1 -0
  145. package/lib/chain/opPools/index.d.ts.map +1 -1
  146. package/lib/chain/opPools/index.js +1 -0
  147. package/lib/chain/opPools/index.js.map +1 -1
  148. package/lib/chain/opPools/payloadAttestationPool.d.ts.map +1 -1
  149. package/lib/chain/opPools/payloadAttestationPool.js +17 -7
  150. package/lib/chain/opPools/payloadAttestationPool.js.map +1 -1
  151. package/lib/chain/opPools/singleAttestationPool.d.ts +77 -0
  152. package/lib/chain/opPools/singleAttestationPool.d.ts.map +1 -0
  153. package/lib/chain/opPools/singleAttestationPool.js +209 -0
  154. package/lib/chain/opPools/singleAttestationPool.js.map +1 -0
  155. package/lib/chain/opPools/syncCommitteeMessagePool.d.ts.map +1 -1
  156. package/lib/chain/opPools/syncCommitteeMessagePool.js +9 -3
  157. package/lib/chain/opPools/syncCommitteeMessagePool.js.map +1 -1
  158. package/lib/chain/opPools/syncContributionAndProofPool.d.ts.map +1 -1
  159. package/lib/chain/opPools/syncContributionAndProofPool.js +11 -3
  160. package/lib/chain/opPools/syncContributionAndProofPool.js.map +1 -1
  161. package/lib/chain/opPools/utils.d.ts +1 -1
  162. package/lib/chain/opPools/utils.d.ts.map +1 -1
  163. package/lib/chain/opPools/utils.js +1 -1
  164. package/lib/chain/opPools/utils.js.map +1 -1
  165. package/lib/chain/options.d.ts +5 -3
  166. package/lib/chain/options.d.ts.map +1 -1
  167. package/lib/chain/options.js +0 -1
  168. package/lib/chain/options.js.map +1 -1
  169. package/lib/chain/produceBlock/produceBlockBody.d.ts +3 -2
  170. package/lib/chain/produceBlock/produceBlockBody.d.ts.map +1 -1
  171. package/lib/chain/produceBlock/produceBlockBody.js +3 -3
  172. package/lib/chain/produceBlock/produceBlockBody.js.map +1 -1
  173. package/lib/chain/proposerTracker.d.ts +31 -0
  174. package/lib/chain/proposerTracker.d.ts.map +1 -0
  175. package/lib/chain/proposerTracker.js +75 -0
  176. package/lib/chain/proposerTracker.js.map +1 -0
  177. package/lib/chain/regen/interface.d.ts +1 -2
  178. package/lib/chain/regen/interface.d.ts.map +1 -1
  179. package/lib/chain/regen/interface.js +0 -1
  180. package/lib/chain/regen/interface.js.map +1 -1
  181. package/lib/chain/regen/queued.d.ts +1 -1
  182. package/lib/chain/regen/queued.d.ts.map +1 -1
  183. package/lib/chain/regen/queued.js +5 -3
  184. package/lib/chain/regen/queued.js.map +1 -1
  185. package/lib/chain/seenCache/seenGossipBlockInput.d.ts +7 -14
  186. package/lib/chain/seenCache/seenGossipBlockInput.d.ts.map +1 -1
  187. package/lib/chain/seenCache/seenGossipBlockInput.js +6 -65
  188. package/lib/chain/seenCache/seenGossipBlockInput.js.map +1 -1
  189. package/lib/chain/validation/executionPayloadBid.d.ts +0 -15
  190. package/lib/chain/validation/executionPayloadBid.d.ts.map +1 -1
  191. package/lib/chain/validation/executionPayloadBid.js +13 -166
  192. package/lib/chain/validation/executionPayloadBid.js.map +1 -1
  193. package/lib/chain/validation/executionPayloadEnvelope.d.ts +6 -0
  194. package/lib/chain/validation/executionPayloadEnvelope.d.ts.map +1 -1
  195. package/lib/chain/validation/executionPayloadEnvelope.js +53 -0
  196. package/lib/chain/validation/executionPayloadEnvelope.js.map +1 -1
  197. package/lib/chain/validation/inclusionList.d.ts.map +1 -1
  198. package/lib/chain/validation/inclusionList.js +11 -2
  199. package/lib/chain/validation/inclusionList.js.map +1 -1
  200. package/lib/chain/validation/syncCommittee.d.ts.map +1 -1
  201. package/lib/chain/validation/syncCommittee.js +16 -10
  202. package/lib/chain/validation/syncCommittee.js.map +1 -1
  203. package/lib/chain/validation/syncCommitteeContributionAndProof.d.ts.map +1 -1
  204. package/lib/chain/validation/syncCommitteeContributionAndProof.js +11 -0
  205. package/lib/chain/validation/syncCommitteeContributionAndProof.js.map +1 -1
  206. package/lib/chain/validatorMonitor.d.ts +1 -2
  207. package/lib/chain/validatorMonitor.d.ts.map +1 -1
  208. package/lib/chain/validatorMonitor.js +0 -3
  209. package/lib/chain/validatorMonitor.js.map +1 -1
  210. package/lib/db/beacon.d.ts +7 -0
  211. package/lib/db/beacon.d.ts.map +1 -1
  212. package/lib/db/beacon.js +34 -0
  213. package/lib/db/beacon.js.map +1 -1
  214. package/lib/db/dataColumnStore.d.ts +1 -1
  215. package/lib/db/dataColumnStore.d.ts.map +1 -1
  216. package/lib/db/dataColumnStore.js +1 -4
  217. package/lib/db/dataColumnStore.js.map +1 -1
  218. package/lib/db/flatFileStore/flatFileStore.js +5 -5
  219. package/lib/db/flatFileStore/flatFileStore.js.map +1 -1
  220. package/lib/db/flatFileStore/slotIndex.d.ts.map +1 -1
  221. package/lib/db/flatFileStore/slotIndex.js +2 -2
  222. package/lib/db/flatFileStore/slotIndex.js.map +1 -1
  223. package/lib/db/interface.d.ts +1 -0
  224. package/lib/db/interface.d.ts.map +1 -1
  225. package/lib/db/repositories/blobSidecars.d.ts +0 -1
  226. package/lib/db/repositories/blobSidecars.d.ts.map +1 -1
  227. package/lib/db/repositories/blobSidecars.js +0 -1
  228. package/lib/db/repositories/blobSidecars.js.map +1 -1
  229. package/lib/db/repositories/dataColumnSidecarArchive.d.ts +6 -0
  230. package/lib/db/repositories/dataColumnSidecarArchive.d.ts.map +1 -1
  231. package/lib/db/repositories/dataColumnSidecarArchive.js +19 -0
  232. package/lib/db/repositories/dataColumnSidecarArchive.js.map +1 -1
  233. package/lib/execution/builder/apiClient.d.ts +14 -8
  234. package/lib/execution/builder/apiClient.d.ts.map +1 -1
  235. package/lib/execution/builder/apiClient.js +12 -10
  236. package/lib/execution/builder/apiClient.js.map +1 -1
  237. package/lib/execution/builder/http.d.ts +2 -0
  238. package/lib/execution/builder/http.d.ts.map +1 -1
  239. package/lib/execution/builder/http.js +2 -0
  240. package/lib/execution/builder/http.js.map +1 -1
  241. package/lib/execution/engine/blobVersionedHashes.d.ts +1 -1
  242. package/lib/execution/engine/blobVersionedHashes.d.ts.map +1 -1
  243. package/lib/execution/engine/blobVersionedHashes.js.map +1 -1
  244. package/lib/execution/engine/http.d.ts +4 -6
  245. package/lib/execution/engine/http.d.ts.map +1 -1
  246. package/lib/execution/engine/http.js +8 -11
  247. package/lib/execution/engine/http.js.map +1 -1
  248. package/lib/execution/engine/index.d.ts +1 -1
  249. package/lib/execution/engine/index.d.ts.map +1 -1
  250. package/lib/execution/engine/index.js +1 -1
  251. package/lib/execution/engine/index.js.map +1 -1
  252. package/lib/execution/engine/interface.d.ts +18 -6
  253. package/lib/execution/engine/interface.d.ts.map +1 -1
  254. package/lib/execution/engine/interface.js.map +1 -1
  255. package/lib/execution/engine/jsonRpcTransport.d.ts +2 -4
  256. package/lib/execution/engine/jsonRpcTransport.d.ts.map +1 -1
  257. package/lib/execution/engine/jsonRpcTransport.js +2 -12
  258. package/lib/execution/engine/jsonRpcTransport.js.map +1 -1
  259. package/lib/execution/engine/mock.d.ts +0 -1
  260. package/lib/execution/engine/mock.d.ts.map +1 -1
  261. package/lib/execution/engine/mock.js +6 -8
  262. package/lib/execution/engine/mock.js.map +1 -1
  263. package/lib/execution/engine/payloadIdCache.d.ts +1 -2
  264. package/lib/execution/engine/payloadIdCache.d.ts.map +1 -1
  265. package/lib/execution/engine/payloadIdCache.js +3 -3
  266. package/lib/execution/engine/payloadIdCache.js.map +1 -1
  267. package/lib/execution/engine/restTransport.d.ts +2 -4
  268. package/lib/execution/engine/restTransport.d.ts.map +1 -1
  269. package/lib/execution/engine/restTransport.js +1 -15
  270. package/lib/execution/engine/restTransport.js.map +1 -1
  271. package/lib/execution/engine/sszTypes.d.ts +38 -47
  272. package/lib/execution/engine/sszTypes.d.ts.map +1 -1
  273. package/lib/execution/engine/sszTypes.js +0 -5
  274. package/lib/execution/engine/sszTypes.js.map +1 -1
  275. package/lib/execution/engine/transport.d.ts +1 -14
  276. package/lib/execution/engine/transport.d.ts.map +1 -1
  277. package/lib/execution/engine/types.d.ts +1 -9
  278. package/lib/execution/engine/types.d.ts.map +1 -1
  279. package/lib/execution/engine/types.js +9 -16
  280. package/lib/execution/engine/types.js.map +1 -1
  281. package/lib/execution/engine/utils.d.ts.map +1 -1
  282. package/lib/execution/engine/utils.js +3 -2
  283. package/lib/execution/engine/utils.js.map +1 -1
  284. package/lib/index.d.ts +1 -0
  285. package/lib/index.d.ts.map +1 -1
  286. package/lib/index.js +2 -0
  287. package/lib/index.js.map +1 -1
  288. package/lib/metrics/metrics/beacon.d.ts +0 -9
  289. package/lib/metrics/metrics/beacon.d.ts.map +1 -1
  290. package/lib/metrics/metrics/beacon.js +0 -30
  291. package/lib/metrics/metrics/beacon.js.map +1 -1
  292. package/lib/metrics/metrics/lodestar.d.ts +33 -8
  293. package/lib/metrics/metrics/lodestar.d.ts.map +1 -1
  294. package/lib/metrics/metrics/lodestar.js +84 -18
  295. package/lib/metrics/metrics/lodestar.js.map +1 -1
  296. package/lib/metrics/server/http.js +5 -5
  297. package/lib/metrics/server/http.js.map +1 -1
  298. package/lib/monitoring/service.js +1 -1
  299. package/lib/monitoring/service.js.map +1 -1
  300. package/lib/network/core/networkCore.d.ts +4 -1
  301. package/lib/network/core/networkCore.d.ts.map +1 -1
  302. package/lib/network/core/networkCore.js +7 -0
  303. package/lib/network/core/networkCore.js.map +1 -1
  304. package/lib/network/core/networkCoreWorker.js +2 -0
  305. package/lib/network/core/networkCoreWorker.js.map +1 -1
  306. package/lib/network/core/networkCoreWorkerHandler.d.ts +4 -1
  307. package/lib/network/core/networkCoreWorkerHandler.d.ts.map +1 -1
  308. package/lib/network/core/networkCoreWorkerHandler.js +6 -0
  309. package/lib/network/core/networkCoreWorkerHandler.js.map +1 -1
  310. package/lib/network/core/types.d.ts +6 -1
  311. package/lib/network/core/types.d.ts.map +1 -1
  312. package/lib/network/gossip/gossipsub.d.ts +1 -0
  313. package/lib/network/gossip/gossipsub.d.ts.map +1 -1
  314. package/lib/network/gossip/gossipsub.js +10 -0
  315. package/lib/network/gossip/gossipsub.js.map +1 -1
  316. package/lib/network/gossip/interface.d.ts +1 -8
  317. package/lib/network/gossip/interface.d.ts.map +1 -1
  318. package/lib/network/gossip/interface.js +0 -1
  319. package/lib/network/gossip/interface.js.map +1 -1
  320. package/lib/network/gossip/topic.d.ts +6 -22
  321. package/lib/network/gossip/topic.d.ts.map +1 -1
  322. package/lib/network/gossip/topic.js +0 -23
  323. package/lib/network/gossip/topic.js.map +1 -1
  324. package/lib/network/interface.d.ts +4 -5
  325. package/lib/network/interface.d.ts.map +1 -1
  326. package/lib/network/libp2p/index.d.ts.map +1 -1
  327. package/lib/network/libp2p/index.js +5 -1
  328. package/lib/network/libp2p/index.js.map +1 -1
  329. package/lib/network/network.d.ts +8 -7
  330. package/lib/network/network.d.ts.map +1 -1
  331. package/lib/network/network.js +53 -35
  332. package/lib/network/network.js.map +1 -1
  333. package/lib/network/options.d.ts +2 -0
  334. package/lib/network/options.d.ts.map +1 -1
  335. package/lib/network/options.js +2 -0
  336. package/lib/network/options.js.map +1 -1
  337. package/lib/network/peers/peerManager.d.ts +2 -1
  338. package/lib/network/peers/peerManager.d.ts.map +1 -1
  339. package/lib/network/peers/peerManager.js +28 -1
  340. package/lib/network/peers/peerManager.js.map +1 -1
  341. package/lib/network/peers/utils/assertPeerRelevance.d.ts +9 -1
  342. package/lib/network/peers/utils/assertPeerRelevance.d.ts.map +1 -1
  343. package/lib/network/peers/utils/assertPeerRelevance.js +32 -21
  344. package/lib/network/peers/utils/assertPeerRelevance.js.map +1 -1
  345. package/lib/network/peers/utils/prioritizePeers.d.ts +4 -1
  346. package/lib/network/peers/utils/prioritizePeers.d.ts.map +1 -1
  347. package/lib/network/peers/utils/prioritizePeers.js +8 -16
  348. package/lib/network/peers/utils/prioritizePeers.js.map +1 -1
  349. package/lib/network/peers/utils/subnetMap.d.ts +5 -2
  350. package/lib/network/peers/utils/subnetMap.d.ts.map +1 -1
  351. package/lib/network/peers/utils/subnetMap.js +6 -3
  352. package/lib/network/peers/utils/subnetMap.js.map +1 -1
  353. package/lib/network/processor/extractSlotRootFns.d.ts.map +1 -1
  354. package/lib/network/processor/extractSlotRootFns.js +1 -8
  355. package/lib/network/processor/extractSlotRootFns.js.map +1 -1
  356. package/lib/network/processor/gossipHandlers.d.ts.map +1 -1
  357. package/lib/network/processor/gossipHandlers.js +79 -149
  358. package/lib/network/processor/gossipHandlers.js.map +1 -1
  359. package/lib/network/processor/gossipQueues/index.d.ts.map +1 -1
  360. package/lib/network/processor/gossipQueues/index.js +0 -6
  361. package/lib/network/processor/gossipQueues/index.js.map +1 -1
  362. package/lib/network/processor/gossipValidatorFn.d.ts.map +1 -1
  363. package/lib/network/processor/gossipValidatorFn.js +1 -5
  364. package/lib/network/processor/gossipValidatorFn.js.map +1 -1
  365. package/lib/network/processor/index.d.ts +6 -0
  366. package/lib/network/processor/index.d.ts.map +1 -1
  367. package/lib/network/processor/index.js +55 -29
  368. package/lib/network/processor/index.js.map +1 -1
  369. package/lib/network/reqresp/ReqRespBeaconNode.d.ts.map +1 -1
  370. package/lib/network/reqresp/ReqRespBeaconNode.js +0 -3
  371. package/lib/network/reqresp/ReqRespBeaconNode.js.map +1 -1
  372. package/lib/network/reqresp/handlers/beaconBlocksByRange.d.ts +2 -2
  373. package/lib/network/reqresp/handlers/beaconBlocksByRange.d.ts.map +1 -1
  374. package/lib/network/reqresp/handlers/index.d.ts.map +1 -1
  375. package/lib/network/reqresp/handlers/index.js +1 -12
  376. package/lib/network/reqresp/handlers/index.js.map +1 -1
  377. package/lib/network/reqresp/protocols.d.ts +0 -2
  378. package/lib/network/reqresp/protocols.d.ts.map +1 -1
  379. package/lib/network/reqresp/protocols.js +0 -10
  380. package/lib/network/reqresp/protocols.js.map +1 -1
  381. package/lib/network/reqresp/rateLimit.d.ts.map +1 -1
  382. package/lib/network/reqresp/rateLimit.js +1 -17
  383. package/lib/network/reqresp/rateLimit.js.map +1 -1
  384. package/lib/network/reqresp/types.d.ts +2 -8
  385. package/lib/network/reqresp/types.d.ts.map +1 -1
  386. package/lib/network/reqresp/types.js +1 -7
  387. package/lib/network/reqresp/types.js.map +1 -1
  388. package/lib/network/subnets/attnetsService.d.ts +35 -5
  389. package/lib/network/subnets/attnetsService.d.ts.map +1 -1
  390. package/lib/network/subnets/attnetsService.js +84 -6
  391. package/lib/network/subnets/attnetsService.js.map +1 -1
  392. package/lib/network/subnets/interface.d.ts +7 -0
  393. package/lib/network/subnets/interface.d.ts.map +1 -1
  394. package/lib/network/subnets/interface.js.map +1 -1
  395. package/lib/node/nodejs.d.ts +3 -1
  396. package/lib/node/nodejs.d.ts.map +1 -1
  397. package/lib/node/nodejs.js +47 -21
  398. package/lib/node/nodejs.js.map +1 -1
  399. package/lib/node/options.d.ts +3 -1
  400. package/lib/node/options.d.ts.map +1 -1
  401. package/lib/node/options.js +4 -2
  402. package/lib/node/options.js.map +1 -1
  403. package/lib/sync/interface.d.ts.map +1 -1
  404. package/lib/sync/interface.js.map +1 -1
  405. package/lib/sync/range/batch.d.ts +2 -3
  406. package/lib/sync/range/batch.d.ts.map +1 -1
  407. package/lib/sync/range/batch.js +9 -22
  408. package/lib/sync/range/batch.js.map +1 -1
  409. package/lib/sync/range/chain.d.ts.map +1 -1
  410. package/lib/sync/range/chain.js +2 -15
  411. package/lib/sync/range/chain.js.map +1 -1
  412. package/lib/sync/sync.d.ts +15 -0
  413. package/lib/sync/sync.d.ts.map +1 -1
  414. package/lib/sync/sync.js +103 -25
  415. package/lib/sync/sync.js.map +1 -1
  416. package/lib/sync/unknownBlock.d.ts.map +1 -1
  417. package/lib/sync/unknownBlock.js +43 -25
  418. package/lib/sync/unknownBlock.js.map +1 -1
  419. package/lib/sync/utils/downloadByRange.d.ts +6 -34
  420. package/lib/sync/utils/downloadByRange.d.ts.map +1 -1
  421. package/lib/sync/utils/downloadByRange.js +24 -128
  422. package/lib/sync/utils/downloadByRange.js.map +1 -1
  423. package/lib/sync/utils/downloadByRoot.d.ts +2 -18
  424. package/lib/sync/utils/downloadByRoot.d.ts.map +1 -1
  425. package/lib/sync/utils/downloadByRoot.js +14 -99
  426. package/lib/sync/utils/downloadByRoot.js.map +1 -1
  427. package/lib/util/blobs.d.ts +1 -7
  428. package/lib/util/blobs.d.ts.map +1 -1
  429. package/lib/util/blobs.js +0 -19
  430. package/lib/util/blobs.js.map +1 -1
  431. package/lib/util/execution.d.ts +3 -4
  432. package/lib/util/execution.d.ts.map +1 -1
  433. package/lib/util/execution.js +1 -73
  434. package/lib/util/execution.js.map +1 -1
  435. package/lib/util/file.d.ts.map +1 -1
  436. package/lib/util/file.js +8 -9
  437. package/lib/util/file.js.map +1 -1
  438. package/lib/util/queue/itemQueue.js +1 -1
  439. package/lib/util/queue/itemQueue.js.map +1 -1
  440. package/lib/util/sszBytes.d.ts +5 -1
  441. package/lib/util/sszBytes.d.ts.map +1 -1
  442. package/lib/util/sszBytes.js +36 -19
  443. package/lib/util/sszBytes.js.map +1 -1
  444. package/lib/util/types.d.ts +0 -5
  445. package/lib/util/types.d.ts.map +1 -1
  446. package/lib/util/types.js +1 -2
  447. package/lib/util/types.js.map +1 -1
  448. package/package.json +31 -32
  449. package/src/api/impl/api.ts +1 -1
  450. package/src/api/impl/beacon/blocks/index.ts +81 -126
  451. package/src/api/impl/beacon/index.ts +3 -1
  452. package/src/api/impl/beacon/pool/index.ts +31 -1
  453. package/src/api/impl/beacon/state/utils.ts +1 -1
  454. package/src/api/impl/validator/index.ts +54 -37
  455. package/src/api/options.ts +3 -0
  456. package/src/chain/GetBlobsTracker.ts +82 -52
  457. package/src/chain/archiveStore/archiveStore.ts +1 -0
  458. package/src/chain/archiveStore/utils/archiveBlocks.ts +76 -130
  459. package/src/chain/blocks/blockInput/blockInput.ts +11 -343
  460. package/src/chain/blocks/blockInput/errors.ts +1 -2
  461. package/src/chain/blocks/blockInput/types.ts +2 -20
  462. package/src/chain/blocks/importBlock.ts +61 -76
  463. package/src/chain/blocks/importExecutionPayload.ts +57 -35
  464. package/src/chain/blocks/index.ts +11 -4
  465. package/src/chain/blocks/payloadEnvelopeProcessor.ts +35 -24
  466. package/src/chain/blocks/types.ts +5 -31
  467. package/src/chain/blocks/verifyBlock.ts +31 -16
  468. package/src/chain/blocks/verifyBlocksDataAvailability.ts +16 -2
  469. package/src/chain/blocks/verifyBlocksExecutionPayloads.ts +9 -6
  470. package/src/chain/blocks/verifyBlocksSanityChecks.ts +4 -1
  471. package/src/chain/blocks/verifyBlocksSignatures.ts +10 -5
  472. package/src/chain/blocks/verifyPayloadsDataAvailability.ts +14 -6
  473. package/src/chain/blocks/writeBlockInputToDb.ts +6 -29
  474. package/src/chain/bls/interface.ts +2 -0
  475. package/src/chain/bls/multithread/index.ts +48 -24
  476. package/src/chain/bls/multithread/types.ts +1 -1
  477. package/src/chain/bls/multithread/worker.ts +1 -5
  478. package/src/chain/bls/singleThread.ts +1 -1
  479. package/src/chain/bls/utils.ts +1 -1
  480. package/src/chain/chain.ts +140 -42
  481. package/src/chain/emitter.ts +8 -8
  482. package/src/chain/errors/blockError.ts +1 -1
  483. package/src/chain/errors/executionPayloadEnvelope.ts +8 -0
  484. package/src/chain/errors/index.ts +0 -1
  485. package/src/chain/forkChoice/index.ts +11 -0
  486. package/src/chain/forkChoiceExecutionEngine.ts +183 -0
  487. package/src/chain/interface.ts +9 -6
  488. package/src/chain/opPools/aggregatedAttestationPool.ts +246 -43
  489. package/src/chain/opPools/attestationPool.ts +16 -4
  490. package/src/chain/opPools/inclusionListStore.ts +3 -3
  491. package/src/chain/opPools/index.ts +1 -0
  492. package/src/chain/opPools/payloadAttestationPool.ts +18 -7
  493. package/src/chain/opPools/singleAttestationPool.ts +287 -0
  494. package/src/chain/opPools/syncCommitteeMessagePool.ts +10 -3
  495. package/src/chain/opPools/syncContributionAndProofPool.ts +13 -3
  496. package/src/chain/opPools/utils.ts +1 -1
  497. package/src/chain/options.ts +5 -4
  498. package/src/chain/produceBlock/produceBlockBody.ts +7 -4
  499. package/src/chain/proposerTracker.ts +94 -0
  500. package/src/chain/regen/interface.ts +1 -2
  501. package/src/chain/regen/queued.ts +6 -4
  502. package/src/chain/seenCache/seenGossipBlockInput.ts +9 -93
  503. package/src/chain/validation/executionPayloadBid.ts +14 -193
  504. package/src/chain/validation/executionPayloadEnvelope.ts +68 -1
  505. package/src/chain/validation/inclusionList.ts +11 -2
  506. package/src/chain/validation/syncCommittee.ts +31 -15
  507. package/src/chain/validation/syncCommitteeContributionAndProof.ts +13 -0
  508. package/src/chain/validatorMonitor.ts +0 -6
  509. package/src/db/beacon.ts +44 -0
  510. package/src/db/dataColumnStore.ts +2 -4
  511. package/src/db/flatFileStore/flatFileStore.ts +7 -7
  512. package/src/db/flatFileStore/slotIndex.ts +4 -3
  513. package/src/db/interface.ts +2 -0
  514. package/src/db/repositories/blobSidecars.ts +0 -1
  515. package/src/db/repositories/dataColumnSidecarArchive.ts +20 -0
  516. package/src/execution/builder/apiClient.ts +16 -13
  517. package/src/execution/builder/http.ts +4 -0
  518. package/src/execution/engine/blobVersionedHashes.ts +1 -1
  519. package/src/execution/engine/http.ts +19 -43
  520. package/src/execution/engine/index.ts +1 -1
  521. package/src/execution/engine/interface.ts +19 -10
  522. package/src/execution/engine/jsonRpcTransport.ts +10 -22
  523. package/src/execution/engine/mock.ts +6 -11
  524. package/src/execution/engine/payloadIdCache.ts +6 -7
  525. package/src/execution/engine/restTransport.ts +3 -22
  526. package/src/execution/engine/sszTypes.ts +0 -9
  527. package/src/execution/engine/transport.ts +8 -17
  528. package/src/execution/engine/types.ts +11 -26
  529. package/src/execution/engine/utils.ts +4 -2
  530. package/src/index.ts +2 -0
  531. package/src/metrics/metrics/beacon.ts +0 -30
  532. package/src/metrics/metrics/lodestar.ts +85 -18
  533. package/src/metrics/server/http.ts +5 -5
  534. package/src/monitoring/service.ts +1 -1
  535. package/src/network/core/networkCore.ts +11 -1
  536. package/src/network/core/networkCoreWorker.ts +2 -0
  537. package/src/network/core/networkCoreWorkerHandler.ts +8 -1
  538. package/src/network/core/types.ts +6 -1
  539. package/src/network/gossip/gossipsub.ts +11 -0
  540. package/src/network/gossip/interface.ts +0 -5
  541. package/src/network/gossip/topic.ts +0 -25
  542. package/src/network/interface.ts +2 -5
  543. package/src/network/libp2p/index.ts +5 -1
  544. package/src/network/network.ts +55 -58
  545. package/src/network/options.ts +4 -0
  546. package/src/network/peers/peerManager.ts +28 -3
  547. package/src/network/peers/utils/assertPeerRelevance.ts +39 -23
  548. package/src/network/peers/utils/prioritizePeers.ts +14 -22
  549. package/src/network/peers/utils/subnetMap.ts +6 -3
  550. package/src/network/processor/extractSlotRootFns.ts +0 -9
  551. package/src/network/processor/gossipHandlers.ts +99 -183
  552. package/src/network/processor/gossipQueues/index.ts +0 -6
  553. package/src/network/processor/gossipValidatorFn.ts +0 -5
  554. package/src/network/processor/index.ts +47 -27
  555. package/src/network/processor/types.ts +1 -1
  556. package/src/network/reqresp/ReqRespBeaconNode.ts +0 -7
  557. package/src/network/reqresp/handlers/beaconBlocksByRange.ts +2 -2
  558. package/src/network/reqresp/handlers/index.ts +0 -17
  559. package/src/network/reqresp/protocols.ts +0 -12
  560. package/src/network/reqresp/rateLimit.ts +1 -17
  561. package/src/network/reqresp/types.ts +0 -13
  562. package/src/network/subnets/attnetsService.ts +94 -6
  563. package/src/network/subnets/interface.ts +7 -0
  564. package/src/node/nodejs.ts +58 -22
  565. package/src/node/options.ts +9 -6
  566. package/src/sync/interface.ts +1 -0
  567. package/src/sync/range/batch.ts +9 -21
  568. package/src/sync/range/chain.ts +2 -14
  569. package/src/sync/sync.ts +108 -26
  570. package/src/sync/unknownBlock.ts +48 -36
  571. package/src/sync/utils/downloadByRange.ts +31 -230
  572. package/src/sync/utils/downloadByRoot.ts +15 -142
  573. package/src/util/blobs.ts +0 -34
  574. package/src/util/execution.ts +8 -102
  575. package/src/util/file.ts +8 -9
  576. package/src/util/queue/itemQueue.ts +1 -1
  577. package/src/util/sszBytes.ts +42 -24
  578. package/src/util/types.ts +1 -8
  579. package/lib/chain/errors/blobSidecarError.d.ts +0 -108
  580. package/lib/chain/errors/blobSidecarError.d.ts.map +0 -1
  581. package/lib/chain/errors/blobSidecarError.js +0 -38
  582. package/lib/chain/errors/blobSidecarError.js.map +0 -1
  583. package/lib/chain/validation/blobSidecar.d.ts +0 -16
  584. package/lib/chain/validation/blobSidecar.d.ts.map +0 -1
  585. package/lib/chain/validation/blobSidecar.js +0 -276
  586. package/lib/chain/validation/blobSidecar.js.map +0 -1
  587. package/lib/network/reqresp/handlers/blobSidecarsByRange.d.ts +0 -9
  588. package/lib/network/reqresp/handlers/blobSidecarsByRange.d.ts.map +0 -1
  589. package/lib/network/reqresp/handlers/blobSidecarsByRange.js +0 -91
  590. package/lib/network/reqresp/handlers/blobSidecarsByRange.js.map +0 -1
  591. package/lib/network/reqresp/handlers/blobSidecarsByRoot.d.ts +0 -5
  592. package/lib/network/reqresp/handlers/blobSidecarsByRoot.d.ts.map +0 -1
  593. package/lib/network/reqresp/handlers/blobSidecarsByRoot.js +0 -46
  594. package/lib/network/reqresp/handlers/blobSidecarsByRoot.js.map +0 -1
  595. package/src/chain/errors/blobSidecarError.ts +0 -70
  596. package/src/chain/validation/blobSidecar.ts +0 -357
  597. package/src/network/reqresp/handlers/blobSidecarsByRange.ts +0 -133
  598. package/src/network/reqresp/handlers/blobSidecarsByRoot.ts +0 -69
@@ -9,7 +9,7 @@ import { getProofApi } from "./proof/index.js";
9
9
  import { getValidatorApi } from "./validator/index.js";
10
10
  export function getApi(opts, modules) {
11
11
  return {
12
- beacon: getBeaconApi(modules),
12
+ beacon: getBeaconApi(opts, modules),
13
13
  config: getConfigApi(modules),
14
14
  debug: getDebugApi(modules),
15
15
  events: getEventsApi(modules),
@@ -1 +1 @@
1
- {"version":3,"file":"api.js","sourceRoot":"","sources":["../../../src/api/impl/api.ts"],"names":[],"mappings":"AAEA,OAAO,EAAC,YAAY,EAAC,MAAM,mBAAmB,CAAC;AAC/C,OAAO,EAAC,YAAY,EAAC,MAAM,mBAAmB,CAAC;AAC/C,OAAO,EAAC,WAAW,EAAC,MAAM,kBAAkB,CAAC;AAC7C,OAAO,EAAC,YAAY,EAAC,MAAM,mBAAmB,CAAC;AAC/C,OAAO,EAAC,iBAAiB,EAAC,MAAM,wBAAwB,CAAC;AACzD,OAAO,EAAC,cAAc,EAAC,MAAM,qBAAqB,CAAC;AACnD,OAAO,EAAC,UAAU,EAAC,MAAM,iBAAiB,CAAC;AAC3C,OAAO,EAAC,WAAW,EAAC,MAAM,kBAAkB,CAAC;AAE7C,OAAO,EAAC,eAAe,EAAC,MAAM,sBAAsB,CAAC;AAErD,MAAM,UAAU,MAAM,CAAC,IAAgB,EAAE,OAAmB;IAC1D,OAAO;QACL,MAAM,EAAE,YAAY,CAAC,OAAO,CAAC;QAC7B,MAAM,EAAE,YAAY,CAAC,OAAO,CAAC;QAC7B,KAAK,EAAE,WAAW,CAAC,OAAO,CAAC;QAC3B,MAAM,EAAE,YAAY,CAAC,OAAO,CAAC;QAC7B,WAAW,EAAE,iBAAiB,CAAC,OAAO,CAAC;QACvC,QAAQ,EAAE,cAAc,CAAC,OAAO,CAAC;QACjC,IAAI,EAAE,UAAU,CAAC,IAAI,EAAE,OAAO,CAAC;QAC/B,KAAK,EAAE,WAAW,CAAC,IAAI,EAAE,OAAO,CAAC;QACjC,SAAS,EAAE,eAAe,CAAC,IAAI,EAAE,OAAO,CAAC;KAC1C,CAAC;AACJ,CAAC"}
1
+ {"version":3,"file":"api.js","sourceRoot":"","sources":["../../../src/api/impl/api.ts"],"names":[],"mappings":"AAEA,OAAO,EAAC,YAAY,EAAC,MAAM,mBAAmB,CAAC;AAC/C,OAAO,EAAC,YAAY,EAAC,MAAM,mBAAmB,CAAC;AAC/C,OAAO,EAAC,WAAW,EAAC,MAAM,kBAAkB,CAAC;AAC7C,OAAO,EAAC,YAAY,EAAC,MAAM,mBAAmB,CAAC;AAC/C,OAAO,EAAC,iBAAiB,EAAC,MAAM,wBAAwB,CAAC;AACzD,OAAO,EAAC,cAAc,EAAC,MAAM,qBAAqB,CAAC;AACnD,OAAO,EAAC,UAAU,EAAC,MAAM,iBAAiB,CAAC;AAC3C,OAAO,EAAC,WAAW,EAAC,MAAM,kBAAkB,CAAC;AAE7C,OAAO,EAAC,eAAe,EAAC,MAAM,sBAAsB,CAAC;AAErD,MAAM,UAAU,MAAM,CAAC,IAAgB,EAAE,OAAmB;IAC1D,OAAO;QACL,MAAM,EAAE,YAAY,CAAC,IAAI,EAAE,OAAO,CAAC;QACnC,MAAM,EAAE,YAAY,CAAC,OAAO,CAAC;QAC7B,KAAK,EAAE,WAAW,CAAC,OAAO,CAAC;QAC3B,MAAM,EAAE,YAAY,CAAC,OAAO,CAAC;QAC7B,WAAW,EAAE,iBAAiB,CAAC,OAAO,CAAC;QACvC,QAAQ,EAAE,cAAc,CAAC,OAAO,CAAC;QACjC,IAAI,EAAE,UAAU,CAAC,IAAI,EAAE,OAAO,CAAC;QAC/B,KAAK,EAAE,WAAW,CAAC,IAAI,EAAE,OAAO,CAAC;QACjC,SAAS,EAAE,eAAe,CAAC,IAAI,EAAE,OAAO,CAAC;KAC1C,CAAC;AACJ,CAAC"}
@@ -1,5 +1,6 @@
1
1
  import { routes } from "@lodestar/api";
2
2
  import { ApplicationMethods } from "@lodestar/api/server";
3
+ import { ApiOptions } from "../../../options.js";
3
4
  import { ApiModules } from "../../types.js";
4
- export declare function getBeaconBlockApi({ chain, config, metrics, network, db, }: Pick<ApiModules, "chain" | "config" | "metrics" | "network" | "db">): ApplicationMethods<routes.beacon.block.Endpoints>;
5
+ export declare function getBeaconBlockApi(opts: ApiOptions, { chain, config, metrics, network, db }: Pick<ApiModules, "chain" | "config" | "metrics" | "network" | "db">): ApplicationMethods<routes.beacon.block.Endpoints>;
5
6
  //# sourceMappingURL=index.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../../src/api/impl/beacon/blocks/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAC,MAAM,EAAC,MAAM,eAAe,CAAC;AACrC,OAAO,EAAW,kBAAkB,EAAC,MAAM,sBAAsB,CAAC;AAgFlE,OAAO,EAAC,UAAU,EAAC,MAAM,gBAAgB,CAAC;AAiB1C,wBAAgB,iBAAiB,CAAC,EAChC,KAAK,EACL,MAAM,EACN,OAAO,EACP,OAAO,EACP,EAAE,GACH,EAAE,IAAI,CACL,UAAU,EACV,OAAO,GAAG,QAAQ,GAAG,SAAS,GAAG,SAAS,GAAG,IAAI,CAClD,GAAG,kBAAkB,CAAC,MAAM,CAAC,MAAM,CAAC,KAAK,CAAC,SAAS,CAAC,CAitCpD"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../../src/api/impl/beacon/blocks/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAC,MAAM,EAAC,MAAM,eAAe,CAAC;AACrC,OAAO,EAAW,kBAAkB,EAAC,MAAM,sBAAsB,CAAC;AA+ElE,OAAO,EAAC,UAAU,EAAC,MAAM,qBAAqB,CAAC;AAC/C,OAAO,EAAC,UAAU,EAAC,MAAM,gBAAgB,CAAC;AAiB1C,wBAAgB,iBAAiB,CAC/B,IAAI,EAAE,UAAU,EAChB,EAAC,KAAK,EAAE,MAAM,EAAE,OAAO,EAAE,OAAO,EAAE,EAAE,EAAC,EAAE,IAAI,CAAC,UAAU,EAAE,OAAO,GAAG,QAAQ,GAAG,SAAS,GAAG,SAAS,GAAG,IAAI,CAAC,GACzG,kBAAkB,CAAC,MAAM,CAAC,MAAM,CAAC,KAAK,CAAC,SAAS,CAAC,CA0qCnD"}
@@ -5,7 +5,7 @@ import { BUILDER_INDEX_SELF_BUILD, NUMBER_OF_COLUMNS, SLOTS_PER_HISTORICAL_ROOT,
5
5
  import { computeEpochAtSlot, computeTimeAtSlot, isStatePostGloas, reconstructSignedBlockContents, signedBeaconBlockToBlinded, signedBlockToSignedHeader, } from "@lodestar/state-transition";
6
6
  import { ProducedBlockSource, isDenebBlockContents, isSignedExecutionPayloadEnvelopeContents, sszTypesFor, } from "@lodestar/types";
7
7
  import { fromHex, prettyGweiToEth, sleep, toHex, toRootHex } from "@lodestar/utils";
8
- import { BlockInputSource, isBlockInputBlobs, isBlockInputColumns } from "../../../../chain/blocks/blockInput/index.js";
8
+ import { BlockInputSource, isBlockInputColumns } from "../../../../chain/blocks/blockInput/index.js";
9
9
  import { PayloadEnvelopeInputSource } from "../../../../chain/blocks/payloadEnvelopeInput/index.js";
10
10
  import { verifyBlocksInEpoch } from "../../../../chain/blocks/verifyBlock.js";
11
11
  import { verifyExecutionPayloadEnvelope } from "../../../../chain/blocks/verifyExecutionPayloadEnvelope.js";
@@ -14,10 +14,10 @@ import { BlockError, BlockErrorCode, BlockGossipError, EnvelopeReconstructionErr
14
14
  import { BlockType, } from "../../../../chain/produceBlock/index.js";
15
15
  import { RegenCaller } from "../../../../chain/regen/index.js";
16
16
  import { validateGossipBlock, verifyBlockProposerSignature } from "../../../../chain/validation/block.js";
17
- import { validateApiExecutionPayloadBid } from "../../../../chain/validation/executionPayloadBid.js";
17
+ import { validateGossipExecutionPayloadBid } from "../../../../chain/validation/executionPayloadBid.js";
18
18
  import { validateApiExecutionPayloadEnvelope } from "../../../../chain/validation/executionPayloadEnvelope.js";
19
19
  import { OpSource } from "../../../../chain/validatorMonitor.js";
20
- import { computePreFuluKzgCommitmentsInclusionProof, getBlobSidecars, kzgCommitmentToVersionedHash, reconstructBlobs, } from "../../../../util/blobs.js";
20
+ import { computePreFuluKzgCommitmentsInclusionProof, kzgCommitmentToVersionedHash, reconstructBlobs, } from "../../../../util/blobs.js";
21
21
  import { getBlobKzgCommitments, getDataColumnSidecarsFromBlock, getGloasDataColumnSidecars, } from "../../../../util/dataColumns.js";
22
22
  import { isOptimisticBlock } from "../../../../util/forkChoice.js";
23
23
  import { kzg } from "../../../../util/kzg.js";
@@ -33,12 +33,15 @@ const MAX_API_CLOCK_DISPARITY_MS = 1000;
33
33
  * PeerID of identity keypair to signal self for score reporting
34
34
  */
35
35
  const IDENTITY_PEER_ID = ""; // TODO: Compute identity keypair
36
- export function getBeaconBlockApi({ chain, config, metrics, network, db, }) {
36
+ export function getBeaconBlockApi(opts, { chain, config, metrics, network, db }) {
37
37
  const publishBlockV2 = async ({ signedBlockContents, broadcastValidation, builderUrl }, context, opts = {}) => {
38
38
  const seenTimestampSec = Date.now() / 1000;
39
39
  const signedBlock = signedBlockContents.signedBlock;
40
40
  const slot = signedBlock.message.slot;
41
41
  const fork = config.getForkName(slot);
42
+ if (!isForkPostFulu(fork)) {
43
+ throw new ApiError(400, `Publishing blocks is not supported for pre-fulu fork=${fork}`);
44
+ }
42
45
  const blockRoot = toRootHex(chain.config.getForkTypes(slot).BeaconBlock.hashTreeRoot(signedBlock.message));
43
46
  const blockForImport = chain.seenBlockInputCache.getByBlock({
44
47
  block: signedBlock,
@@ -57,38 +60,20 @@ export function getBeaconBlockApi({ chain, config, metrics, network, db, }) {
57
60
  source: PayloadEnvelopeInputSource.api,
58
61
  });
59
62
  }
60
- let blobSidecars, dataColumnSidecars;
61
- if (isDenebBlockContents(signedBlockContents)) {
62
- if (isForkPostGloas(fork)) {
63
- // After gloas, data columns are not published with the block but when publishing the execution payload envelope
64
- blobSidecars = [];
65
- dataColumnSidecars = [];
66
- }
67
- else if (isForkPostFulu(fork)) {
68
- const timer = metrics?.peerDas.dataColumnSidecarComputationTime.startTimer();
69
- // If the block was produced by this node, we will already have computed cells
70
- // Otherwise, we will compute them from the blobs in this function
71
- const cells = chain.blockProductionCache.get(blockRoot)?.cells ??
72
- signedBlockContents.blobs.map((blob) => kzg.computeCells(blob));
73
- const cellsAndProofs = cells.map((rowCells, rowIndex) => ({
74
- cells: rowCells,
75
- proofs: signedBlockContents.kzgProofs.slice(rowIndex * NUMBER_OF_COLUMNS, (rowIndex + 1) * NUMBER_OF_COLUMNS),
76
- }));
77
- dataColumnSidecars = getDataColumnSidecarsFromBlock(config, signedBlock, cellsAndProofs);
78
- timer?.();
79
- blobSidecars = [];
80
- }
81
- else if (isForkPostDeneb(fork)) {
82
- blobSidecars = getBlobSidecars(config, signedBlock, signedBlockContents.blobs, signedBlockContents.kzgProofs);
83
- dataColumnSidecars = [];
84
- }
85
- else {
86
- throw Error(`Invalid data fork=${fork} for publish`);
87
- }
88
- }
89
- else {
90
- blobSidecars = [];
91
- dataColumnSidecars = [];
63
+ // After gloas, data columns are not published with the block but when publishing the execution payload envelope.
64
+ let dataColumnSidecars = [];
65
+ if (isDenebBlockContents(signedBlockContents) && isForkPostFulu(fork) && !isForkPostGloas(fork)) {
66
+ const timer = metrics?.peerDas.dataColumnSidecarComputationTime.startTimer();
67
+ // If the block was produced by this node, we will already have computed cells
68
+ // Otherwise, we will compute them from the blobs in this function
69
+ const cells = chain.blockProductionCache.get(blockRoot)?.cells ??
70
+ signedBlockContents.blobs.map((blob) => kzg.computeCells(blob));
71
+ const cellsAndProofs = cells.map((rowCells, rowIndex) => ({
72
+ cells: rowCells,
73
+ proofs: signedBlockContents.kzgProofs.slice(rowIndex * NUMBER_OF_COLUMNS, (rowIndex + 1) * NUMBER_OF_COLUMNS),
74
+ }));
75
+ dataColumnSidecars = getDataColumnSidecarsFromBlock(config, signedBlock, cellsAndProofs);
76
+ timer?.();
92
77
  }
93
78
  if (isBlockInputColumns(blockForImport)) {
94
79
  for (const dataColumnSidecar of dataColumnSidecars) {
@@ -104,18 +89,6 @@ export function getBeaconBlockApi({ chain, config, metrics, network, db, }) {
104
89
  { throwOnDuplicateAdd: false });
105
90
  }
106
91
  }
107
- else if (isBlockInputBlobs(blockForImport)) {
108
- for (const blobSidecar of blobSidecars) {
109
- blockForImport.addBlob({
110
- blockRootHex: blockRoot,
111
- blobSidecar,
112
- source: BlockInputSource.api,
113
- seenTimestampSec,
114
- },
115
- // Same as above for columns
116
- { throwOnDuplicateAdd: false });
117
- }
118
- }
119
92
  // check what validations have been requested before broadcasting and publishing the block
120
93
  // TODO: add validation time to metrics
121
94
  broadcastValidation = broadcastValidation ?? routes.beacon.BroadcastValidation.gossip;
@@ -201,17 +174,8 @@ export function getBeaconBlockApi({ chain, config, metrics, network, db, }) {
201
174
  }
202
175
  break;
203
176
  }
204
- case routes.beacon.BroadcastValidation.none: {
205
- chain.logger.debug("Skipping broadcast validation", valLogMeta);
206
- break;
207
- }
208
177
  default: {
209
- // error or log warning we do not support this validation
210
- const message = `Broadcast validation of ${broadcastValidation} type not implemented yet`;
211
- if (chain.opts.broadcastValidationStrictness === "error") {
212
- throw Error(message);
213
- }
214
- chain.logger.warn(message, valLogMeta);
178
+ throw new ApiError(400, `Invalid broadcast validation level ${broadcastValidation}`);
215
179
  }
216
180
  }
217
181
  // Simple implementation of a pending block queue. Keeping the block here recycles the API logic, and keeps the
@@ -265,12 +229,9 @@ export function getBeaconBlockApi({ chain, config, metrics, network, db, }) {
265
229
  //
266
230
  () => network.publishBeaconBlock(signedBlock),
267
231
  ...dataColumnSidecars.map((dataColumnSidecar) => () => network.publishDataColumnSidecar(dataColumnSidecar)),
268
- ...blobSidecars.map((blobSidecar) => () => network.publishBlobSidecar(blobSidecar)),
269
232
  () =>
270
233
  // there is no rush to persist block since we published it to gossip anyway
271
- chain
272
- .processBlock(blockForImport, opts)
273
- .catch((e) => {
234
+ chain.processBlock(blockForImport, opts).catch((e) => {
274
235
  if (e instanceof BlockError) {
275
236
  switch (e.type.code) {
276
237
  case BlockErrorCode.ALREADY_KNOWN:
@@ -333,20 +294,6 @@ export function getBeaconBlockApi({ chain, config, metrics, network, db, }) {
333
294
  }
334
295
  }
335
296
  }
336
- else if (isBlockInputBlobs(blockForImport) && chain.emitter.listenerCount(routes.events.EventType.blobSidecar)) {
337
- const blobSidecars = blockForImport.getBlobs();
338
- const versionedHashes = blockForImport.getVersionedHashes();
339
- for (const blobSidecar of blobSidecars) {
340
- const { index, kzgCommitment } = blobSidecar;
341
- chain.emitter.emit(routes.events.EventType.blobSidecar, {
342
- blockRoot,
343
- slot,
344
- index,
345
- kzgCommitment: toHex(kzgCommitment),
346
- versionedHash: toHex(versionedHashes[index]),
347
- });
348
- }
349
- }
350
297
  };
351
298
  const publishBlindedBlockV2 = async ({ signedBlindedBlock, broadcastValidation }, context, opts = {}) => {
352
299
  const slot = signedBlindedBlock.message.slot;
@@ -613,10 +560,6 @@ export function getBeaconBlockApi({ chain, config, metrics, network, db, }) {
613
560
  };
614
561
  try {
615
562
  switch (broadcastValidation) {
616
- case routes.beacon.BroadcastValidation.none: {
617
- chain.logger.debug("Skipping broadcast validation of execution payload envelope", valLogMeta);
618
- break;
619
- }
620
563
  case routes.beacon.BroadcastValidation.gossip: {
621
564
  await validateApiExecutionPayloadEnvelope(chain, signedExecutionPayloadEnvelope);
622
565
  break;
@@ -646,11 +589,7 @@ export function getBeaconBlockApi({ chain, config, metrics, network, db, }) {
646
589
  break;
647
590
  }
648
591
  default: {
649
- const message = `Broadcast validation of ${broadcastValidation} type not implemented yet`;
650
- if (chain.opts.broadcastValidationStrictness === "error") {
651
- throw Error(message);
652
- }
653
- chain.logger.warn(message, valLogMeta);
592
+ throw new ApiError(400, `Invalid broadcast validation level ${broadcastValidation}`);
654
593
  }
655
594
  }
656
595
  }
@@ -778,9 +717,12 @@ export function getBeaconBlockApi({ chain, config, metrics, network, db, }) {
778
717
  () => network.publishSignedExecutionPayloadEnvelope(signedExecutionPayloadEnvelope),
779
718
  // Publish all data column sidecars
780
719
  ...dataColumnSidecars.map((dataColumnSidecar) => () => network.publishDataColumnSidecar(dataColumnSidecar)),
781
- // Import execution payload. Signature is verified during broadcast validation, an already
782
- // known envelope was verified by its original source and `none` deliberately skips validation
783
- () => chain.processExecutionPayload(payloadInput, { validSignature: true }),
720
+ // Import execution payload
721
+ () => chain.processExecutionPayload(payloadInput, {
722
+ // Signature is verified during broadcast validation only for the submitted envelope,
723
+ // an envelope cached by another source is verified at import
724
+ validSignature: payloadInput.getPayloadEnvelope() === signedExecutionPayloadEnvelope,
725
+ }),
784
726
  ];
785
727
  const publishPromise = promiseAllMaybeAsync(publishPromises);
786
728
  chain.emitter.emit(routes.events.EventType.executionPayloadGossip, {
@@ -835,13 +777,18 @@ export function getBeaconBlockApi({ chain, config, metrics, network, db, }) {
835
777
  if (!isForkPostGloas(fork)) {
836
778
  throw new ApiError(400, `publishExecutionPayloadBid not supported for pre-gloas fork=${fork}`);
837
779
  }
838
- const validationTimer = metrics?.opPool.executionPayloadBidPool.apiValidationTime.startTimer();
839
- // TODO: once the builder is tested and can be trusted, skip this local validation
840
- // to publish faster, accepting peer-score risk if it ever emits an invalid bid.
841
- await validateApiExecutionPayloadBid(chain, signedExecutionPayloadBid);
842
- validationTimer?.();
843
780
  const elapsedSec = chain.clock.secFromSlot(slot, seenTimestampSec);
844
781
  metrics?.gossipExecutionPayloadBid.elapsedTimeTillReceived.observe({ source: OpSource.api }, elapsedSec);
782
+ if (!opts.disableBidValidation) {
783
+ const validationTimer = metrics?.opPool.executionPayloadBidPool.apiValidationTime.startTimer();
784
+ const { proposerIndex } = await validateGossipExecutionPayloadBid(chain, signedExecutionPayloadBid);
785
+ validationTimer?.();
786
+ // Gossip does not deliver our own messages back to us, so a validated bid is added to the
787
+ // pool here to allow a proposer on this node to select it
788
+ const insertOutcome = chain.executionPayloadBidPool.add(signedExecutionPayloadBid, Math.floor(elapsedSec * 1000));
789
+ metrics?.opPool.executionPayloadBidPool.apiInsertOutcome.inc({ insertOutcome });
790
+ chain.validatorMonitor?.registerExecutionPayloadBid(OpSource.api, proposerIndex, bid);
791
+ }
845
792
  const sentPeers = await network.publishSignedExecutionPayloadBid(signedExecutionPayloadBid);
846
793
  chain.emitter.emit(routes.events.EventType.executionPayloadBid, {
847
794
  version: fork,
@@ -857,7 +804,7 @@ export function getBeaconBlockApi({ chain, config, metrics, network, db, }) {
857
804
  });
858
805
  },
859
806
  async getSignedExecutionPayloadEnvelope({ blockId }, context) {
860
- const { block, executionOptimistic, finalized } = await getBlockResponse(chain, blockId);
807
+ const { block, finalized } = await getBlockResponse(chain, blockId);
861
808
  const slot = block.message.slot;
862
809
  const fork = config.getForkName(slot);
863
810
  if (!isForkPostGloas(fork)) {
@@ -865,6 +812,12 @@ export function getBeaconBlockApi({ chain, config, metrics, network, db, }) {
865
812
  }
866
813
  const blockRoot = config.getForkTypes(slot).BeaconBlock.hashTreeRoot(block.message);
867
814
  const blockRootHex = toRootHex(blockRoot);
815
+ // The block's own flag is the status of the payload it builds on, the envelope's is that of its
816
+ // FULL variant. An unfinalized block without one has not imported its envelope yet.
817
+ const payload = finalized ? null : chain.forkChoice.getBlockHex(blockRootHex, PayloadStatus.FULL);
818
+ if (!finalized && payload === null) {
819
+ throw new ApiError(404, `Execution payload envelope not found for slot=${slot}, blockRoot=${blockRootHex}`);
820
+ }
868
821
  let data;
869
822
  try {
870
823
  data = context?.returnBytes
@@ -887,7 +840,7 @@ export function getBeaconBlockApi({ chain, config, metrics, network, db, }) {
887
840
  }
888
841
  return {
889
842
  data,
890
- meta: { executionOptimistic, finalized, version: fork },
843
+ meta: { executionOptimistic: payload !== null && isOptimisticBlock(payload), finalized, version: fork },
891
844
  };
892
845
  },
893
846
  async getBlobSidecars({ blockId, indices }) {
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../../src/api/impl/beacon/blocks/index.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../../src/api/impl/beacon/blocks/index.ts"],"names":[],"mappings":"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"}
@@ -1,5 +1,6 @@
1
1
  import { routes } from "@lodestar/api";
2
2
  import { ApplicationMethods } from "@lodestar/api/server";
3
+ import { ApiOptions } from "../../options.js";
3
4
  import { ApiModules } from "../types.js";
4
- export declare function getBeaconApi(modules: Pick<ApiModules, "chain" | "config" | "logger" | "metrics" | "network" | "db" | "sync">): ApplicationMethods<routes.beacon.Endpoints>;
5
+ export declare function getBeaconApi(opts: ApiOptions, modules: Pick<ApiModules, "chain" | "config" | "logger" | "metrics" | "network" | "db" | "sync">): ApplicationMethods<routes.beacon.Endpoints>;
5
6
  //# sourceMappingURL=index.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../src/api/impl/beacon/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAC,MAAM,EAAC,MAAM,eAAe,CAAC;AACrC,OAAO,EAAC,kBAAkB,EAAC,MAAM,sBAAsB,CAAC;AAKxD,OAAO,EAAC,UAAU,EAAC,MAAM,aAAa,CAAC;AAMvC,wBAAgB,YAAY,CAC1B,OAAO,EAAE,IAAI,CAAC,UAAU,EAAE,OAAO,GAAG,QAAQ,GAAG,QAAQ,GAAG,SAAS,GAAG,SAAS,GAAG,IAAI,GAAG,MAAM,CAAC,GAC/F,kBAAkB,CAAC,MAAM,CAAC,MAAM,CAAC,SAAS,CAAC,CAmC7C"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../src/api/impl/beacon/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAC,MAAM,EAAC,MAAM,eAAe,CAAC;AACrC,OAAO,EAAC,kBAAkB,EAAC,MAAM,sBAAsB,CAAC;AAIxD,OAAO,EAAC,UAAU,EAAC,MAAM,kBAAkB,CAAC;AAE5C,OAAO,EAAC,UAAU,EAAC,MAAM,aAAa,CAAC;AAMvC,wBAAgB,YAAY,CAC1B,IAAI,EAAE,UAAU,EAChB,OAAO,EAAE,IAAI,CAAC,UAAU,EAAE,OAAO,GAAG,QAAQ,GAAG,QAAQ,GAAG,SAAS,GAAG,SAAS,GAAG,IAAI,GAAG,MAAM,CAAC,GAC/F,kBAAkB,CAAC,MAAM,CAAC,MAAM,CAAC,SAAS,CAAC,CAmC7C"}
@@ -6,8 +6,8 @@ import { getBeaconBlockApi } from "./blocks/index.js";
6
6
  import { getBeaconPoolApi } from "./pool/index.js";
7
7
  import { getBeaconRewardsApi } from "./rewards/index.js";
8
8
  import { getBeaconStateApi } from "./state/index.js";
9
- export function getBeaconApi(modules) {
10
- const block = getBeaconBlockApi(modules);
9
+ export function getBeaconApi(opts, modules) {
10
+ const block = getBeaconBlockApi(opts, modules);
11
11
  const pool = getBeaconPoolApi(modules);
12
12
  const state = getBeaconStateApi(modules);
13
13
  const rewards = getBeaconRewardsApi(modules);
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../src/api/impl/beacon/index.ts"],"names":[],"mappings":"AAEA,OAAO,EAAC,eAAe,EAAC,MAAM,kBAAkB,CAAC;AACjD,OAAO,EAAC,uBAAuB,EAAC,MAAM,4BAA4B,CAAC;AACnE,OAAO,EAAC,SAAS,EAAC,MAAM,iBAAiB,CAAC;AAC1C,OAAO,EAAC,QAAQ,EAAC,MAAM,cAAc,CAAC;AAEtC,OAAO,EAAC,iBAAiB,EAAC,MAAM,mBAAmB,CAAC;AACpD,OAAO,EAAC,gBAAgB,EAAC,MAAM,iBAAiB,CAAC;AACjD,OAAO,EAAC,mBAAmB,EAAC,MAAM,oBAAoB,CAAC;AACvD,OAAO,EAAC,iBAAiB,EAAC,MAAM,kBAAkB,CAAC;AAEnD,MAAM,UAAU,YAAY,CAC1B,OAAgG;IAEhG,MAAM,KAAK,GAAG,iBAAiB,CAAC,OAAO,CAAC,CAAC;IACzC,MAAM,IAAI,GAAG,gBAAgB,CAAC,OAAO,CAAC,CAAC;IACvC,MAAM,KAAK,GAAG,iBAAiB,CAAC,OAAO,CAAC,CAAC;IACzC,MAAM,OAAO,GAAG,mBAAmB,CAAC,OAAO,CAAC,CAAC;IAE7C,MAAM,EAAC,KAAK,EAAE,MAAM,EAAC,GAAG,OAAO,CAAC;IAEhC,OAAO;QACL,GAAG,KAAK;QACR,GAAG,IAAI;QACP,GAAG,KAAK;QACR,GAAG,OAAO;QAEV,KAAK,CAAC,UAAU;YACd,OAAO;gBACL,IAAI,EAAE;oBACJ,kBAAkB,EAAE,MAAM,CAAC,oBAAoB;oBAC/C,WAAW,EAAE,KAAK,CAAC,WAAW;oBAC9B,qBAAqB,EAAE,KAAK,CAAC,qBAAqB;iBACnD;aACF,CAAC;QACJ,CAAC;QAED,KAAK,CAAC,sBAAsB,CAAC,EAAC,IAAI,EAAE,aAAa,EAAC;YAChD,gHAAgH;YAChH,MAAM,IAAI,GAAG,MAAM,CAAC,WAAW,CAAC,IAAI,IAAI,uBAAuB,CAAC,KAAK,CAAC,KAAK,CAAC,YAAY,GAAG,CAAC,CAAC,CAAC,CAAC;YAC/F,IAAI,CAAC,eAAe,CAAC,IAAI,CAAC,EAAE,CAAC;gBAC3B,MAAM,IAAI,QAAQ,CAAC,GAAG,EAAE,4DAA4D,IAAI,EAAE,CAAC,CAAC;YAC9F,CAAC;YAED,MAAM,WAAW,GAAG,KAAK,CAAC,uBAAuB,CAAC,MAAM,CAAC,IAAI,EAAE,aAAa,IAAI,SAAS,CAAC,aAAa,CAAC,CAAC,CAAC;YAC1G,OAAO,EAAC,IAAI,EAAE,WAAW,EAAE,IAAI,EAAE,EAAC,OAAO,EAAE,IAAI,EAAC,EAAC,CAAC;QACpD,CAAC;KACF,CAAC;AACJ,CAAC"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../src/api/impl/beacon/index.ts"],"names":[],"mappings":"AAEA,OAAO,EAAC,eAAe,EAAC,MAAM,kBAAkB,CAAC;AACjD,OAAO,EAAC,uBAAuB,EAAC,MAAM,4BAA4B,CAAC;AACnE,OAAO,EAAC,SAAS,EAAC,MAAM,iBAAiB,CAAC;AAE1C,OAAO,EAAC,QAAQ,EAAC,MAAM,cAAc,CAAC;AAEtC,OAAO,EAAC,iBAAiB,EAAC,MAAM,mBAAmB,CAAC;AACpD,OAAO,EAAC,gBAAgB,EAAC,MAAM,iBAAiB,CAAC;AACjD,OAAO,EAAC,mBAAmB,EAAC,MAAM,oBAAoB,CAAC;AACvD,OAAO,EAAC,iBAAiB,EAAC,MAAM,kBAAkB,CAAC;AAEnD,MAAM,UAAU,YAAY,CAC1B,IAAgB,EAChB,OAAgG;IAEhG,MAAM,KAAK,GAAG,iBAAiB,CAAC,IAAI,EAAE,OAAO,CAAC,CAAC;IAC/C,MAAM,IAAI,GAAG,gBAAgB,CAAC,OAAO,CAAC,CAAC;IACvC,MAAM,KAAK,GAAG,iBAAiB,CAAC,OAAO,CAAC,CAAC;IACzC,MAAM,OAAO,GAAG,mBAAmB,CAAC,OAAO,CAAC,CAAC;IAE7C,MAAM,EAAC,KAAK,EAAE,MAAM,EAAC,GAAG,OAAO,CAAC;IAEhC,OAAO;QACL,GAAG,KAAK;QACR,GAAG,IAAI;QACP,GAAG,KAAK;QACR,GAAG,OAAO;QAEV,KAAK,CAAC,UAAU;YACd,OAAO;gBACL,IAAI,EAAE;oBACJ,kBAAkB,EAAE,MAAM,CAAC,oBAAoB;oBAC/C,WAAW,EAAE,KAAK,CAAC,WAAW;oBAC9B,qBAAqB,EAAE,KAAK,CAAC,qBAAqB;iBACnD;aACF,CAAC;QACJ,CAAC;QAED,KAAK,CAAC,sBAAsB,CAAC,EAAC,IAAI,EAAE,aAAa,EAAC;YAChD,gHAAgH;YAChH,MAAM,IAAI,GAAG,MAAM,CAAC,WAAW,CAAC,IAAI,IAAI,uBAAuB,CAAC,KAAK,CAAC,KAAK,CAAC,YAAY,GAAG,CAAC,CAAC,CAAC,CAAC;YAC/F,IAAI,CAAC,eAAe,CAAC,IAAI,CAAC,EAAE,CAAC;gBAC3B,MAAM,IAAI,QAAQ,CAAC,GAAG,EAAE,4DAA4D,IAAI,EAAE,CAAC,CAAC;YAC9F,CAAC;YAED,MAAM,WAAW,GAAG,KAAK,CAAC,uBAAuB,CAAC,MAAM,CAAC,IAAI,EAAE,aAAa,IAAI,SAAS,CAAC,aAAa,CAAC,CAAC,CAAC;YAC1G,OAAO,EAAC,IAAI,EAAE,WAAW,EAAE,IAAI,EAAE,EAAC,OAAO,EAAE,IAAI,EAAC,EAAC,CAAC;QACpD,CAAC;KACF,CAAC;AACJ,CAAC"}
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../../src/api/impl/beacon/pool/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAC,MAAM,EAAC,MAAM,eAAe,CAAC;AACrC,OAAO,EAAC,kBAAkB,EAAC,MAAM,sBAAsB,CAAC;AA6BxD,OAAO,EAAC,UAAU,EAAC,MAAM,gBAAgB,CAAC;AAE1C,wBAAgB,gBAAgB,CAAC,EAC/B,KAAK,EACL,MAAM,EACN,OAAO,EACP,OAAO,GACR,EAAE,IAAI,CAAC,UAAU,EAAE,OAAO,GAAG,QAAQ,GAAG,SAAS,GAAG,SAAS,CAAC,GAAG,kBAAkB,CAAC,MAAM,CAAC,MAAM,CAAC,IAAI,CAAC,SAAS,CAAC,CAsWjH"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../../src/api/impl/beacon/pool/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAC,MAAM,EAAC,MAAM,eAAe,CAAC;AACrC,OAAO,EAAC,kBAAkB,EAAC,MAAM,sBAAsB,CAAC;AA8BxD,OAAO,EAAC,UAAU,EAAC,MAAM,gBAAgB,CAAC;AAE1C,wBAAgB,gBAAgB,CAAC,EAC/B,KAAK,EACL,MAAM,EACN,OAAO,EACP,OAAO,GACR,EAAE,IAAI,CAAC,UAAU,EAAE,OAAO,GAAG,QAAQ,GAAG,SAAS,GAAG,SAAS,CAAC,GAAG,kBAAkB,CAAC,MAAM,CAAC,MAAM,CAAC,IAAI,CAAC,SAAS,CAAC,CAmYjH"}
@@ -3,7 +3,7 @@ import { SYNC_COMMITTEE_SUBNET_SIZE, isForkPostElectra, isForkPostGloas, } from
3
3
  import { isStatePostAltair } from "@lodestar/state-transition";
4
4
  import { isElectraAttestation, ssz, sszTypesFor } from "@lodestar/types";
5
5
  import { toRootHex } from "@lodestar/utils";
6
- import { AttestationError, AttestationErrorCode, GossipAction, PayloadAttestationError, PayloadAttestationErrorCode, SyncCommitteeError, } from "../../../../chain/errors/index.js";
6
+ import { AttestationError, AttestationErrorCode, GossipAction, PayloadAttestationError, PayloadAttestationErrorCode, SyncCommitteeError, SyncCommitteeErrorCode, } from "../../../../chain/errors/index.js";
7
7
  import { validateApiAttesterSlashing } from "../../../../chain/validation/attesterSlashing.js";
8
8
  import { validateApiBlsToExecutionChange } from "../../../../chain/validation/blsToExecutionChange.js";
9
9
  import { toElectraSingleAttestation, validateApiAttestation } from "../../../../chain/validation/index.js";
@@ -76,6 +76,23 @@ export function getBeaconPoolApi({ chain, logger, metrics, network, }) {
76
76
  // validated attestation, which the route requires us to do. Same handling as the gossip path
77
77
  logger.debug("Error adding unaggregated attestation to pool", { subnet }, e);
78
78
  }
79
+ // Collected only for vote slots that an upcoming block of a connected validator can include
80
+ if (isForkPostElectra(fork) && chain.proposerTracker.shouldCollect(slot)) {
81
+ try {
82
+ const insertOutcome = chain.singleAttestationPool.add(attestation, attDataRootHex, validatorCommitteeIndex, committeeSize);
83
+ metrics?.opPool.singleAttestationPool.apiInsertOutcome.inc({ insertOutcome });
84
+ }
85
+ catch (e) {
86
+ logger.debug("Error adding single attestation to pool", {
87
+ slot,
88
+ committeeIndex,
89
+ validatorCommitteeIndex,
90
+ validatorIndex: attestation.attesterIndex,
91
+ subnet,
92
+ attDataRoot: attDataRootHex,
93
+ }, e);
94
+ }
95
+ }
79
96
  if (isForkPostElectra(fork)) {
80
97
  chain.emitter.emit(routes.events.EventType.singleAttestation, attestation);
81
98
  }
@@ -224,7 +241,10 @@ export function getBeaconPoolApi({ chain, logger, metrics, network, }) {
224
241
  const synCommittee = state.getIndexedSyncCommittee(signature.slot);
225
242
  const indexesInCommittee = synCommittee.validatorIndexMap.get(signature.validatorIndex);
226
243
  if (indexesInCommittee === undefined || indexesInCommittee.length === 0) {
227
- return; // Not a sync committee member
244
+ throw new SyncCommitteeError(GossipAction.REJECT, {
245
+ code: SyncCommitteeErrorCode.VALIDATOR_NOT_IN_SYNC_COMMITTEE,
246
+ validatorIndex: signature.validatorIndex,
247
+ });
228
248
  }
229
249
  // Verify signature only, all other data is very likely to be correct, since the `signature` object is created by this node.
230
250
  // Worst case if `signature` is not valid, gossip peers will drop it and slightly downscore us.