@lodestar/beacon-node 1.51.0-dev.88c15a0731 → 1.51.0-dev.8d5cdd33be

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 (553) 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/archiveStore/utils/archiveBlocks.d.ts +4 -0
  21. package/lib/chain/archiveStore/utils/archiveBlocks.d.ts.map +1 -1
  22. package/lib/chain/archiveStore/utils/archiveBlocks.js +7 -1
  23. package/lib/chain/archiveStore/utils/archiveBlocks.js.map +1 -1
  24. package/lib/chain/blocks/blockInput/blockInput.d.ts +11 -56
  25. package/lib/chain/blocks/blockInput/blockInput.d.ts.map +1 -1
  26. package/lib/chain/blocks/blockInput/blockInput.js +5 -241
  27. package/lib/chain/blocks/blockInput/blockInput.js.map +1 -1
  28. package/lib/chain/blocks/blockInput/errors.d.ts +2 -4
  29. package/lib/chain/blocks/blockInput/errors.d.ts.map +1 -1
  30. package/lib/chain/blocks/blockInput/errors.js.map +1 -1
  31. package/lib/chain/blocks/blockInput/types.d.ts +2 -18
  32. package/lib/chain/blocks/blockInput/types.d.ts.map +1 -1
  33. package/lib/chain/blocks/blockInput/types.js +0 -1
  34. package/lib/chain/blocks/blockInput/types.js.map +1 -1
  35. package/lib/chain/blocks/importBlock.d.ts.map +1 -1
  36. package/lib/chain/blocks/importBlock.js +40 -56
  37. package/lib/chain/blocks/importBlock.js.map +1 -1
  38. package/lib/chain/blocks/importExecutionPayload.d.ts +10 -11
  39. package/lib/chain/blocks/importExecutionPayload.d.ts.map +1 -1
  40. package/lib/chain/blocks/importExecutionPayload.js +32 -18
  41. package/lib/chain/blocks/importExecutionPayload.js.map +1 -1
  42. package/lib/chain/blocks/index.d.ts.map +1 -1
  43. package/lib/chain/blocks/index.js +4 -4
  44. package/lib/chain/blocks/index.js.map +1 -1
  45. package/lib/chain/blocks/payloadEnvelopeProcessor.d.ts +12 -9
  46. package/lib/chain/blocks/payloadEnvelopeProcessor.d.ts.map +1 -1
  47. package/lib/chain/blocks/payloadEnvelopeProcessor.js +24 -19
  48. package/lib/chain/blocks/payloadEnvelopeProcessor.js.map +1 -1
  49. package/lib/chain/blocks/types.d.ts +4 -20
  50. package/lib/chain/blocks/types.d.ts.map +1 -1
  51. package/lib/chain/blocks/types.js +0 -24
  52. package/lib/chain/blocks/types.js.map +1 -1
  53. package/lib/chain/blocks/verifyBlock.d.ts.map +1 -1
  54. package/lib/chain/blocks/verifyBlock.js +18 -7
  55. package/lib/chain/blocks/verifyBlock.js.map +1 -1
  56. package/lib/chain/blocks/verifyBlocksDataAvailability.d.ts.map +1 -1
  57. package/lib/chain/blocks/verifyBlocksDataAvailability.js +14 -2
  58. package/lib/chain/blocks/verifyBlocksDataAvailability.js.map +1 -1
  59. package/lib/chain/blocks/verifyBlocksExecutionPayloads.d.ts +1 -1
  60. package/lib/chain/blocks/verifyBlocksExecutionPayloads.d.ts.map +1 -1
  61. package/lib/chain/blocks/verifyBlocksExecutionPayloads.js +7 -3
  62. package/lib/chain/blocks/verifyBlocksExecutionPayloads.js.map +1 -1
  63. package/lib/chain/blocks/verifyBlocksSanityChecks.d.ts.map +1 -1
  64. package/lib/chain/blocks/verifyBlocksSanityChecks.js +4 -0
  65. package/lib/chain/blocks/verifyBlocksSanityChecks.js.map +1 -1
  66. package/lib/chain/blocks/verifyBlocksSignatures.d.ts.map +1 -1
  67. package/lib/chain/blocks/verifyBlocksSignatures.js +7 -5
  68. package/lib/chain/blocks/verifyBlocksSignatures.js.map +1 -1
  69. package/lib/chain/blocks/verifyPayloadsDataAvailability.d.ts +3 -3
  70. package/lib/chain/blocks/verifyPayloadsDataAvailability.d.ts.map +1 -1
  71. package/lib/chain/blocks/verifyPayloadsDataAvailability.js +11 -6
  72. package/lib/chain/blocks/verifyPayloadsDataAvailability.js.map +1 -1
  73. package/lib/chain/blocks/writeBlockInputToDb.d.ts +0 -2
  74. package/lib/chain/blocks/writeBlockInputToDb.d.ts.map +1 -1
  75. package/lib/chain/blocks/writeBlockInputToDb.js +6 -24
  76. package/lib/chain/blocks/writeBlockInputToDb.js.map +1 -1
  77. package/lib/chain/bls/interface.d.ts +2 -0
  78. package/lib/chain/bls/interface.d.ts.map +1 -1
  79. package/lib/chain/bls/multithread/index.d.ts.map +1 -1
  80. package/lib/chain/bls/multithread/index.js +13 -11
  81. package/lib/chain/bls/multithread/index.js.map +1 -1
  82. package/lib/chain/bls/multithread/types.d.ts +1 -1
  83. package/lib/chain/bls/multithread/types.d.ts.map +1 -1
  84. package/lib/chain/bls/multithread/worker.js +1 -1
  85. package/lib/chain/bls/multithread/worker.js.map +1 -1
  86. package/lib/chain/bls/singleThread.js +1 -1
  87. package/lib/chain/bls/singleThread.js.map +1 -1
  88. package/lib/chain/bls/utils.js +1 -1
  89. package/lib/chain/bls/utils.js.map +1 -1
  90. package/lib/chain/chain.d.ts +25 -4
  91. package/lib/chain/chain.d.ts.map +1 -1
  92. package/lib/chain/chain.js +124 -43
  93. package/lib/chain/chain.js.map +1 -1
  94. package/lib/chain/emitter.d.ts +7 -7
  95. package/lib/chain/emitter.d.ts.map +1 -1
  96. package/lib/chain/emitter.js +5 -5
  97. package/lib/chain/emitter.js.map +1 -1
  98. package/lib/chain/errors/blockError.d.ts +1 -1
  99. package/lib/chain/errors/blockError.d.ts.map +1 -1
  100. package/lib/chain/errors/blockError.js +1 -1
  101. package/lib/chain/errors/blockError.js.map +1 -1
  102. package/lib/chain/errors/executionPayloadEnvelope.d.ts +7 -0
  103. package/lib/chain/errors/executionPayloadEnvelope.d.ts.map +1 -1
  104. package/lib/chain/errors/executionPayloadEnvelope.js +1 -0
  105. package/lib/chain/errors/executionPayloadEnvelope.js.map +1 -1
  106. package/lib/chain/errors/index.d.ts +0 -1
  107. package/lib/chain/errors/index.d.ts.map +1 -1
  108. package/lib/chain/errors/index.js +0 -1
  109. package/lib/chain/errors/index.js.map +1 -1
  110. package/lib/chain/forkChoice/index.d.ts +11 -1
  111. package/lib/chain/forkChoice/index.d.ts.map +1 -1
  112. package/lib/chain/forkChoice/index.js +11 -0
  113. package/lib/chain/forkChoice/index.js.map +1 -1
  114. package/lib/chain/forkChoiceExecutionEngine.d.ts +51 -0
  115. package/lib/chain/forkChoiceExecutionEngine.d.ts.map +1 -0
  116. package/lib/chain/forkChoiceExecutionEngine.js +117 -0
  117. package/lib/chain/forkChoiceExecutionEngine.js.map +1 -0
  118. package/lib/chain/interface.d.ts +9 -7
  119. package/lib/chain/interface.d.ts.map +1 -1
  120. package/lib/chain/interface.js.map +1 -1
  121. package/lib/chain/opPools/aggregatedAttestationPool.d.ts +17 -4
  122. package/lib/chain/opPools/aggregatedAttestationPool.d.ts.map +1 -1
  123. package/lib/chain/opPools/aggregatedAttestationPool.js +199 -46
  124. package/lib/chain/opPools/aggregatedAttestationPool.js.map +1 -1
  125. package/lib/chain/opPools/attestationPool.d.ts +1 -1
  126. package/lib/chain/opPools/attestationPool.d.ts.map +1 -1
  127. package/lib/chain/opPools/attestationPool.js +15 -4
  128. package/lib/chain/opPools/attestationPool.js.map +1 -1
  129. package/lib/chain/opPools/index.d.ts +1 -0
  130. package/lib/chain/opPools/index.d.ts.map +1 -1
  131. package/lib/chain/opPools/index.js +1 -0
  132. package/lib/chain/opPools/index.js.map +1 -1
  133. package/lib/chain/opPools/payloadAttestationPool.d.ts.map +1 -1
  134. package/lib/chain/opPools/payloadAttestationPool.js +17 -7
  135. package/lib/chain/opPools/payloadAttestationPool.js.map +1 -1
  136. package/lib/chain/opPools/singleAttestationPool.d.ts +77 -0
  137. package/lib/chain/opPools/singleAttestationPool.d.ts.map +1 -0
  138. package/lib/chain/opPools/singleAttestationPool.js +209 -0
  139. package/lib/chain/opPools/singleAttestationPool.js.map +1 -0
  140. package/lib/chain/opPools/syncCommitteeMessagePool.d.ts.map +1 -1
  141. package/lib/chain/opPools/syncCommitteeMessagePool.js +9 -3
  142. package/lib/chain/opPools/syncCommitteeMessagePool.js.map +1 -1
  143. package/lib/chain/opPools/syncContributionAndProofPool.d.ts.map +1 -1
  144. package/lib/chain/opPools/syncContributionAndProofPool.js +11 -3
  145. package/lib/chain/opPools/syncContributionAndProofPool.js.map +1 -1
  146. package/lib/chain/opPools/utils.d.ts +1 -1
  147. package/lib/chain/opPools/utils.d.ts.map +1 -1
  148. package/lib/chain/opPools/utils.js +1 -1
  149. package/lib/chain/opPools/utils.js.map +1 -1
  150. package/lib/chain/options.d.ts +5 -3
  151. package/lib/chain/options.d.ts.map +1 -1
  152. package/lib/chain/options.js +0 -1
  153. package/lib/chain/options.js.map +1 -1
  154. package/lib/chain/produceBlock/produceBlockBody.d.ts +3 -2
  155. package/lib/chain/produceBlock/produceBlockBody.d.ts.map +1 -1
  156. package/lib/chain/produceBlock/produceBlockBody.js +3 -2
  157. package/lib/chain/produceBlock/produceBlockBody.js.map +1 -1
  158. package/lib/chain/proposerTracker.d.ts +31 -0
  159. package/lib/chain/proposerTracker.d.ts.map +1 -0
  160. package/lib/chain/proposerTracker.js +75 -0
  161. package/lib/chain/proposerTracker.js.map +1 -0
  162. package/lib/chain/regen/interface.d.ts +1 -1
  163. package/lib/chain/regen/interface.d.ts.map +1 -1
  164. package/lib/chain/regen/queued.d.ts +1 -1
  165. package/lib/chain/regen/queued.d.ts.map +1 -1
  166. package/lib/chain/regen/queued.js +5 -3
  167. package/lib/chain/regen/queued.js.map +1 -1
  168. package/lib/chain/seenCache/seenGossipBlockInput.d.ts +7 -14
  169. package/lib/chain/seenCache/seenGossipBlockInput.d.ts.map +1 -1
  170. package/lib/chain/seenCache/seenGossipBlockInput.js +6 -65
  171. package/lib/chain/seenCache/seenGossipBlockInput.js.map +1 -1
  172. package/lib/chain/validation/executionPayloadBid.js +13 -13
  173. package/lib/chain/validation/executionPayloadBid.js.map +1 -1
  174. package/lib/chain/validation/executionPayloadEnvelope.d.ts +6 -0
  175. package/lib/chain/validation/executionPayloadEnvelope.d.ts.map +1 -1
  176. package/lib/chain/validation/executionPayloadEnvelope.js +53 -0
  177. package/lib/chain/validation/executionPayloadEnvelope.js.map +1 -1
  178. package/lib/chain/validatorMonitor.d.ts +1 -2
  179. package/lib/chain/validatorMonitor.d.ts.map +1 -1
  180. package/lib/chain/validatorMonitor.js +0 -3
  181. package/lib/chain/validatorMonitor.js.map +1 -1
  182. package/lib/db/beacon.d.ts +7 -0
  183. package/lib/db/beacon.d.ts.map +1 -1
  184. package/lib/db/beacon.js +32 -0
  185. package/lib/db/beacon.js.map +1 -1
  186. package/lib/db/dataColumnStore.d.ts +1 -1
  187. package/lib/db/dataColumnStore.d.ts.map +1 -1
  188. package/lib/db/dataColumnStore.js +1 -4
  189. package/lib/db/dataColumnStore.js.map +1 -1
  190. package/lib/db/flatFileStore/flatFileStore.js +5 -5
  191. package/lib/db/flatFileStore/flatFileStore.js.map +1 -1
  192. package/lib/db/flatFileStore/slotIndex.d.ts.map +1 -1
  193. package/lib/db/flatFileStore/slotIndex.js +2 -2
  194. package/lib/db/flatFileStore/slotIndex.js.map +1 -1
  195. package/lib/db/interface.d.ts +1 -0
  196. package/lib/db/interface.d.ts.map +1 -1
  197. package/lib/db/repositories/blobSidecars.d.ts +0 -1
  198. package/lib/db/repositories/blobSidecars.d.ts.map +1 -1
  199. package/lib/db/repositories/blobSidecars.js +0 -1
  200. package/lib/db/repositories/blobSidecars.js.map +1 -1
  201. package/lib/db/repositories/dataColumnSidecarArchive.d.ts +6 -0
  202. package/lib/db/repositories/dataColumnSidecarArchive.d.ts.map +1 -1
  203. package/lib/db/repositories/dataColumnSidecarArchive.js +19 -0
  204. package/lib/db/repositories/dataColumnSidecarArchive.js.map +1 -1
  205. package/lib/execution/builder/apiClient.d.ts +14 -8
  206. package/lib/execution/builder/apiClient.d.ts.map +1 -1
  207. package/lib/execution/builder/apiClient.js +12 -10
  208. package/lib/execution/builder/apiClient.js.map +1 -1
  209. package/lib/execution/builder/http.d.ts +2 -0
  210. package/lib/execution/builder/http.d.ts.map +1 -1
  211. package/lib/execution/builder/http.js +2 -0
  212. package/lib/execution/builder/http.js.map +1 -1
  213. package/lib/execution/engine/http.d.ts +4 -6
  214. package/lib/execution/engine/http.d.ts.map +1 -1
  215. package/lib/execution/engine/http.js +8 -10
  216. package/lib/execution/engine/http.js.map +1 -1
  217. package/lib/execution/engine/index.d.ts +1 -1
  218. package/lib/execution/engine/index.d.ts.map +1 -1
  219. package/lib/execution/engine/index.js +1 -1
  220. package/lib/execution/engine/index.js.map +1 -1
  221. package/lib/execution/engine/interface.d.ts +18 -6
  222. package/lib/execution/engine/interface.d.ts.map +1 -1
  223. package/lib/execution/engine/interface.js.map +1 -1
  224. package/lib/execution/engine/jsonRpcTransport.d.ts +2 -4
  225. package/lib/execution/engine/jsonRpcTransport.d.ts.map +1 -1
  226. package/lib/execution/engine/jsonRpcTransport.js +2 -12
  227. package/lib/execution/engine/jsonRpcTransport.js.map +1 -1
  228. package/lib/execution/engine/mock.d.ts +0 -1
  229. package/lib/execution/engine/mock.d.ts.map +1 -1
  230. package/lib/execution/engine/mock.js +0 -4
  231. package/lib/execution/engine/mock.js.map +1 -1
  232. package/lib/execution/engine/restTransport.d.ts +2 -4
  233. package/lib/execution/engine/restTransport.d.ts.map +1 -1
  234. package/lib/execution/engine/restTransport.js +1 -15
  235. package/lib/execution/engine/restTransport.js.map +1 -1
  236. package/lib/execution/engine/sszTypes.d.ts +0 -9
  237. package/lib/execution/engine/sszTypes.d.ts.map +1 -1
  238. package/lib/execution/engine/sszTypes.js +0 -5
  239. package/lib/execution/engine/sszTypes.js.map +1 -1
  240. package/lib/execution/engine/transport.d.ts +1 -14
  241. package/lib/execution/engine/transport.d.ts.map +1 -1
  242. package/lib/execution/engine/types.d.ts +0 -8
  243. package/lib/execution/engine/types.d.ts.map +1 -1
  244. package/lib/execution/engine/types.js +2 -10
  245. package/lib/execution/engine/types.js.map +1 -1
  246. package/lib/execution/engine/utils.d.ts.map +1 -1
  247. package/lib/execution/engine/utils.js +3 -2
  248. package/lib/execution/engine/utils.js.map +1 -1
  249. package/lib/index.d.ts +1 -1
  250. package/lib/index.d.ts.map +1 -1
  251. package/lib/index.js +1 -1
  252. package/lib/index.js.map +1 -1
  253. package/lib/metrics/metrics/beacon.d.ts +0 -9
  254. package/lib/metrics/metrics/beacon.d.ts.map +1 -1
  255. package/lib/metrics/metrics/beacon.js +0 -30
  256. package/lib/metrics/metrics/beacon.js.map +1 -1
  257. package/lib/metrics/metrics/lodestar.d.ts +30 -8
  258. package/lib/metrics/metrics/lodestar.d.ts.map +1 -1
  259. package/lib/metrics/metrics/lodestar.js +79 -18
  260. package/lib/metrics/metrics/lodestar.js.map +1 -1
  261. package/lib/metrics/server/http.js +5 -5
  262. package/lib/metrics/server/http.js.map +1 -1
  263. package/lib/monitoring/service.js +1 -1
  264. package/lib/monitoring/service.js.map +1 -1
  265. package/lib/network/core/networkCore.d.ts +4 -1
  266. package/lib/network/core/networkCore.d.ts.map +1 -1
  267. package/lib/network/core/networkCore.js +7 -0
  268. package/lib/network/core/networkCore.js.map +1 -1
  269. package/lib/network/core/networkCoreWorker.js +2 -0
  270. package/lib/network/core/networkCoreWorker.js.map +1 -1
  271. package/lib/network/core/networkCoreWorkerHandler.d.ts +4 -1
  272. package/lib/network/core/networkCoreWorkerHandler.d.ts.map +1 -1
  273. package/lib/network/core/networkCoreWorkerHandler.js +6 -0
  274. package/lib/network/core/networkCoreWorkerHandler.js.map +1 -1
  275. package/lib/network/core/types.d.ts +6 -1
  276. package/lib/network/core/types.d.ts.map +1 -1
  277. package/lib/network/gossip/gossipsub.d.ts +1 -0
  278. package/lib/network/gossip/gossipsub.d.ts.map +1 -1
  279. package/lib/network/gossip/gossipsub.js +10 -0
  280. package/lib/network/gossip/gossipsub.js.map +1 -1
  281. package/lib/network/gossip/interface.d.ts +1 -8
  282. package/lib/network/gossip/interface.d.ts.map +1 -1
  283. package/lib/network/gossip/interface.js +0 -1
  284. package/lib/network/gossip/interface.js.map +1 -1
  285. package/lib/network/gossip/topic.d.ts +0 -16
  286. package/lib/network/gossip/topic.d.ts.map +1 -1
  287. package/lib/network/gossip/topic.js +0 -23
  288. package/lib/network/gossip/topic.js.map +1 -1
  289. package/lib/network/interface.d.ts +4 -5
  290. package/lib/network/interface.d.ts.map +1 -1
  291. package/lib/network/libp2p/index.d.ts.map +1 -1
  292. package/lib/network/libp2p/index.js +5 -1
  293. package/lib/network/libp2p/index.js.map +1 -1
  294. package/lib/network/network.d.ts +8 -7
  295. package/lib/network/network.d.ts.map +1 -1
  296. package/lib/network/network.js +53 -35
  297. package/lib/network/network.js.map +1 -1
  298. package/lib/network/options.d.ts +2 -0
  299. package/lib/network/options.d.ts.map +1 -1
  300. package/lib/network/options.js +2 -0
  301. package/lib/network/options.js.map +1 -1
  302. package/lib/network/peers/peerManager.d.ts +2 -1
  303. package/lib/network/peers/peerManager.d.ts.map +1 -1
  304. package/lib/network/peers/peerManager.js +28 -1
  305. package/lib/network/peers/peerManager.js.map +1 -1
  306. package/lib/network/peers/utils/assertPeerRelevance.d.ts +9 -1
  307. package/lib/network/peers/utils/assertPeerRelevance.d.ts.map +1 -1
  308. package/lib/network/peers/utils/assertPeerRelevance.js +32 -21
  309. package/lib/network/peers/utils/assertPeerRelevance.js.map +1 -1
  310. package/lib/network/peers/utils/prioritizePeers.d.ts +4 -1
  311. package/lib/network/peers/utils/prioritizePeers.d.ts.map +1 -1
  312. package/lib/network/peers/utils/prioritizePeers.js +8 -16
  313. package/lib/network/peers/utils/prioritizePeers.js.map +1 -1
  314. package/lib/network/peers/utils/subnetMap.d.ts +5 -2
  315. package/lib/network/peers/utils/subnetMap.d.ts.map +1 -1
  316. package/lib/network/peers/utils/subnetMap.js +6 -3
  317. package/lib/network/peers/utils/subnetMap.js.map +1 -1
  318. package/lib/network/processor/extractSlotRootFns.d.ts.map +1 -1
  319. package/lib/network/processor/extractSlotRootFns.js +1 -8
  320. package/lib/network/processor/extractSlotRootFns.js.map +1 -1
  321. package/lib/network/processor/gossipHandlers.d.ts.map +1 -1
  322. package/lib/network/processor/gossipHandlers.js +52 -131
  323. package/lib/network/processor/gossipHandlers.js.map +1 -1
  324. package/lib/network/processor/gossipQueues/index.d.ts.map +1 -1
  325. package/lib/network/processor/gossipQueues/index.js +0 -6
  326. package/lib/network/processor/gossipQueues/index.js.map +1 -1
  327. package/lib/network/processor/gossipValidatorFn.d.ts.map +1 -1
  328. package/lib/network/processor/gossipValidatorFn.js +1 -5
  329. package/lib/network/processor/gossipValidatorFn.js.map +1 -1
  330. package/lib/network/processor/index.d.ts +6 -0
  331. package/lib/network/processor/index.d.ts.map +1 -1
  332. package/lib/network/processor/index.js +29 -4
  333. package/lib/network/processor/index.js.map +1 -1
  334. package/lib/network/reqresp/ReqRespBeaconNode.d.ts.map +1 -1
  335. package/lib/network/reqresp/ReqRespBeaconNode.js +0 -3
  336. package/lib/network/reqresp/ReqRespBeaconNode.js.map +1 -1
  337. package/lib/network/reqresp/handlers/beaconBlocksByRange.d.ts +2 -2
  338. package/lib/network/reqresp/handlers/beaconBlocksByRange.d.ts.map +1 -1
  339. package/lib/network/reqresp/handlers/index.d.ts.map +1 -1
  340. package/lib/network/reqresp/handlers/index.js +1 -12
  341. package/lib/network/reqresp/handlers/index.js.map +1 -1
  342. package/lib/network/reqresp/protocols.d.ts +0 -2
  343. package/lib/network/reqresp/protocols.d.ts.map +1 -1
  344. package/lib/network/reqresp/protocols.js +0 -10
  345. package/lib/network/reqresp/protocols.js.map +1 -1
  346. package/lib/network/reqresp/rateLimit.d.ts.map +1 -1
  347. package/lib/network/reqresp/rateLimit.js +1 -17
  348. package/lib/network/reqresp/rateLimit.js.map +1 -1
  349. package/lib/network/reqresp/types.d.ts +2 -8
  350. package/lib/network/reqresp/types.d.ts.map +1 -1
  351. package/lib/network/reqresp/types.js +1 -7
  352. package/lib/network/reqresp/types.js.map +1 -1
  353. package/lib/network/subnets/attnetsService.d.ts +35 -5
  354. package/lib/network/subnets/attnetsService.d.ts.map +1 -1
  355. package/lib/network/subnets/attnetsService.js +84 -6
  356. package/lib/network/subnets/attnetsService.js.map +1 -1
  357. package/lib/network/subnets/interface.d.ts +7 -0
  358. package/lib/network/subnets/interface.d.ts.map +1 -1
  359. package/lib/network/subnets/interface.js.map +1 -1
  360. package/lib/node/nodejs.d.ts +3 -1
  361. package/lib/node/nodejs.d.ts.map +1 -1
  362. package/lib/node/nodejs.js +47 -21
  363. package/lib/node/nodejs.js.map +1 -1
  364. package/lib/node/options.d.ts +3 -1
  365. package/lib/node/options.d.ts.map +1 -1
  366. package/lib/node/options.js +4 -2
  367. package/lib/node/options.js.map +1 -1
  368. package/lib/sync/interface.d.ts.map +1 -1
  369. package/lib/sync/interface.js.map +1 -1
  370. package/lib/sync/range/batch.d.ts +2 -3
  371. package/lib/sync/range/batch.d.ts.map +1 -1
  372. package/lib/sync/range/batch.js +9 -22
  373. package/lib/sync/range/batch.js.map +1 -1
  374. package/lib/sync/range/chain.d.ts.map +1 -1
  375. package/lib/sync/range/chain.js +2 -15
  376. package/lib/sync/range/chain.js.map +1 -1
  377. package/lib/sync/sync.d.ts +7 -0
  378. package/lib/sync/sync.d.ts.map +1 -1
  379. package/lib/sync/sync.js +61 -3
  380. package/lib/sync/sync.js.map +1 -1
  381. package/lib/sync/unknownBlock.d.ts.map +1 -1
  382. package/lib/sync/unknownBlock.js +1 -7
  383. package/lib/sync/unknownBlock.js.map +1 -1
  384. package/lib/sync/utils/downloadByRange.d.ts +6 -34
  385. package/lib/sync/utils/downloadByRange.d.ts.map +1 -1
  386. package/lib/sync/utils/downloadByRange.js +24 -128
  387. package/lib/sync/utils/downloadByRange.js.map +1 -1
  388. package/lib/sync/utils/downloadByRoot.d.ts +2 -18
  389. package/lib/sync/utils/downloadByRoot.d.ts.map +1 -1
  390. package/lib/sync/utils/downloadByRoot.js +14 -99
  391. package/lib/sync/utils/downloadByRoot.js.map +1 -1
  392. package/lib/util/blobs.d.ts +1 -7
  393. package/lib/util/blobs.d.ts.map +1 -1
  394. package/lib/util/blobs.js +0 -19
  395. package/lib/util/blobs.js.map +1 -1
  396. package/lib/util/execution.d.ts +3 -4
  397. package/lib/util/execution.d.ts.map +1 -1
  398. package/lib/util/execution.js +1 -73
  399. package/lib/util/execution.js.map +1 -1
  400. package/lib/util/file.d.ts.map +1 -1
  401. package/lib/util/file.js +8 -9
  402. package/lib/util/file.js.map +1 -1
  403. package/lib/util/queue/itemQueue.js +1 -1
  404. package/lib/util/queue/itemQueue.js.map +1 -1
  405. package/lib/util/sszBytes.d.ts +5 -1
  406. package/lib/util/sszBytes.d.ts.map +1 -1
  407. package/lib/util/sszBytes.js +36 -19
  408. package/lib/util/sszBytes.js.map +1 -1
  409. package/lib/util/types.d.ts +0 -5
  410. package/lib/util/types.d.ts.map +1 -1
  411. package/lib/util/types.js +1 -2
  412. package/lib/util/types.js.map +1 -1
  413. package/package.json +16 -17
  414. package/src/api/impl/beacon/blocks/index.ts +59 -109
  415. package/src/api/impl/beacon/pool/index.ts +31 -1
  416. package/src/api/impl/beacon/state/utils.ts +1 -1
  417. package/src/api/impl/validator/index.ts +47 -30
  418. package/src/chain/GetBlobsTracker.ts +82 -52
  419. package/src/chain/archiveStore/archiveStore.ts +1 -0
  420. package/src/chain/archiveStore/utils/archiveBlocks.ts +12 -4
  421. package/src/chain/blocks/blockInput/blockInput.ts +11 -343
  422. package/src/chain/blocks/blockInput/errors.ts +1 -2
  423. package/src/chain/blocks/blockInput/types.ts +2 -20
  424. package/src/chain/blocks/importBlock.ts +61 -76
  425. package/src/chain/blocks/importExecutionPayload.ts +55 -34
  426. package/src/chain/blocks/index.ts +11 -4
  427. package/src/chain/blocks/payloadEnvelopeProcessor.ts +35 -24
  428. package/src/chain/blocks/types.ts +5 -31
  429. package/src/chain/blocks/verifyBlock.ts +31 -16
  430. package/src/chain/blocks/verifyBlocksDataAvailability.ts +16 -2
  431. package/src/chain/blocks/verifyBlocksExecutionPayloads.ts +9 -6
  432. package/src/chain/blocks/verifyBlocksSanityChecks.ts +4 -1
  433. package/src/chain/blocks/verifyBlocksSignatures.ts +7 -5
  434. package/src/chain/blocks/verifyPayloadsDataAvailability.ts +14 -6
  435. package/src/chain/blocks/writeBlockInputToDb.ts +6 -29
  436. package/src/chain/bls/interface.ts +2 -0
  437. package/src/chain/bls/multithread/index.ts +14 -10
  438. package/src/chain/bls/multithread/types.ts +1 -1
  439. package/src/chain/bls/multithread/worker.ts +1 -5
  440. package/src/chain/bls/singleThread.ts +1 -1
  441. package/src/chain/bls/utils.ts +1 -1
  442. package/src/chain/chain.ts +140 -42
  443. package/src/chain/emitter.ts +8 -8
  444. package/src/chain/errors/blockError.ts +1 -1
  445. package/src/chain/errors/executionPayloadEnvelope.ts +8 -0
  446. package/src/chain/errors/index.ts +0 -1
  447. package/src/chain/forkChoice/index.ts +11 -0
  448. package/src/chain/forkChoiceExecutionEngine.ts +183 -0
  449. package/src/chain/interface.ts +9 -6
  450. package/src/chain/opPools/aggregatedAttestationPool.ts +246 -43
  451. package/src/chain/opPools/attestationPool.ts +16 -4
  452. package/src/chain/opPools/index.ts +1 -0
  453. package/src/chain/opPools/payloadAttestationPool.ts +18 -7
  454. package/src/chain/opPools/singleAttestationPool.ts +287 -0
  455. package/src/chain/opPools/syncCommitteeMessagePool.ts +10 -3
  456. package/src/chain/opPools/syncContributionAndProofPool.ts +13 -3
  457. package/src/chain/opPools/utils.ts +1 -1
  458. package/src/chain/options.ts +5 -4
  459. package/src/chain/produceBlock/produceBlockBody.ts +7 -3
  460. package/src/chain/proposerTracker.ts +94 -0
  461. package/src/chain/regen/interface.ts +1 -1
  462. package/src/chain/regen/queued.ts +6 -4
  463. package/src/chain/seenCache/seenGossipBlockInput.ts +9 -93
  464. package/src/chain/validation/executionPayloadBid.ts +14 -13
  465. package/src/chain/validation/executionPayloadEnvelope.ts +68 -1
  466. package/src/chain/validatorMonitor.ts +0 -6
  467. package/src/db/beacon.ts +39 -0
  468. package/src/db/dataColumnStore.ts +2 -4
  469. package/src/db/flatFileStore/flatFileStore.ts +7 -7
  470. package/src/db/flatFileStore/slotIndex.ts +4 -3
  471. package/src/db/interface.ts +2 -0
  472. package/src/db/repositories/blobSidecars.ts +0 -1
  473. package/src/db/repositories/dataColumnSidecarArchive.ts +20 -0
  474. package/src/execution/builder/apiClient.ts +16 -13
  475. package/src/execution/builder/http.ts +4 -0
  476. package/src/execution/engine/http.ts +19 -42
  477. package/src/execution/engine/index.ts +1 -1
  478. package/src/execution/engine/interface.ts +19 -10
  479. package/src/execution/engine/jsonRpcTransport.ts +10 -22
  480. package/src/execution/engine/mock.ts +0 -7
  481. package/src/execution/engine/restTransport.ts +3 -22
  482. package/src/execution/engine/sszTypes.ts +0 -9
  483. package/src/execution/engine/transport.ts +8 -17
  484. package/src/execution/engine/types.ts +3 -18
  485. package/src/execution/engine/utils.ts +4 -2
  486. package/src/index.ts +1 -1
  487. package/src/metrics/metrics/beacon.ts +0 -30
  488. package/src/metrics/metrics/lodestar.ts +80 -18
  489. package/src/metrics/server/http.ts +5 -5
  490. package/src/monitoring/service.ts +1 -1
  491. package/src/network/core/networkCore.ts +11 -1
  492. package/src/network/core/networkCoreWorker.ts +2 -0
  493. package/src/network/core/networkCoreWorkerHandler.ts +8 -1
  494. package/src/network/core/types.ts +6 -1
  495. package/src/network/gossip/gossipsub.ts +11 -0
  496. package/src/network/gossip/interface.ts +0 -5
  497. package/src/network/gossip/topic.ts +0 -25
  498. package/src/network/interface.ts +2 -5
  499. package/src/network/libp2p/index.ts +5 -1
  500. package/src/network/network.ts +55 -58
  501. package/src/network/options.ts +4 -0
  502. package/src/network/peers/peerManager.ts +28 -3
  503. package/src/network/peers/utils/assertPeerRelevance.ts +39 -23
  504. package/src/network/peers/utils/prioritizePeers.ts +14 -22
  505. package/src/network/peers/utils/subnetMap.ts +6 -3
  506. package/src/network/processor/extractSlotRootFns.ts +0 -9
  507. package/src/network/processor/gossipHandlers.ts +65 -164
  508. package/src/network/processor/gossipQueues/index.ts +0 -6
  509. package/src/network/processor/gossipValidatorFn.ts +0 -5
  510. package/src/network/processor/index.ts +25 -4
  511. package/src/network/reqresp/ReqRespBeaconNode.ts +0 -7
  512. package/src/network/reqresp/handlers/beaconBlocksByRange.ts +2 -2
  513. package/src/network/reqresp/handlers/index.ts +0 -17
  514. package/src/network/reqresp/protocols.ts +0 -12
  515. package/src/network/reqresp/rateLimit.ts +1 -17
  516. package/src/network/reqresp/types.ts +0 -13
  517. package/src/network/subnets/attnetsService.ts +94 -6
  518. package/src/network/subnets/interface.ts +7 -0
  519. package/src/node/nodejs.ts +58 -22
  520. package/src/node/options.ts +9 -6
  521. package/src/sync/interface.ts +1 -0
  522. package/src/sync/range/batch.ts +9 -21
  523. package/src/sync/range/chain.ts +2 -14
  524. package/src/sync/sync.ts +65 -4
  525. package/src/sync/unknownBlock.ts +1 -8
  526. package/src/sync/utils/downloadByRange.ts +31 -230
  527. package/src/sync/utils/downloadByRoot.ts +15 -142
  528. package/src/util/blobs.ts +0 -34
  529. package/src/util/execution.ts +8 -102
  530. package/src/util/file.ts +8 -9
  531. package/src/util/queue/itemQueue.ts +1 -1
  532. package/src/util/sszBytes.ts +42 -24
  533. package/src/util/types.ts +1 -8
  534. package/lib/chain/errors/blobSidecarError.d.ts +0 -108
  535. package/lib/chain/errors/blobSidecarError.d.ts.map +0 -1
  536. package/lib/chain/errors/blobSidecarError.js +0 -38
  537. package/lib/chain/errors/blobSidecarError.js.map +0 -1
  538. package/lib/chain/validation/blobSidecar.d.ts +0 -16
  539. package/lib/chain/validation/blobSidecar.d.ts.map +0 -1
  540. package/lib/chain/validation/blobSidecar.js +0 -276
  541. package/lib/chain/validation/blobSidecar.js.map +0 -1
  542. package/lib/network/reqresp/handlers/blobSidecarsByRange.d.ts +0 -9
  543. package/lib/network/reqresp/handlers/blobSidecarsByRange.d.ts.map +0 -1
  544. package/lib/network/reqresp/handlers/blobSidecarsByRange.js +0 -91
  545. package/lib/network/reqresp/handlers/blobSidecarsByRange.js.map +0 -1
  546. package/lib/network/reqresp/handlers/blobSidecarsByRoot.d.ts +0 -5
  547. package/lib/network/reqresp/handlers/blobSidecarsByRoot.d.ts.map +0 -1
  548. package/lib/network/reqresp/handlers/blobSidecarsByRoot.js +0 -46
  549. package/lib/network/reqresp/handlers/blobSidecarsByRoot.js.map +0 -1
  550. package/src/chain/errors/blobSidecarError.ts +0 -70
  551. package/src/chain/validation/blobSidecar.ts +0 -357
  552. package/src/network/reqresp/handlers/blobSidecarsByRange.ts +0 -133
  553. package/src/network/reqresp/handlers/blobSidecarsByRoot.ts +0 -69
@@ -1 +1 @@
1
- {"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../../../src/chain/bls/multithread/types.ts"],"names":[],"mappings":"AAAA,OAAO,EAAC,KAAK,eAAe,EAAC,MAAM,oCAAoC,CAAC;AACxE,OAAO,EAAC,uBAAuB,EAAE,mBAAmB,EAAC,MAAM,iBAAiB,CAAC;AAE7E,MAAM,MAAM,UAAU,GAAG;IACvB,QAAQ,EAAE,MAAM,CAAC;CAClB,CAAC;AAEF,oBAAY,gBAAgB;IAC1B,OAAO,YAAY;IACnB,WAAW,iBAAiB;CAC7B;AAED,MAAM,MAAM,iBAAiB,GAAG;IAC9B,IAAI,EAAE,gBAAgB,CAAC,OAAO,CAAC;IAC/B,IAAI,EAAE,mBAAmB,CAAC;IAC1B,IAAI,EAAE,eAAe,EAAE,CAAC;CACzB,CAAC;AAEF,MAAM,MAAM,qBAAqB,GAAG;IAClC,IAAI,EAAE,gBAAgB,CAAC,WAAW,CAAC;IACnC,IAAI,EAAE,mBAAmB,CAAC;IAC1B,IAAI,EAAE,uBAAuB,EAAE,CAAC;IAChC,OAAO,EAAE,UAAU,CAAC;CACrB,CAAC;AAEF,MAAM,MAAM,UAAU,GAAG,iBAAiB,GAAG,qBAAqB,CAAC;AAEnE,oBAAY,cAAc;IACxB,OAAO,YAAY;IACnB,KAAK,UAAU;CAChB;AAED,oBAAY,yBAAyB;IACnC,KAAK,UAAU;IACf,MAAM,WAAW;IACjB,QAAQ,aAAa;IACrB,WAAW,iBAAiB;CAC7B;AAED,MAAM,MAAM,gBAAgB,GAAG;IAC7B,SAAS,EAAE,yBAAyB,CAAC;IACrC,QAAQ,EAAE,MAAM,CAAC;IACjB,aAAa,EAAE,MAAM,CAAC;CACvB,CAAC;AAEF,MAAM,MAAM,eAAe,GAAG;IAAC,IAAI,EAAE,cAAc,CAAC,KAAK,CAAC;IAAC,KAAK,EAAE,KAAK,CAAA;CAAC,CAAC;AACzE,MAAM,MAAM,UAAU,CAAC,CAAC,IAAI;IAAC,IAAI,EAAE,cAAc,CAAC,OAAO,CAAC;IAAC,MAAM,EAAE,CAAC,CAAA;CAAC,GAAG,eAAe,CAAC;AAExF,MAAM,MAAM,aAAa,GAAG;IAC1B,2DAA2D;IAC3D,QAAQ,EAAE,MAAM,CAAC;IACjB,kDAAkD;IAClD,YAAY,EAAE,MAAM,CAAC;IACrB,2EAA2E;IAC3E,gBAAgB,EAAE,MAAM,CAAC;IACzB,+EAA+E;IAC/E,iBAAiB,EAAE,gBAAgB,EAAE,CAAC;IACtC,8EAA8E;IAC9E,eAAe,EAAE,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;IAClC,4EAA4E;IAC5E,aAAa,EAAE,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;IAChC,OAAO,EAAE,UAAU,CAAC,OAAO,EAAE,CAAC,EAAE,CAAC;CAClC,CAAC"}
1
+ {"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../../../src/chain/bls/multithread/types.ts"],"names":[],"mappings":"AAAA,OAAO,EAAC,KAAK,eAAe,EAAC,MAAM,+BAA+B,CAAC;AACnE,OAAO,EAAC,uBAAuB,EAAE,mBAAmB,EAAC,MAAM,iBAAiB,CAAC;AAE7E,MAAM,MAAM,UAAU,GAAG;IACvB,QAAQ,EAAE,MAAM,CAAC;CAClB,CAAC;AAEF,oBAAY,gBAAgB;IAC1B,OAAO,YAAY;IACnB,WAAW,iBAAiB;CAC7B;AAED,MAAM,MAAM,iBAAiB,GAAG;IAC9B,IAAI,EAAE,gBAAgB,CAAC,OAAO,CAAC;IAC/B,IAAI,EAAE,mBAAmB,CAAC;IAC1B,IAAI,EAAE,eAAe,EAAE,CAAC;CACzB,CAAC;AAEF,MAAM,MAAM,qBAAqB,GAAG;IAClC,IAAI,EAAE,gBAAgB,CAAC,WAAW,CAAC;IACnC,IAAI,EAAE,mBAAmB,CAAC;IAC1B,IAAI,EAAE,uBAAuB,EAAE,CAAC;IAChC,OAAO,EAAE,UAAU,CAAC;CACrB,CAAC;AAEF,MAAM,MAAM,UAAU,GAAG,iBAAiB,GAAG,qBAAqB,CAAC;AAEnE,oBAAY,cAAc;IACxB,OAAO,YAAY;IACnB,KAAK,UAAU;CAChB;AAED,oBAAY,yBAAyB;IACnC,KAAK,UAAU;IACf,MAAM,WAAW;IACjB,QAAQ,aAAa;IACrB,WAAW,iBAAiB;CAC7B;AAED,MAAM,MAAM,gBAAgB,GAAG;IAC7B,SAAS,EAAE,yBAAyB,CAAC;IACrC,QAAQ,EAAE,MAAM,CAAC;IACjB,aAAa,EAAE,MAAM,CAAC;CACvB,CAAC;AAEF,MAAM,MAAM,eAAe,GAAG;IAAC,IAAI,EAAE,cAAc,CAAC,KAAK,CAAC;IAAC,KAAK,EAAE,KAAK,CAAA;CAAC,CAAC;AACzE,MAAM,MAAM,UAAU,CAAC,CAAC,IAAI;IAAC,IAAI,EAAE,cAAc,CAAC,OAAO,CAAC;IAAC,MAAM,EAAE,CAAC,CAAA;CAAC,GAAG,eAAe,CAAC;AAExF,MAAM,MAAM,aAAa,GAAG;IAC1B,2DAA2D;IAC3D,QAAQ,EAAE,MAAM,CAAC;IACjB,kDAAkD;IAClD,YAAY,EAAE,MAAM,CAAC;IACrB,2EAA2E;IAC3E,gBAAgB,EAAE,MAAM,CAAC;IACzB,+EAA+E;IAC/E,iBAAiB,EAAE,gBAAgB,EAAE,CAAC;IACtC,8EAA8E;IAC9E,eAAe,EAAE,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;IAClC,4EAA4E;IAC5E,aAAa,EAAE,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;IAChC,OAAO,EAAE,UAAU,CAAC,OAAO,EAAE,CAAC,EAAE,CAAC;CAClC,CAAC"}
@@ -1,6 +1,6 @@
1
1
  import worker from "node:worker_threads";
2
- import { verifySignatureSets, verifySignatureSetsSameMessage, } from "@chainsafe/lodestar-z/bls-verifier";
3
2
  import { expose } from "@chainsafe/threads/worker";
3
+ import { verifySignatureSets, verifySignatureSetsSameMessage } from "@lodestar/native/bls-verifier";
4
4
  import { JobQueueItemType, VerificationCallOperation, WorkResultCode, } from "./types.js";
5
5
  import { chunkifyMaximizeChunkSize } from "./utils.js";
6
6
  /**
@@ -1 +1 @@
1
- {"version":3,"file":"worker.js","sourceRoot":"","sources":["../../../../src/chain/bls/multithread/worker.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"worker.js","sourceRoot":"","sources":["../../../../src/chain/bls/multithread/worker.ts"],"names":[],"mappings":"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"}
@@ -1,4 +1,4 @@
1
- import { verifySignatureSetsSameMessage } from "@chainsafe/lodestar-z/bls-verifier";
1
+ import { verifySignatureSetsSameMessage } from "@lodestar/native/bls-verifier";
2
2
  import { chunkSameMessageSignatureSets, getAggregatedPubkeysCount, verifySignatureSetsInBatches } from "./utils.js";
3
3
  export class BlsSingleThreadVerifier {
4
4
  metrics;
@@ -1 +1 @@
1
- {"version":3,"file":"singleThread.js","sourceRoot":"","sources":["../../../src/chain/bls/singleThread.ts"],"names":[],"mappings":"AAAA,OAAO,EAAC,8BAA8B,EAAC,MAAM,oCAAoC,CAAC;AAIlF,OAAO,EAAC,6BAA6B,EAAE,yBAAyB,EAAE,4BAA4B,EAAC,MAAM,YAAY,CAAC;AAElH,MAAM,OAAO,uBAAuB;IACjB,OAAO,CAAiB;IACzC,YAAY,EAAC,OAAO,GAAG,IAAI,EAA4B;QACrD,IAAI,CAAC,OAAO,GAAG,OAAO,CAAC;IACzB,CAAC;IAED,KAAK,CAAC,mBAAmB,CAAC,IAAqB;QAC7C,IAAI,CAAC,OAAO,EAAE,GAAG,CAAC,iBAAiB,CAAC,GAAG,CAAC,yBAAyB,CAAC,IAAI,CAAC,CAAC,CAAC;QAEzE,MAAM,KAAK,GAAG,IAAI,CAAC,OAAO,EAAE,aAAa,CAAC,8BAA8B,CAAC,UAAU,EAAE,CAAC;QACtF,MAAM,OAAO,GAAG,4BAA4B,CAAC,IAAI,CAAC,CAAC;QAEnD,2DAA2D;QAC3D,IAAI,KAAK,EAAE,CAAC;YACV,KAAK,EAAE,CAAC;QACV,CAAC;QAED,OAAO,OAAO,CAAC;IACjB,CAAC;IAED,KAAK,CAAC,8BAA8B,CAAC,IAA+B,EAAE,OAAmB;QACvF,MAAM,KAAK,GAAG,IAAI,CAAC,OAAO,EAAE,aAAa,CAAC,8BAA8B,CAAC,UAAU,EAAE,CAAC;QACtF,MAAM,MAAM,GAAc,EAAE,CAAC;QAC7B,KAAK,MAAM,SAAS,IAAI,6BAA6B,CAAC,IAAI,CAAC,EAAE,CAAC;YAC5D,MAAM,CAAC,IAAI,CAAC,GAAG,8BAA8B,CAAC,SAAS,EAAE,OAAO,CAAC,CAAC,CAAC;QACrE,CAAC;QACD,KAAK,EAAE,EAAE,CAAC;QACV,OAAO,MAAM,CAAC;IAChB,CAAC;IAED,KAAK,CAAC,KAAK;QACT,gBAAgB;IAClB,CAAC;IAED,aAAa;QACX,qFAAqF;QACrF,OAAO,IAAI,CAAC;IACd,CAAC;CACF"}
1
+ {"version":3,"file":"singleThread.js","sourceRoot":"","sources":["../../../src/chain/bls/singleThread.ts"],"names":[],"mappings":"AAAA,OAAO,EAAC,8BAA8B,EAAC,MAAM,+BAA+B,CAAC;AAI7E,OAAO,EAAC,6BAA6B,EAAE,yBAAyB,EAAE,4BAA4B,EAAC,MAAM,YAAY,CAAC;AAElH,MAAM,OAAO,uBAAuB;IACjB,OAAO,CAAiB;IACzC,YAAY,EAAC,OAAO,GAAG,IAAI,EAA4B;QACrD,IAAI,CAAC,OAAO,GAAG,OAAO,CAAC;IACzB,CAAC;IAED,KAAK,CAAC,mBAAmB,CAAC,IAAqB;QAC7C,IAAI,CAAC,OAAO,EAAE,GAAG,CAAC,iBAAiB,CAAC,GAAG,CAAC,yBAAyB,CAAC,IAAI,CAAC,CAAC,CAAC;QAEzE,MAAM,KAAK,GAAG,IAAI,CAAC,OAAO,EAAE,aAAa,CAAC,8BAA8B,CAAC,UAAU,EAAE,CAAC;QACtF,MAAM,OAAO,GAAG,4BAA4B,CAAC,IAAI,CAAC,CAAC;QAEnD,2DAA2D;QAC3D,IAAI,KAAK,EAAE,CAAC;YACV,KAAK,EAAE,CAAC;QACV,CAAC;QAED,OAAO,OAAO,CAAC;IACjB,CAAC;IAED,KAAK,CAAC,8BAA8B,CAAC,IAA+B,EAAE,OAAmB;QACvF,MAAM,KAAK,GAAG,IAAI,CAAC,OAAO,EAAE,aAAa,CAAC,8BAA8B,CAAC,UAAU,EAAE,CAAC;QACtF,MAAM,MAAM,GAAc,EAAE,CAAC;QAC7B,KAAK,MAAM,SAAS,IAAI,6BAA6B,CAAC,IAAI,CAAC,EAAE,CAAC;YAC5D,MAAM,CAAC,IAAI,CAAC,GAAG,8BAA8B,CAAC,SAAS,EAAE,OAAO,CAAC,CAAC,CAAC;QACrE,CAAC;QACD,KAAK,EAAE,EAAE,CAAC;QACV,OAAO,MAAM,CAAC;IAChB,CAAC;IAED,KAAK,CAAC,KAAK;QACT,gBAAgB;IAClB,CAAC;IAED,aAAa;QACX,qFAAqF;QACrF,OAAO,IAAI,CAAC;IACd,CAAC;CACF"}
@@ -1,4 +1,4 @@
1
- import { BLS_VERIFIER_MAX_BATCH_SIZE, BLS_VERIFIER_MAX_SAME_MESSAGE_BATCH_SIZE, verifySignatureSets, } from "@chainsafe/lodestar-z/bls-verifier";
1
+ import { BLS_VERIFIER_MAX_BATCH_SIZE, BLS_VERIFIER_MAX_SAME_MESSAGE_BATCH_SIZE, verifySignatureSets, } from "@lodestar/native/bls-verifier";
2
2
  import { SignatureSetType, toBlsSignatureSet } from "@lodestar/state-transition";
3
3
  export function verifySignatureSetsInBatches(signatureSets) {
4
4
  if (signatureSets.length === 0) {
@@ -1 +1 @@
1
- {"version":3,"file":"utils.js","sourceRoot":"","sources":["../../../src/chain/bls/utils.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,2BAA2B,EAC3B,wCAAwC,EACxC,mBAAmB,GACpB,MAAM,oCAAoC,CAAC;AAC5C,OAAO,EAAgB,gBAAgB,EAAE,iBAAiB,EAAC,MAAM,4BAA4B,CAAC;AAG9F,MAAM,UAAU,4BAA4B,CAAC,aAA8B;IACzE,IAAI,aAAa,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;QAC/B,OAAO,KAAK,CAAC;IACf,CAAC;IAED,KAAK,IAAI,KAAK,GAAG,CAAC,EAAE,KAAK,GAAG,aAAa,CAAC,MAAM,EAAE,KAAK,IAAI,2BAA2B,EAAE,CAAC;QACvF,MAAM,IAAI,GAAG,aAAa,CAAC,KAAK,CAAC,KAAK,EAAE,KAAK,GAAG,2BAA2B,CAAC,CAAC,GAAG,CAAC,iBAAiB,CAAC,CAAC;QACpG,IAAI,CAAC,mBAAmB,CAAC,IAAI,CAAC,EAAE,CAAC;YAC/B,OAAO,KAAK,CAAC;QACf,CAAC;IACH,CAAC;IAED,OAAO,IAAI,CAAC;AACd,CAAC;AAED,MAAM,UAAU,6BAA6B,CAAC,IAA+B;IAC3E,MAAM,MAAM,GAAgC,EAAE,CAAC;IAC/C,KAAK,IAAI,KAAK,GAAG,CAAC,EAAE,KAAK,GAAG,IAAI,CAAC,MAAM,EAAE,KAAK,IAAI,wCAAwC,EAAE,CAAC;QAC3F,MAAM,CAAC,IAAI,CAAC,IAAI,CAAC,KAAK,CAAC,KAAK,EAAE,KAAK,GAAG,wCAAwC,CAAC,CAAC,CAAC;IACnF,CAAC;IACD,OAAO,MAAM,CAAC;AAChB,CAAC;AAED,MAAM,UAAU,yBAAyB,CAAC,aAA8B;IACtE,IAAI,YAAY,GAAG,CAAC,CAAC;IACrB,KAAK,MAAM,GAAG,IAAI,aAAa,EAAE,CAAC;QAChC,IAAI,GAAG,CAAC,IAAI,KAAK,gBAAgB,CAAC,SAAS,EAAE,CAAC;YAC5C,YAAY,IAAI,GAAG,CAAC,OAAO,CAAC,MAAM,CAAC;QACrC,CAAC;IACH,CAAC;IACD,OAAO,YAAY,CAAC;AACtB,CAAC"}
1
+ {"version":3,"file":"utils.js","sourceRoot":"","sources":["../../../src/chain/bls/utils.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,2BAA2B,EAC3B,wCAAwC,EACxC,mBAAmB,GACpB,MAAM,+BAA+B,CAAC;AACvC,OAAO,EAAgB,gBAAgB,EAAE,iBAAiB,EAAC,MAAM,4BAA4B,CAAC;AAG9F,MAAM,UAAU,4BAA4B,CAAC,aAA8B;IACzE,IAAI,aAAa,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;QAC/B,OAAO,KAAK,CAAC;IACf,CAAC;IAED,KAAK,IAAI,KAAK,GAAG,CAAC,EAAE,KAAK,GAAG,aAAa,CAAC,MAAM,EAAE,KAAK,IAAI,2BAA2B,EAAE,CAAC;QACvF,MAAM,IAAI,GAAG,aAAa,CAAC,KAAK,CAAC,KAAK,EAAE,KAAK,GAAG,2BAA2B,CAAC,CAAC,GAAG,CAAC,iBAAiB,CAAC,CAAC;QACpG,IAAI,CAAC,mBAAmB,CAAC,IAAI,CAAC,EAAE,CAAC;YAC/B,OAAO,KAAK,CAAC;QACf,CAAC;IACH,CAAC;IAED,OAAO,IAAI,CAAC;AACd,CAAC;AAED,MAAM,UAAU,6BAA6B,CAAC,IAA+B;IAC3E,MAAM,MAAM,GAAgC,EAAE,CAAC;IAC/C,KAAK,IAAI,KAAK,GAAG,CAAC,EAAE,KAAK,GAAG,IAAI,CAAC,MAAM,EAAE,KAAK,IAAI,wCAAwC,EAAE,CAAC;QAC3F,MAAM,CAAC,IAAI,CAAC,IAAI,CAAC,KAAK,CAAC,KAAK,EAAE,KAAK,GAAG,wCAAwC,CAAC,CAAC,CAAC;IACnF,CAAC;IACD,OAAO,MAAM,CAAC;AAChB,CAAC;AAED,MAAM,UAAU,yBAAyB,CAAC,aAA8B;IACtE,IAAI,YAAY,GAAG,CAAC,CAAC;IACrB,KAAK,MAAM,GAAG,IAAI,aAAa,EAAE,CAAC;QAChC,IAAI,GAAG,CAAC,IAAI,KAAK,gBAAgB,CAAC,SAAS,EAAE,CAAC;YAC5C,YAAY,IAAI,GAAG,CAAC,OAAO,CAAC,MAAM,CAAC;QACrC,CAAC;IACH,CAAC;IACD,OAAO,YAAY,CAAC;AACtB,CAAC"}
@@ -1,8 +1,8 @@
1
1
  import { PrivateKey } from "@libp2p/interface";
2
- import { type PubkeyCache } from "@chainsafe/lodestar-z/pubkeys";
3
2
  import { Type } from "@chainsafe/ssz";
4
3
  import { BeaconConfig } from "@lodestar/config";
5
4
  import { CheckpointWithHex, IForkChoice, ProtoBlock } from "@lodestar/fork-choice";
5
+ import { type PubkeyCache } from "@lodestar/native/pubkeys";
6
6
  import { EpochShuffling, IBeaconStateView } from "@lodestar/state-transition";
7
7
  import { BeaconBlock, BlindedBeaconBlock, DataColumnSidecar, Epoch, Root, RootHex, SignedBeaconBlock, Slot, Status, UintNum64, ValidatorIndex, Wei, deneb, gloas, phase0, rewards } from "@lodestar/types";
8
8
  import { Logger } from "@lodestar/utils";
@@ -29,13 +29,15 @@ import { BuilderCircuitBreaker } from "./builderCircuitBreaker.js";
29
29
  import { ColumnReconstructionTracker } from "./ColumnReconstructionTracker.js";
30
30
  import { ChainEventEmitter } from "./emitter.js";
31
31
  import { ForkchoiceCaller } from "./forkChoice/index.js";
32
+ import { ForkChoiceExecutionEngine } from "./forkChoiceExecutionEngine.js";
32
33
  import { GetBlobsTracker } from "./GetBlobsTracker.js";
33
34
  import { CommonBlockBody, IBeaconChain, ProposerPreparationData, StateGetOpts } from "./interface.js";
34
35
  import { LightClientServer } from "./lightClient/index.js";
35
- import { AggregatedAttestationPool, AttestationPool, DeferredVoluntaryExitPool, ExecutionPayloadBidPool, InclusionListStore, OpPool, PayloadAttestationPool, ProposerPreferencesPool, SyncCommitteeMessagePool, SyncContributionAndProofPool } from "./opPools/index.js";
36
+ import { AggregatedAttestationPool, AttestationPool, DeferredVoluntaryExitPool, ExecutionPayloadBidPool, InclusionListStore, OpPool, PayloadAttestationPool, ProposerPreferencesPool, SingleAttestationPool, SyncCommitteeMessagePool, SyncContributionAndProofPool } from "./opPools/index.js";
36
37
  import { IChainOptions } from "./options.js";
37
38
  import { AssembledBlockType, BlockType, ProduceResult } from "./produceBlock/index.js";
38
39
  import { BlockAttributes } from "./produceBlock/produceBlockBody.js";
40
+ import { ProposerTracker } from "./proposerTracker.js";
39
41
  import { QueuedStateRegenerator, RegenCaller } from "./regen/index.js";
40
42
  import { ReprocessController } from "./reprocess.js";
41
43
  import { PayloadEnvelopeInput, SeenAggregators, SeenAttesters, SeenBlockProposers, SeenContributionAndProof, SeenExecutionPayloadBids, SeenPayloadAttesters, SeenPayloadEnvelopeInput, SeenSyncCommitteeMessages } from "./seenCache/index.js";
@@ -48,7 +50,7 @@ import { ValidatorMonitor } from "./validatorMonitor.js";
48
50
  export declare class BeaconChain implements IBeaconChain {
49
51
  readonly genesisTime: UintNum64;
50
52
  readonly genesisValidatorsRoot: Root;
51
- readonly executionEngine: IExecutionEngine;
53
+ readonly executionEngine: ForkChoiceExecutionEngine;
52
54
  readonly executionBuilder?: IExecutionBuilder;
53
55
  readonly builderCircuitBreaker: BuilderCircuitBreaker;
54
56
  readonly builderApiClient: BuilderApiClient;
@@ -71,6 +73,13 @@ export declare class BeaconChain implements IBeaconChain {
71
73
  readonly unfinalizedPayloadEnvelopeWrites: JobItemQueue<[PayloadEnvelopeInput], void>;
72
74
  readonly attestationPool: AttestationPool;
73
75
  readonly aggregatedAttestationPool: AggregatedAttestationPool;
76
+ readonly singleAttestationPool: SingleAttestationPool;
77
+ readonly proposerTracker: ProposerTracker;
78
+ /**
79
+ * Head state epoch and decision root of its next epoch proposers when local proposals were last refreshed. The root
80
+ * alone is not enough: a reorg onto a branch without blocks in a whole epoch keeps the root but moves the epoch
81
+ */
82
+ private localProposalsKey;
74
83
  readonly syncCommitteeMessagePool: SyncCommitteeMessagePool;
75
84
  readonly syncContributionAndProofPool: SyncContributionAndProofPool;
76
85
  readonly executionPayloadBidPool: ExecutionPayloadBidPool;
@@ -196,7 +205,6 @@ export declare class BeaconChain implements IBeaconChain {
196
205
  slot: Slot;
197
206
  } | null>;
198
207
  getBlobSidecars(blockSlot: Slot, blockRootHex: string): Promise<deneb.BlobSidecars | null>;
199
- getSerializedBlobSidecars(blockSlot: Slot, blockRootHex: string): Promise<Uint8Array | null>;
200
208
  getSerializedExecutionPayloadEnvelope(blockSlot: Slot, blockRootHex: string): Promise<Uint8Array | null>;
201
209
  /**
202
210
  * Batch variant: archived header envelopes are rebuilt 32 per EL round-trip. Aligned with `requests`.
@@ -244,6 +252,11 @@ export declare class BeaconChain implements IBeaconChain {
244
252
  private produceProposerSlashing;
245
253
  getStatus(): Status;
246
254
  recomputeForkChoiceHead(caller: ForkchoiceCaller): ProtoBlock;
255
+ /**
256
+ * Apply chain side effects of a fork choice head change: head state, head metrics, and reorg detection
257
+ */
258
+ onHeadChanged(oldHead: ProtoBlock, newHead: ProtoBlock, maybeHeadState?: IBeaconStateView): void;
259
+ private recomputeHeadAfterELInvalidResponse;
247
260
  /**
248
261
  * Emit `head` and `head_v2` when the fork choice head differs between two observations. Every caller that
249
262
  * can move the head, `updateAndGetHead()` and `updateTime()`, must capture the head before and pass both.
@@ -290,6 +303,14 @@ export declare class BeaconChain implements IBeaconChain {
290
303
  private persistSszObject;
291
304
  private onScrapeMetrics;
292
305
  private onClockSlot;
306
+ /**
307
+ * Track upcoming proposals of validators connected to this node, so that SingleAttestationPool only collects and
308
+ * the network only subscribes to all attestation subnets before them. Proposals only change when the decision block
309
+ * of next epoch proposers changes (the head enters a new epoch or reorgs that block) or a new validator connects,
310
+ * set localProposalsKey to null before calling for the latter.
311
+ * Never throws, it runs during block import.
312
+ */
313
+ private refreshLocalProposals;
293
314
  private onClockEpoch;
294
315
  protected onNewHead(head: ProtoBlock): void;
295
316
  private onForkChoiceJustified;
@@ -1 +1 @@
1
- {"version":3,"file":"chain.d.ts","sourceRoot":"","sources":["../../src/chain/chain.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"chain.d.ts","sourceRoot":"","sources":["../../src/chain/chain.ts"],"names":[],"mappings":"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"}
@@ -1,12 +1,11 @@
1
1
  import path from "node:path";
2
2
  import { routes } from "@lodestar/api";
3
- import { EpochDifference, PayloadStatus, UpdateHeadOpt, } from "@lodestar/fork-choice";
4
- import { EFFECTIVE_BALANCE_INCREMENT, GENESIS_SLOT, SLOTS_PER_EPOCH, isForkPostGloas, } from "@lodestar/params";
5
- import { computeEndSlotAtEpoch, computeEpochAtSlot, computeStartSlotAtEpoch, getEffectiveBalancesFromStateBytes, isStatePostAltair, isStatePostElectra, isStatePostGloas, } from "@lodestar/state-transition";
3
+ import { AncestorStatus, EpochDifference, PayloadStatus, UpdateHeadOpt, } from "@lodestar/fork-choice";
4
+ import { EFFECTIVE_BALANCE_INCREMENT, GENESIS_SLOT, SLOTS_PER_EPOCH, isForkPostFulu, isForkPostGloas, } from "@lodestar/params";
5
+ import { computeEndSlotAtEpoch, computeEpochAtSlot, computeStartSlotAtEpoch, getEffectiveBalancesFromStateBytes, isStatePostAltair, isStatePostElectra, isStatePostGloas, proposerShufflingDecisionRoot, } from "@lodestar/state-transition";
6
6
  import { isBlindedBeaconBlock, ssz, sszTypesFor, } from "@lodestar/types";
7
7
  import { fromHex, gweiToWei, isErrorAborted, pruneSetToMax, sleep, toRootHex } from "@lodestar/utils";
8
8
  import { GENESIS_EPOCH, HALF_SLOT_BPS, ZERO_HASH } from "../constants/index.js";
9
- import { BLOB_SIDECARS_IN_WRAPPER_INDEX } from "../db/repositories/blobSidecars.js";
10
9
  import { decodeArchivedEnvelope } from "../db/repositories/index.js";
11
10
  import { BuilderApiClient } from "../execution/builder/apiClient.js";
12
11
  import { BuilderStatus } from "../execution/builder/http.js";
@@ -24,7 +23,7 @@ import { getSlotFromSignedBeaconBlockSerialized } from "../util/sszBytes.js";
24
23
  import { ArchiveStore } from "./archiveStore/archiveStore.js";
25
24
  import { CheckpointBalancesCache } from "./balancesCache.js";
26
25
  import { BeaconProposerCache } from "./beaconProposerCache.js";
27
- import { isBlockInputBlobs, isBlockInputColumns } from "./blocks/blockInput/index.js";
26
+ import { isBlockInputColumns } from "./blocks/blockInput/index.js";
28
27
  import { BlockProcessor } from "./blocks/index.js";
29
28
  import { PayloadEnvelopeInputSource } from "./blocks/payloadEnvelopeInput/index.js";
30
29
  import { PayloadEnvelopeProcessor } from "./blocks/payloadEnvelopeProcessor.js";
@@ -34,15 +33,17 @@ import { BlsMultiThreadWorkerPool, BlsSingleThreadVerifier } from "./bls/index.j
34
33
  import { BuilderCircuitBreaker } from "./builderCircuitBreaker.js";
35
34
  import { ColumnReconstructionTracker } from "./ColumnReconstructionTracker.js";
36
35
  import { ChainEvent, ChainEventEmitter } from "./emitter.js";
37
- import { initializeForkChoice } from "./forkChoice/index.js";
36
+ import { ForkchoiceCaller, initializeForkChoice } from "./forkChoice/index.js";
37
+ import { ForkChoiceExecutionEngine } from "./forkChoiceExecutionEngine.js";
38
38
  import { GetBlobsTracker } from "./GetBlobsTracker.js";
39
39
  import { FindHeadFnName } from "./interface.js";
40
40
  import { LightClientServer } from "./lightClient/index.js";
41
- import { AggregatedAttestationPool, AttestationPool, DeferredVoluntaryExitPool, ExecutionPayloadBidPool, InclusionListStore, OpPool, PayloadAttestationPool, ProposerPreferencesPool, SyncCommitteeMessagePool, SyncContributionAndProofPool, } from "./opPools/index.js";
41
+ import { AggregatedAttestationPool, AttestationPool, DeferredVoluntaryExitPool, ExecutionPayloadBidPool, InclusionListStore, OpPool, PayloadAttestationPool, ProposerPreferencesPool, SingleAttestationPool, SyncCommitteeMessagePool, SyncContributionAndProofPool, } from "./opPools/index.js";
42
42
  import { PrepareNextSlotScheduler } from "./prepareNextSlot.js";
43
43
  import { computeNewStateRoot } from "./produceBlock/computeNewStateRoot.js";
44
44
  import { BlockType } from "./produceBlock/index.js";
45
45
  import { produceBlockBody, produceCommonBlockBody } from "./produceBlock/produceBlockBody.js";
46
+ import { ProposerTracker } from "./proposerTracker.js";
46
47
  import { QueuedStateRegenerator, RegenCaller } from "./regen/index.js";
47
48
  import { ReprocessController } from "./reprocess.js";
48
49
  import { SeenAggregators, SeenAttesters, SeenBlockProposers, SeenContributionAndProof, SeenExecutionPayloadBids, SeenPayloadAttesters, SeenPayloadEnvelopeInput, SeenSyncCommitteeMessages, } from "./seenCache/index.js";
@@ -105,6 +106,13 @@ export class BeaconChain {
105
106
  // Ops pool
106
107
  attestationPool;
107
108
  aggregatedAttestationPool;
109
+ singleAttestationPool;
110
+ proposerTracker;
111
+ /**
112
+ * Head state epoch and decision root of its next epoch proposers when local proposals were last refreshed. The root
113
+ * alone is not enough: a reorg onto a branch without blocks in a whole epoch keeps the root but moves the epoch
114
+ */
115
+ localProposalsKey = null;
108
116
  syncCommitteeMessagePool;
109
117
  syncContributionAndProofPool;
110
118
  executionPayloadBidPool;
@@ -174,7 +182,6 @@ export class BeaconChain {
174
182
  this.genesisTime = anchorState.genesisTime;
175
183
  this.anchorStateLatestBlockSlot = anchorState.latestBlockHeader.slot;
176
184
  this.genesisValidatorsRoot = anchorState.genesisValidatorsRoot;
177
- this.executionEngine = executionEngine;
178
185
  this.executionBuilder = executionBuilder;
179
186
  const signal = this.abortController.signal;
180
187
  const emitter = new ChainEventEmitter();
@@ -187,6 +194,8 @@ export class BeaconChain {
187
194
  this.blacklistedBlocks = new Map((opts.blacklistedBlocks ?? []).map((hex) => [hex, null]));
188
195
  this.attestationPool = new AttestationPool(config, clock, this.opts?.preaggregateSlotDistance, metrics);
189
196
  this.aggregatedAttestationPool = new AggregatedAttestationPool(this.config, metrics, logger);
197
+ this.singleAttestationPool = new SingleAttestationPool(metrics);
198
+ this.proposerTracker = new ProposerTracker(this.opts.singleAttestationIgnoreProposalDuty ?? false, metrics);
190
199
  this.syncCommitteeMessagePool = new SyncCommitteeMessagePool(config, clock, this.opts?.preaggregateSlotDistance);
191
200
  this.syncContributionAndProofPool = new SyncContributionAndProofPool(config, clock, metrics, logger);
192
201
  this.executionPayloadBidPool = new ExecutionPayloadBidPool();
@@ -283,6 +292,12 @@ export class BeaconChain {
283
292
  this.blockProcessor = new BlockProcessor(this, metrics, opts, signal);
284
293
  this.payloadEnvelopeProcessor = new PayloadEnvelopeProcessor(this, metrics, signal);
285
294
  this.forkChoice = forkChoice;
295
+ this.executionEngine = new ForkChoiceExecutionEngine(executionEngine, {
296
+ forkChoice,
297
+ recomputeHeadAfterELInvalidResponse: () => this.recomputeHeadAfterELInvalidResponse(),
298
+ logger,
299
+ metrics,
300
+ });
286
301
  this.builderCircuitBreaker = new BuilderCircuitBreaker({ faultInspectionWindow: opts.faultInspectionWindow, allowedFaults: opts.allowedFaults }, { forkChoice, logger, metrics });
287
302
  this.builderApiClient = new BuilderApiClient(builderApiClientOpts ?? {}, config, clock, bls, metrics, logger);
288
303
  this.seenPayloadEnvelopeInputCache = new SeenPayloadEnvelopeInput({
@@ -660,43 +675,12 @@ export class BeaconChain {
660
675
  return data && { block: data.value, executionOptimistic: false, finalized: true, slot: data.key };
661
676
  }
662
677
  async getBlobSidecars(blockSlot, blockRootHex) {
663
- const blockInput = this.seenBlockInputCache.get(blockRootHex);
664
- if (blockInput) {
665
- if (!isBlockInputBlobs(blockInput)) {
666
- throw new Error(`Expected block input to have blobs: slot=${blockSlot} root=${blockRootHex}`);
667
- }
668
- if (!blockInput.hasAllData()) {
669
- return null;
670
- }
671
- return blockInput.getBlobs();
672
- }
673
678
  const unfinalizedBlobSidecars = (await this.db.blobSidecars.get(fromHex(blockRootHex)))?.blobSidecars ?? null;
674
679
  if (unfinalizedBlobSidecars) {
675
680
  return unfinalizedBlobSidecars;
676
681
  }
677
682
  return (await this.db.blobSidecarsArchive.get(blockSlot))?.blobSidecars ?? null;
678
683
  }
679
- async getSerializedBlobSidecars(blockSlot, blockRootHex) {
680
- const blockInput = this.seenBlockInputCache.get(blockRootHex);
681
- if (blockInput) {
682
- if (!isBlockInputBlobs(blockInput)) {
683
- throw new Error(`Expected block input to have blobs: slot=${blockSlot} root=${blockRootHex}`);
684
- }
685
- if (!blockInput.hasAllData()) {
686
- return null;
687
- }
688
- return ssz.deneb.BlobSidecars.serialize(blockInput.getBlobs());
689
- }
690
- const unfinalizedBlobSidecarsWrapper = await this.db.blobSidecars.getBinary(fromHex(blockRootHex));
691
- if (unfinalizedBlobSidecarsWrapper) {
692
- return unfinalizedBlobSidecarsWrapper.slice(BLOB_SIDECARS_IN_WRAPPER_INDEX);
693
- }
694
- const finalizedBlobSidecarsWrapper = await this.db.blobSidecarsArchive.getBinary(blockSlot);
695
- if (finalizedBlobSidecarsWrapper) {
696
- return finalizedBlobSidecarsWrapper.slice(BLOB_SIDECARS_IN_WRAPPER_INDEX);
697
- }
698
- return null;
699
- }
700
684
  async getSerializedExecutionPayloadEnvelope(blockSlot, blockRootHex) {
701
685
  const [bytes] = await this.getSerializedExecutionPayloadEnvelopes([{ blockSlot, blockRootHex }]);
702
686
  return bytes;
@@ -1051,6 +1035,50 @@ export class BeaconChain {
1051
1035
  timer?.();
1052
1036
  }
1053
1037
  }
1038
+ /**
1039
+ * Apply chain side effects of a fork choice head change: head state, head metrics, and reorg detection
1040
+ */
1041
+ onHeadChanged(oldHead, newHead, maybeHeadState) {
1042
+ // Set head state as strong reference
1043
+ this.regen.updateHeadState(newHead, maybeHeadState);
1044
+ const delaySec = this.clock.secFromSlot(newHead.slot);
1045
+ this.logger.verbose("New chain head", {
1046
+ slot: newHead.slot,
1047
+ root: newHead.blockRoot,
1048
+ payloadStatus: newHead.payloadStatus,
1049
+ delaySec,
1050
+ });
1051
+ this.metrics?.headSlot.set(newHead.slot);
1052
+ this.onNewHead(newHead);
1053
+ this.metrics?.forkChoice.changedHead.inc();
1054
+ const ancestorResult = this.forkChoice.getCommonAncestorDepth(oldHead, newHead);
1055
+ if (ancestorResult.code === AncestorStatus.CommonAncestor) {
1056
+ // CommonAncestor = chain reorg, old head and new head not direct descendants
1057
+ const forkChoiceReorgEventData = {
1058
+ depth: ancestorResult.depth,
1059
+ epoch: computeEpochAtSlot(newHead.slot),
1060
+ slot: newHead.slot,
1061
+ newHeadBlock: newHead.blockRoot,
1062
+ oldHeadBlock: oldHead.blockRoot,
1063
+ newHeadState: newHead.stateRoot,
1064
+ oldHeadState: oldHead.stateRoot,
1065
+ executionOptimistic: isOptimisticBlock(newHead),
1066
+ };
1067
+ this.emitter.emit(routes.events.EventType.chainReorg, forkChoiceReorgEventData);
1068
+ this.logger.verbose("Chain reorg", forkChoiceReorgEventData);
1069
+ this.metrics?.forkChoice.reorg.inc();
1070
+ this.metrics?.forkChoice.reorgDistance.observe(ancestorResult.depth);
1071
+ }
1072
+ }
1073
+ recomputeHeadAfterELInvalidResponse() {
1074
+ // validateLatestHash only re-scores proto-array, the cached head is still the old one
1075
+ const oldHead = this.forkChoice.getHead();
1076
+ const newHead = this.recomputeForkChoiceHead(ForkchoiceCaller.executionInvalid);
1077
+ if (newHead.blockRoot === oldHead.blockRoot && newHead.payloadStatus === oldHead.payloadStatus) {
1078
+ return;
1079
+ }
1080
+ this.onHeadChanged(oldHead, newHead);
1081
+ }
1054
1082
  /**
1055
1083
  * Emit `head` and `head_v2` when the fork choice head differs between two observations. Every caller that
1056
1084
  * can move the head, `updateAndGetHead()` and `updateTime()`, must capture the head before and pass both.
@@ -1099,9 +1127,9 @@ export class BeaconChain {
1099
1127
  this.metrics?.forkChoice.requests.inc();
1100
1128
  const timer = this.metrics?.forkChoice.findHead.startTimer({ caller: FindHeadFnName.predictProposerHead });
1101
1129
  const slot = this.clock.currentSlot;
1102
- const secFromSlot = this.clock.secFromSlot(slot);
1130
+ const msFromSlot = this.clock.msFromSlot(slot);
1103
1131
  try {
1104
- return this.forkChoice.updateAndGetHead({ mode: UpdateHeadOpt.GetPredictedProposerHead, secFromSlot, slot }).head;
1132
+ return this.forkChoice.updateAndGetHead({ mode: UpdateHeadOpt.GetPredictedProposerHead, msFromSlot, slot }).head;
1105
1133
  }
1106
1134
  catch (e) {
1107
1135
  this.metrics?.forkChoice.errors.inc({ entrypoint: UpdateHeadOpt.GetPredictedProposerHead });
@@ -1114,12 +1142,12 @@ export class BeaconChain {
1114
1142
  getProposerHead(slot) {
1115
1143
  this.metrics?.forkChoice.requests.inc();
1116
1144
  const timer = this.metrics?.forkChoice.findHead.startTimer({ caller: FindHeadFnName.getProposerHead });
1117
- const secFromSlot = this.clock.secFromSlot(slot);
1145
+ const msFromSlot = this.clock.msFromSlot(slot);
1118
1146
  try {
1119
1147
  // Do not emit head event here, when proposing we rely on the one emitted when importing our own block
1120
1148
  const { head, isHeadTimely, notReorgedReason } = this.forkChoice.updateAndGetHead({
1121
1149
  mode: UpdateHeadOpt.GetProposerHead,
1122
- secFromSlot,
1150
+ msFromSlot,
1123
1151
  slot,
1124
1152
  });
1125
1153
  if (isHeadTimely && notReorgedReason !== undefined) {
@@ -1360,6 +1388,8 @@ export class BeaconChain {
1360
1388
  this.metrics?.clockSlot.set(slot);
1361
1389
  this.attestationPool.prune(slot);
1362
1390
  this.aggregatedAttestationPool.prune(slot);
1391
+ this.proposerTracker.prune(slot);
1392
+ this.singleAttestationPool.prune(this.proposerTracker);
1363
1393
  this.syncCommitteeMessagePool.prune(slot);
1364
1394
  this.seenSyncCommitteeMessages.prune(slot);
1365
1395
  this.payloadAttestationPool.prune(slot);
@@ -1384,6 +1414,50 @@ export class BeaconChain {
1384
1414
  });
1385
1415
  }
1386
1416
  }
1417
+ /**
1418
+ * Track upcoming proposals of validators connected to this node, so that SingleAttestationPool only collects and
1419
+ * the network only subscribes to all attestation subnets before them. Proposals only change when the decision block
1420
+ * of next epoch proposers changes (the head enters a new epoch or reorgs that block) or a new validator connects,
1421
+ * set localProposalsKey to null before calling for the latter.
1422
+ * Never throws, it runs during block import.
1423
+ */
1424
+ refreshLocalProposals() {
1425
+ const clockSlot = this.clock.currentSlot;
1426
+ try {
1427
+ const headState = this.getHeadState();
1428
+ const headFork = this.config.getForkName(headState.slot);
1429
+ // post-fulu, the head state knows proposers of its epoch and the next one thanks to the proposer lookahead,
1430
+ // a pre-fulu state only predicts next epoch proposers
1431
+ if (!isForkPostFulu(headFork) || headState.epoch < computeEpochAtSlot(clockSlot) - 1) {
1432
+ return;
1433
+ }
1434
+ const decisionRoot = proposerShufflingDecisionRoot(headFork, headState, headState.epoch + 1);
1435
+ if (decisionRoot === null) {
1436
+ return;
1437
+ }
1438
+ const localProposalsKey = `${headState.epoch}_${toRootHex(decisionRoot)}`;
1439
+ if (localProposalsKey === this.localProposalsKey) {
1440
+ return;
1441
+ }
1442
+ this.localProposalsKey = localProposalsKey;
1443
+ const startSlot = computeStartSlotAtEpoch(headState.epoch);
1444
+ const newProposalSlots = [];
1445
+ for (const [i, proposerIndex] of [...headState.currentProposers, ...headState.nextProposers].entries()) {
1446
+ const proposalSlot = startSlot + i;
1447
+ if (proposalSlot >= clockSlot &&
1448
+ this.beaconProposerCache.has(proposerIndex) &&
1449
+ this.proposerTracker.addProposal(proposalSlot)) {
1450
+ newProposalSlots.push(proposalSlot);
1451
+ }
1452
+ }
1453
+ if (newProposalSlots.length > 0) {
1454
+ this.emitter.emit(ChainEvent.localProposalSlots, newProposalSlots);
1455
+ }
1456
+ }
1457
+ catch (e) {
1458
+ this.logger.debug("Error refreshing local proposals", { slot: clockSlot }, e);
1459
+ }
1460
+ }
1387
1461
  onClockEpoch(epoch) {
1388
1462
  this.metrics?.clockEpoch.set(epoch);
1389
1463
  this.seenAttesters.prune(epoch);
@@ -1396,6 +1470,7 @@ export class BeaconChain {
1396
1470
  onNewHead(head) {
1397
1471
  this.syncContributionAndProofPool.prune(head.slot);
1398
1472
  this.seenContributionAndProof.prune(head.slot);
1473
+ this.refreshLocalProposals();
1399
1474
  }
1400
1475
  onForkChoiceJustified(cp) {
1401
1476
  this.logger.verbose("Fork choice justified", { epoch: cp.epoch, root: cp.rootHex });
@@ -1453,6 +1528,9 @@ export class BeaconChain {
1453
1528
  const newValidatorCount = this.beaconProposerCache.getValidatorIndices().length;
1454
1529
  // Only update validator custody if we discovered new validators
1455
1530
  if (newValidatorCount > previousValidatorCount) {
1531
+ // new validators may propose in the current or next epoch, a failed attempt leaves null so the next head retries
1532
+ this.localProposalsKey = null;
1533
+ this.refreshLocalProposals();
1456
1534
  const finalizedCheckpoint = this.forkChoice.getFinalizedCheckpoint();
1457
1535
  await this.updateValidatorsCustodyRequirement(finalizedCheckpoint);
1458
1536
  }
@@ -1466,6 +1544,9 @@ export class BeaconChain {
1466
1544
  }
1467
1545
  // Only update validator custody if we discovered new validators
1468
1546
  if (hasNewValidators) {
1547
+ // new validators may propose in the current or next epoch, a failed attempt leaves null so the next head retries
1548
+ this.localProposalsKey = null;
1549
+ this.refreshLocalProposals();
1469
1550
  const finalizedCheckpoint = this.forkChoice.getFinalizedCheckpoint();
1470
1551
  await this.updateValidatorsCustodyRequirement(finalizedCheckpoint);
1471
1552
  }