@lodestar/beacon-node 1.47.0 → 1.48.0-dev.042c96183c

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 (328) hide show
  1. package/lib/api/impl/beacon/blocks/index.d.ts.map +1 -1
  2. package/lib/api/impl/beacon/blocks/index.js +8 -11
  3. package/lib/api/impl/beacon/blocks/index.js.map +1 -1
  4. package/lib/api/impl/beacon/state/utils.d.ts.map +1 -1
  5. package/lib/api/impl/beacon/state/utils.js +14 -0
  6. package/lib/api/impl/beacon/state/utils.js.map +1 -1
  7. package/lib/api/impl/config/index.d.ts.map +1 -1
  8. package/lib/api/impl/config/index.js +4 -1
  9. package/lib/api/impl/config/index.js.map +1 -1
  10. package/lib/api/impl/validator/index.d.ts.map +1 -1
  11. package/lib/api/impl/validator/index.js +44 -39
  12. package/lib/api/impl/validator/index.js.map +1 -1
  13. package/lib/chain/archiveStore/archiveStore.d.ts +1 -0
  14. package/lib/chain/archiveStore/archiveStore.d.ts.map +1 -1
  15. package/lib/chain/archiveStore/archiveStore.js +5 -1
  16. package/lib/chain/archiveStore/archiveStore.js.map +1 -1
  17. package/lib/chain/archiveStore/historicalState/historicalStateRegen.d.ts.map +1 -1
  18. package/lib/chain/archiveStore/historicalState/historicalStateRegen.js +1 -0
  19. package/lib/chain/archiveStore/historicalState/historicalStateRegen.js.map +1 -1
  20. package/lib/chain/archiveStore/historicalState/metrics.d.ts.map +1 -1
  21. package/lib/chain/archiveStore/historicalState/metrics.js +12 -1
  22. package/lib/chain/archiveStore/historicalState/metrics.js.map +1 -1
  23. package/lib/chain/archiveStore/historicalState/types.d.ts +2 -0
  24. package/lib/chain/archiveStore/historicalState/types.d.ts.map +1 -1
  25. package/lib/chain/archiveStore/historicalState/types.js.map +1 -1
  26. package/lib/chain/archiveStore/historicalState/worker.js +4 -1
  27. package/lib/chain/archiveStore/historicalState/worker.js.map +1 -1
  28. package/lib/chain/archiveStore/utils/archiveBlocks.d.ts +9 -1
  29. package/lib/chain/archiveStore/utils/archiveBlocks.d.ts.map +1 -1
  30. package/lib/chain/archiveStore/utils/archiveBlocks.js +68 -38
  31. package/lib/chain/archiveStore/utils/archiveBlocks.js.map +1 -1
  32. package/lib/chain/blocks/importBlock.d.ts +5 -1
  33. package/lib/chain/blocks/importBlock.d.ts.map +1 -1
  34. package/lib/chain/blocks/importBlock.js +12 -18
  35. package/lib/chain/blocks/importBlock.js.map +1 -1
  36. package/lib/chain/blocks/index.d.ts +8 -4
  37. package/lib/chain/blocks/index.d.ts.map +1 -1
  38. package/lib/chain/blocks/index.js +89 -23
  39. package/lib/chain/blocks/index.js.map +1 -1
  40. package/lib/chain/blocks/types.d.ts +8 -0
  41. package/lib/chain/blocks/types.d.ts.map +1 -1
  42. package/lib/chain/blocks/types.js.map +1 -1
  43. package/lib/chain/blocks/utils/chainSegment.d.ts +1 -1
  44. package/lib/chain/blocks/utils/chainSegment.d.ts.map +1 -1
  45. package/lib/chain/blocks/utils/chainSegment.js +26 -11
  46. package/lib/chain/blocks/utils/chainSegment.js.map +1 -1
  47. package/lib/chain/blocks/verifyBlock.d.ts.map +1 -1
  48. package/lib/chain/blocks/verifyBlock.js +5 -2
  49. package/lib/chain/blocks/verifyBlock.js.map +1 -1
  50. package/lib/chain/blocks/writeBlockInputToDb.d.ts.map +1 -1
  51. package/lib/chain/blocks/writeBlockInputToDb.js +9 -16
  52. package/lib/chain/blocks/writeBlockInputToDb.js.map +1 -1
  53. package/lib/chain/chain.d.ts +12 -6
  54. package/lib/chain/chain.d.ts.map +1 -1
  55. package/lib/chain/chain.js +131 -76
  56. package/lib/chain/chain.js.map +1 -1
  57. package/lib/chain/emitter.d.ts +1 -1
  58. package/lib/chain/emitter.js +1 -1
  59. package/lib/chain/errors/blockError.d.ts +19 -7
  60. package/lib/chain/errors/blockError.d.ts.map +1 -1
  61. package/lib/chain/errors/blockError.js +2 -2
  62. package/lib/chain/errors/blockError.js.map +1 -1
  63. package/lib/chain/errors/dataColumnSidecarError.d.ts +15 -2
  64. package/lib/chain/errors/dataColumnSidecarError.d.ts.map +1 -1
  65. package/lib/chain/errors/dataColumnSidecarError.js.map +1 -1
  66. package/lib/chain/errors/executionPayloadBid.d.ts +9 -0
  67. package/lib/chain/errors/executionPayloadBid.d.ts.map +1 -1
  68. package/lib/chain/errors/executionPayloadBid.js +2 -0
  69. package/lib/chain/errors/executionPayloadBid.js.map +1 -1
  70. package/lib/chain/errors/executionPayloadEnvelope.d.ts +10 -11
  71. package/lib/chain/errors/executionPayloadEnvelope.d.ts.map +1 -1
  72. package/lib/chain/errors/executionPayloadEnvelope.js +0 -2
  73. package/lib/chain/errors/executionPayloadEnvelope.js.map +1 -1
  74. package/lib/chain/errors/gossipValidation.d.ts +2 -1
  75. package/lib/chain/errors/gossipValidation.d.ts.map +1 -1
  76. package/lib/chain/errors/gossipValidation.js +1 -0
  77. package/lib/chain/errors/gossipValidation.js.map +1 -1
  78. package/lib/chain/forkChoice/index.d.ts.map +1 -1
  79. package/lib/chain/forkChoice/index.js +2 -0
  80. package/lib/chain/forkChoice/index.js.map +1 -1
  81. package/lib/chain/interface.d.ts +6 -6
  82. package/lib/chain/interface.d.ts.map +1 -1
  83. package/lib/chain/lightClient/index.d.ts +3 -3
  84. package/lib/chain/lightClient/index.d.ts.map +1 -1
  85. package/lib/chain/lightClient/index.js +21 -23
  86. package/lib/chain/lightClient/index.js.map +1 -1
  87. package/lib/chain/lightClient/proofs.d.ts +2 -1
  88. package/lib/chain/lightClient/proofs.d.ts.map +1 -1
  89. package/lib/chain/lightClient/proofs.js +5 -1
  90. package/lib/chain/lightClient/proofs.js.map +1 -1
  91. package/lib/chain/opPools/aggregatedAttestationPool.js +1 -1
  92. package/lib/chain/opPools/aggregatedAttestationPool.js.map +1 -1
  93. package/lib/chain/prepareNextSlot.d.ts +5 -0
  94. package/lib/chain/prepareNextSlot.d.ts.map +1 -1
  95. package/lib/chain/prepareNextSlot.js +40 -15
  96. package/lib/chain/prepareNextSlot.js.map +1 -1
  97. package/lib/chain/produceBlock/computeNewStateRoot.d.ts.map +1 -1
  98. package/lib/chain/produceBlock/computeNewStateRoot.js +3 -25
  99. package/lib/chain/produceBlock/computeNewStateRoot.js.map +1 -1
  100. package/lib/chain/produceBlock/produceBlockBody.d.ts +4 -2
  101. package/lib/chain/produceBlock/produceBlockBody.d.ts.map +1 -1
  102. package/lib/chain/produceBlock/produceBlockBody.js +57 -72
  103. package/lib/chain/produceBlock/produceBlockBody.js.map +1 -1
  104. package/lib/chain/regen/interface.d.ts +1 -0
  105. package/lib/chain/regen/interface.d.ts.map +1 -1
  106. package/lib/chain/regen/interface.js +1 -0
  107. package/lib/chain/regen/interface.js.map +1 -1
  108. package/lib/chain/validation/block.d.ts.map +1 -1
  109. package/lib/chain/validation/block.js +74 -63
  110. package/lib/chain/validation/block.js.map +1 -1
  111. package/lib/chain/validation/dataColumnSidecar.d.ts.map +1 -1
  112. package/lib/chain/validation/dataColumnSidecar.js +38 -13
  113. package/lib/chain/validation/dataColumnSidecar.js.map +1 -1
  114. package/lib/chain/validation/executionPayloadBid.d.ts +15 -3
  115. package/lib/chain/validation/executionPayloadBid.d.ts.map +1 -1
  116. package/lib/chain/validation/executionPayloadBid.js +199 -28
  117. package/lib/chain/validation/executionPayloadBid.js.map +1 -1
  118. package/lib/chain/validation/executionPayloadEnvelope.d.ts.map +1 -1
  119. package/lib/chain/validation/executionPayloadEnvelope.js +10 -29
  120. package/lib/chain/validation/executionPayloadEnvelope.js.map +1 -1
  121. package/lib/chain/validation/payloadAttestationMessage.d.ts.map +1 -1
  122. package/lib/chain/validation/payloadAttestationMessage.js +5 -6
  123. package/lib/chain/validation/payloadAttestationMessage.js.map +1 -1
  124. package/lib/chain/validatorMonitor.d.ts +7 -1
  125. package/lib/chain/validatorMonitor.d.ts.map +1 -1
  126. package/lib/chain/validatorMonitor.js +22 -5
  127. package/lib/chain/validatorMonitor.js.map +1 -1
  128. package/lib/db/beacon.d.ts +14 -5
  129. package/lib/db/beacon.d.ts.map +1 -1
  130. package/lib/db/beacon.js +17 -3
  131. package/lib/db/beacon.js.map +1 -1
  132. package/lib/db/dataColumnStore.d.ts +39 -0
  133. package/lib/db/dataColumnStore.d.ts.map +1 -0
  134. package/lib/db/dataColumnStore.js +81 -0
  135. package/lib/db/dataColumnStore.js.map +1 -0
  136. package/lib/db/flatFileStore/atomicWrite.d.ts +8 -0
  137. package/lib/db/flatFileStore/atomicWrite.d.ts.map +1 -0
  138. package/lib/db/flatFileStore/atomicWrite.js +61 -0
  139. package/lib/db/flatFileStore/atomicWrite.js.map +1 -0
  140. package/lib/db/flatFileStore/dcolFormat.d.ts +90 -0
  141. package/lib/db/flatFileStore/dcolFormat.d.ts.map +1 -0
  142. package/lib/db/flatFileStore/dcolFormat.js +286 -0
  143. package/lib/db/flatFileStore/dcolFormat.js.map +1 -0
  144. package/lib/db/flatFileStore/errors.d.ts +82 -0
  145. package/lib/db/flatFileStore/errors.d.ts.map +1 -0
  146. package/lib/db/flatFileStore/errors.js +32 -0
  147. package/lib/db/flatFileStore/errors.js.map +1 -0
  148. package/lib/db/flatFileStore/flatFileStore.d.ts +41 -0
  149. package/lib/db/flatFileStore/flatFileStore.d.ts.map +1 -0
  150. package/lib/db/flatFileStore/flatFileStore.js +251 -0
  151. package/lib/db/flatFileStore/flatFileStore.js.map +1 -0
  152. package/lib/db/flatFileStore/index.d.ts +4 -0
  153. package/lib/db/flatFileStore/index.d.ts.map +1 -0
  154. package/lib/db/flatFileStore/index.js +2 -0
  155. package/lib/db/flatFileStore/index.js.map +1 -0
  156. package/lib/db/flatFileStore/interface.d.ts +25 -0
  157. package/lib/db/flatFileStore/interface.d.ts.map +1 -0
  158. package/lib/db/flatFileStore/interface.js +2 -0
  159. package/lib/db/flatFileStore/interface.js.map +1 -0
  160. package/lib/db/flatFileStore/metrics.d.ts +24 -0
  161. package/lib/db/flatFileStore/metrics.d.ts.map +1 -0
  162. package/lib/db/flatFileStore/metrics.js +25 -0
  163. package/lib/db/flatFileStore/metrics.js.map +1 -0
  164. package/lib/db/flatFileStore/path.d.ts +9 -0
  165. package/lib/db/flatFileStore/path.d.ts.map +1 -0
  166. package/lib/db/flatFileStore/path.js +21 -0
  167. package/lib/db/flatFileStore/path.js.map +1 -0
  168. package/lib/db/flatFileStore/slotIndex.d.ts +14 -0
  169. package/lib/db/flatFileStore/slotIndex.d.ts.map +1 -0
  170. package/lib/db/flatFileStore/slotIndex.js +46 -0
  171. package/lib/db/flatFileStore/slotIndex.js.map +1 -0
  172. package/lib/db/flatFileStore/snappy.d.ts +3 -0
  173. package/lib/db/flatFileStore/snappy.d.ts.map +1 -0
  174. package/lib/db/flatFileStore/snappy.js +12 -0
  175. package/lib/db/flatFileStore/snappy.js.map +1 -0
  176. package/lib/db/index.d.ts +1 -0
  177. package/lib/db/index.d.ts.map +1 -1
  178. package/lib/db/interface.d.ts +8 -1
  179. package/lib/db/interface.d.ts.map +1 -1
  180. package/lib/db/repositories/blockArchive.d.ts +8 -1
  181. package/lib/db/repositories/blockArchive.d.ts.map +1 -1
  182. package/lib/db/repositories/blockArchive.js +65 -28
  183. package/lib/db/repositories/blockArchive.js.map +1 -1
  184. package/lib/db/repositories/blockArchiveIndex.d.ts +1 -2
  185. package/lib/db/repositories/blockArchiveIndex.d.ts.map +1 -1
  186. package/lib/db/repositories/blockArchiveIndex.js +3 -7
  187. package/lib/db/repositories/blockArchiveIndex.js.map +1 -1
  188. package/lib/execution/builder/apiClient.d.ts +6 -0
  189. package/lib/execution/builder/apiClient.d.ts.map +1 -1
  190. package/lib/execution/builder/apiClient.js +19 -1
  191. package/lib/execution/builder/apiClient.js.map +1 -1
  192. package/lib/execution/builder/validateBid.d.ts +1 -0
  193. package/lib/execution/builder/validateBid.d.ts.map +1 -1
  194. package/lib/execution/builder/validateBid.js +17 -6
  195. package/lib/execution/builder/validateBid.js.map +1 -1
  196. package/lib/execution/engine/mock.d.ts.map +1 -1
  197. package/lib/execution/engine/mock.js +4 -1
  198. package/lib/execution/engine/mock.js.map +1 -1
  199. package/lib/metrics/metrics/lodestar.d.ts +32 -4
  200. package/lib/metrics/metrics/lodestar.d.ts.map +1 -1
  201. package/lib/metrics/metrics/lodestar.js +78 -8
  202. package/lib/metrics/metrics/lodestar.js.map +1 -1
  203. package/lib/monitoring/clientStats.js +1 -1
  204. package/lib/monitoring/clientStats.js.map +1 -1
  205. package/lib/network/gossip/encoding.d.ts.map +1 -1
  206. package/lib/network/gossip/encoding.js +0 -7
  207. package/lib/network/gossip/encoding.js.map +1 -1
  208. package/lib/network/gossip/topic.d.ts +2 -1
  209. package/lib/network/gossip/topic.d.ts.map +1 -1
  210. package/lib/network/gossip/topic.js +4 -20
  211. package/lib/network/gossip/topic.js.map +1 -1
  212. package/lib/network/network.d.ts.map +1 -1
  213. package/lib/network/network.js +7 -6
  214. package/lib/network/network.js.map +1 -1
  215. package/lib/network/processor/gossipHandlers.d.ts.map +1 -1
  216. package/lib/network/processor/gossipHandlers.js +388 -285
  217. package/lib/network/processor/gossipHandlers.js.map +1 -1
  218. package/lib/network/processor/gossipQueues/indexed.d.ts.map +1 -1
  219. package/lib/network/processor/gossipQueues/indexed.js +0 -1
  220. package/lib/network/processor/gossipQueues/indexed.js.map +1 -1
  221. package/lib/network/processor/index.d.ts +49 -3
  222. package/lib/network/processor/index.d.ts.map +1 -1
  223. package/lib/network/processor/index.js +270 -122
  224. package/lib/network/processor/index.js.map +1 -1
  225. package/lib/network/reqresp/handlers/dataColumnSidecarsByRange.d.ts.map +1 -1
  226. package/lib/network/reqresp/handlers/dataColumnSidecarsByRange.js +112 -91
  227. package/lib/network/reqresp/handlers/dataColumnSidecarsByRange.js.map +1 -1
  228. package/lib/network/reqresp/handlers/dataColumnSidecarsByRoot.d.ts.map +1 -1
  229. package/lib/network/reqresp/handlers/dataColumnSidecarsByRoot.js +2 -0
  230. package/lib/network/reqresp/handlers/dataColumnSidecarsByRoot.js.map +1 -1
  231. package/lib/network/reqresp/protocols.d.ts.map +1 -1
  232. package/lib/network/reqresp/protocols.js +6 -22
  233. package/lib/network/reqresp/protocols.js.map +1 -1
  234. package/lib/network/reqresp/rateLimit.js +2 -1
  235. package/lib/network/reqresp/rateLimit.js.map +1 -1
  236. package/lib/network/reqresp/utils/dataColumnResponseValidation.d.ts +2 -1
  237. package/lib/network/reqresp/utils/dataColumnResponseValidation.d.ts.map +1 -1
  238. package/lib/network/reqresp/utils/dataColumnResponseValidation.js +14 -9
  239. package/lib/network/reqresp/utils/dataColumnResponseValidation.js.map +1 -1
  240. package/lib/node/nodejs.d.ts +2 -1
  241. package/lib/node/nodejs.d.ts.map +1 -1
  242. package/lib/node/nodejs.js +4 -2
  243. package/lib/node/nodejs.js.map +1 -1
  244. package/lib/sync/range/chain.d.ts.map +1 -1
  245. package/lib/sync/range/chain.js +9 -2
  246. package/lib/sync/range/chain.js.map +1 -1
  247. package/lib/sync/range/range.d.ts.map +1 -1
  248. package/lib/sync/range/range.js +25 -2
  249. package/lib/sync/range/range.js.map +1 -1
  250. package/lib/util/sszBytes.d.ts +6 -0
  251. package/lib/util/sszBytes.d.ts.map +1 -1
  252. package/lib/util/sszBytes.js +1 -1
  253. package/lib/util/sszBytes.js.map +1 -1
  254. package/package.json +19 -20
  255. package/src/api/impl/beacon/blocks/index.ts +12 -14
  256. package/src/api/impl/beacon/state/utils.ts +15 -0
  257. package/src/api/impl/config/index.ts +4 -1
  258. package/src/api/impl/validator/index.ts +49 -43
  259. package/src/chain/archiveStore/archiveStore.ts +12 -1
  260. package/src/chain/archiveStore/historicalState/historicalStateRegen.ts +1 -0
  261. package/src/chain/archiveStore/historicalState/metrics.ts +14 -1
  262. package/src/chain/archiveStore/historicalState/types.ts +2 -0
  263. package/src/chain/archiveStore/historicalState/worker.ts +4 -1
  264. package/src/chain/archiveStore/utils/archiveBlocks.ts +73 -42
  265. package/src/chain/blocks/importBlock.ts +25 -20
  266. package/src/chain/blocks/index.ts +126 -29
  267. package/src/chain/blocks/types.ts +9 -0
  268. package/src/chain/blocks/utils/chainSegment.ts +26 -12
  269. package/src/chain/blocks/verifyBlock.ts +5 -2
  270. package/src/chain/blocks/writeBlockInputToDb.ts +10 -17
  271. package/src/chain/chain.ts +155 -85
  272. package/src/chain/emitter.ts +1 -1
  273. package/src/chain/errors/blockError.ts +22 -10
  274. package/src/chain/errors/dataColumnSidecarError.ts +24 -8
  275. package/src/chain/errors/executionPayloadBid.ts +8 -0
  276. package/src/chain/errors/executionPayloadEnvelope.ts +14 -11
  277. package/src/chain/errors/gossipValidation.ts +1 -0
  278. package/src/chain/forkChoice/index.ts +2 -0
  279. package/src/chain/interface.ts +6 -6
  280. package/src/chain/lightClient/index.ts +32 -36
  281. package/src/chain/lightClient/proofs.ts +10 -0
  282. package/src/chain/opPools/aggregatedAttestationPool.ts +1 -1
  283. package/src/chain/prepareNextSlot.ts +47 -18
  284. package/src/chain/produceBlock/computeNewStateRoot.ts +3 -38
  285. package/src/chain/produceBlock/produceBlockBody.ts +62 -79
  286. package/src/chain/regen/interface.ts +1 -0
  287. package/src/chain/validation/block.ts +77 -79
  288. package/src/chain/validation/dataColumnSidecar.ts +47 -14
  289. package/src/chain/validation/executionPayloadBid.ts +230 -32
  290. package/src/chain/validation/executionPayloadEnvelope.ts +10 -37
  291. package/src/chain/validation/payloadAttestationMessage.ts +8 -9
  292. package/src/chain/validatorMonitor.ts +24 -7
  293. package/src/db/beacon.ts +33 -6
  294. package/src/db/dataColumnStore.ts +113 -0
  295. package/src/db/flatFileStore/atomicWrite.ts +65 -0
  296. package/src/db/flatFileStore/dcolFormat.ts +389 -0
  297. package/src/db/flatFileStore/errors.ts +53 -0
  298. package/src/db/flatFileStore/flatFileStore.ts +310 -0
  299. package/src/db/flatFileStore/index.ts +3 -0
  300. package/src/db/flatFileStore/interface.ts +21 -0
  301. package/src/db/flatFileStore/metrics.ts +48 -0
  302. package/src/db/flatFileStore/path.ts +32 -0
  303. package/src/db/flatFileStore/slotIndex.ts +56 -0
  304. package/src/db/flatFileStore/snappy.ts +14 -0
  305. package/src/db/index.ts +1 -0
  306. package/src/db/interface.ts +9 -1
  307. package/src/db/repositories/blockArchive.ts +89 -30
  308. package/src/db/repositories/blockArchiveIndex.ts +4 -9
  309. package/src/execution/builder/apiClient.ts +21 -1
  310. package/src/execution/builder/validateBid.ts +26 -7
  311. package/src/execution/engine/mock.ts +4 -1
  312. package/src/metrics/metrics/lodestar.ts +83 -9
  313. package/src/monitoring/clientStats.ts +1 -1
  314. package/src/network/gossip/encoding.ts +0 -7
  315. package/src/network/gossip/topic.ts +3 -25
  316. package/src/network/network.ts +9 -6
  317. package/src/network/processor/gossipHandlers.ts +500 -355
  318. package/src/network/processor/gossipQueues/indexed.ts +0 -1
  319. package/src/network/processor/index.ts +312 -176
  320. package/src/network/reqresp/handlers/dataColumnSidecarsByRange.ts +139 -105
  321. package/src/network/reqresp/handlers/dataColumnSidecarsByRoot.ts +2 -0
  322. package/src/network/reqresp/protocols.ts +7 -24
  323. package/src/network/reqresp/rateLimit.ts +2 -1
  324. package/src/network/reqresp/utils/dataColumnResponseValidation.ts +15 -7
  325. package/src/node/nodejs.ts +6 -1
  326. package/src/sync/range/chain.ts +9 -2
  327. package/src/sync/range/range.ts +24 -2
  328. package/src/util/sszBytes.ts +1 -1
@@ -1 +1 @@
1
- {"version":3,"file":"chain.d.ts","sourceRoot":"","sources":["../../src/chain/chain.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"chain.d.ts","sourceRoot":"","sources":["../../src/chain/chain.ts"],"names":[],"mappings":"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"}
@@ -159,7 +159,7 @@ export class BeaconChain {
159
159
  this.emitter.emit(ChainEvent.updateStatus);
160
160
  }
161
161
  }
162
- constructor(opts, { privateKey, config, pubkeyCache, db, dbName, dataDir, logger, processShutdownCallback, clock, metrics, validatorMonitor, anchorState, isAnchorStateFinalized, executionEngine, executionBuilder, builderApiClientOpts, }) {
162
+ constructor(opts, { privateKey, config, pubkeyCache, db, dbName, dataDir, dataColumnDir, logger, processShutdownCallback, clock, metrics, validatorMonitor, anchorState, isAnchorStateFinalized, executionEngine, executionBuilder, builderApiClientOpts, }) {
163
163
  this.opts = opts;
164
164
  this.config = config;
165
165
  this.db = db;
@@ -324,7 +324,12 @@ export class BeaconChain {
324
324
  metrics,
325
325
  config,
326
326
  });
327
- this.archiveStore = new ArchiveStore({ db, chain: this, logger: logger, metrics }, { ...opts, dbName, anchorState: { finalizedCheckpoint: anchorState.finalizedCheckpoint } }, signal);
327
+ this.archiveStore = new ArchiveStore({ db, chain: this, logger: logger, metrics }, {
328
+ ...opts,
329
+ dbName,
330
+ dataColumnDir: dataColumnDir ?? path.join(dataDir, "data_columns"),
331
+ anchorState: { finalizedCheckpoint: anchorState.finalizedCheckpoint },
332
+ }, signal);
328
333
  this.unfinalizedBlockWrites = new JobItemQueue(persistBlockInput.bind(this), {
329
334
  maxLength: DEFAULT_MAX_PENDING_UNFINALIZED_BLOCK_WRITES,
330
335
  signal,
@@ -690,11 +695,14 @@ export class BeaconChain {
690
695
  }
691
696
  async getDataColumnSidecars(blockSlot, blockRootHex) {
692
697
  const fork = this.config.getForkName(blockSlot);
698
+ const sidecarsByIndex = new Map();
693
699
  if (isForkPostGloas(fork)) {
694
700
  // After gloas, columns are tracked in PayloadEnvelopeInput
695
701
  const payloadInput = this.seenPayloadEnvelopeInputCache.get(blockRootHex);
696
702
  if (payloadInput) {
697
- return payloadInput.getAllColumns();
703
+ for (const sidecar of payloadInput.getAllColumns()) {
704
+ sidecarsByIndex.set(sidecar.index, sidecar);
705
+ }
698
706
  }
699
707
  }
700
708
  else {
@@ -704,33 +712,38 @@ export class BeaconChain {
704
712
  if (!isBlockInputColumns(blockInput)) {
705
713
  throw new Error(`Expected block input to have columns: slot=${blockSlot} root=${blockRootHex}`);
706
714
  }
707
- return blockInput.getAllColumns();
715
+ for (const sidecar of blockInput.getAllColumns()) {
716
+ sidecarsByIndex.set(sidecar.index, sidecar);
717
+ }
708
718
  }
709
719
  }
710
- const sidecarsUnfinalized = await this.db.dataColumnSidecar.values(fromHex(blockRootHex));
711
- if (sidecarsUnfinalized.length > 0) {
712
- return sidecarsUnfinalized;
720
+ for (const sidecar of await this.db.dataColumns.getAll({ slot: blockSlot, blockRoot: blockRootHex })) {
721
+ if (!sidecarsByIndex.has(sidecar.index))
722
+ sidecarsByIndex.set(sidecar.index, sidecar);
713
723
  }
714
- const sidecarsFinalized = await this.db.dataColumnSidecarArchive.values(blockSlot);
715
- return sidecarsFinalized;
724
+ return [...sidecarsByIndex.values()].sort((a, b) => a.index - b.index);
716
725
  }
717
726
  async getSerializedDataColumnSidecars(blockSlot, blockRootHex, indices) {
718
727
  const fork = this.config.getForkName(blockSlot);
728
+ const dataColumnSidecars = indices.map(() => undefined);
719
729
  if (isForkPostGloas(fork)) {
720
730
  // After gloas, columns are tracked in PayloadEnvelopeInput
721
731
  const payloadInput = this.seenPayloadEnvelopeInputCache.get(blockRootHex);
722
732
  if (payloadInput) {
723
- return indices.map((index) => {
733
+ for (let i = 0; i < indices.length; i++) {
734
+ const index = indices[i];
724
735
  const sidecar = payloadInput.getColumn(index);
725
736
  if (!sidecar) {
726
- return undefined;
737
+ continue;
727
738
  }
728
739
  const serialized = this.serializedCache.get(sidecar);
729
740
  if (serialized) {
730
- return serialized;
741
+ dataColumnSidecars[i] = serialized;
731
742
  }
732
- return sszTypesFor(fork).DataColumnSidecar.serialize(sidecar);
733
- });
743
+ else {
744
+ dataColumnSidecars[i] = sszTypesFor(fork).DataColumnSidecar.serialize(sidecar);
745
+ }
746
+ }
734
747
  }
735
748
  }
736
749
  else {
@@ -740,25 +753,35 @@ export class BeaconChain {
740
753
  if (!isBlockInputColumns(blockInput)) {
741
754
  throw new Error(`Expected block input to have columns: slot=${blockSlot} root=${blockRootHex}`);
742
755
  }
743
- return indices.map((index) => {
756
+ for (let i = 0; i < indices.length; i++) {
757
+ const index = indices[i];
744
758
  const sidecar = blockInput.getColumn(index);
745
759
  if (!sidecar) {
746
- return undefined;
760
+ continue;
747
761
  }
748
762
  const serialized = this.serializedCache.get(sidecar);
749
763
  if (serialized) {
750
- return serialized;
764
+ dataColumnSidecars[i] = serialized;
751
765
  }
752
- return sszTypesFor(blockInput.forkName).DataColumnSidecar.serialize(sidecar);
753
- });
766
+ else {
767
+ dataColumnSidecars[i] = sszTypesFor(blockInput.forkName).DataColumnSidecar.serialize(sidecar);
768
+ }
769
+ }
754
770
  }
755
771
  }
756
- const sidecarsUnfinalized = await this.db.dataColumnSidecar.getManyBinary(fromHex(blockRootHex), indices);
757
- if (sidecarsUnfinalized.some((sidecar) => sidecar != null)) {
758
- return sidecarsUnfinalized;
772
+ const missingPositions = dataColumnSidecars
773
+ .map((sidecar, position) => (sidecar === undefined ? position : -1))
774
+ .filter((position) => position !== -1);
775
+ if (missingPositions.length > 0) {
776
+ const persistedSidecars = await this.db.dataColumns.getManyBinary({ slot: blockSlot, blockRoot: blockRootHex }, missingPositions.map((position) => indices[position]));
777
+ for (let i = 0; i < missingPositions.length; i++) {
778
+ const sidecar = persistedSidecars[i];
779
+ if (sidecar !== undefined) {
780
+ dataColumnSidecars[missingPositions[i]] = sidecar;
781
+ }
782
+ }
759
783
  }
760
- const sidecarsFinalized = await this.db.dataColumnSidecarArchive.getManyBinary(blockSlot, indices);
761
- return sidecarsFinalized;
784
+ return dataColumnSidecars;
762
785
  }
763
786
  async produceCommonBlockBody(blockAttributes) {
764
787
  const { slot, parentBlock } = blockAttributes;
@@ -824,10 +847,10 @@ export class BeaconChain {
824
847
  return { block, executionPayloadValue, consensusBlockValue: gweiToWei(proposerReward), shouldOverrideBuilder };
825
848
  }
826
849
  async processBlock(block, opts) {
827
- return this.blockProcessor.processBlocksJob([block], null, opts);
850
+ await this.blockProcessor.processBlocksJob([block], null, opts);
828
851
  }
829
852
  async processChainSegment(blocks, payloadEnvelopes, opts) {
830
- await this.blockProcessor.processBlocksJob(blocks, payloadEnvelopes, opts);
853
+ return this.blockProcessor.processBlocksJob(blocks, payloadEnvelopes, opts);
831
854
  }
832
855
  async processExecutionPayload(payloadInput, opts) {
833
856
  return this.payloadEnvelopeProcessor.processPayloadEnvelopeJob(payloadInput, opts);
@@ -914,44 +937,7 @@ export class BeaconChain {
914
937
  try {
915
938
  const prevHead = this.forkChoice.getHead();
916
939
  const head = this.forkChoice.updateAndGetHead({ mode: UpdateHeadOpt.GetCanonicalHead }).head;
917
- const headRootChanged = head.blockRoot !== prevHead.blockRoot;
918
- if (!headRootChanged && prevHead.payloadStatus === head.payloadStatus) {
919
- return head;
920
- }
921
- try {
922
- const previousDutyDependentRoot = this.forkChoice.getDependentRoot(head, EpochDifference.previous);
923
- const currentDutyDependentRoot = this.forkChoice.getDependentRoot(head, EpochDifference.current);
924
- const epochTransition = computeStartSlotAtEpoch(computeEpochAtSlot(head.slot)) === head.slot;
925
- const executionOptimistic = isOptimisticBlock(head);
926
- if (headRootChanged) {
927
- this.emitter.emit(routes.events.EventType.head, {
928
- block: head.blockRoot,
929
- epochTransition,
930
- slot: head.slot,
931
- state: head.stateRoot,
932
- previousDutyDependentRoot,
933
- currentDutyDependentRoot,
934
- executionOptimistic,
935
- });
936
- }
937
- this.emitter.emit(routes.events.EventType.headV2, {
938
- version: this.config.getForkName(head.slot),
939
- data: {
940
- slot: head.slot,
941
- block: head.blockRoot,
942
- state: head.stateRoot,
943
- payloadStatus: head.payloadStatus === PayloadStatus.FULL ? "full" : "empty",
944
- epochTransition,
945
- currentEpochDependentRoot: previousDutyDependentRoot,
946
- nextEpochDependentRoot: currentDutyDependentRoot,
947
- executionOptimistic,
948
- },
949
- });
950
- }
951
- catch (e) {
952
- // getDependentRoot() may fail with error: "No block for root" as we can see in holesky non-finality issue
953
- this.logger.debug("Error emitting head/head_v2 event", { slot: head.slot, root: head.blockRoot, headRootChanged }, e);
954
- }
940
+ this.emitHeadEvents(prevHead, head);
955
941
  return head;
956
942
  }
957
943
  catch (e) {
@@ -962,9 +948,54 @@ export class BeaconChain {
962
948
  timer?.();
963
949
  }
964
950
  }
965
- predictProposerHead(slot) {
951
+ /**
952
+ * Emit `head` and `head_v2` when the fork choice head differs between two observations. Every caller that
953
+ * can move the head, `updateAndGetHead()` and `updateTime()`, must capture the head before and pass both.
954
+ */
955
+ emitHeadEvents(prevHead, head) {
956
+ const headRootChanged = head.blockRoot !== prevHead.blockRoot;
957
+ if (!headRootChanged && prevHead.payloadStatus === head.payloadStatus) {
958
+ return;
959
+ }
960
+ try {
961
+ const previousDutyDependentRoot = this.forkChoice.getDependentRoot(head, EpochDifference.previous);
962
+ const currentDutyDependentRoot = this.forkChoice.getDependentRoot(head, EpochDifference.current);
963
+ const epochTransition = computeStartSlotAtEpoch(computeEpochAtSlot(head.slot)) === head.slot;
964
+ const executionOptimistic = isOptimisticBlock(head);
965
+ if (headRootChanged) {
966
+ this.emitter.emit(routes.events.EventType.head, {
967
+ block: head.blockRoot,
968
+ epochTransition,
969
+ slot: head.slot,
970
+ state: head.stateRoot,
971
+ previousDutyDependentRoot,
972
+ currentDutyDependentRoot,
973
+ executionOptimistic,
974
+ });
975
+ }
976
+ this.emitter.emit(routes.events.EventType.headV2, {
977
+ version: this.config.getForkName(head.slot),
978
+ data: {
979
+ slot: head.slot,
980
+ block: head.blockRoot,
981
+ state: head.stateRoot,
982
+ payloadStatus: head.payloadStatus === PayloadStatus.FULL ? "full" : "empty",
983
+ epochTransition,
984
+ currentEpochDependentRoot: previousDutyDependentRoot,
985
+ nextEpochDependentRoot: currentDutyDependentRoot,
986
+ executionOptimistic,
987
+ },
988
+ });
989
+ }
990
+ catch (e) {
991
+ // getDependentRoot() may fail with error: "No block for root" as we can see in holesky non-finality issue
992
+ this.logger.debug("Error emitting head/head_v2 event", { slot: head.slot, root: head.blockRoot, headRootChanged }, e);
993
+ }
994
+ }
995
+ predictProposerHead() {
966
996
  this.metrics?.forkChoice.requests.inc();
967
997
  const timer = this.metrics?.forkChoice.findHead.startTimer({ caller: FindHeadFnName.predictProposerHead });
998
+ const slot = this.clock.currentSlot;
968
999
  const secFromSlot = this.clock.secFromSlot(slot);
969
1000
  try {
970
1001
  return this.forkChoice.updateAndGetHead({ mode: UpdateHeadOpt.GetPredictedProposerHead, secFromSlot, slot }).head;
@@ -1013,11 +1044,11 @@ export class BeaconChain {
1013
1044
  const slot = data.slot;
1014
1045
  if (isBlindedBeaconBlock(data)) {
1015
1046
  const sszType = this.config.getPostBellatrixForkTypes(slot).BlindedBeaconBlock;
1016
- void this.persistSszObject("BlindedBeaconBlock", sszType.serialize(data), sszType.hashTreeRoot(data), suffix);
1047
+ void this.persistSszObject("BlindedBeaconBlock", sszType.serialize(data), toRootHex(sszType.hashTreeRoot(data)), suffix);
1017
1048
  }
1018
1049
  else {
1019
1050
  const sszType = this.config.getForkTypes(slot).BeaconBlock;
1020
- void this.persistSszObject("BeaconBlock", sszType.serialize(data), sszType.hashTreeRoot(data), suffix);
1051
+ void this.persistSszObject("BeaconBlock", sszType.serialize(data), toRootHex(sszType.hashTreeRoot(data)), suffix);
1021
1052
  }
1022
1053
  }
1023
1054
  /**
@@ -1030,19 +1061,21 @@ export class BeaconChain {
1030
1061
  const postStateRoot = postState.hashTreeRoot();
1031
1062
  const logStr = `slot_${blockSlot}_invalid_state_root_${toRootHex(postStateRoot)}`;
1032
1063
  await Promise.all([
1033
- this.persistSszObject(`SignedBeaconBlock_slot_${blockSlot}`, blockType.serialize(block), blockType.hashTreeRoot(block), `${logStr}_block`),
1034
- this.persistSszObject(`preState_slot_${preState.slot}_BeaconState`, preState.serialize(), preState.hashTreeRoot(), `${logStr}_pre_state`),
1035
- this.persistSszObject(`postState_slot_${postState.slot}_BeaconState`, postState.serialize(), postState.hashTreeRoot(), `${logStr}_post_state`),
1064
+ this.persistSszObject(`SignedBeaconBlock_slot_${blockSlot}`, blockType.serialize(block), toRootHex(this.config.getForkTypes(blockSlot).BeaconBlock.hashTreeRoot(block.message)), `${logStr}_block`),
1065
+ this.persistSszObject(`preState_slot_${preState.slot}_BeaconState`, preState.serialize(), toRootHex(preState.hashTreeRoot()), `${logStr}_pre_state`),
1066
+ this.persistSszObject(`postState_slot_${postState.slot}_BeaconState`, postState.serialize(), toRootHex(postStateRoot), `${logStr}_post_state`),
1036
1067
  ]);
1037
1068
  }
1038
- persistInvalidSszValue(type, sszObject, suffix) {
1069
+ persistInvalidSszValue(type, sszObject, suffix, rootHex) {
1039
1070
  if (this.opts.persistInvalidSszObjects) {
1040
- void this.persistSszObject(type.typeName, type.serialize(sszObject), type.hashTreeRoot(sszObject), suffix);
1071
+ void this.persistSszObject(type.typeName, type.serialize(sszObject),
1072
+ // in SignedBeaconBlock case, we want to use BeaconBlock root instead
1073
+ rootHex ?? toRootHex(type.hashTreeRoot(sszObject)), suffix);
1041
1074
  }
1042
1075
  }
1043
- persistInvalidSszBytes(typeName, sszBytes, suffix) {
1076
+ persistInvalidSszBytes(typeName, sszBytes, rootHex, suffix) {
1044
1077
  if (this.opts.persistInvalidSszObjects) {
1045
- void this.persistSszObject(typeName, sszBytes, sszBytes, suffix);
1078
+ void this.persistSszObject(typeName, sszBytes, rootHex, suffix);
1046
1079
  }
1047
1080
  }
1048
1081
  /**
@@ -1151,13 +1184,13 @@ export class BeaconChain {
1151
1184
  // If there's no state available in the same branch of checkpoint use blockState regardless of its epoch
1152
1185
  return { state: blockState, stateId: "block_state_any_epoch", shouldWarn: true };
1153
1186
  }
1154
- async persistSszObject(prefix, bytes, root, logStr) {
1187
+ async persistSszObject(prefix, bytes, rootHex, logStr) {
1155
1188
  const now = new Date();
1156
1189
  // yyyy-MM-dd
1157
1190
  const dateStr = now.toISOString().split("T")[0];
1158
1191
  // by default store to lodestar_archive of current dir
1159
1192
  const dirpath = path.join(this.opts.persistInvalidSszObjectsDir ?? "invalid_ssz_objects", dateStr);
1160
- const filepath = path.join(dirpath, `${prefix}_${toRootHex(root)}.ssz`);
1193
+ const filepath = path.join(dirpath, `${prefix}_${rootHex}.ssz`);
1161
1194
  await ensureDir(dirpath);
1162
1195
  // as of Feb 17 2022 there are a lot of duplicate files stored with different date suffixes
1163
1196
  // remove date suffixes in file name, and check duplicate to avoid redundant persistence
@@ -1192,7 +1225,10 @@ export class BeaconChain {
1192
1225
  if (this.forkChoice.irrecoverableError) {
1193
1226
  this.processShutdownCallback(this.forkChoice.irrecoverableError);
1194
1227
  }
1228
+ // updateTime() recomputes the head on epoch-boundary checkpoint pull-up and under fast confirmation
1229
+ const prevHead = this.forkChoice.getHead();
1195
1230
  this.forkChoice.updateTime(slot);
1231
+ this.emitHeadEvents(prevHead, this.forkChoice.getHead());
1196
1232
  this.metrics?.clockSlot.set(slot);
1197
1233
  this.attestationPool.prune(slot);
1198
1234
  this.aggregatedAttestationPool.prune(slot);
@@ -1242,6 +1278,25 @@ export class BeaconChain {
1242
1278
  }
1243
1279
  async onForkChoiceFinalized(cp) {
1244
1280
  this.logger.verbose("Fork choice finalized", { epoch: cp.epoch, root: cp.rootHex });
1281
+ this.metrics?.finalizedEpoch.set(cp.epoch);
1282
+ const finalizedBlock = this.forkChoice.getBlockHexDefaultStatus(cp.rootHex);
1283
+ if (finalizedBlock) {
1284
+ // The callback runs synchronously inside fork choice checkpoint updates, defer writing to subscribers
1285
+ callInNextEventLoop(() => {
1286
+ this.emitter.emit(routes.events.EventType.finalizedCheckpoint, {
1287
+ block: cp.rootHex,
1288
+ epoch: cp.epoch,
1289
+ state: finalizedBlock.stateRoot,
1290
+ executionOptimistic: isOptimisticBlock(finalizedBlock),
1291
+ });
1292
+ });
1293
+ }
1294
+ else {
1295
+ this.logger.debug("Finalized block not found in fork choice, skip finalized_checkpoint event", {
1296
+ epoch: cp.epoch,
1297
+ root: cp.rootHex,
1298
+ });
1299
+ }
1245
1300
  const finalizedSlot = computeStartSlotAtEpoch(cp.epoch);
1246
1301
  this.seenBlockProposers.prune(finalizedSlot);
1247
1302
  // Update validator custody to account for effective balance changes