@lodestar/beacon-node 1.47.0-dev.9d19aee2e7 → 1.47.0-dev.9ecc10f386

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 (341) hide show
  1. package/lib/api/impl/beacon/blocks/index.d.ts.map +1 -1
  2. package/lib/api/impl/beacon/blocks/index.js +47 -12
  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 +232 -49
  18. package/lib/api/impl/validator/index.js.map +1 -1
  19. package/lib/api/impl/validator/utils.js +1 -1
  20. package/lib/api/impl/validator/utils.js.map +1 -1
  21. package/lib/api/rest/base.d.ts.map +1 -1
  22. package/lib/api/rest/base.js +7 -0
  23. package/lib/api/rest/base.js.map +1 -1
  24. package/lib/chain/archiveStore/archiveStore.js +1 -1
  25. package/lib/chain/archiveStore/archiveStore.js.map +1 -1
  26. package/lib/chain/archiveStore/historicalState/metrics.d.ts.map +1 -1
  27. package/lib/chain/archiveStore/historicalState/metrics.js +21 -0
  28. package/lib/chain/archiveStore/historicalState/metrics.js.map +1 -1
  29. package/lib/chain/blocks/importBlock.d.ts.map +1 -1
  30. package/lib/chain/blocks/importBlock.js +2 -7
  31. package/lib/chain/blocks/importBlock.js.map +1 -1
  32. package/lib/chain/blocks/importExecutionPayload.d.ts +3 -2
  33. package/lib/chain/blocks/importExecutionPayload.d.ts.map +1 -1
  34. package/lib/chain/blocks/importExecutionPayload.js +11 -9
  35. package/lib/chain/blocks/importExecutionPayload.js.map +1 -1
  36. package/lib/chain/blocks/index.d.ts.map +1 -1
  37. package/lib/chain/blocks/index.js +14 -6
  38. package/lib/chain/blocks/index.js.map +1 -1
  39. package/lib/chain/blocks/payloadEnvelopeInput/payloadEnvelopeInput.d.ts +2 -1
  40. package/lib/chain/blocks/payloadEnvelopeInput/payloadEnvelopeInput.d.ts.map +1 -1
  41. package/lib/chain/blocks/payloadEnvelopeInput/payloadEnvelopeInput.js +6 -2
  42. package/lib/chain/blocks/payloadEnvelopeInput/payloadEnvelopeInput.js.map +1 -1
  43. package/lib/chain/blocks/payloadEnvelopeInput/types.d.ts +14 -5
  44. package/lib/chain/blocks/payloadEnvelopeInput/types.d.ts.map +1 -1
  45. package/lib/chain/blocks/payloadEnvelopeInput/types.js +5 -0
  46. package/lib/chain/blocks/payloadEnvelopeInput/types.js.map +1 -1
  47. package/lib/chain/blocks/verifyBlocksStateTransitionOnly.d.ts.map +1 -1
  48. package/lib/chain/blocks/verifyBlocksStateTransitionOnly.js +22 -12
  49. package/lib/chain/blocks/verifyBlocksStateTransitionOnly.js.map +1 -1
  50. package/lib/chain/blocks/verifyExecutionPayloadEnvelope.d.ts +2 -2
  51. package/lib/chain/blocks/verifyExecutionPayloadEnvelope.d.ts.map +1 -1
  52. package/lib/chain/blocks/verifyExecutionPayloadEnvelope.js +2 -2
  53. package/lib/chain/blocks/verifyExecutionPayloadEnvelope.js.map +1 -1
  54. package/lib/chain/bls/index.d.ts +1 -1
  55. package/lib/chain/bls/index.d.ts.map +1 -1
  56. package/lib/chain/bls/interface.d.ts +5 -5
  57. package/lib/chain/bls/interface.d.ts.map +1 -1
  58. package/lib/chain/bls/multithread/index.d.ts +5 -11
  59. package/lib/chain/bls/multithread/index.d.ts.map +1 -1
  60. package/lib/chain/bls/multithread/index.js +116 -101
  61. package/lib/chain/bls/multithread/index.js.map +1 -1
  62. package/lib/chain/bls/multithread/jobItem.d.ts +5 -19
  63. package/lib/chain/bls/multithread/jobItem.d.ts.map +1 -1
  64. package/lib/chain/bls/multithread/jobItem.js +10 -65
  65. package/lib/chain/bls/multithread/jobItem.js.map +1 -1
  66. package/lib/chain/bls/multithread/types.d.ts +29 -8
  67. package/lib/chain/bls/multithread/types.d.ts.map +1 -1
  68. package/lib/chain/bls/multithread/types.js +12 -0
  69. package/lib/chain/bls/multithread/types.js.map +1 -1
  70. package/lib/chain/bls/multithread/utils.d.ts +4 -0
  71. package/lib/chain/bls/multithread/utils.d.ts.map +1 -1
  72. package/lib/chain/bls/multithread/utils.js +10 -0
  73. package/lib/chain/bls/multithread/utils.js.map +1 -1
  74. package/lib/chain/bls/multithread/worker.js +49 -23
  75. package/lib/chain/bls/multithread/worker.js.map +1 -1
  76. package/lib/chain/bls/singleThread.d.ts +4 -10
  77. package/lib/chain/bls/singleThread.d.ts.map +1 -1
  78. package/lib/chain/bls/singleThread.js +8 -45
  79. package/lib/chain/bls/singleThread.js.map +1 -1
  80. package/lib/chain/bls/utils.d.ts +4 -4
  81. package/lib/chain/bls/utils.d.ts.map +1 -1
  82. package/lib/chain/bls/utils.js +18 -19
  83. package/lib/chain/bls/utils.js.map +1 -1
  84. package/lib/chain/chain.d.ts +8 -3
  85. package/lib/chain/chain.d.ts.map +1 -1
  86. package/lib/chain/chain.js +20 -7
  87. package/lib/chain/chain.js.map +1 -1
  88. package/lib/chain/errors/blockError.d.ts +1 -0
  89. package/lib/chain/errors/blockError.d.ts.map +1 -1
  90. package/lib/chain/errors/blockError.js +6 -1
  91. package/lib/chain/errors/blockError.js.map +1 -1
  92. package/lib/chain/errors/proposerPreferences.d.ts +6 -0
  93. package/lib/chain/errors/proposerPreferences.d.ts.map +1 -1
  94. package/lib/chain/errors/proposerPreferences.js +1 -0
  95. package/lib/chain/errors/proposerPreferences.js.map +1 -1
  96. package/lib/chain/forkChoice/index.d.ts.map +1 -1
  97. package/lib/chain/forkChoice/index.js +4 -0
  98. package/lib/chain/forkChoice/index.js.map +1 -1
  99. package/lib/chain/interface.d.ts +6 -2
  100. package/lib/chain/interface.d.ts.map +1 -1
  101. package/lib/chain/interface.js.map +1 -1
  102. package/lib/chain/opPools/aggregatedAttestationPool.js +1 -1
  103. package/lib/chain/opPools/aggregatedAttestationPool.js.map +1 -1
  104. package/lib/chain/opPools/attestationPool.d.ts +1 -1
  105. package/lib/chain/opPools/attestationPool.d.ts.map +1 -1
  106. package/lib/chain/opPools/attestationPool.js +1 -1
  107. package/lib/chain/opPools/attestationPool.js.map +1 -1
  108. package/lib/chain/opPools/deferredVoluntaryExitPool.d.ts +16 -0
  109. package/lib/chain/opPools/deferredVoluntaryExitPool.d.ts.map +1 -0
  110. package/lib/chain/opPools/deferredVoluntaryExitPool.js +57 -0
  111. package/lib/chain/opPools/deferredVoluntaryExitPool.js.map +1 -0
  112. package/lib/chain/opPools/executionPayloadBidPool.d.ts +7 -2
  113. package/lib/chain/opPools/executionPayloadBidPool.d.ts.map +1 -1
  114. package/lib/chain/opPools/executionPayloadBidPool.js +4 -4
  115. package/lib/chain/opPools/executionPayloadBidPool.js.map +1 -1
  116. package/lib/chain/opPools/index.d.ts +2 -1
  117. package/lib/chain/opPools/index.d.ts.map +1 -1
  118. package/lib/chain/opPools/index.js +1 -0
  119. package/lib/chain/opPools/index.js.map +1 -1
  120. package/lib/chain/opPools/payloadAttestationPool.js +3 -3
  121. package/lib/chain/opPools/payloadAttestationPool.js.map +1 -1
  122. package/lib/chain/opPools/syncCommitteeMessagePool.js +1 -1
  123. package/lib/chain/opPools/syncCommitteeMessagePool.js.map +1 -1
  124. package/lib/chain/opPools/syncContributionAndProofPool.js +1 -1
  125. package/lib/chain/opPools/syncContributionAndProofPool.js.map +1 -1
  126. package/lib/chain/opPools/utils.d.ts +1 -1
  127. package/lib/chain/opPools/utils.d.ts.map +1 -1
  128. package/lib/chain/opPools/utils.js +1 -1
  129. package/lib/chain/opPools/utils.js.map +1 -1
  130. package/lib/chain/prepareNextSlot.d.ts.map +1 -1
  131. package/lib/chain/prepareNextSlot.js +23 -5
  132. package/lib/chain/prepareNextSlot.js.map +1 -1
  133. package/lib/chain/produceBlock/produceBlockBody.js +1 -1
  134. package/lib/chain/produceBlock/produceBlockBody.js.map +1 -1
  135. package/lib/chain/regen/interface.d.ts +5 -2
  136. package/lib/chain/regen/interface.d.ts.map +1 -1
  137. package/lib/chain/regen/interface.js +3 -0
  138. package/lib/chain/regen/interface.js.map +1 -1
  139. package/lib/chain/regen/queued.d.ts +2 -2
  140. package/lib/chain/regen/queued.d.ts.map +1 -1
  141. package/lib/chain/regen/queued.js +5 -5
  142. package/lib/chain/regen/queued.js.map +1 -1
  143. package/lib/chain/seenCache/seenAttesters.d.ts +9 -5
  144. package/lib/chain/seenCache/seenAttesters.d.ts.map +1 -1
  145. package/lib/chain/seenCache/seenAttesters.js +25 -4
  146. package/lib/chain/seenCache/seenAttesters.js.map +1 -1
  147. package/lib/chain/seenCache/seenPayloadEnvelopeInput.d.ts +28 -1
  148. package/lib/chain/seenCache/seenPayloadEnvelopeInput.d.ts.map +1 -1
  149. package/lib/chain/seenCache/seenPayloadEnvelopeInput.js +121 -13
  150. package/lib/chain/seenCache/seenPayloadEnvelopeInput.js.map +1 -1
  151. package/lib/chain/stateCache/fifoBlockStateCache.d.ts +5 -1
  152. package/lib/chain/stateCache/fifoBlockStateCache.d.ts.map +1 -1
  153. package/lib/chain/stateCache/fifoBlockStateCache.js +6 -0
  154. package/lib/chain/stateCache/fifoBlockStateCache.js.map +1 -1
  155. package/lib/chain/stateCache/persistentCheckpointsCache.d.ts +47 -5
  156. package/lib/chain/stateCache/persistentCheckpointsCache.d.ts.map +1 -1
  157. package/lib/chain/stateCache/persistentCheckpointsCache.js +117 -7
  158. package/lib/chain/stateCache/persistentCheckpointsCache.js.map +1 -1
  159. package/lib/chain/stateCache/types.d.ts +3 -3
  160. package/lib/chain/stateCache/types.d.ts.map +1 -1
  161. package/lib/chain/validation/attestation.d.ts.map +1 -1
  162. package/lib/chain/validation/attestation.js +1 -4
  163. package/lib/chain/validation/attestation.js.map +1 -1
  164. package/lib/chain/validation/attesterSlashing.d.ts.map +1 -1
  165. package/lib/chain/validation/attesterSlashing.js +1 -1
  166. package/lib/chain/validation/attesterSlashing.js.map +1 -1
  167. package/lib/chain/validation/executionPayloadBid.d.ts +13 -3
  168. package/lib/chain/validation/executionPayloadBid.d.ts.map +1 -1
  169. package/lib/chain/validation/executionPayloadBid.js +135 -5
  170. package/lib/chain/validation/executionPayloadBid.js.map +1 -1
  171. package/lib/chain/validation/executionPayloadEnvelope.js +1 -1
  172. package/lib/chain/validation/executionPayloadEnvelope.js.map +1 -1
  173. package/lib/chain/validation/payloadAttestationMessage.d.ts.map +1 -1
  174. package/lib/chain/validation/payloadAttestationMessage.js +5 -14
  175. package/lib/chain/validation/payloadAttestationMessage.js.map +1 -1
  176. package/lib/chain/validation/proposerPreferences.d.ts +1 -1
  177. package/lib/chain/validation/proposerPreferences.d.ts.map +1 -1
  178. package/lib/chain/validation/proposerPreferences.js +13 -4
  179. package/lib/chain/validation/proposerPreferences.js.map +1 -1
  180. package/lib/chain/validation/proposerSlashing.js +1 -1
  181. package/lib/chain/validation/proposerSlashing.js.map +1 -1
  182. package/lib/chain/validation/voluntaryExit.d.ts +9 -1
  183. package/lib/chain/validation/voluntaryExit.d.ts.map +1 -1
  184. package/lib/chain/validation/voluntaryExit.js +46 -1
  185. package/lib/chain/validation/voluntaryExit.js.map +1 -1
  186. package/lib/execution/builder/apiClient.d.ts +64 -0
  187. package/lib/execution/builder/apiClient.d.ts.map +1 -0
  188. package/lib/execution/builder/apiClient.js +184 -0
  189. package/lib/execution/builder/apiClient.js.map +1 -0
  190. package/lib/execution/builder/validateBid.d.ts +22 -0
  191. package/lib/execution/builder/validateBid.d.ts.map +1 -0
  192. package/lib/execution/builder/validateBid.js +111 -0
  193. package/lib/execution/builder/validateBid.js.map +1 -0
  194. package/lib/metrics/metrics/lodestar.d.ts +88 -23
  195. package/lib/metrics/metrics/lodestar.d.ts.map +1 -1
  196. package/lib/metrics/metrics/lodestar.js +164 -52
  197. package/lib/metrics/metrics/lodestar.js.map +1 -1
  198. package/lib/network/gossip/topic.d.ts +13 -0
  199. package/lib/network/gossip/topic.d.ts.map +1 -1
  200. package/lib/network/gossip/topic.js +37 -0
  201. package/lib/network/gossip/topic.js.map +1 -1
  202. package/lib/network/libp2p/index.d.ts.map +1 -1
  203. package/lib/network/libp2p/index.js +10 -2
  204. package/lib/network/libp2p/index.js.map +1 -1
  205. package/lib/network/network.d.ts.map +1 -1
  206. package/lib/network/network.js +23 -43
  207. package/lib/network/network.js.map +1 -1
  208. package/lib/network/processor/constants.d.ts +7 -0
  209. package/lib/network/processor/constants.d.ts.map +1 -0
  210. package/lib/network/processor/constants.js +7 -0
  211. package/lib/network/processor/constants.js.map +1 -0
  212. package/lib/network/processor/gossipHandlers.d.ts.map +1 -1
  213. package/lib/network/processor/gossipHandlers.js +13 -4
  214. package/lib/network/processor/gossipHandlers.js.map +1 -1
  215. package/lib/network/processor/gossipQueues/indexed.d.ts.map +1 -1
  216. package/lib/network/processor/gossipQueues/indexed.js +0 -1
  217. package/lib/network/processor/gossipQueues/indexed.js.map +1 -1
  218. package/lib/network/processor/index.d.ts +3 -0
  219. package/lib/network/processor/index.d.ts.map +1 -1
  220. package/lib/network/processor/index.js +41 -17
  221. package/lib/network/processor/index.js.map +1 -1
  222. package/lib/network/reqresp/score.d.ts.map +1 -1
  223. package/lib/network/reqresp/score.js +5 -11
  224. package/lib/network/reqresp/score.js.map +1 -1
  225. package/lib/network/util.d.ts +0 -1
  226. package/lib/network/util.d.ts.map +1 -1
  227. package/lib/network/util.js +0 -4
  228. package/lib/network/util.js.map +1 -1
  229. package/lib/node/deferredVoluntaryExitPublisher.d.ts +15 -0
  230. package/lib/node/deferredVoluntaryExitPublisher.d.ts.map +1 -0
  231. package/lib/node/deferredVoluntaryExitPublisher.js +38 -0
  232. package/lib/node/deferredVoluntaryExitPublisher.js.map +1 -0
  233. package/lib/node/nodejs.d.ts +2 -1
  234. package/lib/node/nodejs.d.ts.map +1 -1
  235. package/lib/node/nodejs.js +7 -0
  236. package/lib/node/nodejs.js.map +1 -1
  237. package/lib/sync/range/batch.d.ts +23 -5
  238. package/lib/sync/range/batch.d.ts.map +1 -1
  239. package/lib/sync/range/batch.js +61 -22
  240. package/lib/sync/range/batch.js.map +1 -1
  241. package/lib/sync/range/chain.d.ts +2 -1
  242. package/lib/sync/range/chain.d.ts.map +1 -1
  243. package/lib/sync/range/chain.js +23 -10
  244. package/lib/sync/range/chain.js.map +1 -1
  245. package/lib/sync/types.d.ts +32 -0
  246. package/lib/sync/types.d.ts.map +1 -1
  247. package/lib/sync/types.js +33 -0
  248. package/lib/sync/types.js.map +1 -1
  249. package/lib/sync/unknownBlock.d.ts +15 -2
  250. package/lib/sync/unknownBlock.d.ts.map +1 -1
  251. package/lib/sync/unknownBlock.js +220 -61
  252. package/lib/sync/unknownBlock.js.map +1 -1
  253. package/lib/sync/utils/downloadByRange.d.ts.map +1 -1
  254. package/lib/sync/utils/downloadByRange.js +16 -11
  255. package/lib/sync/utils/downloadByRange.js.map +1 -1
  256. package/lib/sync/utils/downloadByRoot.d.ts.map +1 -1
  257. package/lib/sync/utils/downloadByRoot.js +3 -1
  258. package/lib/sync/utils/downloadByRoot.js.map +1 -1
  259. package/package.json +35 -35
  260. package/src/api/impl/beacon/blocks/index.ts +55 -15
  261. package/src/api/impl/beacon/pool/index.ts +27 -2
  262. package/src/api/impl/beacon/state/utils.ts +2 -1
  263. package/src/api/impl/events/index.ts +12 -4
  264. package/src/api/impl/lodestar/index.ts +1 -1
  265. package/src/api/impl/validator/index.ts +285 -49
  266. package/src/api/impl/validator/utils.ts +1 -1
  267. package/src/api/rest/base.ts +7 -0
  268. package/src/chain/archiveStore/archiveStore.ts +1 -1
  269. package/src/chain/archiveStore/historicalState/metrics.ts +22 -0
  270. package/src/chain/blocks/importBlock.ts +1 -6
  271. package/src/chain/blocks/importExecutionPayload.ts +12 -11
  272. package/src/chain/blocks/index.ts +18 -6
  273. package/src/chain/blocks/payloadEnvelopeInput/payloadEnvelopeInput.ts +8 -2
  274. package/src/chain/blocks/payloadEnvelopeInput/types.ts +17 -4
  275. package/src/chain/blocks/verifyBlocksStateTransitionOnly.ts +25 -16
  276. package/src/chain/blocks/verifyExecutionPayloadEnvelope.ts +1 -9
  277. package/src/chain/bls/index.ts +1 -1
  278. package/src/chain/bls/interface.ts +7 -3
  279. package/src/chain/bls/multithread/index.ts +148 -120
  280. package/src/chain/bls/multithread/jobItem.ts +12 -82
  281. package/src/chain/bls/multithread/types.ts +33 -8
  282. package/src/chain/bls/multithread/utils.ts +11 -0
  283. package/src/chain/bls/multithread/worker.ts +85 -27
  284. package/src/chain/bls/singleThread.ts +11 -55
  285. package/src/chain/bls/utils.ts +23 -24
  286. package/src/chain/chain.ts +23 -6
  287. package/src/chain/errors/blockError.ts +8 -2
  288. package/src/chain/errors/proposerPreferences.ts +7 -0
  289. package/src/chain/forkChoice/index.ts +4 -0
  290. package/src/chain/interface.ts +6 -1
  291. package/src/chain/opPools/aggregatedAttestationPool.ts +1 -1
  292. package/src/chain/opPools/attestationPool.ts +1 -1
  293. package/src/chain/opPools/deferredVoluntaryExitPool.ts +65 -0
  294. package/src/chain/opPools/executionPayloadBidPool.ts +13 -7
  295. package/src/chain/opPools/index.ts +2 -1
  296. package/src/chain/opPools/payloadAttestationPool.ts +3 -3
  297. package/src/chain/opPools/syncCommitteeMessagePool.ts +1 -1
  298. package/src/chain/opPools/syncContributionAndProofPool.ts +1 -1
  299. package/src/chain/opPools/utils.ts +1 -1
  300. package/src/chain/prepareNextSlot.ts +23 -5
  301. package/src/chain/produceBlock/produceBlockBody.ts +1 -1
  302. package/src/chain/regen/interface.ts +5 -2
  303. package/src/chain/regen/queued.ts +5 -5
  304. package/src/chain/seenCache/seenAttesters.ts +31 -5
  305. package/src/chain/seenCache/seenPayloadEnvelopeInput.ts +143 -14
  306. package/src/chain/stateCache/fifoBlockStateCache.ts +8 -1
  307. package/src/chain/stateCache/persistentCheckpointsCache.ts +133 -8
  308. package/src/chain/stateCache/types.ts +3 -3
  309. package/src/chain/validation/attestation.ts +1 -7
  310. package/src/chain/validation/attesterSlashing.ts +1 -8
  311. package/src/chain/validation/executionPayloadBid.ts +155 -6
  312. package/src/chain/validation/executionPayloadEnvelope.ts +0 -1
  313. package/src/chain/validation/payloadAttestationMessage.ts +6 -17
  314. package/src/chain/validation/proposerPreferences.ts +15 -5
  315. package/src/chain/validation/proposerSlashing.ts +1 -1
  316. package/src/chain/validation/voluntaryExit.ts +59 -2
  317. package/src/execution/builder/apiClient.ts +244 -0
  318. package/src/execution/builder/validateBid.ts +166 -0
  319. package/src/metrics/metrics/lodestar.ts +178 -58
  320. package/src/network/gossip/topic.ts +38 -0
  321. package/src/network/libp2p/index.ts +11 -2
  322. package/src/network/network.ts +29 -54
  323. package/src/network/processor/constants.ts +6 -0
  324. package/src/network/processor/gossipHandlers.ts +15 -2
  325. package/src/network/processor/gossipQueues/indexed.ts +0 -1
  326. package/src/network/processor/index.ts +53 -21
  327. package/src/network/reqresp/score.ts +5 -11
  328. package/src/network/util.ts +0 -5
  329. package/src/node/deferredVoluntaryExitPublisher.ts +54 -0
  330. package/src/node/nodejs.ts +10 -1
  331. package/src/sync/range/batch.ts +83 -28
  332. package/src/sync/range/chain.ts +26 -11
  333. package/src/sync/types.ts +36 -1
  334. package/src/sync/unknownBlock.ts +258 -68
  335. package/src/sync/utils/downloadByRange.ts +21 -12
  336. package/src/sync/utils/downloadByRoot.ts +3 -1
  337. package/lib/chain/bls/maybeBatch.d.ts +0 -12
  338. package/lib/chain/bls/maybeBatch.d.ts.map +0 -1
  339. package/lib/chain/bls/maybeBatch.js +0 -35
  340. package/lib/chain/bls/maybeBatch.js.map +0 -1
  341. package/src/chain/bls/maybeBatch.ts +0 -45
@@ -0,0 +1,184 @@
1
+ import { getClient } from "@lodestar/api/builder";
2
+ import { DOMAIN_BUILDER_REQUEST_AUTH } from "@lodestar/params";
3
+ import { ZERO_HASH, computeDomain, computeSigningRoot, createSingleSignatureSetFromComponents, } from "@lodestar/state-transition";
4
+ import { ssz } from "@lodestar/types";
5
+ import { isValidAsciiHttpUrl, toHex, toPrintableUrl } from "@lodestar/utils";
6
+ /**
7
+ * Additional duration to account for potential event loop lag which causes
8
+ * builder bids to be rejected even though the response was sent in time.
9
+ */
10
+ const EVENT_LOOP_LAG_BUFFER = 250;
11
+ /**
12
+ * Duration given to a builder to provide a `SignedExecutionPayloadBid` before the deadline
13
+ * is reached, advertised on each bid request via the `X-Timeout-Ms` header. The p2p bid is
14
+ * selected after the same duration, only considering bids received up to that point.
15
+ */
16
+ export const BUILDER_BID_DEADLINE_MS = 500;
17
+ /** Local timeout for bid requests, event loop lag must not discard bids that arrived in time */
18
+ export const BUILDER_BID_REQUEST_TIMEOUT_MS = BUILDER_BID_DEADLINE_MS + EVENT_LOOP_LAG_BUFFER;
19
+ /** Decode the SSZ URL bytes without allowing replacement characters or unsafe header values. */
20
+ export function decodeBuilderUrl(value) {
21
+ let url;
22
+ try {
23
+ url = new TextDecoder("utf8", { fatal: true }).decode(value);
24
+ }
25
+ catch {
26
+ throw Error("Builder url must be valid UTF-8");
27
+ }
28
+ if (!isValidAsciiHttpUrl(url)) {
29
+ throw Error("Invalid builder url");
30
+ }
31
+ return url;
32
+ }
33
+ /**
34
+ * External builder integration post-gloas
35
+ *
36
+ * The builder set is driven by the resolved `BuilderConfig` the validator client supplies on
37
+ * each block production request, clients are dialed on demand based on the entry `url`.
38
+ */
39
+ export class BuilderApiClient {
40
+ opts;
41
+ config;
42
+ clock;
43
+ bls;
44
+ metrics;
45
+ logger;
46
+ clients = new Map();
47
+ constructor(opts, config, clock, bls, metrics = null, logger) {
48
+ this.opts = opts;
49
+ this.config = config;
50
+ this.clock = clock;
51
+ this.bls = bls;
52
+ this.metrics = metrics;
53
+ this.logger = logger;
54
+ }
55
+ /**
56
+ * Fan out bid requests to the builders named by the entries, one request per unique
57
+ * `(url, auth.message.data)` pair. Errors and empty responses (204) are logged and filtered
58
+ * out so a single unresponsive builder never fails block production.
59
+ */
60
+ async getExecutionPayloadBids(entries, slot, parentHash, parentRoot, proposerPubkey) {
61
+ const seenRequests = new Set();
62
+ const requests = [];
63
+ for (const entry of entries) {
64
+ const urlForLog = Buffer.from(entry.url).toString("utf8");
65
+ let url;
66
+ try {
67
+ url = decodeBuilderUrl(entry.url);
68
+ }
69
+ catch {
70
+ this.logger?.warn("Ignoring builder entry with invalid url", { slot, url: urlForLog });
71
+ continue;
72
+ }
73
+ const requestKey = `${url}-${toHex(entry.auth.message.data)}`;
74
+ if (seenRequests.has(requestKey)) {
75
+ continue;
76
+ }
77
+ seenRequests.add(requestKey);
78
+ // The builder rejects a mismatch, an entry naming a different slot is not used for a bid request
79
+ if (entry.auth.message.slot !== slot) {
80
+ this.logger?.warn("Ignoring builder entry with auth for different slot", {
81
+ slot,
82
+ authSlot: entry.auth.message.slot,
83
+ builder: toPrintableUrl(url),
84
+ });
85
+ continue;
86
+ }
87
+ requests.push({ url, entry });
88
+ }
89
+ // Collected in arrival order so an earlier received bid wins ties during candidate ranking
90
+ const bids = [];
91
+ await Promise.all(requests.map(async ({ url, entry }) => {
92
+ this.metrics?.builderApi.bidRequests.inc();
93
+ try {
94
+ const client = await this.getOrCreateClient(url, proposerPubkey, entry.auth);
95
+ const res = await client.getExecutionPayloadBid({
96
+ slot,
97
+ parentHash,
98
+ parentRoot,
99
+ proposerPubkey,
100
+ requestAuth: entry.auth,
101
+ dateMilliseconds: Date.now(),
102
+ timeoutMs: BUILDER_BID_DEADLINE_MS,
103
+ }, { timeoutMs: BUILDER_BID_REQUEST_TIMEOUT_MS });
104
+ const signedBid = res.value();
105
+ if (signedBid === undefined) {
106
+ this.logger?.debug("No bid received from builder", { slot, builder: toPrintableUrl(url) });
107
+ return;
108
+ }
109
+ this.metrics?.builderApi.bidsReceived.inc();
110
+ bids.push({ url, entry, signedBid, receivedMs: this.clock.msFromSlot(slot) });
111
+ }
112
+ catch (e) {
113
+ this.metrics?.builderApi.bidRequestErrors.inc();
114
+ this.logger?.warn("Failed to get bid from builder", { slot, builder: toPrintableUrl(url) }, e);
115
+ }
116
+ }));
117
+ return bids;
118
+ }
119
+ /** Forward a proposer's builder preferences to the builder at the given url */
120
+ async submitBuilderPreferences(url, proposerPubkey, request) {
121
+ try {
122
+ const client = await this.getOrCreateClient(url, proposerPubkey, request.auth);
123
+ (await client.submitBuilderPreferences({ proposerPubkey, request })).assertOk();
124
+ this.metrics?.builderApi.preferencesForwarded.inc({ status: "success" });
125
+ }
126
+ catch (e) {
127
+ this.metrics?.builderApi.preferencesForwarded.inc({ status: "error" });
128
+ throw e;
129
+ }
130
+ }
131
+ /**
132
+ * Submit the signed beacon block to the builder whose bid was included. The builder is
133
+ * then responsible for constructing and broadcasting the corresponding
134
+ * `SignedExecutionPayloadEnvelope`, no further action is required by the proposer.
135
+ */
136
+ async submitSignedBeaconBlock(url, signedBlock) {
137
+ const client = this.clients.get(url);
138
+ if (client === undefined) {
139
+ this.metrics?.builderApi.blockSubmissions.inc({ status: "error" });
140
+ this.logger?.warn("Ignoring signed block submission to unauthenticated builder", { url });
141
+ return;
142
+ }
143
+ try {
144
+ (await client.submitSignedBeaconBlock({ signedBlock }, { redirect: "manual" })).assertOk();
145
+ this.metrics?.builderApi.blockSubmissions.inc({ status: "success" });
146
+ }
147
+ catch (e) {
148
+ this.metrics?.builderApi.blockSubmissions.inc({ status: "error" });
149
+ throw e;
150
+ }
151
+ }
152
+ async getOrCreateClient(url, proposerPubkey, auth) {
153
+ if (auth.message.data.length === 0) {
154
+ throw Error("Builder request auth data must not be empty");
155
+ }
156
+ let client = this.clients.get(url);
157
+ if (client === undefined) {
158
+ const domain = computeDomain(DOMAIN_BUILDER_REQUEST_AUTH, this.config.GENESIS_FORK_VERSION, ZERO_HASH);
159
+ const signingRoot = computeSigningRoot(ssz.gloas.BuilderRequestAuth, auth.message, domain);
160
+ const signatureSet = createSingleSignatureSetFromComponents(proposerPubkey, signingRoot, auth.signature);
161
+ let isValid = false;
162
+ try {
163
+ isValid = await this.bls.verifySignatureSets([signatureSet]);
164
+ }
165
+ catch {
166
+ // Malformed signatures are invalid request authentication.
167
+ }
168
+ if (!isValid) {
169
+ throw Error("Invalid builder request auth");
170
+ }
171
+ client = getClient({
172
+ baseUrl: url,
173
+ globalInit: {
174
+ timeoutMs: this.opts.timeout,
175
+ headers: this.opts.userAgent ? { "User-Agent": this.opts.userAgent } : undefined,
176
+ },
177
+ }, { config: this.config, metrics: this.metrics?.builderHttpClient, logger: this.logger });
178
+ this.clients.set(url, client);
179
+ this.logger?.info("External builder registered", { url: toPrintableUrl(url) });
180
+ }
181
+ return client;
182
+ }
183
+ }
184
+ //# sourceMappingURL=apiClient.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"apiClient.js","sourceRoot":"","sources":["../../../src/execution/builder/apiClient.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,22 @@
1
+ import { routes } from "@lodestar/api";
2
+ import { ProtoBlock } from "@lodestar/fork-choice";
3
+ import { RootHex, Slot, gloas } from "@lodestar/types";
4
+ import { IBeaconChain } from "../../chain/index.js";
5
+ /** Return the counted bid payment in Gwei, saturated at uint64 max. */
6
+ export declare function getBuilderBidTotalGwei(bid: gloas.ExecutionPayloadBid, maxExecutionPayment: bigint): bigint;
7
+ /**
8
+ * Validate a bid received from a builder over the builder API in response to a bid request
9
+ * made during block production. Unlike gossip validation, the bid must match the requested
10
+ * slot and parent exactly, may carry a non-zero `executionPayment` which is counted at most at
11
+ * the entry's `maxExecutionPayment`, and is not subject to gossip anti-spam rules.
12
+ *
13
+ * Throws with a description of the failure, the caller drops the bid.
14
+ */
15
+ export declare function validateBuilderApiExecutionPayloadBid(chain: IBeaconChain, signedExecutionPayloadBid: gloas.SignedExecutionPayloadBid, request: {
16
+ slot: Slot;
17
+ parentBlock: ProtoBlock;
18
+ parentBlockHash: RootHex;
19
+ parentBlockRoot: RootHex;
20
+ entry: routes.validator.BuilderEntry;
21
+ }): Promise<void>;
22
+ //# sourceMappingURL=validateBid.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"validateBid.d.ts","sourceRoot":"","sources":["../../../src/execution/builder/validateBid.ts"],"names":[],"mappings":"AAAA,OAAO,EAAC,MAAM,EAAC,MAAM,eAAe,CAAC;AACrC,OAAO,EAAC,UAAU,EAAC,MAAM,uBAAuB,CAAC;AAUjD,OAAO,EAAC,OAAO,EAAE,IAAI,EAAE,KAAK,EAAC,MAAM,iBAAiB,CAAC;AAErD,OAAO,EAAC,YAAY,EAAC,MAAM,sBAAsB,CAAC;AAIlD,uEAAuE;AACvE,wBAAgB,sBAAsB,CAAC,GAAG,EAAE,KAAK,CAAC,mBAAmB,EAAE,mBAAmB,EAAE,MAAM,GAAG,MAAM,CAE1G;AAED;;;;;;;GAOG;AACH,wBAAsB,qCAAqC,CACzD,KAAK,EAAE,YAAY,EACnB,yBAAyB,EAAE,KAAK,CAAC,yBAAyB,EAC1D,OAAO,EAAE;IACP,IAAI,EAAE,IAAI,CAAC;IACX,WAAW,EAAE,UAAU,CAAC;IACxB,eAAe,EAAE,OAAO,CAAC;IACzB,eAAe,EAAE,OAAO,CAAC;IACzB,KAAK,EAAE,MAAM,CAAC,SAAS,CAAC,YAAY,CAAC;CACtC,GACA,OAAO,CAAC,IAAI,CAAC,CA6Hf"}
@@ -0,0 +1,111 @@
1
+ import { MAX_EXECUTION_PAYMENT, PAYLOAD_BUILDER_VERSION } from "@lodestar/params";
2
+ import { computeEpochAtSlot, createSingleSignatureSetFromComponents, getExecutionPayloadBidSigningRoot, isActiveBuilder, isGasLimitTargetCompatible, isStatePostGloas, } from "@lodestar/state-transition";
3
+ import { bigIntMin, byteArrayEquals, prettyGweiToEth, toHex, toRootHex } from "@lodestar/utils";
4
+ import { RegenCaller } from "../../chain/regen/index.js";
5
+ import { getShufflingDependentRoot } from "../../util/dependentRoot.js";
6
+ /** Return the counted bid payment in Gwei, saturated at uint64 max. */
7
+ export function getBuilderBidTotalGwei(bid, maxExecutionPayment) {
8
+ return bigIntMin(MAX_EXECUTION_PAYMENT, BigInt(bid.value) + bigIntMin(bid.executionPayment, maxExecutionPayment));
9
+ }
10
+ /**
11
+ * Validate a bid received from a builder over the builder API in response to a bid request
12
+ * made during block production. Unlike gossip validation, the bid must match the requested
13
+ * slot and parent exactly, may carry a non-zero `executionPayment` which is counted at most at
14
+ * the entry's `maxExecutionPayment`, and is not subject to gossip anti-spam rules.
15
+ *
16
+ * Throws with a description of the failure, the caller drops the bid.
17
+ */
18
+ export async function validateBuilderApiExecutionPayloadBid(chain, signedExecutionPayloadBid, request) {
19
+ const bid = signedExecutionPayloadBid.message;
20
+ const { slot, parentBlock, parentBlockHash, parentBlockRoot, entry } = request;
21
+ if (bid.slot !== slot) {
22
+ throw Error(`Bid slot=${bid.slot} does not match requested slot=${slot}`);
23
+ }
24
+ const bidParentBlockHash = toRootHex(bid.parentBlockHash);
25
+ const bidParentBlockRoot = toRootHex(bid.parentBlockRoot);
26
+ if (bidParentBlockHash !== parentBlockHash || bidParentBlockRoot !== parentBlockRoot) {
27
+ throw Error(`Bid parent parentBlockHash=${bidParentBlockHash} parentBlockRoot=${bidParentBlockRoot} does not match ` +
28
+ `requested parentBlockHash=${parentBlockHash} parentBlockRoot=${parentBlockRoot}`);
29
+ }
30
+ const totalPayment = getBuilderBidTotalGwei(bid, entry.maxExecutionPayment);
31
+ if (totalPayment < entry.minBid) {
32
+ throw Error(`Bid total payment=${prettyGweiToEth(totalPayment)} ` +
33
+ `(value=${prettyGweiToEth(bid.value)} ` +
34
+ `executionPayment=${prettyGweiToEth(bid.executionPayment)}) ` +
35
+ `is below minBid=${prettyGweiToEth(entry.minBid)}`);
36
+ }
37
+ const state = await chain.regen
38
+ .getBlockSlotState(parentBlock, slot, { dontTransferCache: true }, RegenCaller.validateGossipExecutionPayloadBid)
39
+ .catch((e) => {
40
+ throw Error(`Unable to regenerate state to validate bid: ${e.message}`);
41
+ });
42
+ if (!isStatePostGloas(state)) {
43
+ throw Error(`Expected gloas+ state for execution payload bid validation, got fork=${state.forkName}`);
44
+ }
45
+ if (bid.builderIndex >= state.getBuildersLength()) {
46
+ throw Error(`Bid builderIndex=${bid.builderIndex} is out of bounds`);
47
+ }
48
+ const builder = state.getBuilder(bid.builderIndex);
49
+ if (!isActiveBuilder(builder, state.finalizedCheckpoint.epoch)) {
50
+ throw Error(`Bid builderIndex=${bid.builderIndex} is not an active builder`);
51
+ }
52
+ if (builder.version !== PAYLOAD_BUILDER_VERSION) {
53
+ throw Error(`Invalid builder version=${builder.version} expected=${PAYLOAD_BUILDER_VERSION}`);
54
+ }
55
+ // A bid not signed by one of the builder pubkeys the entry accepts bids from must not be accepted
56
+ if (entry.builderPubkeys.length > 0 &&
57
+ !entry.builderPubkeys.some((pubkey) => byteArrayEquals(pubkey, builder.pubkey))) {
58
+ throw Error(`Bid builder pubkey=${toHex(builder.pubkey)} is not in the entry's ` +
59
+ `builderPubkeys=${entry.builderPubkeys.map(toHex).join(",")}`);
60
+ }
61
+ const blobKzgCommitmentsLen = bid.blobKzgCommitments.length;
62
+ const maxBlobsPerBlock = chain.config.getMaxBlobsPerBlock(computeEpochAtSlot(bid.slot));
63
+ if (blobKzgCommitmentsLen > maxBlobsPerBlock) {
64
+ throw Error(`Bid has too many KZG commitments len=${blobKzgCommitmentsLen} limit=${maxBlobsPerBlock}`);
65
+ }
66
+ // The coverage check only applies to the staked collateral payment, a pure execution
67
+ // layer payment bid has nothing to cover on-chain
68
+ if (bid.value > 0 && !state.canBuilderCoverBid(bid.builderIndex, bid.value)) {
69
+ throw Error(`Builder cannot cover bid value=${prettyGweiToEth(bid.value)} ` + `balance=${prettyGweiToEth(builder.balance)}`);
70
+ }
71
+ const randaoMix = state.getRandaoMix(computeEpochAtSlot(state.slot));
72
+ if (!byteArrayEquals(bid.prevRandao, randaoMix)) {
73
+ throw Error(`Invalid bid prevRandao=${toHex(bid.prevRandao)} expected=${toHex(randaoMix)}`);
74
+ }
75
+ // The builder must honor the proposer preferences it learned over gossip
76
+ const bidEpoch = computeEpochAtSlot(bid.slot);
77
+ const dependentRootHex = (() => {
78
+ try {
79
+ return getShufflingDependentRoot(chain.forkChoice, bidEpoch, computeEpochAtSlot(parentBlock.slot), parentBlock);
80
+ }
81
+ catch {
82
+ return null;
83
+ }
84
+ })();
85
+ if (dependentRootHex === null) {
86
+ throw Error(`Unable to resolve proposer preferences dependent root for bid slot=${bid.slot}`);
87
+ }
88
+ const proposerPreferences = chain.proposerPreferencesPool.get(bid.slot, dependentRootHex);
89
+ if (proposerPreferences === null) {
90
+ throw Error(`No proposer preferences found for bid slot=${bid.slot} dependentRoot=${dependentRootHex}`);
91
+ }
92
+ if (!byteArrayEquals(bid.feeRecipient, proposerPreferences.message.feeRecipient)) {
93
+ throw Error(`Bid feeRecipient=${toHex(bid.feeRecipient)} does not match ` +
94
+ `proposer preferences feeRecipient=${toHex(proposerPreferences.message.feeRecipient)}`);
95
+ }
96
+ const parentPayloadVariant = chain.forkChoice.getBlockHexAndBlockHash(bidParentBlockRoot, bidParentBlockHash);
97
+ if (parentPayloadVariant === null || parentPayloadVariant.executionPayloadBlockHash === null) {
98
+ throw Error(`Unable to resolve parent payload gas limit for bid parentBlockHash=${bidParentBlockHash}`);
99
+ }
100
+ const parentGasLimit = BigInt(parentPayloadVariant.executionPayloadGasLimit);
101
+ const targetGasLimit = proposerPreferences.message.targetGasLimit;
102
+ if (!isGasLimitTargetCompatible(parentGasLimit, bid.gasLimit, targetGasLimit)) {
103
+ throw Error(`Bid gasLimit=${bid.gasLimit} is not compatible with ` +
104
+ `parentGasLimit=${parentGasLimit} targetGasLimit=${targetGasLimit}`);
105
+ }
106
+ const signatureSet = createSingleSignatureSetFromComponents(builder.pubkey, getExecutionPayloadBidSigningRoot(chain.config, bid), signedExecutionPayloadBid.signature);
107
+ if (!(await chain.bls.verifySignatureSets([signatureSet]))) {
108
+ throw Error(`Invalid bid signature builderIndex=${bid.builderIndex}`);
109
+ }
110
+ }
111
+ //# sourceMappingURL=validateBid.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"validateBid.js","sourceRoot":"","sources":["../../../src/execution/builder/validateBid.ts"],"names":[],"mappings":"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"}
@@ -4,7 +4,7 @@ import { ArchiveStoreTask } from "../../chain/archiveStore/archiveStore.js";
4
4
  import { FrequencyStateArchiveStep } from "../../chain/archiveStore/strategies/frequencyStateArchiveStrategy.js";
5
5
  import { BlockInputSource } from "../../chain/blocks/blockInput/index.js";
6
6
  import { PayloadErrorCode } from "../../chain/blocks/importExecutionPayload.js";
7
- import { PayloadEnvelopeInputSource } from "../../chain/blocks/payloadEnvelopeInput/index.js";
7
+ import { PayloadEnvelopeInputPruneReason, PayloadEnvelopeInputSource } from "../../chain/blocks/payloadEnvelopeInput/index.js";
8
8
  import { JobQueueItemType } from "../../chain/bls/index.js";
9
9
  import { AttestationErrorCode, BlockErrorCode } from "../../chain/errors/index.js";
10
10
  import { type InvalidAttestationData, ScannedSlotsTerminationReason } from "../../chain/opPools/aggregatedAttestationPool.js";
@@ -18,7 +18,7 @@ import { ExecutionPayloadStatus } from "../../execution/index.js";
18
18
  import { GossipType } from "../../network/index.js";
19
19
  import { CannotAcceptWorkReason, ReprocessRejectReason } from "../../network/processor/index.js";
20
20
  import { BackfillSyncMethod } from "../../sync/backfill/backfill.js";
21
- import { PendingBlockType } from "../../sync/types.js";
21
+ import { DroppedItemReason, PendingBlockType } from "../../sync/types.js";
22
22
  import { PeerSyncType, RangeSyncType } from "../../sync/utils/remoteSyncType.js";
23
23
  import { AllocSource } from "../../util/bufferPool.js";
24
24
  import { DataColumnReconstructionCode } from "../../util/dataColumns.js";
@@ -26,6 +26,9 @@ import { DataColumnEngineResult } from "../../util/execution.js";
26
26
  import { LodestarMetadata } from "../options.js";
27
27
  import { RegistryMetricCreator } from "../utils/registryMetricCreator.js";
28
28
  export type LodestarMetrics = ReturnType<typeof createLodestarMetrics>;
29
+ type BlsJobOutcome = "valid" | "invalid" | "prepError" | "verifyError" | "workerError";
30
+ type BlsBufferFlushReason = "size" | "timeout";
31
+ type BlsVerificationCallOperation = "batch" | "single" | "fallback" | "same_message";
29
32
  /**
30
33
  * Extra Lodestar custom metrics
31
34
  */
@@ -50,7 +53,9 @@ export declare function createLodestarMetrics(register: RegistryMetricCreator, m
50
53
  topic: GossipType;
51
54
  }>;
52
55
  keyAge: import("@lodestar/utils").Histogram<import("@lodestar/utils").NoLabels>;
53
- queueTime: import("@lodestar/utils").Histogram<import("@lodestar/utils").NoLabels>;
56
+ queueTime: import("@lodestar/utils").Histogram<{
57
+ topic: GossipType;
58
+ }>;
54
59
  };
55
60
  networkProcessor: {
56
61
  gossipValidationAccept: import("@lodestar/utils").GaugeExtra<{
@@ -153,40 +158,56 @@ export declare function createLodestarMetrics(register: RegistryMetricCreator, m
153
158
  caller: RegenCaller;
154
159
  }>;
155
160
  bls: {
156
- aggregatedPubkeys: import("@lodestar/utils").GaugeExtra<import("@lodestar/utils").NoLabels>;
161
+ aggregatedPubkeys: import("@lodestar/utils").Counter<import("@lodestar/utils").NoLabels>;
162
+ pubkeyCacheSize: import("@lodestar/utils").GaugeExtra<import("@lodestar/utils").NoLabels>;
163
+ pubkeyCacheCapacity: import("@lodestar/utils").GaugeExtra<import("@lodestar/utils").NoLabels>;
157
164
  };
158
165
  blsThreadPool: {
159
- jobsWorkerTime: import("@lodestar/utils").GaugeExtra<{
166
+ jobsWorkerTime: import("@lodestar/utils").Counter<{
160
167
  workerId: number;
161
168
  }>;
162
- successJobsSignatureSetsCount: import("@lodestar/utils").GaugeExtra<import("@lodestar/utils").NoLabels>;
163
- errorAggregateSignatureSetsCount: import("@lodestar/utils").GaugeExtra<{
169
+ successJobsSignatureSetsCount: import("@lodestar/utils").Counter<import("@lodestar/utils").NoLabels>;
170
+ errorJobsSignatureSetsCount: import("@lodestar/utils").Counter<import("@lodestar/utils").NoLabels>;
171
+ jobWaitTime: import("@lodestar/utils").Histogram<{
164
172
  type: JobQueueItemType;
165
173
  }>;
166
- errorJobsSignatureSetsCount: import("@lodestar/utils").GaugeExtra<import("@lodestar/utils").NoLabels>;
167
- jobWaitTime: import("@lodestar/utils").Histogram<import("@lodestar/utils").NoLabels>;
174
+ jobDuration: import("@lodestar/utils").Histogram<{
175
+ type: JobQueueItemType;
176
+ }>;
177
+ jobResults: import("@lodestar/utils").Counter<{
178
+ type: JobQueueItemType;
179
+ outcome: BlsJobOutcome;
180
+ }>;
168
181
  queueLength: import("@lodestar/utils").GaugeExtra<import("@lodestar/utils").NoLabels>;
182
+ bufferedQueueLength: import("@lodestar/utils").GaugeExtra<import("@lodestar/utils").NoLabels>;
169
183
  workersBusy: import("@lodestar/utils").GaugeExtra<import("@lodestar/utils").NoLabels>;
170
- totalJobsGroupsStarted: import("@lodestar/utils").GaugeExtra<import("@lodestar/utils").NoLabels>;
171
- totalJobsStarted: import("@lodestar/utils").GaugeExtra<{
184
+ totalJobsGroupsStarted: import("@lodestar/utils").Counter<import("@lodestar/utils").NoLabels>;
185
+ totalJobsStarted: import("@lodestar/utils").Counter<{
172
186
  type: JobQueueItemType;
173
187
  }>;
174
- totalSigSetsStarted: import("@lodestar/utils").GaugeExtra<{
188
+ totalSigSetsStarted: import("@lodestar/utils").Counter<{
175
189
  type: JobQueueItemType;
176
190
  }>;
177
- batchRetries: import("@lodestar/utils").GaugeExtra<import("@lodestar/utils").NoLabels>;
178
- batchSigsSuccess: import("@lodestar/utils").GaugeExtra<import("@lodestar/utils").NoLabels>;
179
- sameMessageRetryJobs: import("@lodestar/utils").GaugeExtra<import("@lodestar/utils").NoLabels>;
180
- sameMessageRetrySets: import("@lodestar/utils").GaugeExtra<import("@lodestar/utils").NoLabels>;
191
+ batchRetries: import("@lodestar/utils").Counter<import("@lodestar/utils").NoLabels>;
192
+ batchSigsSuccess: import("@lodestar/utils").Counter<import("@lodestar/utils").NoLabels>;
193
+ bufferFlushes: import("@lodestar/utils").Counter<{
194
+ reason: BlsBufferFlushReason;
195
+ }>;
196
+ bufferedSignatureSets: import("@lodestar/utils").Histogram<import("@lodestar/utils").NoLabels>;
181
197
  latencyToWorker: import("@lodestar/utils").Histogram<import("@lodestar/utils").NoLabels>;
182
198
  latencyFromWorker: import("@lodestar/utils").Histogram<import("@lodestar/utils").NoLabels>;
183
199
  mainThreadDurationInThreadPool: import("@lodestar/utils").Histogram<import("@lodestar/utils").NoLabels>;
184
200
  timePerSigSet: import("@lodestar/utils").Histogram<import("@lodestar/utils").NoLabels>;
185
- totalSigSets: import("@lodestar/utils").GaugeExtra<import("@lodestar/utils").NoLabels>;
186
- prioritizedSigSets: import("@lodestar/utils").GaugeExtra<import("@lodestar/utils").NoLabels>;
187
- batchableSigSets: import("@lodestar/utils").GaugeExtra<import("@lodestar/utils").NoLabels>;
188
- aggregateWithRandomnessAsyncDuration: import("@lodestar/utils").Histogram<import("@lodestar/utils").NoLabels>;
189
- pubkeysAggregationMainThreadDuration: import("@lodestar/utils").Histogram<import("@lodestar/utils").NoLabels>;
201
+ workRequestPreparationDuration: import("@lodestar/utils").Histogram<import("@lodestar/utils").NoLabels>;
202
+ verificationCallDuration: import("@lodestar/utils").Histogram<{
203
+ operation: BlsVerificationCallOperation;
204
+ }>;
205
+ verificationCallSignatureSets: import("@lodestar/utils").Counter<{
206
+ operation: BlsVerificationCallOperation;
207
+ }>;
208
+ totalSigSets: import("@lodestar/utils").Counter<import("@lodestar/utils").NoLabels>;
209
+ prioritizedSigSets: import("@lodestar/utils").Counter<import("@lodestar/utils").NoLabels>;
210
+ batchableSigSets: import("@lodestar/utils").Counter<import("@lodestar/utils").NoLabels>;
190
211
  };
191
212
  blsSingleThread: {
192
213
  singleThreadDuration: import("@lodestar/utils").Histogram<import("@lodestar/utils").NoLabels>;
@@ -249,7 +270,12 @@ export declare function createLodestarMetrics(register: RegistryMetricCreator, m
249
270
  processedBlocksError: import("@lodestar/utils").GaugeExtra<import("@lodestar/utils").NoLabels>;
250
271
  downloadedBlocksSuccess: import("@lodestar/utils").GaugeExtra<import("@lodestar/utils").NoLabels>;
251
272
  downloadedBlocksError: import("@lodestar/utils").GaugeExtra<import("@lodestar/utils").NoLabels>;
252
- removedBlocks: import("@lodestar/utils").GaugeExtra<import("@lodestar/utils").NoLabels>;
273
+ removedBlocks: import("@lodestar/utils").GaugeExtra<{
274
+ reason: DroppedItemReason;
275
+ }>;
276
+ removedPayloads: import("@lodestar/utils").GaugeExtra<{
277
+ reason: DroppedItemReason;
278
+ }>;
253
279
  elapsedTimeTillReceived: import("@lodestar/utils").Histogram<import("@lodestar/utils").NoLabels>;
254
280
  resolveAvailabilitySource: import("@lodestar/utils").GaugeExtra<{
255
281
  source: BlockInputSource;
@@ -360,6 +386,16 @@ export declare function createLodestarMetrics(register: RegistryMetricCreator, m
360
386
  error: PayloadErrorCode | "NOT_PAYLOAD_ERROR";
361
387
  }>;
362
388
  };
389
+ gossipExecutionPayloadBid: {
390
+ elapsedTimeTillReceived: import("@lodestar/utils").Histogram<{
391
+ source: OpSource;
392
+ }>;
393
+ };
394
+ gossipPayloadAttestationMessage: {
395
+ elapsedTimeTillReceived: import("@lodestar/utils").Histogram<{
396
+ source: OpSource;
397
+ }>;
398
+ };
363
399
  recoverBlobSidecars: {
364
400
  blobsReconstructed: import("@lodestar/utils").Counter<import("@lodestar/utils").NoLabels>;
365
401
  reconstructionTime: import("@lodestar/utils").Histogram<import("@lodestar/utils").NoLabels>;
@@ -484,6 +520,9 @@ export declare function createLodestarMetrics(register: RegistryMetricCreator, m
484
520
  getAggregateCacheMisses: import("@lodestar/utils").Counter<import("@lodestar/utils").NoLabels>;
485
521
  };
486
522
  attesterSlashingPoolSize: import("@lodestar/utils").GaugeExtra<import("@lodestar/utils").NoLabels>;
523
+ deferredVoluntaryExitPool: {
524
+ size: import("@lodestar/utils").GaugeExtra<import("@lodestar/utils").NoLabels>;
525
+ };
487
526
  proposerSlashingPoolSize: import("@lodestar/utils").GaugeExtra<import("@lodestar/utils").NoLabels>;
488
527
  proposerSlashingsProduced: import("@lodestar/utils").Counter<import("@lodestar/utils").NoLabels>;
489
528
  voluntaryExitPoolSize: import("@lodestar/utils").GaugeExtra<import("@lodestar/utils").NoLabels>;
@@ -531,6 +570,7 @@ export declare function createLodestarMetrics(register: RegistryMetricCreator, m
531
570
  apiInsertOutcome: import("@lodestar/utils").Counter<{
532
571
  insertOutcome: InsertOutcome;
533
572
  }>;
573
+ apiValidationTime: import("@lodestar/utils").Histogram<import("@lodestar/utils").NoLabels>;
534
574
  };
535
575
  };
536
576
  chain: {
@@ -566,6 +606,12 @@ export declare function createLodestarMetrics(register: RegistryMetricCreator, m
566
606
  epochSize: import("@lodestar/utils").GaugeExtra<{
567
607
  type: CacheItemType;
568
608
  }>;
609
+ persistentTierEpochs: import("@lodestar/utils").GaugeExtra<{
610
+ tier: number;
611
+ }>;
612
+ persistentTierStates: import("@lodestar/utils").GaugeExtra<{
613
+ tier: number;
614
+ }>;
569
615
  reads: import("@lodestar/utils").AvgMinMax<import("@lodestar/utils").NoLabels>;
570
616
  secondsSinceLastRead: import("@lodestar/utils").AvgMinMax<import("@lodestar/utils").NoLabels>;
571
617
  stateClonedCount: import("@lodestar/utils").Histogram<import("@lodestar/utils").NoLabels>;
@@ -636,7 +682,12 @@ export declare function createLodestarMetrics(register: RegistryMetricCreator, m
636
682
  payloadEnvelopeInput: {
637
683
  count: import("@lodestar/utils").GaugeExtra<import("@lodestar/utils").NoLabels>;
638
684
  serializedObjectRefs: import("@lodestar/utils").GaugeExtra<import("@lodestar/utils").NoLabels>;
639
- created: import("@lodestar/utils").Counter<import("@lodestar/utils").NoLabels>;
685
+ created: import("@lodestar/utils").Counter<{
686
+ source: PayloadEnvelopeInputSource;
687
+ }>;
688
+ pruned: import("@lodestar/utils").Counter<{
689
+ reason: PayloadEnvelopeInputPruneReason;
690
+ }>;
640
691
  };
641
692
  };
642
693
  processFinalizedCheckpoint: {
@@ -690,6 +741,7 @@ export declare function createLodestarMetrics(register: RegistryMetricCreator, m
690
741
  }>;
691
742
  hits: import("@lodestar/utils").GaugeExtra<import("@lodestar/utils").NoLabels>;
692
743
  waste: import("@lodestar/utils").Counter<import("@lodestar/utils").NoLabels>;
744
+ predictedReorg: import("@lodestar/utils").Counter<import("@lodestar/utils").NoLabels>;
693
745
  duration: import("@lodestar/utils").Histogram<import("@lodestar/utils").NoLabels>;
694
746
  };
695
747
  builderDepositPreVerify: {
@@ -809,6 +861,18 @@ export declare function createLodestarMetrics(register: RegistryMetricCreator, m
809
861
  baseUrl: string;
810
862
  }>;
811
863
  };
864
+ builderApi: {
865
+ bidRequests: import("@lodestar/utils").Counter<import("@lodestar/utils").NoLabels>;
866
+ bidRequestErrors: import("@lodestar/utils").Counter<import("@lodestar/utils").NoLabels>;
867
+ bidsReceived: import("@lodestar/utils").Counter<import("@lodestar/utils").NoLabels>;
868
+ bidsDiscarded: import("@lodestar/utils").Counter<import("@lodestar/utils").NoLabels>;
869
+ blockSubmissions: import("@lodestar/utils").Counter<{
870
+ status: "success" | "error";
871
+ }>;
872
+ preferencesForwarded: import("@lodestar/utils").Counter<{
873
+ status: "success" | "error";
874
+ }>;
875
+ };
812
876
  db: {
813
877
  dbReadReq: import("@lodestar/utils").GaugeExtra<{
814
878
  bucket: string;
@@ -831,4 +895,5 @@ export declare function createLodestarMetrics(register: RegistryMetricCreator, m
831
895
  pruneKeys: import("@lodestar/utils").Histogram<import("@lodestar/utils").NoLabels>;
832
896
  };
833
897
  };
898
+ export {};
834
899
  //# sourceMappingURL=lodestar.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"lodestar.d.ts","sourceRoot":"","sources":["../../../src/metrics/metrics/lodestar.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"lodestar.d.ts","sourceRoot":"","sources":["../../../src/metrics/metrics/lodestar.ts"],"names":[],"mappings":"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"}