@lodestar/beacon-node 1.42.0-dev.5007abf468 → 1.42.0-dev.5295e30d5c

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 (291) hide show
  1. package/lib/api/impl/beacon/blocks/index.d.ts.map +1 -1
  2. package/lib/api/impl/beacon/blocks/index.js +24 -12
  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 +4 -0
  6. package/lib/api/impl/beacon/pool/index.js.map +1 -1
  7. package/lib/api/impl/beacon/state/index.d.ts.map +1 -1
  8. package/lib/api/impl/beacon/state/index.js +13 -10
  9. package/lib/api/impl/beacon/state/index.js.map +1 -1
  10. package/lib/api/impl/debug/index.js.map +1 -1
  11. package/lib/api/impl/lodestar/index.d.ts.map +1 -1
  12. package/lib/api/impl/lodestar/index.js +4 -0
  13. package/lib/api/impl/lodestar/index.js.map +1 -1
  14. package/lib/api/impl/validator/index.d.ts.map +1 -1
  15. package/lib/api/impl/validator/index.js +7 -1
  16. package/lib/api/impl/validator/index.js.map +1 -1
  17. package/lib/chain/ColumnReconstructionTracker.d.ts +2 -1
  18. package/lib/chain/ColumnReconstructionTracker.d.ts.map +1 -1
  19. package/lib/chain/ColumnReconstructionTracker.js +5 -5
  20. package/lib/chain/ColumnReconstructionTracker.js.map +1 -1
  21. package/lib/chain/GetBlobsTracker.d.ts +2 -1
  22. package/lib/chain/GetBlobsTracker.d.ts.map +1 -1
  23. package/lib/chain/GetBlobsTracker.js +14 -12
  24. package/lib/chain/GetBlobsTracker.js.map +1 -1
  25. package/lib/chain/archiveStore/archiveStore.d.ts.map +1 -1
  26. package/lib/chain/archiveStore/archiveStore.js +1 -0
  27. package/lib/chain/archiveStore/archiveStore.js.map +1 -1
  28. package/lib/chain/archiveStore/historicalState/getHistoricalState.d.ts +3 -3
  29. package/lib/chain/archiveStore/historicalState/getHistoricalState.d.ts.map +1 -1
  30. package/lib/chain/archiveStore/historicalState/getHistoricalState.js +6 -4
  31. package/lib/chain/archiveStore/historicalState/getHistoricalState.js.map +1 -1
  32. package/lib/chain/archiveStore/historicalState/historicalStateRegen.d.ts +2 -2
  33. package/lib/chain/archiveStore/historicalState/historicalStateRegen.d.ts.map +1 -1
  34. package/lib/chain/archiveStore/historicalState/historicalStateRegen.js +1 -0
  35. package/lib/chain/archiveStore/historicalState/historicalStateRegen.js.map +1 -1
  36. package/lib/chain/archiveStore/historicalState/types.d.ts +2 -0
  37. package/lib/chain/archiveStore/historicalState/types.d.ts.map +1 -1
  38. package/lib/chain/archiveStore/historicalState/types.js.map +1 -1
  39. package/lib/chain/archiveStore/historicalState/worker.js +1 -4
  40. package/lib/chain/archiveStore/historicalState/worker.js.map +1 -1
  41. package/lib/chain/archiveStore/interface.d.ts +1 -0
  42. package/lib/chain/archiveStore/interface.d.ts.map +1 -1
  43. package/lib/chain/blocks/blockInput/blockInput.d.ts +5 -5
  44. package/lib/chain/blocks/blockInput/blockInput.d.ts.map +1 -1
  45. package/lib/chain/blocks/blockInput/blockInput.js.map +1 -1
  46. package/lib/chain/blocks/blockInput/types.d.ts +4 -4
  47. package/lib/chain/blocks/blockInput/types.d.ts.map +1 -1
  48. package/lib/chain/blocks/importBlock.d.ts.map +1 -1
  49. package/lib/chain/blocks/importBlock.js +34 -20
  50. package/lib/chain/blocks/importBlock.js.map +1 -1
  51. package/lib/chain/blocks/importExecutionPayload.d.ts +10 -8
  52. package/lib/chain/blocks/importExecutionPayload.d.ts.map +1 -1
  53. package/lib/chain/blocks/importExecutionPayload.js +86 -49
  54. package/lib/chain/blocks/importExecutionPayload.js.map +1 -1
  55. package/lib/chain/blocks/index.d.ts.map +1 -1
  56. package/lib/chain/blocks/index.js +2 -1
  57. package/lib/chain/blocks/index.js.map +1 -1
  58. package/lib/chain/blocks/payloadEnvelopeInput/payloadEnvelopeInput.d.ts +14 -6
  59. package/lib/chain/blocks/payloadEnvelopeInput/payloadEnvelopeInput.d.ts.map +1 -1
  60. package/lib/chain/blocks/payloadEnvelopeInput/payloadEnvelopeInput.js +33 -2
  61. package/lib/chain/blocks/payloadEnvelopeInput/payloadEnvelopeInput.js.map +1 -1
  62. package/lib/chain/blocks/payloadEnvelopeInput/types.d.ts +2 -1
  63. package/lib/chain/blocks/payloadEnvelopeInput/types.d.ts.map +1 -1
  64. package/lib/chain/blocks/types.d.ts +20 -14
  65. package/lib/chain/blocks/types.d.ts.map +1 -1
  66. package/lib/chain/blocks/verifyBlocksExecutionPayloads.d.ts +2 -2
  67. package/lib/chain/blocks/verifyBlocksExecutionPayloads.d.ts.map +1 -1
  68. package/lib/chain/blocks/verifyBlocksExecutionPayloads.js +4 -3
  69. package/lib/chain/blocks/verifyBlocksExecutionPayloads.js.map +1 -1
  70. package/lib/chain/blocks/verifyBlocksSignatures.d.ts.map +1 -1
  71. package/lib/chain/blocks/verifyBlocksSignatures.js +4 -2
  72. package/lib/chain/blocks/verifyBlocksSignatures.js.map +1 -1
  73. package/lib/chain/chain.d.ts +3 -2
  74. package/lib/chain/chain.d.ts.map +1 -1
  75. package/lib/chain/chain.js +64 -24
  76. package/lib/chain/chain.js.map +1 -1
  77. package/lib/chain/emitter.d.ts +29 -7
  78. package/lib/chain/emitter.d.ts.map +1 -1
  79. package/lib/chain/emitter.js +12 -3
  80. package/lib/chain/emitter.js.map +1 -1
  81. package/lib/chain/errors/dataColumnSidecarError.d.ts +31 -1
  82. package/lib/chain/errors/dataColumnSidecarError.d.ts.map +1 -1
  83. package/lib/chain/errors/dataColumnSidecarError.js +7 -0
  84. package/lib/chain/errors/dataColumnSidecarError.js.map +1 -1
  85. package/lib/chain/forkChoice/index.d.ts.map +1 -1
  86. package/lib/chain/forkChoice/index.js +10 -8
  87. package/lib/chain/forkChoice/index.js.map +1 -1
  88. package/lib/chain/interface.d.ts +4 -2
  89. package/lib/chain/interface.d.ts.map +1 -1
  90. package/lib/chain/lightClient/index.d.ts +2 -2
  91. package/lib/chain/lightClient/index.d.ts.map +1 -1
  92. package/lib/chain/lightClient/index.js +7 -0
  93. package/lib/chain/lightClient/index.js.map +1 -1
  94. package/lib/chain/opPools/aggregatedAttestationPool.d.ts.map +1 -1
  95. package/lib/chain/opPools/aggregatedAttestationPool.js +5 -2
  96. package/lib/chain/opPools/aggregatedAttestationPool.js.map +1 -1
  97. package/lib/chain/opPools/executionPayloadBidPool.d.ts +2 -2
  98. package/lib/chain/opPools/executionPayloadBidPool.d.ts.map +1 -1
  99. package/lib/chain/opPools/executionPayloadBidPool.js +2 -2
  100. package/lib/chain/opPools/executionPayloadBidPool.js.map +1 -1
  101. package/lib/chain/options.d.ts +1 -0
  102. package/lib/chain/options.d.ts.map +1 -1
  103. package/lib/chain/options.js +1 -0
  104. package/lib/chain/options.js.map +1 -1
  105. package/lib/chain/prepareNextSlot.d.ts.map +1 -1
  106. package/lib/chain/prepareNextSlot.js +7 -1
  107. package/lib/chain/prepareNextSlot.js.map +1 -1
  108. package/lib/chain/produceBlock/computeNewStateRoot.d.ts +2 -2
  109. package/lib/chain/produceBlock/computeNewStateRoot.d.ts.map +1 -1
  110. package/lib/chain/produceBlock/computeNewStateRoot.js.map +1 -1
  111. package/lib/chain/produceBlock/produceBlockBody.d.ts +3 -3
  112. package/lib/chain/produceBlock/produceBlockBody.d.ts.map +1 -1
  113. package/lib/chain/produceBlock/produceBlockBody.js +10 -1
  114. package/lib/chain/produceBlock/produceBlockBody.js.map +1 -1
  115. package/lib/chain/seenCache/seenGossipBlockInput.d.ts +1 -1
  116. package/lib/chain/seenCache/seenGossipBlockInput.d.ts.map +1 -1
  117. package/lib/chain/seenCache/seenGossipBlockInput.js +2 -2
  118. package/lib/chain/seenCache/seenGossipBlockInput.js.map +1 -1
  119. package/lib/chain/seenCache/seenPayloadEnvelopeInput.d.ts +1 -1
  120. package/lib/chain/seenCache/seenPayloadEnvelopeInput.d.ts.map +1 -1
  121. package/lib/chain/seenCache/seenPayloadEnvelopeInput.js +2 -2
  122. package/lib/chain/seenCache/seenPayloadEnvelopeInput.js.map +1 -1
  123. package/lib/chain/validation/block.d.ts.map +1 -1
  124. package/lib/chain/validation/block.js +2 -2
  125. package/lib/chain/validation/block.js.map +1 -1
  126. package/lib/chain/validation/dataColumnSidecar.d.ts +11 -4
  127. package/lib/chain/validation/dataColumnSidecar.d.ts.map +1 -1
  128. package/lib/chain/validation/dataColumnSidecar.js +184 -5
  129. package/lib/chain/validation/dataColumnSidecar.js.map +1 -1
  130. package/lib/chain/validation/executionPayloadBid.d.ts.map +1 -1
  131. package/lib/chain/validation/executionPayloadBid.js +7 -4
  132. package/lib/chain/validation/executionPayloadBid.js.map +1 -1
  133. package/lib/chain/validation/executionPayloadEnvelope.d.ts.map +1 -1
  134. package/lib/chain/validation/executionPayloadEnvelope.js +4 -1
  135. package/lib/chain/validation/executionPayloadEnvelope.js.map +1 -1
  136. package/lib/chain/validation/payloadAttestationMessage.d.ts.map +1 -1
  137. package/lib/chain/validation/payloadAttestationMessage.js +4 -1
  138. package/lib/chain/validation/payloadAttestationMessage.js.map +1 -1
  139. package/lib/chain/validation/syncCommittee.d.ts.map +1 -1
  140. package/lib/chain/validation/syncCommittee.js +4 -0
  141. package/lib/chain/validation/syncCommittee.js.map +1 -1
  142. package/lib/chain/validation/syncCommitteeContributionAndProof.js +4 -1
  143. package/lib/chain/validation/syncCommitteeContributionAndProof.js.map +1 -1
  144. package/lib/chain/validatorMonitor.d.ts.map +1 -1
  145. package/lib/chain/validatorMonitor.js +3 -3
  146. package/lib/chain/validatorMonitor.js.map +1 -1
  147. package/lib/db/buckets.d.ts +2 -2
  148. package/lib/db/buckets.d.ts.map +1 -1
  149. package/lib/db/buckets.js +2 -2
  150. package/lib/db/buckets.js.map +1 -1
  151. package/lib/db/repositories/blockArchiveIndex.d.ts +2 -2
  152. package/lib/db/repositories/blockArchiveIndex.d.ts.map +1 -1
  153. package/lib/db/repositories/dataColumnSidecar.d.ts.map +1 -1
  154. package/lib/db/repositories/dataColumnSidecar.js +4 -2
  155. package/lib/db/repositories/dataColumnSidecar.js.map +1 -1
  156. package/lib/db/repositories/dataColumnSidecarArchive.d.ts.map +1 -1
  157. package/lib/db/repositories/dataColumnSidecarArchive.js +4 -2
  158. package/lib/db/repositories/dataColumnSidecarArchive.js.map +1 -1
  159. package/lib/metrics/metrics/lodestar.d.ts +20 -0
  160. package/lib/metrics/metrics/lodestar.d.ts.map +1 -1
  161. package/lib/metrics/metrics/lodestar.js +33 -0
  162. package/lib/metrics/metrics/lodestar.js.map +1 -1
  163. package/lib/network/gossip/topic.d.ts +727 -0
  164. package/lib/network/gossip/topic.d.ts.map +1 -1
  165. package/lib/network/interface.d.ts +3 -2
  166. package/lib/network/interface.d.ts.map +1 -1
  167. package/lib/network/libp2p/index.d.ts.map +1 -1
  168. package/lib/network/libp2p/index.js +19 -13
  169. package/lib/network/libp2p/index.js.map +1 -1
  170. package/lib/network/network.d.ts +3 -2
  171. package/lib/network/network.d.ts.map +1 -1
  172. package/lib/network/network.js +3 -0
  173. package/lib/network/network.js.map +1 -1
  174. package/lib/network/options.d.ts.map +1 -1
  175. package/lib/network/options.js +7 -2
  176. package/lib/network/options.js.map +1 -1
  177. package/lib/network/processor/extractSlotRootFns.d.ts +1 -1
  178. package/lib/network/processor/extractSlotRootFns.d.ts.map +1 -1
  179. package/lib/network/processor/extractSlotRootFns.js +25 -5
  180. package/lib/network/processor/extractSlotRootFns.js.map +1 -1
  181. package/lib/network/processor/gossipHandlers.d.ts.map +1 -1
  182. package/lib/network/processor/gossipHandlers.js +260 -73
  183. package/lib/network/processor/gossipHandlers.js.map +1 -1
  184. package/lib/network/processor/index.d.ts +11 -1
  185. package/lib/network/processor/index.d.ts.map +1 -1
  186. package/lib/network/processor/index.js +234 -22
  187. package/lib/network/processor/index.js.map +1 -1
  188. package/lib/network/reqresp/types.d.ts +3 -3
  189. package/lib/network/reqresp/types.d.ts.map +1 -1
  190. package/lib/network/reqresp/types.js +9 -3
  191. package/lib/network/reqresp/types.js.map +1 -1
  192. package/lib/node/nodejs.d.ts.map +1 -1
  193. package/lib/node/nodejs.js +4 -1
  194. package/lib/node/nodejs.js.map +1 -1
  195. package/lib/node/notifier.d.ts.map +1 -1
  196. package/lib/node/notifier.js +2 -2
  197. package/lib/node/notifier.js.map +1 -1
  198. package/lib/sync/unknownBlock.js +2 -2
  199. package/lib/sync/unknownBlock.js.map +1 -1
  200. package/lib/sync/utils/downloadByRange.d.ts +3 -3
  201. package/lib/sync/utils/downloadByRange.d.ts.map +1 -1
  202. package/lib/sync/utils/downloadByRange.js +4 -2
  203. package/lib/sync/utils/downloadByRange.js.map +1 -1
  204. package/lib/sync/utils/downloadByRoot.d.ts +3 -3
  205. package/lib/sync/utils/downloadByRoot.d.ts.map +1 -1
  206. package/lib/sync/utils/downloadByRoot.js +10 -5
  207. package/lib/sync/utils/downloadByRoot.js.map +1 -1
  208. package/lib/util/blobs.d.ts +3 -3
  209. package/lib/util/blobs.d.ts.map +1 -1
  210. package/lib/util/blobs.js +21 -10
  211. package/lib/util/blobs.js.map +1 -1
  212. package/lib/util/dataColumns.d.ts +18 -11
  213. package/lib/util/dataColumns.d.ts.map +1 -1
  214. package/lib/util/dataColumns.js +51 -17
  215. package/lib/util/dataColumns.js.map +1 -1
  216. package/lib/util/execution.d.ts +6 -2
  217. package/lib/util/execution.d.ts.map +1 -1
  218. package/lib/util/execution.js +49 -25
  219. package/lib/util/execution.js.map +1 -1
  220. package/lib/util/sszBytes.d.ts +25 -1
  221. package/lib/util/sszBytes.d.ts.map +1 -1
  222. package/lib/util/sszBytes.js +189 -2
  223. package/lib/util/sszBytes.js.map +1 -1
  224. package/package.json +15 -15
  225. package/src/api/impl/beacon/blocks/index.ts +32 -15
  226. package/src/api/impl/beacon/pool/index.ts +4 -0
  227. package/src/api/impl/beacon/state/index.ts +15 -15
  228. package/src/api/impl/debug/index.ts +2 -2
  229. package/src/api/impl/lodestar/index.ts +4 -0
  230. package/src/api/impl/validator/index.ts +7 -0
  231. package/src/chain/ColumnReconstructionTracker.ts +6 -5
  232. package/src/chain/GetBlobsTracker.ts +14 -12
  233. package/src/chain/archiveStore/archiveStore.ts +1 -0
  234. package/src/chain/archiveStore/historicalState/getHistoricalState.ts +6 -5
  235. package/src/chain/archiveStore/historicalState/historicalStateRegen.ts +2 -1
  236. package/src/chain/archiveStore/historicalState/types.ts +2 -0
  237. package/src/chain/archiveStore/historicalState/worker.ts +1 -5
  238. package/src/chain/archiveStore/interface.ts +1 -0
  239. package/src/chain/blocks/blockInput/blockInput.ts +8 -8
  240. package/src/chain/blocks/blockInput/types.ts +4 -4
  241. package/src/chain/blocks/importBlock.ts +45 -23
  242. package/src/chain/blocks/importExecutionPayload.ts +94 -53
  243. package/src/chain/blocks/index.ts +2 -1
  244. package/src/chain/blocks/payloadEnvelopeInput/payloadEnvelopeInput.ts +53 -12
  245. package/src/chain/blocks/payloadEnvelopeInput/types.ts +2 -1
  246. package/src/chain/blocks/types.ts +25 -14
  247. package/src/chain/blocks/verifyBlocksExecutionPayloads.ts +6 -5
  248. package/src/chain/blocks/verifyBlocksSignatures.ts +9 -2
  249. package/src/chain/chain.ts +73 -28
  250. package/src/chain/emitter.ts +25 -7
  251. package/src/chain/errors/dataColumnSidecarError.ts +32 -1
  252. package/src/chain/forkChoice/index.ts +11 -8
  253. package/src/chain/interface.ts +4 -2
  254. package/src/chain/lightClient/index.ts +15 -3
  255. package/src/chain/opPools/aggregatedAttestationPool.ts +6 -1
  256. package/src/chain/opPools/executionPayloadBidPool.ts +3 -3
  257. package/src/chain/options.ts +2 -0
  258. package/src/chain/prepareNextSlot.ts +8 -0
  259. package/src/chain/produceBlock/computeNewStateRoot.ts +2 -1
  260. package/src/chain/produceBlock/produceBlockBody.ts +25 -5
  261. package/src/chain/seenCache/seenGossipBlockInput.ts +2 -2
  262. package/src/chain/seenCache/seenPayloadEnvelopeInput.ts +2 -2
  263. package/src/chain/validation/block.ts +2 -1
  264. package/src/chain/validation/dataColumnSidecar.ts +230 -7
  265. package/src/chain/validation/executionPayloadBid.ts +7 -3
  266. package/src/chain/validation/executionPayloadEnvelope.ts +8 -1
  267. package/src/chain/validation/payloadAttestationMessage.ts +4 -0
  268. package/src/chain/validation/syncCommittee.ts +5 -1
  269. package/src/chain/validation/syncCommitteeContributionAndProof.ts +5 -1
  270. package/src/chain/validatorMonitor.ts +3 -2
  271. package/src/db/buckets.ts +2 -2
  272. package/src/db/repositories/dataColumnSidecar.ts +4 -2
  273. package/src/db/repositories/dataColumnSidecarArchive.ts +4 -2
  274. package/src/metrics/metrics/lodestar.ts +34 -0
  275. package/src/network/interface.ts +3 -2
  276. package/src/network/libp2p/index.ts +21 -15
  277. package/src/network/network.ts +7 -4
  278. package/src/network/options.ts +7 -2
  279. package/src/network/processor/extractSlotRootFns.ts +32 -6
  280. package/src/network/processor/gossipHandlers.ts +325 -86
  281. package/src/network/processor/index.ts +304 -22
  282. package/src/network/reqresp/types.ts +13 -5
  283. package/src/node/nodejs.ts +5 -2
  284. package/src/node/notifier.ts +7 -2
  285. package/src/sync/unknownBlock.ts +3 -3
  286. package/src/sync/utils/downloadByRange.ts +9 -7
  287. package/src/sync/utils/downloadByRoot.ts +16 -12
  288. package/src/util/blobs.ts +35 -15
  289. package/src/util/dataColumns.ts +69 -25
  290. package/src/util/execution.ts +49 -30
  291. package/src/util/sszBytes.ts +245 -3
@@ -11,7 +11,6 @@ import {computeEpochAtSlot} from "@lodestar/state-transition";
11
11
  import {
12
12
  AttesterSlashing,
13
13
  DataColumnSidecar,
14
- DataColumnSidecars,
15
14
  LightClientBootstrap,
16
15
  LightClientFinalityUpdate,
17
16
  LightClientOptimisticUpdate,
@@ -286,6 +285,10 @@ export class Network implements INetwork {
286
285
  this.networkProcessor.searchUnknownBlock(slotRoot, source, peer);
287
286
  }
288
287
 
288
+ searchUnknownEnvelope(slotRoot: SlotRootHex, source: BlockInputSource, peer?: PeerIdStr): void {
289
+ this.networkProcessor.searchUnknownEnvelope(slotRoot, source, peer);
290
+ }
291
+
289
292
  async reportPeer(peer: PeerIdStr, action: PeerAction, actionName: string): Promise<void> {
290
293
  return this.core.reportPeer(peer, action, actionName);
291
294
  }
@@ -621,7 +624,7 @@ export class Network implements INetwork {
621
624
  async sendDataColumnSidecarsByRange(
622
625
  peerId: PeerIdStr,
623
626
  request: fulu.DataColumnSidecarsByRangeRequest
624
- ): Promise<fulu.DataColumnSidecar[]> {
627
+ ): Promise<DataColumnSidecar[]> {
625
628
  return collectMaxResponseTyped(
626
629
  this.sendReqRespRequest(peerId, ReqRespMethod.DataColumnSidecarsByRange, [Version.V1], request),
627
630
  request.count * request.columns.length,
@@ -632,7 +635,7 @@ export class Network implements INetwork {
632
635
  async sendDataColumnSidecarsByRoot(
633
636
  peerId: PeerIdStr,
634
637
  request: DataColumnSidecarsByRootRequest
635
- ): Promise<fulu.DataColumnSidecar[]> {
638
+ ): Promise<DataColumnSidecar[]> {
636
639
  return collectMaxResponseTyped(
637
640
  this.sendReqRespRequest(peerId, ReqRespMethod.DataColumnSidecarsByRoot, [Version.V1], request),
638
641
  request.reduce((total, {columns}) => total + columns.length, 0),
@@ -812,7 +815,7 @@ export class Network implements INetwork {
812
815
  this.core.setTargetGroupCount(count);
813
816
  };
814
817
 
815
- private onPublishDataColumns = (sidecars: DataColumnSidecars): Promise<number[]> => {
818
+ private onPublishDataColumns = (sidecars: DataColumnSidecar[]): Promise<number[]> => {
816
819
  return promiseAllMaybeAsync(sidecars.map((sidecar) => () => this.publishDataColumnSidecar(sidecar)));
817
820
  };
818
821
 
@@ -55,7 +55,12 @@ export const defaultNetworkOptions: NetworkOptions = {
55
55
  maxPeers: 210, // Allow some room above targetPeers for new inbound peers
56
56
  targetPeers: 200,
57
57
  // In CLI usage this is typically overridden; when unset it serves as a fallback default (e.g. programmatic usage/tests)
58
- localMultiaddrs: ["/ip4/0.0.0.0/tcp/9000", "/ip6/::/tcp/9000"],
58
+ localMultiaddrs: [
59
+ "/ip4/0.0.0.0/udp/9001/quic-v1",
60
+ "/ip6/::/udp/9001/quic-v1",
61
+ "/ip4/0.0.0.0/tcp/9000",
62
+ "/ip6/::/tcp/9000",
63
+ ],
59
64
  bootMultiaddrs: [],
60
65
  /** disabled by default */
61
66
  discv5: null,
@@ -69,7 +74,7 @@ export const defaultNetworkOptions: NetworkOptions = {
69
74
  slotsToSubscribeBeforeAggregatorDuty: 2,
70
75
  // This will enable the light client server by default
71
76
  disableLightClientServer: false,
72
- quic: false,
77
+ quic: true,
73
78
  tcp: true,
74
79
  // specific option for fulu
75
80
  // - this is the same to TARGET_SUBNET_PEERS
@@ -1,23 +1,25 @@
1
- import {ForkName, isForkPostGloas} from "@lodestar/params";
1
+ import {ForkName, ForkSeq} from "@lodestar/params";
2
2
  import {SlotOptionalRoot, SlotRootHex} from "@lodestar/types";
3
3
  import {
4
4
  getBeaconBlockRootFromDataColumnSidecarSerialized,
5
- getBeaconBlockRootFromExecutionPayloadEnvelopeSerialized,
6
5
  getBlockRootFromBeaconAttestationSerialized,
6
+ getBlockRootFromPayloadAttestationMessageSerialized,
7
7
  getBlockRootFromSignedAggregateAndProofSerialized,
8
8
  getSlotFromBeaconAttestationSerialized,
9
9
  getSlotFromBlobSidecarSerialized,
10
10
  getSlotFromDataColumnSidecarSerialized,
11
11
  getSlotFromExecutionPayloadEnvelopeSerialized,
12
+ getSlotFromPayloadAttestationMessageSerialized,
12
13
  getSlotFromSignedAggregateAndProofSerialized,
13
14
  getSlotFromSignedBeaconBlockSerialized,
15
+ getSlotFromSignedExecutionPayloadBidSerialized,
14
16
  } from "../../util/sszBytes.js";
15
17
  import {GossipType} from "../gossip/index.js";
16
18
  import {ExtractSlotRootFns} from "./types.js";
17
19
 
18
20
  /**
19
21
  * Extract the slot and block root of a gossip message form serialized data.
20
- * Not applicable for all topics.
22
+ * Only do it for messages that have a slot and block root, and we want to await the block if the block root is not known.
21
23
  */
22
24
  export function createExtractBlockSlotRootFns(): ExtractSlotRootFns {
23
25
  return {
@@ -57,21 +59,45 @@ export function createExtractBlockSlotRootFns(): ExtractSlotRootFns {
57
59
  },
58
60
  [GossipType.data_column_sidecar]: (data: Uint8Array, fork: ForkName): SlotOptionalRoot | null => {
59
61
  const slot = getSlotFromDataColumnSidecarSerialized(data, fork);
62
+
60
63
  if (slot === null) {
61
64
  return null;
62
65
  }
63
66
 
64
- const root = isForkPostGloas(fork) ? getBeaconBlockRootFromDataColumnSidecarSerialized(data) : null;
67
+ if (ForkSeq[fork] < ForkSeq.gloas) {
68
+ return {slot};
69
+ }
70
+
71
+ const root = getBeaconBlockRootFromDataColumnSidecarSerialized(data);
72
+ // null root means the message is invalid here and will be ignored in gossip handler later
73
+ // returning the slot here helps check the earliest permissable slot in the network processor
65
74
  return root !== null ? {slot, root} : {slot};
66
75
  },
67
- [GossipType.execution_payload]: (data: Uint8Array): SlotRootHex | null => {
76
+ [GossipType.execution_payload]: (data: Uint8Array): SlotOptionalRoot | null => {
68
77
  const slot = getSlotFromExecutionPayloadEnvelopeSerialized(data);
69
- const root = getBeaconBlockRootFromExecutionPayloadEnvelopeSerialized(data);
78
+ // Do not extract the root here; the network processor will extract it in the 2nd round to trigger block search without awaiting.
79
+ if (slot === null) {
80
+ return null;
81
+ }
82
+ return {slot};
83
+ },
84
+ [GossipType.payload_attestation_message]: (data: Uint8Array): SlotRootHex | null => {
85
+ const slot = getSlotFromPayloadAttestationMessageSerialized(data);
86
+ const root = getBlockRootFromPayloadAttestationMessageSerialized(data);
70
87
 
71
88
  if (slot === null || root === null) {
72
89
  return null;
73
90
  }
74
91
  return {slot, root};
75
92
  },
93
+ [GossipType.execution_payload_bid]: (data: Uint8Array): SlotOptionalRoot | null => {
94
+ const slot = getSlotFromSignedExecutionPayloadBidSerialized(data);
95
+
96
+ if (slot === null) {
97
+ return null;
98
+ }
99
+
100
+ return {slot};
101
+ },
76
102
  };
77
103
  }