@lodestar/beacon-node 1.51.0-dev.ec1447da07 → 1.51.0-dev.ee7f143944

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 (539) hide show
  1. package/lib/api/impl/beacon/blocks/index.d.ts.map +1 -1
  2. package/lib/api/impl/beacon/blocks/index.js +36 -88
  3. package/lib/api/impl/beacon/blocks/index.js.map +1 -1
  4. package/lib/api/impl/beacon/pool/index.d.ts.map +1 -1
  5. package/lib/api/impl/beacon/pool/index.js +22 -2
  6. package/lib/api/impl/beacon/pool/index.js.map +1 -1
  7. package/lib/api/impl/beacon/state/utils.d.ts +1 -1
  8. package/lib/api/impl/beacon/state/utils.d.ts.map +1 -1
  9. package/lib/api/impl/validator/index.d.ts +6 -0
  10. package/lib/api/impl/validator/index.d.ts.map +1 -1
  11. package/lib/api/impl/validator/index.js +42 -26
  12. package/lib/api/impl/validator/index.js.map +1 -1
  13. package/lib/chain/GetBlobsTracker.d.ts +13 -2
  14. package/lib/chain/GetBlobsTracker.d.ts.map +1 -1
  15. package/lib/chain/GetBlobsTracker.js +69 -35
  16. package/lib/chain/GetBlobsTracker.js.map +1 -1
  17. package/lib/chain/archiveStore/archiveStore.d.ts.map +1 -1
  18. package/lib/chain/archiveStore/archiveStore.js +1 -0
  19. package/lib/chain/archiveStore/archiveStore.js.map +1 -1
  20. package/lib/chain/blocks/blockInput/blockInput.d.ts +11 -56
  21. package/lib/chain/blocks/blockInput/blockInput.d.ts.map +1 -1
  22. package/lib/chain/blocks/blockInput/blockInput.js +5 -241
  23. package/lib/chain/blocks/blockInput/blockInput.js.map +1 -1
  24. package/lib/chain/blocks/blockInput/errors.d.ts +2 -4
  25. package/lib/chain/blocks/blockInput/errors.d.ts.map +1 -1
  26. package/lib/chain/blocks/blockInput/errors.js.map +1 -1
  27. package/lib/chain/blocks/blockInput/types.d.ts +2 -18
  28. package/lib/chain/blocks/blockInput/types.d.ts.map +1 -1
  29. package/lib/chain/blocks/blockInput/types.js +0 -1
  30. package/lib/chain/blocks/blockInput/types.js.map +1 -1
  31. package/lib/chain/blocks/importBlock.d.ts.map +1 -1
  32. package/lib/chain/blocks/importBlock.js +36 -53
  33. package/lib/chain/blocks/importBlock.js.map +1 -1
  34. package/lib/chain/blocks/importExecutionPayload.d.ts +10 -11
  35. package/lib/chain/blocks/importExecutionPayload.d.ts.map +1 -1
  36. package/lib/chain/blocks/importExecutionPayload.js +32 -18
  37. package/lib/chain/blocks/importExecutionPayload.js.map +1 -1
  38. package/lib/chain/blocks/index.d.ts.map +1 -1
  39. package/lib/chain/blocks/index.js +4 -4
  40. package/lib/chain/blocks/index.js.map +1 -1
  41. package/lib/chain/blocks/payloadEnvelopeProcessor.d.ts +12 -9
  42. package/lib/chain/blocks/payloadEnvelopeProcessor.d.ts.map +1 -1
  43. package/lib/chain/blocks/payloadEnvelopeProcessor.js +24 -19
  44. package/lib/chain/blocks/payloadEnvelopeProcessor.js.map +1 -1
  45. package/lib/chain/blocks/types.d.ts +4 -20
  46. package/lib/chain/blocks/types.d.ts.map +1 -1
  47. package/lib/chain/blocks/types.js +0 -24
  48. package/lib/chain/blocks/types.js.map +1 -1
  49. package/lib/chain/blocks/verifyBlock.d.ts.map +1 -1
  50. package/lib/chain/blocks/verifyBlock.js +18 -7
  51. package/lib/chain/blocks/verifyBlock.js.map +1 -1
  52. package/lib/chain/blocks/verifyBlocksDataAvailability.d.ts.map +1 -1
  53. package/lib/chain/blocks/verifyBlocksDataAvailability.js +14 -2
  54. package/lib/chain/blocks/verifyBlocksDataAvailability.js.map +1 -1
  55. package/lib/chain/blocks/verifyBlocksExecutionPayloads.d.ts +1 -1
  56. package/lib/chain/blocks/verifyBlocksExecutionPayloads.d.ts.map +1 -1
  57. package/lib/chain/blocks/verifyBlocksExecutionPayloads.js +7 -3
  58. package/lib/chain/blocks/verifyBlocksExecutionPayloads.js.map +1 -1
  59. package/lib/chain/blocks/verifyBlocksSanityChecks.d.ts.map +1 -1
  60. package/lib/chain/blocks/verifyBlocksSanityChecks.js +4 -0
  61. package/lib/chain/blocks/verifyBlocksSanityChecks.js.map +1 -1
  62. package/lib/chain/blocks/verifyBlocksSignatures.d.ts.map +1 -1
  63. package/lib/chain/blocks/verifyBlocksSignatures.js +10 -5
  64. package/lib/chain/blocks/verifyBlocksSignatures.js.map +1 -1
  65. package/lib/chain/blocks/verifyPayloadsDataAvailability.d.ts +3 -3
  66. package/lib/chain/blocks/verifyPayloadsDataAvailability.d.ts.map +1 -1
  67. package/lib/chain/blocks/verifyPayloadsDataAvailability.js +11 -6
  68. package/lib/chain/blocks/verifyPayloadsDataAvailability.js.map +1 -1
  69. package/lib/chain/blocks/writeBlockInputToDb.d.ts +0 -2
  70. package/lib/chain/blocks/writeBlockInputToDb.d.ts.map +1 -1
  71. package/lib/chain/blocks/writeBlockInputToDb.js +6 -24
  72. package/lib/chain/blocks/writeBlockInputToDb.js.map +1 -1
  73. package/lib/chain/bls/interface.d.ts +2 -0
  74. package/lib/chain/bls/interface.d.ts.map +1 -1
  75. package/lib/chain/bls/multithread/index.d.ts +1 -1
  76. package/lib/chain/bls/multithread/index.d.ts.map +1 -1
  77. package/lib/chain/bls/multithread/index.js +50 -22
  78. package/lib/chain/bls/multithread/index.js.map +1 -1
  79. package/lib/chain/bls/multithread/types.d.ts +1 -1
  80. package/lib/chain/bls/multithread/types.d.ts.map +1 -1
  81. package/lib/chain/bls/multithread/worker.js +1 -1
  82. package/lib/chain/bls/multithread/worker.js.map +1 -1
  83. package/lib/chain/bls/singleThread.js +1 -1
  84. package/lib/chain/bls/singleThread.js.map +1 -1
  85. package/lib/chain/bls/utils.js +1 -1
  86. package/lib/chain/bls/utils.js.map +1 -1
  87. package/lib/chain/chain.d.ts +25 -4
  88. package/lib/chain/chain.d.ts.map +1 -1
  89. package/lib/chain/chain.js +120 -39
  90. package/lib/chain/chain.js.map +1 -1
  91. package/lib/chain/emitter.d.ts +7 -7
  92. package/lib/chain/emitter.d.ts.map +1 -1
  93. package/lib/chain/emitter.js +5 -5
  94. package/lib/chain/emitter.js.map +1 -1
  95. package/lib/chain/errors/blockError.d.ts +1 -1
  96. package/lib/chain/errors/blockError.d.ts.map +1 -1
  97. package/lib/chain/errors/blockError.js +1 -1
  98. package/lib/chain/errors/blockError.js.map +1 -1
  99. package/lib/chain/errors/executionPayloadEnvelope.d.ts +7 -0
  100. package/lib/chain/errors/executionPayloadEnvelope.d.ts.map +1 -1
  101. package/lib/chain/errors/executionPayloadEnvelope.js +1 -0
  102. package/lib/chain/errors/executionPayloadEnvelope.js.map +1 -1
  103. package/lib/chain/errors/index.d.ts +0 -1
  104. package/lib/chain/errors/index.d.ts.map +1 -1
  105. package/lib/chain/errors/index.js +0 -1
  106. package/lib/chain/errors/index.js.map +1 -1
  107. package/lib/chain/forkChoice/index.d.ts +11 -1
  108. package/lib/chain/forkChoice/index.d.ts.map +1 -1
  109. package/lib/chain/forkChoice/index.js +11 -0
  110. package/lib/chain/forkChoice/index.js.map +1 -1
  111. package/lib/chain/forkChoiceExecutionEngine.d.ts +51 -0
  112. package/lib/chain/forkChoiceExecutionEngine.d.ts.map +1 -0
  113. package/lib/chain/forkChoiceExecutionEngine.js +117 -0
  114. package/lib/chain/forkChoiceExecutionEngine.js.map +1 -0
  115. package/lib/chain/interface.d.ts +9 -7
  116. package/lib/chain/interface.d.ts.map +1 -1
  117. package/lib/chain/interface.js.map +1 -1
  118. package/lib/chain/opPools/aggregatedAttestationPool.d.ts +17 -4
  119. package/lib/chain/opPools/aggregatedAttestationPool.d.ts.map +1 -1
  120. package/lib/chain/opPools/aggregatedAttestationPool.js +199 -46
  121. package/lib/chain/opPools/aggregatedAttestationPool.js.map +1 -1
  122. package/lib/chain/opPools/attestationPool.d.ts +1 -1
  123. package/lib/chain/opPools/attestationPool.d.ts.map +1 -1
  124. package/lib/chain/opPools/attestationPool.js +15 -4
  125. package/lib/chain/opPools/attestationPool.js.map +1 -1
  126. package/lib/chain/opPools/index.d.ts +1 -0
  127. package/lib/chain/opPools/index.d.ts.map +1 -1
  128. package/lib/chain/opPools/index.js +1 -0
  129. package/lib/chain/opPools/index.js.map +1 -1
  130. package/lib/chain/opPools/payloadAttestationPool.d.ts.map +1 -1
  131. package/lib/chain/opPools/payloadAttestationPool.js +17 -7
  132. package/lib/chain/opPools/payloadAttestationPool.js.map +1 -1
  133. package/lib/chain/opPools/singleAttestationPool.d.ts +77 -0
  134. package/lib/chain/opPools/singleAttestationPool.d.ts.map +1 -0
  135. package/lib/chain/opPools/singleAttestationPool.js +209 -0
  136. package/lib/chain/opPools/singleAttestationPool.js.map +1 -0
  137. package/lib/chain/opPools/syncCommitteeMessagePool.d.ts.map +1 -1
  138. package/lib/chain/opPools/syncCommitteeMessagePool.js +9 -3
  139. package/lib/chain/opPools/syncCommitteeMessagePool.js.map +1 -1
  140. package/lib/chain/opPools/syncContributionAndProofPool.d.ts.map +1 -1
  141. package/lib/chain/opPools/syncContributionAndProofPool.js +11 -3
  142. package/lib/chain/opPools/syncContributionAndProofPool.js.map +1 -1
  143. package/lib/chain/opPools/utils.d.ts +1 -1
  144. package/lib/chain/opPools/utils.d.ts.map +1 -1
  145. package/lib/chain/opPools/utils.js +1 -1
  146. package/lib/chain/opPools/utils.js.map +1 -1
  147. package/lib/chain/options.d.ts +5 -3
  148. package/lib/chain/options.d.ts.map +1 -1
  149. package/lib/chain/options.js +0 -1
  150. package/lib/chain/options.js.map +1 -1
  151. package/lib/chain/produceBlock/produceBlockBody.d.ts +3 -2
  152. package/lib/chain/produceBlock/produceBlockBody.d.ts.map +1 -1
  153. package/lib/chain/produceBlock/produceBlockBody.js +3 -2
  154. package/lib/chain/produceBlock/produceBlockBody.js.map +1 -1
  155. package/lib/chain/proposerTracker.d.ts +31 -0
  156. package/lib/chain/proposerTracker.d.ts.map +1 -0
  157. package/lib/chain/proposerTracker.js +75 -0
  158. package/lib/chain/proposerTracker.js.map +1 -0
  159. package/lib/chain/regen/interface.d.ts +1 -1
  160. package/lib/chain/regen/interface.d.ts.map +1 -1
  161. package/lib/chain/regen/queued.d.ts +1 -1
  162. package/lib/chain/regen/queued.d.ts.map +1 -1
  163. package/lib/chain/regen/queued.js +5 -3
  164. package/lib/chain/regen/queued.js.map +1 -1
  165. package/lib/chain/seenCache/seenGossipBlockInput.d.ts +7 -14
  166. package/lib/chain/seenCache/seenGossipBlockInput.d.ts.map +1 -1
  167. package/lib/chain/seenCache/seenGossipBlockInput.js +6 -65
  168. package/lib/chain/seenCache/seenGossipBlockInput.js.map +1 -1
  169. package/lib/chain/validation/executionPayloadBid.js +13 -13
  170. package/lib/chain/validation/executionPayloadBid.js.map +1 -1
  171. package/lib/chain/validation/executionPayloadEnvelope.d.ts +6 -0
  172. package/lib/chain/validation/executionPayloadEnvelope.d.ts.map +1 -1
  173. package/lib/chain/validation/executionPayloadEnvelope.js +53 -0
  174. package/lib/chain/validation/executionPayloadEnvelope.js.map +1 -1
  175. package/lib/chain/validation/syncCommittee.d.ts.map +1 -1
  176. package/lib/chain/validation/syncCommittee.js +16 -10
  177. package/lib/chain/validation/syncCommittee.js.map +1 -1
  178. package/lib/chain/validation/syncCommitteeContributionAndProof.d.ts.map +1 -1
  179. package/lib/chain/validation/syncCommitteeContributionAndProof.js +11 -0
  180. package/lib/chain/validation/syncCommitteeContributionAndProof.js.map +1 -1
  181. package/lib/chain/validatorMonitor.d.ts +1 -2
  182. package/lib/chain/validatorMonitor.d.ts.map +1 -1
  183. package/lib/chain/validatorMonitor.js +0 -3
  184. package/lib/chain/validatorMonitor.js.map +1 -1
  185. package/lib/db/flatFileStore/flatFileStore.js +5 -5
  186. package/lib/db/flatFileStore/flatFileStore.js.map +1 -1
  187. package/lib/db/flatFileStore/slotIndex.d.ts.map +1 -1
  188. package/lib/db/flatFileStore/slotIndex.js +2 -2
  189. package/lib/db/flatFileStore/slotIndex.js.map +1 -1
  190. package/lib/db/repositories/blobSidecars.d.ts +0 -1
  191. package/lib/db/repositories/blobSidecars.d.ts.map +1 -1
  192. package/lib/db/repositories/blobSidecars.js +0 -1
  193. package/lib/db/repositories/blobSidecars.js.map +1 -1
  194. package/lib/execution/builder/apiClient.d.ts +14 -8
  195. package/lib/execution/builder/apiClient.d.ts.map +1 -1
  196. package/lib/execution/builder/apiClient.js +12 -10
  197. package/lib/execution/builder/apiClient.js.map +1 -1
  198. package/lib/execution/builder/http.d.ts +2 -0
  199. package/lib/execution/builder/http.d.ts.map +1 -1
  200. package/lib/execution/builder/http.js +2 -0
  201. package/lib/execution/builder/http.js.map +1 -1
  202. package/lib/execution/engine/http.d.ts +4 -6
  203. package/lib/execution/engine/http.d.ts.map +1 -1
  204. package/lib/execution/engine/http.js +8 -10
  205. package/lib/execution/engine/http.js.map +1 -1
  206. package/lib/execution/engine/index.d.ts +1 -1
  207. package/lib/execution/engine/index.d.ts.map +1 -1
  208. package/lib/execution/engine/index.js +1 -1
  209. package/lib/execution/engine/index.js.map +1 -1
  210. package/lib/execution/engine/interface.d.ts +18 -6
  211. package/lib/execution/engine/interface.d.ts.map +1 -1
  212. package/lib/execution/engine/interface.js.map +1 -1
  213. package/lib/execution/engine/jsonRpcTransport.d.ts +2 -4
  214. package/lib/execution/engine/jsonRpcTransport.d.ts.map +1 -1
  215. package/lib/execution/engine/jsonRpcTransport.js +2 -12
  216. package/lib/execution/engine/jsonRpcTransport.js.map +1 -1
  217. package/lib/execution/engine/mock.d.ts +0 -1
  218. package/lib/execution/engine/mock.d.ts.map +1 -1
  219. package/lib/execution/engine/mock.js +0 -4
  220. package/lib/execution/engine/mock.js.map +1 -1
  221. package/lib/execution/engine/restTransport.d.ts +2 -4
  222. package/lib/execution/engine/restTransport.d.ts.map +1 -1
  223. package/lib/execution/engine/restTransport.js +1 -15
  224. package/lib/execution/engine/restTransport.js.map +1 -1
  225. package/lib/execution/engine/sszTypes.d.ts +0 -9
  226. package/lib/execution/engine/sszTypes.d.ts.map +1 -1
  227. package/lib/execution/engine/sszTypes.js +0 -5
  228. package/lib/execution/engine/sszTypes.js.map +1 -1
  229. package/lib/execution/engine/transport.d.ts +1 -14
  230. package/lib/execution/engine/transport.d.ts.map +1 -1
  231. package/lib/execution/engine/types.d.ts +0 -8
  232. package/lib/execution/engine/types.d.ts.map +1 -1
  233. package/lib/execution/engine/types.js +2 -10
  234. package/lib/execution/engine/types.js.map +1 -1
  235. package/lib/execution/engine/utils.d.ts.map +1 -1
  236. package/lib/execution/engine/utils.js +3 -2
  237. package/lib/execution/engine/utils.js.map +1 -1
  238. package/lib/index.d.ts +1 -1
  239. package/lib/index.d.ts.map +1 -1
  240. package/lib/index.js +1 -1
  241. package/lib/index.js.map +1 -1
  242. package/lib/metrics/metrics/beacon.d.ts +0 -9
  243. package/lib/metrics/metrics/beacon.d.ts.map +1 -1
  244. package/lib/metrics/metrics/beacon.js +0 -30
  245. package/lib/metrics/metrics/beacon.js.map +1 -1
  246. package/lib/metrics/metrics/lodestar.d.ts +30 -8
  247. package/lib/metrics/metrics/lodestar.d.ts.map +1 -1
  248. package/lib/metrics/metrics/lodestar.js +79 -18
  249. package/lib/metrics/metrics/lodestar.js.map +1 -1
  250. package/lib/metrics/server/http.js +5 -5
  251. package/lib/metrics/server/http.js.map +1 -1
  252. package/lib/monitoring/service.js +1 -1
  253. package/lib/monitoring/service.js.map +1 -1
  254. package/lib/network/core/networkCore.d.ts +4 -1
  255. package/lib/network/core/networkCore.d.ts.map +1 -1
  256. package/lib/network/core/networkCore.js +7 -0
  257. package/lib/network/core/networkCore.js.map +1 -1
  258. package/lib/network/core/networkCoreWorker.js +2 -0
  259. package/lib/network/core/networkCoreWorker.js.map +1 -1
  260. package/lib/network/core/networkCoreWorkerHandler.d.ts +4 -1
  261. package/lib/network/core/networkCoreWorkerHandler.d.ts.map +1 -1
  262. package/lib/network/core/networkCoreWorkerHandler.js +6 -0
  263. package/lib/network/core/networkCoreWorkerHandler.js.map +1 -1
  264. package/lib/network/core/types.d.ts +6 -1
  265. package/lib/network/core/types.d.ts.map +1 -1
  266. package/lib/network/gossip/gossipsub.d.ts +1 -0
  267. package/lib/network/gossip/gossipsub.d.ts.map +1 -1
  268. package/lib/network/gossip/gossipsub.js +10 -0
  269. package/lib/network/gossip/gossipsub.js.map +1 -1
  270. package/lib/network/gossip/interface.d.ts +1 -8
  271. package/lib/network/gossip/interface.d.ts.map +1 -1
  272. package/lib/network/gossip/interface.js +0 -1
  273. package/lib/network/gossip/interface.js.map +1 -1
  274. package/lib/network/gossip/topic.d.ts +0 -16
  275. package/lib/network/gossip/topic.d.ts.map +1 -1
  276. package/lib/network/gossip/topic.js +0 -23
  277. package/lib/network/gossip/topic.js.map +1 -1
  278. package/lib/network/interface.d.ts +4 -5
  279. package/lib/network/interface.d.ts.map +1 -1
  280. package/lib/network/libp2p/index.d.ts.map +1 -1
  281. package/lib/network/libp2p/index.js +5 -1
  282. package/lib/network/libp2p/index.js.map +1 -1
  283. package/lib/network/network.d.ts +8 -7
  284. package/lib/network/network.d.ts.map +1 -1
  285. package/lib/network/network.js +53 -35
  286. package/lib/network/network.js.map +1 -1
  287. package/lib/network/options.d.ts +2 -0
  288. package/lib/network/options.d.ts.map +1 -1
  289. package/lib/network/options.js +2 -0
  290. package/lib/network/options.js.map +1 -1
  291. package/lib/network/peers/peerManager.d.ts +2 -1
  292. package/lib/network/peers/peerManager.d.ts.map +1 -1
  293. package/lib/network/peers/peerManager.js +28 -1
  294. package/lib/network/peers/peerManager.js.map +1 -1
  295. package/lib/network/peers/utils/assertPeerRelevance.d.ts +9 -1
  296. package/lib/network/peers/utils/assertPeerRelevance.d.ts.map +1 -1
  297. package/lib/network/peers/utils/assertPeerRelevance.js +32 -21
  298. package/lib/network/peers/utils/assertPeerRelevance.js.map +1 -1
  299. package/lib/network/peers/utils/prioritizePeers.d.ts +4 -1
  300. package/lib/network/peers/utils/prioritizePeers.d.ts.map +1 -1
  301. package/lib/network/peers/utils/prioritizePeers.js +8 -16
  302. package/lib/network/peers/utils/prioritizePeers.js.map +1 -1
  303. package/lib/network/peers/utils/subnetMap.d.ts +5 -2
  304. package/lib/network/peers/utils/subnetMap.d.ts.map +1 -1
  305. package/lib/network/peers/utils/subnetMap.js +6 -3
  306. package/lib/network/peers/utils/subnetMap.js.map +1 -1
  307. package/lib/network/processor/extractSlotRootFns.d.ts.map +1 -1
  308. package/lib/network/processor/extractSlotRootFns.js +1 -8
  309. package/lib/network/processor/extractSlotRootFns.js.map +1 -1
  310. package/lib/network/processor/gossipHandlers.d.ts.map +1 -1
  311. package/lib/network/processor/gossipHandlers.js +52 -131
  312. package/lib/network/processor/gossipHandlers.js.map +1 -1
  313. package/lib/network/processor/gossipQueues/index.d.ts.map +1 -1
  314. package/lib/network/processor/gossipQueues/index.js +0 -6
  315. package/lib/network/processor/gossipQueues/index.js.map +1 -1
  316. package/lib/network/processor/gossipValidatorFn.d.ts.map +1 -1
  317. package/lib/network/processor/gossipValidatorFn.js +1 -5
  318. package/lib/network/processor/gossipValidatorFn.js.map +1 -1
  319. package/lib/network/processor/index.d.ts +6 -0
  320. package/lib/network/processor/index.d.ts.map +1 -1
  321. package/lib/network/processor/index.js +29 -4
  322. package/lib/network/processor/index.js.map +1 -1
  323. package/lib/network/reqresp/ReqRespBeaconNode.d.ts.map +1 -1
  324. package/lib/network/reqresp/ReqRespBeaconNode.js +0 -3
  325. package/lib/network/reqresp/ReqRespBeaconNode.js.map +1 -1
  326. package/lib/network/reqresp/handlers/beaconBlocksByRange.d.ts +2 -2
  327. package/lib/network/reqresp/handlers/beaconBlocksByRange.d.ts.map +1 -1
  328. package/lib/network/reqresp/handlers/index.d.ts.map +1 -1
  329. package/lib/network/reqresp/handlers/index.js +1 -12
  330. package/lib/network/reqresp/handlers/index.js.map +1 -1
  331. package/lib/network/reqresp/protocols.d.ts +0 -2
  332. package/lib/network/reqresp/protocols.d.ts.map +1 -1
  333. package/lib/network/reqresp/protocols.js +0 -10
  334. package/lib/network/reqresp/protocols.js.map +1 -1
  335. package/lib/network/reqresp/rateLimit.d.ts.map +1 -1
  336. package/lib/network/reqresp/rateLimit.js +1 -17
  337. package/lib/network/reqresp/rateLimit.js.map +1 -1
  338. package/lib/network/reqresp/types.d.ts +2 -8
  339. package/lib/network/reqresp/types.d.ts.map +1 -1
  340. package/lib/network/reqresp/types.js +1 -7
  341. package/lib/network/reqresp/types.js.map +1 -1
  342. package/lib/network/subnets/attnetsService.d.ts +35 -5
  343. package/lib/network/subnets/attnetsService.d.ts.map +1 -1
  344. package/lib/network/subnets/attnetsService.js +84 -6
  345. package/lib/network/subnets/attnetsService.js.map +1 -1
  346. package/lib/network/subnets/interface.d.ts +7 -0
  347. package/lib/network/subnets/interface.d.ts.map +1 -1
  348. package/lib/network/subnets/interface.js.map +1 -1
  349. package/lib/node/nodejs.d.ts +3 -1
  350. package/lib/node/nodejs.d.ts.map +1 -1
  351. package/lib/node/nodejs.js +38 -20
  352. package/lib/node/nodejs.js.map +1 -1
  353. package/lib/node/options.d.ts +3 -1
  354. package/lib/node/options.d.ts.map +1 -1
  355. package/lib/node/options.js +4 -2
  356. package/lib/node/options.js.map +1 -1
  357. package/lib/sync/interface.d.ts.map +1 -1
  358. package/lib/sync/interface.js.map +1 -1
  359. package/lib/sync/range/batch.d.ts +2 -3
  360. package/lib/sync/range/batch.d.ts.map +1 -1
  361. package/lib/sync/range/batch.js +9 -22
  362. package/lib/sync/range/batch.js.map +1 -1
  363. package/lib/sync/range/chain.d.ts.map +1 -1
  364. package/lib/sync/range/chain.js +2 -15
  365. package/lib/sync/range/chain.js.map +1 -1
  366. package/lib/sync/sync.d.ts +15 -0
  367. package/lib/sync/sync.d.ts.map +1 -1
  368. package/lib/sync/sync.js +103 -25
  369. package/lib/sync/sync.js.map +1 -1
  370. package/lib/sync/unknownBlock.d.ts.map +1 -1
  371. package/lib/sync/unknownBlock.js +1 -7
  372. package/lib/sync/unknownBlock.js.map +1 -1
  373. package/lib/sync/utils/downloadByRange.d.ts +6 -34
  374. package/lib/sync/utils/downloadByRange.d.ts.map +1 -1
  375. package/lib/sync/utils/downloadByRange.js +24 -128
  376. package/lib/sync/utils/downloadByRange.js.map +1 -1
  377. package/lib/sync/utils/downloadByRoot.d.ts +2 -18
  378. package/lib/sync/utils/downloadByRoot.d.ts.map +1 -1
  379. package/lib/sync/utils/downloadByRoot.js +14 -99
  380. package/lib/sync/utils/downloadByRoot.js.map +1 -1
  381. package/lib/util/blobs.d.ts +1 -7
  382. package/lib/util/blobs.d.ts.map +1 -1
  383. package/lib/util/blobs.js +0 -19
  384. package/lib/util/blobs.js.map +1 -1
  385. package/lib/util/execution.d.ts +3 -4
  386. package/lib/util/execution.d.ts.map +1 -1
  387. package/lib/util/execution.js +1 -73
  388. package/lib/util/execution.js.map +1 -1
  389. package/lib/util/file.d.ts.map +1 -1
  390. package/lib/util/file.js +8 -9
  391. package/lib/util/file.js.map +1 -1
  392. package/lib/util/queue/itemQueue.js +1 -1
  393. package/lib/util/queue/itemQueue.js.map +1 -1
  394. package/lib/util/sszBytes.d.ts +5 -1
  395. package/lib/util/sszBytes.d.ts.map +1 -1
  396. package/lib/util/sszBytes.js +36 -19
  397. package/lib/util/sszBytes.js.map +1 -1
  398. package/lib/util/types.d.ts +0 -5
  399. package/lib/util/types.d.ts.map +1 -1
  400. package/lib/util/types.js +1 -2
  401. package/lib/util/types.js.map +1 -1
  402. package/package.json +16 -17
  403. package/src/api/impl/beacon/blocks/index.ts +59 -109
  404. package/src/api/impl/beacon/pool/index.ts +31 -1
  405. package/src/api/impl/beacon/state/utils.ts +1 -1
  406. package/src/api/impl/validator/index.ts +47 -30
  407. package/src/chain/GetBlobsTracker.ts +82 -52
  408. package/src/chain/archiveStore/archiveStore.ts +1 -0
  409. package/src/chain/blocks/blockInput/blockInput.ts +11 -343
  410. package/src/chain/blocks/blockInput/errors.ts +1 -2
  411. package/src/chain/blocks/blockInput/types.ts +2 -20
  412. package/src/chain/blocks/importBlock.ts +56 -72
  413. package/src/chain/blocks/importExecutionPayload.ts +55 -34
  414. package/src/chain/blocks/index.ts +11 -4
  415. package/src/chain/blocks/payloadEnvelopeProcessor.ts +35 -24
  416. package/src/chain/blocks/types.ts +5 -31
  417. package/src/chain/blocks/verifyBlock.ts +31 -16
  418. package/src/chain/blocks/verifyBlocksDataAvailability.ts +16 -2
  419. package/src/chain/blocks/verifyBlocksExecutionPayloads.ts +9 -6
  420. package/src/chain/blocks/verifyBlocksSanityChecks.ts +4 -1
  421. package/src/chain/blocks/verifyBlocksSignatures.ts +10 -5
  422. package/src/chain/blocks/verifyPayloadsDataAvailability.ts +14 -6
  423. package/src/chain/blocks/writeBlockInputToDb.ts +6 -29
  424. package/src/chain/bls/interface.ts +2 -0
  425. package/src/chain/bls/multithread/index.ts +48 -24
  426. package/src/chain/bls/multithread/types.ts +1 -1
  427. package/src/chain/bls/multithread/worker.ts +1 -5
  428. package/src/chain/bls/singleThread.ts +1 -1
  429. package/src/chain/bls/utils.ts +1 -1
  430. package/src/chain/chain.ts +136 -38
  431. package/src/chain/emitter.ts +8 -8
  432. package/src/chain/errors/blockError.ts +1 -1
  433. package/src/chain/errors/executionPayloadEnvelope.ts +8 -0
  434. package/src/chain/errors/index.ts +0 -1
  435. package/src/chain/forkChoice/index.ts +11 -0
  436. package/src/chain/forkChoiceExecutionEngine.ts +183 -0
  437. package/src/chain/interface.ts +9 -6
  438. package/src/chain/opPools/aggregatedAttestationPool.ts +246 -43
  439. package/src/chain/opPools/attestationPool.ts +16 -4
  440. package/src/chain/opPools/index.ts +1 -0
  441. package/src/chain/opPools/payloadAttestationPool.ts +18 -7
  442. package/src/chain/opPools/singleAttestationPool.ts +287 -0
  443. package/src/chain/opPools/syncCommitteeMessagePool.ts +10 -3
  444. package/src/chain/opPools/syncContributionAndProofPool.ts +13 -3
  445. package/src/chain/opPools/utils.ts +1 -1
  446. package/src/chain/options.ts +5 -4
  447. package/src/chain/produceBlock/produceBlockBody.ts +7 -3
  448. package/src/chain/proposerTracker.ts +94 -0
  449. package/src/chain/regen/interface.ts +1 -1
  450. package/src/chain/regen/queued.ts +6 -4
  451. package/src/chain/seenCache/seenGossipBlockInput.ts +9 -93
  452. package/src/chain/validation/executionPayloadBid.ts +14 -13
  453. package/src/chain/validation/executionPayloadEnvelope.ts +68 -1
  454. package/src/chain/validation/syncCommittee.ts +31 -15
  455. package/src/chain/validation/syncCommitteeContributionAndProof.ts +13 -0
  456. package/src/chain/validatorMonitor.ts +0 -6
  457. package/src/db/flatFileStore/flatFileStore.ts +7 -7
  458. package/src/db/flatFileStore/slotIndex.ts +4 -3
  459. package/src/db/repositories/blobSidecars.ts +0 -1
  460. package/src/execution/builder/apiClient.ts +16 -13
  461. package/src/execution/builder/http.ts +4 -0
  462. package/src/execution/engine/http.ts +19 -42
  463. package/src/execution/engine/index.ts +1 -1
  464. package/src/execution/engine/interface.ts +19 -10
  465. package/src/execution/engine/jsonRpcTransport.ts +10 -22
  466. package/src/execution/engine/mock.ts +0 -7
  467. package/src/execution/engine/restTransport.ts +3 -22
  468. package/src/execution/engine/sszTypes.ts +0 -9
  469. package/src/execution/engine/transport.ts +8 -17
  470. package/src/execution/engine/types.ts +3 -18
  471. package/src/execution/engine/utils.ts +4 -2
  472. package/src/index.ts +1 -1
  473. package/src/metrics/metrics/beacon.ts +0 -30
  474. package/src/metrics/metrics/lodestar.ts +80 -18
  475. package/src/metrics/server/http.ts +5 -5
  476. package/src/monitoring/service.ts +1 -1
  477. package/src/network/core/networkCore.ts +11 -1
  478. package/src/network/core/networkCoreWorker.ts +2 -0
  479. package/src/network/core/networkCoreWorkerHandler.ts +8 -1
  480. package/src/network/core/types.ts +6 -1
  481. package/src/network/gossip/gossipsub.ts +11 -0
  482. package/src/network/gossip/interface.ts +0 -5
  483. package/src/network/gossip/topic.ts +0 -25
  484. package/src/network/interface.ts +2 -5
  485. package/src/network/libp2p/index.ts +5 -1
  486. package/src/network/network.ts +55 -58
  487. package/src/network/options.ts +4 -0
  488. package/src/network/peers/peerManager.ts +28 -3
  489. package/src/network/peers/utils/assertPeerRelevance.ts +39 -23
  490. package/src/network/peers/utils/prioritizePeers.ts +14 -22
  491. package/src/network/peers/utils/subnetMap.ts +6 -3
  492. package/src/network/processor/extractSlotRootFns.ts +0 -9
  493. package/src/network/processor/gossipHandlers.ts +65 -164
  494. package/src/network/processor/gossipQueues/index.ts +0 -6
  495. package/src/network/processor/gossipValidatorFn.ts +0 -5
  496. package/src/network/processor/index.ts +25 -4
  497. package/src/network/reqresp/ReqRespBeaconNode.ts +0 -7
  498. package/src/network/reqresp/handlers/beaconBlocksByRange.ts +2 -2
  499. package/src/network/reqresp/handlers/index.ts +0 -17
  500. package/src/network/reqresp/protocols.ts +0 -12
  501. package/src/network/reqresp/rateLimit.ts +1 -17
  502. package/src/network/reqresp/types.ts +0 -13
  503. package/src/network/subnets/attnetsService.ts +94 -6
  504. package/src/network/subnets/interface.ts +7 -0
  505. package/src/node/nodejs.ts +40 -21
  506. package/src/node/options.ts +9 -6
  507. package/src/sync/interface.ts +1 -0
  508. package/src/sync/range/batch.ts +9 -21
  509. package/src/sync/range/chain.ts +2 -14
  510. package/src/sync/sync.ts +108 -26
  511. package/src/sync/unknownBlock.ts +1 -8
  512. package/src/sync/utils/downloadByRange.ts +31 -230
  513. package/src/sync/utils/downloadByRoot.ts +15 -142
  514. package/src/util/blobs.ts +0 -34
  515. package/src/util/execution.ts +8 -102
  516. package/src/util/file.ts +8 -9
  517. package/src/util/queue/itemQueue.ts +1 -1
  518. package/src/util/sszBytes.ts +42 -24
  519. package/src/util/types.ts +1 -8
  520. package/lib/chain/errors/blobSidecarError.d.ts +0 -108
  521. package/lib/chain/errors/blobSidecarError.d.ts.map +0 -1
  522. package/lib/chain/errors/blobSidecarError.js +0 -38
  523. package/lib/chain/errors/blobSidecarError.js.map +0 -1
  524. package/lib/chain/validation/blobSidecar.d.ts +0 -16
  525. package/lib/chain/validation/blobSidecar.d.ts.map +0 -1
  526. package/lib/chain/validation/blobSidecar.js +0 -276
  527. package/lib/chain/validation/blobSidecar.js.map +0 -1
  528. package/lib/network/reqresp/handlers/blobSidecarsByRange.d.ts +0 -9
  529. package/lib/network/reqresp/handlers/blobSidecarsByRange.d.ts.map +0 -1
  530. package/lib/network/reqresp/handlers/blobSidecarsByRange.js +0 -91
  531. package/lib/network/reqresp/handlers/blobSidecarsByRange.js.map +0 -1
  532. package/lib/network/reqresp/handlers/blobSidecarsByRoot.d.ts +0 -5
  533. package/lib/network/reqresp/handlers/blobSidecarsByRoot.d.ts.map +0 -1
  534. package/lib/network/reqresp/handlers/blobSidecarsByRoot.js +0 -46
  535. package/lib/network/reqresp/handlers/blobSidecarsByRoot.js.map +0 -1
  536. package/src/chain/errors/blobSidecarError.ts +0 -70
  537. package/src/chain/validation/blobSidecar.ts +0 -357
  538. package/src/network/reqresp/handlers/blobSidecarsByRange.ts +0 -133
  539. package/src/network/reqresp/handlers/blobSidecarsByRoot.ts +0 -69
@@ -147,49 +147,41 @@ function requestSubnetPeers(connectedPeers, activeAttnets, activeSyncnets, ourSa
147
147
  const dutiesByPeer = new Map();
148
148
  // attnets, do we need queries for more peers
149
149
  if (activeAttnets.length > 0) {
150
- /** Map of peers per subnet, peer may be in multiple arrays */
151
- const peersPerSubnet = new Map();
152
150
  for (const peer of connectedPeers) {
153
151
  const trueBitIndices = peer.attnetsTrueBitIndices;
154
152
  let dutyCount = 0;
155
153
  for (const { subnet } of activeAttnets) {
156
154
  if (trueBitIndices.includes(subnet)) {
157
155
  dutyCount += 1;
158
- peersPerSubnet.set(subnet, 1 + (peersPerSubnet.get(subnet) ?? 0));
159
156
  }
160
157
  }
161
158
  dutiesByPeer.set(peer, dutyCount);
162
159
  }
163
- for (const { subnet, toSlot } of activeAttnets) {
164
- const peersInSubnet = peersPerSubnet.get(subnet) ?? 0;
165
- metrics?.peerManager.peersPerActiveSubnet.observe({ type: SubnetType.attnets }, peersInSubnet);
166
- if (peersInSubnet < targetSubnetPeers) {
160
+ for (const { subnet, toSlot, peerCount } of activeAttnets) {
161
+ metrics?.peerManager.peersPerActiveSubnet.observe({ type: SubnetType.attnets }, peerCount);
162
+ if (peerCount < targetSubnetPeers) {
167
163
  // We need more peers
168
- attnetQueries.push({ subnet, toSlot, maxPeersToDiscover: targetSubnetPeers - peersInSubnet });
164
+ attnetQueries.push({ subnet, toSlot, maxPeersToDiscover: targetSubnetPeers - peerCount });
169
165
  }
170
166
  }
171
167
  }
172
168
  // syncnets, do we need queries for more peers
173
169
  if (activeSyncnets.length > 0) {
174
- /** Map of peers per subnet, peer may be in multiple arrays */
175
- const peersPerSubnet = new Map();
176
170
  for (const peer of connectedPeers) {
177
171
  const trueBitIndices = peer.syncnetsTrueBitIndices;
178
172
  let dutyCount = dutiesByPeer.get(peer) ?? 0;
179
173
  for (const { subnet } of activeSyncnets) {
180
174
  if (trueBitIndices.includes(subnet)) {
181
175
  dutyCount += 1;
182
- peersPerSubnet.set(subnet, 1 + (peersPerSubnet.get(subnet) ?? 0));
183
176
  }
184
177
  }
185
178
  dutiesByPeer.set(peer, dutyCount);
186
179
  }
187
- for (const { subnet, toSlot } of activeSyncnets) {
188
- const peersInSubnet = peersPerSubnet.get(subnet) ?? 0;
189
- metrics?.peerManager.peersPerActiveSubnet.observe({ type: SubnetType.syncnets }, peersInSubnet);
190
- if (peersInSubnet < targetSubnetPeers) {
180
+ for (const { subnet, toSlot, peerCount } of activeSyncnets) {
181
+ metrics?.peerManager.peersPerActiveSubnet.observe({ type: SubnetType.syncnets }, peerCount);
182
+ if (peerCount < targetSubnetPeers) {
191
183
  // We need more peers
192
- syncnetQueries.push({ subnet, toSlot, maxPeersToDiscover: targetSubnetPeers - peersInSubnet });
184
+ syncnetQueries.push({ subnet, toSlot, maxPeersToDiscover: targetSubnetPeers - peerCount });
193
185
  }
194
186
  }
195
187
  }
@@ -1 +1 @@
1
- {"version":3,"file":"prioritizePeers.js","sourceRoot":"","sources":["../../../../src/network/peers/utils/prioritizePeers.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"prioritizePeers.js","sourceRoot":"","sources":["../../../../src/network/peers/utils/prioritizePeers.ts"],"names":[],"mappings":"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"}
@@ -28,8 +28,11 @@ export declare class SubnetMap {
28
28
  getActive(currentSlot: Slot): SubnetID[];
29
29
  /** Return subnetIds with a `toSlot` equal greater than `currentSlot` */
30
30
  getActiveTtl(currentSlot: Slot): RequestedSubnet[];
31
- /** Return subnetIds with a `toSlot` less than `currentSlot`. Also deletes expired entries */
32
- getExpired(currentSlot: Slot): SubnetID[];
31
+ /**
32
+ * Return subnetIds with a `toSlot` less than `currentSlot`. Also deletes expired entries
33
+ * @param keep expired subnets for which it returns true are neither returned nor deleted
34
+ */
35
+ getExpired(currentSlot: Slot, keep?: (subnet: SubnetID) => boolean): SubnetID[];
33
36
  getAll(): SubnetID[];
34
37
  delete(subnet: SubnetID): void;
35
38
  }
@@ -1 +1 @@
1
- {"version":3,"file":"subnetMap.d.ts","sourceRoot":"","sources":["../../../../src/network/peers/utils/subnetMap.ts"],"names":[],"mappings":"AAAA,OAAO,EAAC,IAAI,EAAE,QAAQ,EAAC,MAAM,iBAAiB,CAAC;AAE/C,MAAM,MAAM,eAAe,GAAG;IAC5B,MAAM,EAAE,QAAQ,CAAC;IACjB;;;OAGG;IACH,MAAM,EAAE,IAAI,CAAC;CACd,CAAC;AAEF;;GAEG;AACH,qBAAa,SAAS;IACpB,wDAAwD;IACxD,OAAO,CAAC,OAAO,CAA6B;IAE5C,IAAI,IAAI,IAAI,MAAM,CAEjB;IAED,GAAG,CAAC,MAAM,EAAE,QAAQ,GAAG,OAAO,CAE7B;IAED;;QAEI;IACJ,OAAO,CAAC,eAAe,EAAE,eAAe,GAAG,IAAI,CAG9C;IAED;;OAEG;IACH,SAAS,CAAC,MAAM,EAAE,QAAQ,GAAG,IAAI,GAAG,SAAS,CAE5C;IAED,cAAc,CAAC,MAAM,EAAE,QAAQ,EAAE,IAAI,EAAE,IAAI,GAAG,OAAO,CAGpD;IAED,wEAAwE;IACxE,SAAS,CAAC,WAAW,EAAE,IAAI,GAAG,QAAQ,EAAE,CAQvC;IAED,wEAAwE;IACxE,YAAY,CAAC,WAAW,EAAE,IAAI,GAAG,eAAe,EAAE,CAQjD;IAED,6FAA6F;IAC7F,UAAU,CAAC,WAAW,EAAE,IAAI,GAAG,QAAQ,EAAE,CASxC;IAED,MAAM,IAAI,QAAQ,EAAE,CAEnB;IAED,MAAM,CAAC,MAAM,EAAE,QAAQ,GAAG,IAAI,CAE7B;CACF"}
1
+ {"version":3,"file":"subnetMap.d.ts","sourceRoot":"","sources":["../../../../src/network/peers/utils/subnetMap.ts"],"names":[],"mappings":"AAAA,OAAO,EAAC,IAAI,EAAE,QAAQ,EAAC,MAAM,iBAAiB,CAAC;AAE/C,MAAM,MAAM,eAAe,GAAG;IAC5B,MAAM,EAAE,QAAQ,CAAC;IACjB;;;OAGG;IACH,MAAM,EAAE,IAAI,CAAC;CACd,CAAC;AAEF;;GAEG;AACH,qBAAa,SAAS;IACpB,wDAAwD;IACxD,OAAO,CAAC,OAAO,CAA6B;IAE5C,IAAI,IAAI,IAAI,MAAM,CAEjB;IAED,GAAG,CAAC,MAAM,EAAE,QAAQ,GAAG,OAAO,CAE7B;IAED;;QAEI;IACJ,OAAO,CAAC,eAAe,EAAE,eAAe,GAAG,IAAI,CAG9C;IAED;;OAEG;IACH,SAAS,CAAC,MAAM,EAAE,QAAQ,GAAG,IAAI,GAAG,SAAS,CAE5C;IAED,cAAc,CAAC,MAAM,EAAE,QAAQ,EAAE,IAAI,EAAE,IAAI,GAAG,OAAO,CAGpD;IAED,wEAAwE;IACxE,SAAS,CAAC,WAAW,EAAE,IAAI,GAAG,QAAQ,EAAE,CAQvC;IAED,wEAAwE;IACxE,YAAY,CAAC,WAAW,EAAE,IAAI,GAAG,eAAe,EAAE,CAQjD;IAED;;;OAGG;IACH,UAAU,CAAC,WAAW,EAAE,IAAI,EAAE,IAAI,CAAC,EAAE,CAAC,MAAM,EAAE,QAAQ,KAAK,OAAO,GAAG,QAAQ,EAAE,CAS9E;IAED,MAAM,IAAI,QAAQ,EAAE,CAEnB;IAED,MAAM,CAAC,MAAM,EAAE,QAAQ,GAAG,IAAI,CAE7B;CACF"}
@@ -47,11 +47,14 @@ export class SubnetMap {
47
47
  }
48
48
  return subnets;
49
49
  }
50
- /** Return subnetIds with a `toSlot` less than `currentSlot`. Also deletes expired entries */
51
- getExpired(currentSlot) {
50
+ /**
51
+ * Return subnetIds with a `toSlot` less than `currentSlot`. Also deletes expired entries
52
+ * @param keep expired subnets for which it returns true are neither returned nor deleted
53
+ */
54
+ getExpired(currentSlot, keep) {
52
55
  const subnetIds = [];
53
56
  for (const [subnet, toSlot] of this.subnets.entries()) {
54
- if (toSlot < currentSlot) {
57
+ if (toSlot < currentSlot && keep?.(subnet) !== true) {
55
58
  subnetIds.push(subnet);
56
59
  this.subnets.delete(subnet);
57
60
  }
@@ -1 +1 @@
1
- {"version":3,"file":"subnetMap.js","sourceRoot":"","sources":["../../../../src/network/peers/utils/subnetMap.ts"],"names":[],"mappings":"AAWA;;GAEG;AACH,MAAM,OAAO,SAAS;IACpB,wDAAwD;IAChD,OAAO,GAAG,IAAI,GAAG,EAAkB,CAAC;IAE5C,IAAI,IAAI;QACN,OAAO,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC;IAC3B,CAAC;IAED,GAAG,CAAC,MAAgB;QAClB,OAAO,IAAI,CAAC,OAAO,CAAC,GAAG,CAAC,MAAM,CAAC,CAAC;IAClC,CAAC;IAED;;QAEI;IACJ,OAAO,CAAC,eAAgC;QACtC,MAAM,EAAC,MAAM,EAAE,MAAM,EAAC,GAAG,eAAe,CAAC;QACzC,IAAI,CAAC,OAAO,CAAC,GAAG,CAAC,MAAM,EAAE,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,OAAO,CAAC,GAAG,CAAC,MAAM,CAAC,IAAI,CAAC,EAAE,MAAM,CAAC,CAAC,CAAC;IAC5E,CAAC;IAED;;OAEG;IACH,SAAS,CAAC,MAAgB;QACxB,OAAO,IAAI,CAAC,OAAO,CAAC,GAAG,CAAC,MAAM,CAAC,CAAC;IAClC,CAAC;IAED,cAAc,CAAC,MAAgB,EAAE,IAAU;QACzC,MAAM,MAAM,GAAG,IAAI,CAAC,OAAO,CAAC,GAAG,CAAC,MAAM,CAAC,CAAC;QACxC,OAAO,MAAM,KAAK,SAAS,IAAI,MAAM,IAAI,IAAI,CAAC,CAAC,aAAa;IAC9D,CAAC;IAED,wEAAwE;IACxE,SAAS,CAAC,WAAiB;QACzB,MAAM,SAAS,GAAe,EAAE,CAAC;QACjC,KAAK,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,IAAI,IAAI,CAAC,OAAO,CAAC,OAAO,EAAE,EAAE,CAAC;YACtD,IAAI,MAAM,IAAI,WAAW,EAAE,CAAC;gBAC1B,SAAS,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC;YACzB,CAAC;QACH,CAAC;QACD,OAAO,SAAS,CAAC;IACnB,CAAC;IAED,wEAAwE;IACxE,YAAY,CAAC,WAAiB;QAC5B,MAAM,OAAO,GAAsB,EAAE,CAAC;QACtC,KAAK,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,IAAI,IAAI,CAAC,OAAO,CAAC,OAAO,EAAE,EAAE,CAAC;YACtD,IAAI,MAAM,IAAI,WAAW,EAAE,CAAC;gBAC1B,OAAO,CAAC,IAAI,CAAC,EAAC,MAAM,EAAE,MAAM,EAAC,CAAC,CAAC;YACjC,CAAC;QACH,CAAC;QACD,OAAO,OAAO,CAAC;IACjB,CAAC;IAED,6FAA6F;IAC7F,UAAU,CAAC,WAAiB;QAC1B,MAAM,SAAS,GAAe,EAAE,CAAC;QACjC,KAAK,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,IAAI,IAAI,CAAC,OAAO,CAAC,OAAO,EAAE,EAAE,CAAC;YACtD,IAAI,MAAM,GAAG,WAAW,EAAE,CAAC;gBACzB,SAAS,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC;gBACvB,IAAI,CAAC,OAAO,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC;YAC9B,CAAC;QACH,CAAC;QACD,OAAO,SAAS,CAAC;IACnB,CAAC;IAED,MAAM;QACJ,OAAO,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,OAAO,CAAC,IAAI,EAAE,CAAC,CAAC;IACzC,CAAC;IAED,MAAM,CAAC,MAAgB;QACrB,IAAI,CAAC,OAAO,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC;IAC9B,CAAC;CACF"}
1
+ {"version":3,"file":"subnetMap.js","sourceRoot":"","sources":["../../../../src/network/peers/utils/subnetMap.ts"],"names":[],"mappings":"AAWA;;GAEG;AACH,MAAM,OAAO,SAAS;IACpB,wDAAwD;IAChD,OAAO,GAAG,IAAI,GAAG,EAAkB,CAAC;IAE5C,IAAI,IAAI;QACN,OAAO,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC;IAC3B,CAAC;IAED,GAAG,CAAC,MAAgB;QAClB,OAAO,IAAI,CAAC,OAAO,CAAC,GAAG,CAAC,MAAM,CAAC,CAAC;IAClC,CAAC;IAED;;QAEI;IACJ,OAAO,CAAC,eAAgC;QACtC,MAAM,EAAC,MAAM,EAAE,MAAM,EAAC,GAAG,eAAe,CAAC;QACzC,IAAI,CAAC,OAAO,CAAC,GAAG,CAAC,MAAM,EAAE,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,OAAO,CAAC,GAAG,CAAC,MAAM,CAAC,IAAI,CAAC,EAAE,MAAM,CAAC,CAAC,CAAC;IAC5E,CAAC;IAED;;OAEG;IACH,SAAS,CAAC,MAAgB;QACxB,OAAO,IAAI,CAAC,OAAO,CAAC,GAAG,CAAC,MAAM,CAAC,CAAC;IAClC,CAAC;IAED,cAAc,CAAC,MAAgB,EAAE,IAAU;QACzC,MAAM,MAAM,GAAG,IAAI,CAAC,OAAO,CAAC,GAAG,CAAC,MAAM,CAAC,CAAC;QACxC,OAAO,MAAM,KAAK,SAAS,IAAI,MAAM,IAAI,IAAI,CAAC,CAAC,aAAa;IAC9D,CAAC;IAED,wEAAwE;IACxE,SAAS,CAAC,WAAiB;QACzB,MAAM,SAAS,GAAe,EAAE,CAAC;QACjC,KAAK,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,IAAI,IAAI,CAAC,OAAO,CAAC,OAAO,EAAE,EAAE,CAAC;YACtD,IAAI,MAAM,IAAI,WAAW,EAAE,CAAC;gBAC1B,SAAS,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC;YACzB,CAAC;QACH,CAAC;QACD,OAAO,SAAS,CAAC;IACnB,CAAC;IAED,wEAAwE;IACxE,YAAY,CAAC,WAAiB;QAC5B,MAAM,OAAO,GAAsB,EAAE,CAAC;QACtC,KAAK,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,IAAI,IAAI,CAAC,OAAO,CAAC,OAAO,EAAE,EAAE,CAAC;YACtD,IAAI,MAAM,IAAI,WAAW,EAAE,CAAC;gBAC1B,OAAO,CAAC,IAAI,CAAC,EAAC,MAAM,EAAE,MAAM,EAAC,CAAC,CAAC;YACjC,CAAC;QACH,CAAC;QACD,OAAO,OAAO,CAAC;IACjB,CAAC;IAED;;;OAGG;IACH,UAAU,CAAC,WAAiB,EAAE,IAAoC;QAChE,MAAM,SAAS,GAAe,EAAE,CAAC;QACjC,KAAK,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,IAAI,IAAI,CAAC,OAAO,CAAC,OAAO,EAAE,EAAE,CAAC;YACtD,IAAI,MAAM,GAAG,WAAW,IAAI,IAAI,EAAE,CAAC,MAAM,CAAC,KAAK,IAAI,EAAE,CAAC;gBACpD,SAAS,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC;gBACvB,IAAI,CAAC,OAAO,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC;YAC9B,CAAC;QACH,CAAC;QACD,OAAO,SAAS,CAAC;IACnB,CAAC;IAED,MAAM;QACJ,OAAO,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,OAAO,CAAC,IAAI,EAAE,CAAC,CAAC;IACzC,CAAC;IAED,MAAM,CAAC,MAAgB;QACrB,IAAI,CAAC,OAAO,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC;IAC9B,CAAC;CACF"}
@@ -1 +1 @@
1
- {"version":3,"file":"extractSlotRootFns.d.ts","sourceRoot":"","sources":["../../../src/network/processor/extractSlotRootFns.ts"],"names":[],"mappings":"AAiBA,OAAO,EAAC,kBAAkB,EAAC,MAAM,YAAY,CAAC;AAE9C;;;GAGG;AACH,wBAAgB,6BAA6B,IAAI,kBAAkB,CA+ElE"}
1
+ {"version":3,"file":"extractSlotRootFns.d.ts","sourceRoot":"","sources":["../../../src/network/processor/extractSlotRootFns.ts"],"names":[],"mappings":"AAgBA,OAAO,EAAC,kBAAkB,EAAC,MAAM,YAAY,CAAC;AAE9C;;;GAGG;AACH,wBAAgB,6BAA6B,IAAI,kBAAkB,CAuElE"}
@@ -1,5 +1,5 @@
1
1
  import { ForkSeq } from "@lodestar/params";
2
- import { getBeaconBlockRootFromDataColumnSidecarSerialized, getBlockRootFromBeaconAttestationSerialized, getBlockRootFromPayloadAttestationMessageSerialized, getBlockRootFromSignedAggregateAndProofSerialized, getSlotFromBeaconAttestationSerialized, getSlotFromBlobSidecarSerialized, getSlotFromDataColumnSidecarSerialized, getSlotFromExecutionPayloadEnvelopeSerialized, getSlotFromPayloadAttestationMessageSerialized, getSlotFromSignedAggregateAndProofSerialized, getSlotFromSignedBeaconBlockSerialized, getSlotFromSignedExecutionPayloadBidSerialized, } from "../../util/sszBytes.js";
2
+ import { getBeaconBlockRootFromDataColumnSidecarSerialized, getBlockRootFromBeaconAttestationSerialized, getBlockRootFromPayloadAttestationMessageSerialized, getBlockRootFromSignedAggregateAndProofSerialized, getSlotFromBeaconAttestationSerialized, getSlotFromDataColumnSidecarSerialized, getSlotFromExecutionPayloadEnvelopeSerialized, getSlotFromPayloadAttestationMessageSerialized, getSlotFromSignedAggregateAndProofSerialized, getSlotFromSignedBeaconBlockSerialized, getSlotFromSignedExecutionPayloadBidSerialized, } from "../../util/sszBytes.js";
3
3
  import { GossipType } from "../gossip/index.js";
4
4
  /**
5
5
  * Extract the slot and block root of a gossip message form serialized data.
@@ -30,13 +30,6 @@ export function createExtractBlockSlotRootFns() {
30
30
  }
31
31
  return { slot };
32
32
  },
33
- [GossipType.blob_sidecar]: (data) => {
34
- const slot = getSlotFromBlobSidecarSerialized(data);
35
- if (slot === null) {
36
- return null;
37
- }
38
- return { slot };
39
- },
40
33
  [GossipType.data_column_sidecar]: (data, fork) => {
41
34
  const slot = getSlotFromDataColumnSidecarSerialized(data, fork);
42
35
  if (slot === null) {
@@ -1 +1 @@
1
- {"version":3,"file":"extractSlotRootFns.js","sourceRoot":"","sources":["../../../src/network/processor/extractSlotRootFns.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"extractSlotRootFns.js","sourceRoot":"","sources":["../../../src/network/processor/extractSlotRootFns.ts"],"names":[],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"gossipHandlers.d.ts","sourceRoot":"","sources":["../../../src/network/processor/gossipHandlers.ts"],"names":[],"mappings":"AACA,OAAO,EAAC,YAAY,EAAkB,MAAM,kBAAkB,CAAC;AAc/D,OAAO,EACL,IAAI,EAIJ,IAAI,EAUL,MAAM,iBAAiB,CAAC;AACzB,OAAO,EAAW,MAAM,EAAmB,MAAM,iBAAiB,CAAC;AA8BnE,OAAO,EAAC,YAAY,EAAC,MAAM,0BAA0B,CAAC;AA6BtD,OAAO,EAAC,OAAO,EAAC,MAAM,wBAAwB,CAAC;AAI/C,OAAO,EAAC,YAAY,EAAC,MAAM,kBAAkB,CAAC;AAC9C,OAAO,EAAC,eAAe,EAAC,MAAM,cAAc,CAAC;AAC7C,OAAO,EAGL,cAAc,EAGf,MAAM,wBAAwB,CAAC;AAEhC,OAAO,EAAC,QAAQ,EAAC,MAAM,iBAAiB,CAAC;AAEzC,OAAO,EAAC,iBAAiB,EAAC,MAAM,wBAAwB,CAAC;AAEzD;;GAEG;AACH,MAAM,MAAM,iBAAiB,GAAG;IAC9B,wDAAwD;IACxD,sCAAsC,CAAC,EAAE,OAAO,CAAC;CAClD,CAAC;AAEF,MAAM,MAAM,mBAAmB,GAAG;IAChC,KAAK,EAAE,YAAY,CAAC;IACpB,MAAM,EAAE,YAAY,CAAC;IACrB,MAAM,EAAE,MAAM,CAAC;IACf,OAAO,EAAE,OAAO,GAAG,IAAI,CAAC;IACxB,MAAM,EAAE,eAAe,CAAC;IACxB,iBAAiB,EAAE,iBAAiB,CAAC;IACrC,IAAI,EAAE,YAAY,CAAC;CACpB,CAAC;AAKF;;;;;;;;;;;;;GAaG;AACH,wBAAgB,iBAAiB,CAAC,OAAO,EAAE,mBAAmB,EAAE,OAAO,EAAE,iBAAiB,GAAG,cAAc,CAE1G;AAigDD;;GAEG;AACH,wBAAsB,gCAAgC,CAAC,CAAC,EACtD,EAAE,EAAE,MAAM,OAAO,CAAC,CAAC,CAAC,EACpB,OAAO,EAAE,QAAQ,EACjB,KAAK,EAAE,YAAY,EACnB,IAAI,EAAE,IAAI,EACV,SAAS,EAAE,IAAI,GACd,OAAO,CAAC,CAAC,CAAC,CA+BZ"}
1
+ {"version":3,"file":"gossipHandlers.d.ts","sourceRoot":"","sources":["../../../src/network/processor/gossipHandlers.ts"],"names":[],"mappings":"AACA,OAAO,EAAC,YAAY,EAAkB,MAAM,kBAAkB,CAAC;AAc/D,OAAO,EACL,IAAI,EAIJ,IAAI,EASL,MAAM,iBAAiB,CAAC;AACzB,OAAO,EAAW,MAAM,EAAmB,MAAM,iBAAiB,CAAC;AA4BnE,OAAO,EAAC,YAAY,EAAC,MAAM,0BAA0B,CAAC;AA+BtD,OAAO,EAAC,OAAO,EAAC,MAAM,wBAAwB,CAAC;AAG/C,OAAO,EAAC,YAAY,EAAC,MAAM,kBAAkB,CAAC;AAC9C,OAAO,EAAC,eAAe,EAAC,MAAM,cAAc,CAAC;AAC7C,OAAO,EAGL,cAAc,EAGf,MAAM,wBAAwB,CAAC;AAEhC,OAAO,EAAC,QAAQ,EAAC,MAAM,iBAAiB,CAAC;AAEzC,OAAO,EAAC,iBAAiB,EAAC,MAAM,wBAAwB,CAAC;AAEzD;;GAEG;AACH,MAAM,MAAM,iBAAiB,GAAG;IAC9B,wDAAwD;IACxD,sCAAsC,CAAC,EAAE,OAAO,CAAC;CAClD,CAAC;AAEF,MAAM,MAAM,mBAAmB,GAAG;IAChC,KAAK,EAAE,YAAY,CAAC;IACpB,MAAM,EAAE,YAAY,CAAC;IACrB,MAAM,EAAE,MAAM,CAAC;IACf,OAAO,EAAE,OAAO,GAAG,IAAI,CAAC;IACxB,MAAM,EAAE,eAAe,CAAC;IACxB,iBAAiB,EAAE,iBAAiB,CAAC;IACrC,IAAI,EAAE,YAAY,CAAC;CACpB,CAAC;AAKF;;;;;;;;;;;;;GAaG;AACH,wBAAgB,iBAAiB,CAAC,OAAO,EAAE,mBAAmB,EAAE,OAAO,EAAE,iBAAiB,GAAG,cAAc,CAE1G;AAg6CD;;GAEG;AACH,wBAAsB,gCAAgC,CAAC,CAAC,EACtD,EAAE,EAAE,MAAM,OAAO,CAAC,CAAC,CAAC,EACpB,OAAO,EAAE,QAAQ,EACjB,KAAK,EAAE,YAAY,EACnB,IAAI,EAAE,IAAI,EACV,SAAS,EAAE,IAAI,GACd,OAAO,CAAC,CAAC,CAAC,CA+BZ"}
@@ -7,13 +7,12 @@ 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, InclusionListSource } 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";
17
16
  import { validateGossipInclusionList } from "../../chain/validation/inclusionList.js";
18
17
  import { toElectraSingleAttestation, validateGossipAggregateAndProof, validateGossipAttestationsSameAttData, validateGossipAttesterSlashing, validateGossipBlock, validateGossipBlsToExecutionChange, validateGossipProposerSlashing, validateGossipSyncCommittee, validateGossipVoluntaryExit, validateSyncCommitteeGossipContributionAndProof, verifyBlockProposerSignature, } from "../../chain/validation/index.js";
19
18
  import { validateLightClientFinalityUpdate } from "../../chain/validation/lightClientFinalityUpdate.js";
@@ -21,7 +20,6 @@ import { validateLightClientOptimisticUpdate } from "../../chain/validation/ligh
21
20
  import { validateGossipPayloadAttestationMessage } from "../../chain/validation/payloadAttestationMessage.js";
22
21
  import { validateGossipProposerPreferences } from "../../chain/validation/proposerPreferences.js";
23
22
  import { OpSource } from "../../chain/validatorMonitor.js";
24
- import { kzgCommitmentToVersionedHash } from "../../util/blobs.js";
25
23
  import { getBlobKzgCommitments, getDataColumnSidecarSlot } from "../../util/dataColumns.js";
26
24
  import { callInNextEventLoop } from "../../util/eventLoop.js";
27
25
  import { GossipType, } from "../gossip/interface.js";
@@ -180,74 +178,6 @@ function getSequentialHandlers(modules, options) {
180
178
  }
181
179
  }
182
180
  }
183
- async function validateBeaconBlob(blobSidecar, subnet, peerIdStr, seenTimestampSec) {
184
- const blobBlockHeader = blobSidecar.signedBlockHeader.message;
185
- const slot = blobBlockHeader.slot;
186
- const fork = config.getForkName(slot);
187
- const blockRootHex = toRootHex(ssz.phase0.BeaconBlockHeader.hashTreeRoot(blobBlockHeader));
188
- const delaySec = chain.clock.secFromSlot(slot, seenTimestampSec);
189
- const recvToValLatency = Date.now() / 1000 - seenTimestampSec;
190
- try {
191
- await validateGossipBlobSidecar(fork, chain, blobSidecar, subnet);
192
- const blockInput = chain.seenBlockInputCache.getByBlob({
193
- blockRootHex,
194
- blobSidecar,
195
- source: BlockInputSource.gossip,
196
- seenTimestampSec,
197
- peerIdStr,
198
- });
199
- const recvToValidation = Date.now() / 1000 - seenTimestampSec;
200
- const validationTime = recvToValidation - recvToValLatency;
201
- metrics?.gossipBlob.recvToValidation.observe(recvToValidation);
202
- metrics?.gossipBlob.validationTime.observe(validationTime);
203
- if (chain.emitter.listenerCount(routes.events.EventType.blobSidecar)) {
204
- let versionedHash;
205
- if (blockInput.hasBlock()) {
206
- // if block hasn't arrived yet then this will throw and need to calculate the versionedHash as a 1-off
207
- versionedHash = blockInput.getVersionedHashes()[blobSidecar.index];
208
- }
209
- else {
210
- versionedHash = kzgCommitmentToVersionedHash(blobSidecar.kzgCommitment);
211
- }
212
- chain.emitter.emit(routes.events.EventType.blobSidecar, {
213
- blockRoot: blockRootHex,
214
- slot,
215
- index: blobSidecar.index,
216
- kzgCommitment: toHex(blobSidecar.kzgCommitment),
217
- versionedHash: toHex(versionedHash),
218
- });
219
- }
220
- logger.debug("Received gossip blob", {
221
- ...blockInput.getLogMeta(),
222
- currentSlot: chain.clock.currentSlot,
223
- peerId: peerIdStr,
224
- delaySec,
225
- subnet,
226
- recvToValLatency,
227
- recvToValidation,
228
- validationTime,
229
- });
230
- return blockInput;
231
- }
232
- catch (e) {
233
- if (e instanceof BlobSidecarGossipError) {
234
- // Don't trigger this yet if full block and blobs haven't arrived yet
235
- if (e.type.code === BlobSidecarErrorCode.PARENT_UNKNOWN) {
236
- logger.debug("Gossip blob has error", { slot, root: blockRootHex, code: e.type.code });
237
- // no need to trigger `unknownBlockParent` event here, as we already did it in `validateBeaconBlock()`
238
- //
239
- // TODO(fulu): is this note above correct? Could have random blob that we see that could trigger
240
- // unknownBlockSync. And duplicate addition of a block will be deduplicated by the
241
- // BlockInputSync event handler. Check this!!
242
- // events.emit(NetworkEvent.unknownBlockParent, {blockInput, peer: peerIdStr});
243
- }
244
- if (e.action === GossipAction.REJECT) {
245
- chain.persistInvalidSszValue(ssz.deneb.BlobSidecar, blobSidecar, `gossip_reject_slot_${slot}_index_${blobSidecar.index}`);
246
- }
247
- }
248
- throw e;
249
- }
250
- }
251
181
  async function validateBeaconDataColumn(dataColumnSidecar, _dataColumnBytes, gossipSubnet, peerIdStr, seenTimestampSec) {
252
182
  metrics?.peerDas.dataColumnSidecarProcessingRequests.inc();
253
183
  const dataColumnBlockHeader = dataColumnSidecar.signedBlockHeader.message;
@@ -470,8 +400,6 @@ function getSequentialHandlers(modules, options) {
470
400
  ignoreIfKnown: true,
471
401
  // proposer signature already checked in validateBeaconBlock()
472
402
  validProposerSignature: true,
473
- // blobSidecars already checked in validateGossipBlobSidecars()
474
- validBlobSidecars: BlobSidecarValidation.Individual,
475
403
  // It's critical to keep a good number of mesh peers.
476
404
  // To do that, the Gossip Job Wait Time should be consistently <3s to avoid the behavior penalties in gossip
477
405
  // Gossip Job Wait Time depends on the BLS Job Wait Time
@@ -495,10 +423,8 @@ function getSequentialHandlers(modules, options) {
495
423
  }
496
424
  // Immediately attempt fetch of data columns from execution engine as the bid contains kzg commitments
497
425
  // which is all the information we need so there is no reason to delay until execution payload arrives
498
- // TODO GLOAS: If we want EL retries after this initial attempt, add an explicit retry policy here
499
- // (for example later in the slot). Do not couple retries to incoming gossip columns.
500
- // Columns fetched here feed payloadInput.addColumn, which resolves waitForAllData for any
501
- // 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.
502
428
  chain.getBlobsTracker.triggerGetBlobs(payloadInput);
503
429
  }
504
430
  })
@@ -507,11 +433,10 @@ function getSequentialHandlers(modules, options) {
507
433
  let logLevel;
508
434
  if (e instanceof BlockError) {
509
435
  switch (e.type.code) {
510
- case BlockErrorCode.DATA_UNAVAILABLE: {
511
- // 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
512
438
  logLevel = LogLevel.debug;
513
439
  break;
514
- }
515
440
  // ALREADY_KNOWN should not happen with ignoreIfKnown=true above
516
441
  // PARENT_BLOCK_UNKNOWN should not happen, we handled this in validateBeaconBlock() function above
517
442
  case BlockErrorCode.ALREADY_KNOWN:
@@ -585,44 +510,6 @@ function getSequentialHandlers(modules, options) {
585
510
  throw e;
586
511
  }
587
512
  },
588
- [GossipType.blob_sidecar]: async ({ gossipData, topic, peerIdStr, seenTimestampSec, }) => {
589
- const { serializedData } = gossipData;
590
- const blobSidecar = sszDeserialize(topic, serializedData);
591
- const blobSlot = blobSidecar.signedBlockHeader.message.slot;
592
- const index = blobSidecar.index;
593
- if (config.getForkSeq(blobSlot) < ForkSeq.deneb) {
594
- throw new GossipActionError(GossipAction.REJECT, { code: "PRE_DENEB_BLOCK" });
595
- }
596
- const blockInput = await validateBeaconBlob(blobSidecar, topic.subnet, peerIdStr, seenTimestampSec);
597
- // Handler - deferred to next event loop so the validation result propagates first
598
- callInNextEventLoop(() => {
599
- try {
600
- chain.serializedCache.set(blobSidecar, serializedData);
601
- if (!blockInput.hasBlockAndAllData()) {
602
- const cutoffTimeMs = getCutoffTimeMs(chain, blobSlot, BLOCK_AVAILABILITY_CUTOFF_MS);
603
- chain.logger.debug("Received gossip blob, waiting for full data availability", {
604
- msToWait: cutoffTimeMs,
605
- blobIndex: index,
606
- ...blockInput.getLogMeta(),
607
- });
608
- blockInput.waitForAllData(cutoffTimeMs).catch((_e) => {
609
- chain.logger.debug("Waited for data after receiving gossip blob. Cut-off reached so attempting to fetch remainder of BlockInput", {
610
- blobIndex: index,
611
- ...blockInput.getLogMeta(),
612
- });
613
- chain.emitter.emit(ChainEvent.incompleteBlockInput, {
614
- blockInput,
615
- peer: peerIdStr,
616
- source: BlockInputSource.gossip,
617
- });
618
- });
619
- }
620
- }
621
- catch (e) {
622
- logger.debug("Error handling gossip blob", { slot: blobSlot, root: blockInput.blockRootHex, index }, e);
623
- }
624
- });
625
- },
626
513
  [GossipType.data_column_sidecar]: async ({ gossipData, topic, peerIdStr, seenTimestampSec, }) => {
627
514
  const { fork } = topic.boundary;
628
515
  const { serializedData } = gossipData;
@@ -670,7 +557,7 @@ function getSequentialHandlers(modules, options) {
670
557
  });
671
558
  }
672
559
  // NOTE: we do NOT call chain.processExecutionPayload here. That is triggered only by
673
- // envelope arrival (gossip or API). An in-flight importExecutionPayload is awaiting
560
+ // envelope arrival (gossip or API). A pending payload import is awaiting
674
561
  // payloadInput.waitForAllData(); addColumn above will resolve it once hasAllData flips.
675
562
  scheduleIncompletePayloadEnvelope(payloadInput, peerIdStr);
676
563
  }
@@ -912,6 +799,7 @@ function getSequentialHandlers(modules, options) {
912
799
  },
913
800
  [GossipType.execution_payload]: async ({ gossipData, topic, peerIdStr, seenTimestampSec, }) => {
914
801
  const { serializedData } = gossipData;
802
+ validateGossipExecutionPayloadEnvelopeSerialized(chain, serializedData);
915
803
  const signedEnvelope = sszDeserialize(topic, serializedData);
916
804
  const envelope = signedEnvelope.message;
917
805
  // unlike BlockInput, we send the envelope into UnknownBlockInput sync
@@ -952,16 +840,20 @@ function getSequentialHandlers(modules, options) {
952
840
  blockRoot: blockRootHex,
953
841
  });
954
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
+ }
955
854
  // Handler - deferred to next event loop so the validation result propagates first
956
855
  callInNextEventLoop(() => {
957
856
  try {
958
- chain.serializedCache.set(signedEnvelope, serializedData);
959
- payloadInput.addPayloadEnvelope({
960
- envelope: signedEnvelope,
961
- source: PayloadEnvelopeInputSource.gossip,
962
- seenTimestampSec,
963
- peerIdStr,
964
- });
965
857
  scheduleIncompletePayloadEnvelope(payloadInput, peerIdStr);
966
858
  chain.emitter.emit(routes.events.EventType.executionPayloadGossip, {
967
859
  slot,
@@ -969,11 +861,17 @@ function getSequentialHandlers(modules, options) {
969
861
  blockHash: toRootHex(envelope.payload.blockHash),
970
862
  blockRoot: blockRootHex,
971
863
  });
972
- 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) => {
973
867
  // Adjust verbosity based on error type
974
868
  let logLevel;
975
869
  if (e instanceof PayloadError) {
976
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;
977
875
  // BLOCK_NOT_IN_FORK_CHOICE should not happen, validateGossipExecutionPayloadEnvelope above
978
876
  // already verified the block is in fork choice
979
877
  case PayloadErrorCode.BLOCK_NOT_IN_FORK_CHOICE:
@@ -982,11 +880,17 @@ function getSequentialHandlers(modules, options) {
982
880
  // Errors might indicate an issue with our node or the connected EL client
983
881
  logLevel = LogLevel.error;
984
882
  break;
985
- // 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
986
887
  case PayloadErrorCode.INVALID_SIGNATURE:
987
888
  case PayloadErrorCode.ENVELOPE_VERIFICATION_ERROR:
988
889
  case PayloadErrorCode.EXECUTION_ENGINE_INVALID:
989
- 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
+ }
990
894
  // The builder may have signed another envelope that is valid, keeping this one would make
991
895
  // by-root and range sync reuse it and never import the payload
992
896
  chain.seenPayloadEnvelopeInputCache.removeInvalid(payloadInput);
@@ -1180,6 +1084,23 @@ function getBatchHandlers(modules, options) {
1180
1084
  catch (e) {
1181
1085
  logger.debug("Error adding gossip unaggregated attestation to pool", { subnet }, e);
1182
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
+ }
1183
1104
  // Separate boundary: a pool insertion error above must not skip the fork-choice vote
1184
1105
  if (!options.dontSendGossipAttestationsToForkchoice) {
1185
1106
  try {