@lodestar/beacon-node 1.51.0-dev.c99cf49add → 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 (645) 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/index.d.ts.map +1 -1
  15. package/lib/api/impl/beacon/state/index.js +8 -2
  16. package/lib/api/impl/beacon/state/index.js.map +1 -1
  17. package/lib/api/impl/beacon/state/utils.d.ts +3 -2
  18. package/lib/api/impl/beacon/state/utils.d.ts.map +1 -1
  19. package/lib/api/impl/beacon/state/utils.js +17 -9
  20. package/lib/api/impl/beacon/state/utils.js.map +1 -1
  21. package/lib/api/impl/debug/index.d.ts.map +1 -1
  22. package/lib/api/impl/debug/index.js +3 -0
  23. package/lib/api/impl/debug/index.js.map +1 -1
  24. package/lib/api/impl/validator/index.d.ts +6 -0
  25. package/lib/api/impl/validator/index.d.ts.map +1 -1
  26. package/lib/api/impl/validator/index.js +143 -35
  27. package/lib/api/impl/validator/index.js.map +1 -1
  28. package/lib/api/options.d.ts +2 -0
  29. package/lib/api/options.d.ts.map +1 -1
  30. package/lib/api/options.js +1 -0
  31. package/lib/api/options.js.map +1 -1
  32. package/lib/chain/ColumnReconstructionTracker.d.ts +11 -11
  33. package/lib/chain/ColumnReconstructionTracker.d.ts.map +1 -1
  34. package/lib/chain/ColumnReconstructionTracker.js +46 -40
  35. package/lib/chain/ColumnReconstructionTracker.js.map +1 -1
  36. package/lib/chain/GetBlobsTracker.d.ts +13 -2
  37. package/lib/chain/GetBlobsTracker.d.ts.map +1 -1
  38. package/lib/chain/GetBlobsTracker.js +69 -35
  39. package/lib/chain/GetBlobsTracker.js.map +1 -1
  40. package/lib/chain/archiveStore/archiveStore.d.ts.map +1 -1
  41. package/lib/chain/archiveStore/archiveStore.js +1 -0
  42. package/lib/chain/archiveStore/archiveStore.js.map +1 -1
  43. package/lib/chain/archiveStore/utils/archiveBlocks.d.ts +4 -0
  44. package/lib/chain/archiveStore/utils/archiveBlocks.d.ts.map +1 -1
  45. package/lib/chain/archiveStore/utils/archiveBlocks.js +61 -97
  46. package/lib/chain/archiveStore/utils/archiveBlocks.js.map +1 -1
  47. package/lib/chain/blocks/blockInput/blockInput.d.ts +11 -56
  48. package/lib/chain/blocks/blockInput/blockInput.d.ts.map +1 -1
  49. package/lib/chain/blocks/blockInput/blockInput.js +5 -241
  50. package/lib/chain/blocks/blockInput/blockInput.js.map +1 -1
  51. package/lib/chain/blocks/blockInput/errors.d.ts +2 -4
  52. package/lib/chain/blocks/blockInput/errors.d.ts.map +1 -1
  53. package/lib/chain/blocks/blockInput/errors.js.map +1 -1
  54. package/lib/chain/blocks/blockInput/types.d.ts +2 -18
  55. package/lib/chain/blocks/blockInput/types.d.ts.map +1 -1
  56. package/lib/chain/blocks/blockInput/types.js +0 -1
  57. package/lib/chain/blocks/blockInput/types.js.map +1 -1
  58. package/lib/chain/blocks/importBlock.d.ts.map +1 -1
  59. package/lib/chain/blocks/importBlock.js +42 -57
  60. package/lib/chain/blocks/importBlock.js.map +1 -1
  61. package/lib/chain/blocks/importExecutionPayload.d.ts +10 -11
  62. package/lib/chain/blocks/importExecutionPayload.d.ts.map +1 -1
  63. package/lib/chain/blocks/importExecutionPayload.js +82 -20
  64. package/lib/chain/blocks/importExecutionPayload.js.map +1 -1
  65. package/lib/chain/blocks/index.d.ts.map +1 -1
  66. package/lib/chain/blocks/index.js +4 -4
  67. package/lib/chain/blocks/index.js.map +1 -1
  68. package/lib/chain/blocks/payloadEnvelopeProcessor.d.ts +12 -9
  69. package/lib/chain/blocks/payloadEnvelopeProcessor.d.ts.map +1 -1
  70. package/lib/chain/blocks/payloadEnvelopeProcessor.js +24 -19
  71. package/lib/chain/blocks/payloadEnvelopeProcessor.js.map +1 -1
  72. package/lib/chain/blocks/types.d.ts +7 -19
  73. package/lib/chain/blocks/types.d.ts.map +1 -1
  74. package/lib/chain/blocks/types.js +5 -24
  75. package/lib/chain/blocks/types.js.map +1 -1
  76. package/lib/chain/blocks/verifyBlock.d.ts.map +1 -1
  77. package/lib/chain/blocks/verifyBlock.js +18 -7
  78. package/lib/chain/blocks/verifyBlock.js.map +1 -1
  79. package/lib/chain/blocks/verifyBlocksDataAvailability.d.ts.map +1 -1
  80. package/lib/chain/blocks/verifyBlocksDataAvailability.js +14 -2
  81. package/lib/chain/blocks/verifyBlocksDataAvailability.js.map +1 -1
  82. package/lib/chain/blocks/verifyBlocksExecutionPayloads.d.ts +1 -1
  83. package/lib/chain/blocks/verifyBlocksExecutionPayloads.d.ts.map +1 -1
  84. package/lib/chain/blocks/verifyBlocksExecutionPayloads.js +7 -3
  85. package/lib/chain/blocks/verifyBlocksExecutionPayloads.js.map +1 -1
  86. package/lib/chain/blocks/verifyBlocksSanityChecks.d.ts.map +1 -1
  87. package/lib/chain/blocks/verifyBlocksSanityChecks.js +4 -0
  88. package/lib/chain/blocks/verifyBlocksSanityChecks.js.map +1 -1
  89. package/lib/chain/blocks/verifyBlocksSignatures.d.ts.map +1 -1
  90. package/lib/chain/blocks/verifyBlocksSignatures.js +10 -5
  91. package/lib/chain/blocks/verifyBlocksSignatures.js.map +1 -1
  92. package/lib/chain/blocks/verifyPayloadsDataAvailability.d.ts +3 -3
  93. package/lib/chain/blocks/verifyPayloadsDataAvailability.d.ts.map +1 -1
  94. package/lib/chain/blocks/verifyPayloadsDataAvailability.js +11 -6
  95. package/lib/chain/blocks/verifyPayloadsDataAvailability.js.map +1 -1
  96. package/lib/chain/blocks/writeBlockInputToDb.d.ts +0 -2
  97. package/lib/chain/blocks/writeBlockInputToDb.d.ts.map +1 -1
  98. package/lib/chain/blocks/writeBlockInputToDb.js +6 -24
  99. package/lib/chain/blocks/writeBlockInputToDb.js.map +1 -1
  100. package/lib/chain/bls/interface.d.ts +2 -0
  101. package/lib/chain/bls/interface.d.ts.map +1 -1
  102. package/lib/chain/bls/multithread/index.d.ts +1 -1
  103. package/lib/chain/bls/multithread/index.d.ts.map +1 -1
  104. package/lib/chain/bls/multithread/index.js +50 -22
  105. package/lib/chain/bls/multithread/index.js.map +1 -1
  106. package/lib/chain/bls/multithread/types.d.ts +1 -1
  107. package/lib/chain/bls/multithread/types.d.ts.map +1 -1
  108. package/lib/chain/bls/multithread/worker.js +1 -1
  109. package/lib/chain/bls/multithread/worker.js.map +1 -1
  110. package/lib/chain/bls/singleThread.js +1 -1
  111. package/lib/chain/bls/singleThread.js.map +1 -1
  112. package/lib/chain/bls/utils.js +1 -1
  113. package/lib/chain/bls/utils.js.map +1 -1
  114. package/lib/chain/chain.d.ts +26 -4
  115. package/lib/chain/chain.d.ts.map +1 -1
  116. package/lib/chain/chain.js +128 -43
  117. package/lib/chain/chain.js.map +1 -1
  118. package/lib/chain/emitter.d.ts +7 -7
  119. package/lib/chain/emitter.d.ts.map +1 -1
  120. package/lib/chain/emitter.js +5 -5
  121. package/lib/chain/emitter.js.map +1 -1
  122. package/lib/chain/errors/blockError.d.ts +1 -1
  123. package/lib/chain/errors/blockError.d.ts.map +1 -1
  124. package/lib/chain/errors/blockError.js +1 -1
  125. package/lib/chain/errors/blockError.js.map +1 -1
  126. package/lib/chain/errors/executionPayloadBid.d.ts +11 -1
  127. package/lib/chain/errors/executionPayloadBid.d.ts.map +1 -1
  128. package/lib/chain/errors/executionPayloadBid.js +2 -0
  129. package/lib/chain/errors/executionPayloadBid.js.map +1 -1
  130. package/lib/chain/errors/executionPayloadEnvelope.d.ts +7 -0
  131. package/lib/chain/errors/executionPayloadEnvelope.d.ts.map +1 -1
  132. package/lib/chain/errors/executionPayloadEnvelope.js +1 -0
  133. package/lib/chain/errors/executionPayloadEnvelope.js.map +1 -1
  134. package/lib/chain/errors/inclusionList.d.ts +60 -0
  135. package/lib/chain/errors/inclusionList.d.ts.map +1 -0
  136. package/lib/chain/errors/inclusionList.js +19 -0
  137. package/lib/chain/errors/inclusionList.js.map +1 -0
  138. package/lib/chain/errors/index.d.ts +1 -1
  139. package/lib/chain/errors/index.d.ts.map +1 -1
  140. package/lib/chain/errors/index.js +1 -1
  141. package/lib/chain/errors/index.js.map +1 -1
  142. package/lib/chain/forkChoice/index.d.ts +11 -1
  143. package/lib/chain/forkChoice/index.d.ts.map +1 -1
  144. package/lib/chain/forkChoice/index.js +11 -0
  145. package/lib/chain/forkChoice/index.js.map +1 -1
  146. package/lib/chain/forkChoiceExecutionEngine.d.ts +51 -0
  147. package/lib/chain/forkChoiceExecutionEngine.d.ts.map +1 -0
  148. package/lib/chain/forkChoiceExecutionEngine.js +117 -0
  149. package/lib/chain/forkChoiceExecutionEngine.js.map +1 -0
  150. package/lib/chain/interface.d.ts +10 -7
  151. package/lib/chain/interface.d.ts.map +1 -1
  152. package/lib/chain/interface.js.map +1 -1
  153. package/lib/chain/opPools/aggregatedAttestationPool.d.ts +17 -4
  154. package/lib/chain/opPools/aggregatedAttestationPool.d.ts.map +1 -1
  155. package/lib/chain/opPools/aggregatedAttestationPool.js +199 -46
  156. package/lib/chain/opPools/aggregatedAttestationPool.js.map +1 -1
  157. package/lib/chain/opPools/attestationPool.d.ts +1 -1
  158. package/lib/chain/opPools/attestationPool.d.ts.map +1 -1
  159. package/lib/chain/opPools/attestationPool.js +15 -4
  160. package/lib/chain/opPools/attestationPool.js.map +1 -1
  161. package/lib/chain/opPools/inclusionListStore.d.ts +63 -0
  162. package/lib/chain/opPools/inclusionListStore.d.ts.map +1 -0
  163. package/lib/chain/opPools/inclusionListStore.js +171 -0
  164. package/lib/chain/opPools/inclusionListStore.js.map +1 -0
  165. package/lib/chain/opPools/index.d.ts +2 -0
  166. package/lib/chain/opPools/index.d.ts.map +1 -1
  167. package/lib/chain/opPools/index.js +2 -0
  168. package/lib/chain/opPools/index.js.map +1 -1
  169. package/lib/chain/opPools/payloadAttestationPool.d.ts.map +1 -1
  170. package/lib/chain/opPools/payloadAttestationPool.js +17 -7
  171. package/lib/chain/opPools/payloadAttestationPool.js.map +1 -1
  172. package/lib/chain/opPools/singleAttestationPool.d.ts +77 -0
  173. package/lib/chain/opPools/singleAttestationPool.d.ts.map +1 -0
  174. package/lib/chain/opPools/singleAttestationPool.js +209 -0
  175. package/lib/chain/opPools/singleAttestationPool.js.map +1 -0
  176. package/lib/chain/opPools/syncCommitteeMessagePool.d.ts.map +1 -1
  177. package/lib/chain/opPools/syncCommitteeMessagePool.js +9 -3
  178. package/lib/chain/opPools/syncCommitteeMessagePool.js.map +1 -1
  179. package/lib/chain/opPools/syncContributionAndProofPool.d.ts.map +1 -1
  180. package/lib/chain/opPools/syncContributionAndProofPool.js +11 -3
  181. package/lib/chain/opPools/syncContributionAndProofPool.js.map +1 -1
  182. package/lib/chain/opPools/utils.d.ts +1 -1
  183. package/lib/chain/opPools/utils.d.ts.map +1 -1
  184. package/lib/chain/opPools/utils.js +1 -1
  185. package/lib/chain/opPools/utils.js.map +1 -1
  186. package/lib/chain/options.d.ts +5 -3
  187. package/lib/chain/options.d.ts.map +1 -1
  188. package/lib/chain/options.js +0 -1
  189. package/lib/chain/options.js.map +1 -1
  190. package/lib/chain/produceBlock/produceBlockBody.d.ts +6 -3
  191. package/lib/chain/produceBlock/produceBlockBody.d.ts.map +1 -1
  192. package/lib/chain/produceBlock/produceBlockBody.js +32 -11
  193. package/lib/chain/produceBlock/produceBlockBody.js.map +1 -1
  194. package/lib/chain/proposerTracker.d.ts +31 -0
  195. package/lib/chain/proposerTracker.d.ts.map +1 -0
  196. package/lib/chain/proposerTracker.js +75 -0
  197. package/lib/chain/proposerTracker.js.map +1 -0
  198. package/lib/chain/regen/interface.d.ts +2 -2
  199. package/lib/chain/regen/interface.d.ts.map +1 -1
  200. package/lib/chain/regen/interface.js +1 -1
  201. package/lib/chain/regen/interface.js.map +1 -1
  202. package/lib/chain/regen/queued.d.ts +1 -1
  203. package/lib/chain/regen/queued.d.ts.map +1 -1
  204. package/lib/chain/regen/queued.js +5 -3
  205. package/lib/chain/regen/queued.js.map +1 -1
  206. package/lib/chain/seenCache/seenGossipBlockInput.d.ts +7 -14
  207. package/lib/chain/seenCache/seenGossipBlockInput.d.ts.map +1 -1
  208. package/lib/chain/seenCache/seenGossipBlockInput.js +6 -65
  209. package/lib/chain/seenCache/seenGossipBlockInput.js.map +1 -1
  210. package/lib/chain/validation/executionPayloadBid.d.ts +0 -15
  211. package/lib/chain/validation/executionPayloadBid.d.ts.map +1 -1
  212. package/lib/chain/validation/executionPayloadBid.js +37 -158
  213. package/lib/chain/validation/executionPayloadBid.js.map +1 -1
  214. package/lib/chain/validation/executionPayloadEnvelope.d.ts +6 -0
  215. package/lib/chain/validation/executionPayloadEnvelope.d.ts.map +1 -1
  216. package/lib/chain/validation/executionPayloadEnvelope.js +53 -0
  217. package/lib/chain/validation/executionPayloadEnvelope.js.map +1 -1
  218. package/lib/chain/validation/inclusionList.d.ts +14 -0
  219. package/lib/chain/validation/inclusionList.d.ts.map +1 -0
  220. package/lib/chain/validation/inclusionList.js +150 -0
  221. package/lib/chain/validation/inclusionList.js.map +1 -0
  222. package/lib/chain/validation/index.d.ts +1 -0
  223. package/lib/chain/validation/index.d.ts.map +1 -1
  224. package/lib/chain/validation/index.js +1 -0
  225. package/lib/chain/validation/index.js.map +1 -1
  226. package/lib/chain/validation/syncCommittee.d.ts.map +1 -1
  227. package/lib/chain/validation/syncCommittee.js +16 -10
  228. package/lib/chain/validation/syncCommittee.js.map +1 -1
  229. package/lib/chain/validation/syncCommitteeContributionAndProof.d.ts.map +1 -1
  230. package/lib/chain/validation/syncCommitteeContributionAndProof.js +11 -0
  231. package/lib/chain/validation/syncCommitteeContributionAndProof.js.map +1 -1
  232. package/lib/chain/validatorMonitor.d.ts +1 -2
  233. package/lib/chain/validatorMonitor.d.ts.map +1 -1
  234. package/lib/chain/validatorMonitor.js +0 -3
  235. package/lib/chain/validatorMonitor.js.map +1 -1
  236. package/lib/db/beacon.d.ts +7 -0
  237. package/lib/db/beacon.d.ts.map +1 -1
  238. package/lib/db/beacon.js +34 -0
  239. package/lib/db/beacon.js.map +1 -1
  240. package/lib/db/dataColumnStore.d.ts +1 -1
  241. package/lib/db/dataColumnStore.d.ts.map +1 -1
  242. package/lib/db/dataColumnStore.js +1 -4
  243. package/lib/db/dataColumnStore.js.map +1 -1
  244. package/lib/db/flatFileStore/flatFileStore.js +5 -5
  245. package/lib/db/flatFileStore/flatFileStore.js.map +1 -1
  246. package/lib/db/flatFileStore/slotIndex.d.ts.map +1 -1
  247. package/lib/db/flatFileStore/slotIndex.js +2 -2
  248. package/lib/db/flatFileStore/slotIndex.js.map +1 -1
  249. package/lib/db/interface.d.ts +1 -0
  250. package/lib/db/interface.d.ts.map +1 -1
  251. package/lib/db/repositories/blobSidecars.d.ts +0 -1
  252. package/lib/db/repositories/blobSidecars.d.ts.map +1 -1
  253. package/lib/db/repositories/blobSidecars.js +0 -1
  254. package/lib/db/repositories/blobSidecars.js.map +1 -1
  255. package/lib/db/repositories/dataColumnSidecarArchive.d.ts +6 -0
  256. package/lib/db/repositories/dataColumnSidecarArchive.d.ts.map +1 -1
  257. package/lib/db/repositories/dataColumnSidecarArchive.js +19 -0
  258. package/lib/db/repositories/dataColumnSidecarArchive.js.map +1 -1
  259. package/lib/execution/builder/apiClient.d.ts +14 -8
  260. package/lib/execution/builder/apiClient.d.ts.map +1 -1
  261. package/lib/execution/builder/apiClient.js +12 -10
  262. package/lib/execution/builder/apiClient.js.map +1 -1
  263. package/lib/execution/builder/http.d.ts +2 -0
  264. package/lib/execution/builder/http.d.ts.map +1 -1
  265. package/lib/execution/builder/http.js +2 -0
  266. package/lib/execution/builder/http.js.map +1 -1
  267. package/lib/execution/builder/validateBid.d.ts.map +1 -1
  268. package/lib/execution/builder/validateBid.js +14 -1
  269. package/lib/execution/builder/validateBid.js.map +1 -1
  270. package/lib/execution/engine/blobVersionedHashes.d.ts +1 -1
  271. package/lib/execution/engine/blobVersionedHashes.d.ts.map +1 -1
  272. package/lib/execution/engine/blobVersionedHashes.js.map +1 -1
  273. package/lib/execution/engine/disabled.d.ts +1 -0
  274. package/lib/execution/engine/disabled.d.ts.map +1 -1
  275. package/lib/execution/engine/disabled.js +3 -0
  276. package/lib/execution/engine/disabled.js.map +1 -1
  277. package/lib/execution/engine/http.d.ts +12 -8
  278. package/lib/execution/engine/http.d.ts.map +1 -1
  279. package/lib/execution/engine/http.js +35 -14
  280. package/lib/execution/engine/http.js.map +1 -1
  281. package/lib/execution/engine/index.d.ts +1 -1
  282. package/lib/execution/engine/index.d.ts.map +1 -1
  283. package/lib/execution/engine/index.js +1 -1
  284. package/lib/execution/engine/index.js.map +1 -1
  285. package/lib/execution/engine/interface.d.ts +29 -8
  286. package/lib/execution/engine/interface.d.ts.map +1 -1
  287. package/lib/execution/engine/interface.js.map +1 -1
  288. package/lib/execution/engine/jsonRpcTransport.d.ts +5 -6
  289. package/lib/execution/engine/jsonRpcTransport.d.ts.map +1 -1
  290. package/lib/execution/engine/jsonRpcTransport.js +34 -20
  291. package/lib/execution/engine/jsonRpcTransport.js.map +1 -1
  292. package/lib/execution/engine/mock.d.ts +1 -1
  293. package/lib/execution/engine/mock.d.ts.map +1 -1
  294. package/lib/execution/engine/mock.js +31 -11
  295. package/lib/execution/engine/mock.js.map +1 -1
  296. package/lib/execution/engine/payloadIdCache.d.ts +5 -3
  297. package/lib/execution/engine/payloadIdCache.d.ts.map +1 -1
  298. package/lib/execution/engine/payloadIdCache.js +15 -4
  299. package/lib/execution/engine/payloadIdCache.js.map +1 -1
  300. package/lib/execution/engine/restTransport.d.ts +4 -5
  301. package/lib/execution/engine/restTransport.d.ts.map +1 -1
  302. package/lib/execution/engine/restTransport.js +4 -15
  303. package/lib/execution/engine/restTransport.js.map +1 -1
  304. package/lib/execution/engine/sszTypes.d.ts +38 -47
  305. package/lib/execution/engine/sszTypes.d.ts.map +1 -1
  306. package/lib/execution/engine/sszTypes.js +0 -5
  307. package/lib/execution/engine/sszTypes.js.map +1 -1
  308. package/lib/execution/engine/transport.d.ts +4 -14
  309. package/lib/execution/engine/transport.d.ts.map +1 -1
  310. package/lib/execution/engine/types.d.ts +25 -9
  311. package/lib/execution/engine/types.d.ts.map +1 -1
  312. package/lib/execution/engine/types.js +19 -14
  313. package/lib/execution/engine/types.js.map +1 -1
  314. package/lib/execution/engine/utils.d.ts.map +1 -1
  315. package/lib/execution/engine/utils.js +3 -2
  316. package/lib/execution/engine/utils.js.map +1 -1
  317. package/lib/index.d.ts +1 -0
  318. package/lib/index.d.ts.map +1 -1
  319. package/lib/index.js +2 -0
  320. package/lib/index.js.map +1 -1
  321. package/lib/metrics/metrics/beacon.d.ts +16 -9
  322. package/lib/metrics/metrics/beacon.d.ts.map +1 -1
  323. package/lib/metrics/metrics/beacon.js +35 -30
  324. package/lib/metrics/metrics/beacon.js.map +1 -1
  325. package/lib/metrics/metrics/lodestar.d.ts +49 -8
  326. package/lib/metrics/metrics/lodestar.d.ts.map +1 -1
  327. package/lib/metrics/metrics/lodestar.js +128 -18
  328. package/lib/metrics/metrics/lodestar.js.map +1 -1
  329. package/lib/metrics/server/http.js +5 -5
  330. package/lib/metrics/server/http.js.map +1 -1
  331. package/lib/monitoring/service.js +1 -1
  332. package/lib/monitoring/service.js.map +1 -1
  333. package/lib/network/core/networkCore.d.ts +4 -1
  334. package/lib/network/core/networkCore.d.ts.map +1 -1
  335. package/lib/network/core/networkCore.js +7 -0
  336. package/lib/network/core/networkCore.js.map +1 -1
  337. package/lib/network/core/networkCoreWorker.js +2 -0
  338. package/lib/network/core/networkCoreWorker.js.map +1 -1
  339. package/lib/network/core/networkCoreWorkerHandler.d.ts +4 -1
  340. package/lib/network/core/networkCoreWorkerHandler.d.ts.map +1 -1
  341. package/lib/network/core/networkCoreWorkerHandler.js +6 -0
  342. package/lib/network/core/networkCoreWorkerHandler.js.map +1 -1
  343. package/lib/network/core/types.d.ts +6 -1
  344. package/lib/network/core/types.d.ts.map +1 -1
  345. package/lib/network/gossip/gossipsub.d.ts +1 -0
  346. package/lib/network/gossip/gossipsub.d.ts.map +1 -1
  347. package/lib/network/gossip/gossipsub.js +10 -0
  348. package/lib/network/gossip/gossipsub.js.map +1 -1
  349. package/lib/network/gossip/interface.d.ts +8 -9
  350. package/lib/network/gossip/interface.d.ts.map +1 -1
  351. package/lib/network/gossip/interface.js +1 -1
  352. package/lib/network/gossip/interface.js.map +1 -1
  353. package/lib/network/gossip/topic.d.ts +13 -21
  354. package/lib/network/gossip/topic.d.ts.map +1 -1
  355. package/lib/network/gossip/topic.js +13 -24
  356. package/lib/network/gossip/topic.js.map +1 -1
  357. package/lib/network/interface.d.ts +5 -5
  358. package/lib/network/interface.d.ts.map +1 -1
  359. package/lib/network/libp2p/index.d.ts.map +1 -1
  360. package/lib/network/libp2p/index.js +5 -1
  361. package/lib/network/libp2p/index.js.map +1 -1
  362. package/lib/network/network.d.ts +9 -7
  363. package/lib/network/network.d.ts.map +1 -1
  364. package/lib/network/network.js +58 -35
  365. package/lib/network/network.js.map +1 -1
  366. package/lib/network/options.d.ts +2 -0
  367. package/lib/network/options.d.ts.map +1 -1
  368. package/lib/network/options.js +2 -0
  369. package/lib/network/options.js.map +1 -1
  370. package/lib/network/peers/peerManager.d.ts +2 -1
  371. package/lib/network/peers/peerManager.d.ts.map +1 -1
  372. package/lib/network/peers/peerManager.js +28 -1
  373. package/lib/network/peers/peerManager.js.map +1 -1
  374. package/lib/network/peers/utils/assertPeerRelevance.d.ts +9 -1
  375. package/lib/network/peers/utils/assertPeerRelevance.d.ts.map +1 -1
  376. package/lib/network/peers/utils/assertPeerRelevance.js +32 -21
  377. package/lib/network/peers/utils/assertPeerRelevance.js.map +1 -1
  378. package/lib/network/peers/utils/enrSubnetsDeserialize.d.ts.map +1 -1
  379. package/lib/network/peers/utils/enrSubnetsDeserialize.js +5 -2
  380. package/lib/network/peers/utils/enrSubnetsDeserialize.js.map +1 -1
  381. package/lib/network/peers/utils/prioritizePeers.d.ts +4 -1
  382. package/lib/network/peers/utils/prioritizePeers.d.ts.map +1 -1
  383. package/lib/network/peers/utils/prioritizePeers.js +8 -16
  384. package/lib/network/peers/utils/prioritizePeers.js.map +1 -1
  385. package/lib/network/peers/utils/subnetMap.d.ts +5 -2
  386. package/lib/network/peers/utils/subnetMap.d.ts.map +1 -1
  387. package/lib/network/peers/utils/subnetMap.js +6 -3
  388. package/lib/network/peers/utils/subnetMap.js.map +1 -1
  389. package/lib/network/processor/extractSlotRootFns.d.ts.map +1 -1
  390. package/lib/network/processor/extractSlotRootFns.js +1 -8
  391. package/lib/network/processor/extractSlotRootFns.js.map +1 -1
  392. package/lib/network/processor/gossipHandlers.d.ts.map +1 -1
  393. package/lib/network/processor/gossipHandlers.js +118 -149
  394. package/lib/network/processor/gossipHandlers.js.map +1 -1
  395. package/lib/network/processor/gossipQueues/index.js +6 -6
  396. package/lib/network/processor/gossipQueues/index.js.map +1 -1
  397. package/lib/network/processor/gossipValidatorFn.js +5 -5
  398. package/lib/network/processor/gossipValidatorFn.js.map +1 -1
  399. package/lib/network/processor/index.d.ts +11 -0
  400. package/lib/network/processor/index.d.ts.map +1 -1
  401. package/lib/network/processor/index.js +66 -30
  402. package/lib/network/processor/index.js.map +1 -1
  403. package/lib/network/reqresp/ReqRespBeaconNode.js +6 -3
  404. package/lib/network/reqresp/ReqRespBeaconNode.js.map +1 -1
  405. package/lib/network/reqresp/handlers/beaconBlocksByRange.d.ts +2 -2
  406. package/lib/network/reqresp/handlers/beaconBlocksByRange.d.ts.map +1 -1
  407. package/lib/network/reqresp/handlers/inclusionListsByIndices.d.ts +10 -0
  408. package/lib/network/reqresp/handlers/inclusionListsByIndices.d.ts.map +1 -0
  409. package/lib/network/reqresp/handlers/inclusionListsByIndices.js +30 -0
  410. package/lib/network/reqresp/handlers/inclusionListsByIndices.js.map +1 -0
  411. package/lib/network/reqresp/handlers/index.d.ts.map +1 -1
  412. package/lib/network/reqresp/handlers/index.js +6 -12
  413. package/lib/network/reqresp/handlers/index.js.map +1 -1
  414. package/lib/network/reqresp/protocols.d.ts +1 -2
  415. package/lib/network/reqresp/protocols.d.ts.map +1 -1
  416. package/lib/network/reqresp/protocols.js +5 -10
  417. package/lib/network/reqresp/protocols.js.map +1 -1
  418. package/lib/network/reqresp/rateLimit.d.ts.map +1 -1
  419. package/lib/network/reqresp/rateLimit.js +5 -17
  420. package/lib/network/reqresp/rateLimit.js.map +1 -1
  421. package/lib/network/reqresp/types.d.ts +6 -9
  422. package/lib/network/reqresp/types.d.ts.map +1 -1
  423. package/lib/network/reqresp/types.js +4 -7
  424. package/lib/network/reqresp/types.js.map +1 -1
  425. package/lib/network/subnets/attnetsService.d.ts +35 -5
  426. package/lib/network/subnets/attnetsService.d.ts.map +1 -1
  427. package/lib/network/subnets/attnetsService.js +84 -6
  428. package/lib/network/subnets/attnetsService.js.map +1 -1
  429. package/lib/network/subnets/interface.d.ts +7 -0
  430. package/lib/network/subnets/interface.d.ts.map +1 -1
  431. package/lib/network/subnets/interface.js.map +1 -1
  432. package/lib/node/nodejs.d.ts +3 -1
  433. package/lib/node/nodejs.d.ts.map +1 -1
  434. package/lib/node/nodejs.js +47 -21
  435. package/lib/node/nodejs.js.map +1 -1
  436. package/lib/node/options.d.ts +3 -1
  437. package/lib/node/options.d.ts.map +1 -1
  438. package/lib/node/options.js +4 -2
  439. package/lib/node/options.js.map +1 -1
  440. package/lib/sync/interface.d.ts.map +1 -1
  441. package/lib/sync/interface.js.map +1 -1
  442. package/lib/sync/range/batch.d.ts +2 -3
  443. package/lib/sync/range/batch.d.ts.map +1 -1
  444. package/lib/sync/range/batch.js +9 -22
  445. package/lib/sync/range/batch.js.map +1 -1
  446. package/lib/sync/range/chain.d.ts.map +1 -1
  447. package/lib/sync/range/chain.js +2 -15
  448. package/lib/sync/range/chain.js.map +1 -1
  449. package/lib/sync/sync.d.ts +15 -0
  450. package/lib/sync/sync.d.ts.map +1 -1
  451. package/lib/sync/sync.js +103 -25
  452. package/lib/sync/sync.js.map +1 -1
  453. package/lib/sync/unknownBlock.d.ts.map +1 -1
  454. package/lib/sync/unknownBlock.js +43 -25
  455. package/lib/sync/unknownBlock.js.map +1 -1
  456. package/lib/sync/utils/downloadByRange.d.ts +6 -34
  457. package/lib/sync/utils/downloadByRange.d.ts.map +1 -1
  458. package/lib/sync/utils/downloadByRange.js +24 -128
  459. package/lib/sync/utils/downloadByRange.js.map +1 -1
  460. package/lib/sync/utils/downloadByRoot.d.ts +2 -18
  461. package/lib/sync/utils/downloadByRoot.d.ts.map +1 -1
  462. package/lib/sync/utils/downloadByRoot.js +14 -99
  463. package/lib/sync/utils/downloadByRoot.js.map +1 -1
  464. package/lib/util/blobs.d.ts +1 -7
  465. package/lib/util/blobs.d.ts.map +1 -1
  466. package/lib/util/blobs.js +0 -19
  467. package/lib/util/blobs.js.map +1 -1
  468. package/lib/util/execution.d.ts +3 -4
  469. package/lib/util/execution.d.ts.map +1 -1
  470. package/lib/util/execution.js +1 -73
  471. package/lib/util/execution.js.map +1 -1
  472. package/lib/util/file.d.ts.map +1 -1
  473. package/lib/util/file.js +8 -9
  474. package/lib/util/file.js.map +1 -1
  475. package/lib/util/queue/itemQueue.js +1 -1
  476. package/lib/util/queue/itemQueue.js.map +1 -1
  477. package/lib/util/sszBytes.d.ts +5 -1
  478. package/lib/util/sszBytes.d.ts.map +1 -1
  479. package/lib/util/sszBytes.js +36 -19
  480. package/lib/util/sszBytes.js.map +1 -1
  481. package/lib/util/types.d.ts +0 -5
  482. package/lib/util/types.d.ts.map +1 -1
  483. package/lib/util/types.js +1 -2
  484. package/lib/util/types.js.map +1 -1
  485. package/package.json +31 -32
  486. package/src/api/impl/api.ts +1 -1
  487. package/src/api/impl/beacon/blocks/index.ts +81 -126
  488. package/src/api/impl/beacon/index.ts +3 -1
  489. package/src/api/impl/beacon/pool/index.ts +31 -1
  490. package/src/api/impl/beacon/state/index.ts +10 -1
  491. package/src/api/impl/beacon/state/utils.ts +20 -10
  492. package/src/api/impl/debug/index.ts +4 -0
  493. package/src/api/impl/validator/index.ts +178 -39
  494. package/src/api/options.ts +3 -0
  495. package/src/chain/ColumnReconstructionTracker.ts +60 -41
  496. package/src/chain/GetBlobsTracker.ts +82 -52
  497. package/src/chain/archiveStore/archiveStore.ts +1 -0
  498. package/src/chain/archiveStore/utils/archiveBlocks.ts +76 -130
  499. package/src/chain/blocks/blockInput/blockInput.ts +11 -343
  500. package/src/chain/blocks/blockInput/errors.ts +1 -2
  501. package/src/chain/blocks/blockInput/types.ts +2 -20
  502. package/src/chain/blocks/importBlock.ts +58 -77
  503. package/src/chain/blocks/importExecutionPayload.ts +123 -36
  504. package/src/chain/blocks/index.ts +11 -4
  505. package/src/chain/blocks/payloadEnvelopeProcessor.ts +35 -24
  506. package/src/chain/blocks/types.ts +8 -29
  507. package/src/chain/blocks/verifyBlock.ts +31 -16
  508. package/src/chain/blocks/verifyBlocksDataAvailability.ts +16 -2
  509. package/src/chain/blocks/verifyBlocksExecutionPayloads.ts +9 -6
  510. package/src/chain/blocks/verifyBlocksSanityChecks.ts +4 -1
  511. package/src/chain/blocks/verifyBlocksSignatures.ts +10 -5
  512. package/src/chain/blocks/verifyPayloadsDataAvailability.ts +14 -6
  513. package/src/chain/blocks/writeBlockInputToDb.ts +6 -29
  514. package/src/chain/bls/interface.ts +2 -0
  515. package/src/chain/bls/multithread/index.ts +48 -24
  516. package/src/chain/bls/multithread/types.ts +1 -1
  517. package/src/chain/bls/multithread/worker.ts +1 -5
  518. package/src/chain/bls/singleThread.ts +1 -1
  519. package/src/chain/bls/utils.ts +1 -1
  520. package/src/chain/chain.ts +145 -42
  521. package/src/chain/emitter.ts +8 -8
  522. package/src/chain/errors/blockError.ts +1 -1
  523. package/src/chain/errors/executionPayloadBid.ts +12 -0
  524. package/src/chain/errors/executionPayloadEnvelope.ts +8 -0
  525. package/src/chain/errors/inclusionList.ts +38 -0
  526. package/src/chain/errors/index.ts +1 -1
  527. package/src/chain/forkChoice/index.ts +11 -0
  528. package/src/chain/forkChoiceExecutionEngine.ts +183 -0
  529. package/src/chain/interface.ts +11 -6
  530. package/src/chain/opPools/aggregatedAttestationPool.ts +246 -43
  531. package/src/chain/opPools/attestationPool.ts +16 -4
  532. package/src/chain/opPools/inclusionListStore.ts +208 -0
  533. package/src/chain/opPools/index.ts +2 -0
  534. package/src/chain/opPools/payloadAttestationPool.ts +18 -7
  535. package/src/chain/opPools/singleAttestationPool.ts +287 -0
  536. package/src/chain/opPools/syncCommitteeMessagePool.ts +10 -3
  537. package/src/chain/opPools/syncContributionAndProofPool.ts +13 -3
  538. package/src/chain/opPools/utils.ts +1 -1
  539. package/src/chain/options.ts +5 -4
  540. package/src/chain/produceBlock/produceBlockBody.ts +67 -22
  541. package/src/chain/proposerTracker.ts +94 -0
  542. package/src/chain/regen/interface.ts +2 -2
  543. package/src/chain/regen/queued.ts +6 -4
  544. package/src/chain/seenCache/seenGossipBlockInput.ts +9 -93
  545. package/src/chain/validation/executionPayloadBid.ts +54 -183
  546. package/src/chain/validation/executionPayloadEnvelope.ts +68 -1
  547. package/src/chain/validation/inclusionList.ts +192 -0
  548. package/src/chain/validation/index.ts +1 -0
  549. package/src/chain/validation/syncCommittee.ts +31 -15
  550. package/src/chain/validation/syncCommitteeContributionAndProof.ts +13 -0
  551. package/src/chain/validatorMonitor.ts +0 -6
  552. package/src/db/beacon.ts +44 -0
  553. package/src/db/dataColumnStore.ts +2 -4
  554. package/src/db/flatFileStore/flatFileStore.ts +7 -7
  555. package/src/db/flatFileStore/slotIndex.ts +4 -3
  556. package/src/db/interface.ts +2 -0
  557. package/src/db/repositories/blobSidecars.ts +0 -1
  558. package/src/db/repositories/dataColumnSidecarArchive.ts +20 -0
  559. package/src/execution/builder/apiClient.ts +16 -13
  560. package/src/execution/builder/http.ts +4 -0
  561. package/src/execution/builder/validateBid.ts +23 -2
  562. package/src/execution/engine/blobVersionedHashes.ts +1 -1
  563. package/src/execution/engine/disabled.ts +4 -0
  564. package/src/execution/engine/http.ts +59 -47
  565. package/src/execution/engine/index.ts +1 -1
  566. package/src/execution/engine/interface.ts +46 -13
  567. package/src/execution/engine/jsonRpcTransport.ts +56 -31
  568. package/src/execution/engine/mock.ts +32 -14
  569. package/src/execution/engine/payloadIdCache.ts +24 -6
  570. package/src/execution/engine/restTransport.ts +18 -23
  571. package/src/execution/engine/sszTypes.ts +0 -9
  572. package/src/execution/engine/transport.ts +13 -17
  573. package/src/execution/engine/types.ts +44 -24
  574. package/src/execution/engine/utils.ts +4 -2
  575. package/src/index.ts +2 -0
  576. package/src/metrics/metrics/beacon.ts +37 -30
  577. package/src/metrics/metrics/lodestar.ts +131 -18
  578. package/src/metrics/server/http.ts +5 -5
  579. package/src/monitoring/service.ts +1 -1
  580. package/src/network/core/networkCore.ts +11 -1
  581. package/src/network/core/networkCoreWorker.ts +2 -0
  582. package/src/network/core/networkCoreWorkerHandler.ts +8 -1
  583. package/src/network/core/types.ts +6 -1
  584. package/src/network/gossip/gossipsub.ts +11 -0
  585. package/src/network/gossip/interface.ts +5 -5
  586. package/src/network/gossip/topic.ts +14 -25
  587. package/src/network/interface.ts +4 -5
  588. package/src/network/libp2p/index.ts +5 -1
  589. package/src/network/network.ts +66 -58
  590. package/src/network/options.ts +4 -0
  591. package/src/network/peers/peerManager.ts +28 -3
  592. package/src/network/peers/utils/assertPeerRelevance.ts +39 -23
  593. package/src/network/peers/utils/enrSubnetsDeserialize.ts +5 -2
  594. package/src/network/peers/utils/prioritizePeers.ts +14 -22
  595. package/src/network/peers/utils/subnetMap.ts +6 -3
  596. package/src/network/processor/extractSlotRootFns.ts +0 -9
  597. package/src/network/processor/gossipHandlers.ts +150 -183
  598. package/src/network/processor/gossipQueues/index.ts +6 -6
  599. package/src/network/processor/gossipValidatorFn.ts +5 -5
  600. package/src/network/processor/index.ts +58 -28
  601. package/src/network/processor/types.ts +1 -1
  602. package/src/network/reqresp/ReqRespBeaconNode.ts +7 -7
  603. package/src/network/reqresp/handlers/beaconBlocksByRange.ts +2 -2
  604. package/src/network/reqresp/handlers/inclusionListsByIndices.ts +44 -0
  605. package/src/network/reqresp/handlers/index.ts +5 -17
  606. package/src/network/reqresp/protocols.ts +6 -12
  607. package/src/network/reqresp/rateLimit.ts +5 -17
  608. package/src/network/reqresp/types.ts +6 -13
  609. package/src/network/subnets/attnetsService.ts +94 -6
  610. package/src/network/subnets/interface.ts +7 -0
  611. package/src/node/nodejs.ts +58 -22
  612. package/src/node/options.ts +9 -6
  613. package/src/sync/interface.ts +1 -0
  614. package/src/sync/range/batch.ts +9 -21
  615. package/src/sync/range/chain.ts +2 -14
  616. package/src/sync/sync.ts +108 -26
  617. package/src/sync/unknownBlock.ts +48 -36
  618. package/src/sync/utils/downloadByRange.ts +31 -230
  619. package/src/sync/utils/downloadByRoot.ts +15 -142
  620. package/src/util/blobs.ts +0 -34
  621. package/src/util/execution.ts +8 -102
  622. package/src/util/file.ts +8 -9
  623. package/src/util/queue/itemQueue.ts +1 -1
  624. package/src/util/sszBytes.ts +42 -24
  625. package/src/util/types.ts +1 -8
  626. package/lib/chain/errors/blobSidecarError.d.ts +0 -108
  627. package/lib/chain/errors/blobSidecarError.d.ts.map +0 -1
  628. package/lib/chain/errors/blobSidecarError.js +0 -38
  629. package/lib/chain/errors/blobSidecarError.js.map +0 -1
  630. package/lib/chain/validation/blobSidecar.d.ts +0 -16
  631. package/lib/chain/validation/blobSidecar.d.ts.map +0 -1
  632. package/lib/chain/validation/blobSidecar.js +0 -276
  633. package/lib/chain/validation/blobSidecar.js.map +0 -1
  634. package/lib/network/reqresp/handlers/blobSidecarsByRange.d.ts +0 -9
  635. package/lib/network/reqresp/handlers/blobSidecarsByRange.d.ts.map +0 -1
  636. package/lib/network/reqresp/handlers/blobSidecarsByRange.js +0 -91
  637. package/lib/network/reqresp/handlers/blobSidecarsByRange.js.map +0 -1
  638. package/lib/network/reqresp/handlers/blobSidecarsByRoot.d.ts +0 -5
  639. package/lib/network/reqresp/handlers/blobSidecarsByRoot.d.ts.map +0 -1
  640. package/lib/network/reqresp/handlers/blobSidecarsByRoot.js +0 -46
  641. package/lib/network/reqresp/handlers/blobSidecarsByRoot.js.map +0 -1
  642. package/src/chain/errors/blobSidecarError.ts +0 -70
  643. package/src/chain/validation/blobSidecar.ts +0 -357
  644. package/src/network/reqresp/handlers/blobSidecarsByRange.ts +0 -133
  645. package/src/network/reqresp/handlers/blobSidecarsByRoot.ts +0 -69
@@ -2,25 +2,24 @@ import { routes } from "@lodestar/api";
2
2
  import { PayloadStatus } from "@lodestar/fork-choice";
3
3
  import { ForkSeq, NUMBER_OF_COLUMNS, isForkPostElectra, isForkPostGloas, } from "@lodestar/params";
4
4
  import { computeTimeAtSlot, signedBlockToSignedHeader } from "@lodestar/state-transition";
5
- import { isGloasDataColumnSidecar, ssz, sszTypesFor, } from "@lodestar/types";
5
+ import { isGloasBeaconBlock, isGloasDataColumnSidecar, ssz, sszTypesFor, } from "@lodestar/types";
6
6
  import { LogLevel, toHex, toRootHex } from "@lodestar/utils";
7
7
  import { BlockInputSource, isBlockInputColumns, } from "../../chain/blocks/blockInput/index.js";
8
8
  import { PayloadError, PayloadErrorCode } from "../../chain/blocks/importExecutionPayload.js";
9
9
  import { PayloadEnvelopeInputSource } from "../../chain/blocks/payloadEnvelopeInput/index.js";
10
- import { BlobSidecarValidation } from "../../chain/blocks/types.js";
10
+ import { InclusionListSource } from "../../chain/blocks/types.js";
11
11
  import { ChainEvent } from "../../chain/emitter.js";
12
- import { AttestationError, AttestationErrorCode, BlobSidecarErrorCode, BlobSidecarGossipError, BlockError, BlockErrorCode, BlockGossipError, DataColumnSidecarErrorCode, DataColumnSidecarGossipError, ExecutionPayloadEnvelopeError, ExecutionPayloadEnvelopeErrorCode, GossipAction, GossipActionError, PayloadAttestationError, PayloadAttestationErrorCode, SyncCommitteeError, } from "../../chain/errors/index.js";
13
- import { validateGossipBlobSidecar } from "../../chain/validation/blobSidecar.js";
12
+ import { AttestationError, AttestationErrorCode, BlockError, BlockErrorCode, BlockGossipError, DataColumnSidecarErrorCode, DataColumnSidecarGossipError, ExecutionPayloadEnvelopeError, ExecutionPayloadEnvelopeErrorCode, GossipAction, GossipActionError, PayloadAttestationError, PayloadAttestationErrorCode, SyncCommitteeError, } from "../../chain/errors/index.js";
14
13
  import { validateGossipFuluDataColumnSidecar, validateGossipGloasDataColumnSidecar, } from "../../chain/validation/dataColumnSidecar.js";
15
14
  import { validateGossipExecutionPayloadBid } from "../../chain/validation/executionPayloadBid.js";
16
- import { validateGossipExecutionPayloadEnvelope } from "../../chain/validation/executionPayloadEnvelope.js";
15
+ import { validateGossipExecutionPayloadEnvelope, validateGossipExecutionPayloadEnvelopeSerialized, } from "../../chain/validation/executionPayloadEnvelope.js";
16
+ import { validateGossipInclusionList } from "../../chain/validation/inclusionList.js";
17
17
  import { toElectraSingleAttestation, validateGossipAggregateAndProof, validateGossipAttestationsSameAttData, validateGossipAttesterSlashing, validateGossipBlock, validateGossipBlsToExecutionChange, validateGossipProposerSlashing, validateGossipSyncCommittee, validateGossipVoluntaryExit, validateSyncCommitteeGossipContributionAndProof, verifyBlockProposerSignature, } from "../../chain/validation/index.js";
18
18
  import { validateLightClientFinalityUpdate } from "../../chain/validation/lightClientFinalityUpdate.js";
19
19
  import { validateLightClientOptimisticUpdate } from "../../chain/validation/lightClientOptimisticUpdate.js";
20
20
  import { validateGossipPayloadAttestationMessage } from "../../chain/validation/payloadAttestationMessage.js";
21
21
  import { validateGossipProposerPreferences } from "../../chain/validation/proposerPreferences.js";
22
22
  import { OpSource } from "../../chain/validatorMonitor.js";
23
- import { kzgCommitmentToVersionedHash } from "../../util/blobs.js";
24
23
  import { getBlobKzgCommitments, getDataColumnSidecarSlot } from "../../util/dataColumns.js";
25
24
  import { callInNextEventLoop } from "../../util/eventLoop.js";
26
25
  import { GossipType, } from "../gossip/interface.js";
@@ -51,6 +50,27 @@ export function getGossipHandlers(modules, options) {
51
50
  */
52
51
  function getSequentialHandlers(modules, options) {
53
52
  const { chain, config, metrics, logger, core } = modules;
53
+ const incompletePayloadWaits = new WeakSet();
54
+ function scheduleIncompletePayloadEnvelope(payloadInput, peer) {
55
+ if (payloadInput.isComplete() || incompletePayloadWaits.has(payloadInput)) {
56
+ return;
57
+ }
58
+ incompletePayloadWaits.add(payloadInput);
59
+ const fork = config.getForkName(payloadInput.slot);
60
+ const cutoffTimeMs = getCutoffTimeMs(chain, payloadInput.slot, config.getPayloadDueMs(fork));
61
+ payloadInput.waitForEnvelopeAndAllData(cutoffTimeMs).catch(() => {
62
+ if (payloadInput.isComplete() ||
63
+ chain.seenPayloadEnvelopeInputCache.get(payloadInput.blockRootHex) !== payloadInput) {
64
+ return;
65
+ }
66
+ chain.logger.debug("Payload envelope incomplete at payload deadline", payloadInput.getLogMeta());
67
+ chain.emitter.emit(ChainEvent.incompletePayloadEnvelope, {
68
+ payloadInput,
69
+ peer,
70
+ source: BlockInputSource.gossip,
71
+ });
72
+ });
73
+ }
54
74
  /**
55
75
  * Add a gossip block to the seen caches. The proposer signature of the block MUST be verified.
56
76
  */
@@ -158,74 +178,6 @@ function getSequentialHandlers(modules, options) {
158
178
  }
159
179
  }
160
180
  }
161
- async function validateBeaconBlob(blobSidecar, subnet, peerIdStr, seenTimestampSec) {
162
- const blobBlockHeader = blobSidecar.signedBlockHeader.message;
163
- const slot = blobBlockHeader.slot;
164
- const fork = config.getForkName(slot);
165
- const blockRootHex = toRootHex(ssz.phase0.BeaconBlockHeader.hashTreeRoot(blobBlockHeader));
166
- const delaySec = chain.clock.secFromSlot(slot, seenTimestampSec);
167
- const recvToValLatency = Date.now() / 1000 - seenTimestampSec;
168
- try {
169
- await validateGossipBlobSidecar(fork, chain, blobSidecar, subnet);
170
- const blockInput = chain.seenBlockInputCache.getByBlob({
171
- blockRootHex,
172
- blobSidecar,
173
- source: BlockInputSource.gossip,
174
- seenTimestampSec,
175
- peerIdStr,
176
- });
177
- const recvToValidation = Date.now() / 1000 - seenTimestampSec;
178
- const validationTime = recvToValidation - recvToValLatency;
179
- metrics?.gossipBlob.recvToValidation.observe(recvToValidation);
180
- metrics?.gossipBlob.validationTime.observe(validationTime);
181
- if (chain.emitter.listenerCount(routes.events.EventType.blobSidecar)) {
182
- let versionedHash;
183
- if (blockInput.hasBlock()) {
184
- // if block hasn't arrived yet then this will throw and need to calculate the versionedHash as a 1-off
185
- versionedHash = blockInput.getVersionedHashes()[blobSidecar.index];
186
- }
187
- else {
188
- versionedHash = kzgCommitmentToVersionedHash(blobSidecar.kzgCommitment);
189
- }
190
- chain.emitter.emit(routes.events.EventType.blobSidecar, {
191
- blockRoot: blockRootHex,
192
- slot,
193
- index: blobSidecar.index,
194
- kzgCommitment: toHex(blobSidecar.kzgCommitment),
195
- versionedHash: toHex(versionedHash),
196
- });
197
- }
198
- logger.debug("Received gossip blob", {
199
- ...blockInput.getLogMeta(),
200
- currentSlot: chain.clock.currentSlot,
201
- peerId: peerIdStr,
202
- delaySec,
203
- subnet,
204
- recvToValLatency,
205
- recvToValidation,
206
- validationTime,
207
- });
208
- return blockInput;
209
- }
210
- catch (e) {
211
- if (e instanceof BlobSidecarGossipError) {
212
- // Don't trigger this yet if full block and blobs haven't arrived yet
213
- if (e.type.code === BlobSidecarErrorCode.PARENT_UNKNOWN) {
214
- logger.debug("Gossip blob has error", { slot, root: blockRootHex, code: e.type.code });
215
- // no need to trigger `unknownBlockParent` event here, as we already did it in `validateBeaconBlock()`
216
- //
217
- // TODO(fulu): is this note above correct? Could have random blob that we see that could trigger
218
- // unknownBlockSync. And duplicate addition of a block will be deduplicated by the
219
- // BlockInputSync event handler. Check this!!
220
- // events.emit(NetworkEvent.unknownBlockParent, {blockInput, peer: peerIdStr});
221
- }
222
- if (e.action === GossipAction.REJECT) {
223
- chain.persistInvalidSszValue(ssz.deneb.BlobSidecar, blobSidecar, `gossip_reject_slot_${slot}_index_${blobSidecar.index}`);
224
- }
225
- }
226
- throw e;
227
- }
228
- }
229
181
  async function validateBeaconDataColumn(dataColumnSidecar, _dataColumnBytes, gossipSubnet, peerIdStr, seenTimestampSec) {
230
182
  metrics?.peerDas.dataColumnSidecarProcessingRequests.inc();
231
183
  const dataColumnBlockHeader = dataColumnSidecar.signedBlockHeader.message;
@@ -448,8 +400,6 @@ function getSequentialHandlers(modules, options) {
448
400
  ignoreIfKnown: true,
449
401
  // proposer signature already checked in validateBeaconBlock()
450
402
  validProposerSignature: true,
451
- // blobSidecars already checked in validateGossipBlobSidecars()
452
- validBlobSidecars: BlobSidecarValidation.Individual,
453
403
  // It's critical to keep a good number of mesh peers.
454
404
  // To do that, the Gossip Job Wait Time should be consistently <3s to avoid the behavior penalties in gossip
455
405
  // Gossip Job Wait Time depends on the BLS Job Wait Time
@@ -473,10 +423,8 @@ function getSequentialHandlers(modules, options) {
473
423
  }
474
424
  // Immediately attempt fetch of data columns from execution engine as the bid contains kzg commitments
475
425
  // which is all the information we need so there is no reason to delay until execution payload arrives
476
- // TODO GLOAS: If we want EL retries after this initial attempt, add an explicit retry policy here
477
- // (for example later in the slot). Do not couple retries to incoming gossip columns.
478
- // Columns fetched here feed payloadInput.addColumn, which resolves waitForAllData for any
479
- // in-flight importExecutionPayload. No processExecutionPayload trigger needed from this path.
426
+ // Columns fetched here feed payloadInput.addColumn, which resolves the waitForAllData of a
427
+ // pending payload import. No processExecutionPayload trigger needed from this path.
480
428
  chain.getBlobsTracker.triggerGetBlobs(payloadInput);
481
429
  }
482
430
  })
@@ -485,11 +433,10 @@ function getSequentialHandlers(modules, options) {
485
433
  let logLevel;
486
434
  if (e instanceof BlockError) {
487
435
  switch (e.type.code) {
488
- case BlockErrorCode.DATA_UNAVAILABLE: {
489
- // Error is quite frequent and not critical
436
+ case BlockErrorCode.DATA_UNAVAILABLE:
437
+ // Data did not arrive in time, BlockInputSync keeps pulling it and retries the import
490
438
  logLevel = LogLevel.debug;
491
439
  break;
492
- }
493
440
  // ALREADY_KNOWN should not happen with ignoreIfKnown=true above
494
441
  // PARENT_BLOCK_UNKNOWN should not happen, we handled this in validateBeaconBlock() function above
495
442
  case BlockErrorCode.ALREADY_KNOWN:
@@ -548,7 +495,9 @@ function getSequentialHandlers(modules, options) {
548
495
  // roots per proposer and slot, which bounds full imports over gossip to one alternate
549
496
  chain.seenBlockProposers.hasBlockRoot(signedBlock.message.slot, e.type.proposerIndex, e.type.root) &&
550
497
  // A sibling with an unknown parent cannot be imported, sync fetches it if its branch becomes relevant
551
- chain.forkChoice.getBlockHexDefaultStatus(toRootHex(signedBlock.message.parentRoot)) !== null) {
498
+ chain.forkChoice.getBlockHexDefaultStatus(toRootHex(signedBlock.message.parentRoot)) !== null &&
499
+ (!isGloasBeaconBlock(signedBlock.message) ||
500
+ chain.forkChoice.getBlockHexAndBlockHash(toRootHex(signedBlock.message.parentRoot), toRootHex(signedBlock.message.body.signedExecutionPayloadBid.message.parentBlockHash)) !== null)) {
552
501
  const blockInput = cacheSignatureVerifiedBlock(signedBlock, e.type.root, topic.boundary.fork, peerIdStr, seenTimestampSec);
553
502
  // We're returning IGNORE (thrown below), so this block is not forwarded to peers. Unlike the
554
503
  // happy path there is no rush to forward, so we don't need to wrap in callInNextEventLoop.
@@ -561,44 +510,6 @@ function getSequentialHandlers(modules, options) {
561
510
  throw e;
562
511
  }
563
512
  },
564
- [GossipType.blob_sidecar]: async ({ gossipData, topic, peerIdStr, seenTimestampSec, }) => {
565
- const { serializedData } = gossipData;
566
- const blobSidecar = sszDeserialize(topic, serializedData);
567
- const blobSlot = blobSidecar.signedBlockHeader.message.slot;
568
- const index = blobSidecar.index;
569
- if (config.getForkSeq(blobSlot) < ForkSeq.deneb) {
570
- throw new GossipActionError(GossipAction.REJECT, { code: "PRE_DENEB_BLOCK" });
571
- }
572
- const blockInput = await validateBeaconBlob(blobSidecar, topic.subnet, peerIdStr, seenTimestampSec);
573
- // Handler - deferred to next event loop so the validation result propagates first
574
- callInNextEventLoop(() => {
575
- try {
576
- chain.serializedCache.set(blobSidecar, serializedData);
577
- if (!blockInput.hasBlockAndAllData()) {
578
- const cutoffTimeMs = getCutoffTimeMs(chain, blobSlot, BLOCK_AVAILABILITY_CUTOFF_MS);
579
- chain.logger.debug("Received gossip blob, waiting for full data availability", {
580
- msToWait: cutoffTimeMs,
581
- blobIndex: index,
582
- ...blockInput.getLogMeta(),
583
- });
584
- blockInput.waitForAllData(cutoffTimeMs).catch((_e) => {
585
- chain.logger.debug("Waited for data after receiving gossip blob. Cut-off reached so attempting to fetch remainder of BlockInput", {
586
- blobIndex: index,
587
- ...blockInput.getLogMeta(),
588
- });
589
- chain.emitter.emit(ChainEvent.incompleteBlockInput, {
590
- blockInput,
591
- peer: peerIdStr,
592
- source: BlockInputSource.gossip,
593
- });
594
- });
595
- }
596
- }
597
- catch (e) {
598
- logger.debug("Error handling gossip blob", { slot: blobSlot, root: blockInput.blockRootHex, index }, e);
599
- }
600
- });
601
- },
602
513
  [GossipType.data_column_sidecar]: async ({ gossipData, topic, peerIdStr, seenTimestampSec, }) => {
603
514
  const { fork } = topic.boundary;
604
515
  const { serializedData } = gossipData;
@@ -646,24 +557,9 @@ function getSequentialHandlers(modules, options) {
646
557
  });
647
558
  }
648
559
  // NOTE: we do NOT call chain.processExecutionPayload here. That is triggered only by
649
- // envelope arrival (gossip or API). An in-flight importExecutionPayload is awaiting
560
+ // envelope arrival (gossip or API). A pending payload import is awaiting
650
561
  // payloadInput.waitForAllData(); addColumn above will resolve it once hasAllData flips.
651
- if (!payloadInput.isComplete()) {
652
- const cutoffTimeMs = getCutoffTimeMs(chain, dataColumnSlot, BLOCK_AVAILABILITY_CUTOFF_MS);
653
- // do not await here to not delay gossip validation
654
- payloadInput.waitForEnvelopeAndAllData(cutoffTimeMs).catch((_e) => {
655
- chain.logger.debug("Waited for envelope and data after receiving gossip column. Cut-off reached so emitting incompletePayloadEnvelope", {
656
- dataColumnIndex: index,
657
- ...payloadInputMeta,
658
- });
659
- // TODO GLOAS: UnknownBlockSync to handle this event
660
- chain.emitter.emit(ChainEvent.incompletePayloadEnvelope, {
661
- payloadInput,
662
- peer: peerIdStr,
663
- source: BlockInputSource.gossip,
664
- });
665
- });
666
- }
562
+ scheduleIncompletePayloadEnvelope(payloadInput, peerIdStr);
667
563
  }
668
564
  catch (e) {
669
565
  logger.debug("Error handling gossip data column", { slot: dataColumnSlot, root: payloadInput.blockRootHex, index }, e);
@@ -903,6 +799,7 @@ function getSequentialHandlers(modules, options) {
903
799
  },
904
800
  [GossipType.execution_payload]: async ({ gossipData, topic, peerIdStr, seenTimestampSec, }) => {
905
801
  const { serializedData } = gossipData;
802
+ validateGossipExecutionPayloadEnvelopeSerialized(chain, serializedData);
906
803
  const signedEnvelope = sszDeserialize(topic, serializedData);
907
804
  const envelope = signedEnvelope.message;
908
805
  // unlike BlockInput, we send the envelope into UnknownBlockInput sync
@@ -943,27 +840,38 @@ function getSequentialHandlers(modules, options) {
943
840
  blockRoot: blockRootHex,
944
841
  });
945
842
  }
843
+ // Add the envelope in the same tick as validation, otherwise a by-root download that completes
844
+ // before the next event loop sees no envelope, validates it again and adds it first
845
+ if (!payloadInput.hasPayloadEnvelope()) {
846
+ chain.serializedCache.set(signedEnvelope, serializedData);
847
+ payloadInput.addPayloadEnvelope({
848
+ envelope: signedEnvelope,
849
+ source: PayloadEnvelopeInputSource.gossip,
850
+ seenTimestampSec,
851
+ peerIdStr,
852
+ });
853
+ }
946
854
  // Handler - deferred to next event loop so the validation result propagates first
947
855
  callInNextEventLoop(() => {
948
856
  try {
949
- chain.serializedCache.set(signedEnvelope, serializedData);
950
- payloadInput.addPayloadEnvelope({
951
- envelope: signedEnvelope,
952
- source: PayloadEnvelopeInputSource.gossip,
953
- seenTimestampSec,
954
- peerIdStr,
955
- });
857
+ scheduleIncompletePayloadEnvelope(payloadInput, peerIdStr);
956
858
  chain.emitter.emit(routes.events.EventType.executionPayloadGossip, {
957
859
  slot,
958
860
  builderIndex: envelope.builderIndex,
959
861
  blockHash: toRootHex(envelope.payload.blockHash),
960
862
  blockRoot: blockRootHex,
961
863
  });
962
- chain.processExecutionPayload(payloadInput, { validSignature: true }).catch((e) => {
864
+ // Signature is verified above only for this envelope, one added by another source is verified at import
865
+ const validSignature = payloadInput.getPayloadEnvelope() === signedEnvelope;
866
+ chain.processExecutionPayload(payloadInput, { validSignature }).catch((e) => {
963
867
  // Adjust verbosity based on error type
964
868
  let logLevel;
965
869
  if (e instanceof PayloadError) {
966
870
  switch (e.type.code) {
871
+ case PayloadErrorCode.DATA_UNAVAILABLE:
872
+ // Columns did not arrive in time, BlockInputSync keeps pulling them and retries the import
873
+ logLevel = LogLevel.debug;
874
+ break;
967
875
  // BLOCK_NOT_IN_FORK_CHOICE should not happen, validateGossipExecutionPayloadEnvelope above
968
876
  // already verified the block is in fork choice
969
877
  case PayloadErrorCode.BLOCK_NOT_IN_FORK_CHOICE:
@@ -972,11 +880,17 @@ function getSequentialHandlers(modules, options) {
972
880
  // Errors might indicate an issue with our node or the connected EL client
973
881
  logLevel = LogLevel.error;
974
882
  break;
975
- // INVALID_SIGNATURE should not happen, signature is verified during gossip validation
883
+ case PayloadErrorCode.BLOCK_EXECUTION_INVALID:
884
+ logLevel = LogLevel.warn;
885
+ break;
886
+ // INVALID_SIGNATURE only happens for an envelope added by another source
976
887
  case PayloadErrorCode.INVALID_SIGNATURE:
977
888
  case PayloadErrorCode.ENVELOPE_VERIFICATION_ERROR:
978
889
  case PayloadErrorCode.EXECUTION_ENGINE_INVALID:
979
- core.reportPeer(peerIdStr, PeerAction.LowToleranceError, "BadGossipPayload");
890
+ // Penalize only when the stored envelope is the one this peer sent, not one added by another source
891
+ if (validSignature) {
892
+ core.reportPeer(peerIdStr, PeerAction.LowToleranceError, "BadGossipPayload");
893
+ }
980
894
  // The builder may have signed another envelope that is valid, keeping this one would make
981
895
  // by-root and range sync reuse it and never import the payload
982
896
  chain.seenPayloadEnvelopeInputCache.removeInvalid(payloadInput);
@@ -1079,6 +993,44 @@ function getSequentialHandlers(modules, options) {
1079
993
  }
1080
994
  });
1081
995
  },
996
+ [GossipType.inclusion_list]: async ({ gossipData, topic, seenTimestampSec, }) => {
997
+ const { serializedData } = gossipData;
998
+ const signedInclusionList = sszDeserialize(topic, serializedData);
999
+ const { slot } = signedInclusionList.message;
1000
+ metrics?.inclusionListsReceived.inc({ source: InclusionListSource.gossip });
1001
+ metrics?.inclusionListTransactionsReceived.inc({ source: InclusionListSource.gossip }, signedInclusionList.message.transactions.length);
1002
+ const timer = metrics?.inclusionListsValidationTime.startTimer();
1003
+ let validationResult;
1004
+ try {
1005
+ validationResult = await validateGossipInclusionList(chain, signedInclusionList);
1006
+ }
1007
+ finally {
1008
+ timer?.({ source: InclusionListSource.gossip });
1009
+ }
1010
+ const { committeeIndices, totalBytes } = validationResult;
1011
+ // Handler - deferred to next event loop so the validation result propagates first
1012
+ callInNextEventLoop(() => {
1013
+ try {
1014
+ metrics?.inclusionListsValid.inc({ source: InclusionListSource.gossip });
1015
+ metrics?.inclusionListsValidSize.inc(totalBytes);
1016
+ // Timely only if received within its own slot before the deadline, so a list for the next slot that
1017
+ // passed validation under clock disparity is untimely. Late lists are still stored, marked untimely
1018
+ const secFromSlot = chain.clock.secFromSlot(slot, seenTimestampSec);
1019
+ metrics?.inclusionListArrivalTime.observe(secFromSlot);
1020
+ const isTimely = secFromSlot >= 0 && secFromSlot * 1000 < config.getInclusionListDueMs(config.getForkName(slot));
1021
+ const insertOutcome = chain.inclusionListStore.process(signedInclusionList, committeeIndices, isTimely);
1022
+ metrics?.inclusionListStore.insertOutcome.inc({ insertOutcome });
1023
+ metrics?.inclusionListStore.size.set(chain.inclusionListStore.size);
1024
+ chain.emitter.emit(routes.events.EventType.inclusionList, {
1025
+ version: config.getForkName(slot),
1026
+ data: signedInclusionList,
1027
+ });
1028
+ }
1029
+ catch (e) {
1030
+ logger.debug("Error handling gossip inclusion list", { slot }, e);
1031
+ }
1032
+ });
1033
+ },
1082
1034
  };
1083
1035
  }
1084
1036
  /**
@@ -1132,6 +1084,23 @@ function getBatchHandlers(modules, options) {
1132
1084
  catch (e) {
1133
1085
  logger.debug("Error adding gossip unaggregated attestation to pool", { subnet }, e);
1134
1086
  }
1087
+ // Collected only for vote slots that an upcoming block of a connected validator can include
1088
+ if (isForkPostElectra(fork) && chain.proposerTracker.shouldCollect(indexedAttestation.data.slot)) {
1089
+ try {
1090
+ const insertOutcome = chain.singleAttestationPool.add(attestation, attDataRootHex, validatorCommitteeIndex, committeeSize);
1091
+ metrics?.opPool.singleAttestationPool.gossipInsertOutcome.inc({ insertOutcome });
1092
+ }
1093
+ catch (e) {
1094
+ logger.debug("Error adding gossip single attestation to pool", {
1095
+ slot: indexedAttestation.data.slot,
1096
+ committeeIndex,
1097
+ validatorCommitteeIndex,
1098
+ validatorIndex: attestation.attesterIndex,
1099
+ subnet,
1100
+ attDataRoot: attDataRootHex,
1101
+ }, e);
1102
+ }
1103
+ }
1135
1104
  // Separate boundary: a pool insertion error above must not skip the fork-choice vote
1136
1105
  if (!options.dontSendGossipAttestationsToForkchoice) {
1137
1106
  try {
@@ -1 +1 @@
1
- {"version":3,"file":"gossipHandlers.js","sourceRoot":"","sources":["../../../src/network/processor/gossipHandlers.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"gossipHandlers.js","sourceRoot":"","sources":["../../../src/network/processor/gossipHandlers.ts"],"names":[],"mappings":"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"}
@@ -19,12 +19,6 @@ export const MIN_SIGNATURE_SETS_TO_BATCH_VERIFY = 32;
19
19
  const linearGossipQueueOpts = {
20
20
  // validation gossip block asap
21
21
  [GossipType.beacon_block]: { maxLength: 1024, type: QueueType.FIFO, dropOpts: { type: DropType.count, count: 1 } },
22
- // gossip length for blob is beacon block length * max blobs per block = 4096
23
- [GossipType.blob_sidecar]: {
24
- maxLength: 4096,
25
- type: QueueType.FIFO,
26
- dropOpts: { type: DropType.count, count: 1 },
27
- },
28
22
  [GossipType.data_column_sidecar]: {
29
23
  maxLength: 4096,
30
24
  type: QueueType.FIFO,
@@ -82,6 +76,12 @@ const linearGossipQueueOpts = {
82
76
  type: QueueType.FIFO,
83
77
  dropOpts: { type: DropType.count, count: 1 },
84
78
  },
79
+ [GossipType.inclusion_list]: {
80
+ // 16 committee members, two lists each under the first-or-second-message rule, 32 per slot
81
+ maxLength: 1024,
82
+ type: QueueType.FIFO,
83
+ dropOpts: { type: DropType.count, count: 1 },
84
+ },
85
85
  };
86
86
  const indexedGossipQueueOpts = {
87
87
  [GossipType.beacon_attestation]: {