@lodestar/beacon-node 1.51.0-dev.d422f387ac → 1.51.0-dev.dc21d14c20

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 (443) hide show
  1. package/lib/api/impl/beacon/blocks/index.d.ts.map +1 -1
  2. package/lib/api/impl/beacon/blocks/index.js +19 -61
  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 +17 -0
  6. package/lib/api/impl/beacon/pool/index.js.map +1 -1
  7. package/lib/api/impl/validator/index.d.ts +6 -0
  8. package/lib/api/impl/validator/index.d.ts.map +1 -1
  9. package/lib/api/impl/validator/index.js +38 -25
  10. package/lib/api/impl/validator/index.js.map +1 -1
  11. package/lib/chain/GetBlobsTracker.d.ts +2 -2
  12. package/lib/chain/GetBlobsTracker.d.ts.map +1 -1
  13. package/lib/chain/GetBlobsTracker.js +7 -31
  14. package/lib/chain/GetBlobsTracker.js.map +1 -1
  15. package/lib/chain/blocks/blockInput/blockInput.d.ts +11 -56
  16. package/lib/chain/blocks/blockInput/blockInput.d.ts.map +1 -1
  17. package/lib/chain/blocks/blockInput/blockInput.js +5 -241
  18. package/lib/chain/blocks/blockInput/blockInput.js.map +1 -1
  19. package/lib/chain/blocks/blockInput/errors.d.ts +2 -4
  20. package/lib/chain/blocks/blockInput/errors.d.ts.map +1 -1
  21. package/lib/chain/blocks/blockInput/errors.js.map +1 -1
  22. package/lib/chain/blocks/blockInput/types.d.ts +2 -18
  23. package/lib/chain/blocks/blockInput/types.d.ts.map +1 -1
  24. package/lib/chain/blocks/blockInput/types.js +0 -1
  25. package/lib/chain/blocks/blockInput/types.js.map +1 -1
  26. package/lib/chain/blocks/importBlock.d.ts.map +1 -1
  27. package/lib/chain/blocks/importBlock.js +36 -53
  28. package/lib/chain/blocks/importBlock.js.map +1 -1
  29. package/lib/chain/blocks/importExecutionPayload.d.ts +4 -0
  30. package/lib/chain/blocks/importExecutionPayload.d.ts.map +1 -1
  31. package/lib/chain/blocks/importExecutionPayload.js +24 -3
  32. package/lib/chain/blocks/importExecutionPayload.js.map +1 -1
  33. package/lib/chain/blocks/index.d.ts.map +1 -1
  34. package/lib/chain/blocks/index.js +2 -2
  35. package/lib/chain/blocks/index.js.map +1 -1
  36. package/lib/chain/blocks/types.d.ts +4 -20
  37. package/lib/chain/blocks/types.d.ts.map +1 -1
  38. package/lib/chain/blocks/types.js +0 -24
  39. package/lib/chain/blocks/types.js.map +1 -1
  40. package/lib/chain/blocks/verifyBlock.d.ts.map +1 -1
  41. package/lib/chain/blocks/verifyBlock.js +17 -6
  42. package/lib/chain/blocks/verifyBlock.js.map +1 -1
  43. package/lib/chain/blocks/verifyBlocksDataAvailability.d.ts.map +1 -1
  44. package/lib/chain/blocks/verifyBlocksDataAvailability.js +6 -1
  45. package/lib/chain/blocks/verifyBlocksDataAvailability.js.map +1 -1
  46. package/lib/chain/blocks/verifyBlocksExecutionPayloads.d.ts +1 -1
  47. package/lib/chain/blocks/verifyBlocksExecutionPayloads.d.ts.map +1 -1
  48. package/lib/chain/blocks/verifyBlocksExecutionPayloads.js +7 -3
  49. package/lib/chain/blocks/verifyBlocksExecutionPayloads.js.map +1 -1
  50. package/lib/chain/blocks/verifyBlocksSanityChecks.d.ts.map +1 -1
  51. package/lib/chain/blocks/verifyBlocksSanityChecks.js +4 -0
  52. package/lib/chain/blocks/verifyBlocksSanityChecks.js.map +1 -1
  53. package/lib/chain/blocks/verifyBlocksSignatures.d.ts.map +1 -1
  54. package/lib/chain/blocks/verifyBlocksSignatures.js +10 -5
  55. package/lib/chain/blocks/verifyBlocksSignatures.js.map +1 -1
  56. package/lib/chain/blocks/writeBlockInputToDb.d.ts +0 -2
  57. package/lib/chain/blocks/writeBlockInputToDb.d.ts.map +1 -1
  58. package/lib/chain/blocks/writeBlockInputToDb.js +6 -24
  59. package/lib/chain/blocks/writeBlockInputToDb.js.map +1 -1
  60. package/lib/chain/bls/interface.d.ts +2 -0
  61. package/lib/chain/bls/interface.d.ts.map +1 -1
  62. package/lib/chain/bls/multithread/index.d.ts +1 -1
  63. package/lib/chain/bls/multithread/index.d.ts.map +1 -1
  64. package/lib/chain/bls/multithread/index.js +45 -17
  65. package/lib/chain/bls/multithread/index.js.map +1 -1
  66. package/lib/chain/chain.d.ts +24 -3
  67. package/lib/chain/chain.d.ts.map +1 -1
  68. package/lib/chain/chain.js +120 -39
  69. package/lib/chain/chain.js.map +1 -1
  70. package/lib/chain/emitter.d.ts +7 -7
  71. package/lib/chain/emitter.d.ts.map +1 -1
  72. package/lib/chain/emitter.js +5 -5
  73. package/lib/chain/emitter.js.map +1 -1
  74. package/lib/chain/errors/executionPayloadEnvelope.d.ts +7 -0
  75. package/lib/chain/errors/executionPayloadEnvelope.d.ts.map +1 -1
  76. package/lib/chain/errors/executionPayloadEnvelope.js +1 -0
  77. package/lib/chain/errors/executionPayloadEnvelope.js.map +1 -1
  78. package/lib/chain/errors/index.d.ts +0 -1
  79. package/lib/chain/errors/index.d.ts.map +1 -1
  80. package/lib/chain/errors/index.js +0 -1
  81. package/lib/chain/errors/index.js.map +1 -1
  82. package/lib/chain/forkChoice/index.d.ts +11 -1
  83. package/lib/chain/forkChoice/index.d.ts.map +1 -1
  84. package/lib/chain/forkChoice/index.js +11 -0
  85. package/lib/chain/forkChoice/index.js.map +1 -1
  86. package/lib/chain/forkChoiceExecutionEngine.d.ts +51 -0
  87. package/lib/chain/forkChoiceExecutionEngine.d.ts.map +1 -0
  88. package/lib/chain/forkChoiceExecutionEngine.js +117 -0
  89. package/lib/chain/forkChoiceExecutionEngine.js.map +1 -0
  90. package/lib/chain/interface.d.ts +7 -4
  91. package/lib/chain/interface.d.ts.map +1 -1
  92. package/lib/chain/interface.js.map +1 -1
  93. package/lib/chain/opPools/aggregatedAttestationPool.d.ts +17 -4
  94. package/lib/chain/opPools/aggregatedAttestationPool.d.ts.map +1 -1
  95. package/lib/chain/opPools/aggregatedAttestationPool.js +177 -37
  96. package/lib/chain/opPools/aggregatedAttestationPool.js.map +1 -1
  97. package/lib/chain/opPools/index.d.ts +1 -0
  98. package/lib/chain/opPools/index.d.ts.map +1 -1
  99. package/lib/chain/opPools/index.js +1 -0
  100. package/lib/chain/opPools/index.js.map +1 -1
  101. package/lib/chain/opPools/singleAttestationPool.d.ts +77 -0
  102. package/lib/chain/opPools/singleAttestationPool.d.ts.map +1 -0
  103. package/lib/chain/opPools/singleAttestationPool.js +209 -0
  104. package/lib/chain/opPools/singleAttestationPool.js.map +1 -0
  105. package/lib/chain/options.d.ts +5 -2
  106. package/lib/chain/options.d.ts.map +1 -1
  107. package/lib/chain/options.js.map +1 -1
  108. package/lib/chain/produceBlock/produceBlockBody.d.ts +3 -2
  109. package/lib/chain/produceBlock/produceBlockBody.d.ts.map +1 -1
  110. package/lib/chain/produceBlock/produceBlockBody.js +3 -2
  111. package/lib/chain/produceBlock/produceBlockBody.js.map +1 -1
  112. package/lib/chain/proposerTracker.d.ts +31 -0
  113. package/lib/chain/proposerTracker.d.ts.map +1 -0
  114. package/lib/chain/proposerTracker.js +75 -0
  115. package/lib/chain/proposerTracker.js.map +1 -0
  116. package/lib/chain/regen/interface.d.ts +1 -1
  117. package/lib/chain/regen/interface.d.ts.map +1 -1
  118. package/lib/chain/regen/queued.d.ts +1 -1
  119. package/lib/chain/regen/queued.d.ts.map +1 -1
  120. package/lib/chain/regen/queued.js +5 -3
  121. package/lib/chain/regen/queued.js.map +1 -1
  122. package/lib/chain/seenCache/seenGossipBlockInput.d.ts +7 -14
  123. package/lib/chain/seenCache/seenGossipBlockInput.d.ts.map +1 -1
  124. package/lib/chain/seenCache/seenGossipBlockInput.js +6 -65
  125. package/lib/chain/seenCache/seenGossipBlockInput.js.map +1 -1
  126. package/lib/chain/validation/executionPayloadEnvelope.d.ts +6 -0
  127. package/lib/chain/validation/executionPayloadEnvelope.d.ts.map +1 -1
  128. package/lib/chain/validation/executionPayloadEnvelope.js +53 -0
  129. package/lib/chain/validation/executionPayloadEnvelope.js.map +1 -1
  130. package/lib/chain/validation/syncCommittee.d.ts.map +1 -1
  131. package/lib/chain/validation/syncCommittee.js +16 -10
  132. package/lib/chain/validation/syncCommittee.js.map +1 -1
  133. package/lib/chain/validation/syncCommitteeContributionAndProof.d.ts.map +1 -1
  134. package/lib/chain/validation/syncCommitteeContributionAndProof.js +11 -0
  135. package/lib/chain/validation/syncCommitteeContributionAndProof.js.map +1 -1
  136. package/lib/chain/validatorMonitor.d.ts +1 -2
  137. package/lib/chain/validatorMonitor.d.ts.map +1 -1
  138. package/lib/chain/validatorMonitor.js +0 -3
  139. package/lib/chain/validatorMonitor.js.map +1 -1
  140. package/lib/db/repositories/blobSidecars.d.ts +0 -1
  141. package/lib/db/repositories/blobSidecars.d.ts.map +1 -1
  142. package/lib/db/repositories/blobSidecars.js +0 -1
  143. package/lib/db/repositories/blobSidecars.js.map +1 -1
  144. package/lib/execution/builder/apiClient.d.ts +14 -8
  145. package/lib/execution/builder/apiClient.d.ts.map +1 -1
  146. package/lib/execution/builder/apiClient.js +12 -10
  147. package/lib/execution/builder/apiClient.js.map +1 -1
  148. package/lib/execution/builder/http.d.ts +2 -0
  149. package/lib/execution/builder/http.d.ts.map +1 -1
  150. package/lib/execution/builder/http.js +2 -0
  151. package/lib/execution/builder/http.js.map +1 -1
  152. package/lib/execution/engine/http.d.ts +4 -6
  153. package/lib/execution/engine/http.d.ts.map +1 -1
  154. package/lib/execution/engine/http.js +8 -10
  155. package/lib/execution/engine/http.js.map +1 -1
  156. package/lib/execution/engine/interface.d.ts +17 -5
  157. package/lib/execution/engine/interface.d.ts.map +1 -1
  158. package/lib/execution/engine/interface.js.map +1 -1
  159. package/lib/execution/engine/jsonRpcTransport.d.ts +2 -4
  160. package/lib/execution/engine/jsonRpcTransport.d.ts.map +1 -1
  161. package/lib/execution/engine/jsonRpcTransport.js +2 -12
  162. package/lib/execution/engine/jsonRpcTransport.js.map +1 -1
  163. package/lib/execution/engine/mock.d.ts +0 -1
  164. package/lib/execution/engine/mock.d.ts.map +1 -1
  165. package/lib/execution/engine/mock.js +0 -4
  166. package/lib/execution/engine/mock.js.map +1 -1
  167. package/lib/execution/engine/restTransport.d.ts +2 -4
  168. package/lib/execution/engine/restTransport.d.ts.map +1 -1
  169. package/lib/execution/engine/restTransport.js +1 -15
  170. package/lib/execution/engine/restTransport.js.map +1 -1
  171. package/lib/execution/engine/sszTypes.d.ts +0 -9
  172. package/lib/execution/engine/sszTypes.d.ts.map +1 -1
  173. package/lib/execution/engine/sszTypes.js +0 -5
  174. package/lib/execution/engine/sszTypes.js.map +1 -1
  175. package/lib/execution/engine/transport.d.ts +1 -14
  176. package/lib/execution/engine/transport.d.ts.map +1 -1
  177. package/lib/execution/engine/types.d.ts +0 -8
  178. package/lib/execution/engine/types.d.ts.map +1 -1
  179. package/lib/execution/engine/types.js +0 -8
  180. package/lib/execution/engine/types.js.map +1 -1
  181. package/lib/execution/engine/utils.d.ts.map +1 -1
  182. package/lib/execution/engine/utils.js +3 -2
  183. package/lib/execution/engine/utils.js.map +1 -1
  184. package/lib/index.d.ts +1 -1
  185. package/lib/index.d.ts.map +1 -1
  186. package/lib/index.js +1 -1
  187. package/lib/index.js.map +1 -1
  188. package/lib/metrics/metrics/beacon.d.ts +0 -9
  189. package/lib/metrics/metrics/beacon.d.ts.map +1 -1
  190. package/lib/metrics/metrics/beacon.js +0 -30
  191. package/lib/metrics/metrics/beacon.js.map +1 -1
  192. package/lib/metrics/metrics/lodestar.d.ts +27 -8
  193. package/lib/metrics/metrics/lodestar.d.ts.map +1 -1
  194. package/lib/metrics/metrics/lodestar.js +74 -18
  195. package/lib/metrics/metrics/lodestar.js.map +1 -1
  196. package/lib/metrics/server/http.js +5 -5
  197. package/lib/metrics/server/http.js.map +1 -1
  198. package/lib/network/core/networkCore.d.ts +2 -1
  199. package/lib/network/core/networkCore.d.ts.map +1 -1
  200. package/lib/network/core/networkCore.js +4 -0
  201. package/lib/network/core/networkCore.js.map +1 -1
  202. package/lib/network/core/networkCoreWorker.js +1 -0
  203. package/lib/network/core/networkCoreWorker.js.map +1 -1
  204. package/lib/network/core/networkCoreWorkerHandler.d.ts +2 -1
  205. package/lib/network/core/networkCoreWorkerHandler.d.ts.map +1 -1
  206. package/lib/network/core/networkCoreWorkerHandler.js +3 -0
  207. package/lib/network/core/networkCoreWorkerHandler.js.map +1 -1
  208. package/lib/network/core/types.d.ts +4 -1
  209. package/lib/network/core/types.d.ts.map +1 -1
  210. package/lib/network/gossip/gossipsub.d.ts +1 -0
  211. package/lib/network/gossip/gossipsub.d.ts.map +1 -1
  212. package/lib/network/gossip/gossipsub.js +10 -0
  213. package/lib/network/gossip/gossipsub.js.map +1 -1
  214. package/lib/network/gossip/interface.d.ts +1 -8
  215. package/lib/network/gossip/interface.d.ts.map +1 -1
  216. package/lib/network/gossip/interface.js +0 -1
  217. package/lib/network/gossip/interface.js.map +1 -1
  218. package/lib/network/gossip/topic.d.ts +0 -16
  219. package/lib/network/gossip/topic.d.ts.map +1 -1
  220. package/lib/network/gossip/topic.js +0 -23
  221. package/lib/network/gossip/topic.js.map +1 -1
  222. package/lib/network/interface.d.ts +2 -5
  223. package/lib/network/interface.d.ts.map +1 -1
  224. package/lib/network/network.d.ts +6 -7
  225. package/lib/network/network.d.ts.map +1 -1
  226. package/lib/network/network.js +50 -37
  227. package/lib/network/network.js.map +1 -1
  228. package/lib/network/options.d.ts.map +1 -1
  229. package/lib/network/options.js +2 -0
  230. package/lib/network/options.js.map +1 -1
  231. package/lib/network/peers/peerManager.d.ts.map +1 -1
  232. package/lib/network/peers/peerManager.js +28 -1
  233. package/lib/network/peers/peerManager.js.map +1 -1
  234. package/lib/network/peers/utils/prioritizePeers.d.ts +4 -1
  235. package/lib/network/peers/utils/prioritizePeers.d.ts.map +1 -1
  236. package/lib/network/peers/utils/prioritizePeers.js +8 -16
  237. package/lib/network/peers/utils/prioritizePeers.js.map +1 -1
  238. package/lib/network/peers/utils/subnetMap.d.ts +5 -2
  239. package/lib/network/peers/utils/subnetMap.d.ts.map +1 -1
  240. package/lib/network/peers/utils/subnetMap.js +6 -3
  241. package/lib/network/peers/utils/subnetMap.js.map +1 -1
  242. package/lib/network/processor/extractSlotRootFns.d.ts.map +1 -1
  243. package/lib/network/processor/extractSlotRootFns.js +1 -8
  244. package/lib/network/processor/extractSlotRootFns.js.map +1 -1
  245. package/lib/network/processor/gossipHandlers.d.ts.map +1 -1
  246. package/lib/network/processor/gossipHandlers.js +43 -123
  247. package/lib/network/processor/gossipHandlers.js.map +1 -1
  248. package/lib/network/processor/gossipQueues/index.d.ts.map +1 -1
  249. package/lib/network/processor/gossipQueues/index.js +0 -6
  250. package/lib/network/processor/gossipQueues/index.js.map +1 -1
  251. package/lib/network/processor/gossipValidatorFn.d.ts.map +1 -1
  252. package/lib/network/processor/gossipValidatorFn.js +1 -5
  253. package/lib/network/processor/gossipValidatorFn.js.map +1 -1
  254. package/lib/network/processor/index.d.ts +6 -0
  255. package/lib/network/processor/index.d.ts.map +1 -1
  256. package/lib/network/processor/index.js +29 -4
  257. package/lib/network/processor/index.js.map +1 -1
  258. package/lib/network/reqresp/ReqRespBeaconNode.d.ts.map +1 -1
  259. package/lib/network/reqresp/ReqRespBeaconNode.js +0 -3
  260. package/lib/network/reqresp/ReqRespBeaconNode.js.map +1 -1
  261. package/lib/network/reqresp/handlers/beaconBlocksByRange.d.ts +2 -2
  262. package/lib/network/reqresp/handlers/beaconBlocksByRange.d.ts.map +1 -1
  263. package/lib/network/reqresp/handlers/index.d.ts.map +1 -1
  264. package/lib/network/reqresp/handlers/index.js +1 -12
  265. package/lib/network/reqresp/handlers/index.js.map +1 -1
  266. package/lib/network/reqresp/protocols.d.ts +0 -2
  267. package/lib/network/reqresp/protocols.d.ts.map +1 -1
  268. package/lib/network/reqresp/protocols.js +0 -10
  269. package/lib/network/reqresp/protocols.js.map +1 -1
  270. package/lib/network/reqresp/rateLimit.d.ts.map +1 -1
  271. package/lib/network/reqresp/rateLimit.js +1 -17
  272. package/lib/network/reqresp/rateLimit.js.map +1 -1
  273. package/lib/network/reqresp/types.d.ts +2 -8
  274. package/lib/network/reqresp/types.d.ts.map +1 -1
  275. package/lib/network/reqresp/types.js +1 -7
  276. package/lib/network/reqresp/types.js.map +1 -1
  277. package/lib/network/subnets/attnetsService.d.ts +35 -5
  278. package/lib/network/subnets/attnetsService.d.ts.map +1 -1
  279. package/lib/network/subnets/attnetsService.js +84 -6
  280. package/lib/network/subnets/attnetsService.js.map +1 -1
  281. package/lib/network/subnets/interface.d.ts +7 -0
  282. package/lib/network/subnets/interface.d.ts.map +1 -1
  283. package/lib/network/subnets/interface.js.map +1 -1
  284. package/lib/node/nodejs.d.ts +2 -0
  285. package/lib/node/nodejs.d.ts.map +1 -1
  286. package/lib/node/nodejs.js +37 -19
  287. package/lib/node/nodejs.js.map +1 -1
  288. package/lib/node/options.d.ts +3 -1
  289. package/lib/node/options.d.ts.map +1 -1
  290. package/lib/node/options.js +4 -2
  291. package/lib/node/options.js.map +1 -1
  292. package/lib/sync/range/batch.d.ts +2 -3
  293. package/lib/sync/range/batch.d.ts.map +1 -1
  294. package/lib/sync/range/batch.js +9 -22
  295. package/lib/sync/range/batch.js.map +1 -1
  296. package/lib/sync/range/chain.d.ts.map +1 -1
  297. package/lib/sync/range/chain.js +2 -15
  298. package/lib/sync/range/chain.js.map +1 -1
  299. package/lib/sync/sync.d.ts +8 -0
  300. package/lib/sync/sync.d.ts.map +1 -1
  301. package/lib/sync/sync.js +42 -22
  302. package/lib/sync/sync.js.map +1 -1
  303. package/lib/sync/unknownBlock.d.ts.map +1 -1
  304. package/lib/sync/unknownBlock.js +1 -7
  305. package/lib/sync/unknownBlock.js.map +1 -1
  306. package/lib/sync/utils/downloadByRange.d.ts +6 -34
  307. package/lib/sync/utils/downloadByRange.d.ts.map +1 -1
  308. package/lib/sync/utils/downloadByRange.js +24 -128
  309. package/lib/sync/utils/downloadByRange.js.map +1 -1
  310. package/lib/sync/utils/downloadByRoot.d.ts +2 -18
  311. package/lib/sync/utils/downloadByRoot.d.ts.map +1 -1
  312. package/lib/sync/utils/downloadByRoot.js +14 -99
  313. package/lib/sync/utils/downloadByRoot.js.map +1 -1
  314. package/lib/util/blobs.d.ts +1 -7
  315. package/lib/util/blobs.d.ts.map +1 -1
  316. package/lib/util/blobs.js +0 -19
  317. package/lib/util/blobs.js.map +1 -1
  318. package/lib/util/execution.d.ts +3 -4
  319. package/lib/util/execution.d.ts.map +1 -1
  320. package/lib/util/execution.js +1 -73
  321. package/lib/util/execution.js.map +1 -1
  322. package/lib/util/sszBytes.d.ts +5 -1
  323. package/lib/util/sszBytes.d.ts.map +1 -1
  324. package/lib/util/sszBytes.js +34 -17
  325. package/lib/util/sszBytes.js.map +1 -1
  326. package/lib/util/types.d.ts +0 -5
  327. package/lib/util/types.d.ts.map +1 -1
  328. package/lib/util/types.js +1 -2
  329. package/lib/util/types.js.map +1 -1
  330. package/package.json +16 -16
  331. package/src/api/impl/beacon/blocks/index.ts +24 -64
  332. package/src/api/impl/beacon/pool/index.ts +26 -0
  333. package/src/api/impl/validator/index.ts +43 -29
  334. package/src/chain/GetBlobsTracker.ts +10 -39
  335. package/src/chain/blocks/blockInput/blockInput.ts +11 -343
  336. package/src/chain/blocks/blockInput/errors.ts +1 -2
  337. package/src/chain/blocks/blockInput/types.ts +2 -20
  338. package/src/chain/blocks/importBlock.ts +56 -72
  339. package/src/chain/blocks/importExecutionPayload.ts +42 -13
  340. package/src/chain/blocks/index.ts +5 -2
  341. package/src/chain/blocks/types.ts +5 -31
  342. package/src/chain/blocks/verifyBlock.ts +30 -16
  343. package/src/chain/blocks/verifyBlocksDataAvailability.ts +6 -1
  344. package/src/chain/blocks/verifyBlocksExecutionPayloads.ts +9 -6
  345. package/src/chain/blocks/verifyBlocksSanityChecks.ts +4 -1
  346. package/src/chain/blocks/verifyBlocksSignatures.ts +10 -5
  347. package/src/chain/blocks/writeBlockInputToDb.ts +6 -29
  348. package/src/chain/bls/interface.ts +2 -0
  349. package/src/chain/bls/multithread/index.ts +43 -19
  350. package/src/chain/chain.ts +135 -37
  351. package/src/chain/emitter.ts +8 -8
  352. package/src/chain/errors/executionPayloadEnvelope.ts +8 -0
  353. package/src/chain/errors/index.ts +0 -1
  354. package/src/chain/forkChoice/index.ts +11 -0
  355. package/src/chain/forkChoiceExecutionEngine.ts +183 -0
  356. package/src/chain/interface.ts +7 -3
  357. package/src/chain/opPools/aggregatedAttestationPool.ts +222 -35
  358. package/src/chain/opPools/index.ts +1 -0
  359. package/src/chain/opPools/singleAttestationPool.ts +287 -0
  360. package/src/chain/options.ts +5 -2
  361. package/src/chain/produceBlock/produceBlockBody.ts +7 -3
  362. package/src/chain/proposerTracker.ts +94 -0
  363. package/src/chain/regen/interface.ts +1 -1
  364. package/src/chain/regen/queued.ts +6 -4
  365. package/src/chain/seenCache/seenGossipBlockInput.ts +9 -93
  366. package/src/chain/validation/executionPayloadEnvelope.ts +68 -1
  367. package/src/chain/validation/syncCommittee.ts +31 -15
  368. package/src/chain/validation/syncCommitteeContributionAndProof.ts +13 -0
  369. package/src/chain/validatorMonitor.ts +0 -6
  370. package/src/db/repositories/blobSidecars.ts +0 -1
  371. package/src/execution/builder/apiClient.ts +16 -13
  372. package/src/execution/builder/http.ts +4 -0
  373. package/src/execution/engine/http.ts +19 -42
  374. package/src/execution/engine/interface.ts +18 -9
  375. package/src/execution/engine/jsonRpcTransport.ts +10 -22
  376. package/src/execution/engine/mock.ts +0 -7
  377. package/src/execution/engine/restTransport.ts +3 -22
  378. package/src/execution/engine/sszTypes.ts +0 -9
  379. package/src/execution/engine/transport.ts +8 -17
  380. package/src/execution/engine/types.ts +0 -17
  381. package/src/execution/engine/utils.ts +4 -2
  382. package/src/index.ts +1 -1
  383. package/src/metrics/metrics/beacon.ts +0 -30
  384. package/src/metrics/metrics/lodestar.ts +75 -18
  385. package/src/metrics/server/http.ts +5 -5
  386. package/src/network/core/networkCore.ts +6 -1
  387. package/src/network/core/networkCoreWorker.ts +1 -0
  388. package/src/network/core/networkCoreWorkerHandler.ts +4 -1
  389. package/src/network/core/types.ts +4 -1
  390. package/src/network/gossip/gossipsub.ts +11 -0
  391. package/src/network/gossip/interface.ts +0 -5
  392. package/src/network/gossip/topic.ts +0 -25
  393. package/src/network/interface.ts +0 -5
  394. package/src/network/network.ts +50 -60
  395. package/src/network/options.ts +2 -0
  396. package/src/network/peers/peerManager.ts +27 -2
  397. package/src/network/peers/utils/prioritizePeers.ts +14 -22
  398. package/src/network/peers/utils/subnetMap.ts +6 -3
  399. package/src/network/processor/extractSlotRootFns.ts +0 -9
  400. package/src/network/processor/gossipHandlers.ts +56 -156
  401. package/src/network/processor/gossipQueues/index.ts +0 -6
  402. package/src/network/processor/gossipValidatorFn.ts +0 -5
  403. package/src/network/processor/index.ts +25 -4
  404. package/src/network/reqresp/ReqRespBeaconNode.ts +0 -7
  405. package/src/network/reqresp/handlers/beaconBlocksByRange.ts +2 -2
  406. package/src/network/reqresp/handlers/index.ts +0 -17
  407. package/src/network/reqresp/protocols.ts +0 -12
  408. package/src/network/reqresp/rateLimit.ts +1 -17
  409. package/src/network/reqresp/types.ts +0 -13
  410. package/src/network/subnets/attnetsService.ts +94 -6
  411. package/src/network/subnets/interface.ts +7 -0
  412. package/src/node/nodejs.ts +34 -15
  413. package/src/node/options.ts +5 -1
  414. package/src/sync/range/batch.ts +9 -21
  415. package/src/sync/range/chain.ts +2 -14
  416. package/src/sync/sync.ts +43 -22
  417. package/src/sync/unknownBlock.ts +1 -8
  418. package/src/sync/utils/downloadByRange.ts +31 -230
  419. package/src/sync/utils/downloadByRoot.ts +15 -142
  420. package/src/util/blobs.ts +0 -34
  421. package/src/util/execution.ts +8 -102
  422. package/src/util/sszBytes.ts +40 -22
  423. package/src/util/types.ts +1 -8
  424. package/lib/chain/errors/blobSidecarError.d.ts +0 -108
  425. package/lib/chain/errors/blobSidecarError.d.ts.map +0 -1
  426. package/lib/chain/errors/blobSidecarError.js +0 -38
  427. package/lib/chain/errors/blobSidecarError.js.map +0 -1
  428. package/lib/chain/validation/blobSidecar.d.ts +0 -16
  429. package/lib/chain/validation/blobSidecar.d.ts.map +0 -1
  430. package/lib/chain/validation/blobSidecar.js +0 -276
  431. package/lib/chain/validation/blobSidecar.js.map +0 -1
  432. package/lib/network/reqresp/handlers/blobSidecarsByRange.d.ts +0 -9
  433. package/lib/network/reqresp/handlers/blobSidecarsByRange.d.ts.map +0 -1
  434. package/lib/network/reqresp/handlers/blobSidecarsByRange.js +0 -91
  435. package/lib/network/reqresp/handlers/blobSidecarsByRange.js.map +0 -1
  436. package/lib/network/reqresp/handlers/blobSidecarsByRoot.d.ts +0 -5
  437. package/lib/network/reqresp/handlers/blobSidecarsByRoot.d.ts.map +0 -1
  438. package/lib/network/reqresp/handlers/blobSidecarsByRoot.js +0 -46
  439. package/lib/network/reqresp/handlers/blobSidecarsByRoot.js.map +0 -1
  440. package/src/chain/errors/blobSidecarError.ts +0 -70
  441. package/src/chain/validation/blobSidecar.ts +0 -357
  442. package/src/network/reqresp/handlers/blobSidecarsByRange.ts +0 -133
  443. package/src/network/reqresp/handlers/blobSidecarsByRoot.ts +0 -69
@@ -0,0 +1,209 @@
1
+ import { ATTESTATION_SUBNET_COUNT } from "@lodestar/params";
2
+ import { InsertOutcome } from "./types.js";
3
+ /**
4
+ * Backstop only, single attestations included in a canonical block are deleted (see `onHead`) so the real retention is
5
+ * far lower. Sized for all subnets during the default 8 slots before a proposal (`slotsToSubscribeBeforeProposalDuty`)
6
+ * with no block at all and up to 1024 attesters per committee, i.e. ~2M active validators. Earlier slots of the
7
+ * collected window only add the few subnets the node subscribes to anyway. Beyond it, newer singles are dropped
8
+ */
9
+ const MAX_SINGLE_ATTESTATIONS_RETAINED = 8 * ATTESTATION_SUBNET_COUNT * 1024;
10
+ /**
11
+ * Single attestations to be packed into a block produced by this node, for votes that no aggregate covers.
12
+ * Callers only add to it for vote slots of an upcoming local proposal, see `ProposerTracker.shouldCollect()`.
13
+ * They are kept even if an aggregate covers them since proposers may not include that aggregate, until a canonical
14
+ * block includes them.
15
+ */
16
+ export class SingleAttestationPool {
17
+ singlesByCommitteeByDataRootBySlot = new Map();
18
+ size = 0;
19
+ /** Attesters included by the head block, deleted once a child of it becomes head */
20
+ pendingPrune = null;
21
+ constructor(metrics = null) {
22
+ metrics?.opPool.singleAttestationPool.size.addCollect(() => metrics.opPool.singleAttestationPool.size.set(this.size));
23
+ }
24
+ /**
25
+ * @param validatorCommitteeIndex position of the attester in its committee, computed by gossip validation
26
+ */
27
+ add(attestation, attDataRootHex, validatorCommitteeIndex, committeeSize) {
28
+ if (this.size >= MAX_SINGLE_ATTESTATIONS_RETAINED) {
29
+ return InsertOutcome.ReachLimit;
30
+ }
31
+ const { data, committeeIndex, attesterIndex, signature } = attestation;
32
+ let singlesByCommitteeByDataRoot = this.singlesByCommitteeByDataRootBySlot.get(data.slot);
33
+ if (singlesByCommitteeByDataRoot === undefined) {
34
+ singlesByCommitteeByDataRoot = new Map();
35
+ this.singlesByCommitteeByDataRootBySlot.set(data.slot, singlesByCommitteeByDataRoot);
36
+ }
37
+ let dataRootSingles = singlesByCommitteeByDataRoot.get(attDataRootHex);
38
+ if (dataRootSingles === undefined) {
39
+ dataRootSingles = { data, byCommittee: new Map() };
40
+ singlesByCommitteeByDataRoot.set(attDataRootHex, dataRootSingles);
41
+ }
42
+ let committee = dataRootSingles.byCommittee.get(committeeIndex);
43
+ if (committee === undefined) {
44
+ committee = { committeeSize, singles: new Map() };
45
+ dataRootSingles.byCommittee.set(committeeIndex, committee);
46
+ }
47
+ if (committee.singles.has(validatorCommitteeIndex)) {
48
+ return InsertOutcome.AlreadyKnown;
49
+ }
50
+ committee.singles.set(validatorCommitteeIndex, { attesterIndex, signature });
51
+ this.size++;
52
+ return InsertOutcome.NewData;
53
+ }
54
+ /**
55
+ * Delete single attestations included by the parent of the new head. Not the ones of the head itself: a proposer
56
+ * boost reorg of a weak head must keep them, once a child of it is the head that reorg can no longer happen.
57
+ * @param included attesters of the attestations included in the new head block
58
+ * @returns number of deleted single attestations
59
+ */
60
+ onHead(blockRoot, parentRoot, included) {
61
+ if (this.singlesByCommitteeByDataRootBySlot.size === 0) {
62
+ this.pendingPrune = null;
63
+ return 0;
64
+ }
65
+ // a reorg or a parent imported while the pool was empty drops the pending block without deleting
66
+ const deleted = this.pendingPrune?.blockRoot === parentRoot ? this.deleteIncluded(this.pendingPrune.included) : 0;
67
+ this.pendingPrune = { blockRoot, included };
68
+ return deleted;
69
+ }
70
+ /** Drop vote slots that no upcoming local proposal can include */
71
+ prune(proposerTracker) {
72
+ for (const [slot, singlesByCommitteeByDataRoot] of this.singlesByCommitteeByDataRootBySlot) {
73
+ if (proposerTracker.shouldCollect(slot)) {
74
+ continue;
75
+ }
76
+ for (const dataRootSingles of singlesByCommitteeByDataRoot.values()) {
77
+ for (const committee of dataRootSingles.byCommittee.values()) {
78
+ this.size -= committee.singles.size;
79
+ }
80
+ }
81
+ this.singlesByCommitteeByDataRootBySlot.delete(slot);
82
+ }
83
+ if (this.singlesByCommitteeByDataRootBySlot.size === 0) {
84
+ this.pendingPrune = null;
85
+ }
86
+ }
87
+ isEmpty() {
88
+ return this.singlesByCommitteeByDataRootBySlot.size === 0;
89
+ }
90
+ getStoredSlots() {
91
+ return Array.from(this.singlesByCommitteeByDataRootBySlot.keys());
92
+ }
93
+ getDataRoots(slot) {
94
+ const dataRoots = new Map();
95
+ for (const [attDataRootHex, dataRootSingles] of this.singlesByCommitteeByDataRootBySlot.get(slot) ?? []) {
96
+ dataRoots.set(attDataRootHex, dataRootSingles.data);
97
+ }
98
+ return dataRoots;
99
+ }
100
+ getCommitteeIndices(slot, attDataRootHex) {
101
+ return Array.from(this.singlesByCommitteeByDataRootBySlot.get(slot)?.get(attDataRootHex)?.byCommittee.keys() ?? []);
102
+ }
103
+ /**
104
+ * Single attestations of a committee whose attesters are in `notSeenCommitteeMembers`, i.e. not on chain and not
105
+ * covered by the aggregates picked for the block. `notSeenCommitteeMembers` is only read.
106
+ * Returns at most `maxCount` single attestations with the highest effective balances, without removing them from the
107
+ * pool.
108
+ */
109
+ getUncovered(slot, attDataRootHex, committeeIndex, notSeenCommitteeMembers, effectiveBalanceIncrements, maxCount) {
110
+ const committee = this.singlesByCommitteeByDataRootBySlot
111
+ .get(slot)
112
+ ?.get(attDataRootHex)
113
+ ?.byCommittee.get(committeeIndex);
114
+ if (committee === undefined) {
115
+ return null;
116
+ }
117
+ const singles = [];
118
+ // walk the smaller side, notSeenCommitteeMembers is usually tiny but close to the committee size if no aggregate
119
+ if (notSeenCommitteeMembers.size <= committee.singles.size) {
120
+ for (const validatorCommitteeIndex of notSeenCommitteeMembers) {
121
+ const single = committee.singles.get(validatorCommitteeIndex);
122
+ if (single !== undefined) {
123
+ singles.push({ validatorCommitteeIndex, single });
124
+ }
125
+ }
126
+ }
127
+ else {
128
+ for (const [validatorCommitteeIndex, single] of committee.singles) {
129
+ if (notSeenCommitteeMembers.has(validatorCommitteeIndex)) {
130
+ singles.push({ validatorCommitteeIndex, single });
131
+ }
132
+ }
133
+ }
134
+ if (singles.length > maxCount) {
135
+ singles.sort((a, b) => effectiveBalanceIncrements[b.single.attesterIndex] - effectiveBalanceIncrements[a.single.attesterIndex]);
136
+ singles.length = maxCount;
137
+ }
138
+ if (singles.length === 0) {
139
+ return null;
140
+ }
141
+ let newSeenEffectiveBalance = 0;
142
+ for (const { single } of singles) {
143
+ newSeenEffectiveBalance += effectiveBalanceIncrements[single.attesterIndex];
144
+ }
145
+ return { committeeSize: committee.committeeSize, singles, newSeenEffectiveBalance, newSeenAttesters: singles.length };
146
+ }
147
+ /**
148
+ * Delete single attestations whose votes are already on chain, they add nothing to a block built on top of it.
149
+ * @param includedAttestations one entry per attestation in the body of a canonical block (the parent of the new
150
+ * head): the attestation slot and data root, and the validators it covers. A single attestation is included if its
151
+ * attester is in `attestingIndices` of an entry with the same slot and data root.
152
+ * @returns number of deleted single attestations
153
+ */
154
+ deleteIncluded(includedAttestations) {
155
+ // a block may include several attestations of the same data, merge their attesters per data root
156
+ const includedAttestersByDataRootBySlot = new Map();
157
+ for (const { slot, attDataRootHex, attestingIndices } of includedAttestations) {
158
+ if (this.singlesByCommitteeByDataRootBySlot.get(slot)?.has(attDataRootHex) !== true) {
159
+ continue;
160
+ }
161
+ let includedAttestersByDataRoot = includedAttestersByDataRootBySlot.get(slot);
162
+ if (includedAttestersByDataRoot === undefined) {
163
+ includedAttestersByDataRoot = new Map();
164
+ includedAttestersByDataRootBySlot.set(slot, includedAttestersByDataRoot);
165
+ }
166
+ let includedAttesters = includedAttestersByDataRoot.get(attDataRootHex);
167
+ if (includedAttesters === undefined) {
168
+ includedAttesters = new Set();
169
+ includedAttestersByDataRoot.set(attDataRootHex, includedAttesters);
170
+ }
171
+ for (const attesterIndex of attestingIndices) {
172
+ includedAttesters.add(attesterIndex);
173
+ }
174
+ }
175
+ let deleted = 0;
176
+ for (const [slot, includedAttestersByDataRoot] of includedAttestersByDataRootBySlot) {
177
+ const singlesByCommitteeByDataRoot = this.singlesByCommitteeByDataRootBySlot.get(slot);
178
+ if (singlesByCommitteeByDataRoot === undefined) {
179
+ continue;
180
+ }
181
+ for (const [attDataRootHex, includedAttesters] of includedAttestersByDataRoot) {
182
+ const dataRootSingles = singlesByCommitteeByDataRoot.get(attDataRootHex);
183
+ if (dataRootSingles === undefined) {
184
+ continue;
185
+ }
186
+ for (const [committeeIndex, committee] of dataRootSingles.byCommittee) {
187
+ for (const [validatorCommitteeIndex, { attesterIndex }] of committee.singles) {
188
+ if (includedAttesters.has(attesterIndex)) {
189
+ committee.singles.delete(validatorCommitteeIndex);
190
+ deleted++;
191
+ }
192
+ }
193
+ if (committee.singles.size === 0) {
194
+ dataRootSingles.byCommittee.delete(committeeIndex);
195
+ }
196
+ }
197
+ if (dataRootSingles.byCommittee.size === 0) {
198
+ singlesByCommitteeByDataRoot.delete(attDataRootHex);
199
+ }
200
+ }
201
+ if (singlesByCommitteeByDataRoot.size === 0) {
202
+ this.singlesByCommitteeByDataRootBySlot.delete(slot);
203
+ }
204
+ }
205
+ this.size -= deleted;
206
+ return deleted;
207
+ }
208
+ }
209
+ //# sourceMappingURL=singleAttestationPool.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"singleAttestationPool.js","sourceRoot":"","sources":["../../../src/chain/opPools/singleAttestationPool.ts"],"names":[],"mappings":"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"}
@@ -27,8 +27,6 @@ export type IChainOptions = BlockProcessOpts & PoolOpts & SeenCacheOpts & ForkCh
27
27
  disableProposerSlashings?: boolean;
28
28
  /** Ensure blobs returned by the execution engine are valid */
29
29
  sanityCheckExecutionEngineBlobs?: boolean;
30
- /** Max number of produced blobs by local validators to cache */
31
- maxCachedBlobSidecars?: number;
32
30
  /** Max number of produced block roots (blinded or full) cached for broadcast validations */
33
31
  maxCachedProducedRoots?: number;
34
32
  initialCustodyGroupCount?: number;
@@ -71,6 +69,11 @@ export type PoolOpts = {
71
69
  * Only preaggregate attestation/sync committee message since clockSlot - preaggregateSlotDistance
72
70
  */
73
71
  preaggregateSlotDistance?: number;
72
+ /**
73
+ * Dev only: collect single attestations of every vote slot a block at the clock slot can include regardless of
74
+ * proposal duties, so that any produced block can pack them. Combine with `subscribeAllSubnets`
75
+ */
76
+ singleAttestationIgnoreProposalDuty?: boolean;
74
77
  };
75
78
  export type SeenCacheOpts = {
76
79
  /**
@@ -1 +1 @@
1
- {"version":3,"file":"options.d.ts","sourceRoot":"","sources":["../../src/chain/options.ts"],"names":[],"mappings":"AACA,OAAO,EAAC,oBAAoB,EAAC,MAAM,6BAA6B,CAAC;AACjE,OAAO,EAAC,WAAW,EAAE,gBAAgB,EAAC,MAAM,6BAA6B,CAAC;AAC1E,OAAO,EAAC,cAAc,EAAC,MAAM,uBAAuB,CAAC;AACrD,OAAO,EAAC,qBAAqB,EAAC,MAAM,wBAAwB,CAAC;AAC7D,OAAO,EAAC,kBAAkB,EAAC,MAAM,qBAAqB,CAAC;AACvD,OAAO,EAA2B,uBAAuB,EAAC,MAAM,qCAAqC,CAAC;AACtG,OAAO,EAGL,kCAAkC,EACnC,MAAM,4CAA4C,CAAC;AACpD,OAAO,EAAC,oBAAoB,EAAC,MAAM,uBAAuB,CAAC;AAE3D,OAAO,EAAC,WAAW,EAAE,oBAAoB,EAAC,CAAC;AAE3C,MAAM,MAAM,aAAa,GAAG,gBAAgB,GAC1C,QAAQ,GACR,aAAa,GACb,cAAc,GACd,gBAAgB,GAChB,uBAAuB,GACvB,kCAAkC,GAClC,kBAAkB,GAClB,oBAAoB,GACpB,qBAAqB,GAAG;IACtB,sBAAsB,CAAC,EAAE,OAAO,CAAC;IACjC,uBAAuB,CAAC,EAAE,OAAO,CAAC;IAClC,iBAAiB,CAAC,EAAE,MAAM,EAAE,CAAC;IAC7B,qBAAqB,CAAC,EAAE,OAAO,CAAC;IAChC,+BAA+B,CAAC,EAAE,OAAO,CAAC;IAC1C,sGAAsG;IACtG,cAAc,CAAC,EAAE,OAAO,CAAC;IACzB,wBAAwB,CAAC,EAAE,OAAO,CAAC;IACnC,2BAA2B,CAAC,EAAE,MAAM,CAAC;IACrC,qBAAqB,CAAC,EAAE,OAAO,CAAC;IAChC,wBAAwB,CAAC,EAAE,MAAM,CAAC;IAClC,+BAA+B,CAAC,EAAE,OAAO,CAAC;IAC1C,qBAAqB,EAAE,MAAM,CAAC;IAC9B,cAAc,CAAC,EAAE,OAAO,CAAC;IACzB,YAAY,CAAC,EAAE,MAAM,CAAC;IACtB,6HAA6H;IAC7H,wBAAwB,CAAC,EAAE,OAAO,CAAC;IACnC,8DAA8D;IAC9D,+BAA+B,CAAC,EAAE,OAAO,CAAC;IAC1C,gEAAgE;IAChE,qBAAqB,CAAC,EAAE,MAAM,CAAC;IAC/B,4FAA4F;IAC5F,sBAAsB,CAAC,EAAE,MAAM,CAAC;IAChC,wBAAwB,CAAC,EAAE,MAAM,CAAC;IAClC,kCAAkC,EAAE,MAAM,CAAC;IAC3C,iBAAiB,CAAC,EAAE,MAAM,CAAC;IAC3B,8BAA8B,CAAC,EAAE,OAAO,CAAC;IACzC,qBAAqB,CAAC,EAAE,OAAO,CAAC;IAChC,+DAA+D;IAC/D,qBAAqB,CAAC,EAAE,MAAM,CAAC;IAC/B,iFAAiF;IACjF,aAAa,CAAC,EAAE,MAAM,CAAC;CACxB,CAAC;AAEJ,MAAM,MAAM,gBAAgB,GAAG;IAC7B;;;OAGG;IACH,qBAAqB,CAAC,EAAE,OAAO,CAAC;IAChC,sCAAsC;IACtC,mBAAmB,CAAC,EAAE,OAAO,CAAC;IAC9B,sCAAsC;IACtC,sBAAsB,CAAC,EAAE,OAAO,CAAC;IACjC;;;OAGG;IACH,yBAAyB,CAAC,EAAE,OAAO,CAAC;IACpC,qBAAqB,CAAC,EAAE,OAAO,CAAC;IAEhC;;;;OAIG;IACH,UAAU,CAAC,EAAE,OAAO,CAAC;IACrB,2DAA2D;IAC3D,0BAA0B,CAAC,EAAE,OAAO,CAAC;CACtC,CAAC;AAEF,MAAM,MAAM,QAAQ,GAAG;IACrB;;OAEG;IACH,wBAAwB,CAAC,EAAE,MAAM,CAAC;CACnC,CAAC;AAEF,MAAM,MAAM,aAAa,GAAG;IAC1B;;OAEG;IACH,wBAAwB,CAAC,EAAE,MAAM,CAAC;CACnC,CAAC;AAEF,eAAO,MAAM,mBAAmB,EAAE,aAkCjC,CAAC"}
1
+ {"version":3,"file":"options.d.ts","sourceRoot":"","sources":["../../src/chain/options.ts"],"names":[],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"options.js","sourceRoot":"","sources":["../../src/chain/options.ts"],"names":[],"mappings":"AAAA,OAAO,EAAC,cAAc,IAAI,uBAAuB,EAAC,MAAM,qBAAqB,CAAC;AAC9E,OAAO,EAAC,oBAAoB,EAAC,MAAM,6BAA6B,CAAC;AACjE,OAAO,EAAC,WAAW,EAAmB,MAAM,6BAA6B,CAAC;AAI1E,OAAO,EAAC,wBAAwB,EAA0B,MAAM,qCAAqC,CAAC;AACtG,OAAO,EACL,qCAAqC,EACrC,4BAA4B,GAE7B,MAAM,4CAA4C,CAAC;AAGpD,OAAO,EAAC,WAAW,EAAE,oBAAoB,EAAC,CAAC;AAuF3C,MAAM,CAAC,MAAM,mBAAmB,GAAkB;IAChD,sBAAsB,EAAE,KAAK;IAC7B,uBAAuB,EAAE,KAAK;IAC9B,iBAAiB,EAAE,EAAE;IACrB,qBAAqB,EAAE,KAAK;IAC5B,aAAa,EAAE,IAAI;IACnB,kBAAkB,EAAE,IAAI;IACxB,cAAc,EAAE,IAAI;IACpB,iBAAiB,EAAE,IAAI;IACvB,gBAAgB,EAAE,KAAK;IACvB,qBAAqB,EAAE,uBAAuB,CAAC,qBAAqB;IACpE,cAAc,EAAE,IAAI;IACpB,oBAAoB,EAAE,KAAK;IAC3B,0BAA0B,EAAE,IAAI;IAChC,WAAW,EAAE,oBAAoB;IACjC,YAAY,EAAE,KAAK;IACnB,qBAAqB,EAAE,KAAK;IAC5B,0EAA0E;IAC1E,uGAAuG;IACvG,YAAY,EAAE,EAAE;IAChB,wBAAwB,EAAE,KAAK;IAC/B,qEAAqE;IACrE,gGAAgG;IAChG,wGAAwG;IACxG,kCAAkC,EAAE,CAAC;IACrC,4DAA4D;IAC5D,qEAAqE;IACrE,uFAAuF;IACvF,wDAAwD;IACxD,8BAA8B,EAAE,IAAI;IACpC,qBAAqB,EAAE,KAAK;IAC5B,cAAc,EAAE,wBAAwB;IACxC,wBAAwB,EAAE,qCAAqC;IAC/D,sBAAsB,EAAE,4BAA4B;CACrD,CAAC"}
1
+ {"version":3,"file":"options.js","sourceRoot":"","sources":["../../src/chain/options.ts"],"names":[],"mappings":"AAAA,OAAO,EAAC,cAAc,IAAI,uBAAuB,EAAC,MAAM,qBAAqB,CAAC;AAC9E,OAAO,EAAC,oBAAoB,EAAC,MAAM,6BAA6B,CAAC;AACjE,OAAO,EAAC,WAAW,EAAmB,MAAM,6BAA6B,CAAC;AAI1E,OAAO,EAAC,wBAAwB,EAA0B,MAAM,qCAAqC,CAAC;AACtG,OAAO,EACL,qCAAqC,EACrC,4BAA4B,GAE7B,MAAM,4CAA4C,CAAC;AAGpD,OAAO,EAAC,WAAW,EAAE,oBAAoB,EAAC,CAAC;AA0F3C,MAAM,CAAC,MAAM,mBAAmB,GAAkB;IAChD,sBAAsB,EAAE,KAAK;IAC7B,uBAAuB,EAAE,KAAK;IAC9B,iBAAiB,EAAE,EAAE;IACrB,qBAAqB,EAAE,KAAK;IAC5B,aAAa,EAAE,IAAI;IACnB,kBAAkB,EAAE,IAAI;IACxB,cAAc,EAAE,IAAI;IACpB,iBAAiB,EAAE,IAAI;IACvB,gBAAgB,EAAE,KAAK;IACvB,qBAAqB,EAAE,uBAAuB,CAAC,qBAAqB;IACpE,cAAc,EAAE,IAAI;IACpB,oBAAoB,EAAE,KAAK;IAC3B,0BAA0B,EAAE,IAAI;IAChC,WAAW,EAAE,oBAAoB;IACjC,YAAY,EAAE,KAAK;IACnB,qBAAqB,EAAE,KAAK;IAC5B,0EAA0E;IAC1E,uGAAuG;IACvG,YAAY,EAAE,EAAE;IAChB,wBAAwB,EAAE,KAAK;IAC/B,qEAAqE;IACrE,gGAAgG;IAChG,wGAAwG;IACxG,kCAAkC,EAAE,CAAC;IACrC,4DAA4D;IAC5D,qEAAqE;IACrE,uFAAuF;IACvF,wDAAwD;IACxD,8BAA8B,EAAE,IAAI;IACpC,qBAAqB,EAAE,KAAK;IAC5B,cAAc,EAAE,wBAAwB;IACxC,wBAAwB,EAAE,qCAAqC;IAC/D,sBAAsB,EAAE,4BAA4B;CACrD,CAAC"}
@@ -4,8 +4,9 @@ import { ForkName, ForkPostBellatrix, ForkPostDeneb, ForkPostFulu, ForkPostGloas
4
4
  import { IBeaconStateView, type IBeaconStateViewBellatrix } from "@lodestar/state-transition";
5
5
  import { BLSPubkey, BLSSignature, BeaconBlock, BeaconBlockBody, BlindedBeaconBlock, BlindedBeaconBlockBody, BlobsBundle, Bytes32, ExecutionPayload, Root, RootHex, SSEPayloadAttributes, Slot, ValidatorIndex, Wei, fulu, gloas } from "@lodestar/types";
6
6
  import { Logger } from "@lodestar/utils";
7
- import { IExecutionEngine, PayloadAttributes, PayloadId } from "../../execution/index.js";
7
+ import { PayloadAttributes, PayloadId } from "../../execution/index.js";
8
8
  import type { BeaconChain } from "../chain.js";
9
+ import { ForkChoiceExecutionEngine } from "../forkChoiceExecutionEngine.js";
9
10
  import { CommonBlockBody } from "../interface.js";
10
11
  import { InclusionListStore, ProposerPreferencesPool } from "../opPools/index.js";
11
12
  export declare enum PayloadPreparationType {
@@ -94,7 +95,7 @@ export declare function produceBlockBody<T extends BlockType>(this: BeaconChain,
94
95
  * Produce ExecutionPayload for post-merge.
95
96
  */
96
97
  export declare function prepareExecutionPayload(chain: {
97
- executionEngine: IExecutionEngine;
98
+ executionEngine: ForkChoiceExecutionEngine;
98
99
  config: ChainForkConfig;
99
100
  forkChoice: IForkChoice;
100
101
  proposerPreferencesPool: ProposerPreferencesPool;
@@ -1 +1 @@
1
- {"version":3,"file":"produceBlockBody.d.ts","sourceRoot":"","sources":["../../../src/chain/produceBlock/produceBlockBody.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"produceBlockBody.d.ts","sourceRoot":"","sources":["../../../src/chain/produceBlock/produceBlockBody.ts"],"names":[],"mappings":"AAAA,OAAO,EAAC,eAAe,EAAC,MAAM,kBAAkB,CAAC;AACjD,OAAO,EACL,WAAW,EACX,UAAU,EAGX,MAAM,uBAAuB,CAAC;AAC/B,OAAO,EAEL,QAAQ,EACR,iBAAiB,EAEjB,aAAa,EACb,YAAY,EACZ,aAAa,EAOd,MAAM,kBAAkB,CAAC;AAC1B,OAAO,EAEL,gBAAgB,EAChB,KAAK,yBAAyB,EAO/B,MAAM,4BAA4B,CAAC;AACpC,OAAO,EACL,SAAS,EACT,YAAY,EACZ,WAAW,EACX,eAAe,EACf,kBAAkB,EAClB,sBAAsB,EACtB,WAAW,EACX,OAAO,EACP,gBAAgB,EAEhB,IAAI,EACJ,OAAO,EACP,oBAAoB,EACpB,IAAI,EACJ,cAAc,EACd,GAAG,EAMH,IAAI,EACJ,KAAK,EAGN,MAAM,iBAAiB,CAAC;AACzB,OAAO,EAEL,MAAM,EASP,MAAM,iBAAiB,CAAC;AAGzB,OAAO,EAAoB,iBAAiB,EAAE,SAAS,EAAC,MAAM,0BAA0B,CAAC;AAKzF,OAAO,KAAK,EAAC,WAAW,EAAC,MAAM,aAAa,CAAC;AAC7C,OAAO,EAAC,yBAAyB,EAAC,MAAM,iCAAiC,CAAC;AAC1E,OAAO,EAAC,eAAe,EAAC,MAAM,iBAAiB,CAAC;AAChD,OAAO,EAAC,kBAAkB,EAAE,uBAAuB,EAAC,MAAM,qBAAqB,CAAC;AAMhF,oBAAY,sBAAsB;IAChC,KAAK,UAAU;IACf,MAAM,WAAW;IACjB,OAAO,YAAY;IACnB,OAAO,YAAY;CACpB;AAED;;GAEG;AACH,oBAAY,mBAAmB;IAC7B,gBAAgB,qBAAqB;IACrC,iBAAiB,sBAAsB;IACvC,cAAc,mBAAmB;IACjC,qBAAqB,0BAA0B;IAC/C,YAAY,iBAAiB;IAC7B,aAAa,kBAAkB;IAC/B,gBAAgB,qBAAqB;CACtC;AAED,MAAM,MAAM,eAAe,GAAG;IAC5B,YAAY,EAAE,YAAY,CAAC;IAC3B,QAAQ,EAAE,OAAO,CAAC;IAClB,IAAI,EAAE,IAAI,CAAC;IACX,WAAW,EAAE,UAAU,CAAC;IACxB,YAAY,CAAC,EAAE,MAAM,CAAC;IACtB,4EAA4E;IAC5E,uBAAuB,CAAC,EAAE,OAAO,CAAC;IAClC,mFAAmF;IACnF,UAAU,CAAC,EAAE,KAAK,CAAC,yBAAyB,CAAC;CAC9C,CAAC;AAEF,oBAAY,SAAS;IACnB,IAAI,SAAS;IACb,OAAO,YAAY;CACpB;AACD,MAAM,MAAM,iBAAiB,CAAC,CAAC,SAAS,SAAS,IAAI,CAAC,SAAS,SAAS,CAAC,IAAI,GACzE,eAAe,GACf,sBAAsB,CAAC;AAC3B,MAAM,MAAM,kBAAkB,CAAC,CAAC,SAAS,SAAS,IAAI,CAAC,SAAS,SAAS,CAAC,IAAI,GAAG,WAAW,GAAG,kBAAkB,CAAC;AAElH,MAAM,MAAM,gBAAgB,GAAG;IAC7B,IAAI,EAAE,SAAS,CAAC,IAAI,CAAC;IACrB,IAAI,EAAE,aAAa,CAAC;IACpB,gBAAgB,EAAE,gBAAgB,CAAC,aAAa,CAAC,CAAC;IAClD,iBAAiB,EAAE,KAAK,CAAC,iBAAiB,CAAC;IAC3C,WAAW,EAAE,WAAW,CAAC,aAAa,CAAC,CAAC;IACxC,KAAK,EAAE,IAAI,CAAC,IAAI,EAAE,EAAE,CAAC;IACrB,eAAe,EAAE,IAAI,CAAC;CACvB,CAAC;AACF,MAAM,MAAM,eAAe,GAAG;IAC5B,IAAI,EAAE,SAAS,CAAC,IAAI,CAAC;IACrB,IAAI,EAAE,YAAY,CAAC;IACnB,gBAAgB,EAAE,gBAAgB,CAAC,YAAY,CAAC,CAAC;IACjD,WAAW,EAAE,WAAW,CAAC,YAAY,CAAC,CAAC;IACvC,KAAK,EAAE,IAAI,CAAC,IAAI,EAAE,EAAE,CAAC;CACtB,CAAC;AACF,MAAM,MAAM,gBAAgB,GAAG;IAC7B,IAAI,EAAE,SAAS,CAAC,IAAI,CAAC;IACrB,IAAI,EAAE,QAAQ,CAAC,KAAK,GAAG,QAAQ,CAAC,OAAO,CAAC;IACxC,gBAAgB,EAAE,gBAAgB,CAAC,aAAa,CAAC,CAAC;IAClD,WAAW,EAAE,WAAW,CAAC,aAAa,CAAC,CAAC;CACzC,CAAC;AACF,MAAM,MAAM,oBAAoB,GAAG;IACjC,IAAI,EAAE,SAAS,CAAC,IAAI,CAAC;IACrB,IAAI,EAAE,QAAQ,CAAC,SAAS,GAAG,QAAQ,CAAC,OAAO,CAAC;IAC5C,gBAAgB,EAAE,gBAAgB,CAAC,iBAAiB,CAAC,CAAC;CACvD,CAAC;AACF,MAAM,MAAM,iBAAiB,GAAG;IAC9B,IAAI,EAAE,SAAS,CAAC,IAAI,CAAC;IACrB,IAAI,EAAE,QAAQ,CAAC,MAAM,GAAG,QAAQ,CAAC,MAAM,CAAC;CACzC,CAAC;AACF,MAAM,MAAM,cAAc,GAAG;IAC3B,IAAI,EAAE,SAAS,CAAC,OAAO,CAAC;IACxB,IAAI,EAAE,QAAQ,CAAC;CAChB,CAAC;AAKF,mFAAmF;AACnF,MAAM,MAAM,aAAa,GACrB,gBAAgB,GAChB,eAAe,GACf,gBAAgB,GAChB,oBAAoB,GACpB,iBAAiB,GACjB,cAAc,CAAC;AAwBnB,wBAAsB,gBAAgB,CAAC,CAAC,SAAS,SAAS,EACxD,IAAI,EAAE,WAAW,EACjB,SAAS,EAAE,CAAC,EACZ,YAAY,EAAE,gBAAgB,EAC9B,SAAS,EAAE,eAAe,GAAG;IAC3B,aAAa,EAAE,cAAc,CAAC;IAC9B,cAAc,EAAE,SAAS,CAAC;IAC1B,sBAAsB,EAAE,OAAO,CAAC,eAAe,CAAC,CAAC;CAClD,GACA,OAAO,CAAC;IACT,IAAI,EAAE,iBAAiB,CAAC,CAAC,CAAC,CAAC;IAC3B,aAAa,EAAE,aAAa,CAAC;IAC7B,qBAAqB,EAAE,GAAG,CAAC;IAC3B,qBAAqB,CAAC,EAAE,OAAO,CAAC;CACjC,CAAC,CA6gBD;AAED;;GAEG;AACH,wBAAsB,uBAAuB,CAC3C,KAAK,EAAE;IACL,eAAe,EAAE,yBAAyB,CAAC;IAC3C,MAAM,EAAE,eAAe,CAAC;IACxB,UAAU,EAAE,WAAW,CAAC;IACxB,uBAAuB,EAAE,uBAAuB,CAAC;IACjD,kBAAkB,EAAE,kBAAkB,CAAC;CACxC,EACD,MAAM,EAAE,MAAM,EACd,IAAI,EAAE,iBAAiB,EACvB,eAAe,EAAE,IAAI,EACrB,eAAe,EAAE,OAAO,EACxB,aAAa,EAAE,OAAO,EACtB,kBAAkB,EAAE,OAAO;AAC3B;;;GAGG;AACH,KAAK,EAAE,yBAAyB,EAChC,qBAAqB,EAAE,MAAM;AAC7B,+FAA+F;AAC/F,iBAAiB,CAAC,EAAE,iBAAiB,GACpC,OAAO,CAAC;IAAC,QAAQ,EAAE,sBAAsB,CAAC;IAAC,SAAS,EAAE,SAAS,CAAA;CAAC,CAAC,CAuEnE;AAwBD,wBAAgB,0BAA0B,CACxC,IAAI,EAAE,iBAAiB,EACvB,KAAK,EAAE;IACL,MAAM,EAAE,eAAe,CAAC;IACxB,UAAU,EAAE,WAAW,CAAC;IACxB,uBAAuB,EAAE,uBAAuB,CAAC;IACjD,kBAAkB,EAAE,kBAAkB,CAAC;CACxC,EACD,EACE,YAAY,EACZ,WAAW,EACX,eAAe,EACf,eAAe,EACf,aAAa,EACb,kBAAkB,EAClB,YAAY,GACb,EAAE;IACD;;;OAGG;IACH,YAAY,EAAE,yBAAyB,CAAC;IACxC,WAAW,EAAE,IAAI,CAAC;IAClB,eAAe,EAAE,IAAI,CAAC;IACtB,eAAe,EAAE,OAAO,CAAC;IACzB,aAAa,EAAE,OAAO,CAAC;IACvB,kBAAkB,EAAE,OAAO,CAAC;IAC5B,YAAY,EAAE,MAAM,CAAC;CACtB,GACA,oBAAoB,CA0BtB;AA6JD;;;GAGG;AACH,wBAAgB,4BAA4B,CAC1C,KAAK,EAAE;IAAC,UAAU,EAAE,WAAW,CAAC;IAAC,uBAAuB,EAAE,uBAAuB,CAAA;CAAC,EAClF,IAAI,EAAE,IAAI,EACV,kBAAkB,EAAE,OAAO,GAC1B,KAAK,CAAC,mBAAmB,GAAG,IAAI,CAmBlC;AAED,wBAAsB,sBAAsB,CAAC,CAAC,SAAS,SAAS,EAC9D,IAAI,EAAE,WAAW,EACjB,SAAS,EAAE,CAAC,EACZ,YAAY,EAAE,gBAAgB,EAC9B,EAAC,YAAY,EAAE,QAAQ,EAAE,IAAI,EAAE,WAAW,EAAC,EAAE,eAAe,GAC3D,OAAO,CAAC,eAAe,CAAC,CAgE1B"}
@@ -493,7 +493,7 @@ payloadAttributes) {
493
493
  else {
494
494
  prepType = PayloadPreparationType.Fresh;
495
495
  }
496
- payloadId = await chain.executionEngine.notifyForkchoiceUpdate(fork, toRootHex(parentBlockHash), safeBlockHash, finalizedBlockHash, attributes ??
496
+ payloadId = await chain.executionEngine.notifyForkchoiceUpdate(fork, toRootHex(parentBlockRoot), toRootHex(parentBlockHash), safeBlockHash, finalizedBlockHash, attributes ??
497
497
  preparePayloadAttributes(fork, chain, {
498
498
  prepareState: state,
499
499
  prepareSlot: state.slot,
@@ -676,7 +676,8 @@ export async function produceCommonBlockBody(blockType, currentState, { randaoRe
676
676
  // }
677
677
  const [attesterSlashings, proposerSlashings, voluntaryExits, blsToExecutionChanges] = this.opPool.getSlashingsAndExits(currentState, blockType, this.metrics);
678
678
  const endAttestations = stepsMetrics?.startTimer();
679
- const attestations = this.aggregatedAttestationPool.getAttestationsForBlock(fork, this.forkChoice, this.shufflingCache, currentState);
679
+ // TODO: extract to a separate BeaconChain method to coordinate the 2 op-pools
680
+ const attestations = this.aggregatedAttestationPool.getAttestationsForBlock(fork, this.forkChoice, this.shufflingCache, currentState, this.singleAttestationPool);
680
681
  endAttestations?.({
681
682
  step: BlockProductionStep.attestations,
682
683
  });
@@ -1 +1 @@
1
- {"version":3,"file":"produceBlockBody.js","sourceRoot":"","sources":["../../../src/chain/produceBlock/produceBlockBody.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"produceBlockBody.js","sourceRoot":"","sources":["../../../src/chain/produceBlock/produceBlockBody.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,31 @@
1
+ import { Slot } from "@lodestar/types";
2
+ import { Metrics } from "../metrics/metrics.js";
3
+ /**
4
+ * Track upcoming block proposals of validators connected to this node, and the vote slots those blocks can include,
5
+ * to only then insert single attestations into the SingleAttestationPool
6
+ */
7
+ export declare class ProposerTracker {
8
+ private readonly ignoreProposalDuty;
9
+ /** Local proposal slots that have not passed yet */
10
+ private readonly proposalSlots;
11
+ /** Vote slots of tracked proposals, see `getFirstIncludableVoteSlot` */
12
+ private readonly collectableSlots;
13
+ private clockSlot;
14
+ /**
15
+ * @param ignoreProposalDuty dev only, collect every vote slot a block at the clock slot can include regardless of
16
+ * local proposals
17
+ */
18
+ constructor(ignoreProposalDuty?: boolean, metrics?: Metrics | null);
19
+ /**
20
+ * Idempotent, a known proposal is ignored
21
+ * @returns true if the proposal was not tracked before
22
+ */
23
+ addProposal(proposalSlot: Slot): boolean;
24
+ shouldCollect(attestationSlot: Slot): boolean;
25
+ /**
26
+ * Drop proposals that have passed. A proposal is kept during its own slot so that its single attestations stay
27
+ * available until the block is produced. Vote slots are dropped once no remaining proposal can include them.
28
+ */
29
+ prune(clockSlot: Slot): void;
30
+ }
31
+ //# sourceMappingURL=proposerTracker.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"proposerTracker.d.ts","sourceRoot":"","sources":["../../src/chain/proposerTracker.ts"],"names":[],"mappings":"AAEA,OAAO,EAAC,IAAI,EAAC,MAAM,iBAAiB,CAAC;AACrC,OAAO,EAAC,OAAO,EAAC,MAAM,uBAAuB,CAAC;AAE9C;;;GAGG;AACH,qBAAa,eAAe;IAYxB,OAAO,CAAC,QAAQ,CAAC,kBAAkB;IAXrC,oDAAoD;IACpD,OAAO,CAAC,QAAQ,CAAC,aAAa,CAAmB;IACjD,wEAAwE;IACxE,OAAO,CAAC,QAAQ,CAAC,gBAAgB,CAAmB;IACpD,OAAO,CAAC,SAAS,CAAK;IAEtB;;;OAGG;IACH,YACmB,kBAAkB,UAAQ,EAC3C,OAAO,GAAE,OAAO,GAAG,IAAW,EAQ/B;IAED;;;OAGG;IACH,WAAW,CAAC,YAAY,EAAE,IAAI,GAAG,OAAO,CAcvC;IAED,aAAa,CAAC,eAAe,EAAE,IAAI,GAAG,OAAO,CAM5C;IAED;;;OAGG;IACH,KAAK,CAAC,SAAS,EAAE,IAAI,GAAG,IAAI,CAoB3B;CACF"}
@@ -0,0 +1,75 @@
1
+ import { MIN_ATTESTATION_INCLUSION_DELAY } from "@lodestar/params";
2
+ import { computeEpochAtSlot, computeStartSlotAtEpoch } from "@lodestar/state-transition";
3
+ /**
4
+ * Track upcoming block proposals of validators connected to this node, and the vote slots those blocks can include,
5
+ * to only then insert single attestations into the SingleAttestationPool
6
+ */
7
+ export class ProposerTracker {
8
+ ignoreProposalDuty;
9
+ /** Local proposal slots that have not passed yet */
10
+ proposalSlots = new Set();
11
+ /** Vote slots of tracked proposals, see `getFirstIncludableVoteSlot` */
12
+ collectableSlots = new Set();
13
+ clockSlot = 0;
14
+ /**
15
+ * @param ignoreProposalDuty dev only, collect every vote slot a block at the clock slot can include regardless of
16
+ * local proposals
17
+ */
18
+ constructor(ignoreProposalDuty = false, metrics = null) {
19
+ this.ignoreProposalDuty = ignoreProposalDuty;
20
+ metrics?.proposerTracker.proposalSlots.addCollect(() => metrics.proposerTracker.proposalSlots.set(this.proposalSlots.size));
21
+ metrics?.proposerTracker.collectableSlot.addCollect(() => metrics.proposerTracker.collectableSlot.set(this.shouldCollect(this.clockSlot) ? 1 : 0));
22
+ }
23
+ /**
24
+ * Idempotent, a known proposal is ignored
25
+ * @returns true if the proposal was not tracked before
26
+ */
27
+ addProposal(proposalSlot) {
28
+ if (this.proposalSlots.has(proposalSlot)) {
29
+ return false;
30
+ }
31
+ this.proposalSlots.add(proposalSlot);
32
+ for (let voteSlot = getFirstIncludableVoteSlot(proposalSlot); voteSlot <= proposalSlot - MIN_ATTESTATION_INCLUSION_DELAY; voteSlot++) {
33
+ this.collectableSlots.add(voteSlot);
34
+ }
35
+ return true;
36
+ }
37
+ shouldCollect(attestationSlot) {
38
+ if (this.ignoreProposalDuty) {
39
+ // to test block production without proposal duties
40
+ return attestationSlot >= getFirstIncludableVoteSlot(this.clockSlot);
41
+ }
42
+ return this.collectableSlots.has(attestationSlot);
43
+ }
44
+ /**
45
+ * Drop proposals that have passed. A proposal is kept during its own slot so that its single attestations stay
46
+ * available until the block is produced. Vote slots are dropped once no remaining proposal can include them.
47
+ */
48
+ prune(clockSlot) {
49
+ this.clockSlot = clockSlot;
50
+ for (const proposalSlot of this.proposalSlots) {
51
+ if (proposalSlot < clockSlot) {
52
+ this.proposalSlots.delete(proposalSlot);
53
+ }
54
+ }
55
+ if (this.proposalSlots.size === 0) {
56
+ this.collectableSlots.clear();
57
+ return;
58
+ }
59
+ // Each remaining proposal covers its own vote slots, so a vote slot below the lowest one is covered by none
60
+ const lowestCollectableVoteSlot = getFirstIncludableVoteSlot(Math.min(...this.proposalSlots));
61
+ for (const voteSlot of this.collectableSlots) {
62
+ if (voteSlot < lowestCollectableVoteSlot) {
63
+ this.collectableSlots.delete(voteSlot);
64
+ }
65
+ }
66
+ }
67
+ }
68
+ /**
69
+ * Since deneb (EIP-7045) a block includes attestations of its current and previous epoch, so the first vote slot it can
70
+ * include is the start of the previous epoch, 32 to 63 slots before it on mainnet
71
+ */
72
+ function getFirstIncludableVoteSlot(blockSlot) {
73
+ return computeStartSlotAtEpoch(Math.max(computeEpochAtSlot(blockSlot) - 1, 0));
74
+ }
75
+ //# sourceMappingURL=proposerTracker.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"proposerTracker.js","sourceRoot":"","sources":["../../src/chain/proposerTracker.ts"],"names":[],"mappings":"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"}
@@ -48,7 +48,7 @@ export interface IStateRegenerator extends IStateRegeneratorInternal {
48
48
  onCheckpoint(finalizedEpoch: Epoch, justifiedEpoch: Epoch, headStateRoot: RootHex): void;
49
49
  processState(blockRootHex: RootHex, postState: IBeaconStateView): void;
50
50
  addCheckpointState(cp: phase0.Checkpoint, item: IBeaconStateView): void;
51
- updateHeadState(newHead: ProtoBlock, maybeHeadState: IBeaconStateView): void;
51
+ updateHeadState(newHead: ProtoBlock, maybeHeadState?: IBeaconStateView): void;
52
52
  updatePreComputedCheckpoint(rootHex: RootHex, epoch: Epoch): number | null;
53
53
  }
54
54
  /**
@@ -1 +1 @@
1
- {"version":3,"file":"interface.d.ts","sourceRoot":"","sources":["../../../src/chain/regen/interface.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"interface.d.ts","sourceRoot":"","sources":["../../../src/chain/regen/interface.ts"],"names":[],"mappings":"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"}
@@ -55,7 +55,7 @@ export declare class QueuedStateRegenerator implements IStateRegenerator {
55
55
  onCheckpoint(finalizedEpoch: Epoch, justifiedEpoch: Epoch, headStateRoot: RootHex): void;
56
56
  processState(blockRootHex: RootHex, postState: IBeaconStateView): void;
57
57
  addCheckpointState(cp: phase0.Checkpoint, item: IBeaconStateView): void;
58
- updateHeadState(newHead: ProtoBlock, maybeHeadState: IBeaconStateView): void;
58
+ updateHeadState(newHead: ProtoBlock, maybeHeadState?: IBeaconStateView): void;
59
59
  updatePreComputedCheckpoint(rootHex: RootHex, epoch: Epoch): number | null;
60
60
  /**
61
61
  * Get the state to run with `block`.