@lodestar/beacon-node 1.34.0-dev.6fe1606bdb → 1.34.0-dev.74da098ba7

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 (274) hide show
  1. package/lib/api/impl/beacon/blocks/index.js +162 -55
  2. package/lib/api/impl/beacon/blocks/index.js.map +1 -1
  3. package/lib/api/impl/beacon/pool/index.js +5 -5
  4. package/lib/api/impl/beacon/pool/index.js.map +1 -1
  5. package/lib/api/impl/beacon/state/index.js +15 -16
  6. package/lib/api/impl/beacon/state/index.js.map +1 -1
  7. package/lib/api/impl/debug/index.d.ts +1 -1
  8. package/lib/api/impl/debug/index.js +24 -1
  9. package/lib/api/impl/debug/index.js.map +1 -1
  10. package/lib/api/impl/validator/index.js +45 -28
  11. package/lib/api/impl/validator/index.js.map +1 -1
  12. package/lib/api/impl/validator/utils.d.ts +3 -3
  13. package/lib/api/impl/validator/utils.js +2 -2
  14. package/lib/api/impl/validator/utils.js.map +1 -1
  15. package/lib/chain/archiveStore/archiveStore.d.ts +1 -1
  16. package/lib/chain/archiveStore/archiveStore.js +2 -2
  17. package/lib/chain/archiveStore/interface.d.ts +1 -1
  18. package/lib/chain/archiveStore/utils/archiveBlocks.d.ts +1 -1
  19. package/lib/chain/archiveStore/utils/archiveBlocks.js +89 -22
  20. package/lib/chain/archiveStore/utils/archiveBlocks.js.map +1 -1
  21. package/lib/chain/beaconProposerCache.d.ts +1 -0
  22. package/lib/chain/beaconProposerCache.js +3 -0
  23. package/lib/chain/beaconProposerCache.js.map +1 -1
  24. package/lib/chain/blocks/importBlock.js +3 -2
  25. package/lib/chain/blocks/importBlock.js.map +1 -1
  26. package/lib/chain/blocks/types.d.ts +66 -23
  27. package/lib/chain/blocks/types.js +39 -5
  28. package/lib/chain/blocks/types.js.map +1 -1
  29. package/lib/chain/blocks/utils/zebraBanner.d.ts +2 -0
  30. package/lib/chain/blocks/utils/zebraBanner.js +45 -0
  31. package/lib/chain/blocks/utils/zebraBanner.js.map +1 -0
  32. package/lib/chain/blocks/verifyBlock.js +18 -5
  33. package/lib/chain/blocks/verifyBlock.js.map +1 -1
  34. package/lib/chain/blocks/verifyBlocksDataAvailability.js +21 -10
  35. package/lib/chain/blocks/verifyBlocksDataAvailability.js.map +1 -1
  36. package/lib/chain/blocks/writeBlockInputToDb.js +63 -16
  37. package/lib/chain/blocks/writeBlockInputToDb.js.map +1 -1
  38. package/lib/chain/chain.d.ts +18 -101
  39. package/lib/chain/chain.js +107 -68
  40. package/lib/chain/chain.js.map +1 -1
  41. package/lib/chain/emitter.d.ts +18 -2
  42. package/lib/chain/emitter.js +13 -0
  43. package/lib/chain/emitter.js.map +1 -1
  44. package/lib/chain/errors/dataColumnSidecarError.d.ts +69 -0
  45. package/lib/chain/errors/dataColumnSidecarError.js +21 -0
  46. package/lib/chain/errors/dataColumnSidecarError.js.map +1 -0
  47. package/lib/chain/errors/index.d.ts +1 -0
  48. package/lib/chain/errors/index.js +1 -0
  49. package/lib/chain/errors/index.js.map +1 -1
  50. package/lib/chain/interface.d.ts +6 -7
  51. package/lib/chain/interface.js.map +1 -1
  52. package/lib/chain/opPools/aggregatedAttestationPool.js +13 -3
  53. package/lib/chain/opPools/aggregatedAttestationPool.js.map +1 -1
  54. package/lib/chain/opPools/attestationPool.d.ts +1 -1
  55. package/lib/chain/opPools/attestationPool.js +7 -7
  56. package/lib/chain/options.d.ts +4 -1
  57. package/lib/chain/options.js +1 -0
  58. package/lib/chain/options.js.map +1 -1
  59. package/lib/chain/prepareNextSlot.js +2 -1
  60. package/lib/chain/prepareNextSlot.js.map +1 -1
  61. package/lib/chain/produceBlock/produceBlockBody.d.ts +30 -16
  62. package/lib/chain/produceBlock/produceBlockBody.js +28 -28
  63. package/lib/chain/produceBlock/produceBlockBody.js.map +1 -1
  64. package/lib/chain/produceBlock/validateBlobsAndKzgCommitments.d.ts +6 -3
  65. package/lib/chain/produceBlock/validateBlobsAndKzgCommitments.js +28 -4
  66. package/lib/chain/produceBlock/validateBlobsAndKzgCommitments.js.map +1 -1
  67. package/lib/chain/seenCache/seenGossipBlockInput.d.ts +64 -18
  68. package/lib/chain/seenCache/seenGossipBlockInput.js +321 -53
  69. package/lib/chain/seenCache/seenGossipBlockInput.js.map +1 -1
  70. package/lib/chain/validation/aggregateAndProof.d.ts +1 -1
  71. package/lib/chain/validation/aggregateAndProof.js +8 -8
  72. package/lib/chain/validation/aggregateAndProof.js.map +1 -1
  73. package/lib/chain/validation/attestation.d.ts +3 -3
  74. package/lib/chain/validation/attestation.js +10 -10
  75. package/lib/chain/validation/attestation.js.map +1 -1
  76. package/lib/chain/validation/dataColumnSidecar.d.ts +29 -0
  77. package/lib/chain/validation/dataColumnSidecar.js +257 -0
  78. package/lib/chain/validation/dataColumnSidecar.js.map +1 -0
  79. package/lib/db/beacon.d.ts +3 -1
  80. package/lib/db/beacon.js +3 -1
  81. package/lib/db/beacon.js.map +1 -1
  82. package/lib/db/buckets.d.ts +3 -1
  83. package/lib/db/buckets.js +2 -0
  84. package/lib/db/buckets.js.map +1 -1
  85. package/lib/db/interface.d.ts +3 -1
  86. package/lib/db/repositories/dataColumnSidecar.d.ts +26 -0
  87. package/lib/db/repositories/dataColumnSidecar.js +39 -0
  88. package/lib/db/repositories/dataColumnSidecar.js.map +1 -0
  89. package/lib/db/repositories/dataColumnSidecarArchive.d.ts +24 -0
  90. package/lib/db/repositories/dataColumnSidecarArchive.js +39 -0
  91. package/lib/db/repositories/dataColumnSidecarArchive.js.map +1 -0
  92. package/lib/db/repositories/index.d.ts +2 -0
  93. package/lib/db/repositories/index.js +2 -0
  94. package/lib/db/repositories/index.js.map +1 -1
  95. package/lib/execution/builder/http.d.ts +20 -4
  96. package/lib/execution/builder/http.js +30 -11
  97. package/lib/execution/builder/http.js.map +1 -1
  98. package/lib/execution/builder/interface.d.ts +5 -4
  99. package/lib/execution/engine/http.d.ts +8 -5
  100. package/lib/execution/engine/http.js +65 -46
  101. package/lib/execution/engine/http.js.map +1 -1
  102. package/lib/execution/engine/interface.d.ts +6 -13
  103. package/lib/execution/engine/interface.js +1 -1
  104. package/lib/execution/engine/interface.js.map +1 -1
  105. package/lib/execution/engine/mock.d.ts +5 -1
  106. package/lib/execution/engine/mock.js +58 -15
  107. package/lib/execution/engine/mock.js.map +1 -1
  108. package/lib/execution/engine/types.d.ts +15 -5
  109. package/lib/execution/engine/types.js +8 -2
  110. package/lib/execution/engine/types.js.map +1 -1
  111. package/lib/metrics/metrics/beacon.d.ts +16 -5
  112. package/lib/metrics/metrics/beacon.js +66 -14
  113. package/lib/metrics/metrics/beacon.js.map +1 -1
  114. package/lib/metrics/metrics/lodestar.d.ts +29 -1
  115. package/lib/metrics/metrics/lodestar.js +59 -0
  116. package/lib/metrics/metrics/lodestar.js.map +1 -1
  117. package/lib/network/core/metrics.d.ts +10 -3
  118. package/lib/network/core/metrics.js +22 -4
  119. package/lib/network/core/metrics.js.map +1 -1
  120. package/lib/network/core/networkCore.d.ts +15 -4
  121. package/lib/network/core/networkCore.js +73 -23
  122. package/lib/network/core/networkCore.js.map +1 -1
  123. package/lib/network/core/networkCoreWorker.js +2 -0
  124. package/lib/network/core/networkCoreWorker.js.map +1 -1
  125. package/lib/network/core/networkCoreWorkerHandler.d.ts +5 -3
  126. package/lib/network/core/networkCoreWorkerHandler.js +6 -1
  127. package/lib/network/core/networkCoreWorkerHandler.js.map +1 -1
  128. package/lib/network/core/types.d.ts +7 -4
  129. package/lib/network/events.d.ts +4 -2
  130. package/lib/network/events.js.map +1 -1
  131. package/lib/network/gossip/gossipsub.d.ts +2 -2
  132. package/lib/network/gossip/gossipsub.js +8 -6
  133. package/lib/network/gossip/gossipsub.js.map +1 -1
  134. package/lib/network/gossip/interface.d.ts +8 -1
  135. package/lib/network/gossip/interface.js +1 -0
  136. package/lib/network/gossip/interface.js.map +1 -1
  137. package/lib/network/gossip/scoringParameters.d.ts +6 -2
  138. package/lib/network/gossip/scoringParameters.js.map +1 -1
  139. package/lib/network/gossip/topic.d.ts +2033 -1484
  140. package/lib/network/gossip/topic.js +29 -1
  141. package/lib/network/gossip/topic.js.map +1 -1
  142. package/lib/network/interface.d.ts +11 -3
  143. package/lib/network/metadata.d.ts +9 -5
  144. package/lib/network/metadata.js +26 -5
  145. package/lib/network/metadata.js.map +1 -1
  146. package/lib/network/network.d.ts +14 -4
  147. package/lib/network/network.js +73 -11
  148. package/lib/network/network.js.map +1 -1
  149. package/lib/network/networkConfig.d.ts +12 -0
  150. package/lib/network/networkConfig.js +2 -0
  151. package/lib/network/networkConfig.js.map +1 -0
  152. package/lib/network/options.d.ts +1 -0
  153. package/lib/network/options.js +7 -2
  154. package/lib/network/options.js.map +1 -1
  155. package/lib/network/peers/discover.d.ts +8 -3
  156. package/lib/network/peers/discover.js +99 -14
  157. package/lib/network/peers/discover.js.map +1 -1
  158. package/lib/network/peers/peerManager.d.ts +10 -4
  159. package/lib/network/peers/peerManager.js +108 -19
  160. package/lib/network/peers/peerManager.js.map +1 -1
  161. package/lib/network/peers/peersData.d.ts +17 -3
  162. package/lib/network/peers/peersData.js.map +1 -1
  163. package/lib/network/peers/score/interface.d.ts +1 -1
  164. package/lib/network/peers/score/score.d.ts +2 -2
  165. package/lib/network/peers/score/score.js +4 -1
  166. package/lib/network/peers/score/score.js.map +1 -1
  167. package/lib/network/peers/score/store.d.ts +3 -1
  168. package/lib/network/peers/score/store.js +6 -2
  169. package/lib/network/peers/score/store.js.map +1 -1
  170. package/lib/network/peers/utils/assertPeerRelevance.d.ts +7 -3
  171. package/lib/network/peers/utils/assertPeerRelevance.js +10 -1
  172. package/lib/network/peers/utils/assertPeerRelevance.js.map +1 -1
  173. package/lib/network/peers/utils/prioritizePeers.d.ts +19 -7
  174. package/lib/network/peers/utils/prioritizePeers.js +42 -6
  175. package/lib/network/peers/utils/prioritizePeers.js.map +1 -1
  176. package/lib/network/processor/extractSlotRootFns.js +8 -1
  177. package/lib/network/processor/extractSlotRootFns.js.map +1 -1
  178. package/lib/network/processor/gossipHandlers.js +169 -20
  179. package/lib/network/processor/gossipHandlers.js.map +1 -1
  180. package/lib/network/processor/gossipQueues/index.js +5 -0
  181. package/lib/network/processor/gossipQueues/index.js.map +1 -1
  182. package/lib/network/processor/index.js +1 -0
  183. package/lib/network/processor/index.js.map +1 -1
  184. package/lib/network/reqresp/ReqRespBeaconNode.d.ts +2 -2
  185. package/lib/network/reqresp/ReqRespBeaconNode.js +36 -14
  186. package/lib/network/reqresp/ReqRespBeaconNode.js.map +1 -1
  187. package/lib/network/reqresp/beaconBlocksMaybeBlobsByRange.d.ts +24 -4
  188. package/lib/network/reqresp/beaconBlocksMaybeBlobsByRange.js +259 -20
  189. package/lib/network/reqresp/beaconBlocksMaybeBlobsByRange.js.map +1 -1
  190. package/lib/network/reqresp/beaconBlocksMaybeBlobsByRoot.d.ts +37 -6
  191. package/lib/network/reqresp/beaconBlocksMaybeBlobsByRoot.js +283 -28
  192. package/lib/network/reqresp/beaconBlocksMaybeBlobsByRoot.js.map +1 -1
  193. package/lib/network/reqresp/handlers/beaconBlocksByRange.d.ts +1 -1
  194. package/lib/network/reqresp/handlers/beaconBlocksByRange.js +3 -3
  195. package/lib/network/reqresp/handlers/beaconBlocksByRange.js.map +1 -1
  196. package/lib/network/reqresp/handlers/beaconBlocksByRoot.d.ts +2 -2
  197. package/lib/network/reqresp/handlers/beaconBlocksByRoot.js.map +1 -1
  198. package/lib/network/reqresp/handlers/blobSidecarsByRange.d.ts +2 -2
  199. package/lib/network/reqresp/handlers/blobSidecarsByRange.js +2 -3
  200. package/lib/network/reqresp/handlers/blobSidecarsByRange.js.map +1 -1
  201. package/lib/network/reqresp/handlers/dataColumnSidecarsByRange.d.ts +8 -0
  202. package/lib/network/reqresp/handlers/dataColumnSidecarsByRange.js +73 -0
  203. package/lib/network/reqresp/handlers/dataColumnSidecarsByRange.js.map +1 -0
  204. package/lib/network/reqresp/handlers/dataColumnSidecarsByRoot.d.ts +6 -0
  205. package/lib/network/reqresp/handlers/dataColumnSidecarsByRoot.js +36 -0
  206. package/lib/network/reqresp/handlers/dataColumnSidecarsByRoot.js.map +1 -0
  207. package/lib/network/reqresp/handlers/index.js +13 -2
  208. package/lib/network/reqresp/handlers/index.js.map +1 -1
  209. package/lib/network/reqresp/protocols.d.ts +4 -0
  210. package/lib/network/reqresp/protocols.js +20 -0
  211. package/lib/network/reqresp/protocols.js.map +1 -1
  212. package/lib/network/reqresp/rateLimit.js +19 -3
  213. package/lib/network/reqresp/rateLimit.js.map +1 -1
  214. package/lib/network/reqresp/score.js +3 -0
  215. package/lib/network/reqresp/score.js.map +1 -1
  216. package/lib/network/reqresp/types.d.ts +13 -6
  217. package/lib/network/reqresp/types.js +14 -5
  218. package/lib/network/reqresp/types.js.map +1 -1
  219. package/lib/network/statusCache.d.ts +5 -5
  220. package/lib/network/statusCache.js.map +1 -1
  221. package/lib/network/subnets/interface.d.ts +3 -0
  222. package/lib/network/subnets/interface.js +14 -1
  223. package/lib/network/subnets/interface.js.map +1 -1
  224. package/lib/network/subnets/syncnetsService.js +4 -5
  225. package/lib/network/subnets/syncnetsService.js.map +1 -1
  226. package/lib/node/nodejs.js +1 -0
  227. package/lib/node/nodejs.js.map +1 -1
  228. package/lib/sync/constants.d.ts +18 -3
  229. package/lib/sync/constants.js +21 -3
  230. package/lib/sync/constants.js.map +1 -1
  231. package/lib/sync/interface.d.ts +2 -2
  232. package/lib/sync/interface.js +1 -1
  233. package/lib/sync/interface.js.map +1 -1
  234. package/lib/sync/range/batch.d.ts +17 -2
  235. package/lib/sync/range/batch.js +39 -7
  236. package/lib/sync/range/batch.js.map +1 -1
  237. package/lib/sync/range/chain.d.ts +15 -1
  238. package/lib/sync/range/chain.js +124 -33
  239. package/lib/sync/range/chain.js.map +1 -1
  240. package/lib/sync/range/range.d.ts +3 -2
  241. package/lib/sync/range/range.js +9 -3
  242. package/lib/sync/range/range.js.map +1 -1
  243. package/lib/sync/range/utils/chainTarget.d.ts +5 -1
  244. package/lib/sync/range/utils/chainTarget.js +26 -1
  245. package/lib/sync/range/utils/chainTarget.js.map +1 -1
  246. package/lib/sync/range/utils/peerBalancer.d.ts +19 -5
  247. package/lib/sync/range/utils/peerBalancer.js +104 -10
  248. package/lib/sync/range/utils/peerBalancer.js.map +1 -1
  249. package/lib/sync/sync.js +1 -1
  250. package/lib/sync/sync.js.map +1 -1
  251. package/lib/sync/unknownBlock.d.ts +54 -5
  252. package/lib/sync/unknownBlock.js +321 -61
  253. package/lib/sync/unknownBlock.js.map +1 -1
  254. package/lib/sync/utils/remoteSyncType.d.ts +4 -4
  255. package/lib/sync/utils/remoteSyncType.js.map +1 -1
  256. package/lib/util/blobs.d.ts +16 -4
  257. package/lib/util/blobs.js +122 -5
  258. package/lib/util/blobs.js.map +1 -1
  259. package/lib/util/dataColumns.d.ts +137 -0
  260. package/lib/util/dataColumns.js +362 -0
  261. package/lib/util/dataColumns.js.map +1 -0
  262. package/lib/util/metadata.d.ts +5 -0
  263. package/lib/util/metadata.js +10 -0
  264. package/lib/util/metadata.js.map +1 -1
  265. package/lib/util/sszBytes.d.ts +1 -0
  266. package/lib/util/sszBytes.js +17 -0
  267. package/lib/util/sszBytes.js.map +1 -1
  268. package/lib/util/types.d.ts +7 -0
  269. package/lib/util/types.js +3 -0
  270. package/lib/util/types.js.map +1 -1
  271. package/package.json +19 -20
  272. package/lib/network/reqresp/handlers/status.d.ts +0 -4
  273. package/lib/network/reqresp/handlers/status.js +0 -11
  274. package/lib/network/reqresp/handlers/status.js.map +0 -1
@@ -0,0 +1 @@
1
+ {"version":3,"file":"dataColumnSidecarError.js","sourceRoot":"","sources":["../../../src/chain/errors/dataColumnSidecarError.ts"],"names":[],"mappings":"AACA,OAAO,EAAC,iBAAiB,EAAC,MAAM,uBAAuB,CAAC;AAExD,MAAM,CAAN,IAAY,0BAgBX;AAhBD,WAAY,0BAA0B;IACpC,uFAAyD,CAAA;IACzD,yFAA2D,CAAA;IAC3D,iGAAmE,CAAA;IACnE,yFAA2D,CAAA;IAC3D,+FAAiE,CAAA;IAEjE,qDAAqD;IACrD,uFAAyD,CAAA;IACzD,mFAAqD,CAAA;IACrD,mHAAqF,CAAA;IACrF,yFAA2D,CAAA;IAC3D,uGAAyE,CAAA;IACzE,iHAAmF,CAAA;IACnF,2GAA6E,CAAA;IAC7E,iGAAmE,CAAA;AACrE,CAAC,EAhBW,0BAA0B,KAA1B,0BAA0B,QAgBrC;AAsBD,MAAM,OAAO,4BAA6B,SAAQ,iBAA6C;CAAG"}
@@ -1,6 +1,7 @@
1
1
  export * from "./attestationError.js";
2
2
  export * from "./attesterSlashingError.js";
3
3
  export * from "./blobSidecarError.js";
4
+ export * from "./dataColumnSidecarError.js";
4
5
  export * from "./blockError.js";
5
6
  export * from "./gossipValidation.js";
6
7
  export * from "./proposerSlashingError.js";
@@ -1,6 +1,7 @@
1
1
  export * from "./attestationError.js";
2
2
  export * from "./attesterSlashingError.js";
3
3
  export * from "./blobSidecarError.js";
4
+ export * from "./dataColumnSidecarError.js";
4
5
  export * from "./blockError.js";
5
6
  export * from "./gossipValidation.js";
6
7
  export * from "./proposerSlashingError.js";
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/chain/errors/index.ts"],"names":[],"mappings":"AAAA,cAAc,uBAAuB,CAAC;AACtC,cAAc,4BAA4B,CAAC;AAC3C,cAAc,uBAAuB,CAAC;AACtC,cAAc,iBAAiB,CAAC;AAChC,cAAc,uBAAuB,CAAC;AACtC,cAAc,4BAA4B,CAAC;AAC3C,cAAc,yBAAyB,CAAC;AACxC,cAAc,yBAAyB,CAAC;AACxC,cAAc,gCAAgC,CAAC"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/chain/errors/index.ts"],"names":[],"mappings":"AAAA,cAAc,uBAAuB,CAAC;AACtC,cAAc,4BAA4B,CAAC;AAC3C,cAAc,uBAAuB,CAAC;AACtC,cAAc,6BAA6B,CAAC;AAC5C,cAAc,iBAAiB,CAAC;AAChC,cAAc,uBAAuB,CAAC;AACtC,cAAc,4BAA4B,CAAC;AAC3C,cAAc,yBAAyB,CAAC;AACxC,cAAc,yBAAyB,CAAC;AACxC,cAAc,gCAAgC,CAAC"}
@@ -3,13 +3,14 @@ import { CompositeTypeAny, TreeView, Type } from "@chainsafe/ssz";
3
3
  import { BeaconConfig } from "@lodestar/config";
4
4
  import { CheckpointWithHex, IForkChoice, ProtoBlock } from "@lodestar/fork-choice";
5
5
  import { BeaconStateAllForks, CachedBeaconStateAllForks, EpochShuffling, Index2PubkeyCache } from "@lodestar/state-transition";
6
- import { BeaconBlock, BlindedBeaconBlock, Epoch, ExecutionPayload, Root, RootHex, SignedBeaconBlock, Slot, UintNum64, ValidatorIndex, Wei, altair, capella, deneb, phase0 } from "@lodestar/types";
6
+ import { BeaconBlock, BlindedBeaconBlock, Epoch, Root, RootHex, SignedBeaconBlock, Slot, Status, UintNum64, ValidatorIndex, Wei, altair, capella, phase0 } from "@lodestar/types";
7
7
  import { Logger } from "@lodestar/utils";
8
8
  import { IEth1ForBlockProduction } from "../eth1/index.js";
9
9
  import { IExecutionBuilder, IExecutionEngine } from "../execution/index.js";
10
10
  import { Metrics } from "../metrics/metrics.js";
11
11
  import { BufferPool } from "../util/bufferPool.js";
12
12
  import { IClock } from "../util/clock.js";
13
+ import { CustodyConfig } from "../util/dataColumns.js";
13
14
  import { SerializedCache } from "../util/serializedCache.js";
14
15
  import { IArchiveStore } from "./archiveStore/interface.js";
15
16
  import { CheckpointBalancesCache } from "./balancesCache.js";
@@ -22,7 +23,7 @@ import { LightClientServer } from "./lightClient/index.js";
22
23
  import { AggregatedAttestationPool } from "./opPools/aggregatedAttestationPool.js";
23
24
  import { AttestationPool, OpPool, SyncCommitteeMessagePool, SyncContributionAndProofPool } from "./opPools/index.js";
24
25
  import { IChainOptions } from "./options.js";
25
- import { AssembledBlockType, BlockAttributes, BlockType } from "./produceBlock/produceBlockBody.js";
26
+ import { AssembledBlockType, BlockAttributes, BlockType, ProduceResult } from "./produceBlock/produceBlockBody.js";
26
27
  import { IStateRegenerator, RegenCaller } from "./regen/index.js";
27
28
  import { ReprocessController } from "./reprocess.js";
28
29
  import { AttestationsRewards } from "./rewards/attestationsRewards.js";
@@ -58,6 +59,7 @@ export interface IBeaconChain {
58
59
  readonly executionEngine: IExecutionEngine;
59
60
  readonly executionBuilder?: IExecutionBuilder;
60
61
  readonly config: BeaconConfig;
62
+ readonly custodyConfig: CustodyConfig;
61
63
  readonly logger: Logger;
62
64
  readonly metrics: Metrics | null;
63
65
  readonly validatorMonitor: ValidatorMonitor | null;
@@ -91,10 +93,8 @@ export interface IBeaconChain {
91
93
  readonly seenBlockAttesters: SeenBlockAttesters;
92
94
  readonly beaconProposerCache: BeaconProposerCache;
93
95
  readonly checkpointBalancesCache: CheckpointBalancesCache;
94
- readonly producedContentsCache: Map<BlockHash, deneb.Contents>;
95
- readonly producedBlockRoot: Map<RootHex, ExecutionPayload | null>;
96
+ readonly blockProductionCache: Map<RootHex, ProduceResult>;
96
97
  readonly shufflingCache: ShufflingCache;
97
- readonly producedBlindedBlockRoot: Set<RootHex>;
98
98
  readonly blacklistedBlocks: Map<RootHex, Slot | null>;
99
99
  readonly serializedCache: SerializedCache;
100
100
  readonly opts: IChainOptions;
@@ -159,7 +159,6 @@ export interface IBeaconChain {
159
159
  executionOptimistic: boolean;
160
160
  finalized: boolean;
161
161
  } | null>;
162
- getContents(beaconBlock: deneb.BeaconBlock): deneb.Contents;
163
162
  produceCommonBlockBody(blockAttributes: BlockAttributes): Promise<CommonBlockBody>;
164
163
  produceBlock(blockAttributes: BlockAttributes & {
165
164
  commonBlockBodyPromise?: Promise<CommonBlockBody>;
@@ -180,7 +179,7 @@ export interface IBeaconChain {
180
179
  processBlock(block: BlockInput, opts?: ImportBlockOpts): Promise<void>;
181
180
  /** Process a chain of blocks until complete */
182
181
  processChainSegment(blocks: BlockInput[], opts?: ImportBlockOpts): Promise<void>;
183
- getStatus(): phase0.Status;
182
+ getStatus(): Status;
184
183
  recomputeForkChoiceHead(caller: ForkchoiceCaller): ProtoBlock;
185
184
  /** When proposerBoostReorg is enabled, this is called at slot n-1 to predict the head block to build on if we are proposing at slot n */
186
185
  predictProposerHead(slot: Slot): ProtoBlock;
@@ -1 +1 @@
1
- {"version":3,"file":"interface.js","sourceRoot":"","sources":["../../src/chain/interface.ts"],"names":[],"mappings":"AA6CA,OAAO,EAAsC,SAAS,EAAC,MAAM,oCAAoC,CAAC;AAqBlG,OAAO,EAAC,SAAS,EAA0B,CAAC;AAQ5C,MAAM,CAAN,IAAY,cAIX;AAJD,WAAY,cAAc;IACxB,qEAAmD,CAAA;IACnD,6DAA2C,CAAA;IAC3C,qDAAmC,CAAA;AACrC,CAAC,EAJW,cAAc,KAAd,cAAc,QAIzB"}
1
+ {"version":3,"file":"interface.js","sourceRoot":"","sources":["../../src/chain/interface.ts"],"names":[],"mappings":"AA6CA,OAAO,EAAsC,SAAS,EAAgB,MAAM,oCAAoC,CAAC;AAqBjH,OAAO,EAAC,SAAS,EAA0B,CAAC;AAQ5C,MAAM,CAAN,IAAY,cAIX;AAJD,WAAY,cAAc;IACxB,qEAAmD,CAAA;IACnD,6DAA2C,CAAA;IAC3C,qDAAmC,CAAA;AACrC,CAAC,EAJW,cAAc,KAAd,cAAc,QAIzB"}
@@ -1,7 +1,7 @@
1
1
  import { aggregateSignatures } from "@chainsafe/blst";
2
2
  import { BitArray } from "@chainsafe/ssz";
3
- import { ForkName, ForkSeq, MAX_ATTESTATIONS, MAX_ATTESTATIONS_ELECTRA, MAX_COMMITTEES_PER_SLOT, MIN_ATTESTATION_INCLUSION_DELAY, SLOTS_PER_EPOCH, isForkPostDeneb, isForkPostElectra, } from "@lodestar/params";
4
- import { computeEpochAtSlot, computeSlotsSinceEpochStart, computeStartSlotAtEpoch, getBlockRootAtSlot, } from "@lodestar/state-transition";
3
+ import { ForkName, ForkSeq, MAX_ATTESTATIONS, MAX_ATTESTATIONS_ELECTRA, MAX_COMMITTEES_PER_SLOT, MIN_ATTESTATION_INCLUSION_DELAY, SLOTS_PER_EPOCH, TIMELY_HEAD_FLAG_INDEX, TIMELY_HEAD_WEIGHT, TIMELY_SOURCE_FLAG_INDEX, TIMELY_SOURCE_WEIGHT, TIMELY_TARGET_FLAG_INDEX, TIMELY_TARGET_WEIGHT, isForkPostDeneb, isForkPostElectra, } from "@lodestar/params";
4
+ import { RootCache, computeEpochAtSlot, computeSlotsSinceEpochStart, computeStartSlotAtEpoch, getAttestationParticipationStatus, getBlockRootAtSlot, } from "@lodestar/state-transition";
5
5
  import { isElectraAttestation, ssz, } from "@lodestar/types";
6
6
  import { assert, MapDef, toRootHex } from "@lodestar/utils";
7
7
  import { IntersectResult, intersectUint8Arrays } from "../../util/bitArray.js";
@@ -51,6 +51,10 @@ const MAX_ATTESTATIONS_PER_GROUP = 3;
51
51
  * than MAX_RETAINED_ATTESTATIONS_PER_GROUP_ELECTRA or MAX_ATTESTATIONS_ELECTRA.
52
52
  */
53
53
  const MAX_ATTESTATIONS_PER_GROUP_ELECTRA = Math.min(MAX_RETAINED_ATTESTATIONS_PER_GROUP_ELECTRA, MAX_ATTESTATIONS_ELECTRA);
54
+ /** Same to https://github.com/ethereum/consensus-specs/blob/v1.5.0/specs/altair/beacon-chain.md#has_flag */
55
+ const TIMELY_SOURCE = 1 << TIMELY_SOURCE_FLAG_INDEX;
56
+ const TIMELY_TARGET = 1 << TIMELY_TARGET_FLAG_INDEX;
57
+ const TIMELY_HEAD = 1 << TIMELY_HEAD_FLAG_INDEX;
54
58
  export var ScannedSlotsTerminationReason;
55
59
  (function (ScannedSlotsTerminationReason) {
56
60
  ScannedSlotsTerminationReason["MaxConsolidationReached"] = "max_consolidation_reached";
@@ -224,6 +228,7 @@ export class AggregatedAttestationPool {
224
228
  const stateSlot = state.slot;
225
229
  const stateEpoch = state.epochCtx.epoch;
226
230
  const statePrevEpoch = stateEpoch - 1;
231
+ const rootCache = new RootCache(state);
227
232
  const notSeenValidatorsFn = getNotSeenValidatorsFn(state);
228
233
  const validateAttestationDataFn = getValidateAttestationDataFn(forkChoice, state);
229
234
  const slots = Array.from(this.attestationGroupByIndexByDataHexBySlot.keys()).sort((a, b) => b - a);
@@ -320,7 +325,12 @@ export class AggregatedAttestationPool {
320
325
  this.metrics?.opPool.aggregatedAttestationPool.packedAttestations.scannedAttestations.set({ inclusionDistance }, totalAttestationsPerSlot);
321
326
  // after all committees are processed, we have a list of sameAttDataCons
322
327
  for (const consolidation of sameAttDataCons) {
323
- const score = consolidation.totalNewSeenEffectiveBalance / inclusionDistance;
328
+ // Score attestations by profitability to maximize proposer reward
329
+ const flags = getAttestationParticipationStatus(ForkSeq[fork], consolidation.attData, inclusionDistance, stateEpoch, rootCache);
330
+ const weight = ((flags & TIMELY_SOURCE) === TIMELY_SOURCE ? TIMELY_SOURCE_WEIGHT : 0) +
331
+ ((flags & TIMELY_TARGET) === TIMELY_TARGET ? TIMELY_TARGET_WEIGHT : 0) +
332
+ ((flags & TIMELY_HEAD) === TIMELY_HEAD ? TIMELY_HEAD_WEIGHT : 0);
333
+ const score = consolidation.totalNewSeenEffectiveBalance * weight;
324
334
  consolidations.set(consolidation, score);
325
335
  // Stop accumulating attestations there are enough that may have good scoring
326
336
  if (consolidations.size >= MAX_ATTESTATIONS_ELECTRA * 2) {
@@ -1 +1 @@
1
- {"version":3,"file":"aggregatedAttestationPool.js","sourceRoot":"","sources":["../../../src/chain/opPools/aggregatedAttestationPool.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"aggregatedAttestationPool.js","sourceRoot":"","sources":["../../../src/chain/opPools/aggregatedAttestationPool.ts"],"names":[],"mappings":"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"}
@@ -67,7 +67,7 @@ export declare class AttestationPool {
67
67
  * - Valid committeeIndex
68
68
  * - Valid data
69
69
  */
70
- add(committeeIndex: CommitteeIndex, attestation: SingleAttestation, attDataRootHex: RootHex, committeeValidatorIndex: number, committeeSize: number, priority?: boolean): InsertOutcome;
70
+ add(committeeIndex: CommitteeIndex, attestation: SingleAttestation, attDataRootHex: RootHex, validatorCommitteeIndex: number, committeeSize: number, priority?: boolean): InsertOutcome;
71
71
  /**
72
72
  * For validator API to get an aggregate
73
73
  */
@@ -79,7 +79,7 @@ export class AttestationPool {
79
79
  * - Valid committeeIndex
80
80
  * - Valid data
81
81
  */
82
- add(committeeIndex, attestation, attDataRootHex, committeeValidatorIndex, committeeSize, priority) {
82
+ add(committeeIndex, attestation, attDataRootHex, validatorCommitteeIndex, committeeSize, priority) {
83
83
  const slot = attestation.data.slot;
84
84
  const fork = this.config.getForkName(slot);
85
85
  const lowestPermissibleSlot = this.lowestPermissibleSlot;
@@ -115,10 +115,10 @@ export class AttestationPool {
115
115
  const aggregate = aggregateByIndex.get(committeeIndex);
116
116
  if (aggregate) {
117
117
  // Aggregate mutating
118
- return aggregateAttestationInto(aggregate, attestation, committeeValidatorIndex);
118
+ return aggregateAttestationInto(aggregate, attestation, validatorCommitteeIndex);
119
119
  }
120
120
  // Create new aggregate
121
- aggregateByIndex.set(committeeIndex, attestationToAggregate(attestation, committeeValidatorIndex, committeeSize));
121
+ aggregateByIndex.set(committeeIndex, attestationToAggregate(attestation, validatorCommitteeIndex, committeeSize));
122
122
  return InsertOutcome.NewData;
123
123
  }
124
124
  /**
@@ -176,10 +176,10 @@ export class AttestationPool {
176
176
  /**
177
177
  * Aggregate a new attestation into `aggregate` mutating it
178
178
  */
179
- function aggregateAttestationInto(aggregate, attestation, committeeValidatorIndex) {
179
+ function aggregateAttestationInto(aggregate, attestation, validatorCommitteeIndex) {
180
180
  let bitIndex;
181
181
  if (isElectraSingleAttestation(attestation)) {
182
- bitIndex = committeeValidatorIndex;
182
+ bitIndex = validatorCommitteeIndex;
183
183
  }
184
184
  else {
185
185
  bitIndex = attestation.aggregationBits.getSingleTrueBit();
@@ -196,11 +196,11 @@ function aggregateAttestationInto(aggregate, attestation, committeeValidatorInde
196
196
  /**
197
197
  * Format `contribution` into an efficient `aggregate` to add more contributions in with aggregateContributionInto()
198
198
  */
199
- function attestationToAggregate(attestation, committeeValidatorIndex, committeeSize) {
199
+ function attestationToAggregate(attestation, validatorCommitteeIndex, committeeSize) {
200
200
  if (isElectraSingleAttestation(attestation)) {
201
201
  return {
202
202
  data: attestation.data,
203
- aggregationBits: BitArray.fromSingleBit(committeeSize, committeeValidatorIndex),
203
+ aggregationBits: BitArray.fromSingleBit(committeeSize, validatorCommitteeIndex),
204
204
  committeeBits: BitArray.fromSingleBit(MAX_COMMITTEES_PER_SLOT, attestation.committeeIndex),
205
205
  signature: signatureFromBytesNoCheck(attestation.signature),
206
206
  };
@@ -25,9 +25,12 @@ export type IChainOptions = BlockProcessOpts & PoolOpts & SeenCacheOpts & ForkCh
25
25
  maxCachedBlobSidecars?: number;
26
26
  /** Max number of produced block roots (blinded or full) cached for broadcast validations */
27
27
  maxCachedProducedRoots?: number;
28
+ /** Subscribe to and custody all data column sidecar subnets */
29
+ supernode?: boolean;
30
+ initialCustodyGroupCount?: number;
28
31
  broadcastValidationStrictness?: string;
29
32
  minSameMessageSignatureSetsToBatch: number;
30
- archiveBlobEpochs?: number;
33
+ archiveDateEpochs?: number;
31
34
  nHistoricalStates?: boolean;
32
35
  nHistoricalStatesFileDataStore?: boolean;
33
36
  };
@@ -21,6 +21,7 @@ export const defaultChainOptions = {
21
21
  archiveMode: DEFAULT_ARCHIVE_MODE,
22
22
  pruneHistory: false,
23
23
  emitPayloadAttributes: false,
24
+ supernode: false,
24
25
  // for gossip block validation, it's unlikely we see a reorg with 32 slots
25
26
  // for attestation validation, having this value ensures we don't have to regen states most of the time
26
27
  maxSkipSlots: 32,
@@ -1 +1 @@
1
- {"version":3,"file":"options.js","sourceRoot":"","sources":["../../src/chain/options.ts"],"names":[],"mappings":"AAAA,OAAO,EAAC,mCAAmC,EAAC,MAAM,kBAAkB,CAAC;AACrE,OAAO,EAAC,cAAc,IAAI,uBAAuB,EAAC,MAAM,qBAAqB,CAAC;AAC9E,OAAO,EAAC,oBAAoB,EAAC,MAAM,6BAA6B,CAAC;AACjE,OAAO,EAAC,WAAW,EAAmB,MAAM,6BAA6B,CAAC;AAI1E,OAAO,EAAC,wBAAwB,EAA0B,MAAM,qCAAqC,CAAC;AAEtG,OAAO,EAAC,qCAAqC,EAAC,MAAM,4CAA4C,CAAC;AAGjG,OAAO,EAAC,WAAW,EAAE,oBAAoB,EAAC,CAAC;AAuF3C,MAAM,CAAC,MAAM,mBAAmB,GAAkB;IAChD,sBAAsB,EAAE,KAAK;IAC7B,uBAAuB,EAAE,KAAK;IAC9B,iBAAiB,EAAE,EAAE;IACrB,qBAAqB,EAAE,KAAK;IAC5B,aAAa,EAAE,IAAI;IACnB,kBAAkB,EAAE,IAAI;IACxB,iBAAiB,EAAE,IAAI;IACvB,+BAA+B,EAAE,mCAAmC;IACpE,qBAAqB,EAAE,uBAAuB,CAAC,qBAAqB;IACpE,oBAAoB,EAAE,KAAK;IAC3B,gCAAgC,EAAE,KAAK;IACvC,0BAA0B,EAAE,IAAI;IAChC,WAAW,EAAE,oBAAoB;IACjC,YAAY,EAAE,KAAK;IACnB,qBAAqB,EAAE,KAAK;IAC5B,0EAA0E;IAC1E,uGAAuG;IACvG,YAAY,EAAE,EAAE;IAChB,6BAA6B,EAAE,MAAM;IACrC,qEAAqE;IACrE,gGAAgG;IAChG,wGAAwG;IACxG,kCAAkC,EAAE,CAAC;IACrC,iBAAiB,EAAE,IAAI;IACvB,4DAA4D;IAC5D,qEAAqE;IACrE,uFAAuF;IACvF,wDAAwD;IACxD,8BAA8B,EAAE,IAAI;IACpC,cAAc,EAAE,wBAAwB;IACxC,wBAAwB,EAAE,qCAAqC;CAChE,CAAC"}
1
+ {"version":3,"file":"options.js","sourceRoot":"","sources":["../../src/chain/options.ts"],"names":[],"mappings":"AAAA,OAAO,EAAC,mCAAmC,EAAC,MAAM,kBAAkB,CAAC;AACrE,OAAO,EAAC,cAAc,IAAI,uBAAuB,EAAC,MAAM,qBAAqB,CAAC;AAC9E,OAAO,EAAC,oBAAoB,EAAC,MAAM,6BAA6B,CAAC;AACjE,OAAO,EAAC,WAAW,EAAmB,MAAM,6BAA6B,CAAC;AAI1E,OAAO,EAAC,wBAAwB,EAA0B,MAAM,qCAAqC,CAAC;AAEtG,OAAO,EAAC,qCAAqC,EAAC,MAAM,4CAA4C,CAAC;AAGjG,OAAO,EAAC,WAAW,EAAE,oBAAoB,EAAC,CAAC;AA0F3C,MAAM,CAAC,MAAM,mBAAmB,GAAkB;IAChD,sBAAsB,EAAE,KAAK;IAC7B,uBAAuB,EAAE,KAAK;IAC9B,iBAAiB,EAAE,EAAE;IACrB,qBAAqB,EAAE,KAAK;IAC5B,aAAa,EAAE,IAAI;IACnB,kBAAkB,EAAE,IAAI;IACxB,iBAAiB,EAAE,IAAI;IACvB,+BAA+B,EAAE,mCAAmC;IACpE,qBAAqB,EAAE,uBAAuB,CAAC,qBAAqB;IACpE,oBAAoB,EAAE,KAAK;IAC3B,gCAAgC,EAAE,KAAK;IACvC,0BAA0B,EAAE,IAAI;IAChC,WAAW,EAAE,oBAAoB;IACjC,YAAY,EAAE,KAAK;IACnB,qBAAqB,EAAE,KAAK;IAC5B,SAAS,EAAE,KAAK;IAChB,0EAA0E;IAC1E,uGAAuG;IACvG,YAAY,EAAE,EAAE;IAChB,6BAA6B,EAAE,MAAM;IACrC,qEAAqE;IACrE,gGAAgG;IAChG,wGAAwG;IACxG,kCAAkC,EAAE,CAAC;IACrC,iBAAiB,EAAE,IAAI;IACvB,4DAA4D;IAC5D,qEAAqE;IACrE,uFAAuF;IACvF,wDAAwD;IACxD,8BAA8B,EAAE,IAAI;IACpC,cAAc,EAAE,wBAAwB;IACxC,wBAAwB,EAAE,qCAAqC;CAChE,CAAC"}
@@ -3,6 +3,7 @@ import { ForkSeq, SLOTS_PER_EPOCH, isForkPostElectra } from "@lodestar/params";
3
3
  import { StateHashTreeRootSource, computeEpochAtSlot, computeTimeAtSlot, isExecutionStateType, } from "@lodestar/state-transition";
4
4
  import { fromHex, isErrorAborted, sleep } from "@lodestar/utils";
5
5
  import { GENESIS_SLOT, ZERO_HASH_HEX } from "../constants/constants.js";
6
+ import { BuilderStatus } from "../execution/builder/http.js";
6
7
  import { ClockEvent } from "../util/clock.js";
7
8
  import { isQueueErrorAborted } from "../util/queue/index.js";
8
9
  import { ForkchoiceCaller } from "./forkChoice/index.js";
@@ -107,7 +108,7 @@ export class PrepareNextSlotScheduler {
107
108
  }
108
109
  // Update the builder status, if enabled shoot an api call to check status
109
110
  this.chain.updateBuilderStatus(clockSlot);
110
- if (this.chain.executionBuilder?.status) {
111
+ if (this.chain.executionBuilder?.status === BuilderStatus.enabled) {
111
112
  this.chain.executionBuilder.checkStatus().catch((e) => {
112
113
  this.logger.error("Builder disabled as the check status api failed", { prepareSlot }, e);
113
114
  });
@@ -1 +1 @@
1
- {"version":3,"file":"prepareNextSlot.js","sourceRoot":"","sources":["../../src/chain/prepareNextSlot.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"prepareNextSlot.js","sourceRoot":"","sources":["../../src/chain/prepareNextSlot.ts"],"names":[],"mappings":"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"}
@@ -1,7 +1,7 @@
1
1
  import { ChainForkConfig } from "@lodestar/config";
2
- import { ForkPostBellatrix } from "@lodestar/params";
2
+ import { ForkName, ForkPostBellatrix, ForkPostDeneb, ForkPostFulu } from "@lodestar/params";
3
3
  import { CachedBeaconStateAllForks, CachedBeaconStateExecutions } from "@lodestar/state-transition";
4
- import { BLSPubkey, BLSSignature, BeaconBlock, BeaconBlockBody, BlindedBeaconBlock, BlindedBeaconBlockBody, Bytes32, Root, RootHex, SSEPayloadAttributes, Slot, ValidatorIndex, Wei, deneb } from "@lodestar/types";
4
+ import { BLSPubkey, BLSSignature, BeaconBlock, BeaconBlockBody, BlindedBeaconBlock, BlindedBeaconBlockBody, BlobsBundle, Bytes32, ExecutionPayload, Root, RootHex, SSEPayloadAttributes, Slot, ValidatorIndex, Wei, fulu } from "@lodestar/types";
5
5
  import { Logger } from "@lodestar/utils";
6
6
  import { IEth1ForBlockProduction } from "../../eth1/index.js";
7
7
  import { IExecutionEngine, PayloadId } from "../../execution/index.js";
@@ -40,27 +40,41 @@ export declare enum BlockType {
40
40
  }
41
41
  export type AssembledBodyType<T extends BlockType> = T extends BlockType.Full ? BeaconBlockBody : BlindedBeaconBlockBody;
42
42
  export type AssembledBlockType<T extends BlockType> = T extends BlockType.Full ? BeaconBlock : BlindedBeaconBlock;
43
- export declare enum BlobsResultType {
44
- preDeneb = 0,
45
- produced = 1,
46
- blinded = 2
47
- }
48
- export type BlobsResult = {
49
- type: BlobsResultType.preDeneb;
50
- } | {
51
- type: BlobsResultType.produced;
52
- contents: deneb.Contents;
53
- blockHash: RootHex;
54
- } | {
55
- type: BlobsResultType.blinded;
43
+ export type ProduceFullFulu = {
44
+ type: BlockType.Full;
45
+ fork: ForkPostFulu;
46
+ executionPayload: ExecutionPayload<ForkPostFulu>;
47
+ blobsBundle: BlobsBundle<ForkPostFulu>;
48
+ cells: fulu.Cell[][];
49
+ };
50
+ export type ProduceFullDeneb = {
51
+ type: BlockType.Full;
52
+ fork: ForkName.deneb | ForkName.electra;
53
+ executionPayload: ExecutionPayload<ForkPostDeneb>;
54
+ blobsBundle: BlobsBundle<ForkPostDeneb>;
55
+ };
56
+ export type ProduceFullBellatrix = {
57
+ type: BlockType.Full;
58
+ fork: ForkName.bellatrix | ForkName.capella;
59
+ executionPayload: ExecutionPayload<ForkPostBellatrix>;
60
+ };
61
+ export type ProduceFullPhase0 = {
62
+ type: BlockType.Full;
63
+ fork: ForkName.phase0 | ForkName.altair;
64
+ };
65
+ export type ProduceBlinded = {
66
+ type: BlockType.Blinded;
67
+ fork: ForkName;
56
68
  };
69
+ /** The result of local block production, everything that's not the block itself */
70
+ export type ProduceResult = ProduceFullFulu | ProduceFullDeneb | ProduceFullBellatrix | ProduceFullPhase0 | ProduceBlinded;
57
71
  export declare function produceBlockBody<T extends BlockType>(this: BeaconChain, blockType: T, currentState: CachedBeaconStateAllForks, blockAttr: BlockAttributes & {
58
72
  proposerIndex: ValidatorIndex;
59
73
  proposerPubKey: BLSPubkey;
60
74
  commonBlockBodyPromise?: Promise<CommonBlockBody>;
61
75
  }): Promise<{
62
76
  body: AssembledBodyType<T>;
63
- blobs: BlobsResult;
77
+ produceResult: ProduceResult;
64
78
  executionPayloadValue: Wei;
65
79
  shouldOverrideBuilder?: boolean;
66
80
  }>;
@@ -1,4 +1,4 @@
1
- import { ForkSeq, isForkPostAltair, isForkPostBellatrix } from "@lodestar/params";
1
+ import { ForkSeq, isForkPostAltair, isForkPostBellatrix, } from "@lodestar/params";
2
2
  import { computeTimeAtSlot, getCurrentEpoch, getExpectedWithdrawals, getRandaoMix, isMergeTransitionComplete, } from "@lodestar/state-transition";
3
3
  import { ssz, sszTypesFor, } from "@lodestar/types";
4
4
  import { sleep, toHex, toPubkeyHex, toRootHex } from "@lodestar/utils";
@@ -6,7 +6,8 @@ import { ZERO_HASH, ZERO_HASH_HEX } from "../../constants/index.js";
6
6
  import { numToQuantity } from "../../eth1/provider/utils.js";
7
7
  import { getExpectedGasLimit, } from "../../execution/index.js";
8
8
  import { fromGraffitiBytes } from "../../util/graffiti.js";
9
- import { validateBlobsAndKzgCommitments } from "./validateBlobsAndKzgCommitments.js";
9
+ import { kzg } from "../../util/kzg.js";
10
+ import { validateBlobsAndKzgCommitments, validateCellsAndKzgCommitments } from "./validateBlobsAndKzgCommitments.js";
10
11
  // Time to provide the EL to generate a payload from new payload id
11
12
  const PAYLOAD_GENERATION_TIME_MS = 500;
12
13
  export var PayloadPreparationType;
@@ -35,24 +36,18 @@ export var BlockType;
35
36
  BlockType["Full"] = "Full";
36
37
  BlockType["Blinded"] = "Blinded";
37
38
  })(BlockType || (BlockType = {}));
38
- export var BlobsResultType;
39
- (function (BlobsResultType) {
40
- BlobsResultType[BlobsResultType["preDeneb"] = 0] = "preDeneb";
41
- BlobsResultType[BlobsResultType["produced"] = 1] = "produced";
42
- BlobsResultType[BlobsResultType["blinded"] = 2] = "blinded";
43
- })(BlobsResultType || (BlobsResultType = {}));
44
39
  export async function produceBlockBody(blockType, currentState, blockAttr) {
45
40
  const { slot: blockSlot, feeRecipient: requestedFeeRecipient, parentBlockRoot, proposerIndex, proposerPubKey, commonBlockBodyPromise, } = blockAttr;
46
- // Type-safe for blobs variable. Translate 'null' value into 'preDeneb' enum
47
- // TODO: Not ideal, but better than just using null.
48
- // TODO: Does not guarantee that preDeneb enum goes with a preDeneb block
49
- let blobsResult;
50
41
  let executionPayloadValue;
51
42
  let blockBody;
52
43
  // even though shouldOverrideBuilder is relevant for the engine response, for simplicity of typing
53
44
  // we just return it undefined for the builder which anyway doesn't get consumed downstream
54
45
  let shouldOverrideBuilder;
55
46
  const fork = currentState.config.getForkName(blockSlot);
47
+ const produceResult = {
48
+ type: blockType,
49
+ fork,
50
+ };
56
51
  const logMeta = {
57
52
  fork,
58
53
  blockType,
@@ -71,7 +66,7 @@ export async function produceBlockBody(blockType, currentState, blockAttr) {
71
66
  Object.assign(logMeta, { feeRecipientType, feeRecipient });
72
67
  if (blockType === BlockType.Blinded) {
73
68
  if (!this.executionBuilder)
74
- throw Error("Execution Builder not available");
69
+ throw Error("External builder not configured");
75
70
  const executionBuilder = this.executionBuilder;
76
71
  const builderPromise = (async () => {
77
72
  const endExecutionPayloadHeader = this.metrics?.builderBlockProductionTimeSteps.startTimer();
@@ -144,12 +139,8 @@ export async function produceBlockBody(blockType, currentState, blockAttr) {
144
139
  throw Error(`Invalid builder getHeader response for fork=${fork}, missing blobKzgCommitments`);
145
140
  }
146
141
  blockBody.blobKzgCommitments = blobKzgCommitments;
147
- blobsResult = { type: BlobsResultType.blinded };
148
142
  Object.assign(logMeta, { blobs: blobKzgCommitments.length });
149
143
  }
150
- else {
151
- blobsResult = { type: BlobsResultType.preDeneb };
152
- }
153
144
  if (ForkSeq[fork] >= ForkSeq.electra) {
154
145
  const { executionRequests } = builderRes;
155
146
  if (executionRequests === undefined) {
@@ -218,13 +209,13 @@ export async function produceBlockBody(blockType, currentState, blockAttr) {
218
209
  blockBody = Object.assign({}, commonBlockBody);
219
210
  if (engineRes.isPremerge) {
220
211
  blockBody.executionPayload = engineRes.executionPayload;
221
- blobsResult = { type: BlobsResultType.preDeneb };
222
212
  executionPayloadValue = engineRes.executionPayloadValue;
223
213
  }
224
214
  else {
225
215
  const { prepType, payloadId, executionPayload, blobsBundle, executionRequests } = engineRes;
226
216
  shouldOverrideBuilder = engineRes.shouldOverrideBuilder;
227
217
  blockBody.executionPayload = executionPayload;
218
+ produceResult.executionPayload = executionPayload;
228
219
  executionPayloadValue = engineRes.executionPayloadValue;
229
220
  Object.assign(logMeta, { transactions: executionPayload.transactions.length, shouldOverrideBuilder });
230
221
  const fetchedTime = Date.now() / 1000 - computeTimeAtSlot(this.config, blockSlot, this.genesisTime);
@@ -240,21 +231,31 @@ export async function produceBlockBody(blockType, currentState, blockAttr) {
240
231
  if (executionPayload.transactions.length === 0) {
241
232
  this.metrics?.blockPayload.emptyPayloads.inc({ prepType });
242
233
  }
243
- if (ForkSeq[fork] >= ForkSeq.deneb) {
234
+ if (ForkSeq[fork] >= ForkSeq.fulu) {
244
235
  if (blobsBundle === undefined) {
245
236
  throw Error(`Missing blobsBundle response from getPayload at fork=${fork}`);
246
237
  }
238
+ // NOTE: Even though the fulu.BlobsBundle type is superficially the same as deneb.BlobsBundle, it is NOT.
239
+ // In fulu, proofs are _cell_ proofs, vs in deneb they are _blob_ proofs.
240
+ const cells = blobsBundle.blobs.map((blob) => kzg.computeCells(blob));
247
241
  if (this.opts.sanityCheckExecutionEngineBlobs) {
248
- validateBlobsAndKzgCommitments(executionPayload, blobsBundle);
242
+ await validateCellsAndKzgCommitments(blobsBundle.commitments, blobsBundle.proofs, cells);
249
243
  }
250
244
  blockBody.blobKzgCommitments = blobsBundle.commitments;
251
- const blockHash = toRootHex(executionPayload.blockHash);
252
- const contents = { kzgProofs: blobsBundle.proofs, blobs: blobsBundle.blobs };
253
- blobsResult = { type: BlobsResultType.produced, contents, blockHash };
245
+ produceResult.blobsBundle = blobsBundle;
246
+ produceResult.cells = cells;
254
247
  Object.assign(logMeta, { blobs: blobsBundle.commitments.length });
255
248
  }
256
- else {
257
- blobsResult = { type: BlobsResultType.preDeneb };
249
+ else if (ForkSeq[fork] >= ForkSeq.deneb) {
250
+ if (blobsBundle === undefined) {
251
+ throw Error(`Missing blobsBundle response from getPayload at fork=${fork}`);
252
+ }
253
+ if (this.opts.sanityCheckExecutionEngineBlobs) {
254
+ await validateBlobsAndKzgCommitments(blobsBundle.commitments, blobsBundle.proofs, blobsBundle.blobs);
255
+ }
256
+ blockBody.blobKzgCommitments = blobsBundle.commitments;
257
+ produceResult.blobsBundle = blobsBundle;
258
+ Object.assign(logMeta, { blobs: blobsBundle.commitments.length });
258
259
  }
259
260
  if (ForkSeq[fork] >= ForkSeq.electra) {
260
261
  if (executionRequests === undefined) {
@@ -269,7 +270,6 @@ export async function produceBlockBody(blockType, currentState, blockAttr) {
269
270
  const commonBlockBody = await (commonBlockBodyPromise ??
270
271
  produceCommonBlockBody.call(this, blockType, currentState, blockAttr));
271
272
  blockBody = Object.assign({}, commonBlockBody);
272
- blobsResult = { type: BlobsResultType.preDeneb };
273
273
  executionPayloadValue = BigInt(0);
274
274
  }
275
275
  const { graffiti, attestations, deposits, voluntaryExits, attesterSlashings, proposerSlashings } = blockBody;
@@ -301,7 +301,7 @@ export async function produceBlockBody(blockType, currentState, blockAttr) {
301
301
  }
302
302
  Object.assign(logMeta, { executionPayloadValue });
303
303
  this.logger.verbose("Produced beacon block body", logMeta);
304
- return { body: blockBody, blobs: blobsResult, executionPayloadValue, shouldOverrideBuilder };
304
+ return { body: blockBody, produceResult, executionPayloadValue, shouldOverrideBuilder };
305
305
  }
306
306
  /**
307
307
  * Produce ExecutionPayload for pre-merge, merge, and post-merge.
@@ -369,7 +369,7 @@ async function prepareExecutionPayloadHeader(chain, fork, state, proposerPubKey)
369
369
  }
370
370
  const parentHashRes = await getExecutionPayloadParentHash(chain, state);
371
371
  if (parentHashRes.isPremerge) {
372
- throw Error("Execution builder disabled pre-merge");
372
+ throw Error("External builder disabled pre-merge");
373
373
  }
374
374
  const { parentHash } = parentHashRes;
375
375
  return chain.executionBuilder.getHeader(fork, state.slot, parentHash, proposerPubKey);