@lodestar/beacon-node 1.47.0-dev.268215c3da → 1.47.0-dev.2fba076c28

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 (333) hide show
  1. package/lib/api/impl/beacon/blocks/index.d.ts.map +1 -1
  2. package/lib/api/impl/beacon/blocks/index.js +6 -8
  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 +25 -2
  6. package/lib/api/impl/beacon/pool/index.js.map +1 -1
  7. package/lib/api/impl/beacon/state/utils.d.ts +2 -1
  8. package/lib/api/impl/beacon/state/utils.d.ts.map +1 -1
  9. package/lib/api/impl/beacon/state/utils.js.map +1 -1
  10. package/lib/api/impl/events/index.d.ts +1 -1
  11. package/lib/api/impl/events/index.d.ts.map +1 -1
  12. package/lib/api/impl/events/index.js +12 -3
  13. package/lib/api/impl/events/index.js.map +1 -1
  14. package/lib/api/impl/lodestar/index.js +1 -1
  15. package/lib/api/impl/lodestar/index.js.map +1 -1
  16. package/lib/api/impl/validator/index.d.ts.map +1 -1
  17. package/lib/api/impl/validator/index.js +12 -22
  18. package/lib/api/impl/validator/index.js.map +1 -1
  19. package/lib/api/impl/validator/utils.d.ts +5 -0
  20. package/lib/api/impl/validator/utils.d.ts.map +1 -1
  21. package/lib/api/impl/validator/utils.js +18 -12
  22. package/lib/api/impl/validator/utils.js.map +1 -1
  23. package/lib/api/rest/base.d.ts.map +1 -1
  24. package/lib/api/rest/base.js +7 -0
  25. package/lib/api/rest/base.js.map +1 -1
  26. package/lib/chain/archiveStore/archiveStore.js +1 -1
  27. package/lib/chain/archiveStore/archiveStore.js.map +1 -1
  28. package/lib/chain/archiveStore/historicalState/metrics.d.ts.map +1 -1
  29. package/lib/chain/archiveStore/historicalState/metrics.js +21 -0
  30. package/lib/chain/archiveStore/historicalState/metrics.js.map +1 -1
  31. package/lib/chain/blocks/importBlock.d.ts.map +1 -1
  32. package/lib/chain/blocks/importBlock.js +2 -7
  33. package/lib/chain/blocks/importBlock.js.map +1 -1
  34. package/lib/chain/blocks/importExecutionPayload.d.ts +3 -2
  35. package/lib/chain/blocks/importExecutionPayload.d.ts.map +1 -1
  36. package/lib/chain/blocks/importExecutionPayload.js +11 -9
  37. package/lib/chain/blocks/importExecutionPayload.js.map +1 -1
  38. package/lib/chain/blocks/index.d.ts.map +1 -1
  39. package/lib/chain/blocks/index.js +14 -6
  40. package/lib/chain/blocks/index.js.map +1 -1
  41. package/lib/chain/blocks/payloadEnvelopeInput/payloadEnvelopeInput.d.ts +2 -1
  42. package/lib/chain/blocks/payloadEnvelopeInput/payloadEnvelopeInput.d.ts.map +1 -1
  43. package/lib/chain/blocks/payloadEnvelopeInput/payloadEnvelopeInput.js +6 -2
  44. package/lib/chain/blocks/payloadEnvelopeInput/payloadEnvelopeInput.js.map +1 -1
  45. package/lib/chain/blocks/payloadEnvelopeInput/types.d.ts +14 -5
  46. package/lib/chain/blocks/payloadEnvelopeInput/types.d.ts.map +1 -1
  47. package/lib/chain/blocks/payloadEnvelopeInput/types.js +5 -0
  48. package/lib/chain/blocks/payloadEnvelopeInput/types.js.map +1 -1
  49. package/lib/chain/blocks/verifyBlocksStateTransitionOnly.d.ts.map +1 -1
  50. package/lib/chain/blocks/verifyBlocksStateTransitionOnly.js +22 -12
  51. package/lib/chain/blocks/verifyBlocksStateTransitionOnly.js.map +1 -1
  52. package/lib/chain/blocks/verifyExecutionPayloadEnvelope.d.ts +2 -2
  53. package/lib/chain/blocks/verifyExecutionPayloadEnvelope.d.ts.map +1 -1
  54. package/lib/chain/blocks/verifyExecutionPayloadEnvelope.js +2 -2
  55. package/lib/chain/blocks/verifyExecutionPayloadEnvelope.js.map +1 -1
  56. package/lib/chain/bls/index.d.ts +1 -1
  57. package/lib/chain/bls/index.d.ts.map +1 -1
  58. package/lib/chain/bls/interface.d.ts +5 -5
  59. package/lib/chain/bls/interface.d.ts.map +1 -1
  60. package/lib/chain/bls/multithread/index.d.ts +5 -11
  61. package/lib/chain/bls/multithread/index.d.ts.map +1 -1
  62. package/lib/chain/bls/multithread/index.js +116 -101
  63. package/lib/chain/bls/multithread/index.js.map +1 -1
  64. package/lib/chain/bls/multithread/jobItem.d.ts +5 -19
  65. package/lib/chain/bls/multithread/jobItem.d.ts.map +1 -1
  66. package/lib/chain/bls/multithread/jobItem.js +10 -65
  67. package/lib/chain/bls/multithread/jobItem.js.map +1 -1
  68. package/lib/chain/bls/multithread/types.d.ts +29 -8
  69. package/lib/chain/bls/multithread/types.d.ts.map +1 -1
  70. package/lib/chain/bls/multithread/types.js +12 -0
  71. package/lib/chain/bls/multithread/types.js.map +1 -1
  72. package/lib/chain/bls/multithread/utils.d.ts +4 -0
  73. package/lib/chain/bls/multithread/utils.d.ts.map +1 -1
  74. package/lib/chain/bls/multithread/utils.js +10 -0
  75. package/lib/chain/bls/multithread/utils.js.map +1 -1
  76. package/lib/chain/bls/multithread/worker.js +49 -23
  77. package/lib/chain/bls/multithread/worker.js.map +1 -1
  78. package/lib/chain/bls/singleThread.d.ts +4 -10
  79. package/lib/chain/bls/singleThread.d.ts.map +1 -1
  80. package/lib/chain/bls/singleThread.js +8 -45
  81. package/lib/chain/bls/singleThread.js.map +1 -1
  82. package/lib/chain/bls/utils.d.ts +4 -4
  83. package/lib/chain/bls/utils.d.ts.map +1 -1
  84. package/lib/chain/bls/utils.js +18 -19
  85. package/lib/chain/bls/utils.js.map +1 -1
  86. package/lib/chain/builderCircuitBreaker.d.ts +6 -5
  87. package/lib/chain/builderCircuitBreaker.d.ts.map +1 -1
  88. package/lib/chain/builderCircuitBreaker.js +28 -15
  89. package/lib/chain/builderCircuitBreaker.js.map +1 -1
  90. package/lib/chain/chain.d.ts +5 -3
  91. package/lib/chain/chain.d.ts.map +1 -1
  92. package/lib/chain/chain.js +18 -7
  93. package/lib/chain/chain.js.map +1 -1
  94. package/lib/chain/errors/blockError.d.ts +1 -0
  95. package/lib/chain/errors/blockError.d.ts.map +1 -1
  96. package/lib/chain/errors/blockError.js +6 -1
  97. package/lib/chain/errors/blockError.js.map +1 -1
  98. package/lib/chain/errors/proposerPreferences.d.ts +6 -0
  99. package/lib/chain/errors/proposerPreferences.d.ts.map +1 -1
  100. package/lib/chain/errors/proposerPreferences.js +1 -0
  101. package/lib/chain/errors/proposerPreferences.js.map +1 -1
  102. package/lib/chain/forkChoice/index.d.ts.map +1 -1
  103. package/lib/chain/forkChoice/index.js +4 -0
  104. package/lib/chain/forkChoice/index.js.map +1 -1
  105. package/lib/chain/interface.d.ts +4 -2
  106. package/lib/chain/interface.d.ts.map +1 -1
  107. package/lib/chain/interface.js.map +1 -1
  108. package/lib/chain/opPools/aggregatedAttestationPool.js +1 -1
  109. package/lib/chain/opPools/aggregatedAttestationPool.js.map +1 -1
  110. package/lib/chain/opPools/attestationPool.d.ts +1 -1
  111. package/lib/chain/opPools/attestationPool.d.ts.map +1 -1
  112. package/lib/chain/opPools/attestationPool.js +1 -1
  113. package/lib/chain/opPools/attestationPool.js.map +1 -1
  114. package/lib/chain/opPools/deferredVoluntaryExitPool.d.ts +16 -0
  115. package/lib/chain/opPools/deferredVoluntaryExitPool.d.ts.map +1 -0
  116. package/lib/chain/opPools/deferredVoluntaryExitPool.js +57 -0
  117. package/lib/chain/opPools/deferredVoluntaryExitPool.js.map +1 -0
  118. package/lib/chain/opPools/index.d.ts +1 -0
  119. package/lib/chain/opPools/index.d.ts.map +1 -1
  120. package/lib/chain/opPools/index.js +1 -0
  121. package/lib/chain/opPools/index.js.map +1 -1
  122. package/lib/chain/opPools/payloadAttestationPool.js +3 -3
  123. package/lib/chain/opPools/payloadAttestationPool.js.map +1 -1
  124. package/lib/chain/opPools/syncCommitteeMessagePool.js +1 -1
  125. package/lib/chain/opPools/syncCommitteeMessagePool.js.map +1 -1
  126. package/lib/chain/opPools/syncContributionAndProofPool.js +1 -1
  127. package/lib/chain/opPools/syncContributionAndProofPool.js.map +1 -1
  128. package/lib/chain/opPools/utils.d.ts +1 -1
  129. package/lib/chain/opPools/utils.d.ts.map +1 -1
  130. package/lib/chain/opPools/utils.js +1 -1
  131. package/lib/chain/opPools/utils.js.map +1 -1
  132. package/lib/chain/options.d.ts +1 -1
  133. package/lib/chain/options.d.ts.map +1 -1
  134. package/lib/chain/prepareNextSlot.d.ts.map +1 -1
  135. package/lib/chain/prepareNextSlot.js +24 -6
  136. package/lib/chain/prepareNextSlot.js.map +1 -1
  137. package/lib/chain/produceBlock/produceBlockBody.d.ts +2 -0
  138. package/lib/chain/produceBlock/produceBlockBody.d.ts.map +1 -1
  139. package/lib/chain/produceBlock/produceBlockBody.js +6 -1
  140. package/lib/chain/produceBlock/produceBlockBody.js.map +1 -1
  141. package/lib/chain/regen/interface.d.ts +4 -2
  142. package/lib/chain/regen/interface.d.ts.map +1 -1
  143. package/lib/chain/regen/interface.js +2 -0
  144. package/lib/chain/regen/interface.js.map +1 -1
  145. package/lib/chain/regen/queued.d.ts +2 -2
  146. package/lib/chain/regen/queued.d.ts.map +1 -1
  147. package/lib/chain/regen/queued.js +5 -5
  148. package/lib/chain/regen/queued.js.map +1 -1
  149. package/lib/chain/seenCache/seenAttesters.d.ts +9 -5
  150. package/lib/chain/seenCache/seenAttesters.d.ts.map +1 -1
  151. package/lib/chain/seenCache/seenAttesters.js +25 -4
  152. package/lib/chain/seenCache/seenAttesters.js.map +1 -1
  153. package/lib/chain/seenCache/seenPayloadEnvelopeInput.d.ts +28 -1
  154. package/lib/chain/seenCache/seenPayloadEnvelopeInput.d.ts.map +1 -1
  155. package/lib/chain/seenCache/seenPayloadEnvelopeInput.js +121 -13
  156. package/lib/chain/seenCache/seenPayloadEnvelopeInput.js.map +1 -1
  157. package/lib/chain/stateCache/fifoBlockStateCache.d.ts +5 -1
  158. package/lib/chain/stateCache/fifoBlockStateCache.d.ts.map +1 -1
  159. package/lib/chain/stateCache/fifoBlockStateCache.js +6 -0
  160. package/lib/chain/stateCache/fifoBlockStateCache.js.map +1 -1
  161. package/lib/chain/stateCache/persistentCheckpointsCache.d.ts +47 -5
  162. package/lib/chain/stateCache/persistentCheckpointsCache.d.ts.map +1 -1
  163. package/lib/chain/stateCache/persistentCheckpointsCache.js +117 -7
  164. package/lib/chain/stateCache/persistentCheckpointsCache.js.map +1 -1
  165. package/lib/chain/stateCache/types.d.ts +3 -3
  166. package/lib/chain/stateCache/types.d.ts.map +1 -1
  167. package/lib/chain/validation/attestation.d.ts.map +1 -1
  168. package/lib/chain/validation/attestation.js +1 -4
  169. package/lib/chain/validation/attestation.js.map +1 -1
  170. package/lib/chain/validation/attesterSlashing.d.ts.map +1 -1
  171. package/lib/chain/validation/attesterSlashing.js +1 -1
  172. package/lib/chain/validation/attesterSlashing.js.map +1 -1
  173. package/lib/chain/validation/executionPayloadBid.d.ts.map +1 -1
  174. package/lib/chain/validation/executionPayloadBid.js +1 -2
  175. package/lib/chain/validation/executionPayloadBid.js.map +1 -1
  176. package/lib/chain/validation/executionPayloadEnvelope.js +1 -1
  177. package/lib/chain/validation/executionPayloadEnvelope.js.map +1 -1
  178. package/lib/chain/validation/payloadAttestationMessage.d.ts.map +1 -1
  179. package/lib/chain/validation/payloadAttestationMessage.js +5 -14
  180. package/lib/chain/validation/payloadAttestationMessage.js.map +1 -1
  181. package/lib/chain/validation/proposerPreferences.d.ts +1 -1
  182. package/lib/chain/validation/proposerPreferences.d.ts.map +1 -1
  183. package/lib/chain/validation/proposerPreferences.js +13 -4
  184. package/lib/chain/validation/proposerPreferences.js.map +1 -1
  185. package/lib/chain/validation/proposerSlashing.js +1 -1
  186. package/lib/chain/validation/proposerSlashing.js.map +1 -1
  187. package/lib/chain/validation/voluntaryExit.d.ts +9 -1
  188. package/lib/chain/validation/voluntaryExit.d.ts.map +1 -1
  189. package/lib/chain/validation/voluntaryExit.js +46 -1
  190. package/lib/chain/validation/voluntaryExit.js.map +1 -1
  191. package/lib/execution/builder/http.d.ts +10 -7
  192. package/lib/execution/builder/http.d.ts.map +1 -1
  193. package/lib/execution/builder/http.js +11 -8
  194. package/lib/execution/builder/http.js.map +1 -1
  195. package/lib/metrics/metrics/beacon.d.ts +3 -3
  196. package/lib/metrics/metrics/beacon.d.ts.map +1 -1
  197. package/lib/metrics/metrics/beacon.js +9 -9
  198. package/lib/metrics/metrics/beacon.js.map +1 -1
  199. package/lib/metrics/metrics/lodestar.d.ts +72 -22
  200. package/lib/metrics/metrics/lodestar.d.ts.map +1 -1
  201. package/lib/metrics/metrics/lodestar.js +130 -52
  202. package/lib/metrics/metrics/lodestar.js.map +1 -1
  203. package/lib/network/gossip/topic.d.ts +13 -0
  204. package/lib/network/gossip/topic.d.ts.map +1 -1
  205. package/lib/network/gossip/topic.js +37 -0
  206. package/lib/network/gossip/topic.js.map +1 -1
  207. package/lib/network/libp2p/index.d.ts.map +1 -1
  208. package/lib/network/libp2p/index.js +10 -2
  209. package/lib/network/libp2p/index.js.map +1 -1
  210. package/lib/network/network.d.ts.map +1 -1
  211. package/lib/network/network.js +22 -43
  212. package/lib/network/network.js.map +1 -1
  213. package/lib/network/processor/gossipHandlers.d.ts.map +1 -1
  214. package/lib/network/processor/gossipHandlers.js +12 -3
  215. package/lib/network/processor/gossipHandlers.js.map +1 -1
  216. package/lib/network/reqresp/score.d.ts.map +1 -1
  217. package/lib/network/reqresp/score.js +5 -11
  218. package/lib/network/reqresp/score.js.map +1 -1
  219. package/lib/network/util.d.ts +0 -1
  220. package/lib/network/util.d.ts.map +1 -1
  221. package/lib/network/util.js +0 -4
  222. package/lib/network/util.js.map +1 -1
  223. package/lib/node/deferredVoluntaryExitPublisher.d.ts +15 -0
  224. package/lib/node/deferredVoluntaryExitPublisher.d.ts.map +1 -0
  225. package/lib/node/deferredVoluntaryExitPublisher.js +38 -0
  226. package/lib/node/deferredVoluntaryExitPublisher.js.map +1 -0
  227. package/lib/node/nodejs.d.ts +2 -1
  228. package/lib/node/nodejs.d.ts.map +1 -1
  229. package/lib/node/nodejs.js +2 -0
  230. package/lib/node/nodejs.js.map +1 -1
  231. package/lib/sync/range/batch.d.ts +23 -5
  232. package/lib/sync/range/batch.d.ts.map +1 -1
  233. package/lib/sync/range/batch.js +61 -22
  234. package/lib/sync/range/batch.js.map +1 -1
  235. package/lib/sync/range/chain.d.ts +2 -1
  236. package/lib/sync/range/chain.d.ts.map +1 -1
  237. package/lib/sync/range/chain.js +23 -10
  238. package/lib/sync/range/chain.js.map +1 -1
  239. package/lib/sync/types.d.ts +32 -0
  240. package/lib/sync/types.d.ts.map +1 -1
  241. package/lib/sync/types.js +33 -0
  242. package/lib/sync/types.js.map +1 -1
  243. package/lib/sync/unknownBlock.d.ts +9 -0
  244. package/lib/sync/unknownBlock.d.ts.map +1 -1
  245. package/lib/sync/unknownBlock.js +187 -47
  246. package/lib/sync/unknownBlock.js.map +1 -1
  247. package/lib/sync/utils/downloadByRange.d.ts.map +1 -1
  248. package/lib/sync/utils/downloadByRange.js +16 -11
  249. package/lib/sync/utils/downloadByRange.js.map +1 -1
  250. package/lib/sync/utils/downloadByRoot.d.ts.map +1 -1
  251. package/lib/sync/utils/downloadByRoot.js +3 -1
  252. package/lib/sync/utils/downloadByRoot.js.map +1 -1
  253. package/package.json +35 -35
  254. package/src/api/impl/beacon/blocks/index.ts +7 -8
  255. package/src/api/impl/beacon/pool/index.ts +27 -2
  256. package/src/api/impl/beacon/state/utils.ts +2 -1
  257. package/src/api/impl/events/index.ts +12 -4
  258. package/src/api/impl/lodestar/index.ts +1 -1
  259. package/src/api/impl/validator/index.ts +22 -27
  260. package/src/api/impl/validator/utils.ts +30 -15
  261. package/src/api/rest/base.ts +7 -0
  262. package/src/chain/archiveStore/archiveStore.ts +1 -1
  263. package/src/chain/archiveStore/historicalState/metrics.ts +22 -0
  264. package/src/chain/blocks/importBlock.ts +1 -6
  265. package/src/chain/blocks/importExecutionPayload.ts +12 -11
  266. package/src/chain/blocks/index.ts +18 -6
  267. package/src/chain/blocks/payloadEnvelopeInput/payloadEnvelopeInput.ts +8 -2
  268. package/src/chain/blocks/payloadEnvelopeInput/types.ts +17 -4
  269. package/src/chain/blocks/verifyBlocksStateTransitionOnly.ts +25 -16
  270. package/src/chain/blocks/verifyExecutionPayloadEnvelope.ts +1 -9
  271. package/src/chain/bls/index.ts +1 -1
  272. package/src/chain/bls/interface.ts +7 -3
  273. package/src/chain/bls/multithread/index.ts +148 -120
  274. package/src/chain/bls/multithread/jobItem.ts +12 -82
  275. package/src/chain/bls/multithread/types.ts +33 -8
  276. package/src/chain/bls/multithread/utils.ts +11 -0
  277. package/src/chain/bls/multithread/worker.ts +85 -27
  278. package/src/chain/bls/singleThread.ts +11 -55
  279. package/src/chain/bls/utils.ts +23 -24
  280. package/src/chain/builderCircuitBreaker.ts +31 -17
  281. package/src/chain/chain.ts +19 -6
  282. package/src/chain/errors/blockError.ts +8 -2
  283. package/src/chain/errors/proposerPreferences.ts +7 -0
  284. package/src/chain/forkChoice/index.ts +4 -0
  285. package/src/chain/interface.ts +4 -1
  286. package/src/chain/opPools/aggregatedAttestationPool.ts +1 -1
  287. package/src/chain/opPools/attestationPool.ts +1 -1
  288. package/src/chain/opPools/deferredVoluntaryExitPool.ts +65 -0
  289. package/src/chain/opPools/index.ts +1 -0
  290. package/src/chain/opPools/payloadAttestationPool.ts +3 -3
  291. package/src/chain/opPools/syncCommitteeMessagePool.ts +1 -1
  292. package/src/chain/opPools/syncContributionAndProofPool.ts +1 -1
  293. package/src/chain/opPools/utils.ts +1 -1
  294. package/src/chain/options.ts +1 -1
  295. package/src/chain/prepareNextSlot.ts +24 -6
  296. package/src/chain/produceBlock/produceBlockBody.ts +13 -0
  297. package/src/chain/regen/interface.ts +4 -2
  298. package/src/chain/regen/queued.ts +5 -5
  299. package/src/chain/seenCache/seenAttesters.ts +31 -5
  300. package/src/chain/seenCache/seenPayloadEnvelopeInput.ts +143 -14
  301. package/src/chain/stateCache/fifoBlockStateCache.ts +8 -1
  302. package/src/chain/stateCache/persistentCheckpointsCache.ts +133 -8
  303. package/src/chain/stateCache/types.ts +3 -3
  304. package/src/chain/validation/attestation.ts +1 -7
  305. package/src/chain/validation/attesterSlashing.ts +1 -8
  306. package/src/chain/validation/executionPayloadBid.ts +1 -2
  307. package/src/chain/validation/executionPayloadEnvelope.ts +0 -1
  308. package/src/chain/validation/payloadAttestationMessage.ts +6 -17
  309. package/src/chain/validation/proposerPreferences.ts +15 -5
  310. package/src/chain/validation/proposerSlashing.ts +1 -1
  311. package/src/chain/validation/voluntaryExit.ts +59 -2
  312. package/src/execution/builder/http.ts +11 -11
  313. package/src/metrics/metrics/beacon.ts +9 -9
  314. package/src/metrics/metrics/lodestar.ts +142 -57
  315. package/src/network/gossip/topic.ts +38 -0
  316. package/src/network/libp2p/index.ts +11 -2
  317. package/src/network/network.ts +27 -55
  318. package/src/network/processor/gossipHandlers.ts +14 -1
  319. package/src/network/reqresp/score.ts +5 -11
  320. package/src/network/util.ts +0 -5
  321. package/src/node/deferredVoluntaryExitPublisher.ts +54 -0
  322. package/src/node/nodejs.ts +5 -1
  323. package/src/sync/range/batch.ts +83 -28
  324. package/src/sync/range/chain.ts +26 -11
  325. package/src/sync/types.ts +36 -1
  326. package/src/sync/unknownBlock.ts +212 -53
  327. package/src/sync/utils/downloadByRange.ts +21 -12
  328. package/src/sync/utils/downloadByRoot.ts +3 -1
  329. package/lib/chain/bls/maybeBatch.d.ts +0 -12
  330. package/lib/chain/bls/maybeBatch.d.ts.map +0 -1
  331. package/lib/chain/bls/maybeBatch.js +0 -35
  332. package/lib/chain/bls/maybeBatch.js.map +0 -1
  333. package/src/chain/bls/maybeBatch.ts +0 -45
@@ -1 +1 @@
1
- {"version":3,"file":"singleThread.js","sourceRoot":"","sources":["../../../src/chain/bls/singleThread.ts"],"names":[],"mappings":"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"}
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,6 +1,6 @@
1
- import { PublicKey } from "@chainsafe/blst";
2
- import { ISignatureSet, PubkeyCache } from "@lodestar/state-transition";
3
- import { Metrics } from "../../metrics/metrics.js";
4
- export declare function getAggregatedPubkey(signatureSet: ISignatureSet, pubkeyCache: PubkeyCache, metrics?: Metrics | null): PublicKey;
1
+ import { ISignatureSet } from "@lodestar/state-transition";
2
+ import { SameMessageSignatureSet } from "./interface.js";
3
+ export declare function verifySignatureSetsInBatches(signatureSets: ISignatureSet[]): boolean;
4
+ export declare function chunkSameMessageSignatureSets(sets: SameMessageSignatureSet[]): SameMessageSignatureSet[][];
5
5
  export declare function getAggregatedPubkeysCount(signatureSets: ISignatureSet[]): number;
6
6
  //# sourceMappingURL=utils.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"utils.d.ts","sourceRoot":"","sources":["../../../src/chain/bls/utils.ts"],"names":[],"mappings":"AAAA,OAAO,EAAC,SAAS,EAAsB,MAAM,iBAAiB,CAAC;AAC/D,OAAO,EAAC,aAAa,EAAE,WAAW,EAAmB,MAAM,4BAA4B,CAAC;AACxF,OAAO,EAAC,OAAO,EAAC,MAAM,0BAA0B,CAAC;AAEjD,wBAAgB,mBAAmB,CACjC,YAAY,EAAE,aAAa,EAC3B,WAAW,EAAE,WAAW,EACxB,OAAO,GAAE,OAAO,GAAG,IAAW,GAC7B,SAAS,CAsBX;AAED,wBAAgB,yBAAyB,CAAC,aAAa,EAAE,aAAa,EAAE,GAAG,MAAM,CAQhF"}
1
+ {"version":3,"file":"utils.d.ts","sourceRoot":"","sources":["../../../src/chain/bls/utils.ts"],"names":[],"mappings":"AAKA,OAAO,EAAC,aAAa,EAAsC,MAAM,4BAA4B,CAAC;AAC9F,OAAO,EAAC,uBAAuB,EAAC,MAAM,gBAAgB,CAAC;AAEvD,wBAAgB,4BAA4B,CAAC,aAAa,EAAE,aAAa,EAAE,GAAG,OAAO,CAapF;AAED,wBAAgB,6BAA6B,CAAC,IAAI,EAAE,uBAAuB,EAAE,GAAG,uBAAuB,EAAE,EAAE,CAM1G;AAED,wBAAgB,yBAAyB,CAAC,aAAa,EAAE,aAAa,EAAE,GAAG,MAAM,CAQhF"}
@@ -1,24 +1,23 @@
1
- import { aggregatePublicKeys } from "@chainsafe/blst";
2
- import { SignatureSetType } from "@lodestar/state-transition";
3
- export function getAggregatedPubkey(signatureSet, pubkeyCache, metrics = null) {
4
- switch (signatureSet.type) {
5
- case SignatureSetType.single:
6
- return signatureSet.pubkey;
7
- case SignatureSetType.indexed: {
8
- return pubkeyCache.getOrThrow(signatureSet.index);
9
- }
10
- case SignatureSetType.aggregate: {
11
- const timer = metrics?.blsThreadPool.pubkeysAggregationMainThreadDuration.startTimer();
12
- const pubkeys = signatureSet.indices.map((i) => {
13
- return pubkeyCache.getOrThrow(i);
14
- });
15
- const aggregated = aggregatePublicKeys(pubkeys);
16
- timer?.();
17
- return aggregated;
1
+ import { BLS_VERIFIER_MAX_BATCH_SIZE, BLS_VERIFIER_MAX_SAME_MESSAGE_BATCH_SIZE, verifySignatureSets, } from "@chainsafe/lodestar-z/bls-verifier";
2
+ import { SignatureSetType, toBlsSignatureSet } from "@lodestar/state-transition";
3
+ export function verifySignatureSetsInBatches(signatureSets) {
4
+ if (signatureSets.length === 0) {
5
+ return false;
6
+ }
7
+ for (let start = 0; start < signatureSets.length; start += BLS_VERIFIER_MAX_BATCH_SIZE) {
8
+ const sets = signatureSets.slice(start, start + BLS_VERIFIER_MAX_BATCH_SIZE).map(toBlsSignatureSet);
9
+ if (!verifySignatureSets(sets)) {
10
+ return false;
18
11
  }
19
- default:
20
- throw Error("Unknown signature set type");
21
12
  }
13
+ return true;
14
+ }
15
+ export function chunkSameMessageSignatureSets(sets) {
16
+ const chunks = [];
17
+ for (let start = 0; start < sets.length; start += BLS_VERIFIER_MAX_SAME_MESSAGE_BATCH_SIZE) {
18
+ chunks.push(sets.slice(start, start + BLS_VERIFIER_MAX_SAME_MESSAGE_BATCH_SIZE));
19
+ }
20
+ return chunks;
22
21
  }
23
22
  export function getAggregatedPubkeysCount(signatureSets) {
24
23
  let pubkeysCount = 0;
@@ -1 +1 @@
1
- {"version":3,"file":"utils.js","sourceRoot":"","sources":["../../../src/chain/bls/utils.ts"],"names":[],"mappings":"AAAA,OAAO,EAAY,mBAAmB,EAAC,MAAM,iBAAiB,CAAC;AAC/D,OAAO,EAA6B,gBAAgB,EAAC,MAAM,4BAA4B,CAAC;AAGxF,MAAM,UAAU,mBAAmB,CACjC,YAA2B,EAC3B,WAAwB,EACxB,OAAO,GAAmB,IAAI;IAE9B,QAAQ,YAAY,CAAC,IAAI,EAAE,CAAC;QAC1B,KAAK,gBAAgB,CAAC,MAAM;YAC1B,OAAO,YAAY,CAAC,MAAM,CAAC;QAE7B,KAAK,gBAAgB,CAAC,OAAO,EAAE,CAAC;YAC9B,OAAO,WAAW,CAAC,UAAU,CAAC,YAAY,CAAC,KAAK,CAAC,CAAC;QACpD,CAAC;QAED,KAAK,gBAAgB,CAAC,SAAS,EAAE,CAAC;YAChC,MAAM,KAAK,GAAG,OAAO,EAAE,aAAa,CAAC,oCAAoC,CAAC,UAAU,EAAE,CAAC;YACvF,MAAM,OAAO,GAAG,YAAY,CAAC,OAAO,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE;gBAC7C,OAAO,WAAW,CAAC,UAAU,CAAC,CAAC,CAAC,CAAC;YACnC,CAAC,CAAC,CAAC;YACH,MAAM,UAAU,GAAG,mBAAmB,CAAC,OAAO,CAAC,CAAC;YAChD,KAAK,EAAE,EAAE,CAAC;YACV,OAAO,UAAU,CAAC;QACpB,CAAC;QAED;YACE,MAAM,KAAK,CAAC,4BAA4B,CAAC,CAAC;IAC9C,CAAC;AACH,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,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,4 +1,4 @@
1
- import { IForkChoice } from "@lodestar/fork-choice";
1
+ import { IForkChoice, ProtoBlock } from "@lodestar/fork-choice";
2
2
  import { Slot } from "@lodestar/types";
3
3
  import { Logger } from "@lodestar/utils";
4
4
  import { Metrics } from "../metrics/index.js";
@@ -14,8 +14,9 @@ export type BuilderCircuitBreakerModules = {
14
14
  /**
15
15
  * Post-gloas circuit breaker for builder bids. The beacon block is produced by the proposer
16
16
  * regardless of bid source, so missed blocks are not a useful builder health signal. Instead
17
- * count blocks whose payload was never revealed and stop selecting builder bids while the
18
- * non-reveal rate in the fault inspection window is too high.
17
+ * count canonical blocks selected as EMPTY. Activate when the proportion of EMPTY blocks exceeds
18
+ * the fault budget, and resume selecting builder bids only when the observed blocks are within
19
+ * budget and meet the minimum recovery sample size.
19
20
  */
20
21
  export declare class BuilderCircuitBreaker {
21
22
  private readonly modules;
@@ -25,7 +26,7 @@ export declare class BuilderCircuitBreaker {
25
26
  private lastUpdatedSlot;
26
27
  constructor(opts: BuilderCircuitBreakerOpts, modules: BuilderCircuitBreakerModules);
27
28
  /** Whether builder bids must be ignored for a block produced at clockSlot */
28
- isActive(clockSlot: Slot): boolean;
29
- update(clockSlot: Slot): void;
29
+ isActive(clockSlot: Slot, head: ProtoBlock): boolean;
30
+ update(clockSlot: Slot, head: ProtoBlock): void;
30
31
  }
31
32
  //# sourceMappingURL=builderCircuitBreaker.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"builderCircuitBreaker.d.ts","sourceRoot":"","sources":["../../src/chain/builderCircuitBreaker.ts"],"names":[],"mappings":"AAAA,OAAO,EAAC,WAAW,EAAC,MAAM,uBAAuB,CAAC;AAClD,OAAO,EAAC,IAAI,EAAC,MAAM,iBAAiB,CAAC;AACrC,OAAO,EAAC,MAAM,EAAC,MAAM,iBAAiB,CAAC;AAEvC,OAAO,EAAC,OAAO,EAAC,MAAM,qBAAqB,CAAC;AAE5C,MAAM,MAAM,yBAAyB,GAAG;IACtC,qBAAqB,CAAC,EAAE,MAAM,CAAC;IAC/B,aAAa,CAAC,EAAE,MAAM,CAAC;CACxB,CAAC;AAEF,MAAM,MAAM,4BAA4B,GAAG;IACzC,UAAU,EAAE,WAAW,CAAC;IACxB,MAAM,EAAE,MAAM,CAAC;IACf,OAAO,EAAE,OAAO,GAAG,IAAI,CAAC;CACzB,CAAC;AAEF;;;;;GAKG;AACH,qBAAa,qBAAqB;IAS9B,OAAO,CAAC,QAAQ,CAAC,OAAO;IAR1B,QAAQ,CAAC,qBAAqB,EAAE,MAAM,CAAC;IACvC,QAAQ,CAAC,aAAa,EAAE,MAAM,CAAC;IAE/B,OAAO,CAAC,MAAM,CAAS;IACvB,OAAO,CAAC,eAAe,CAAM;IAE7B,YACE,IAAI,EAAE,yBAAyB,EACd,OAAO,EAAE,4BAA4B,EAKvD;IAED,6EAA6E;IAC7E,QAAQ,CAAC,SAAS,EAAE,IAAI,GAAG,OAAO,CAGjC;IAED,MAAM,CAAC,SAAS,EAAE,IAAI,GAAG,IAAI,CAqC5B;CACF"}
1
+ {"version":3,"file":"builderCircuitBreaker.d.ts","sourceRoot":"","sources":["../../src/chain/builderCircuitBreaker.ts"],"names":[],"mappings":"AAAA,OAAO,EAAC,WAAW,EAAE,UAAU,EAAC,MAAM,uBAAuB,CAAC;AAC9D,OAAO,EAAC,IAAI,EAAC,MAAM,iBAAiB,CAAC;AACrC,OAAO,EAAC,MAAM,EAAC,MAAM,iBAAiB,CAAC;AAEvC,OAAO,EAAC,OAAO,EAAC,MAAM,qBAAqB,CAAC;AAE5C,MAAM,MAAM,yBAAyB,GAAG;IACtC,qBAAqB,CAAC,EAAE,MAAM,CAAC;IAC/B,aAAa,CAAC,EAAE,MAAM,CAAC;CACxB,CAAC;AAEF,MAAM,MAAM,4BAA4B,GAAG;IACzC,UAAU,EAAE,WAAW,CAAC;IACxB,MAAM,EAAE,MAAM,CAAC;IACf,OAAO,EAAE,OAAO,GAAG,IAAI,CAAC;CACzB,CAAC;AAKF;;;;;;GAMG;AACH,qBAAa,qBAAqB;IAS9B,OAAO,CAAC,QAAQ,CAAC,OAAO;IAR1B,QAAQ,CAAC,qBAAqB,EAAE,MAAM,CAAC;IACvC,QAAQ,CAAC,aAAa,EAAE,MAAM,CAAC;IAE/B,OAAO,CAAC,MAAM,CAAS;IACvB,OAAO,CAAC,eAAe,CAAM;IAE7B,YACE,IAAI,EAAE,yBAAyB,EACd,OAAO,EAAE,4BAA4B,EAMvD;IAED,6EAA6E;IAC7E,QAAQ,CAAC,SAAS,EAAE,IAAI,EAAE,IAAI,EAAE,UAAU,GAAG,OAAO,CAGnD;IAED,MAAM,CAAC,SAAS,EAAE,IAAI,EAAE,IAAI,EAAE,UAAU,GAAG,IAAI,CA8C9C;CACF"}
@@ -1,9 +1,12 @@
1
1
  import { getFaultInspectionParams } from "../execution/builder/http.js";
2
+ /** Four observations is the minimum useful recovery sample for the default ~25% fault budget */
3
+ const MIN_BLOCKS_TO_DEACTIVATE = 4;
2
4
  /**
3
5
  * Post-gloas circuit breaker for builder bids. The beacon block is produced by the proposer
4
6
  * regardless of bid source, so missed blocks are not a useful builder health signal. Instead
5
- * count blocks whose payload was never revealed and stop selecting builder bids while the
6
- * non-reveal rate in the fault inspection window is too high.
7
+ * count canonical blocks selected as EMPTY. Activate when the proportion of EMPTY blocks exceeds
8
+ * the fault budget, and resume selecting builder bids only when the observed blocks are within
9
+ * budget and meet the minimum recovery sample size.
7
10
  */
8
11
  export class BuilderCircuitBreaker {
9
12
  modules;
@@ -16,30 +19,40 @@ export class BuilderCircuitBreaker {
16
19
  const { faultInspectionWindow, allowedFaults } = getFaultInspectionParams(opts);
17
20
  this.faultInspectionWindow = faultInspectionWindow;
18
21
  this.allowedFaults = allowedFaults;
22
+ this.modules.logger.info("Builder circuit breaker initialized", { faultInspectionWindow, allowedFaults });
19
23
  }
20
24
  /** Whether builder bids must be ignored for a block produced at clockSlot */
21
- isActive(clockSlot) {
22
- this.update(clockSlot);
25
+ isActive(clockSlot, head) {
26
+ this.update(clockSlot, head);
23
27
  return this.active;
24
28
  }
25
- update(clockSlot) {
29
+ update(clockSlot, head) {
26
30
  if (clockSlot <= this.lastUpdatedSlot) {
27
31
  return;
28
32
  }
29
33
  this.lastUpdatedSlot = clockSlot;
30
- // Exclude clockSlot itself, its payload reveal may still be in flight
31
- const { blocksPresent, payloadsRevealed } = this.modules.forkChoice.getPayloadRevealCounts(Math.max(clockSlot - this.faultInspectionWindow, 0), clockSlot - 1);
32
- const faults = blocksPresent - payloadsRevealed;
34
+ // Exclude clockSlot itself, its payload status may still be unresolved
35
+ const { full, empty } = this.modules.forkChoice.getCanonicalPayloadCounts(Math.max(clockSlot - this.faultInspectionWindow, 0), clockSlot - 1, head);
36
+ const canonicalBlocks = full + empty;
33
37
  const wasActive = this.active;
34
- // Scale the fault budget by blocks present so sparse windows still trigger on high non-reveal rates
35
- this.active = faults * this.faultInspectionWindow > this.allowedFaults * blocksPresent;
38
+ // Scale the fault budget by canonical blocks so sparse windows still trigger on high EMPTY rates
39
+ const exceedsFaultBudget = empty * this.faultInspectionWindow > this.allowedFaults * canonicalBlocks;
40
+ if (exceedsFaultBudget) {
41
+ this.active = true;
42
+ }
43
+ else if (canonicalBlocks >= MIN_BLOCKS_TO_DEACTIVATE) {
44
+ // Require a minimum sample within the fault budget before accepting builder bids again
45
+ this.active = false;
46
+ }
36
47
  this.modules.metrics?.builderCircuitBreaker.active.set(this.active ? 1 : 0);
37
- this.modules.metrics?.builderCircuitBreaker.faults.set(faults);
38
- this.modules.metrics?.builderCircuitBreaker.blocksPresent.set(blocksPresent);
39
- this.modules.metrics?.builderCircuitBreaker.payloadsRevealed.set(payloadsRevealed);
48
+ this.modules.metrics?.builderCircuitBreaker.canonicalBlocks.set(canonicalBlocks);
49
+ this.modules.metrics?.builderCircuitBreaker.fullBlocks.set(full);
50
+ this.modules.metrics?.builderCircuitBreaker.emptyBlocks.set(empty);
40
51
  const logCtx = {
41
- blocksPresent,
42
- faults,
52
+ clockSlot,
53
+ canonicalBlocks,
54
+ full,
55
+ empty,
43
56
  faultInspectionWindow: this.faultInspectionWindow,
44
57
  allowedFaults: this.allowedFaults,
45
58
  };
@@ -1 +1 @@
1
- {"version":3,"file":"builderCircuitBreaker.js","sourceRoot":"","sources":["../../src/chain/builderCircuitBreaker.ts"],"names":[],"mappings":"AAGA,OAAO,EAAC,wBAAwB,EAAC,MAAM,8BAA8B,CAAC;AActE;;;;;GAKG;AACH,MAAM,OAAO,qBAAqB;IASb,OAAO;IARjB,qBAAqB,CAAS;IAC9B,aAAa,CAAS;IAEvB,MAAM,GAAG,KAAK,CAAC;IACf,eAAe,GAAG,CAAC,CAAC,CAAC;IAE7B,YACE,IAA+B,EACd,OAAqC;uBAArC,OAAO;QAExB,MAAM,EAAC,qBAAqB,EAAE,aAAa,EAAC,GAAG,wBAAwB,CAAC,IAAI,CAAC,CAAC;QAC9E,IAAI,CAAC,qBAAqB,GAAG,qBAAqB,CAAC;QACnD,IAAI,CAAC,aAAa,GAAG,aAAa,CAAC;IACrC,CAAC;IAED,6EAA6E;IAC7E,QAAQ,CAAC,SAAe;QACtB,IAAI,CAAC,MAAM,CAAC,SAAS,CAAC,CAAC;QACvB,OAAO,IAAI,CAAC,MAAM,CAAC;IACrB,CAAC;IAED,MAAM,CAAC,SAAe;QACpB,IAAI,SAAS,IAAI,IAAI,CAAC,eAAe,EAAE,CAAC;YACtC,OAAO;QACT,CAAC;QACD,IAAI,CAAC,eAAe,GAAG,SAAS,CAAC;QAEjC,sEAAsE;QACtE,MAAM,EAAC,aAAa,EAAE,gBAAgB,EAAC,GAAG,IAAI,CAAC,OAAO,CAAC,UAAU,CAAC,sBAAsB,CACtF,IAAI,CAAC,GAAG,CAAC,SAAS,GAAG,IAAI,CAAC,qBAAqB,EAAE,CAAC,CAAC,EACnD,SAAS,GAAG,CAAC,CACd,CAAC;QACF,MAAM,MAAM,GAAG,aAAa,GAAG,gBAAgB,CAAC;QAEhD,MAAM,SAAS,GAAG,IAAI,CAAC,MAAM,CAAC;QAC9B,oGAAoG;QACpG,IAAI,CAAC,MAAM,GAAG,MAAM,GAAG,IAAI,CAAC,qBAAqB,GAAG,IAAI,CAAC,aAAa,GAAG,aAAa,CAAC;QAEvF,IAAI,CAAC,OAAO,CAAC,OAAO,EAAE,qBAAqB,CAAC,MAAM,CAAC,GAAG,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;QAC5E,IAAI,CAAC,OAAO,CAAC,OAAO,EAAE,qBAAqB,CAAC,MAAM,CAAC,GAAG,CAAC,MAAM,CAAC,CAAC;QAC/D,IAAI,CAAC,OAAO,CAAC,OAAO,EAAE,qBAAqB,CAAC,aAAa,CAAC,GAAG,CAAC,aAAa,CAAC,CAAC;QAC7E,IAAI,CAAC,OAAO,CAAC,OAAO,EAAE,qBAAqB,CAAC,gBAAgB,CAAC,GAAG,CAAC,gBAAgB,CAAC,CAAC;QAEnF,MAAM,MAAM,GAAG;YACb,aAAa;YACb,MAAM;YACN,qBAAqB,EAAE,IAAI,CAAC,qBAAqB;YACjD,aAAa,EAAE,IAAI,CAAC,aAAa;SAClC,CAAC;QACF,IAAI,IAAI,CAAC,MAAM,KAAK,SAAS,EAAE,CAAC;YAC9B,IAAI,IAAI,CAAC,MAAM,EAAE,CAAC;gBAChB,IAAI,CAAC,OAAO,CAAC,MAAM,CAAC,IAAI,CAAC,0DAA0D,EAAE,MAAM,CAAC,CAAC;YAC/F,CAAC;iBAAM,CAAC;gBACN,IAAI,CAAC,OAAO,CAAC,MAAM,CAAC,IAAI,CAAC,qCAAqC,EAAE,MAAM,CAAC,CAAC;YAC1E,CAAC;QACH,CAAC;aAAM,CAAC;YACN,IAAI,CAAC,OAAO,CAAC,MAAM,CAAC,OAAO,CAAC,gCAAgC,EAAE,EAAC,MAAM,EAAE,IAAI,CAAC,MAAM,EAAE,GAAG,MAAM,EAAC,CAAC,CAAC;QAClG,CAAC;IACH,CAAC;CACF"}
1
+ {"version":3,"file":"builderCircuitBreaker.js","sourceRoot":"","sources":["../../src/chain/builderCircuitBreaker.ts"],"names":[],"mappings":"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"}
@@ -1,8 +1,9 @@
1
1
  import { PrivateKey } from "@libp2p/interface";
2
+ import { type PubkeyCache } from "@chainsafe/lodestar-z/pubkeys";
2
3
  import { Type } from "@chainsafe/ssz";
3
4
  import { BeaconConfig } from "@lodestar/config";
4
5
  import { CheckpointWithHex, IForkChoice, ProtoBlock } from "@lodestar/fork-choice";
5
- import { EpochShuffling, IBeaconStateView, PubkeyCache } from "@lodestar/state-transition";
6
+ import { EpochShuffling, IBeaconStateView } from "@lodestar/state-transition";
6
7
  import { BeaconBlock, BlindedBeaconBlock, DataColumnSidecar, Epoch, Root, RootHex, SignedBeaconBlock, Slot, Status, UintNum64, ValidatorIndex, Wei, deneb, gloas, phase0, rewards } from "@lodestar/types";
7
8
  import { Logger } from "@lodestar/utils";
8
9
  import { ProcessShutdownCallback } from "@lodestar/validator";
@@ -29,7 +30,7 @@ import { ForkchoiceCaller } from "./forkChoice/index.js";
29
30
  import { GetBlobsTracker } from "./GetBlobsTracker.js";
30
31
  import { CommonBlockBody, IBeaconChain, ProposerPreparationData, StateGetOpts } from "./interface.js";
31
32
  import { LightClientServer } from "./lightClient/index.js";
32
- import { AggregatedAttestationPool, AttestationPool, ExecutionPayloadBidPool, OpPool, PayloadAttestationPool, ProposerPreferencesPool, SyncCommitteeMessagePool, SyncContributionAndProofPool } from "./opPools/index.js";
33
+ import { AggregatedAttestationPool, AttestationPool, DeferredVoluntaryExitPool, ExecutionPayloadBidPool, OpPool, PayloadAttestationPool, ProposerPreferencesPool, SyncCommitteeMessagePool, SyncContributionAndProofPool } from "./opPools/index.js";
33
34
  import { IChainOptions } from "./options.js";
34
35
  import { AssembledBlockType, BlockType, ProduceResult } from "./produceBlock/index.js";
35
36
  import { BlockAttributes } from "./produceBlock/produceBlockBody.js";
@@ -73,6 +74,7 @@ export declare class BeaconChain implements IBeaconChain {
73
74
  readonly payloadAttestationPool: PayloadAttestationPool;
74
75
  readonly proposerPreferencesPool: ProposerPreferencesPool;
75
76
  readonly opPool: OpPool;
77
+ readonly deferredVoluntaryExitPool: DeferredVoluntaryExitPool;
76
78
  readonly seenAttesters: SeenAttesters;
77
79
  readonly seenAggregators: SeenAggregators;
78
80
  readonly seenPayloadAttesters: SeenPayloadAttesters;
@@ -208,7 +210,7 @@ export declare class BeaconChain implements IBeaconChain {
208
210
  executionPayloadValue: Wei;
209
211
  consensusBlockValue: Wei;
210
212
  }>;
211
- produceBlockWrapper<T extends BlockType>(blockType: T, { randaoReveal, graffiti, slot, feeRecipient, commonBlockBodyPromise, parentBlock, builderBid, }: BlockAttributes & {
213
+ produceBlockWrapper<T extends BlockType>(blockType: T, { randaoReveal, graffiti, slot, feeRecipient, strictFeeRecipientCheck, commonBlockBodyPromise, parentBlock, builderBid, }: BlockAttributes & {
212
214
  commonBlockBodyPromise: Promise<CommonBlockBody>;
213
215
  }): Promise<{
214
216
  block: AssembledBlockType<T>;
@@ -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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"}
@@ -23,6 +23,7 @@ import { CheckpointBalancesCache } from "./balancesCache.js";
23
23
  import { BeaconProposerCache } from "./beaconProposerCache.js";
24
24
  import { isBlockInputBlobs, isBlockInputColumns } from "./blocks/blockInput/index.js";
25
25
  import { BlockProcessor } from "./blocks/index.js";
26
+ import { PayloadEnvelopeInputSource } from "./blocks/payloadEnvelopeInput/index.js";
26
27
  import { PayloadEnvelopeProcessor } from "./blocks/payloadEnvelopeProcessor.js";
27
28
  import { persistBlockInput } from "./blocks/writeBlockInputToDb.js";
28
29
  import { persistPayloadEnvelopeInput } from "./blocks/writePayloadEnvelopeInputToDb.js";
@@ -34,7 +35,7 @@ import { initializeForkChoice } from "./forkChoice/index.js";
34
35
  import { GetBlobsTracker } from "./GetBlobsTracker.js";
35
36
  import { FindHeadFnName } from "./interface.js";
36
37
  import { LightClientServer } from "./lightClient/index.js";
37
- import { AggregatedAttestationPool, AttestationPool, ExecutionPayloadBidPool, OpPool, PayloadAttestationPool, ProposerPreferencesPool, SyncCommitteeMessagePool, SyncContributionAndProofPool, } from "./opPools/index.js";
38
+ import { AggregatedAttestationPool, AttestationPool, DeferredVoluntaryExitPool, ExecutionPayloadBidPool, OpPool, PayloadAttestationPool, ProposerPreferencesPool, SyncCommitteeMessagePool, SyncContributionAndProofPool, } from "./opPools/index.js";
38
39
  import { PrepareNextSlotScheduler } from "./prepareNextSlot.js";
39
40
  import { computeNewStateRoot } from "./produceBlock/computeNewStateRoot.js";
40
41
  import { BlockType } from "./produceBlock/index.js";
@@ -106,6 +107,7 @@ export class BeaconChain {
106
107
  payloadAttestationPool;
107
108
  proposerPreferencesPool = new ProposerPreferencesPool();
108
109
  opPool;
110
+ deferredVoluntaryExitPool;
109
111
  // Gossip seen cache
110
112
  seenAttesters = new SeenAttesters();
111
113
  seenAggregators = new SeenAggregators();
@@ -172,8 +174,8 @@ export class BeaconChain {
172
174
  const emitter = new ChainEventEmitter();
173
175
  // by default, verify signatures on both main threads and worker threads
174
176
  const bls = opts.blsVerifyAllMainThread
175
- ? new BlsSingleThreadVerifier({ metrics, pubkeyCache })
176
- : new BlsMultiThreadWorkerPool(opts, { logger, metrics, pubkeyCache });
177
+ ? new BlsSingleThreadVerifier({ metrics })
178
+ : new BlsMultiThreadWorkerPool(opts, { logger, metrics });
177
179
  if (!clock)
178
180
  clock = new Clock({ config, genesisTime: this.genesisTime, signal });
179
181
  this.blacklistedBlocks = new Map((opts.blacklistedBlocks ?? []).map((hex) => [hex, null]));
@@ -184,6 +186,7 @@ export class BeaconChain {
184
186
  this.executionPayloadBidPool = new ExecutionPayloadBidPool();
185
187
  this.payloadAttestationPool = new PayloadAttestationPool(config, clock, metrics);
186
188
  this.opPool = new OpPool(config);
189
+ this.deferredVoluntaryExitPool = new DeferredVoluntaryExitPool(logger);
187
190
  this.seenAggregatedAttestations = new SeenAggregatedAttestations(metrics);
188
191
  this.seenContributionAndProof = new SeenContributionAndProof(metrics);
189
192
  this.seenAttestationDatas = new SeenAttestationDatas(metrics, this.opts?.attDataCacheSlotDistance);
@@ -280,6 +283,9 @@ export class BeaconChain {
280
283
  chainEvents: emitter,
281
284
  signal,
282
285
  serializedCache: this.serializedCache,
286
+ db,
287
+ seenBlockInputCache: this.seenBlockInputCache,
288
+ custodyConfig: this.custodyConfig,
283
289
  metrics,
284
290
  logger,
285
291
  });
@@ -294,7 +300,8 @@ export class BeaconChain {
294
300
  bid: anchorBid,
295
301
  sampledColumns: this.custodyConfig.sampledColumns,
296
302
  custodyColumns: this.custodyConfig.custodyColumns,
297
- timeCreatedSec: Math.floor(Date.now() / 1000),
303
+ seenTimestampSec: Date.now() / 1000,
304
+ source: PayloadEnvelopeInputSource.anchorState,
298
305
  });
299
306
  }
300
307
  this.clock = clock;
@@ -377,7 +384,7 @@ export class BeaconChain {
377
384
  // seenAggregators = single aggregator index, not participants of the aggregate
378
385
  this.seenAggregators.isKnown(epoch, index) ||
379
386
  // seenPayloadAttesters = single signer of payload attestation message
380
- this.seenPayloadAttesters.isKnown(epoch, index) ||
387
+ this.seenPayloadAttesters.seenAtEpoch(epoch, index) ||
381
388
  // seenBlockProposers = single block proposer
382
389
  this.seenBlockProposers.seenAtEpoch(epoch, index));
383
390
  }
@@ -763,15 +770,16 @@ export class BeaconChain {
763
770
  produceBlindedBlock(blockAttributes) {
764
771
  return this.produceBlockWrapper(BlockType.Blinded, blockAttributes);
765
772
  }
766
- async produceBlockWrapper(blockType, { randaoReveal, graffiti, slot, feeRecipient, commonBlockBodyPromise, parentBlock, builderBid, }) {
773
+ async produceBlockWrapper(blockType, { randaoReveal, graffiti, slot, feeRecipient, strictFeeRecipientCheck, commonBlockBodyPromise, parentBlock, builderBid, }) {
767
774
  const state = await this.regen.getBlockSlotState(parentBlock, slot, { dontTransferCache: true }, RegenCaller.produceBlock);
768
775
  const proposerIndex = state.getBeaconProposer(slot);
769
- const proposerPubKey = this.pubkeyCache.getOrThrow(proposerIndex).toBytes();
776
+ const proposerPubKey = this.pubkeyCache.getPubkeyBytesOrThrow(proposerIndex);
770
777
  const { body, produceResult, executionPayloadValue, shouldOverrideBuilder } = await produceBlockBody.call(this, blockType, state, {
771
778
  randaoReveal,
772
779
  graffiti,
773
780
  slot,
774
781
  feeRecipient,
782
+ strictFeeRecipientCheck,
775
783
  parentBlock,
776
784
  proposerIndex,
777
785
  proposerPubKey,
@@ -1157,6 +1165,7 @@ export class BeaconChain {
1157
1165
  // aggregatedAttestationPool tracks metrics on its own
1158
1166
  metrics.opPool.attestationPool.size.set(this.attestationPool.getAttestationCount());
1159
1167
  metrics.opPool.attesterSlashingPoolSize.set(this.opPool.attesterSlashingsSize);
1168
+ metrics.opPool.deferredVoluntaryExitPool.size.set(this.deferredVoluntaryExitPool.size());
1160
1169
  metrics.opPool.proposerSlashingPoolSize.set(this.opPool.proposerSlashingsSize);
1161
1170
  metrics.opPool.voluntaryExitPoolSize.set(this.opPool.voluntaryExitsSize);
1162
1171
  metrics.opPool.syncCommitteeMessagePoolSize.set(this.syncCommitteeMessagePool.size);
@@ -1165,6 +1174,8 @@ export class BeaconChain {
1165
1174
  // syncContributionAndProofPool tracks metrics on its own
1166
1175
  metrics.opPool.blsToExecutionChangePoolSize.set(this.opPool.blsToExecutionChangeSize);
1167
1176
  metrics.chain.blacklistedBlocks.set(this.blacklistedBlocks.size);
1177
+ metrics.bls.pubkeyCacheSize.set(this.pubkeyCache.size);
1178
+ metrics.bls.pubkeyCacheCapacity.set(this.pubkeyCache.capacity);
1168
1179
  const headState = this.getHeadState();
1169
1180
  if (isStatePostElectra(headState)) {
1170
1181
  metrics.pendingDeposits.set(headState.pendingDepositsCount);