@lodestar/beacon-node 1.51.0-dev.c99cf49add → 1.51.0-dev.d2440f7e84

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 (484) hide show
  1. package/lib/api/impl/api.js +1 -1
  2. package/lib/api/impl/api.js.map +1 -1
  3. package/lib/api/impl/beacon/blocks/index.d.ts +2 -1
  4. package/lib/api/impl/beacon/blocks/index.d.ts.map +1 -1
  5. package/lib/api/impl/beacon/blocks/index.js +29 -34
  6. package/lib/api/impl/beacon/blocks/index.js.map +1 -1
  7. package/lib/api/impl/beacon/index.d.ts +2 -1
  8. package/lib/api/impl/beacon/index.d.ts.map +1 -1
  9. package/lib/api/impl/beacon/index.js +2 -2
  10. package/lib/api/impl/beacon/index.js.map +1 -1
  11. package/lib/api/impl/beacon/pool/index.d.ts.map +1 -1
  12. package/lib/api/impl/beacon/pool/index.js +5 -2
  13. package/lib/api/impl/beacon/pool/index.js.map +1 -1
  14. package/lib/api/impl/beacon/state/index.d.ts.map +1 -1
  15. package/lib/api/impl/beacon/state/index.js +8 -2
  16. package/lib/api/impl/beacon/state/index.js.map +1 -1
  17. package/lib/api/impl/beacon/state/utils.d.ts +3 -2
  18. package/lib/api/impl/beacon/state/utils.d.ts.map +1 -1
  19. package/lib/api/impl/beacon/state/utils.js +17 -9
  20. package/lib/api/impl/beacon/state/utils.js.map +1 -1
  21. package/lib/api/impl/debug/index.d.ts.map +1 -1
  22. package/lib/api/impl/debug/index.js +3 -0
  23. package/lib/api/impl/debug/index.js.map +1 -1
  24. package/lib/api/impl/validator/index.d.ts +6 -0
  25. package/lib/api/impl/validator/index.d.ts.map +1 -1
  26. package/lib/api/impl/validator/index.js +143 -35
  27. package/lib/api/impl/validator/index.js.map +1 -1
  28. package/lib/api/options.d.ts +2 -0
  29. package/lib/api/options.d.ts.map +1 -1
  30. package/lib/api/options.js +1 -0
  31. package/lib/api/options.js.map +1 -1
  32. package/lib/chain/ColumnReconstructionTracker.d.ts +11 -11
  33. package/lib/chain/ColumnReconstructionTracker.d.ts.map +1 -1
  34. package/lib/chain/ColumnReconstructionTracker.js +46 -40
  35. package/lib/chain/ColumnReconstructionTracker.js.map +1 -1
  36. package/lib/chain/GetBlobsTracker.d.ts +11 -0
  37. package/lib/chain/GetBlobsTracker.d.ts.map +1 -1
  38. package/lib/chain/GetBlobsTracker.js +85 -27
  39. package/lib/chain/GetBlobsTracker.js.map +1 -1
  40. package/lib/chain/archiveStore/archiveStore.d.ts.map +1 -1
  41. package/lib/chain/archiveStore/archiveStore.js +1 -0
  42. package/lib/chain/archiveStore/archiveStore.js.map +1 -1
  43. package/lib/chain/archiveStore/utils/archiveBlocks.d.ts +4 -0
  44. package/lib/chain/archiveStore/utils/archiveBlocks.d.ts.map +1 -1
  45. package/lib/chain/archiveStore/utils/archiveBlocks.js +61 -97
  46. package/lib/chain/archiveStore/utils/archiveBlocks.js.map +1 -1
  47. package/lib/chain/blocks/importBlock.d.ts.map +1 -1
  48. package/lib/chain/blocks/importBlock.js +9 -7
  49. package/lib/chain/blocks/importBlock.js.map +1 -1
  50. package/lib/chain/blocks/importExecutionPayload.d.ts +6 -11
  51. package/lib/chain/blocks/importExecutionPayload.d.ts.map +1 -1
  52. package/lib/chain/blocks/importExecutionPayload.js +58 -17
  53. package/lib/chain/blocks/importExecutionPayload.js.map +1 -1
  54. package/lib/chain/blocks/index.js +2 -2
  55. package/lib/chain/blocks/index.js.map +1 -1
  56. package/lib/chain/blocks/payloadEnvelopeProcessor.d.ts +12 -9
  57. package/lib/chain/blocks/payloadEnvelopeProcessor.d.ts.map +1 -1
  58. package/lib/chain/blocks/payloadEnvelopeProcessor.js +24 -19
  59. package/lib/chain/blocks/payloadEnvelopeProcessor.js.map +1 -1
  60. package/lib/chain/blocks/types.d.ts +8 -1
  61. package/lib/chain/blocks/types.d.ts.map +1 -1
  62. package/lib/chain/blocks/types.js +5 -0
  63. package/lib/chain/blocks/types.js.map +1 -1
  64. package/lib/chain/blocks/verifyBlock.d.ts.map +1 -1
  65. package/lib/chain/blocks/verifyBlock.js +18 -7
  66. package/lib/chain/blocks/verifyBlock.js.map +1 -1
  67. package/lib/chain/blocks/verifyBlocksDataAvailability.d.ts.map +1 -1
  68. package/lib/chain/blocks/verifyBlocksDataAvailability.js +8 -1
  69. package/lib/chain/blocks/verifyBlocksDataAvailability.js.map +1 -1
  70. package/lib/chain/blocks/verifyBlocksSignatures.d.ts.map +1 -1
  71. package/lib/chain/blocks/verifyBlocksSignatures.js +7 -5
  72. package/lib/chain/blocks/verifyBlocksSignatures.js.map +1 -1
  73. package/lib/chain/blocks/verifyPayloadsDataAvailability.d.ts +3 -3
  74. package/lib/chain/blocks/verifyPayloadsDataAvailability.d.ts.map +1 -1
  75. package/lib/chain/blocks/verifyPayloadsDataAvailability.js +11 -6
  76. package/lib/chain/blocks/verifyPayloadsDataAvailability.js.map +1 -1
  77. package/lib/chain/bls/interface.d.ts +2 -0
  78. package/lib/chain/bls/interface.d.ts.map +1 -1
  79. package/lib/chain/bls/multithread/index.d.ts.map +1 -1
  80. package/lib/chain/bls/multithread/index.js +13 -11
  81. package/lib/chain/bls/multithread/index.js.map +1 -1
  82. package/lib/chain/bls/multithread/types.d.ts +1 -1
  83. package/lib/chain/bls/multithread/types.d.ts.map +1 -1
  84. package/lib/chain/bls/multithread/worker.js +1 -1
  85. package/lib/chain/bls/multithread/worker.js.map +1 -1
  86. package/lib/chain/bls/singleThread.js +1 -1
  87. package/lib/chain/bls/singleThread.js.map +1 -1
  88. package/lib/chain/bls/utils.js +1 -1
  89. package/lib/chain/bls/utils.js.map +1 -1
  90. package/lib/chain/chain.d.ts +3 -2
  91. package/lib/chain/chain.d.ts.map +1 -1
  92. package/lib/chain/chain.js +9 -5
  93. package/lib/chain/chain.js.map +1 -1
  94. package/lib/chain/errors/blockError.d.ts +1 -1
  95. package/lib/chain/errors/blockError.d.ts.map +1 -1
  96. package/lib/chain/errors/blockError.js +1 -1
  97. package/lib/chain/errors/blockError.js.map +1 -1
  98. package/lib/chain/errors/executionPayloadBid.d.ts +11 -1
  99. package/lib/chain/errors/executionPayloadBid.d.ts.map +1 -1
  100. package/lib/chain/errors/executionPayloadBid.js +2 -0
  101. package/lib/chain/errors/executionPayloadBid.js.map +1 -1
  102. package/lib/chain/errors/executionPayloadEnvelope.d.ts +7 -0
  103. package/lib/chain/errors/executionPayloadEnvelope.d.ts.map +1 -1
  104. package/lib/chain/errors/executionPayloadEnvelope.js +1 -0
  105. package/lib/chain/errors/executionPayloadEnvelope.js.map +1 -1
  106. package/lib/chain/errors/inclusionList.d.ts +60 -0
  107. package/lib/chain/errors/inclusionList.d.ts.map +1 -0
  108. package/lib/chain/errors/inclusionList.js +19 -0
  109. package/lib/chain/errors/inclusionList.js.map +1 -0
  110. package/lib/chain/errors/index.d.ts +1 -0
  111. package/lib/chain/errors/index.d.ts.map +1 -1
  112. package/lib/chain/errors/index.js +1 -0
  113. package/lib/chain/errors/index.js.map +1 -1
  114. package/lib/chain/interface.d.ts +4 -4
  115. package/lib/chain/interface.d.ts.map +1 -1
  116. package/lib/chain/interface.js.map +1 -1
  117. package/lib/chain/opPools/aggregatedAttestationPool.d.ts.map +1 -1
  118. package/lib/chain/opPools/aggregatedAttestationPool.js +23 -10
  119. package/lib/chain/opPools/aggregatedAttestationPool.js.map +1 -1
  120. package/lib/chain/opPools/attestationPool.d.ts +1 -1
  121. package/lib/chain/opPools/attestationPool.d.ts.map +1 -1
  122. package/lib/chain/opPools/attestationPool.js +15 -4
  123. package/lib/chain/opPools/attestationPool.js.map +1 -1
  124. package/lib/chain/opPools/inclusionListStore.d.ts +63 -0
  125. package/lib/chain/opPools/inclusionListStore.d.ts.map +1 -0
  126. package/lib/chain/opPools/inclusionListStore.js +171 -0
  127. package/lib/chain/opPools/inclusionListStore.js.map +1 -0
  128. package/lib/chain/opPools/index.d.ts +1 -0
  129. package/lib/chain/opPools/index.d.ts.map +1 -1
  130. package/lib/chain/opPools/index.js +1 -0
  131. package/lib/chain/opPools/index.js.map +1 -1
  132. package/lib/chain/opPools/payloadAttestationPool.d.ts.map +1 -1
  133. package/lib/chain/opPools/payloadAttestationPool.js +17 -7
  134. package/lib/chain/opPools/payloadAttestationPool.js.map +1 -1
  135. package/lib/chain/opPools/syncCommitteeMessagePool.d.ts.map +1 -1
  136. package/lib/chain/opPools/syncCommitteeMessagePool.js +9 -3
  137. package/lib/chain/opPools/syncCommitteeMessagePool.js.map +1 -1
  138. package/lib/chain/opPools/syncContributionAndProofPool.d.ts.map +1 -1
  139. package/lib/chain/opPools/syncContributionAndProofPool.js +11 -3
  140. package/lib/chain/opPools/syncContributionAndProofPool.js.map +1 -1
  141. package/lib/chain/opPools/utils.d.ts +1 -1
  142. package/lib/chain/opPools/utils.d.ts.map +1 -1
  143. package/lib/chain/opPools/utils.js +1 -1
  144. package/lib/chain/opPools/utils.js.map +1 -1
  145. package/lib/chain/options.d.ts +0 -1
  146. package/lib/chain/options.d.ts.map +1 -1
  147. package/lib/chain/options.js +0 -1
  148. package/lib/chain/options.js.map +1 -1
  149. package/lib/chain/produceBlock/produceBlockBody.d.ts +3 -1
  150. package/lib/chain/produceBlock/produceBlockBody.d.ts.map +1 -1
  151. package/lib/chain/produceBlock/produceBlockBody.js +30 -10
  152. package/lib/chain/produceBlock/produceBlockBody.js.map +1 -1
  153. package/lib/chain/regen/interface.d.ts +1 -1
  154. package/lib/chain/regen/interface.d.ts.map +1 -1
  155. package/lib/chain/regen/interface.js +1 -1
  156. package/lib/chain/regen/interface.js.map +1 -1
  157. package/lib/chain/validation/executionPayloadBid.d.ts +0 -15
  158. package/lib/chain/validation/executionPayloadBid.d.ts.map +1 -1
  159. package/lib/chain/validation/executionPayloadBid.js +37 -158
  160. package/lib/chain/validation/executionPayloadBid.js.map +1 -1
  161. package/lib/chain/validation/executionPayloadEnvelope.d.ts +6 -0
  162. package/lib/chain/validation/executionPayloadEnvelope.d.ts.map +1 -1
  163. package/lib/chain/validation/executionPayloadEnvelope.js +53 -0
  164. package/lib/chain/validation/executionPayloadEnvelope.js.map +1 -1
  165. package/lib/chain/validation/inclusionList.d.ts +14 -0
  166. package/lib/chain/validation/inclusionList.d.ts.map +1 -0
  167. package/lib/chain/validation/inclusionList.js +150 -0
  168. package/lib/chain/validation/inclusionList.js.map +1 -0
  169. package/lib/chain/validation/index.d.ts +1 -0
  170. package/lib/chain/validation/index.d.ts.map +1 -1
  171. package/lib/chain/validation/index.js +1 -0
  172. package/lib/chain/validation/index.js.map +1 -1
  173. package/lib/db/beacon.d.ts +7 -0
  174. package/lib/db/beacon.d.ts.map +1 -1
  175. package/lib/db/beacon.js +34 -0
  176. package/lib/db/beacon.js.map +1 -1
  177. package/lib/db/dataColumnStore.d.ts +1 -1
  178. package/lib/db/dataColumnStore.d.ts.map +1 -1
  179. package/lib/db/dataColumnStore.js +1 -4
  180. package/lib/db/dataColumnStore.js.map +1 -1
  181. package/lib/db/flatFileStore/flatFileStore.js +5 -5
  182. package/lib/db/flatFileStore/flatFileStore.js.map +1 -1
  183. package/lib/db/flatFileStore/slotIndex.d.ts.map +1 -1
  184. package/lib/db/flatFileStore/slotIndex.js +2 -2
  185. package/lib/db/flatFileStore/slotIndex.js.map +1 -1
  186. package/lib/db/interface.d.ts +1 -0
  187. package/lib/db/interface.d.ts.map +1 -1
  188. package/lib/db/repositories/dataColumnSidecarArchive.d.ts +6 -0
  189. package/lib/db/repositories/dataColumnSidecarArchive.d.ts.map +1 -1
  190. package/lib/db/repositories/dataColumnSidecarArchive.js +19 -0
  191. package/lib/db/repositories/dataColumnSidecarArchive.js.map +1 -1
  192. package/lib/execution/builder/apiClient.d.ts +14 -8
  193. package/lib/execution/builder/apiClient.d.ts.map +1 -1
  194. package/lib/execution/builder/apiClient.js +12 -10
  195. package/lib/execution/builder/apiClient.js.map +1 -1
  196. package/lib/execution/builder/http.d.ts +2 -0
  197. package/lib/execution/builder/http.d.ts.map +1 -1
  198. package/lib/execution/builder/http.js +2 -0
  199. package/lib/execution/builder/http.js.map +1 -1
  200. package/lib/execution/builder/validateBid.d.ts.map +1 -1
  201. package/lib/execution/builder/validateBid.js +14 -1
  202. package/lib/execution/builder/validateBid.js.map +1 -1
  203. package/lib/execution/engine/blobVersionedHashes.d.ts +1 -1
  204. package/lib/execution/engine/blobVersionedHashes.d.ts.map +1 -1
  205. package/lib/execution/engine/blobVersionedHashes.js.map +1 -1
  206. package/lib/execution/engine/disabled.d.ts +1 -0
  207. package/lib/execution/engine/disabled.d.ts.map +1 -1
  208. package/lib/execution/engine/disabled.js +3 -0
  209. package/lib/execution/engine/disabled.js.map +1 -1
  210. package/lib/execution/engine/http.d.ts +8 -2
  211. package/lib/execution/engine/http.d.ts.map +1 -1
  212. package/lib/execution/engine/http.js +27 -4
  213. package/lib/execution/engine/http.js.map +1 -1
  214. package/lib/execution/engine/index.d.ts +1 -1
  215. package/lib/execution/engine/index.d.ts.map +1 -1
  216. package/lib/execution/engine/index.js +1 -1
  217. package/lib/execution/engine/index.js.map +1 -1
  218. package/lib/execution/engine/interface.d.ts +12 -3
  219. package/lib/execution/engine/interface.d.ts.map +1 -1
  220. package/lib/execution/engine/interface.js.map +1 -1
  221. package/lib/execution/engine/jsonRpcTransport.d.ts +3 -2
  222. package/lib/execution/engine/jsonRpcTransport.d.ts.map +1 -1
  223. package/lib/execution/engine/jsonRpcTransport.js +33 -9
  224. package/lib/execution/engine/jsonRpcTransport.js.map +1 -1
  225. package/lib/execution/engine/mock.d.ts +1 -0
  226. package/lib/execution/engine/mock.d.ts.map +1 -1
  227. package/lib/execution/engine/mock.js +31 -7
  228. package/lib/execution/engine/mock.js.map +1 -1
  229. package/lib/execution/engine/payloadIdCache.d.ts +5 -3
  230. package/lib/execution/engine/payloadIdCache.d.ts.map +1 -1
  231. package/lib/execution/engine/payloadIdCache.js +15 -4
  232. package/lib/execution/engine/payloadIdCache.js.map +1 -1
  233. package/lib/execution/engine/restTransport.d.ts +2 -1
  234. package/lib/execution/engine/restTransport.d.ts.map +1 -1
  235. package/lib/execution/engine/restTransport.js +3 -0
  236. package/lib/execution/engine/restTransport.js.map +1 -1
  237. package/lib/execution/engine/sszTypes.d.ts +38 -38
  238. package/lib/execution/engine/transport.d.ts +5 -2
  239. package/lib/execution/engine/transport.d.ts.map +1 -1
  240. package/lib/execution/engine/types.d.ts +25 -1
  241. package/lib/execution/engine/types.d.ts.map +1 -1
  242. package/lib/execution/engine/types.js +19 -6
  243. package/lib/execution/engine/types.js.map +1 -1
  244. package/lib/execution/engine/utils.d.ts.map +1 -1
  245. package/lib/execution/engine/utils.js +3 -2
  246. package/lib/execution/engine/utils.js.map +1 -1
  247. package/lib/index.d.ts +1 -0
  248. package/lib/index.d.ts.map +1 -1
  249. package/lib/index.js +2 -0
  250. package/lib/index.js.map +1 -1
  251. package/lib/metrics/metrics/beacon.d.ts +16 -0
  252. package/lib/metrics/metrics/beacon.d.ts.map +1 -1
  253. package/lib/metrics/metrics/beacon.js +35 -0
  254. package/lib/metrics/metrics/beacon.js.map +1 -1
  255. package/lib/metrics/metrics/lodestar.d.ts +23 -0
  256. package/lib/metrics/metrics/lodestar.d.ts.map +1 -1
  257. package/lib/metrics/metrics/lodestar.js +59 -0
  258. package/lib/metrics/metrics/lodestar.js.map +1 -1
  259. package/lib/metrics/server/http.js +5 -5
  260. package/lib/metrics/server/http.js.map +1 -1
  261. package/lib/monitoring/service.js +1 -1
  262. package/lib/monitoring/service.js.map +1 -1
  263. package/lib/network/core/networkCore.d.ts +2 -0
  264. package/lib/network/core/networkCore.d.ts.map +1 -1
  265. package/lib/network/core/networkCore.js +3 -0
  266. package/lib/network/core/networkCore.js.map +1 -1
  267. package/lib/network/core/networkCoreWorker.js +1 -0
  268. package/lib/network/core/networkCoreWorker.js.map +1 -1
  269. package/lib/network/core/networkCoreWorkerHandler.d.ts +2 -0
  270. package/lib/network/core/networkCoreWorkerHandler.d.ts.map +1 -1
  271. package/lib/network/core/networkCoreWorkerHandler.js +3 -0
  272. package/lib/network/core/networkCoreWorkerHandler.js.map +1 -1
  273. package/lib/network/core/types.d.ts +2 -0
  274. package/lib/network/core/types.d.ts.map +1 -1
  275. package/lib/network/gossip/gossipsub.d.ts +1 -0
  276. package/lib/network/gossip/gossipsub.d.ts.map +1 -1
  277. package/lib/network/gossip/gossipsub.js +10 -0
  278. package/lib/network/gossip/gossipsub.js.map +1 -1
  279. package/lib/network/gossip/interface.d.ts +8 -2
  280. package/lib/network/gossip/interface.d.ts.map +1 -1
  281. package/lib/network/gossip/interface.js +1 -0
  282. package/lib/network/gossip/interface.js.map +1 -1
  283. package/lib/network/gossip/topic.d.ts +13 -5
  284. package/lib/network/gossip/topic.d.ts.map +1 -1
  285. package/lib/network/gossip/topic.js +13 -1
  286. package/lib/network/gossip/topic.js.map +1 -1
  287. package/lib/network/interface.d.ts +4 -1
  288. package/lib/network/interface.d.ts.map +1 -1
  289. package/lib/network/libp2p/index.d.ts.map +1 -1
  290. package/lib/network/libp2p/index.js +5 -1
  291. package/lib/network/libp2p/index.js.map +1 -1
  292. package/lib/network/network.d.ts +4 -1
  293. package/lib/network/network.d.ts.map +1 -1
  294. package/lib/network/network.js +11 -1
  295. package/lib/network/network.js.map +1 -1
  296. package/lib/network/options.d.ts +2 -0
  297. package/lib/network/options.d.ts.map +1 -1
  298. package/lib/network/options.js.map +1 -1
  299. package/lib/network/peers/peerManager.d.ts +2 -1
  300. package/lib/network/peers/peerManager.d.ts.map +1 -1
  301. package/lib/network/peers/peerManager.js +30 -1
  302. package/lib/network/peers/peerManager.js.map +1 -1
  303. package/lib/network/peers/utils/assertPeerRelevance.d.ts +9 -1
  304. package/lib/network/peers/utils/assertPeerRelevance.d.ts.map +1 -1
  305. package/lib/network/peers/utils/assertPeerRelevance.js +32 -21
  306. package/lib/network/peers/utils/assertPeerRelevance.js.map +1 -1
  307. package/lib/network/peers/utils/enrSubnetsDeserialize.d.ts.map +1 -1
  308. package/lib/network/peers/utils/enrSubnetsDeserialize.js +5 -2
  309. package/lib/network/peers/utils/enrSubnetsDeserialize.js.map +1 -1
  310. package/lib/network/peers/utils/prioritizePeers.d.ts +4 -1
  311. package/lib/network/peers/utils/prioritizePeers.d.ts.map +1 -1
  312. package/lib/network/peers/utils/prioritizePeers.js +8 -16
  313. package/lib/network/peers/utils/prioritizePeers.js.map +1 -1
  314. package/lib/network/processor/gossipHandlers.d.ts.map +1 -1
  315. package/lib/network/processor/gossipHandlers.js +97 -38
  316. package/lib/network/processor/gossipHandlers.js.map +1 -1
  317. package/lib/network/processor/gossipQueues/index.d.ts.map +1 -1
  318. package/lib/network/processor/gossipQueues/index.js +6 -0
  319. package/lib/network/processor/gossipQueues/index.js.map +1 -1
  320. package/lib/network/processor/gossipValidatorFn.d.ts.map +1 -1
  321. package/lib/network/processor/gossipValidatorFn.js +5 -1
  322. package/lib/network/processor/gossipValidatorFn.js.map +1 -1
  323. package/lib/network/processor/index.d.ts +5 -0
  324. package/lib/network/processor/index.d.ts.map +1 -1
  325. package/lib/network/processor/index.js +37 -26
  326. package/lib/network/processor/index.js.map +1 -1
  327. package/lib/network/reqresp/ReqRespBeaconNode.d.ts.map +1 -1
  328. package/lib/network/reqresp/ReqRespBeaconNode.js +6 -0
  329. package/lib/network/reqresp/ReqRespBeaconNode.js.map +1 -1
  330. package/lib/network/reqresp/handlers/inclusionListsByIndices.d.ts +10 -0
  331. package/lib/network/reqresp/handlers/inclusionListsByIndices.d.ts.map +1 -0
  332. package/lib/network/reqresp/handlers/inclusionListsByIndices.js +30 -0
  333. package/lib/network/reqresp/handlers/inclusionListsByIndices.js.map +1 -0
  334. package/lib/network/reqresp/handlers/index.d.ts.map +1 -1
  335. package/lib/network/reqresp/handlers/index.js +5 -0
  336. package/lib/network/reqresp/handlers/index.js.map +1 -1
  337. package/lib/network/reqresp/protocols.d.ts +1 -0
  338. package/lib/network/reqresp/protocols.d.ts.map +1 -1
  339. package/lib/network/reqresp/protocols.js +5 -0
  340. package/lib/network/reqresp/protocols.js.map +1 -1
  341. package/lib/network/reqresp/rateLimit.d.ts.map +1 -1
  342. package/lib/network/reqresp/rateLimit.js +4 -0
  343. package/lib/network/reqresp/rateLimit.js.map +1 -1
  344. package/lib/network/reqresp/types.d.ts +5 -2
  345. package/lib/network/reqresp/types.d.ts.map +1 -1
  346. package/lib/network/reqresp/types.js +3 -0
  347. package/lib/network/reqresp/types.js.map +1 -1
  348. package/lib/node/nodejs.d.ts +3 -1
  349. package/lib/node/nodejs.d.ts.map +1 -1
  350. package/lib/node/nodejs.js +47 -21
  351. package/lib/node/nodejs.js.map +1 -1
  352. package/lib/node/options.d.ts +3 -1
  353. package/lib/node/options.d.ts.map +1 -1
  354. package/lib/node/options.js +4 -2
  355. package/lib/node/options.js.map +1 -1
  356. package/lib/sync/interface.d.ts.map +1 -1
  357. package/lib/sync/interface.js.map +1 -1
  358. package/lib/sync/sync.d.ts +7 -0
  359. package/lib/sync/sync.d.ts.map +1 -1
  360. package/lib/sync/sync.js +61 -3
  361. package/lib/sync/sync.js.map +1 -1
  362. package/lib/sync/unknownBlock.d.ts.map +1 -1
  363. package/lib/sync/unknownBlock.js +42 -18
  364. package/lib/sync/unknownBlock.js.map +1 -1
  365. package/lib/util/file.d.ts.map +1 -1
  366. package/lib/util/file.js +8 -9
  367. package/lib/util/file.js.map +1 -1
  368. package/lib/util/queue/itemQueue.js +1 -1
  369. package/lib/util/queue/itemQueue.js.map +1 -1
  370. package/lib/util/sszBytes.d.ts +5 -0
  371. package/lib/util/sszBytes.d.ts.map +1 -1
  372. package/lib/util/sszBytes.js +35 -2
  373. package/lib/util/sszBytes.js.map +1 -1
  374. package/package.json +31 -32
  375. package/src/api/impl/api.ts +1 -1
  376. package/src/api/impl/beacon/blocks/index.ts +57 -62
  377. package/src/api/impl/beacon/index.ts +3 -1
  378. package/src/api/impl/beacon/pool/index.ts +5 -1
  379. package/src/api/impl/beacon/state/index.ts +10 -1
  380. package/src/api/impl/beacon/state/utils.ts +20 -10
  381. package/src/api/impl/debug/index.ts +4 -0
  382. package/src/api/impl/validator/index.ts +178 -39
  383. package/src/api/options.ts +3 -0
  384. package/src/chain/ColumnReconstructionTracker.ts +60 -41
  385. package/src/chain/GetBlobsTracker.ts +97 -38
  386. package/src/chain/archiveStore/archiveStore.ts +1 -0
  387. package/src/chain/archiveStore/utils/archiveBlocks.ts +76 -130
  388. package/src/chain/blocks/importBlock.ts +11 -14
  389. package/src/chain/blocks/importExecutionPayload.ts +81 -23
  390. package/src/chain/blocks/index.ts +6 -2
  391. package/src/chain/blocks/payloadEnvelopeProcessor.ts +35 -24
  392. package/src/chain/blocks/types.ts +9 -1
  393. package/src/chain/blocks/verifyBlock.ts +31 -16
  394. package/src/chain/blocks/verifyBlocksDataAvailability.ts +10 -1
  395. package/src/chain/blocks/verifyBlocksSignatures.ts +7 -5
  396. package/src/chain/blocks/verifyPayloadsDataAvailability.ts +14 -6
  397. package/src/chain/bls/interface.ts +2 -0
  398. package/src/chain/bls/multithread/index.ts +14 -10
  399. package/src/chain/bls/multithread/types.ts +1 -1
  400. package/src/chain/bls/multithread/worker.ts +1 -5
  401. package/src/chain/bls/singleThread.ts +1 -1
  402. package/src/chain/bls/utils.ts +1 -1
  403. package/src/chain/chain.ts +10 -5
  404. package/src/chain/errors/blockError.ts +1 -1
  405. package/src/chain/errors/executionPayloadBid.ts +12 -0
  406. package/src/chain/errors/executionPayloadEnvelope.ts +8 -0
  407. package/src/chain/errors/inclusionList.ts +38 -0
  408. package/src/chain/errors/index.ts +1 -0
  409. package/src/chain/interface.ts +4 -3
  410. package/src/chain/opPools/aggregatedAttestationPool.ts +25 -9
  411. package/src/chain/opPools/attestationPool.ts +16 -4
  412. package/src/chain/opPools/inclusionListStore.ts +208 -0
  413. package/src/chain/opPools/index.ts +1 -0
  414. package/src/chain/opPools/payloadAttestationPool.ts +18 -7
  415. package/src/chain/opPools/syncCommitteeMessagePool.ts +10 -3
  416. package/src/chain/opPools/syncContributionAndProofPool.ts +13 -3
  417. package/src/chain/opPools/utils.ts +1 -1
  418. package/src/chain/options.ts +0 -2
  419. package/src/chain/produceBlock/produceBlockBody.ts +60 -19
  420. package/src/chain/regen/interface.ts +1 -1
  421. package/src/chain/validation/executionPayloadBid.ts +54 -183
  422. package/src/chain/validation/executionPayloadEnvelope.ts +68 -1
  423. package/src/chain/validation/inclusionList.ts +192 -0
  424. package/src/chain/validation/index.ts +1 -0
  425. package/src/db/beacon.ts +44 -0
  426. package/src/db/dataColumnStore.ts +2 -4
  427. package/src/db/flatFileStore/flatFileStore.ts +7 -7
  428. package/src/db/flatFileStore/slotIndex.ts +4 -3
  429. package/src/db/interface.ts +2 -0
  430. package/src/db/repositories/dataColumnSidecarArchive.ts +20 -0
  431. package/src/execution/builder/apiClient.ts +16 -13
  432. package/src/execution/builder/http.ts +4 -0
  433. package/src/execution/builder/validateBid.ts +23 -2
  434. package/src/execution/engine/blobVersionedHashes.ts +1 -1
  435. package/src/execution/engine/disabled.ts +4 -0
  436. package/src/execution/engine/http.ts +40 -5
  437. package/src/execution/engine/index.ts +1 -1
  438. package/src/execution/engine/interface.ts +28 -4
  439. package/src/execution/engine/jsonRpcTransport.ts +46 -9
  440. package/src/execution/engine/mock.ts +32 -7
  441. package/src/execution/engine/payloadIdCache.ts +24 -6
  442. package/src/execution/engine/restTransport.ts +15 -1
  443. package/src/execution/engine/transport.ts +7 -2
  444. package/src/execution/engine/types.ts +44 -7
  445. package/src/execution/engine/utils.ts +4 -2
  446. package/src/index.ts +2 -0
  447. package/src/metrics/metrics/beacon.ts +37 -0
  448. package/src/metrics/metrics/lodestar.ts +61 -0
  449. package/src/metrics/server/http.ts +5 -5
  450. package/src/monitoring/service.ts +1 -1
  451. package/src/network/core/networkCore.ts +5 -0
  452. package/src/network/core/networkCoreWorker.ts +1 -0
  453. package/src/network/core/networkCoreWorkerHandler.ts +4 -0
  454. package/src/network/core/types.ts +2 -0
  455. package/src/network/gossip/gossipsub.ts +11 -0
  456. package/src/network/gossip/interface.ts +5 -0
  457. package/src/network/gossip/topic.ts +14 -0
  458. package/src/network/interface.ts +4 -0
  459. package/src/network/libp2p/index.ts +5 -1
  460. package/src/network/network.ts +19 -1
  461. package/src/network/options.ts +2 -0
  462. package/src/network/peers/peerManager.ts +30 -3
  463. package/src/network/peers/utils/assertPeerRelevance.ts +39 -23
  464. package/src/network/peers/utils/enrSubnetsDeserialize.ts +5 -2
  465. package/src/network/peers/utils/prioritizePeers.ts +14 -22
  466. package/src/network/processor/gossipHandlers.ts +121 -41
  467. package/src/network/processor/gossipQueues/index.ts +6 -0
  468. package/src/network/processor/gossipValidatorFn.ts +5 -0
  469. package/src/network/processor/index.ts +33 -24
  470. package/src/network/processor/types.ts +1 -1
  471. package/src/network/reqresp/ReqRespBeaconNode.ts +7 -0
  472. package/src/network/reqresp/handlers/inclusionListsByIndices.ts +44 -0
  473. package/src/network/reqresp/handlers/index.ts +5 -0
  474. package/src/network/reqresp/protocols.ts +6 -0
  475. package/src/network/reqresp/rateLimit.ts +4 -0
  476. package/src/network/reqresp/types.ts +6 -0
  477. package/src/node/nodejs.ts +58 -22
  478. package/src/node/options.ts +9 -6
  479. package/src/sync/interface.ts +1 -0
  480. package/src/sync/sync.ts +65 -4
  481. package/src/sync/unknownBlock.ts +47 -28
  482. package/src/util/file.ts +8 -9
  483. package/src/util/queue/itemQueue.ts +1 -1
  484. package/src/util/sszBytes.ts +42 -2
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../../src/api/impl/beacon/state/index.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../../src/api/impl/beacon/state/index.ts"],"names":[],"mappings":"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"}
@@ -1,6 +1,6 @@
1
- import { type PubkeyCache } from "@chainsafe/lodestar-z/pubkeys";
2
1
  import { routes } from "@lodestar/api";
3
2
  import { CheckpointWithHex, IForkChoice } from "@lodestar/fork-choice";
3
+ import { type PubkeyCache } from "@lodestar/native/pubkeys";
4
4
  import { IBeaconStateView, IBeaconStateViewGloas } from "@lodestar/state-transition";
5
5
  import { BLSPubkey, BuilderIndex, Epoch, RootHex, Slot, ValidatorIndex, phase0 } from "@lodestar/types";
6
6
  import { IBeaconChain } from "../../../../chain/index.js";
@@ -20,7 +20,8 @@ type StateBuilderIndexResponse = {
20
20
  code: number;
21
21
  reason: string;
22
22
  };
23
- export declare function getStateBuilderIndex(id: routes.beacon.BuilderId | BLSPubkey, state: IBeaconStateViewGloas): StateBuilderIndexResponse;
23
+ export declare function getBuilderIndexByPubkey(state: IBeaconStateViewGloas): Map<string, BuilderIndex>;
24
+ export declare function getStateBuilderIndex(id: routes.beacon.BuilderId | BLSPubkey, state: IBeaconStateViewGloas, getBuilderIndexByPubkeyMap: () => Map<string, BuilderIndex>): StateBuilderIndexResponse;
24
25
  export declare function filterStateValidatorsByStatus(statuses: string[], state: IBeaconStateView, pubkeyCache: PubkeyCache, currentEpoch: Epoch): routes.beacon.ValidatorResponse[];
25
26
  type StateValidatorIndexResponse = {
26
27
  valid: true;
@@ -1 +1 @@
1
- {"version":3,"file":"utils.d.ts","sourceRoot":"","sources":["../../../../../src/api/impl/beacon/state/utils.ts"],"names":[],"mappings":"AAAA,OAAO,EAAC,KAAK,WAAW,EAAC,MAAM,+BAA+B,CAAC;AAC/D,OAAO,EAAC,MAAM,EAAC,MAAM,eAAe,CAAC;AACrC,OAAO,EAAC,iBAAiB,EAAE,WAAW,EAAC,MAAM,uBAAuB,CAAC;AAErE,OAAO,EAAC,gBAAgB,EAAE,qBAAqB,EAAC,MAAM,4BAA4B,CAAC;AACnF,OAAO,EACL,SAAS,EACT,YAAY,EACZ,KAAK,EACL,OAAO,EACP,IAAI,EACJ,cAAc,EAEd,MAAM,EACP,MAAM,iBAAiB,CAAC;AAEzB,OAAO,EAAC,YAAY,EAAC,MAAM,4BAA4B,CAAC;AAExD,OAAO,EAAC,WAAW,EAAC,MAAM,2BAA2B,CAAC;AAKtD,wBAAgB,cAAc,CAC5B,UAAU,EAAE,WAAW,EACvB,OAAO,EAAE,MAAM,CAAC,MAAM,CAAC,OAAO,GAC7B,OAAO,GAAG,IAAI,GAAG,iBAAiB,CA4BpC;AAED,wBAAsB,yBAAyB,CAC7C,KAAK,EAAE,YAAY,EACnB,IAAI,EAAE,WAAW,EACjB,SAAS,EAAE,MAAM,CAAC,MAAM,CAAC,OAAO,GAC/B,OAAO,CAAC;IAAC,KAAK,EAAE,gBAAgB,GAAG,UAAU,CAAC;IAAC,mBAAmB,EAAE,OAAO,CAAC;IAAC,SAAS,EAAE,OAAO,CAAA;CAAC,CAAC,CAwCnG;AAED,wBAAgB,mBAAmB,CACjC,KAAK,EAAE,cAAc,EACrB,SAAS,EAAE,MAAM,CAAC,SAAS,EAC3B,OAAO,EAAE,MAAM,EACf,YAAY,EAAE,KAAK,GAClB,MAAM,CAAC,MAAM,CAAC,iBAAiB,CAOjC;AAED,KAAK,yBAAyB,GAC1B;IAAC,KAAK,EAAE,IAAI,CAAC;IAAC,YAAY,EAAE,YAAY,CAAA;CAAC,GACzC;IAAC,KAAK,EAAE,KAAK,CAAC;IAAC,IAAI,EAAE,MAAM,CAAC;IAAC,MAAM,EAAE,MAAM,CAAA;CAAC,CAAC;AAEjD,wBAAgB,oBAAoB,CAClC,EAAE,EAAE,MAAM,CAAC,MAAM,CAAC,SAAS,GAAG,SAAS,EACvC,KAAK,EAAE,qBAAqB,GAC3B,yBAAyB,CAmC3B;AAED,wBAAgB,6BAA6B,CAC3C,QAAQ,EAAE,MAAM,EAAE,EAClB,KAAK,EAAE,gBAAgB,EACvB,WAAW,EAAE,WAAW,EACxB,YAAY,EAAE,KAAK,GAClB,MAAM,CAAC,MAAM,CAAC,iBAAiB,EAAE,CAYnC;AAED,KAAK,2BAA2B,GAC5B;IAAC,KAAK,EAAE,IAAI,CAAC;IAAC,cAAc,EAAE,cAAc,CAAA;CAAC,GAC7C;IAAC,KAAK,EAAE,KAAK,CAAC;IAAC,IAAI,EAAE,MAAM,CAAC;IAAC,MAAM,EAAE,MAAM,CAAA;CAAC,CAAC;AAEjD,wBAAgB,sBAAsB,CACpC,EAAE,EAAE,MAAM,CAAC,MAAM,CAAC,WAAW,GAAG,SAAS,EACzC,KAAK,EAAE,gBAAgB,EACvB,WAAW,EAAE,WAAW,GACvB,2BAA2B,CAmC7B"}
1
+ {"version":3,"file":"utils.d.ts","sourceRoot":"","sources":["../../../../../src/api/impl/beacon/state/utils.ts"],"names":[],"mappings":"AAAA,OAAO,EAAC,MAAM,EAAC,MAAM,eAAe,CAAC;AACrC,OAAO,EAAC,iBAAiB,EAAE,WAAW,EAAC,MAAM,uBAAuB,CAAC;AACrE,OAAO,EAAC,KAAK,WAAW,EAAC,MAAM,0BAA0B,CAAC;AAE1D,OAAO,EAAC,gBAAgB,EAAE,qBAAqB,EAAC,MAAM,4BAA4B,CAAC;AACnF,OAAO,EACL,SAAS,EACT,YAAY,EACZ,KAAK,EACL,OAAO,EACP,IAAI,EACJ,cAAc,EAEd,MAAM,EACP,MAAM,iBAAiB,CAAC;AAEzB,OAAO,EAAC,YAAY,EAAC,MAAM,4BAA4B,CAAC;AAExD,OAAO,EAAC,WAAW,EAAC,MAAM,2BAA2B,CAAC;AAKtD,wBAAgB,cAAc,CAC5B,UAAU,EAAE,WAAW,EACvB,OAAO,EAAE,MAAM,CAAC,MAAM,CAAC,OAAO,GAC7B,OAAO,GAAG,IAAI,GAAG,iBAAiB,CA4BpC;AAED,wBAAsB,yBAAyB,CAC7C,KAAK,EAAE,YAAY,EACnB,IAAI,EAAE,WAAW,EACjB,SAAS,EAAE,MAAM,CAAC,MAAM,CAAC,OAAO,GAC/B,OAAO,CAAC;IAAC,KAAK,EAAE,gBAAgB,GAAG,UAAU,CAAC;IAAC,mBAAmB,EAAE,OAAO,CAAC;IAAC,SAAS,EAAE,OAAO,CAAA;CAAC,CAAC,CAwCnG;AAED,wBAAgB,mBAAmB,CACjC,KAAK,EAAE,cAAc,EACrB,SAAS,EAAE,MAAM,CAAC,SAAS,EAC3B,OAAO,EAAE,MAAM,EACf,YAAY,EAAE,KAAK,GAClB,MAAM,CAAC,MAAM,CAAC,iBAAiB,CAOjC;AAED,KAAK,yBAAyB,GAC1B;IAAC,KAAK,EAAE,IAAI,CAAC;IAAC,YAAY,EAAE,YAAY,CAAA;CAAC,GACzC;IAAC,KAAK,EAAE,KAAK,CAAC;IAAC,IAAI,EAAE,MAAM,CAAC;IAAC,MAAM,EAAE,MAAM,CAAA;CAAC,CAAC;AAEjD,wBAAgB,uBAAuB,CAAC,KAAK,EAAE,qBAAqB,GAAG,GAAG,CAAC,MAAM,EAAE,YAAY,CAAC,CAU/F;AAED,wBAAgB,oBAAoB,CAClC,EAAE,EAAE,MAAM,CAAC,MAAM,CAAC,SAAS,GAAG,SAAS,EACvC,KAAK,EAAE,qBAAqB,EAC5B,0BAA0B,EAAE,MAAM,GAAG,CAAC,MAAM,EAAE,YAAY,CAAC,GAC1D,yBAAyB,CAgC3B;AAED,wBAAgB,6BAA6B,CAC3C,QAAQ,EAAE,MAAM,EAAE,EAClB,KAAK,EAAE,gBAAgB,EACvB,WAAW,EAAE,WAAW,EACxB,YAAY,EAAE,KAAK,GAClB,MAAM,CAAC,MAAM,CAAC,iBAAiB,EAAE,CAYnC;AAED,KAAK,2BAA2B,GAC5B;IAAC,KAAK,EAAE,IAAI,CAAC;IAAC,cAAc,EAAE,cAAc,CAAA;CAAC,GAC7C;IAAC,KAAK,EAAE,KAAK,CAAC;IAAC,IAAI,EAAE,MAAM,CAAC;IAAC,MAAM,EAAE,MAAM,CAAA;CAAC,CAAC;AAEjD,wBAAgB,sBAAsB,CACpC,EAAE,EAAE,MAAM,CAAC,MAAM,CAAC,WAAW,GAAG,SAAS,EACzC,KAAK,EAAE,gBAAgB,EACvB,WAAW,EAAE,WAAW,GACvB,2BAA2B,CAmC7B"}
@@ -1,6 +1,6 @@
1
1
  import { GENESIS_SLOT } from "@lodestar/params";
2
2
  import { getValidatorStatus, } from "@lodestar/types";
3
- import { byteArrayEquals, fromHex } from "@lodestar/utils";
3
+ import { fromHex, toHex } from "@lodestar/utils";
4
4
  import { GENESIS_EPOCH } from "../../../../constants/index.js";
5
5
  import { isOptimisticBlock } from "../../../../util/forkChoice.js";
6
6
  import { ApiError, ValidationError } from "../../errors.js";
@@ -71,7 +71,18 @@ export function toValidatorResponse(index, validator, balance, currentEpoch) {
71
71
  validator,
72
72
  };
73
73
  }
74
- export function getStateBuilderIndex(id, state) {
74
+ export function getBuilderIndexByPubkey(state) {
75
+ const builderIndexByPubkey = new Map();
76
+ const buildersLength = state.getBuildersLength();
77
+ for (let builderIndex = 0; builderIndex < buildersLength; builderIndex++) {
78
+ const pubkeyHex = toHex(state.getBuilder(builderIndex).pubkey);
79
+ if (!builderIndexByPubkey.has(pubkeyHex)) {
80
+ builderIndexByPubkey.set(pubkeyHex, builderIndex);
81
+ }
82
+ }
83
+ return builderIndexByPubkey;
84
+ }
85
+ export function getStateBuilderIndex(id, state, getBuilderIndexByPubkeyMap) {
75
86
  if (typeof id === "string") {
76
87
  // mutate `id` and fallthrough to below
77
88
  if (id.startsWith("0x")) {
@@ -98,14 +109,11 @@ export function getStateBuilderIndex(id, state) {
98
109
  return { valid: true, builderIndex };
99
110
  }
100
111
  // typeof id === Uint8Array
101
- // There is no builder pubkey cache, linear scan over the registry
102
- const buildersLength = state.getBuildersLength();
103
- for (let builderIndex = 0; builderIndex < buildersLength; builderIndex++) {
104
- if (byteArrayEquals(state.getBuilder(builderIndex).pubkey, id)) {
105
- return { valid: true, builderIndex };
106
- }
112
+ const builderIndex = getBuilderIndexByPubkeyMap().get(toHex(id));
113
+ if (builderIndex === undefined) {
114
+ return { valid: false, code: 404, reason: "Builder pubkey not found in state" };
107
115
  }
108
- return { valid: false, code: 404, reason: "Builder pubkey not found in state" };
116
+ return { valid: true, builderIndex };
109
117
  }
110
118
  export function filterStateValidatorsByStatus(statuses, state, pubkeyCache, currentEpoch) {
111
119
  const responses = [];
@@ -1 +1 @@
1
- {"version":3,"file":"utils.js","sourceRoot":"","sources":["../../../../../src/api/impl/beacon/state/utils.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"utils.js","sourceRoot":"","sources":["../../../../../src/api/impl/beacon/state/utils.ts"],"names":[],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../src/api/impl/debug/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAC,MAAM,EAAC,MAAM,eAAe,CAAC;AACrC,OAAO,EAAC,kBAAkB,EAAC,MAAM,sBAAsB,CAAC;AAWxD,OAAO,EAAC,UAAU,EAAC,MAAM,aAAa,CAAC;AA0BvC,wBAAgB,WAAW,CAAC,EAC1B,KAAK,EACL,MAAM,EACN,IAAI,GACL,EAAE,IAAI,CAAC,UAAU,EAAE,OAAO,GAAG,QAAQ,GAAG,IAAI,GAAG,MAAM,CAAC,GAAG,kBAAkB,CAAC,MAAM,CAAC,KAAK,CAAC,SAAS,CAAC,CA8JnG"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../src/api/impl/debug/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAC,MAAM,EAAC,MAAM,eAAe,CAAC;AACrC,OAAO,EAAC,kBAAkB,EAAC,MAAM,sBAAsB,CAAC;AAWxD,OAAO,EAAC,UAAU,EAAC,MAAM,aAAa,CAAC;AA0BvC,wBAAgB,WAAW,CAAC,EAC1B,KAAK,EACL,MAAM,EACN,IAAI,GACL,EAAE,IAAI,CAAC,UAAU,EAAE,OAAO,GAAG,QAAQ,GAAG,IAAI,GAAG,MAAM,CAAC,GAAG,kBAAkB,CAAC,MAAM,CAAC,KAAK,CAAC,SAAS,CAAC,CAkKnG"}
@@ -100,6 +100,9 @@ export function getDebugApi({ chain, config, sync, }) {
100
100
  unrealizedJustifiedRoot: node.unrealizedJustifiedRoot,
101
101
  unrealizedFinalizedEpoch: node.unrealizedFinalizedEpoch,
102
102
  unrealizedFinalizedRoot: node.unrealizedFinalizedRoot,
103
+ inclusionListSatisfied: node.payloadStatus === PayloadStatus.FULL
104
+ ? forkChoice.getPayloadInclusionListSatisfaction(node.blockRoot)
105
+ : null,
103
106
  },
104
107
  };
105
108
  }),
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../src/api/impl/debug/index.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../src/api/impl/debug/index.ts"],"names":[],"mappings":"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"}
@@ -3,6 +3,12 @@ import { ApplicationMethods } from "@lodestar/api/server";
3
3
  import { ProducedBlockSource } from "@lodestar/types";
4
4
  import { ApiOptions } from "../../options.js";
5
5
  import { ApiModules } from "../types.js";
6
+ /**
7
+ * Post-gloas cutoff, kept at 1667 BPS (2 seconds for 12s slots) for now.
8
+ *
9
+ * TODO GLOAS: revisit, the block propagates faster as it only commits to a bid and the attestation deadline changed
10
+ */
11
+ export declare const BLOCK_PRODUCTION_RACE_CUTOFF_GLOAS_BPS = 1667;
6
12
  /**
7
13
  * Engine block selection reasons tracked in metrics / logs
8
14
  */
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../src/api/impl/validator/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAC,MAAM,EAAC,MAAM,eAAe,CAAC;AACrC,OAAO,EAAC,kBAAkB,EAAC,MAAM,sBAAsB,CAAC;AAiCxD,OAAO,EAQL,mBAAmB,EAUpB,MAAM,iBAAiB,CAAC;AA8CzB,OAAO,EAAC,UAAU,EAAC,MAAM,kBAAkB,CAAC;AAG5C,OAAO,EAAC,UAAU,EAAC,MAAM,aAAa,CAAC;AAkFvC;;GAEG;AACH,oBAAY,0BAA0B;IACpC,eAAe,qBAAqB;IACpC,YAAY,kBAAkB;IAC9B,cAAc,oBAAoB;IAClC,cAAc,oBAAoB;IAClC,YAAY,mBAAmB;IAC/B,qBAAqB,4BAA4B;IACjD,iBAAiB,uBAAuB;IACxC,UAAU,gBAAgB;IAC1B,eAAe,qBAAqB;CACrC;AAED;;GAEG;AACH,oBAAY,2BAA2B;IACrC,cAAc,oBAAoB;IAClC,WAAW,iBAAiB;IAC5B,aAAa,mBAAmB;IAChC,UAAU,gBAAgB;IAC1B,gBAAgB,sBAAsB;CACvC;AAED,MAAM,MAAM,oBAAoB,GAC5B;IACE,MAAM,EAAE,mBAAmB,CAAC,MAAM,CAAC;IACnC,MAAM,EAAE,0BAA0B,CAAC;CACpC,GACD;IACE,MAAM,EAAE,mBAAmB,CAAC,OAAO,CAAC;IACpC,MAAM,EAAE,2BAA2B,CAAC;CACrC,CAAC;AAEN;;;GAGG;AACH,wBAAgB,eAAe,CAC7B,IAAI,EAAE,UAAU,EAChB,EAAC,KAAK,EAAE,MAAM,EAAE,MAAM,EAAE,OAAO,EAAE,OAAO,EAAE,IAAI,EAAC,EAAE,UAAU,GAC1D,kBAAkB,CAAC,MAAM,CAAC,SAAS,CAAC,SAAS,CAAC,CAs/DhD"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../src/api/impl/validator/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAC,MAAM,EAAC,MAAM,eAAe,CAAC;AACrC,OAAO,EAAC,kBAAkB,EAAC,MAAM,sBAAsB,CAAC;AAmCxD,OAAO,EAQL,mBAAmB,EAUpB,MAAM,iBAAiB,CAAC;AAmDzB,OAAO,EAAC,UAAU,EAAC,MAAM,kBAAkB,CAAC;AAG5C,OAAO,EAAC,UAAU,EAAC,MAAM,aAAa,CAAC;AAmBvC;;;;GAIG;AACH,eAAO,MAAM,sCAAsC,OAAO,CAAC;AA8D3D;;GAEG;AACH,oBAAY,0BAA0B;IACpC,eAAe,qBAAqB;IACpC,YAAY,kBAAkB;IAC9B,cAAc,oBAAoB;IAClC,cAAc,oBAAoB;IAClC,YAAY,mBAAmB;IAC/B,qBAAqB,4BAA4B;IACjD,iBAAiB,uBAAuB;IACxC,UAAU,gBAAgB;IAC1B,eAAe,qBAAqB;CACrC;AAED;;GAEG;AACH,oBAAY,2BAA2B;IACrC,cAAc,oBAAoB;IAClC,WAAW,iBAAiB;IAC5B,aAAa,mBAAmB;IAChC,UAAU,gBAAgB;IAC1B,gBAAgB,sBAAsB;CACvC;AAED,MAAM,MAAM,oBAAoB,GAC5B;IACE,MAAM,EAAE,mBAAmB,CAAC,MAAM,CAAC;IACnC,MAAM,EAAE,0BAA0B,CAAC;CACpC,GACD;IACE,MAAM,EAAE,mBAAmB,CAAC,OAAO,CAAC;IACpC,MAAM,EAAE,2BAA2B,CAAC;CACrC,CAAC;AAEN;;;GAGG;AACH,wBAAgB,eAAe,CAC7B,IAAI,EAAE,UAAU,EAChB,EAAC,KAAK,EAAE,MAAM,EAAE,MAAM,EAAE,OAAO,EAAE,OAAO,EAAE,IAAI,EAAC,EAAE,UAAU,GAC1D,kBAAkB,CAAC,MAAM,CAAC,SAAS,CAAC,SAAS,CAAC,CAsnEhD"}
@@ -1,21 +1,22 @@
1
1
  import { routes } from "@lodestar/api";
2
2
  import { ExecutionStatus, PayloadStatus } from "@lodestar/fork-choice";
3
- import { BUILDER_INDEX_SELF_BUILD, ForkName, ForkSeq, GENESIS_SLOT, SLOTS_PER_EPOCH, SLOTS_PER_HISTORICAL_ROOT, SYNC_COMMITTEE_SUBNET_SIZE, isForkPostBellatrix, isForkPostDeneb, isForkPostElectra, isForkPostFulu, isForkPostGloas, } from "@lodestar/params";
4
- import { DataAvailabilityStatus, beaconBlockToBlinded, calculateCommitteeAssignments, computeEpochAtSlot, computeStartSlotAtEpoch, computeTimeAtSlot, getCurrentSlot, isStatePostAltair, isStatePostGloas, proposerShufflingDecisionRoot, } from "@lodestar/state-transition";
3
+ import { BUILDER_INDEX_SELF_BUILD, ForkName, ForkSeq, GENESIS_SLOT, SLOTS_PER_EPOCH, SLOTS_PER_HISTORICAL_ROOT, SYNC_COMMITTEE_SUBNET_SIZE, isForkPostBellatrix, isForkPostDeneb, isForkPostElectra, isForkPostFulu, isForkPostGloas, isForkPostHeze, } from "@lodestar/params";
4
+ import { DataAvailabilityStatus, beaconBlockToBlinded, calculateCommitteeAssignments, computeEpochAtSlot, computeStartSlotAtEpoch, computeTimeAtSlot, getCurrentSlot, getInclusionListCommittee, isStatePostAltair, isStatePostGloas, proposerShufflingDecisionRoot, } from "@lodestar/state-transition";
5
5
  import { ProducedBlockSource, getValidatorStatus, ssz, } from "@lodestar/types";
6
6
  import { GWEI_TO_WEI, TimeoutError, byteArrayEquals, defer, formatWeiToEth, fromHex, prettyGweiToEth, prettyWeiToEth, resolveOrRacePromises, sleep, toHex, toPrintableUrl, toRootHex, } from "@lodestar/utils";
7
7
  import { MAX_BUILDER_BOOST_FACTOR } from "@lodestar/validator";
8
8
  import { BlockInputSource } from "../../../chain/blocks/blockInput/types.js";
9
+ import { InclusionListSource } from "../../../chain/blocks/types.js";
9
10
  import { AttestationError, AttestationErrorCode, GossipAction, ProposerPreferencesError, ProposerPreferencesErrorCode, SyncCommitteeError, SyncCommitteeErrorCode, } from "../../../chain/errors/index.js";
10
11
  import { ChainEvent } from "../../../chain/index.js";
11
12
  import { PREPARE_NEXT_SLOT_BPS } from "../../../chain/prepareNextSlot.js";
12
13
  import { BlockType } from "../../../chain/produceBlock/index.js";
13
14
  import { RegenCaller } from "../../../chain/regen/index.js";
14
- import { validateApiAggregateAndProof } from "../../../chain/validation/index.js";
15
+ import { validateApiAggregateAndProof, validateGossipInclusionList, } from "../../../chain/validation/index.js";
15
16
  import { validateGossipProposerPreferences } from "../../../chain/validation/proposerPreferences.js";
16
17
  import { validateSyncCommitteeGossipContributionAndProof } from "../../../chain/validation/syncCommitteeContributionAndProof.js";
17
18
  import { ZERO_HASH } from "../../../constants/index.js";
18
- import { BUILDER_BID_DEADLINE_MS, decodeBuilderUrl } from "../../../execution/builder/apiClient.js";
19
+ import { decodeBuilderUrl } from "../../../execution/builder/apiClient.js";
19
20
  import { BuilderStatus, NoBidReceived } from "../../../execution/builder/http.js";
20
21
  import { getBuilderBidTotalGwei, validateBuilderApiExecutionPayloadBid } from "../../../execution/builder/validateBid.js";
21
22
  import { validateGossipFnRetryUnknownRoot } from "../../../network/processor/gossipHandlers.js";
@@ -35,10 +36,14 @@ import { computeSubnetForCommitteesAtSlot, getPubkeysForIndices, selectBlockProd
35
36
  * A cutoff of 1667 BPS (2 seconds for 12s slots) gives enough time and if there are unexpected delays
36
37
  * it ensures we publish in time as proposals after the attestation deadline will likely be orphaned
37
38
  * due to proposer boost reorg.
38
- *
39
- * TODO GLOAS: re-evaluate cutoff timing due to attestation deadline changes in gloas
40
39
  */
41
40
  const BLOCK_PRODUCTION_RACE_CUTOFF_BPS = 1667;
41
+ /**
42
+ * Post-gloas cutoff, kept at 1667 BPS (2 seconds for 12s slots) for now.
43
+ *
44
+ * TODO GLOAS: revisit, the block propagates faster as it only commits to a bid and the attestation deadline changed
45
+ */
46
+ export const BLOCK_PRODUCTION_RACE_CUTOFF_GLOAS_BPS = 1667;
42
47
  /** Rejection message of the bid block branch when there is no viable bid to commit to */
43
48
  const NO_BID_AVAILABLE = "No builder bid available";
44
49
  /**
@@ -120,11 +125,13 @@ export function getValidatorApi(opts, { chain, config, logger, metrics, network,
120
125
  else if (state.slot < SLOTS_PER_HISTORICAL_ROOT) {
121
126
  genesisBlockRoot = state.getBlockRootAtSlot(GENESIS_SLOT);
122
127
  }
123
- const blockRes = await chain.getCanonicalBlockAtSlot(GENESIS_SLOT);
124
- if (blockRes) {
125
- genesisBlockRoot = config
126
- .getForkTypes(blockRes.block.message.slot)
127
- .SignedBeaconBlock.hashTreeRoot(blockRes.block);
128
+ else {
129
+ const blockRes = await chain.getCanonicalBlockAtSlot(GENESIS_SLOT);
130
+ if (blockRes) {
131
+ genesisBlockRoot = config
132
+ .getForkTypes(blockRes.block.message.slot)
133
+ .BeaconBlock.hashTreeRoot(blockRes.block.message);
134
+ }
128
135
  }
129
136
  }
130
137
  // If for some reason the genesisBlockRoot is not able don't prevent validators from
@@ -709,31 +716,43 @@ export function getValidatorApi(opts, { chain, config, logger, metrics, network,
709
716
  const builderBidExpected = builderConfig.builders.length > 0 ||
710
717
  (!circuitBreakerActive &&
711
718
  chain.executionPayloadBidPool.getBestBid(slot, bidParentBlockHash, parentBlockRootHex) !== null);
712
- // Select the p2p bid once builders had time to bid up, matching the deadline advertised
713
- // on builder API bid requests, unless the circuit breaker is active
714
- const p2pBidPromise = circuitBreakerActive
715
- ? Promise.resolve(null)
716
- : sleep(Math.max(0, BUILDER_BID_DEADLINE_MS - chain.clock.msFromSlot(slot))).then(() => {
717
- const p2pBid = chain.executionPayloadBidPool.getBestBid(slot, bidParentBlockHash, parentBlockRootHex);
718
- // Discard p2p bids below the proposer's configured floor on the total payment.
719
- // A p2p bid's total is just its value since gossip validation enforces executionPayment=0.
720
- if (p2pBid !== null && BigInt(p2pBid.signedBid.message.value) < builderConfig.minBid) {
721
- logger.info("Best p2p bid below configured minimum", {
722
- slot,
723
- bidValue: prettyGweiToEth(p2pBid.signedBid.message.value),
724
- minBid: prettyGweiToEth(builderConfig.minBid),
725
- });
726
- return null;
727
- }
728
- return p2pBid;
729
- });
719
+ // Calculate cutoff time based on start of the slot, ensures a slow local payload build does
720
+ // not delay the proposal when a builder bid block is available (and vice versa)
721
+ const cutoffMs = Math.max(0, config.getSlotComponentDurationMs(fork, BLOCK_PRODUCTION_RACE_CUTOFF_GLOAS_BPS) - chain.clock.msFromSlot(slot));
722
+ // Give p2p bids the same time to bid up as granted to builder API bid requests via the advertised
723
+ // deadline, the pool is read once the deadline passed and the bid requests settled. A late request
724
+ // does not wait past the race cutoff, a pooled bid is still the fastest fallback if the local block fails
725
+ const bidDeadlinePromise = circuitBreakerActive
726
+ ? Promise.resolve()
727
+ : sleep(Math.min(chain.builderApiClient.bidDeadline, cutoffMs));
730
728
  // Candidates are ranked by their boosted counted total payment, the p2p bid is governed
731
729
  // by the top-level factors and each builder API bid by its own entry. Ties prefer the
732
730
  // earliest received builder API bid, so the signed block can be routed back to its
733
731
  // builder directly.
734
732
  const bestBidPromise = (async () => {
735
- const [builderApiBids, p2pBid] = await Promise.all([builderApiBidsPromise, p2pBidPromise]);
733
+ // Past the race cutoff a pooled p2p bid is used right away rather than waiting for pending
734
+ // builder API requests, the local block is selected at the cutoff anyway if it is ready
735
+ let [builderApiBids] = await Promise.all([
736
+ Promise.race([builderApiBidsPromise, sleep(cutoffMs).then(() => null)]),
737
+ bidDeadlinePromise,
738
+ ]);
736
739
  let parentExecutionRequestsPromise = null;
740
+ let p2pBid = circuitBreakerActive
741
+ ? null
742
+ : chain.executionPayloadBidPool.getBestBid(slot, bidParentBlockHash, parentBlockRootHex);
743
+ // Discard p2p bids below the proposer's configured floor on the total payment.
744
+ // A p2p bid's total is just its value since gossip validation enforces executionPayment=0.
745
+ if (p2pBid !== null && BigInt(p2pBid.signedBid.message.value) < builderConfig.minBid) {
746
+ logger.info("Best p2p bid below configured minimum", {
747
+ slot,
748
+ bidValue: prettyGweiToEth(p2pBid.signedBid.message.value),
749
+ minBid: prettyGweiToEth(builderConfig.minBid),
750
+ });
751
+ p2pBid = null;
752
+ }
753
+ if (builderApiBids === null) {
754
+ builderApiBids = p2pBid !== null ? [] : await builderApiBidsPromise;
755
+ }
737
756
  const candidates = (await Promise.all(builderApiBids.map(async ({ url, entry, signedBid, receivedMs }) => {
738
757
  try {
739
758
  await validateBuilderApiExecutionPayloadBid(chain, signedBid, {
@@ -809,9 +828,6 @@ export function getValidatorApi(opts, { chain, config, logger, metrics, network,
809
828
  const t = metrics?.blockProductionTime.startTimer();
810
829
  return fn().finally(() => t?.({ source }));
811
830
  };
812
- // Calculate cutoff time based on start of the slot, ensures a slow local payload build does
813
- // not delay the proposal when a builder bid block is available (and vice versa)
814
- const cutoffMs = Math.max(0, config.getSlotComponentDurationMs(fork, BLOCK_PRODUCTION_RACE_CUTOFF_BPS) - chain.clock.msFromSlot(slot));
815
831
  // use abort controller to stop waiting for the bid block if the engine block will be selected
816
832
  const controller = new AbortController();
817
833
  const enginePromise = timed(ProducedBlockSource.engine, () => chain.produceBlock(baseAttrs)).then((engineBlock) => {
@@ -1309,7 +1325,7 @@ export function getValidatorApi(opts, { chain, config, logger, metrics, network,
1309
1325
  duties.push(duty);
1310
1326
  }
1311
1327
  }
1312
- const dependentRoot = fromHex(state.getShufflingDecisionRoot(epoch)) || (await getGenesisBlockRoot(state));
1328
+ const dependentRoot = fromHex(state.getShufflingDecisionRoot(epoch));
1313
1329
  return {
1314
1330
  data: duties,
1315
1331
  meta: {
@@ -1349,7 +1365,10 @@ export function getValidatorApi(opts, { chain, config, logger, metrics, network,
1349
1365
  }
1350
1366
  }
1351
1367
  }
1352
- const dependentRoot = fromHex(state.getShufflingDecisionRoot(epoch)) || (await getGenesisBlockRoot(state));
1368
+ // The fork epoch PTC is computed at the fork from effective balances updated at the end of the
1369
+ // last pre-fork epoch, so its dependent root is one epoch later than for other epochs
1370
+ const dependentRootEpoch = epoch === config.GLOAS_FORK_EPOCH ? epoch + 1 : epoch;
1371
+ const dependentRoot = fromHex(state.getShufflingDecisionRoot(dependentRootEpoch));
1353
1372
  return {
1354
1373
  data: duties,
1355
1374
  meta: {
@@ -1692,6 +1711,95 @@ export function getValidatorApi(opts, { chain, config, logger, metrics, network,
1692
1711
  throw new IndexedError("Error submitting builder preferences", failures);
1693
1712
  }
1694
1713
  },
1714
+ async produceInclusionList({ slot }) {
1715
+ notWhileSyncing(chain, sync.state);
1716
+ if (!isForkPostHeze(chain.config.getForkName(slot))) {
1717
+ throw new ApiError(400, `Producing inclusion list for pre-heze slot: ${slot}`);
1718
+ }
1719
+ await waitForSlot(slot); // Must never request for a future slot > currentSlot
1720
+ const timer = metrics?.getInclusionListV1RequestsDuration.startTimer();
1721
+ const transactions = await chain.executionEngine.getInclusionList();
1722
+ timer?.();
1723
+ metrics?.getInclusionListV1Requests.inc();
1724
+ return { data: transactions, meta: { version: chain.config.getForkName(slot) } };
1725
+ },
1726
+ async getInclusionListCommitteeDuties({ epoch, indices }) {
1727
+ notWhileSyncing(chain, sync.state);
1728
+ if (indices.length === 0) {
1729
+ throw new ApiError(400, "No validator to get inclusion list committee duties");
1730
+ }
1731
+ if (!isForkPostHeze(chain.config.getForkName(computeStartSlotAtEpoch(epoch)))) {
1732
+ throw new ApiError(400, `Requesting pre-heze inclusion list committee duties epoch: ${epoch}`);
1733
+ }
1734
+ // May request for an epoch that's in the future
1735
+ await waitForNextClosestEpoch();
1736
+ if (epoch > chain.clock.currentEpoch + 1) {
1737
+ throw new ApiError(400, "Cannot get duties for epoch more than one ahead");
1738
+ }
1739
+ const head = chain.forkChoice.getHead();
1740
+ const state = await chain.getHeadStateAtCurrentEpoch(RegenCaller.getDuties);
1741
+ const pubkeys = getPubkeysForIndices(state, indices);
1742
+ const requestedIndices = new Set(indices);
1743
+ const epochStartSlot = computeStartSlotAtEpoch(epoch);
1744
+ const shuffling = state.getShufflingAtEpoch(epoch);
1745
+ // Validators set this as `dependent_root` on their inclusion lists
1746
+ const dependentRoot = fromHex(state.getShufflingDecisionRoot(epoch));
1747
+ // A validator can be on several slots' committees in an epoch; report the earliest, as for attester duties
1748
+ const dutySlotByValidator = new Map();
1749
+ for (let i = 0; i < SLOTS_PER_EPOCH; i++) {
1750
+ const slot = epochStartSlot + i;
1751
+ for (const validatorIndex of getInclusionListCommittee(shuffling, slot).validatorIndices) {
1752
+ if (requestedIndices.has(validatorIndex) && !dutySlotByValidator.has(validatorIndex)) {
1753
+ dutySlotByValidator.set(validatorIndex, slot);
1754
+ }
1755
+ }
1756
+ }
1757
+ const duties = [];
1758
+ for (let i = 0; i < indices.length; i++) {
1759
+ const validatorIndex = indices[i];
1760
+ const slot = dutySlotByValidator.get(validatorIndex);
1761
+ if (slot !== undefined) {
1762
+ duties.push({ pubkey: pubkeys[i], validatorIndex, slot, dependentRoot });
1763
+ }
1764
+ }
1765
+ return {
1766
+ data: duties,
1767
+ meta: {
1768
+ dependentRoot: toRootHex(dependentRoot),
1769
+ executionOptimistic: isOptimisticBlock(head),
1770
+ },
1771
+ };
1772
+ },
1773
+ async publishInclusionList({ signedInclusionList }) {
1774
+ notWhileSyncing(chain, sync.state);
1775
+ const { slot } = signedInclusionList.message;
1776
+ if (!isForkPostHeze(chain.config.getForkName(slot))) {
1777
+ throw new ApiError(400, `Publishing pre-heze inclusion list slot: ${slot}`);
1778
+ }
1779
+ // Timeliness is judged on receipt, as for gossip, so a list submitted in time stays timely if validation is slow
1780
+ const secFromSlot = chain.clock.secFromSlot(slot, Date.now() / 1000);
1781
+ metrics?.inclusionListsReceived.inc({ source: InclusionListSource.api });
1782
+ metrics?.inclusionListTransactionsReceived.inc({ source: InclusionListSource.api }, signedInclusionList.message.transactions.length);
1783
+ const timer = metrics?.inclusionListsValidationTime.startTimer();
1784
+ let validationResult;
1785
+ try {
1786
+ validationResult = await validateGossipInclusionList(chain, signedInclusionList);
1787
+ }
1788
+ finally {
1789
+ timer?.({ source: InclusionListSource.api });
1790
+ }
1791
+ const { committeeIndices, totalBytes } = validationResult;
1792
+ metrics?.inclusionListsValid.inc({ source: InclusionListSource.api });
1793
+ metrics?.inclusionListsValidSize.inc(totalBytes);
1794
+ const isTimely = secFromSlot >= 0 && secFromSlot * 1000 < chain.config.getInclusionListDueMs(chain.config.getForkName(slot));
1795
+ chain.inclusionListStore.process(signedInclusionList, committeeIndices, isTimely);
1796
+ chain.emitter.emit(routes.events.EventType.inclusionList, {
1797
+ version: chain.config.getForkName(slot),
1798
+ data: signedInclusionList,
1799
+ });
1800
+ await network.publishInclusionList(signedInclusionList);
1801
+ metrics?.inclusionListsPublished.inc();
1802
+ },
1695
1803
  async getExecutionPayloadEnvelope({ slot, beaconBlockRoot }) {
1696
1804
  const fork = config.getForkName(slot);
1697
1805
  if (!isForkPostGloas(fork)) {