@lodestar/beacon-node 1.23.0-dev.a570048187 → 1.23.0-dev.abe6751566

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (553) hide show
  1. package/lib/api/impl/api.js.map +1 -1
  2. package/lib/api/impl/beacon/blocks/index.js +23 -26
  3. package/lib/api/impl/beacon/blocks/index.js.map +1 -1
  4. package/lib/api/impl/beacon/blocks/utils.d.ts +1 -1
  5. package/lib/api/impl/beacon/blocks/utils.js +2 -2
  6. package/lib/api/impl/beacon/blocks/utils.js.map +1 -1
  7. package/lib/api/impl/beacon/index.js +1 -1
  8. package/lib/api/impl/beacon/index.js.map +1 -1
  9. package/lib/api/impl/beacon/pool/index.js +5 -5
  10. package/lib/api/impl/beacon/pool/index.js.map +1 -1
  11. package/lib/api/impl/beacon/state/index.d.ts +1 -1
  12. package/lib/api/impl/beacon/state/index.js +4 -10
  13. package/lib/api/impl/beacon/state/index.js.map +1 -1
  14. package/lib/api/impl/beacon/state/utils.d.ts +2 -2
  15. package/lib/api/impl/beacon/state/utils.js +1 -1
  16. package/lib/api/impl/beacon/state/utils.js.map +1 -1
  17. package/lib/api/impl/config/constants.js +1 -1
  18. package/lib/api/impl/config/constants.js.map +1 -1
  19. package/lib/api/impl/config/index.js.map +1 -1
  20. package/lib/api/impl/debug/index.js +1 -1
  21. package/lib/api/impl/debug/index.js.map +1 -1
  22. package/lib/api/impl/lightclient/index.js +1 -1
  23. package/lib/api/impl/lightclient/index.js.map +1 -1
  24. package/lib/api/impl/lodestar/index.js +5 -5
  25. package/lib/api/impl/lodestar/index.js.map +1 -1
  26. package/lib/api/impl/node/index.d.ts +1 -1
  27. package/lib/api/impl/node/index.js +2 -4
  28. package/lib/api/impl/node/index.js.map +1 -1
  29. package/lib/api/impl/proof/index.d.ts +1 -1
  30. package/lib/api/impl/proof/index.js +2 -2
  31. package/lib/api/impl/proof/index.js.map +1 -1
  32. package/lib/api/impl/types.d.ts +2 -2
  33. package/lib/api/impl/validator/index.d.ts +32 -1
  34. package/lib/api/impl/validator/index.js +165 -83
  35. package/lib/api/impl/validator/index.js.map +1 -1
  36. package/lib/api/impl/validator/utils.d.ts +4 -3
  37. package/lib/api/impl/validator/utils.js +17 -9
  38. package/lib/api/impl/validator/utils.js.map +1 -1
  39. package/lib/api/options.js.map +1 -1
  40. package/lib/api/rest/base.d.ts +1 -1
  41. package/lib/api/rest/base.js +3 -3
  42. package/lib/api/rest/base.js.map +1 -1
  43. package/lib/api/rest/index.d.ts +2 -2
  44. package/lib/api/rest/index.js.map +1 -1
  45. package/lib/chain/archiver/archiveBlocks.d.ts +2 -2
  46. package/lib/chain/archiver/archiveBlocks.js +1 -1
  47. package/lib/chain/archiver/archiveBlocks.js.map +1 -1
  48. package/lib/chain/archiver/archiver.d.ts +40 -0
  49. package/lib/chain/archiver/archiver.js +117 -0
  50. package/lib/chain/archiver/archiver.js.map +1 -0
  51. package/lib/chain/archiver/index.d.ts +2 -54
  52. package/lib/chain/archiver/index.js +2 -104
  53. package/lib/chain/archiver/index.js.map +1 -1
  54. package/lib/chain/archiver/interface.d.ts +39 -0
  55. package/lib/chain/archiver/interface.js +8 -0
  56. package/lib/chain/archiver/interface.js.map +1 -0
  57. package/lib/chain/archiver/{archiveStates.d.ts → strategies/frequencyStateArchiveStrategy.d.ts} +17 -15
  58. package/lib/chain/archiver/{archiveStates.js → strategies/frequencyStateArchiveStrategy.js} +8 -6
  59. package/lib/chain/archiver/strategies/frequencyStateArchiveStrategy.js.map +1 -0
  60. package/lib/chain/balancesCache.d.ts +1 -1
  61. package/lib/chain/balancesCache.js +1 -1
  62. package/lib/chain/balancesCache.js.map +1 -1
  63. package/lib/chain/beaconProposerCache.d.ts +1 -1
  64. package/lib/chain/blocks/importBlock.js +8 -8
  65. package/lib/chain/blocks/importBlock.js.map +1 -1
  66. package/lib/chain/blocks/index.d.ts +2 -2
  67. package/lib/chain/blocks/index.js +4 -6
  68. package/lib/chain/blocks/index.js.map +1 -1
  69. package/lib/chain/blocks/types.d.ts +4 -4
  70. package/lib/chain/blocks/types.js +1 -1
  71. package/lib/chain/blocks/types.js.map +1 -1
  72. package/lib/chain/blocks/utils/checkpoint.js +1 -1
  73. package/lib/chain/blocks/utils/checkpoint.js.map +1 -1
  74. package/lib/chain/blocks/verifyBlock.d.ts +2 -2
  75. package/lib/chain/blocks/verifyBlock.js +7 -7
  76. package/lib/chain/blocks/verifyBlock.js.map +1 -1
  77. package/lib/chain/blocks/verifyBlocksDataAvailability.d.ts +1 -1
  78. package/lib/chain/blocks/verifyBlocksDataAvailability.js +3 -2
  79. package/lib/chain/blocks/verifyBlocksDataAvailability.js.map +1 -1
  80. package/lib/chain/blocks/verifyBlocksExecutionPayloads.d.ts +6 -6
  81. package/lib/chain/blocks/verifyBlocksExecutionPayloads.js +5 -5
  82. package/lib/chain/blocks/verifyBlocksExecutionPayloads.js.map +1 -1
  83. package/lib/chain/blocks/verifyBlocksSanityChecks.js +5 -13
  84. package/lib/chain/blocks/verifyBlocksSanityChecks.js.map +1 -1
  85. package/lib/chain/blocks/verifyBlocksSignatures.d.ts +1 -1
  86. package/lib/chain/blocks/verifyBlocksSignatures.js +1 -1
  87. package/lib/chain/blocks/verifyBlocksSignatures.js.map +1 -1
  88. package/lib/chain/blocks/verifyBlocksStateTransitionOnly.js +2 -2
  89. package/lib/chain/blocks/verifyBlocksStateTransitionOnly.js.map +1 -1
  90. package/lib/chain/blocks/writeBlockInputToDb.js +1 -1
  91. package/lib/chain/blocks/writeBlockInputToDb.js.map +1 -1
  92. package/lib/chain/bls/multithread/index.d.ts +1 -1
  93. package/lib/chain/bls/multithread/index.js +9 -8
  94. package/lib/chain/bls/multithread/index.js.map +1 -1
  95. package/lib/chain/bls/multithread/jobItem.d.ts +3 -3
  96. package/lib/chain/bls/multithread/jobItem.js +4 -14
  97. package/lib/chain/bls/multithread/jobItem.js.map +1 -1
  98. package/lib/chain/bls/multithread/worker.js +1 -1
  99. package/lib/chain/bls/multithread/worker.js.map +1 -1
  100. package/lib/chain/chain.d.ts +24 -24
  101. package/lib/chain/chain.js +51 -55
  102. package/lib/chain/chain.js.map +1 -1
  103. package/lib/chain/emitter.d.ts +1 -1
  104. package/lib/chain/errors/attestationError.d.ts +1 -1
  105. package/lib/chain/errors/blobSidecarError.d.ts +1 -1
  106. package/lib/chain/errors/blockError.d.ts +1 -1
  107. package/lib/chain/errors/blockError.js.map +1 -1
  108. package/lib/chain/errors/syncCommitteeError.d.ts +1 -1
  109. package/lib/chain/forkChoice/index.d.ts +1 -1
  110. package/lib/chain/forkChoice/index.js +3 -3
  111. package/lib/chain/forkChoice/index.js.map +1 -1
  112. package/lib/chain/genesis/genesis.d.ts +3 -3
  113. package/lib/chain/genesis/genesis.js +4 -8
  114. package/lib/chain/genesis/genesis.js.map +1 -1
  115. package/lib/chain/genesis/interface.d.ts +1 -1
  116. package/lib/chain/historicalState/getHistoricalState.d.ts +1 -1
  117. package/lib/chain/historicalState/getHistoricalState.js.map +1 -1
  118. package/lib/chain/historicalState/index.js +1 -1
  119. package/lib/chain/historicalState/index.js.map +1 -1
  120. package/lib/chain/historicalState/worker.js +4 -4
  121. package/lib/chain/historicalState/worker.js.map +1 -1
  122. package/lib/chain/initState.d.ts +2 -2
  123. package/lib/chain/initState.js.map +1 -1
  124. package/lib/chain/interface.d.ts +21 -21
  125. package/lib/chain/interface.js.map +1 -1
  126. package/lib/chain/lightClient/index.d.ts +2 -2
  127. package/lib/chain/lightClient/index.js +9 -11
  128. package/lib/chain/lightClient/index.js.map +1 -1
  129. package/lib/chain/lightClient/proofs.d.ts +1 -1
  130. package/lib/chain/lightClient/proofs.js +1 -1
  131. package/lib/chain/lightClient/proofs.js.map +1 -1
  132. package/lib/chain/opPools/aggregatedAttestationPool.d.ts +3 -3
  133. package/lib/chain/opPools/aggregatedAttestationPool.js +38 -42
  134. package/lib/chain/opPools/aggregatedAttestationPool.js.map +1 -1
  135. package/lib/chain/opPools/attestationPool.d.ts +2 -2
  136. package/lib/chain/opPools/attestationPool.js +5 -7
  137. package/lib/chain/opPools/attestationPool.js.map +1 -1
  138. package/lib/chain/opPools/opPool.d.ts +2 -2
  139. package/lib/chain/opPools/opPool.js +4 -6
  140. package/lib/chain/opPools/opPool.js.map +1 -1
  141. package/lib/chain/opPools/syncCommitteeMessagePool.d.ts +1 -1
  142. package/lib/chain/opPools/syncCommitteeMessagePool.js +4 -6
  143. package/lib/chain/opPools/syncCommitteeMessagePool.js.map +1 -1
  144. package/lib/chain/opPools/syncContributionAndProofPool.d.ts +1 -1
  145. package/lib/chain/opPools/syncContributionAndProofPool.js +4 -6
  146. package/lib/chain/opPools/syncContributionAndProofPool.js.map +1 -1
  147. package/lib/chain/options.d.ts +3 -1
  148. package/lib/chain/options.js +4 -0
  149. package/lib/chain/options.js.map +1 -1
  150. package/lib/chain/prepareNextSlot.d.ts +1 -1
  151. package/lib/chain/prepareNextSlot.js +5 -5
  152. package/lib/chain/prepareNextSlot.js.map +1 -1
  153. package/lib/chain/produceBlock/produceBlockBody.d.ts +4 -4
  154. package/lib/chain/produceBlock/produceBlockBody.js +21 -20
  155. package/lib/chain/produceBlock/produceBlockBody.js.map +1 -1
  156. package/lib/chain/regen/errors.d.ts +1 -1
  157. package/lib/chain/regen/interface.d.ts +2 -2
  158. package/lib/chain/regen/queued.d.ts +3 -3
  159. package/lib/chain/regen/queued.js +2 -2
  160. package/lib/chain/regen/queued.js.map +1 -1
  161. package/lib/chain/regen/regen.d.ts +5 -5
  162. package/lib/chain/regen/regen.js +3 -3
  163. package/lib/chain/regen/regen.js.map +1 -1
  164. package/lib/chain/reprocess.d.ts +1 -1
  165. package/lib/chain/rewards/attestationsRewards.d.ts +2 -2
  166. package/lib/chain/rewards/attestationsRewards.js.map +1 -1
  167. package/lib/chain/rewards/blockRewards.d.ts +1 -1
  168. package/lib/chain/rewards/blockRewards.js +2 -4
  169. package/lib/chain/rewards/blockRewards.js.map +1 -1
  170. package/lib/chain/rewards/syncCommitteeRewards.d.ts +1 -1
  171. package/lib/chain/rewards/syncCommitteeRewards.js +1 -3
  172. package/lib/chain/rewards/syncCommitteeRewards.js.map +1 -1
  173. package/lib/chain/seenCache/seenAttestationData.d.ts +1 -1
  174. package/lib/chain/seenCache/seenCommittee.d.ts +1 -1
  175. package/lib/chain/seenCache/seenGossipBlockInput.d.ts +2 -2
  176. package/lib/chain/seenCache/seenGossipBlockInput.js +23 -27
  177. package/lib/chain/seenCache/seenGossipBlockInput.js.map +1 -1
  178. package/lib/chain/shufflingCache.js +11 -11
  179. package/lib/chain/shufflingCache.js.map +1 -1
  180. package/lib/chain/stateCache/blockStateCacheImpl.d.ts +2 -2
  181. package/lib/chain/stateCache/datastore/file.js.map +1 -1
  182. package/lib/chain/stateCache/fifoBlockStateCache.d.ts +2 -2
  183. package/lib/chain/stateCache/inMemoryCheckpointsCache.d.ts +2 -2
  184. package/lib/chain/stateCache/inMemoryCheckpointsCache.js.map +1 -1
  185. package/lib/chain/stateCache/persistentCheckpointsCache.d.ts +5 -5
  186. package/lib/chain/stateCache/persistentCheckpointsCache.js +3 -3
  187. package/lib/chain/stateCache/persistentCheckpointsCache.js.map +1 -1
  188. package/lib/chain/stateCache/types.d.ts +1 -1
  189. package/lib/chain/validation/aggregateAndProof.d.ts +1 -1
  190. package/lib/chain/validation/aggregateAndProof.js +2 -2
  191. package/lib/chain/validation/aggregateAndProof.js.map +1 -1
  192. package/lib/chain/validation/attestation.d.ts +5 -5
  193. package/lib/chain/validation/attestation.js +28 -34
  194. package/lib/chain/validation/attestation.js.map +1 -1
  195. package/lib/chain/validation/attesterSlashing.js +1 -1
  196. package/lib/chain/validation/attesterSlashing.js.map +1 -1
  197. package/lib/chain/validation/blobSidecar.d.ts +1 -1
  198. package/lib/chain/validation/blobSidecar.js +5 -5
  199. package/lib/chain/validation/blobSidecar.js.map +1 -1
  200. package/lib/chain/validation/block.js +3 -3
  201. package/lib/chain/validation/block.js.map +1 -1
  202. package/lib/chain/validation/blsToExecutionChange.js +1 -1
  203. package/lib/chain/validation/blsToExecutionChange.js.map +1 -1
  204. package/lib/chain/validation/lightClientFinalityUpdate.js +3 -3
  205. package/lib/chain/validation/lightClientFinalityUpdate.js.map +1 -1
  206. package/lib/chain/validation/lightClientOptimisticUpdate.js +3 -3
  207. package/lib/chain/validation/lightClientOptimisticUpdate.js.map +1 -1
  208. package/lib/chain/validation/proposerSlashing.js +1 -1
  209. package/lib/chain/validation/proposerSlashing.js.map +1 -1
  210. package/lib/chain/validation/signatureSets/aggregateAndProof.d.ts +2 -2
  211. package/lib/chain/validation/signatureSets/aggregateAndProof.js +1 -1
  212. package/lib/chain/validation/signatureSets/aggregateAndProof.js.map +1 -1
  213. package/lib/chain/validation/signatureSets/contributionAndProof.d.ts +1 -1
  214. package/lib/chain/validation/signatureSets/contributionAndProof.js +1 -1
  215. package/lib/chain/validation/signatureSets/contributionAndProof.js.map +1 -1
  216. package/lib/chain/validation/signatureSets/selectionProof.d.ts +2 -2
  217. package/lib/chain/validation/signatureSets/selectionProof.js +1 -1
  218. package/lib/chain/validation/signatureSets/selectionProof.js.map +1 -1
  219. package/lib/chain/validation/signatureSets/syncCommittee.d.ts +1 -1
  220. package/lib/chain/validation/signatureSets/syncCommittee.js +1 -1
  221. package/lib/chain/validation/signatureSets/syncCommittee.js.map +1 -1
  222. package/lib/chain/validation/signatureSets/syncCommitteeContribution.d.ts +1 -1
  223. package/lib/chain/validation/signatureSets/syncCommitteeContribution.js +2 -2
  224. package/lib/chain/validation/signatureSets/syncCommitteeContribution.js.map +1 -1
  225. package/lib/chain/validation/signatureSets/syncCommitteeSelectionProof.d.ts +1 -1
  226. package/lib/chain/validation/signatureSets/syncCommitteeSelectionProof.js +1 -1
  227. package/lib/chain/validation/signatureSets/syncCommitteeSelectionProof.js.map +1 -1
  228. package/lib/chain/validation/syncCommittee.js +1 -1
  229. package/lib/chain/validation/syncCommittee.js.map +1 -1
  230. package/lib/chain/validation/syncCommitteeContributionAndProof.d.ts +1 -1
  231. package/lib/chain/validation/syncCommitteeContributionAndProof.js +2 -2
  232. package/lib/chain/validation/syncCommitteeContributionAndProof.js.map +1 -1
  233. package/lib/chain/validation/voluntaryExit.js +2 -2
  234. package/lib/chain/validation/voluntaryExit.js.map +1 -1
  235. package/lib/db/beacon.d.ts +3 -3
  236. package/lib/db/beacon.js +2 -2
  237. package/lib/db/beacon.js.map +1 -1
  238. package/lib/db/buckets.js +3 -5
  239. package/lib/db/buckets.js.map +1 -1
  240. package/lib/db/interface.d.ts +2 -2
  241. package/lib/db/repositories/attesterSlashing.d.ts +1 -1
  242. package/lib/db/repositories/attesterSlashing.js +1 -1
  243. package/lib/db/repositories/attesterSlashing.js.map +1 -1
  244. package/lib/db/repositories/backfilledRanges.d.ts +1 -1
  245. package/lib/db/repositories/backfilledRanges.js +1 -1
  246. package/lib/db/repositories/backfilledRanges.js.map +1 -1
  247. package/lib/db/repositories/blobSidecars.d.ts +1 -1
  248. package/lib/db/repositories/blobSidecars.js.map +1 -1
  249. package/lib/db/repositories/blobSidecarsArchive.js.map +1 -1
  250. package/lib/db/repositories/blockArchive.d.ts +2 -2
  251. package/lib/db/repositories/blockArchive.js +3 -3
  252. package/lib/db/repositories/blockArchive.js.map +1 -1
  253. package/lib/db/repositories/blockArchiveIndex.d.ts +1 -1
  254. package/lib/db/repositories/blockArchiveIndex.js +1 -1
  255. package/lib/db/repositories/blockArchiveIndex.js.map +1 -1
  256. package/lib/db/repositories/blsToExecutionChange.d.ts +1 -1
  257. package/lib/db/repositories/blsToExecutionChange.js.map +1 -1
  258. package/lib/db/repositories/checkpointState.js +1 -0
  259. package/lib/db/repositories/checkpointState.js.map +1 -1
  260. package/lib/db/repositories/depositDataRoot.d.ts +2 -2
  261. package/lib/db/repositories/depositDataRoot.js +2 -2
  262. package/lib/db/repositories/depositDataRoot.js.map +1 -1
  263. package/lib/db/repositories/depositEvent.d.ts +1 -1
  264. package/lib/db/repositories/depositEvent.js +1 -1
  265. package/lib/db/repositories/depositEvent.js.map +1 -1
  266. package/lib/db/repositories/eth1Data.d.ts +1 -1
  267. package/lib/db/repositories/eth1Data.js +1 -1
  268. package/lib/db/repositories/eth1Data.js.map +1 -1
  269. package/lib/db/repositories/lightclientBestUpdate.js.map +1 -1
  270. package/lib/db/repositories/lightclientCheckpointHeader.js +1 -1
  271. package/lib/db/repositories/lightclientCheckpointHeader.js.map +1 -1
  272. package/lib/db/repositories/proposerSlashing.d.ts +1 -1
  273. package/lib/db/repositories/proposerSlashing.js +1 -1
  274. package/lib/db/repositories/proposerSlashing.js.map +1 -1
  275. package/lib/db/repositories/stateArchive.d.ts +2 -2
  276. package/lib/db/repositories/stateArchive.js +1 -1
  277. package/lib/db/repositories/stateArchive.js.map +1 -1
  278. package/lib/db/repositories/stateArchiveIndex.js.map +1 -1
  279. package/lib/db/repositories/voluntaryExit.d.ts +1 -1
  280. package/lib/db/repositories/voluntaryExit.js +1 -1
  281. package/lib/db/repositories/voluntaryExit.js.map +1 -1
  282. package/lib/db/single/preGenesisState.js.map +1 -1
  283. package/lib/db/single/preGenesisStateLastProcessedBlock.js.map +1 -1
  284. package/lib/eth1/eth1DataCache.js +1 -1
  285. package/lib/eth1/eth1DataCache.js.map +1 -1
  286. package/lib/eth1/eth1DepositDataTracker.js +14 -18
  287. package/lib/eth1/eth1DepositDataTracker.js.map +1 -1
  288. package/lib/eth1/eth1DepositsCache.d.ts +2 -2
  289. package/lib/eth1/eth1DepositsCache.js +4 -4
  290. package/lib/eth1/eth1DepositsCache.js.map +1 -1
  291. package/lib/eth1/eth1MergeBlockTracker.d.ts +1 -1
  292. package/lib/eth1/eth1MergeBlockTracker.js +41 -49
  293. package/lib/eth1/eth1MergeBlockTracker.js.map +1 -1
  294. package/lib/eth1/index.d.ts +1 -1
  295. package/lib/eth1/index.js +4 -8
  296. package/lib/eth1/index.js.map +1 -1
  297. package/lib/eth1/interface.d.ts +1 -1
  298. package/lib/eth1/provider/eth1Provider.d.ts +2 -2
  299. package/lib/eth1/provider/eth1Provider.js +5 -5
  300. package/lib/eth1/provider/eth1Provider.js.map +1 -1
  301. package/lib/eth1/provider/jsonRpcHttpClient.d.ts +1 -1
  302. package/lib/eth1/provider/jsonRpcHttpClient.js +5 -11
  303. package/lib/eth1/provider/jsonRpcHttpClient.js.map +1 -1
  304. package/lib/eth1/provider/utils.js +2 -2
  305. package/lib/eth1/provider/utils.js.map +1 -1
  306. package/lib/eth1/stream.d.ts +1 -1
  307. package/lib/eth1/stream.js +1 -1
  308. package/lib/eth1/stream.js.map +1 -1
  309. package/lib/eth1/utils/deposits.d.ts +1 -1
  310. package/lib/eth1/utils/deposits.js +4 -4
  311. package/lib/eth1/utils/deposits.js.map +1 -1
  312. package/lib/eth1/utils/eth1Data.js.map +1 -1
  313. package/lib/eth1/utils/eth1Vote.d.ts +1 -1
  314. package/lib/eth1/utils/eth1Vote.js +3 -5
  315. package/lib/eth1/utils/eth1Vote.js.map +1 -1
  316. package/lib/eth1/utils/optimizeNextBlockDiffForGenesis.js +1 -3
  317. package/lib/eth1/utils/optimizeNextBlockDiffForGenesis.js.map +1 -1
  318. package/lib/execution/builder/http.d.ts +18 -3
  319. package/lib/execution/builder/http.js +33 -8
  320. package/lib/execution/builder/http.js.map +1 -1
  321. package/lib/execution/builder/interface.d.ts +3 -2
  322. package/lib/execution/engine/http.d.ts +3 -3
  323. package/lib/execution/engine/http.js +7 -11
  324. package/lib/execution/engine/http.js.map +1 -1
  325. package/lib/execution/engine/index.d.ts +2 -2
  326. package/lib/execution/engine/index.js.map +1 -1
  327. package/lib/execution/engine/interface.d.ts +3 -3
  328. package/lib/execution/engine/interface.js.map +1 -1
  329. package/lib/execution/engine/mock.d.ts +2 -2
  330. package/lib/execution/engine/mock.js +12 -14
  331. package/lib/execution/engine/mock.js.map +1 -1
  332. package/lib/execution/engine/payloadIdCache.d.ts +1 -1
  333. package/lib/execution/engine/types.d.ts +18 -26
  334. package/lib/execution/engine/types.js +33 -54
  335. package/lib/execution/engine/types.js.map +1 -1
  336. package/lib/execution/engine/utils.d.ts +1 -1
  337. package/lib/execution/engine/utils.js +2 -2
  338. package/lib/execution/engine/utils.js.map +1 -1
  339. package/lib/metrics/metrics/beacon.d.ts +8 -3
  340. package/lib/metrics/metrics/beacon.js +12 -1
  341. package/lib/metrics/metrics/beacon.js.map +1 -1
  342. package/lib/metrics/metrics/lodestar.d.ts +3 -4
  343. package/lib/metrics/metrics/lodestar.js +0 -5
  344. package/lib/metrics/metrics/lodestar.js.map +1 -1
  345. package/lib/metrics/metrics.d.ts +3 -3
  346. package/lib/metrics/metrics.js +1 -1
  347. package/lib/metrics/metrics.js.map +1 -1
  348. package/lib/metrics/nodeJsMetrics.js +1 -1
  349. package/lib/metrics/nodeJsMetrics.js.map +1 -1
  350. package/lib/metrics/server/http.d.ts +1 -1
  351. package/lib/metrics/server/http.js +1 -1
  352. package/lib/metrics/server/http.js.map +1 -1
  353. package/lib/metrics/utils/avgMinMax.d.ts +1 -1
  354. package/lib/metrics/utils/gauge.d.ts +1 -1
  355. package/lib/metrics/utils/gauge.js.map +1 -1
  356. package/lib/metrics/utils/registryMetricCreator.d.ts +1 -1
  357. package/lib/metrics/utils/registryMetricCreator.js +1 -1
  358. package/lib/metrics/utils/registryMetricCreator.js.map +1 -1
  359. package/lib/metrics/validatorMonitor.d.ts +2 -2
  360. package/lib/metrics/validatorMonitor.js +39 -51
  361. package/lib/metrics/validatorMonitor.js.map +1 -1
  362. package/lib/monitoring/properties.js +2 -4
  363. package/lib/monitoring/properties.js.map +1 -1
  364. package/lib/monitoring/service.js +3 -5
  365. package/lib/monitoring/service.js.map +1 -1
  366. package/lib/monitoring/system.js.map +1 -1
  367. package/lib/network/core/networkCore.d.ts +14 -14
  368. package/lib/network/core/networkCore.js +17 -11
  369. package/lib/network/core/networkCore.js.map +1 -1
  370. package/lib/network/core/networkCoreWorker.js +2 -2
  371. package/lib/network/core/networkCoreWorker.js.map +1 -1
  372. package/lib/network/core/types.d.ts +2 -2
  373. package/lib/network/discv5/index.d.ts +2 -2
  374. package/lib/network/discv5/index.js +2 -2
  375. package/lib/network/discv5/index.js.map +1 -1
  376. package/lib/network/discv5/utils.js +1 -0
  377. package/lib/network/discv5/utils.js.map +1 -1
  378. package/lib/network/discv5/worker.js +8 -8
  379. package/lib/network/discv5/worker.js.map +1 -1
  380. package/lib/network/events.d.ts +3 -3
  381. package/lib/network/forks.d.ts +1 -1
  382. package/lib/network/gossip/encoding.d.ts +1 -1
  383. package/lib/network/gossip/encoding.js +4 -6
  384. package/lib/network/gossip/encoding.js.map +1 -1
  385. package/lib/network/gossip/gossipsub.d.ts +2 -2
  386. package/lib/network/gossip/gossipsub.js +11 -11
  387. package/lib/network/gossip/gossipsub.js.map +1 -1
  388. package/lib/network/gossip/interface.d.ts +6 -6
  389. package/lib/network/gossip/scoringParameters.js +1 -1
  390. package/lib/network/gossip/scoringParameters.js.map +1 -1
  391. package/lib/network/gossip/topic.d.ts +2 -2
  392. package/lib/network/gossip/topic.js +3 -3
  393. package/lib/network/gossip/topic.js.map +1 -1
  394. package/lib/network/interface.d.ts +6 -10
  395. package/lib/network/libp2p/index.d.ts +1 -1
  396. package/lib/network/libp2p/index.js +2 -2
  397. package/lib/network/libp2p/index.js.map +1 -1
  398. package/lib/network/metadata.d.ts +1 -1
  399. package/lib/network/metadata.js.map +1 -1
  400. package/lib/network/network.d.ts +10 -10
  401. package/lib/network/network.js +10 -10
  402. package/lib/network/network.js.map +1 -1
  403. package/lib/network/options.d.ts +1 -1
  404. package/lib/network/peers/datastore.d.ts +1 -1
  405. package/lib/network/peers/discover.d.ts +2 -2
  406. package/lib/network/peers/discover.js +11 -15
  407. package/lib/network/peers/discover.js.map +1 -1
  408. package/lib/network/peers/peerManager.d.ts +5 -5
  409. package/lib/network/peers/peerManager.js +10 -7
  410. package/lib/network/peers/peerManager.js.map +1 -1
  411. package/lib/network/peers/peersData.d.ts +1 -1
  412. package/lib/network/peers/utils/enrSubnetsDeserialize.js +1 -1
  413. package/lib/network/peers/utils/enrSubnetsDeserialize.js.map +1 -1
  414. package/lib/network/peers/utils/prioritizePeers.js.map +1 -1
  415. package/lib/network/processor/extractSlotRootFns.js +1 -1
  416. package/lib/network/processor/extractSlotRootFns.js.map +1 -1
  417. package/lib/network/processor/gossipHandlers.d.ts +4 -4
  418. package/lib/network/processor/gossipHandlers.js +11 -11
  419. package/lib/network/processor/gossipHandlers.js.map +1 -1
  420. package/lib/network/processor/gossipQueues/index.js +3 -5
  421. package/lib/network/processor/gossipQueues/index.js.map +1 -1
  422. package/lib/network/processor/gossipQueues/indexed.js +1 -3
  423. package/lib/network/processor/gossipQueues/indexed.js.map +1 -1
  424. package/lib/network/processor/gossipQueues/linear.d.ts +1 -1
  425. package/lib/network/processor/gossipQueues/linear.js +5 -7
  426. package/lib/network/processor/gossipQueues/linear.js.map +1 -1
  427. package/lib/network/processor/gossipValidatorFn.d.ts +1 -1
  428. package/lib/network/processor/gossipValidatorFn.js +1 -1
  429. package/lib/network/processor/gossipValidatorFn.js.map +1 -1
  430. package/lib/network/processor/index.d.ts +4 -4
  431. package/lib/network/processor/index.js +5 -5
  432. package/lib/network/processor/index.js.map +1 -1
  433. package/lib/network/processor/types.d.ts +1 -1
  434. package/lib/network/reqresp/ReqRespBeaconNode.d.ts +2 -2
  435. package/lib/network/reqresp/ReqRespBeaconNode.js +2 -2
  436. package/lib/network/reqresp/ReqRespBeaconNode.js.map +1 -1
  437. package/lib/network/reqresp/beaconBlocksMaybeBlobsByRange.d.ts +2 -2
  438. package/lib/network/reqresp/beaconBlocksMaybeBlobsByRange.js +2 -4
  439. package/lib/network/reqresp/beaconBlocksMaybeBlobsByRange.js.map +1 -1
  440. package/lib/network/reqresp/beaconBlocksMaybeBlobsByRoot.d.ts +1 -1
  441. package/lib/network/reqresp/beaconBlocksMaybeBlobsByRoot.js +1 -1
  442. package/lib/network/reqresp/beaconBlocksMaybeBlobsByRoot.js.map +1 -1
  443. package/lib/network/reqresp/handlers/beaconBlocksByRange.js +1 -1
  444. package/lib/network/reqresp/handlers/beaconBlocksByRange.js.map +1 -1
  445. package/lib/network/reqresp/handlers/blobSidecarsByRange.d.ts +1 -1
  446. package/lib/network/reqresp/handlers/blobSidecarsByRange.js +2 -2
  447. package/lib/network/reqresp/handlers/blobSidecarsByRange.js.map +1 -1
  448. package/lib/network/reqresp/handlers/blobSidecarsByRoot.js +1 -1
  449. package/lib/network/reqresp/handlers/blobSidecarsByRoot.js.map +1 -1
  450. package/lib/network/reqresp/handlers/index.js +1 -1
  451. package/lib/network/reqresp/handlers/index.js.map +1 -1
  452. package/lib/network/reqresp/handlers/lightClientBootstrap.js +3 -5
  453. package/lib/network/reqresp/handlers/lightClientBootstrap.js.map +1 -1
  454. package/lib/network/reqresp/handlers/lightClientFinalityUpdate.js +7 -9
  455. package/lib/network/reqresp/handlers/lightClientFinalityUpdate.js.map +1 -1
  456. package/lib/network/reqresp/handlers/lightClientOptimisticUpdate.js +8 -10
  457. package/lib/network/reqresp/handlers/lightClientOptimisticUpdate.js.map +1 -1
  458. package/lib/network/reqresp/handlers/lightClientUpdatesByRange.d.ts +1 -1
  459. package/lib/network/reqresp/handlers/lightClientUpdatesByRange.js +3 -5
  460. package/lib/network/reqresp/handlers/lightClientUpdatesByRange.js.map +1 -1
  461. package/lib/network/reqresp/handlers/status.js +1 -1
  462. package/lib/network/reqresp/handlers/status.js.map +1 -1
  463. package/lib/network/reqresp/protocols.js +1 -1
  464. package/lib/network/reqresp/protocols.js.map +1 -1
  465. package/lib/network/reqresp/rateLimit.js +1 -1
  466. package/lib/network/reqresp/rateLimit.js.map +1 -1
  467. package/lib/network/reqresp/types.js +3 -7
  468. package/lib/network/reqresp/types.js.map +1 -1
  469. package/lib/network/reqresp/utils/collect.d.ts +1 -1
  470. package/lib/network/reqresp/utils/collect.js +1 -1
  471. package/lib/network/reqresp/utils/collect.js.map +1 -1
  472. package/lib/network/reqresp/utils/collectSequentialBlocksInRange.d.ts +1 -2
  473. package/lib/network/reqresp/utils/collectSequentialBlocksInRange.js.map +1 -1
  474. package/lib/network/subnets/attnetsService.d.ts +3 -3
  475. package/lib/network/subnets/attnetsService.js +3 -3
  476. package/lib/network/subnets/attnetsService.js.map +1 -1
  477. package/lib/network/subnets/interface.d.ts +1 -1
  478. package/lib/network/subnets/syncnetsService.d.ts +1 -1
  479. package/lib/network/subnets/syncnetsService.js +1 -1
  480. package/lib/network/subnets/syncnetsService.js.map +1 -1
  481. package/lib/network/util.js +1 -0
  482. package/lib/network/util.js.map +1 -1
  483. package/lib/node/nodejs.d.ts +7 -7
  484. package/lib/node/nodejs.js +9 -9
  485. package/lib/node/nodejs.js.map +1 -1
  486. package/lib/node/notifier.js +18 -28
  487. package/lib/node/notifier.js.map +1 -1
  488. package/lib/node/options.d.ts +3 -3
  489. package/lib/node/options.js +3 -3
  490. package/lib/node/options.js.map +1 -1
  491. package/lib/node/utils/interop/deposits.d.ts +1 -1
  492. package/lib/node/utils/interop/deposits.js +3 -3
  493. package/lib/node/utils/interop/deposits.js.map +1 -1
  494. package/lib/node/utils/interop/state.d.ts +1 -1
  495. package/lib/node/utils/interop/state.js +2 -2
  496. package/lib/node/utils/interop/state.js.map +1 -1
  497. package/lib/node/utils/state.js.map +1 -1
  498. package/lib/sync/backfill/backfill.d.ts +5 -5
  499. package/lib/sync/backfill/backfill.js +4 -3
  500. package/lib/sync/backfill/backfill.js.map +1 -1
  501. package/lib/sync/backfill/errors.d.ts +1 -1
  502. package/lib/sync/backfill/errors.js.map +1 -1
  503. package/lib/sync/backfill/verify.d.ts +2 -3
  504. package/lib/sync/backfill/verify.js +1 -1
  505. package/lib/sync/backfill/verify.js.map +1 -1
  506. package/lib/sync/interface.d.ts +5 -5
  507. package/lib/sync/range/batch.d.ts +2 -2
  508. package/lib/sync/range/batch.js +1 -1
  509. package/lib/sync/range/batch.js.map +1 -1
  510. package/lib/sync/range/chain.d.ts +1 -1
  511. package/lib/sync/range/chain.js +1 -1
  512. package/lib/sync/range/chain.js.map +1 -1
  513. package/lib/sync/range/range.d.ts +2 -2
  514. package/lib/sync/range/range.js +4 -8
  515. package/lib/sync/range/range.js.map +1 -1
  516. package/lib/sync/range/utils/batches.js +1 -3
  517. package/lib/sync/range/utils/batches.js.map +1 -1
  518. package/lib/sync/range/utils/hashBlocks.d.ts +1 -1
  519. package/lib/sync/sync.d.ts +1 -1
  520. package/lib/sync/sync.js +31 -30
  521. package/lib/sync/sync.js.map +1 -1
  522. package/lib/sync/unknownBlock.d.ts +1 -1
  523. package/lib/sync/unknownBlock.js +7 -11
  524. package/lib/sync/unknownBlock.js.map +1 -1
  525. package/lib/sync/utils/pendingBlocksTree.js +1 -1
  526. package/lib/sync/utils/pendingBlocksTree.js.map +1 -1
  527. package/lib/sync/utils/remoteSyncType.d.ts +1 -1
  528. package/lib/sync/utils/remoteSyncType.js +25 -36
  529. package/lib/sync/utils/remoteSyncType.js.map +1 -1
  530. package/lib/util/binarySearch.js +1 -1
  531. package/lib/util/binarySearch.js.map +1 -1
  532. package/lib/util/bitArray.js +1 -2
  533. package/lib/util/bitArray.js.map +1 -1
  534. package/lib/util/blobs.d.ts +2 -2
  535. package/lib/util/blobs.js +2 -2
  536. package/lib/util/blobs.js.map +1 -1
  537. package/lib/util/clock.d.ts +2 -2
  538. package/lib/util/clock.js +1 -1
  539. package/lib/util/clock.js.map +1 -1
  540. package/lib/util/kzg.js +4 -4
  541. package/lib/util/kzg.js.map +1 -1
  542. package/lib/util/multifork.d.ts +1 -1
  543. package/lib/util/multifork.js.map +1 -1
  544. package/lib/util/peerId.js +1 -1
  545. package/lib/util/peerId.js.map +1 -1
  546. package/lib/util/queue/fnQueue.d.ts +1 -1
  547. package/lib/util/queue/itemQueue.d.ts +1 -1
  548. package/lib/util/queue/itemQueue.js +2 -2
  549. package/lib/util/queue/itemQueue.js.map +1 -1
  550. package/lib/util/sszBytes.d.ts +1 -1
  551. package/lib/util/sszBytes.js.map +1 -1
  552. package/package.json +16 -16
  553. package/lib/chain/archiver/archiveStates.js.map +0 -1
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../src/api/impl/lodestar/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,MAAM,SAAS,CAAC;AACzB,OAAO,IAAI,MAAM,WAAW,CAAC;AAG7B,OAAO,EAAC,UAAU,EAAC,MAAM,cAAc,CAAC;AACxC,OAAO,EAAC,KAAK,EAAE,SAAS,EAAC,MAAM,iBAAiB,CAAC;AACjD,OAAO,EAAC,wCAAwC,EAAC,MAAM,4BAA4B,CAAC;AAEpF,OAAO,EAAC,GAAG,EAAC,MAAM,iBAAiB,CAAC;AACpC,OAAO,EAAC,eAAe,EAAC,MAAM,kBAAkB,CAAC;AAMjD,OAAO,EAAC,aAAa,EAAE,iBAAiB,EAAC,MAAM,0BAA0B,CAAC;AAE1E,MAAM,UAAU,cAAc,CAAC,EAC7B,KAAK,EACL,MAAM,EACN,EAAE,EACF,OAAO,EACP,IAAI,GAC6D;IACjE,IAAI,eAAe,GAAG,KAAK,CAAC;IAC5B,IAAI,cAAc,GAAG,KAAK,CAAC;IAC3B,MAAM,gBAAgB,GAAG,eAAe,GAAG,MAAM,CAAC,gBAAgB,GAAG,IAAI,CAAC;IAE1E,OAAO;QACL,KAAK,CAAC,aAAa,CAAC,EAAC,MAAM,GAAG,MAAM,EAAE,OAAO,GAAG,GAAG,EAAC;YAClD,IAAI,eAAe,EAAE,CAAC;gBACpB,MAAM,KAAK,CAAC,0BAA0B,CAAC,CAAC;YAC1C,CAAC;YAED,IAAI,CAAC;gBACH,eAAe,GAAG,IAAI,CAAC;gBACvB,IAAI,QAAgB,CAAC;gBACrB,QAAQ,MAAM,EAAE,CAAC;oBACf,KAAK,SAAS;wBACZ,QAAQ,GAAG,MAAM,OAAO,CAAC,wBAAwB,CAAC,gBAAgB,EAAE,OAAO,CAAC,CAAC;wBAC7E,MAAM;oBACR,KAAK,QAAQ;wBACX,QAAQ,GAAG,MAAM,OAAO,CAAC,uBAAuB,CAAC,eAAe,EAAE,OAAO,CAAC,CAAC;wBAC3E,MAAM;oBACR;wBACE,cAAc;wBACd,QAAQ,GAAG,MAAM,iBAAiB,CAAC,aAAa,EAAE,OAAO,CAAC,CAAC;wBAC3D,MAAM;gBACV,CAAC;gBACD,OAAO,EAAC,IAAI,EAAE,EAAC,QAAQ,EAAC,EAAC,CAAC;YAC5B,CAAC;oBAAS,CAAC;gBACT,eAAe,GAAG,KAAK,CAAC;YAC1B,CAAC;QACH,CAAC;QAED,KAAK,CAAC,YAAY,CAAC,EAAC,MAAM,GAAG,SAAS,EAAE,QAAQ,GAAG,gBAAgB,EAAE,OAAO,GAAG,GAAG,EAAC;YACjF,IAAI,cAAc,EAAE,CAAC;gBACnB,MAAM,KAAK,CAAC,iCAAiC,CAAC,CAAC;YACjD,CAAC;YACD,cAAc,GAAG,IAAI,CAAC;YAEtB,IAAI,CAAC;gBACH,IAAI,QAAgB,CAAC;gBACrB,IAAI,OAAe,CAAC;gBACpB,QAAQ,MAAM,EAAE,CAAC;oBACf,KAAK,SAAS;wBACZ,QAAQ,GAAG,MAAM,OAAO,CAAC,yBAAyB,CAAC,QAAQ,EAAE,OAAO,CAAC,CAAC;wBACtE,MAAM;oBACR,KAAK,QAAQ;wBACX,QAAQ,GAAG,MAAM,OAAO,CAAC,kBAAkB,CAAC,QAAQ,EAAE,OAAO,CAAC,CAAC;wBAC/D,MAAM;oBACR;wBACE,cAAc;wBACd,OAAO,GAAG,MAAM,aAAa,CAAC,QAAQ,CAAC,CAAC;wBACxC,QAAQ,GAAG,IAAI,CAAC,IAAI,CAAC,OAAO,EAAE,eAAe,IAAI,IAAI,EAAE,CAAC,WAAW,EAAE,aAAa,CAAC,CAAC;wBACpF,EAAE,CAAC,aAAa,CAAC,QAAQ,EAAE,OAAO,CAAC,CAAC;wBACpC,MAAM;gBACV,CAAC;gBACD,OAAO,EAAC,IAAI,EAAE,EAAC,QAAQ,EAAC,EAAC,CAAC;YAC5B,CAAC;oBAAS,CAAC;gBACT,cAAc,GAAG,KAAK,CAAC;YACzB,CAAC;QACH,CAAC;QAED,KAAK,CAAC,wCAAwC;YAC5C,MAAM,KAAK,GAAG,KAAK,CAAC,YAAY,EAAE,CAAC;YACnC,OAAO,EAAC,IAAI,EAAE,wCAAwC,CAAC,MAAM,EAAE,KAAK,CAAC,EAAC,CAAC;QACzE,CAAC;QAED,KAAK,CAAC,uBAAuB;YAC3B,OAAO,EAAC,IAAI,EAAE,IAAI,CAAC,uBAAuB,EAAE,EAAC,CAAC;QAChD,CAAC;QAED,KAAK,CAAC,mBAAmB,CAAC,EAAC,UAAU,EAAC;YACpC,OAAO;gBACL,IAAI,EAAE,MAAM,OAAO,CAAC,eAAe,CAAC,UAAwB,CAAC;aAC9D,CAAC;QACJ,CAAC;QAED,KAAK,CAAC,kBAAkB;YACtB,OAAO;gBACL,IAAI,EAAG,KAAK,CAAC,KAAgC,CAAC,QAAQ,CAAC,QAAQ,EAAE,CAAC,GAAG,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,CAAC;oBAC/E,GAAG,EAAE,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,GAAG;oBACrB,IAAI,EAAE,kBAAkB,CAAC,MAAM,EAAE,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;oBAC9C,WAAW,EAAE,IAAI,CAAC,WAAW;iBAC9B,CAAC,CAAC;aACJ,CAAC;QACJ,CAAC;QAED,KAAK,CAAC,2BAA2B;YAC/B,OAAO;gBACL,IAAI,EAAG,KAAqB,CAAC,gBAAgB,CAAC,CAAC,QAAQ,CAAC,QAAQ,EAAE,CAAC,GAAG,CAAC,CAAC,IAAI,EAAE,EAAE;oBAC9E,MAAM,CAAC,WAAW,EAAE,IAAI,CAAC,GAAG,IAAI,CAAC,IAAI,CAAC;oBACtC,OAAO;wBACL,UAAU,EAAE,WAAW,CAAC,GAAG,CAAC,CAAC,UAAU,EAAE,EAAE,CAAC,UAAU,CAAC,KAAK,CAAC,OAAO,CAAC,IAAI,CAAC;wBAC1E,OAAO,EAAE,IAAI;wBACb,WAAW,EAAE,IAAI,CAAC,WAAW;qBAC9B,CAAC;gBACJ,CAAC,CAAC;aACH,CAAC;QACJ,CAAC;QAED,KAAK,CAAC,kBAAkB;YACtB,OAAO,EAAC,IAAI,EAAE,KAAK,CAAC,KAAK,CAAC,gBAAgB,EAAE,EAAC,CAAC;QAChD,CAAC;QAED,KAAK,CAAC,uBAAuB;YAC3B,OAAO;gBACL,IAAI,EAAE,MAAM,CAAC,OAAO,CAAC,MAAM,OAAO,CAAC,wBAAwB,EAAE,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,MAAM,EAAE,KAAK,CAAC,EAAE,EAAE,CAAC,CAAC,EAAC,MAAM,EAAE,GAAG,KAAK,EAAC,CAAC,CAAC;aAC9G,CAAC;QACJ,CAAC;QAED,KAAK,CAAC,yBAAyB;YAC7B,OAAO,EAAC,IAAI,EAAE,MAAM,OAAO,CAAC,kBAAkB,EAAE,EAAC,CAAC;QACpD,CAAC;QAED,KAAK,CAAC,KAAK;YACT,IAAI,CAAC,MAAM,CAAC,EAAE;gBAAE,MAAM,KAAK,CAAC,wEAAwE,CAAC,CAAC;YACtG,MAAM,CAAC,EAAE,EAAE,CAAC;QACd,CAAC;QAED,KAAK,CAAC,cAAc;YAClB,KAAK,CAAC,KAAK,CAAC,SAAS,EAAE,CAAC;QAC1B,CAAC;QAED,KAAK,CAAC,WAAW,CAAC,EAAC,MAAM,EAAE,UAAU,EAAC;YACpC,MAAM,OAAO,CAAC,aAAa,CAAC,MAAM,EAAE,UAAU,CAAC,CAAC;QAClD,CAAC;QAED,KAAK,CAAC,cAAc,CAAC,EAAC,MAAM,EAAC;YAC3B,MAAM,OAAO,CAAC,cAAc,CAAC,MAAM,CAAC,CAAC;QACvC,CAAC;QAED,KAAK,CAAC,QAAQ,CAAC,EAAC,KAAK,EAAE,SAAS,EAAC;YAC/B,MAAM,KAAK,GAAG,CAAC,MAAM,OAAO,CAAC,SAAS,EAAE,CAAC,CAAC,MAAM,CAC9C,CAAC,QAAQ,EAAE,EAAE,CACX,CAAC,CAAC,KAAK,IAAI,KAAK,CAAC,MAAM,KAAK,CAAC,IAAI,KAAK,CAAC,QAAQ,CAAC,QAAQ,CAAC,KAAK,CAAC,CAAC;gBAChE,CAAC,CAAC,SAAS,IAAI,SAAS,CAAC,MAAM,KAAK,CAAC,IAAI,CAAC,QAAQ,CAAC,SAAS,IAAI,SAAS,CAAC,QAAQ,CAAC,QAAQ,CAAC,SAAS,CAAC,CAAC,CAAC,CAC3G,CAAC;YAEF,OAAO;gBACL,IAAI,EAAE,KAAK;gBACX,IAAI,EAAE,EAAC,KAAK,EAAE,KAAK,CAAC,MAAM,EAAC;aAC5B,CAAC;QACJ,CAAC;QAED,KAAK,CAAC,kBAAkB;YACtB,OAAO;gBACL,IAAI,EAAE,MAAM,OAAO,CAAC,mBAAmB,EAAE;aAC1C,CAAC;QACJ,CAAC;QAED,KAAK,CAAC,gBAAgB,CAAC,EAAC,MAAM,EAAC;YAC7B,KAAK,MAAM,IAAI,IAAI,MAAM,CAAC,MAAM,CAAC,EAAE,CAAiC,EAAE,CAAC;gBACrE,IAAI,IAAI,YAAY,UAAU,EAAE,CAAC;oBAC/B,IAAI,MAAM,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC,KAAK,MAAM,IAAI,IAAI,CAAC,UAAU,CAAC,KAAK,MAAM,EAAE,CAAC;wBACrE,OAAO,EAAC,IAAI,EAAE,aAAa,CAAC,MAAM,IAAI,CAAC,IAAI,EAAE,CAAC,EAAC,CAAC;oBAClD,CAAC;gBACH,CAAC;YACH,CAAC;YAED,MAAM,KAAK,CAAC,mBAAmB,MAAM,GAAG,CAAC,CAAC;QAC5C,CAAC;QAED,KAAK,CAAC,gBAAgB;YACpB,OAAO,EAAC,IAAI,EAAE,MAAM,EAAE,CAAC,YAAY,CAAC,oBAAoB,EAAE,EAAC,CAAC;QAC9D,CAAC;KACF,CAAC;AACJ,CAAC;AAED,SAAS,kBAAkB,CAAC,MAAuB,EAAE,YAA0B;IAC7E,QAAQ,YAAY,CAAC,GAAG,EAAE,CAAC;QACzB,KAAK,mBAAmB;YACtB,OAAO;gBACL,IAAI,EAAE,YAAY,CAAC,IAAI,CAAC,CAAC,CAAC;gBAC1B,IAAI,EAAE,YAAY,CAAC,IAAI,CAAC,CAAC,CAAC;aAC3B,CAAC;QAEJ,KAAK,oBAAoB;YACvB,OAAO,GAAG,CAAC,MAAM,CAAC,UAAU,CAAC,MAAM,CAAC,YAAY,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC;QAE5D,KAAK,aAAa,CAAC,CAAC,CAAC;YACnB,MAAM,IAAI,GAAG,YAAY,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC;YACvC,OAAO;gBACL,IAAI,EAAE,SAAS,CAAC,MAAM,CAAC,YAAY,CAAC,IAAI,CAAC,CAAC,WAAW,CAAC,YAAY,CAAC,YAAY,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC;gBACzF,IAAI;aACL,CAAC;QACJ,CAAC;QAED,KAAK,UAAU;YACb,OAAO;gBACL,IAAI,EAAE,YAAY,CAAC,IAAI,CAAC,CAAC,CAAC;aAC3B,CAAC;IACN,CAAC;AACH,CAAC;AAED,SAAS,aAAa,CAAC,IAAsC;IAC3D,OAAO,IAAI,CAAC,GAAG,CAAC,CAAC,GAAG,EAAE,EAAE;QACtB,IAAI,GAAG,YAAY,UAAU,EAAE,CAAC;YAC9B,OAAO,KAAK,CAAC,GAAG,CAAC,CAAC;QACpB,CAAC;aAAM,CAAC;YACN,OAAO,GAAG,GAAG,EAAE,CAAC;QAClB,CAAC;IACH,CAAC,CAAC,CAAC;AACL,CAAC"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../src/api/impl/lodestar/index.ts"],"names":[],"mappings":"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"}
@@ -1,6 +1,6 @@
1
1
  import { routes } from "@lodestar/api";
2
2
  import { ApplicationMethods } from "@lodestar/api/server";
3
- import { ApiModules } from "../types.js";
4
3
  import { ApiOptions } from "../../options.js";
4
+ import { ApiModules } from "../types.js";
5
5
  export declare function getNodeApi(opts: ApiOptions, { network, sync }: Pick<ApiModules, "network" | "sync">): ApplicationMethods<routes.node.Endpoints>;
6
6
  //# sourceMappingURL=index.d.ts.map
@@ -56,10 +56,8 @@ export function getNodeApi(opts, { network, sync }) {
56
56
  // 206: Node is syncing but can serve incomplete data
57
57
  return { status: syncingStatus ?? routes.node.NodeHealth.SYNCING };
58
58
  }
59
- else {
60
- // 200: Node is ready
61
- return { status: routes.node.NodeHealth.READY };
62
- }
59
+ // 200: Node is ready
60
+ return { status: routes.node.NodeHealth.READY };
63
61
  // else {
64
62
  // 503: Node not initialized or having issues
65
63
  // NOTE: Lodestar does not start its API until fully initialized, so this status can never be served
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../src/api/impl/node/index.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../src/api/impl/node/index.ts"],"names":[],"mappings":"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"}
@@ -1,6 +1,6 @@
1
1
  import { routes } from "@lodestar/api";
2
2
  import { ApplicationMethods } from "@lodestar/api/server";
3
- import { ApiModules } from "../types.js";
4
3
  import { ApiOptions } from "../../options.js";
4
+ import { ApiModules } from "../types.js";
5
5
  export declare function getProofApi(opts: ApiOptions, { chain, config }: Pick<ApiModules, "chain" | "config" | "db">): ApplicationMethods<routes.proof.Endpoints>;
6
6
  //# sourceMappingURL=index.d.ts.map
@@ -1,6 +1,6 @@
1
- import { createProof, ProofType } from "@chainsafe/persistent-merkle-tree";
2
- import { getStateResponse } from "../beacon/state/utils.js";
1
+ import { ProofType, createProof } from "@chainsafe/persistent-merkle-tree";
3
2
  import { getBlockResponse } from "../beacon/blocks/utils.js";
3
+ import { getStateResponse } from "../beacon/state/utils.js";
4
4
  export function getProofApi(opts, { chain, config }) {
5
5
  // It's currently possible to request gigantic proofs (eg: a proof of the entire beacon state)
6
6
  // We want some some sort of resistance against this DoS vector.
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../src/api/impl/proof/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAoB,WAAW,EAAE,SAAS,EAAC,MAAM,mCAAmC,CAAC;AAI5F,OAAO,EAAC,gBAAgB,EAAC,MAAM,0BAA0B,CAAC;AAC1D,OAAO,EAAC,gBAAgB,EAAC,MAAM,2BAA2B,CAAC;AAG3D,MAAM,UAAU,WAAW,CACzB,IAAgB,EAChB,EAAC,KAAK,EAAE,MAAM,EAA8C;IAE5D,8FAA8F;IAC9F,gEAAgE;IAChE,MAAM,kBAAkB,GAAG,IAAI,CAAC,kBAAkB,IAAI,GAAG,CAAC;IAE1D,OAAO;QACL,KAAK,CAAC,aAAa,CAAC,EAAC,OAAO,EAAE,UAAU,EAAC;YACvC,kEAAkE;YAClE,IAAI,UAAU,CAAC,MAAM,GAAG,CAAC,GAAG,kBAAkB,EAAE,CAAC;gBAC/C,MAAM,IAAI,KAAK,CAAC,+BAA+B,CAAC,CAAC;YACnD,CAAC;YAED,MAAM,EAAC,KAAK,EAAC,GAAG,MAAM,gBAAgB,CAAC,KAAK,EAAE,OAAO,CAAC,CAAC;YAEvD,4GAA4G;YAC5G,KAAK,CAAC,MAAM,EAAE,CAAC;YACf,MAAM,SAAS,GAAG,KAAK,CAAC,IAAI,CAAC;YAE7B,MAAM,KAAK,GAAG,WAAW,CAAC,SAAS,EAAE,EAAC,IAAI,EAAE,SAAS,CAAC,YAAY,EAAE,UAAU,EAAC,CAAC,CAAC;YAEjF,OAAO;gBACL,IAAI,EAAE,KAA0B;gBAChC,IAAI,EAAE,EAAC,OAAO,EAAE,MAAM,CAAC,WAAW,CAAC,KAAK,CAAC,IAAI,CAAC,EAAC;aAChD,CAAC;QACJ,CAAC;QACD,KAAK,CAAC,aAAa,CAAC,EAAC,OAAO,EAAE,UAAU,EAAC;YACvC,kEAAkE;YAClE,IAAI,UAAU,CAAC,MAAM,GAAG,CAAC,GAAG,kBAAkB,EAAE,CAAC;gBAC/C,MAAM,IAAI,KAAK,CAAC,+BAA+B,CAAC,CAAC;YACnD,CAAC;YAED,MAAM,EAAC,KAAK,EAAC,GAAG,MAAM,gBAAgB,CAAC,KAAK,EAAE,OAAO,CAAC,CAAC;YAEvD,4GAA4G;YAC5G,MAAM,SAAS,GAAG,MAAM,CAAC,YAAY,CAAC,KAAK,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC,WAAW,CAAC,MAAM,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,IAAI,CAAC;YAEjG,MAAM,KAAK,GAAG,WAAW,CAAC,SAAS,EAAE,EAAC,IAAI,EAAE,SAAS,CAAC,YAAY,EAAE,UAAU,EAAC,CAAC,CAAC;YAEjF,OAAO;gBACL,IAAI,EAAE,KAA0B;gBAChC,IAAI,EAAE,EAAC,OAAO,EAAE,MAAM,CAAC,WAAW,CAAC,KAAK,CAAC,OAAO,CAAC,IAAI,CAAC,EAAC;aACxD,CAAC;QACJ,CAAC;KACF,CAAC;AACJ,CAAC"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../src/api/impl/proof/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAoB,SAAS,EAAE,WAAW,EAAC,MAAM,mCAAmC,CAAC;AAI5F,OAAO,EAAC,gBAAgB,EAAC,MAAM,2BAA2B,CAAC;AAC3D,OAAO,EAAC,gBAAgB,EAAC,MAAM,0BAA0B,CAAC;AAG1D,MAAM,UAAU,WAAW,CACzB,IAAgB,EAChB,EAAC,KAAK,EAAE,MAAM,EAA8C;IAE5D,8FAA8F;IAC9F,gEAAgE;IAChE,MAAM,kBAAkB,GAAG,IAAI,CAAC,kBAAkB,IAAI,GAAG,CAAC;IAE1D,OAAO;QACL,KAAK,CAAC,aAAa,CAAC,EAAC,OAAO,EAAE,UAAU,EAAC;YACvC,kEAAkE;YAClE,IAAI,UAAU,CAAC,MAAM,GAAG,CAAC,GAAG,kBAAkB,EAAE,CAAC;gBAC/C,MAAM,IAAI,KAAK,CAAC,+BAA+B,CAAC,CAAC;YACnD,CAAC;YAED,MAAM,EAAC,KAAK,EAAC,GAAG,MAAM,gBAAgB,CAAC,KAAK,EAAE,OAAO,CAAC,CAAC;YAEvD,4GAA4G;YAC5G,KAAK,CAAC,MAAM,EAAE,CAAC;YACf,MAAM,SAAS,GAAG,KAAK,CAAC,IAAI,CAAC;YAE7B,MAAM,KAAK,GAAG,WAAW,CAAC,SAAS,EAAE,EAAC,IAAI,EAAE,SAAS,CAAC,YAAY,EAAE,UAAU,EAAC,CAAC,CAAC;YAEjF,OAAO;gBACL,IAAI,EAAE,KAA0B;gBAChC,IAAI,EAAE,EAAC,OAAO,EAAE,MAAM,CAAC,WAAW,CAAC,KAAK,CAAC,IAAI,CAAC,EAAC;aAChD,CAAC;QACJ,CAAC;QACD,KAAK,CAAC,aAAa,CAAC,EAAC,OAAO,EAAE,UAAU,EAAC;YACvC,kEAAkE;YAClE,IAAI,UAAU,CAAC,MAAM,GAAG,CAAC,GAAG,kBAAkB,EAAE,CAAC;gBAC/C,MAAM,IAAI,KAAK,CAAC,+BAA+B,CAAC,CAAC;YACnD,CAAC;YAED,MAAM,EAAC,KAAK,EAAC,GAAG,MAAM,gBAAgB,CAAC,KAAK,EAAE,OAAO,CAAC,CAAC;YAEvD,4GAA4G;YAC5G,MAAM,SAAS,GAAG,MAAM,CAAC,YAAY,CAAC,KAAK,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC,WAAW,CAAC,MAAM,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,IAAI,CAAC;YAEjG,MAAM,KAAK,GAAG,WAAW,CAAC,SAAS,EAAE,EAAC,IAAI,EAAE,SAAS,CAAC,YAAY,EAAE,UAAU,EAAC,CAAC,CAAC;YAEjF,OAAO;gBACL,IAAI,EAAE,KAA0B;gBAChC,IAAI,EAAE,EAAC,OAAO,EAAE,MAAM,CAAC,WAAW,CAAC,KAAK,CAAC,OAAO,CAAC,IAAI,CAAC,EAAC;aACxD,CAAC;QACJ,CAAC;KACF,CAAC;AACJ,CAAC"}
@@ -2,9 +2,9 @@ import { ChainForkConfig } from "@lodestar/config";
2
2
  import { Logger } from "@lodestar/utils";
3
3
  import { IBeaconChain } from "../../chain/index.js";
4
4
  import { IBeaconDb } from "../../db/index.js";
5
- import { IBeaconSync } from "../../sync/index.js";
6
- import { INetwork } from "../../network/index.js";
7
5
  import { Metrics } from "../../metrics/index.js";
6
+ import { INetwork } from "../../network/index.js";
7
+ import { IBeaconSync } from "../../sync/index.js";
8
8
  export type ApiModules = {
9
9
  config: ChainForkConfig;
10
10
  chain: IBeaconChain;
@@ -1,7 +1,8 @@
1
1
  import { routes } from "@lodestar/api";
2
2
  import { ApplicationMethods } from "@lodestar/api/server";
3
- import { ApiModules } from "../types.js";
3
+ import { ProducedBlockSource } from "@lodestar/types";
4
4
  import { ApiOptions } from "../../options.js";
5
+ import { ApiModules } from "../types.js";
5
6
  /**
6
7
  * If the node is within this many epochs from the head, we declare it to be synced regardless of
7
8
  * the network sync state.
@@ -16,6 +17,36 @@ import { ApiOptions } from "../../options.js";
16
17
  * caches are better.
17
18
  */
18
19
  export declare const SYNC_TOLERANCE_EPOCHS = 1;
20
+ /**
21
+ * Engine block selection reasons tracked in metrics
22
+ */
23
+ export declare enum EngineBlockSelectionReason {
24
+ BuilderDisabled = "builder_disabled",
25
+ BuilderError = "builder_error",
26
+ BuilderTimeout = "builder_timeout",
27
+ BuilderPending = "builder_pending",
28
+ BuilderNoBid = "builder_no_bid",
29
+ BuilderCensorship = "builder_censorship",
30
+ BlockValue = "block_value",
31
+ EnginePreferred = "engine_preferred"
32
+ }
33
+ /**
34
+ * Builder block selection reasons tracked in metrics
35
+ */
36
+ export declare enum BuilderBlockSelectionReason {
37
+ EngineDisabled = "engine_disabled",
38
+ EngineError = "engine_error",
39
+ EnginePending = "engine_pending",
40
+ BlockValue = "block_value",
41
+ BuilderPreferred = "builder_preferred"
42
+ }
43
+ export type BlockSelectionResult = {
44
+ source: ProducedBlockSource.engine;
45
+ reason: EngineBlockSelectionReason;
46
+ } | {
47
+ source: ProducedBlockSource.builder;
48
+ reason: BuilderBlockSelectionReason;
49
+ };
19
50
  /**
20
51
  * Server implementation for handling validator duties.
21
52
  * See `@lodestar/validator/src/api` for the client implementation).
@@ -1,23 +1,26 @@
1
+ import { PubkeyIndexMap } from "@chainsafe/pubkey-index-map";
1
2
  import { routes } from "@lodestar/api";
2
- import { computeStartSlotAtEpoch, calculateCommitteeAssignments, proposerShufflingDecisionRoot, attesterShufflingDecisionRoot, getBlockRootAtSlot, computeEpochAtSlot, getCurrentSlot, beaconBlockToBlinded, } from "@lodestar/state-transition";
3
- import { GENESIS_SLOT, SLOTS_PER_EPOCH, SLOTS_PER_HISTORICAL_ROOT, SYNC_COMMITTEE_SUBNET_SIZE, isForkBlobs, isForkExecution, ForkSeq, isForkPostElectra, } from "@lodestar/params";
3
+ import { DataAvailabilityStatus, ExecutionStatus } from "@lodestar/fork-choice";
4
+ import { ForkSeq, GENESIS_SLOT, SLOTS_PER_EPOCH, SLOTS_PER_HISTORICAL_ROOT, SYNC_COMMITTEE_SUBNET_SIZE, isForkBlobs, isForkExecution, isForkPostElectra, } from "@lodestar/params";
5
+ import { attesterShufflingDecisionRoot, beaconBlockToBlinded, calculateCommitteeAssignments, computeEpochAtSlot, computeStartSlotAtEpoch, createCachedBeaconState, getBlockRootAtSlot, getCurrentSlot, loadState, proposerShufflingDecisionRoot, } from "@lodestar/state-transition";
6
+ import { ProducedBlockSource, getValidatorStatus, isBlindedBeaconBlock, isBlockContents, ssz, } from "@lodestar/types";
7
+ import { TimeoutError, formatWeiToEth, fromHex, prettyWeiToEth, resolveOrRacePromises, toHex, toRootHex, } from "@lodestar/utils";
4
8
  import { MAX_BUILDER_BOOST_FACTOR } from "@lodestar/validator";
5
- import { ssz, ProducedBlockSource, isBlindedBeaconBlock, isBlockContents, getValidatorStatus, } from "@lodestar/types";
6
- import { ExecutionStatus, DataAvailabilityStatus } from "@lodestar/fork-choice";
7
- import { fromHex, toHex, resolveOrRacePromises, prettyWeiToEth, toRootHex } from "@lodestar/utils";
8
9
  import { AttestationError, AttestationErrorCode, GossipAction, SyncCommitteeError, SyncCommitteeErrorCode, } from "../../../chain/errors/index.js";
10
+ import { ChainEvent } from "../../../chain/index.js";
11
+ import { SCHEDULER_LOOKAHEAD_FACTOR } from "../../../chain/prepareNextSlot.js";
12
+ import { RegenCaller } from "../../../chain/regen/index.js";
9
13
  import { validateApiAggregateAndProof } from "../../../chain/validation/index.js";
14
+ import { validateSyncCommitteeGossipContributionAndProof } from "../../../chain/validation/syncCommitteeContributionAndProof.js";
10
15
  import { ZERO_HASH } from "../../../constants/index.js";
16
+ import { NoBidReceived } from "../../../execution/builder/http.js";
17
+ import { validateGossipFnRetryUnknownRoot } from "../../../network/processor/gossipHandlers.js";
11
18
  import { SyncState } from "../../../sync/index.js";
12
19
  import { isOptimisticBlock } from "../../../util/forkChoice.js";
13
20
  import { getDefaultGraffiti, toGraffitiBuffer } from "../../../util/graffiti.js";
14
- import { ApiError, NodeIsSyncing, OnlySupportedByDVT } from "../errors.js";
15
- import { validateSyncCommitteeGossipContributionAndProof } from "../../../chain/validation/syncCommitteeContributionAndProof.js";
16
- import { RegenCaller } from "../../../chain/regen/index.js";
17
- import { validateGossipFnRetryUnknownRoot } from "../../../network/processor/gossipHandlers.js";
18
- import { SCHEDULER_LOOKAHEAD_FACTOR } from "../../../chain/prepareNextSlot.js";
19
- import { ChainEvent } from "../../../chain/index.js";
20
21
  import { getLodestarClientVersion } from "../../../util/metadata.js";
22
+ import { getStateResponseWithRegen } from "../beacon/state/utils.js";
23
+ import { ApiError, NodeIsSyncing, OnlySupportedByDVT } from "../errors.js";
21
24
  import { computeSubnetForCommitteesAtSlot, getPubkeysForIndices, selectBlockProductionSource } from "./utils.js";
22
25
  /**
23
26
  * If the node is within this many epochs from the head, we declare it to be synced regardless of
@@ -34,7 +37,7 @@ import { computeSubnetForCommitteesAtSlot, getPubkeysForIndices, selectBlockProd
34
37
  */
35
38
  export const SYNC_TOLERANCE_EPOCHS = 1;
36
39
  /**
37
- * Cutoff time to wait for execution and builder block production apis to resolve
40
+ * Cutoff time to wait from start of the slot for execution and builder block production apis to resolve
38
41
  * Post this time, race execution and builder to pick whatever resolves first
39
42
  *
40
43
  * Empirically the builder block resolves in ~1.5+ seconds, and execution should resolve <1 sec.
@@ -44,6 +47,31 @@ export const SYNC_TOLERANCE_EPOCHS = 1;
44
47
  const BLOCK_PRODUCTION_RACE_CUTOFF_MS = 2_000;
45
48
  /** Overall timeout for execution and block production apis */
46
49
  const BLOCK_PRODUCTION_RACE_TIMEOUT_MS = 12_000;
50
+ /**
51
+ * Engine block selection reasons tracked in metrics
52
+ */
53
+ export var EngineBlockSelectionReason;
54
+ (function (EngineBlockSelectionReason) {
55
+ EngineBlockSelectionReason["BuilderDisabled"] = "builder_disabled";
56
+ EngineBlockSelectionReason["BuilderError"] = "builder_error";
57
+ EngineBlockSelectionReason["BuilderTimeout"] = "builder_timeout";
58
+ EngineBlockSelectionReason["BuilderPending"] = "builder_pending";
59
+ EngineBlockSelectionReason["BuilderNoBid"] = "builder_no_bid";
60
+ EngineBlockSelectionReason["BuilderCensorship"] = "builder_censorship";
61
+ EngineBlockSelectionReason["BlockValue"] = "block_value";
62
+ EngineBlockSelectionReason["EnginePreferred"] = "engine_preferred";
63
+ })(EngineBlockSelectionReason || (EngineBlockSelectionReason = {}));
64
+ /**
65
+ * Builder block selection reasons tracked in metrics
66
+ */
67
+ export var BuilderBlockSelectionReason;
68
+ (function (BuilderBlockSelectionReason) {
69
+ BuilderBlockSelectionReason["EngineDisabled"] = "engine_disabled";
70
+ BuilderBlockSelectionReason["EngineError"] = "engine_error";
71
+ BuilderBlockSelectionReason["EnginePending"] = "engine_pending";
72
+ BuilderBlockSelectionReason["BlockValue"] = "block_value";
73
+ BuilderBlockSelectionReason["BuilderPreferred"] = "builder_preferred";
74
+ })(BuilderBlockSelectionReason || (BuilderBlockSelectionReason = {}));
47
75
  /**
48
76
  * Server implementation for handling validator duties.
49
77
  * See `@lodestar/validator/src/api` for the client implementation).
@@ -89,7 +117,7 @@ export function getValidatorApi(opts, { chain, config, logger, metrics, network,
89
117
  if (msToSlot > MAX_API_CLOCK_DISPARITY_MS) {
90
118
  throw Error(`Requested slot ${slot} is in the future`);
91
119
  }
92
- else if (msToSlot > 0) {
120
+ if (msToSlot > 0) {
93
121
  await chain.clock.waitForSlot(slot);
94
122
  }
95
123
  // else, clock already in slot or slot is in the past
@@ -128,20 +156,18 @@ export function getValidatorApi(opts, { chain, config, logger, metrics, network,
128
156
  blockTotalValue: prettyWeiToEth(totalValue),
129
157
  };
130
158
  }
131
- else if (source === ProducedBlockSource.builder) {
159
+ if (source === ProducedBlockSource.builder) {
132
160
  return {
133
161
  builderExecutionPayloadValue: prettyWeiToEth(executionValue),
134
162
  builderConsensusBlockValue: prettyWeiToEth(consensusValue),
135
163
  builderBlockTotalValue: prettyWeiToEth(totalValue),
136
164
  };
137
165
  }
138
- else {
139
- return {
140
- engineExecutionPayloadValue: prettyWeiToEth(executionValue),
141
- engineConsensusBlockValue: prettyWeiToEth(consensusValue),
142
- engineBlockTotalValue: prettyWeiToEth(totalValue),
143
- };
144
- }
166
+ return {
167
+ engineExecutionPayloadValue: prettyWeiToEth(executionValue),
168
+ engineConsensusBlockValue: prettyWeiToEth(consensusValue),
169
+ engineBlockTotalValue: prettyWeiToEth(totalValue),
170
+ };
145
171
  }
146
172
  /**
147
173
  * This function is called 1s before next epoch, usually at that time PrepareNextSlotScheduler finishes
@@ -203,9 +229,7 @@ export function getValidatorApi(opts, { chain, config, logger, metrics, network,
203
229
  if (currentSlot - headSlot > SYNC_TOLERANCE_EPOCHS * SLOTS_PER_EPOCH) {
204
230
  throw new NodeIsSyncing(`headSlot ${headSlot} currentSlot ${currentSlot}`);
205
231
  }
206
- else {
207
- return;
208
- }
232
+ return;
209
233
  }
210
234
  case SyncState.Synced:
211
235
  return;
@@ -286,6 +310,7 @@ export function getValidatorApi(opts, { chain, config, logger, metrics, network,
286
310
  });
287
311
  metrics?.blockProductionSuccess.inc({ source });
288
312
  metrics?.blockProductionNumAggregated.observe({ source }, block.body.attestations.length);
313
+ metrics?.blockProductionExecutionPayloadValue.observe({ source }, Number(formatWeiToEth(executionPayloadValue)));
289
314
  logger.verbose("Produced blinded block", {
290
315
  slot,
291
316
  executionPayloadValue,
@@ -335,6 +360,7 @@ export function getValidatorApi(opts, { chain, config, logger, metrics, network,
335
360
  }
336
361
  metrics?.blockProductionSuccess.inc({ source });
337
362
  metrics?.blockProductionNumAggregated.observe({ source }, block.body.attestations.length);
363
+ metrics?.blockProductionExecutionPayloadValue.observe({ source }, Number(formatWeiToEth(executionPayloadValue)));
338
364
  logger.verbose("Produced execution block", {
339
365
  slot,
340
366
  executionPayloadValue,
@@ -358,9 +384,7 @@ export function getValidatorApi(opts, { chain, config, logger, metrics, network,
358
384
  shouldOverrideBuilder,
359
385
  };
360
386
  }
361
- else {
362
- return { data: block, version, executionPayloadValue, consensusBlockValue, shouldOverrideBuilder };
363
- }
387
+ return { data: block, version, executionPayloadValue, consensusBlockValue, shouldOverrideBuilder };
364
388
  }
365
389
  finally {
366
390
  if (timer)
@@ -416,9 +440,11 @@ export function getValidatorApi(opts, { chain, config, logger, metrics, network,
416
440
  graffiti: toGraffitiBuffer(graffiti ?? getDefaultGraffiti(getLodestarClientVersion(opts), chain.executionEngine.clientVersion, opts)),
417
441
  });
418
442
  logger.debug("Produced common block body", loggerContext);
443
+ // Calculate cutoff time based on start of the slot
444
+ const cutoffMs = Math.max(0, BLOCK_PRODUCTION_RACE_CUTOFF_MS - Math.round(chain.clock.secFromSlot(slot) * 1000));
419
445
  logger.verbose("Block production race (builder vs execution) starting", {
420
446
  ...loggerContext,
421
- cutoffMs: BLOCK_PRODUCTION_RACE_CUTOFF_MS,
447
+ cutoffMs,
422
448
  timeoutMs: BLOCK_PRODUCTION_RACE_TIMEOUT_MS,
423
449
  });
424
450
  // use abort controller to stop waiting for both block sources
@@ -457,7 +483,7 @@ export function getValidatorApi(opts, { chain, config, logger, metrics, network,
457
483
  })
458
484
  : Promise.reject(new Error("Engine disabled"));
459
485
  const [builder, engine] = await resolveOrRacePromises([builderPromise, enginePromise], {
460
- resolveTimeoutMs: BLOCK_PRODUCTION_RACE_CUTOFF_MS,
486
+ resolveTimeoutMs: cutoffMs,
461
487
  raceTimeoutMs: BLOCK_PRODUCTION_RACE_TIMEOUT_MS,
462
488
  signal: controller.signal,
463
489
  });
@@ -471,10 +497,18 @@ export function getValidatorApi(opts, { chain, config, logger, metrics, network,
471
497
  }, engine.reason);
472
498
  }
473
499
  if (builder.status === "rejected" && isBuilderEnabled) {
474
- logger.warn("Builder failed to produce the block", {
475
- ...loggerContext,
476
- durationMs: builder.durationMs,
477
- }, builder.reason);
500
+ if (builder.reason instanceof NoBidReceived) {
501
+ logger.info("Builder did not provide a bid", {
502
+ ...loggerContext,
503
+ durationMs: builder.durationMs,
504
+ });
505
+ }
506
+ else {
507
+ logger.warn("Builder failed to produce the block", {
508
+ ...loggerContext,
509
+ durationMs: builder.durationMs,
510
+ }, builder.reason);
511
+ }
478
512
  }
479
513
  if (builder.status === "rejected" && engine.status === "rejected") {
480
514
  throw Error(`${isBuilderEnabled && isEngineEnabled ? "Builder and engine both" : isBuilderEnabled ? "Builder" : "Engine"} failed to produce the block`);
@@ -487,6 +521,10 @@ export function getValidatorApi(opts, { chain, config, logger, metrics, network,
487
521
  shouldOverrideBuilder: engine.value.shouldOverrideBuilder,
488
522
  ...getBlockValueLogInfo(engine.value),
489
523
  });
524
+ metrics?.blockProductionSelectionResults.inc({
525
+ source: ProducedBlockSource.engine,
526
+ reason: EngineBlockSelectionReason.BuilderCensorship,
527
+ });
490
528
  return { ...engine.value, executionPayloadBlinded: false, executionPayloadSource: ProducedBlockSource.engine };
491
529
  }
492
530
  if (builder.status === "fulfilled" && engine.status !== "fulfilled") {
@@ -495,6 +533,14 @@ export function getValidatorApi(opts, { chain, config, logger, metrics, network,
495
533
  durationMs: builder.durationMs,
496
534
  ...getBlockValueLogInfo(builder.value),
497
535
  });
536
+ metrics?.blockProductionSelectionResults.inc({
537
+ source: ProducedBlockSource.builder,
538
+ reason: isEngineEnabled === false
539
+ ? BuilderBlockSelectionReason.EngineDisabled
540
+ : engine.status === "pending"
541
+ ? BuilderBlockSelectionReason.EnginePending
542
+ : BuilderBlockSelectionReason.EngineError,
543
+ });
498
544
  return { ...builder.value, executionPayloadBlinded: true, executionPayloadSource: ProducedBlockSource.builder };
499
545
  }
500
546
  if (engine.status === "fulfilled" && builder.status !== "fulfilled") {
@@ -503,15 +549,29 @@ export function getValidatorApi(opts, { chain, config, logger, metrics, network,
503
549
  durationMs: engine.durationMs,
504
550
  ...getBlockValueLogInfo(engine.value),
505
551
  });
552
+ metrics?.blockProductionSelectionResults.inc({
553
+ source: ProducedBlockSource.engine,
554
+ reason: isBuilderEnabled === false
555
+ ? EngineBlockSelectionReason.BuilderDisabled
556
+ : builder.status === "pending"
557
+ ? EngineBlockSelectionReason.BuilderPending
558
+ : builder.reason instanceof NoBidReceived
559
+ ? EngineBlockSelectionReason.BuilderNoBid
560
+ : builder.reason instanceof TimeoutError
561
+ ? EngineBlockSelectionReason.BuilderTimeout
562
+ : EngineBlockSelectionReason.BuilderError,
563
+ });
506
564
  return { ...engine.value, executionPayloadBlinded: false, executionPayloadSource: ProducedBlockSource.engine };
507
565
  }
508
566
  if (engine.status === "fulfilled" && builder.status === "fulfilled") {
509
- const executionPayloadSource = selectBlockProductionSource({
567
+ const result = selectBlockProductionSource({
510
568
  builderBlockValue: builder.value.executionPayloadValue + builder.value.consensusBlockValue,
511
569
  engineBlockValue: engine.value.executionPayloadValue + engine.value.consensusBlockValue,
512
570
  builderBoostFactor,
513
571
  builderSelection,
514
572
  });
573
+ const executionPayloadSource = result.source;
574
+ metrics?.blockProductionSelectionResults.inc(result);
515
575
  logger.info(`Selected ${executionPayloadSource} block`, {
516
576
  ...loggerContext,
517
577
  engineDurationMs: engine.durationMs,
@@ -526,13 +586,11 @@ export function getValidatorApi(opts, { chain, config, logger, metrics, network,
526
586
  executionPayloadSource,
527
587
  };
528
588
  }
529
- else {
530
- return {
531
- ...builder.value,
532
- executionPayloadBlinded: true,
533
- executionPayloadSource,
534
- };
535
- }
589
+ return {
590
+ ...builder.value,
591
+ executionPayloadBlinded: true,
592
+ executionPayloadSource,
593
+ };
536
594
  }
537
595
  throw Error("Unreachable error occurred during the builder and execution block production");
538
596
  }
@@ -547,27 +605,21 @@ export function getValidatorApi(opts, { chain, config, logger, metrics, network,
547
605
  if (meta.executionPayloadBlinded) {
548
606
  return { data, meta };
549
607
  }
550
- else {
551
- if (isBlockContents(data)) {
552
- const { block } = data;
553
- const blindedBlock = beaconBlockToBlinded(config, block);
554
- return {
555
- data: blindedBlock,
556
- meta: { ...meta, executionPayloadBlinded: true },
557
- };
558
- }
559
- else {
560
- const blindedBlock = beaconBlockToBlinded(config, data);
561
- return {
562
- data: blindedBlock,
563
- meta: { ...meta, executionPayloadBlinded: true },
564
- };
565
- }
608
+ if (isBlockContents(data)) {
609
+ const { block } = data;
610
+ const blindedBlock = beaconBlockToBlinded(config, block);
611
+ return {
612
+ data: blindedBlock,
613
+ meta: { ...meta, executionPayloadBlinded: true },
614
+ };
566
615
  }
616
+ const blindedBlock = beaconBlockToBlinded(config, data);
617
+ return {
618
+ data: blindedBlock,
619
+ meta: { ...meta, executionPayloadBlinded: true },
620
+ };
567
621
  }
568
- else {
569
- return { data, meta };
570
- }
622
+ return { data, meta };
571
623
  },
572
624
  async produceBlindedBlock({ slot, randaoReveal, graffiti }) {
573
625
  const { data, version } = await produceEngineOrBuilderBlock(slot, randaoReveal, graffiti);
@@ -579,13 +631,11 @@ export function getValidatorApi(opts, { chain, config, logger, metrics, network,
579
631
  const blindedBlock = beaconBlockToBlinded(config, block);
580
632
  return { data: blindedBlock, meta: { version } };
581
633
  }
582
- else if (isBlindedBeaconBlock(data)) {
634
+ if (isBlindedBeaconBlock(data)) {
583
635
  return { data, meta: { version } };
584
636
  }
585
- else {
586
- const blindedBlock = beaconBlockToBlinded(config, data);
587
- return { data: blindedBlock, meta: { version } };
588
- }
637
+ const blindedBlock = beaconBlockToBlinded(config, data);
638
+ return { data: blindedBlock, meta: { version } };
589
639
  },
590
640
  async produceAttestationData({ committeeIndex, slot }) {
591
641
  notWhileSyncing();
@@ -661,14 +711,15 @@ export function getValidatorApi(opts, { chain, config, logger, metrics, network,
661
711
  },
662
712
  async getProposerDuties({ epoch }) {
663
713
  notWhileSyncing();
664
- // Early check that epoch is within [current_epoch, current_epoch + 1], or allow for pre-genesis
714
+ // Early check that epoch is no more than current_epoch + 1, or allow for pre-genesis
665
715
  const currentEpoch = currentEpochWithDisparity();
666
716
  const nextEpoch = currentEpoch + 1;
667
- if (currentEpoch >= 0 && epoch !== currentEpoch && epoch !== nextEpoch) {
668
- throw Error(`Requested epoch ${epoch} must equal current ${currentEpoch} or next epoch ${nextEpoch}`);
717
+ if (currentEpoch >= 0 && epoch > nextEpoch) {
718
+ throw new ApiError(400, `Requested epoch ${epoch} must not be more than one epoch in the future`);
669
719
  }
670
720
  const head = chain.forkChoice.getHead();
671
721
  let state = undefined;
722
+ const startSlot = computeStartSlotAtEpoch(epoch);
672
723
  const slotMs = config.SECONDS_PER_SLOT * 1000;
673
724
  const prepareNextSlotLookAheadMs = slotMs / SCHEDULER_LOOKAHEAD_FACTOR;
674
725
  const toNextEpochMs = msToNextEpoch();
@@ -686,28 +737,59 @@ export function getValidatorApi(opts, { chain, config, logger, metrics, network,
686
737
  }
687
738
  }
688
739
  if (!state) {
689
- state = await chain.getHeadStateAtCurrentEpoch(RegenCaller.getDuties);
740
+ if (epoch >= currentEpoch - 1) {
741
+ // Cached beacon state stores proposers for previous, current and next epoch. The
742
+ // requested epoch is within that range, we can use the head state at current epoch
743
+ state = await chain.getHeadStateAtCurrentEpoch(RegenCaller.getDuties);
744
+ }
745
+ else {
746
+ const res = await getStateResponseWithRegen(chain, startSlot);
747
+ const stateViewDU = res.state instanceof Uint8Array
748
+ ? loadState(config, chain.getHeadState(), res.state).state
749
+ : res.state.clone();
750
+ state = createCachedBeaconState(stateViewDU, {
751
+ config: chain.config,
752
+ // Not required to compute proposers
753
+ pubkey2index: new PubkeyIndexMap(),
754
+ index2pubkey: [],
755
+ }, { skipSyncPubkeys: true, skipSyncCommitteeCache: true });
756
+ if (state.epochCtx.epoch !== epoch) {
757
+ throw Error(`Loaded state epoch ${state.epochCtx.epoch} does not match requested epoch ${epoch}`);
758
+ }
759
+ }
690
760
  }
691
761
  const stateEpoch = state.epochCtx.epoch;
692
762
  let indexes = [];
693
- if (epoch === stateEpoch) {
694
- indexes = state.epochCtx.getBeaconProposers();
695
- }
696
- else if (epoch === stateEpoch + 1) {
697
- // Requesting duties for next epoch is allow since they can be predicted with high probabilities.
698
- // @see `epochCtx.getBeaconProposersNextEpoch` JSDocs for rationale.
699
- indexes = state.epochCtx.getBeaconProposersNextEpoch();
700
- }
701
- else {
702
- // Should never happen, epoch is checked to be in bounds above
703
- throw Error(`Proposer duties for epoch ${epoch} not supported, current epoch ${stateEpoch}`);
763
+ switch (epoch) {
764
+ case stateEpoch:
765
+ indexes = state.epochCtx.getBeaconProposers();
766
+ break;
767
+ case stateEpoch + 1:
768
+ // make sure shuffling is calculated and ready for next call to calculate nextProposers
769
+ await chain.shufflingCache.get(state.epochCtx.nextEpoch, state.epochCtx.nextDecisionRoot);
770
+ // Requesting duties for next epoch is allowed since they can be predicted with high probabilities.
771
+ // @see `epochCtx.getBeaconProposersNextEpoch` JSDocs for rationale.
772
+ indexes = state.epochCtx.getBeaconProposersNextEpoch();
773
+ break;
774
+ case stateEpoch - 1: {
775
+ const indexesPrevEpoch = state.epochCtx.getBeaconProposersPrevEpoch();
776
+ if (indexesPrevEpoch === null) {
777
+ // Should not happen as previous proposer duties should be initialized for head state
778
+ // and if we load state from `Uint8Array` it will always be the state of requested epoch
779
+ throw Error(`Proposer duties for previous epoch ${epoch} not yet initialized`);
780
+ }
781
+ indexes = indexesPrevEpoch;
782
+ break;
783
+ }
784
+ default:
785
+ // Should never happen, epoch is checked to be in bounds above
786
+ throw Error(`Proposer duties for epoch ${epoch} not supported, current epoch ${stateEpoch}`);
704
787
  }
705
788
  // NOTE: this is the fastest way of getting compressed pubkeys.
706
789
  // See benchmark -> packages/lodestar/test/perf/api/impl/validator/attester.test.ts
707
790
  // After dropping the flat caches attached to the CachedBeaconState it's no longer available.
708
791
  // TODO: Add a flag to just send 0x00 as pubkeys since the Lodestar validator does not need them.
709
792
  const pubkeys = getPubkeysForIndices(state.validators, indexes);
710
- const startSlot = computeStartSlotAtEpoch(epoch);
711
793
  const duties = [];
712
794
  for (let i = 0; i < SLOTS_PER_EPOCH; i++) {
713
795
  duties.push({ slot: startSlot + i, validatorIndex: indexes[i], pubkey: pubkeys[i] });
@@ -889,7 +971,7 @@ export function getValidatorApi(opts, { chain, config, logger, metrics, network,
889
971
  if (errors.length > 1) {
890
972
  throw Error("Multiple errors on publishAggregateAndProofs\n" + errors.map((e) => e.message).join("\n"));
891
973
  }
892
- else if (errors.length === 1) {
974
+ if (errors.length === 1) {
893
975
  throw errors[0];
894
976
  }
895
977
  },
@@ -931,7 +1013,7 @@ export function getValidatorApi(opts, { chain, config, logger, metrics, network,
931
1013
  if (errors.length > 1) {
932
1014
  throw Error("Multiple errors on publishContributionAndProofs\n" + errors.map((e) => e.message).join("\n"));
933
1015
  }
934
- else if (errors.length === 1) {
1016
+ if (errors.length === 1) {
935
1017
  throw errors[0];
936
1018
  }
937
1019
  },