@lodestar/beacon-node 1.43.0-dev.abc719ddc1 → 1.43.0-dev.ac258a8def

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 (379) hide show
  1. package/lib/api/impl/beacon/blocks/index.d.ts.map +1 -1
  2. package/lib/api/impl/beacon/blocks/index.js +17 -9
  3. package/lib/api/impl/beacon/blocks/index.js.map +1 -1
  4. package/lib/api/impl/beacon/pool/index.d.ts.map +1 -1
  5. package/lib/api/impl/beacon/pool/index.js +45 -2
  6. package/lib/api/impl/beacon/pool/index.js.map +1 -1
  7. package/lib/api/impl/beacon/state/utils.d.ts +2 -2
  8. package/lib/api/impl/beacon/state/utils.d.ts.map +1 -1
  9. package/lib/api/impl/beacon/state/utils.js.map +1 -1
  10. package/lib/api/impl/debug/index.d.ts.map +1 -1
  11. package/lib/api/impl/debug/index.js +0 -1
  12. package/lib/api/impl/debug/index.js.map +1 -1
  13. package/lib/api/impl/lodestar/index.js +1 -1
  14. package/lib/api/impl/lodestar/index.js.map +1 -1
  15. package/lib/api/impl/validator/index.d.ts.map +1 -1
  16. package/lib/api/impl/validator/index.js +68 -6
  17. package/lib/api/impl/validator/index.js.map +1 -1
  18. package/lib/chain/archiveStore/archiveStore.d.ts.map +1 -1
  19. package/lib/chain/archiveStore/archiveStore.js.map +1 -1
  20. package/lib/chain/archiveStore/interface.d.ts +4 -4
  21. package/lib/chain/archiveStore/interface.d.ts.map +1 -1
  22. package/lib/chain/archiveStore/strategies/frequencyStateArchiveStrategy.d.ts +4 -4
  23. package/lib/chain/archiveStore/strategies/frequencyStateArchiveStrategy.d.ts.map +1 -1
  24. package/lib/chain/archiveStore/strategies/frequencyStateArchiveStrategy.js.map +1 -1
  25. package/lib/chain/archiveStore/utils/archiveBlocks.d.ts +2 -2
  26. package/lib/chain/archiveStore/utils/archiveBlocks.d.ts.map +1 -1
  27. package/lib/chain/archiveStore/utils/archiveBlocks.js +110 -58
  28. package/lib/chain/archiveStore/utils/archiveBlocks.js.map +1 -1
  29. package/lib/chain/blocks/blockInput/blockInput.d.ts +3 -0
  30. package/lib/chain/blocks/blockInput/blockInput.d.ts.map +1 -1
  31. package/lib/chain/blocks/blockInput/blockInput.js +4 -1
  32. package/lib/chain/blocks/blockInput/blockInput.js.map +1 -1
  33. package/lib/chain/blocks/importBlock.d.ts.map +1 -1
  34. package/lib/chain/blocks/importBlock.js +16 -28
  35. package/lib/chain/blocks/importBlock.js.map +1 -1
  36. package/lib/chain/blocks/importExecutionPayload.d.ts +32 -14
  37. package/lib/chain/blocks/importExecutionPayload.d.ts.map +1 -1
  38. package/lib/chain/blocks/importExecutionPayload.js +100 -91
  39. package/lib/chain/blocks/importExecutionPayload.js.map +1 -1
  40. package/lib/chain/blocks/index.d.ts +5 -3
  41. package/lib/chain/blocks/index.d.ts.map +1 -1
  42. package/lib/chain/blocks/index.js +58 -26
  43. package/lib/chain/blocks/index.js.map +1 -1
  44. package/lib/chain/blocks/payloadEnvelopeInput/payloadEnvelopeInput.d.ts +12 -1
  45. package/lib/chain/blocks/payloadEnvelopeInput/payloadEnvelopeInput.d.ts.map +1 -1
  46. package/lib/chain/blocks/payloadEnvelopeInput/payloadEnvelopeInput.js +28 -2
  47. package/lib/chain/blocks/payloadEnvelopeInput/payloadEnvelopeInput.js.map +1 -1
  48. package/lib/chain/blocks/payloadEnvelopeInput/types.d.ts +17 -0
  49. package/lib/chain/blocks/payloadEnvelopeInput/types.d.ts.map +1 -1
  50. package/lib/chain/blocks/payloadEnvelopeProcessor.js +2 -2
  51. package/lib/chain/blocks/payloadEnvelopeProcessor.js.map +1 -1
  52. package/lib/chain/blocks/types.d.ts +15 -20
  53. package/lib/chain/blocks/types.d.ts.map +1 -1
  54. package/lib/chain/blocks/utils/chainSegment.d.ts +21 -2
  55. package/lib/chain/blocks/utils/chainSegment.d.ts.map +1 -1
  56. package/lib/chain/blocks/utils/chainSegment.js +92 -12
  57. package/lib/chain/blocks/utils/chainSegment.js.map +1 -1
  58. package/lib/chain/blocks/verifyBlock.d.ts +5 -3
  59. package/lib/chain/blocks/verifyBlock.d.ts.map +1 -1
  60. package/lib/chain/blocks/verifyBlock.js +50 -7
  61. package/lib/chain/blocks/verifyBlock.js.map +1 -1
  62. package/lib/chain/blocks/verifyBlocksExecutionPayloads.d.ts +0 -4
  63. package/lib/chain/blocks/verifyBlocksExecutionPayloads.d.ts.map +1 -1
  64. package/lib/chain/blocks/verifyBlocksExecutionPayloads.js +5 -2
  65. package/lib/chain/blocks/verifyBlocksExecutionPayloads.js.map +1 -1
  66. package/lib/chain/blocks/verifyBlocksSanityChecks.d.ts +2 -1
  67. package/lib/chain/blocks/verifyBlocksSanityChecks.d.ts.map +1 -1
  68. package/lib/chain/blocks/verifyBlocksSanityChecks.js +25 -5
  69. package/lib/chain/blocks/verifyBlocksSanityChecks.js.map +1 -1
  70. package/lib/chain/blocks/verifyExecutionPayloadEnvelope.d.ts +24 -0
  71. package/lib/chain/blocks/verifyExecutionPayloadEnvelope.d.ts.map +1 -0
  72. package/lib/chain/blocks/verifyExecutionPayloadEnvelope.js +80 -0
  73. package/lib/chain/blocks/verifyExecutionPayloadEnvelope.js.map +1 -0
  74. package/lib/chain/blocks/verifyPayloadsDataAvailability.d.ts.map +1 -1
  75. package/lib/chain/blocks/verifyPayloadsDataAvailability.js +8 -3
  76. package/lib/chain/blocks/verifyPayloadsDataAvailability.js.map +1 -1
  77. package/lib/chain/blocks/writePayloadEnvelopeInputToDb.d.ts +1 -1
  78. package/lib/chain/blocks/writePayloadEnvelopeInputToDb.d.ts.map +1 -1
  79. package/lib/chain/blocks/writePayloadEnvelopeInputToDb.js +2 -11
  80. package/lib/chain/blocks/writePayloadEnvelopeInputToDb.js.map +1 -1
  81. package/lib/chain/chain.d.ts +8 -6
  82. package/lib/chain/chain.d.ts.map +1 -1
  83. package/lib/chain/chain.js +44 -14
  84. package/lib/chain/chain.js.map +1 -1
  85. package/lib/chain/emitter.d.ts +3 -14
  86. package/lib/chain/emitter.d.ts.map +1 -1
  87. package/lib/chain/emitter.js +0 -4
  88. package/lib/chain/emitter.js.map +1 -1
  89. package/lib/chain/errors/blockError.d.ts +8 -1
  90. package/lib/chain/errors/blockError.d.ts.map +1 -1
  91. package/lib/chain/errors/blockError.js +2 -0
  92. package/lib/chain/errors/blockError.js.map +1 -1
  93. package/lib/chain/errors/executionPayloadBid.d.ts +5 -0
  94. package/lib/chain/errors/executionPayloadBid.d.ts.map +1 -1
  95. package/lib/chain/errors/executionPayloadBid.js +1 -0
  96. package/lib/chain/errors/executionPayloadBid.js.map +1 -1
  97. package/lib/chain/errors/executionPayloadEnvelope.d.ts +5 -0
  98. package/lib/chain/errors/executionPayloadEnvelope.d.ts.map +1 -1
  99. package/lib/chain/errors/executionPayloadEnvelope.js +1 -0
  100. package/lib/chain/errors/executionPayloadEnvelope.js.map +1 -1
  101. package/lib/chain/errors/index.d.ts +1 -0
  102. package/lib/chain/errors/index.d.ts.map +1 -1
  103. package/lib/chain/errors/index.js +1 -0
  104. package/lib/chain/errors/index.js.map +1 -1
  105. package/lib/chain/errors/proposerPreferences.d.ts +40 -0
  106. package/lib/chain/errors/proposerPreferences.d.ts.map +1 -0
  107. package/lib/chain/errors/proposerPreferences.js +14 -0
  108. package/lib/chain/errors/proposerPreferences.js.map +1 -0
  109. package/lib/chain/forkChoice/index.d.ts.map +1 -1
  110. package/lib/chain/forkChoice/index.js +5 -17
  111. package/lib/chain/forkChoice/index.js.map +1 -1
  112. package/lib/chain/initState.d.ts.map +1 -1
  113. package/lib/chain/initState.js +6 -1
  114. package/lib/chain/initState.js.map +1 -1
  115. package/lib/chain/interface.d.ts +7 -5
  116. package/lib/chain/interface.d.ts.map +1 -1
  117. package/lib/chain/interface.js.map +1 -1
  118. package/lib/chain/opPools/payloadAttestationPool.d.ts +3 -2
  119. package/lib/chain/opPools/payloadAttestationPool.d.ts.map +1 -1
  120. package/lib/chain/opPools/payloadAttestationPool.js +26 -4
  121. package/lib/chain/opPools/payloadAttestationPool.js.map +1 -1
  122. package/lib/chain/prepareNextSlot.d.ts.map +1 -1
  123. package/lib/chain/prepareNextSlot.js +31 -13
  124. package/lib/chain/prepareNextSlot.js.map +1 -1
  125. package/lib/chain/produceBlock/produceBlockBody.d.ts +11 -1
  126. package/lib/chain/produceBlock/produceBlockBody.d.ts.map +1 -1
  127. package/lib/chain/produceBlock/produceBlockBody.js +52 -14
  128. package/lib/chain/produceBlock/produceBlockBody.js.map +1 -1
  129. package/lib/chain/regen/interface.d.ts +1 -0
  130. package/lib/chain/regen/interface.d.ts.map +1 -1
  131. package/lib/chain/regen/interface.js +1 -0
  132. package/lib/chain/regen/interface.js.map +1 -1
  133. package/lib/chain/regen/queued.d.ts.map +1 -1
  134. package/lib/chain/regen/queued.js +1 -4
  135. package/lib/chain/regen/queued.js.map +1 -1
  136. package/lib/chain/regen/regen.d.ts.map +1 -1
  137. package/lib/chain/regen/regen.js +1 -4
  138. package/lib/chain/regen/regen.js.map +1 -1
  139. package/lib/chain/seenCache/index.d.ts +1 -0
  140. package/lib/chain/seenCache/index.d.ts.map +1 -1
  141. package/lib/chain/seenCache/index.js +1 -0
  142. package/lib/chain/seenCache/index.js.map +1 -1
  143. package/lib/chain/seenCache/seenPayloadEnvelopeInput.d.ts +24 -7
  144. package/lib/chain/seenCache/seenPayloadEnvelopeInput.d.ts.map +1 -1
  145. package/lib/chain/seenCache/seenPayloadEnvelopeInput.js +69 -17
  146. package/lib/chain/seenCache/seenPayloadEnvelopeInput.js.map +1 -1
  147. package/lib/chain/seenCache/seenProposerPreferences.d.ts +16 -0
  148. package/lib/chain/seenCache/seenProposerPreferences.d.ts.map +1 -0
  149. package/lib/chain/seenCache/seenProposerPreferences.js +26 -0
  150. package/lib/chain/seenCache/seenProposerPreferences.js.map +1 -0
  151. package/lib/chain/validation/block.d.ts.map +1 -1
  152. package/lib/chain/validation/block.js +1 -0
  153. package/lib/chain/validation/block.js.map +1 -1
  154. package/lib/chain/validation/executionPayloadBid.d.ts.map +1 -1
  155. package/lib/chain/validation/executionPayloadBid.js +24 -9
  156. package/lib/chain/validation/executionPayloadBid.js.map +1 -1
  157. package/lib/chain/validation/executionPayloadEnvelope.d.ts.map +1 -1
  158. package/lib/chain/validation/executionPayloadEnvelope.js +19 -9
  159. package/lib/chain/validation/executionPayloadEnvelope.js.map +1 -1
  160. package/lib/chain/validation/proposerPreferences.d.ts +8 -0
  161. package/lib/chain/validation/proposerPreferences.d.ts.map +1 -0
  162. package/lib/chain/validation/proposerPreferences.js +91 -0
  163. package/lib/chain/validation/proposerPreferences.js.map +1 -0
  164. package/lib/db/repositories/executionPayloadEnvelopeArchive.js +1 -1
  165. package/lib/db/repositories/executionPayloadEnvelopeArchive.js.map +1 -1
  166. package/lib/execution/engine/http.d.ts.map +1 -1
  167. package/lib/execution/engine/http.js +21 -14
  168. package/lib/execution/engine/http.js.map +1 -1
  169. package/lib/execution/engine/interface.d.ts +1 -0
  170. package/lib/execution/engine/interface.d.ts.map +1 -1
  171. package/lib/execution/engine/mock.d.ts.map +1 -1
  172. package/lib/execution/engine/mock.js +6 -0
  173. package/lib/execution/engine/mock.js.map +1 -1
  174. package/lib/execution/engine/types.d.ts +20 -0
  175. package/lib/execution/engine/types.d.ts.map +1 -1
  176. package/lib/execution/engine/types.js +18 -0
  177. package/lib/execution/engine/types.js.map +1 -1
  178. package/lib/metrics/metrics/lodestar.d.ts +1 -0
  179. package/lib/metrics/metrics/lodestar.d.ts.map +1 -1
  180. package/lib/metrics/metrics/lodestar.js +4 -0
  181. package/lib/metrics/metrics/lodestar.js.map +1 -1
  182. package/lib/network/gossip/interface.d.ts +7 -1
  183. package/lib/network/gossip/interface.d.ts.map +1 -1
  184. package/lib/network/gossip/interface.js +1 -0
  185. package/lib/network/gossip/interface.js.map +1 -1
  186. package/lib/network/gossip/scoringParameters.d.ts.map +1 -1
  187. package/lib/network/gossip/scoringParameters.js +12 -1
  188. package/lib/network/gossip/scoringParameters.js.map +1 -1
  189. package/lib/network/gossip/topic.d.ts +32 -748
  190. package/lib/network/gossip/topic.d.ts.map +1 -1
  191. package/lib/network/gossip/topic.js +6 -0
  192. package/lib/network/gossip/topic.js.map +1 -1
  193. package/lib/network/interface.d.ts +2 -0
  194. package/lib/network/interface.d.ts.map +1 -1
  195. package/lib/network/network.d.ts +2 -0
  196. package/lib/network/network.d.ts.map +1 -1
  197. package/lib/network/network.js +9 -1
  198. package/lib/network/network.js.map +1 -1
  199. package/lib/network/processor/gossipHandlers.d.ts.map +1 -1
  200. package/lib/network/processor/gossipHandlers.js +41 -19
  201. package/lib/network/processor/gossipHandlers.js.map +1 -1
  202. package/lib/network/processor/gossipQueues/index.d.ts.map +1 -1
  203. package/lib/network/processor/gossipQueues/index.js +5 -0
  204. package/lib/network/processor/gossipQueues/index.js.map +1 -1
  205. package/lib/network/processor/index.d.ts.map +1 -1
  206. package/lib/network/processor/index.js +6 -5
  207. package/lib/network/processor/index.js.map +1 -1
  208. package/lib/network/reqresp/ReqRespBeaconNode.d.ts.map +1 -1
  209. package/lib/network/reqresp/ReqRespBeaconNode.js +1 -1
  210. package/lib/network/reqresp/ReqRespBeaconNode.js.map +1 -1
  211. package/lib/network/reqresp/handlers/beaconBlocksByHead.d.ts +9 -0
  212. package/lib/network/reqresp/handlers/beaconBlocksByHead.d.ts.map +1 -0
  213. package/lib/network/reqresp/handlers/beaconBlocksByHead.js +61 -0
  214. package/lib/network/reqresp/handlers/beaconBlocksByHead.js.map +1 -0
  215. package/lib/network/reqresp/handlers/beaconBlocksByRange.d.ts.map +1 -1
  216. package/lib/network/reqresp/handlers/beaconBlocksByRange.js +14 -6
  217. package/lib/network/reqresp/handlers/beaconBlocksByRange.js.map +1 -1
  218. package/lib/network/reqresp/handlers/blobSidecarsByRange.d.ts.map +1 -1
  219. package/lib/network/reqresp/handlers/blobSidecarsByRange.js +11 -5
  220. package/lib/network/reqresp/handlers/blobSidecarsByRange.js.map +1 -1
  221. package/lib/network/reqresp/handlers/dataColumnSidecarsByRange.d.ts.map +1 -1
  222. package/lib/network/reqresp/handlers/dataColumnSidecarsByRange.js +17 -5
  223. package/lib/network/reqresp/handlers/dataColumnSidecarsByRange.js.map +1 -1
  224. package/lib/network/reqresp/handlers/executionPayloadEnvelopesByRange.d.ts.map +1 -1
  225. package/lib/network/reqresp/handlers/executionPayloadEnvelopesByRange.js +7 -4
  226. package/lib/network/reqresp/handlers/executionPayloadEnvelopesByRange.js.map +1 -1
  227. package/lib/network/reqresp/handlers/index.d.ts.map +1 -1
  228. package/lib/network/reqresp/handlers/index.js +5 -0
  229. package/lib/network/reqresp/handlers/index.js.map +1 -1
  230. package/lib/network/reqresp/interface.d.ts +1 -1
  231. package/lib/network/reqresp/interface.js +1 -1
  232. package/lib/network/reqresp/protocols.d.ts +1 -0
  233. package/lib/network/reqresp/protocols.d.ts.map +1 -1
  234. package/lib/network/reqresp/protocols.js +5 -0
  235. package/lib/network/reqresp/protocols.js.map +1 -1
  236. package/lib/network/reqresp/rateLimit.d.ts.map +1 -1
  237. package/lib/network/reqresp/rateLimit.js +4 -0
  238. package/lib/network/reqresp/rateLimit.js.map +1 -1
  239. package/lib/network/reqresp/score.d.ts.map +1 -1
  240. package/lib/network/reqresp/score.js +1 -0
  241. package/lib/network/reqresp/score.js.map +1 -1
  242. package/lib/network/reqresp/types.d.ts +3 -0
  243. package/lib/network/reqresp/types.d.ts.map +1 -1
  244. package/lib/network/reqresp/types.js +3 -0
  245. package/lib/network/reqresp/types.js.map +1 -1
  246. package/lib/node/nodejs.js +2 -2
  247. package/lib/node/nodejs.js.map +1 -1
  248. package/lib/sync/constants.d.ts +7 -1
  249. package/lib/sync/constants.d.ts.map +1 -1
  250. package/lib/sync/constants.js +7 -4
  251. package/lib/sync/constants.js.map +1 -1
  252. package/lib/sync/range/batch.d.ts +35 -5
  253. package/lib/sync/range/batch.d.ts.map +1 -1
  254. package/lib/sync/range/batch.js +240 -59
  255. package/lib/sync/range/batch.js.map +1 -1
  256. package/lib/sync/range/chain.d.ts +22 -4
  257. package/lib/sync/range/chain.d.ts.map +1 -1
  258. package/lib/sync/range/chain.js +102 -10
  259. package/lib/sync/range/chain.js.map +1 -1
  260. package/lib/sync/range/range.d.ts.map +1 -1
  261. package/lib/sync/range/range.js +71 -11
  262. package/lib/sync/range/range.js.map +1 -1
  263. package/lib/sync/sync.d.ts.map +1 -1
  264. package/lib/sync/sync.js +13 -0
  265. package/lib/sync/sync.js.map +1 -1
  266. package/lib/sync/types.d.ts +34 -0
  267. package/lib/sync/types.d.ts.map +1 -1
  268. package/lib/sync/types.js +34 -0
  269. package/lib/sync/types.js.map +1 -1
  270. package/lib/sync/unknownBlock.d.ts +29 -1
  271. package/lib/sync/unknownBlock.d.ts.map +1 -1
  272. package/lib/sync/unknownBlock.js +727 -61
  273. package/lib/sync/unknownBlock.js.map +1 -1
  274. package/lib/sync/utils/downloadByRange.d.ts +73 -10
  275. package/lib/sync/utils/downloadByRange.d.ts.map +1 -1
  276. package/lib/sync/utils/downloadByRange.js +213 -26
  277. package/lib/sync/utils/downloadByRange.js.map +1 -1
  278. package/lib/sync/utils/downloadByRoot.d.ts.map +1 -1
  279. package/lib/sync/utils/downloadByRoot.js +16 -2
  280. package/lib/sync/utils/downloadByRoot.js.map +1 -1
  281. package/lib/sync/utils/pendingBlocksTree.d.ts +0 -1
  282. package/lib/sync/utils/pendingBlocksTree.d.ts.map +1 -1
  283. package/lib/sync/utils/pendingBlocksTree.js +0 -9
  284. package/lib/sync/utils/pendingBlocksTree.js.map +1 -1
  285. package/lib/sync/utils/rateLimit.d.ts +2 -0
  286. package/lib/sync/utils/rateLimit.d.ts.map +1 -0
  287. package/lib/sync/utils/rateLimit.js +15 -0
  288. package/lib/sync/utils/rateLimit.js.map +1 -0
  289. package/lib/util/sszBytes.d.ts.map +1 -1
  290. package/lib/util/sszBytes.js +20 -5
  291. package/lib/util/sszBytes.js.map +1 -1
  292. package/package.json +17 -16
  293. package/src/api/impl/beacon/blocks/index.ts +22 -9
  294. package/src/api/impl/beacon/pool/index.ts +83 -1
  295. package/src/api/impl/beacon/state/utils.ts +2 -2
  296. package/src/api/impl/debug/index.ts +0 -1
  297. package/src/api/impl/lodestar/index.ts +1 -1
  298. package/src/api/impl/validator/index.ts +82 -5
  299. package/src/chain/archiveStore/archiveStore.ts +5 -5
  300. package/src/chain/archiveStore/interface.ts +4 -4
  301. package/src/chain/archiveStore/strategies/frequencyStateArchiveStrategy.ts +4 -4
  302. package/src/chain/archiveStore/utils/archiveBlocks.ts +153 -94
  303. package/src/chain/blocks/blockInput/blockInput.ts +4 -1
  304. package/src/chain/blocks/importBlock.ts +16 -48
  305. package/src/chain/blocks/importExecutionPayload.ts +126 -110
  306. package/src/chain/blocks/index.ts +71 -23
  307. package/src/chain/blocks/payloadEnvelopeInput/payloadEnvelopeInput.ts +37 -3
  308. package/src/chain/blocks/payloadEnvelopeInput/types.ts +18 -0
  309. package/src/chain/blocks/payloadEnvelopeProcessor.ts +2 -2
  310. package/src/chain/blocks/types.ts +15 -25
  311. package/src/chain/blocks/utils/chainSegment.ts +117 -17
  312. package/src/chain/blocks/verifyBlock.ts +70 -9
  313. package/src/chain/blocks/verifyBlocksExecutionPayloads.ts +6 -4
  314. package/src/chain/blocks/verifyBlocksSanityChecks.ts +26 -7
  315. package/src/chain/blocks/verifyExecutionPayloadEnvelope.ts +137 -0
  316. package/src/chain/blocks/verifyPayloadsDataAvailability.ts +7 -4
  317. package/src/chain/blocks/writePayloadEnvelopeInputToDb.ts +9 -18
  318. package/src/chain/chain.ts +65 -26
  319. package/src/chain/emitter.ts +3 -14
  320. package/src/chain/errors/blockError.ts +4 -1
  321. package/src/chain/errors/executionPayloadBid.ts +6 -0
  322. package/src/chain/errors/executionPayloadEnvelope.ts +6 -0
  323. package/src/chain/errors/index.ts +1 -0
  324. package/src/chain/errors/proposerPreferences.ts +47 -0
  325. package/src/chain/forkChoice/index.ts +2 -22
  326. package/src/chain/initState.ts +9 -1
  327. package/src/chain/interface.ts +11 -3
  328. package/src/chain/opPools/payloadAttestationPool.ts +29 -8
  329. package/src/chain/prepareNextSlot.ts +36 -14
  330. package/src/chain/produceBlock/produceBlockBody.ts +63 -13
  331. package/src/chain/regen/interface.ts +1 -0
  332. package/src/chain/regen/queued.ts +2 -7
  333. package/src/chain/regen/regen.ts +2 -7
  334. package/src/chain/seenCache/index.ts +1 -0
  335. package/src/chain/seenCache/seenPayloadEnvelopeInput.ts +89 -21
  336. package/src/chain/seenCache/seenProposerPreferences.ts +32 -0
  337. package/src/chain/validation/block.ts +1 -0
  338. package/src/chain/validation/executionPayloadBid.ts +25 -8
  339. package/src/chain/validation/executionPayloadEnvelope.ts +20 -10
  340. package/src/chain/validation/proposerPreferences.ts +110 -0
  341. package/src/db/repositories/executionPayloadEnvelopeArchive.ts +1 -1
  342. package/src/execution/engine/http.ts +21 -14
  343. package/src/execution/engine/interface.ts +1 -0
  344. package/src/execution/engine/mock.ts +8 -1
  345. package/src/execution/engine/types.ts +41 -0
  346. package/src/metrics/metrics/lodestar.ts +4 -0
  347. package/src/network/gossip/interface.ts +6 -0
  348. package/src/network/gossip/scoringParameters.ts +14 -1
  349. package/src/network/gossip/topic.ts +6 -0
  350. package/src/network/interface.ts +2 -0
  351. package/src/network/network.ts +24 -1
  352. package/src/network/processor/gossipHandlers.ts +56 -20
  353. package/src/network/processor/gossipQueues/index.ts +5 -0
  354. package/src/network/processor/index.ts +6 -5
  355. package/src/network/reqresp/ReqRespBeaconNode.ts +1 -0
  356. package/src/network/reqresp/handlers/beaconBlocksByHead.ts +91 -0
  357. package/src/network/reqresp/handlers/beaconBlocksByRange.ts +14 -6
  358. package/src/network/reqresp/handlers/blobSidecarsByRange.ts +11 -5
  359. package/src/network/reqresp/handlers/dataColumnSidecarsByRange.ts +17 -5
  360. package/src/network/reqresp/handlers/executionPayloadEnvelopesByRange.ts +7 -4
  361. package/src/network/reqresp/handlers/index.ts +5 -0
  362. package/src/network/reqresp/interface.ts +1 -1
  363. package/src/network/reqresp/protocols.ts +6 -0
  364. package/src/network/reqresp/rateLimit.ts +4 -0
  365. package/src/network/reqresp/score.ts +1 -0
  366. package/src/network/reqresp/types.ts +5 -0
  367. package/src/node/nodejs.ts +2 -2
  368. package/src/sync/constants.ts +8 -4
  369. package/src/sync/range/batch.ts +320 -67
  370. package/src/sync/range/chain.ts +130 -13
  371. package/src/sync/range/range.ts +86 -11
  372. package/src/sync/sync.ts +13 -1
  373. package/src/sync/types.ts +72 -0
  374. package/src/sync/unknownBlock.ts +915 -65
  375. package/src/sync/utils/downloadByRange.ts +386 -39
  376. package/src/sync/utils/downloadByRoot.ts +24 -2
  377. package/src/sync/utils/pendingBlocksTree.ts +0 -15
  378. package/src/sync/utils/rateLimit.ts +16 -0
  379. package/src/util/sszBytes.ts +25 -5
@@ -1,6 +1,14 @@
1
1
  import {routes} from "@lodestar/api";
2
2
  import {ChainForkConfig} from "@lodestar/config";
3
- import {ForkPostDeneb, ForkPostFulu, ForkPreFulu, isForkPostDeneb, isForkPostFulu} from "@lodestar/params";
3
+ import {
4
+ ForkPostDeneb,
5
+ ForkPostFulu,
6
+ ForkPostGloas,
7
+ ForkPreFulu,
8
+ isForkPostDeneb,
9
+ isForkPostFulu,
10
+ isForkPostGloas,
11
+ } from "@lodestar/params";
4
12
  import {BlobIndex, ColumnIndex, SignedBeaconBlock, Slot, deneb, fulu} from "@lodestar/types";
5
13
  import {LodestarError, byteArrayEquals, fromHex, prettyPrintIndices, toHex, toRootHex} from "@lodestar/utils";
6
14
  import {isBlockInputBlobs, isBlockInputColumns} from "../../chain/blocks/blockInput/blockInput.js";
@@ -107,6 +115,17 @@ export async function downloadByRoot({
107
115
  });
108
116
  }
109
117
 
118
+ if (isForkPostGloas(blockInput.forkName)) {
119
+ chain.seenPayloadEnvelopeInputCache.add({
120
+ blockRootHex: rootHex,
121
+ block: blockInput.getBlock() as SignedBeaconBlock<ForkPostGloas>,
122
+ forkName: blockInput.forkName,
123
+ sampledColumns: chain.custodyConfig.sampledColumns,
124
+ custodyColumns: chain.custodyConfig.custodyColumns,
125
+ timeCreatedSec: Date.now() / 1000,
126
+ });
127
+ }
128
+
110
129
  const hasAllDataPreDownload = blockInput.hasBlockAndAllData();
111
130
 
112
131
  if (isBlockInputBlobs(blockInput) && !hasAllDataPreDownload) {
@@ -263,7 +282,10 @@ export async function fetchByRoot({
263
282
  blockRoot,
264
283
  });
265
284
  const forkName = config.getForkName(block.message.slot);
266
- if (isForkPostFulu(forkName)) {
285
+ if (isForkPostGloas(forkName)) {
286
+ // Post-gloas block sync only needs the block body. Payload columns stay on the
287
+ // payload/envelope path and are queued independently in the network processor.
288
+ } else if (isForkPostFulu(forkName)) {
267
289
  columnSidecarResult = await fetchAndValidateColumns({
268
290
  config,
269
291
  chain,
@@ -40,21 +40,6 @@ function addToDescendantBlocks(
40
40
  return descendantBlocks;
41
41
  }
42
42
 
43
- export function getDescendantBlocks(
44
- blockRootHex: RootHex,
45
- blocks: Map<RootHex, BlockInputSyncCacheItem>
46
- ): BlockInputSyncCacheItem[] {
47
- const descendantBlocks: BlockInputSyncCacheItem[] = [];
48
-
49
- for (const block of blocks.values()) {
50
- if ((isPendingBlockInput(block) ? block.blockInput.parentRootHex : undefined) === blockRootHex) {
51
- descendantBlocks.push(block);
52
- }
53
- }
54
-
55
- return descendantBlocks;
56
- }
57
-
58
43
  export type UnknownAndAncestorBlocks = {
59
44
  unknowns: BlockInputSyncCacheItem[];
60
45
  ancestors: PendingBlockInput[];
@@ -0,0 +1,16 @@
1
+ import {RequestError, RequestErrorCode} from "@lodestar/reqresp";
2
+ import {RATE_LIMITED_PEER_BACKOFF_MS} from "../constants.js";
3
+
4
+ export function getRateLimitedUntilMs(e: unknown): number | null {
5
+ if (!(e instanceof RequestError)) {
6
+ return null;
7
+ }
8
+
9
+ switch (e.type.code) {
10
+ case RequestErrorCode.RESP_RATE_LIMITED:
11
+ case RequestErrorCode.REQUEST_SELF_RATE_LIMITED:
12
+ return e.type.rateLimitedUntilMs ?? Date.now() + RATE_LIMITED_PEER_BACKOFF_MS;
13
+ default:
14
+ return null;
15
+ }
16
+ }
@@ -558,10 +558,11 @@ export function getBeaconBlockRootFromDataColumnSidecarSerialized(data: Uint8Arr
558
558
  * └─ ExecutionPayloadEnvelope (starts at byte 100):
559
559
  * ├─ 4 bytes: payload offset
560
560
  * ├─ 4 bytes: executionRequests offset
561
- * ├─ 8 bytes: builderIndex (offset 108-115)
562
- * ├─ 32 bytes: beaconBlockRoot (offset 116-147)
563
- * ├─ 8 bytes: slot (offset 148-155)
564
- * └─ 32 bytes: stateRoot (offset 156-187)
561
+ * ├─ 8 bytes: builderIndex (offset 108-115)
562
+ * ├─ 32 bytes: beaconBlockRoot (offset 116-147)
563
+ * ├─ 32 bytes: parentBeaconBlockRoot (offset 148-179) — new in Gloas alpha.6 (consensus-specs#5152)
564
+ * └─ variable: payload data (starts at envelope + 80)
565
+ * └─ ExecutionPayload fixed portion includes slotNumber at offset 532
565
566
  */
566
567
  const SIGNED_EXECUTION_PAYLOAD_ENVELOPE_MESSAGE_OFFSET = 4;
567
568
  const SIGNED_EXECUTION_PAYLOAD_ENVELOPE_SIGNATURE_SIZE = 96;
@@ -576,8 +577,27 @@ const BEACON_BLOCK_ROOT_OFFSET_IN_SIGNED_EXECUTION_PAYLOAD_ENVELOPE =
576
577
  EXECUTION_PAYLOAD_ENVELOPE_REQUESTS_OFFSET +
577
578
  EXECUTION_PAYLOAD_ENVELOPE_BUILDER_INDEX_SIZE; // 116
578
579
 
580
+ // Envelope fixed portion: payload_offset(4) + requests_offset(4) + builderIndex(8) + beaconBlockRoot(32) + parentBeaconBlockRoot(32) = 80
581
+ const EXECUTION_PAYLOAD_ENVELOPE_FIXED_SIZE =
582
+ EXECUTION_PAYLOAD_ENVELOPE_PAYLOAD_OFFSET +
583
+ EXECUTION_PAYLOAD_ENVELOPE_REQUESTS_OFFSET +
584
+ EXECUTION_PAYLOAD_ENVELOPE_BUILDER_INDEX_SIZE +
585
+ ROOT_SIZE +
586
+ ROOT_SIZE; // 80
587
+
588
+ // slotNumber offset within ExecutionPayload fixed portion:
589
+ // parentHash(32) + feeRecipient(20) + stateRoot(32) + receiptsRoot(32) + logsBloom(256) +
590
+ // prevRandao(32) + blockNumber(8) + gasLimit(8) + gasUsed(8) + timestamp(8) +
591
+ // extraData_offset(4) + baseFeePerGas(32) + blockHash(32) + transactions_offset(4) +
592
+ // withdrawals_offset(4) + blobGasUsed(8) + excessBlobGas(8) + blockAccessList_offset(4) = 532
593
+ const SLOT_NUMBER_OFFSET_IN_EXECUTION_PAYLOAD = 532;
594
+
595
+ // Payload data starts right after the envelope's fixed portion
596
+ const ENVELOPE_START_IN_SIGNED =
597
+ SIGNED_EXECUTION_PAYLOAD_ENVELOPE_MESSAGE_OFFSET + SIGNED_EXECUTION_PAYLOAD_ENVELOPE_SIGNATURE_SIZE; // 100
598
+
579
599
  const SLOT_OFFSET_IN_SIGNED_EXECUTION_PAYLOAD_ENVELOPE =
580
- BEACON_BLOCK_ROOT_OFFSET_IN_SIGNED_EXECUTION_PAYLOAD_ENVELOPE + ROOT_SIZE; // 148
600
+ ENVELOPE_START_IN_SIGNED + EXECUTION_PAYLOAD_ENVELOPE_FIXED_SIZE + SLOT_NUMBER_OFFSET_IN_EXECUTION_PAYLOAD; // 100 + 80 + 532 = 712
581
601
 
582
602
  export function getSlotFromExecutionPayloadEnvelopeSerialized(data: Uint8Array): Slot | null {
583
603
  if (data.length < SLOT_OFFSET_IN_SIGNED_EXECUTION_PAYLOAD_ENVELOPE + SLOT_SIZE) {