@lodestar/beacon-node 1.29.0-dev.f87bd54721 → 1.29.0-peerDAS.97104b75a4

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 (232) hide show
  1. package/lib/api/impl/beacon/blocks/index.js +37 -14
  2. package/lib/api/impl/beacon/blocks/index.js.map +1 -1
  3. package/lib/api/impl/beacon/pool/index.js +1 -1
  4. package/lib/api/impl/beacon/pool/index.js.map +1 -1
  5. package/lib/api/impl/beacon/state/index.js +0 -12
  6. package/lib/api/impl/beacon/state/index.js.map +1 -1
  7. package/lib/api/impl/validator/index.js +4 -14
  8. package/lib/api/impl/validator/index.js.map +1 -1
  9. package/lib/chain/archiveStore/historicalState/worker.js +0 -12
  10. package/lib/chain/archiveStore/historicalState/worker.js.map +1 -1
  11. package/lib/chain/archiveStore/utils/archiveBlocks.js +56 -21
  12. package/lib/chain/archiveStore/utils/archiveBlocks.js.map +1 -1
  13. package/lib/chain/beaconProposerCache.d.ts +1 -0
  14. package/lib/chain/beaconProposerCache.js +3 -0
  15. package/lib/chain/beaconProposerCache.js.map +1 -1
  16. package/lib/chain/blocks/importBlock.js +56 -14
  17. package/lib/chain/blocks/importBlock.js.map +1 -1
  18. package/lib/chain/blocks/types.d.ts +67 -26
  19. package/lib/chain/blocks/types.js +39 -6
  20. package/lib/chain/blocks/types.js.map +1 -1
  21. package/lib/chain/blocks/verifyBlocksDataAvailability.js +21 -10
  22. package/lib/chain/blocks/verifyBlocksDataAvailability.js.map +1 -1
  23. package/lib/chain/blocks/writeBlockInputToDb.js +88 -15
  24. package/lib/chain/blocks/writeBlockInputToDb.js.map +1 -1
  25. package/lib/chain/chain.d.ts +28 -1
  26. package/lib/chain/chain.js +22 -7
  27. package/lib/chain/chain.js.map +1 -1
  28. package/lib/chain/emitter.d.ts +18 -2
  29. package/lib/chain/emitter.js +13 -0
  30. package/lib/chain/emitter.js.map +1 -1
  31. package/lib/chain/errors/dataColumnSidecarError.d.ts +27 -0
  32. package/lib/chain/errors/dataColumnSidecarError.js +12 -0
  33. package/lib/chain/errors/dataColumnSidecarError.js.map +1 -0
  34. package/lib/chain/errors/index.d.ts +1 -0
  35. package/lib/chain/errors/index.js +1 -0
  36. package/lib/chain/errors/index.js.map +1 -1
  37. package/lib/chain/interface.d.ts +2 -0
  38. package/lib/chain/interface.js.map +1 -1
  39. package/lib/chain/opPools/aggregatedAttestationPool.d.ts +6 -4
  40. package/lib/chain/opPools/aggregatedAttestationPool.js +48 -76
  41. package/lib/chain/opPools/aggregatedAttestationPool.js.map +1 -1
  42. package/lib/chain/opPools/attestationPool.d.ts +2 -4
  43. package/lib/chain/opPools/attestationPool.js +3 -4
  44. package/lib/chain/opPools/attestationPool.js.map +1 -1
  45. package/lib/chain/options.d.ts +3 -0
  46. package/lib/chain/options.js +4 -0
  47. package/lib/chain/options.js.map +1 -1
  48. package/lib/chain/seenCache/seenGossipBlockInput.d.ts +55 -18
  49. package/lib/chain/seenCache/seenGossipBlockInput.js +293 -51
  50. package/lib/chain/seenCache/seenGossipBlockInput.js.map +1 -1
  51. package/lib/chain/validation/dataColumnSidecar.d.ts +8 -0
  52. package/lib/chain/validation/dataColumnSidecar.js +91 -0
  53. package/lib/chain/validation/dataColumnSidecar.js.map +1 -0
  54. package/lib/db/beacon.d.ts +3 -1
  55. package/lib/db/beacon.js +3 -1
  56. package/lib/db/beacon.js.map +1 -1
  57. package/lib/db/buckets.d.ts +3 -1
  58. package/lib/db/buckets.js +2 -0
  59. package/lib/db/buckets.js.map +1 -1
  60. package/lib/db/interface.d.ts +3 -1
  61. package/lib/db/repositories/dataColumnSidecars.d.ts +47 -0
  62. package/lib/db/repositories/dataColumnSidecars.js +40 -0
  63. package/lib/db/repositories/dataColumnSidecars.js.map +1 -0
  64. package/lib/db/repositories/dataColumnSidecarsArchive.d.ts +15 -0
  65. package/lib/db/repositories/dataColumnSidecarsArchive.js +23 -0
  66. package/lib/db/repositories/dataColumnSidecarsArchive.js.map +1 -0
  67. package/lib/db/repositories/index.d.ts +2 -0
  68. package/lib/db/repositories/index.js +2 -0
  69. package/lib/db/repositories/index.js.map +1 -1
  70. package/lib/execution/engine/http.d.ts +5 -3
  71. package/lib/execution/engine/http.js +48 -24
  72. package/lib/execution/engine/http.js.map +1 -1
  73. package/lib/execution/engine/interface.d.ts +4 -2
  74. package/lib/execution/engine/interface.js +1 -1
  75. package/lib/execution/engine/interface.js.map +1 -1
  76. package/lib/execution/engine/mock.d.ts +1 -0
  77. package/lib/execution/engine/mock.js +4 -0
  78. package/lib/execution/engine/mock.js.map +1 -1
  79. package/lib/execution/engine/types.d.ts +8 -0
  80. package/lib/execution/engine/types.js +6 -0
  81. package/lib/execution/engine/types.js.map +1 -1
  82. package/lib/metrics/metrics/beacon.d.ts +7 -0
  83. package/lib/metrics/metrics/beacon.js +23 -0
  84. package/lib/metrics/metrics/beacon.js.map +1 -1
  85. package/lib/metrics/metrics/lodestar.d.ts +10 -21
  86. package/lib/metrics/metrics/lodestar.js +28 -64
  87. package/lib/metrics/metrics/lodestar.js.map +1 -1
  88. package/lib/metrics/validatorMonitor.js +1 -1
  89. package/lib/metrics/validatorMonitor.js.map +1 -1
  90. package/lib/network/core/metrics.d.ts +14 -4
  91. package/lib/network/core/metrics.js +23 -0
  92. package/lib/network/core/metrics.js.map +1 -1
  93. package/lib/network/core/networkCore.d.ts +9 -3
  94. package/lib/network/core/networkCore.js +23 -17
  95. package/lib/network/core/networkCore.js.map +1 -1
  96. package/lib/network/core/networkCoreWorker.js +5 -5
  97. package/lib/network/core/networkCoreWorker.js.map +1 -1
  98. package/lib/network/core/networkCoreWorkerHandler.d.ts +4 -2
  99. package/lib/network/core/networkCoreWorkerHandler.js +10 -3
  100. package/lib/network/core/networkCoreWorkerHandler.js.map +1 -1
  101. package/lib/network/core/types.d.ts +5 -1
  102. package/lib/network/discv5/index.d.ts +3 -2
  103. package/lib/network/discv5/index.js +5 -4
  104. package/lib/network/discv5/index.js.map +1 -1
  105. package/lib/network/discv5/types.d.ts +1 -1
  106. package/lib/network/discv5/worker.js +6 -7
  107. package/lib/network/discv5/worker.js.map +1 -1
  108. package/lib/network/events.d.ts +3 -1
  109. package/lib/network/events.js.map +1 -1
  110. package/lib/network/gossip/gossipsub.js +0 -4
  111. package/lib/network/gossip/gossipsub.js.map +1 -1
  112. package/lib/network/gossip/interface.d.ts +8 -1
  113. package/lib/network/gossip/interface.js +1 -0
  114. package/lib/network/gossip/interface.js.map +1 -1
  115. package/lib/network/gossip/topic.d.ts +1189 -1289
  116. package/lib/network/gossip/topic.js +20 -1
  117. package/lib/network/gossip/topic.js.map +1 -1
  118. package/lib/network/interface.d.ts +17 -4
  119. package/lib/network/libp2p/index.d.ts +2 -2
  120. package/lib/network/libp2p/index.js +9 -9
  121. package/lib/network/libp2p/index.js.map +1 -1
  122. package/lib/network/metadata.d.ts +10 -6
  123. package/lib/network/metadata.js +20 -4
  124. package/lib/network/metadata.js.map +1 -1
  125. package/lib/network/network.d.ts +20 -6
  126. package/lib/network/network.js +63 -11
  127. package/lib/network/network.js.map +1 -1
  128. package/lib/network/networkConfig.d.ts +23 -0
  129. package/lib/network/networkConfig.js +32 -0
  130. package/lib/network/networkConfig.js.map +1 -0
  131. package/lib/network/options.js +2 -0
  132. package/lib/network/options.js.map +1 -1
  133. package/lib/network/peers/datastore.d.ts +1 -2
  134. package/lib/network/peers/datastore.js +1 -1
  135. package/lib/network/peers/datastore.js.map +1 -1
  136. package/lib/network/peers/discover.d.ts +19 -7
  137. package/lib/network/peers/discover.js +148 -18
  138. package/lib/network/peers/discover.js.map +1 -1
  139. package/lib/network/peers/peerManager.d.ts +11 -9
  140. package/lib/network/peers/peerManager.js +96 -10
  141. package/lib/network/peers/peerManager.js.map +1 -1
  142. package/lib/network/peers/peersData.d.ts +8 -2
  143. package/lib/network/peers/peersData.js.map +1 -1
  144. package/lib/network/peers/score/interface.d.ts +1 -1
  145. package/lib/network/peers/score/score.d.ts +2 -2
  146. package/lib/network/peers/score/score.js +4 -1
  147. package/lib/network/peers/score/score.js.map +1 -1
  148. package/lib/network/peers/score/store.d.ts +3 -1
  149. package/lib/network/peers/score/store.js +6 -2
  150. package/lib/network/peers/score/store.js.map +1 -1
  151. package/lib/network/peers/utils/getConnectedPeerIds.js +2 -2
  152. package/lib/network/peers/utils/getConnectedPeerIds.js.map +1 -1
  153. package/lib/network/peers/utils/prioritizePeers.d.ts +15 -4
  154. package/lib/network/peers/utils/prioritizePeers.js +28 -5
  155. package/lib/network/peers/utils/prioritizePeers.js.map +1 -1
  156. package/lib/network/processor/extractSlotRootFns.js +8 -1
  157. package/lib/network/processor/extractSlotRootFns.js.map +1 -1
  158. package/lib/network/processor/gossipHandlers.js +154 -16
  159. package/lib/network/processor/gossipHandlers.js.map +1 -1
  160. package/lib/network/processor/gossipQueues/index.js +5 -0
  161. package/lib/network/processor/gossipQueues/index.js.map +1 -1
  162. package/lib/network/processor/index.js +5 -1
  163. package/lib/network/processor/index.js.map +1 -1
  164. package/lib/network/reqresp/ReqRespBeaconNode.js +21 -3
  165. package/lib/network/reqresp/ReqRespBeaconNode.js.map +1 -1
  166. package/lib/network/reqresp/beaconBlocksMaybeBlobsByRange.d.ts +14 -5
  167. package/lib/network/reqresp/beaconBlocksMaybeBlobsByRange.js +194 -14
  168. package/lib/network/reqresp/beaconBlocksMaybeBlobsByRange.js.map +1 -1
  169. package/lib/network/reqresp/beaconBlocksMaybeBlobsByRoot.d.ts +28 -5
  170. package/lib/network/reqresp/beaconBlocksMaybeBlobsByRoot.js +254 -26
  171. package/lib/network/reqresp/beaconBlocksMaybeBlobsByRoot.js.map +1 -1
  172. package/lib/network/reqresp/handlers/beaconBlocksByRange.d.ts +1 -1
  173. package/lib/network/reqresp/handlers/beaconBlocksByRange.js.map +1 -1
  174. package/lib/network/reqresp/handlers/dataColumnSidecarsByRange.d.ts +8 -0
  175. package/lib/network/reqresp/handlers/dataColumnSidecarsByRange.js +106 -0
  176. package/lib/network/reqresp/handlers/dataColumnSidecarsByRange.js.map +1 -0
  177. package/lib/network/reqresp/handlers/dataColumnSidecarsByRoot.d.ts +6 -0
  178. package/lib/network/reqresp/handlers/dataColumnSidecarsByRoot.js +58 -0
  179. package/lib/network/reqresp/handlers/dataColumnSidecarsByRoot.js.map +1 -0
  180. package/lib/network/reqresp/handlers/index.js +10 -0
  181. package/lib/network/reqresp/handlers/index.js.map +1 -1
  182. package/lib/network/reqresp/protocols.d.ts +3 -0
  183. package/lib/network/reqresp/protocols.js +15 -0
  184. package/lib/network/reqresp/protocols.js.map +1 -1
  185. package/lib/network/reqresp/rateLimit.js +11 -1
  186. package/lib/network/reqresp/rateLimit.js.map +1 -1
  187. package/lib/network/reqresp/types.d.ts +13 -6
  188. package/lib/network/reqresp/types.js +8 -1
  189. package/lib/network/reqresp/types.js.map +1 -1
  190. package/lib/network/subnets/interface.d.ts +2 -0
  191. package/lib/network/subnets/interface.js +16 -1
  192. package/lib/network/subnets/interface.js.map +1 -1
  193. package/lib/network/subnets/syncnetsService.js +4 -5
  194. package/lib/network/subnets/syncnetsService.js.map +1 -1
  195. package/lib/network/util.d.ts +1 -4
  196. package/lib/network/util.js +2 -2
  197. package/lib/network/util.js.map +1 -1
  198. package/lib/node/nodejs.d.ts +5 -3
  199. package/lib/node/nodejs.js +6 -4
  200. package/lib/node/nodejs.js.map +1 -1
  201. package/lib/sync/interface.d.ts +2 -2
  202. package/lib/sync/interface.js +1 -1
  203. package/lib/sync/interface.js.map +1 -1
  204. package/lib/sync/range/batch.d.ts +8 -2
  205. package/lib/sync/range/batch.js +16 -7
  206. package/lib/sync/range/batch.js.map +1 -1
  207. package/lib/sync/range/chain.d.ts +7 -2
  208. package/lib/sync/range/chain.js +45 -21
  209. package/lib/sync/range/chain.js.map +1 -1
  210. package/lib/sync/range/range.js +3 -3
  211. package/lib/sync/range/range.js.map +1 -1
  212. package/lib/sync/range/utils/peerBalancer.d.ts +4 -1
  213. package/lib/sync/range/utils/peerBalancer.js +20 -2
  214. package/lib/sync/range/utils/peerBalancer.js.map +1 -1
  215. package/lib/sync/unknownBlock.d.ts +8 -1
  216. package/lib/sync/unknownBlock.js +223 -63
  217. package/lib/sync/unknownBlock.js.map +1 -1
  218. package/lib/util/blobs.d.ts +12 -1
  219. package/lib/util/blobs.js +40 -1
  220. package/lib/util/blobs.js.map +1 -1
  221. package/lib/util/dataColumns.d.ts +105 -0
  222. package/lib/util/dataColumns.js +189 -0
  223. package/lib/util/dataColumns.js.map +1 -0
  224. package/lib/util/kzg.d.ts +9 -21
  225. package/lib/util/kzg.js +12 -88
  226. package/lib/util/kzg.js.map +1 -1
  227. package/lib/util/peerId.js +1 -1
  228. package/lib/util/peerId.js.map +1 -1
  229. package/lib/util/sszBytes.d.ts +1 -0
  230. package/lib/util/sszBytes.js +17 -0
  231. package/lib/util/sszBytes.js.map +1 -1
  232. package/package.json +33 -32
@@ -1,10 +1,11 @@
1
- import { peerIdFromPrivateKey } from "@libp2p/peer-id";
2
1
  import { routes } from "@lodestar/api";
3
- import { ForkSeq } from "@lodestar/params";
2
+ import { DATA_COLUMN_SIDECAR_SUBNET_COUNT, ForkSeq, NUMBER_OF_COLUMNS } from "@lodestar/params";
4
3
  import { computeStartSlotAtEpoch, computeTimeAtSlot } from "@lodestar/state-transition";
5
4
  import { sleep } from "@lodestar/utils";
5
+ import { ChainEvent } from "../chain/index.js";
6
6
  import { RegistryMetricCreator } from "../metrics/index.js";
7
7
  import { peerIdToString } from "../util/peerId.js";
8
+ import { promiseAllMaybeAsync } from "../util/promises.js";
8
9
  import { NetworkCore, WorkerNetworkCore } from "./core/index.js";
9
10
  import { NetworkEvent, NetworkEventBus } from "./events.js";
10
11
  import { getActiveForks } from "./forks.js";
@@ -28,7 +29,8 @@ import { isPublishToZeroPeersError } from "./util.js";
28
29
  export class Network {
29
30
  constructor(modules) {
30
31
  this.subscribedToCoreTopics = false;
31
- this.connectedPeers = new Set();
32
+ this.connectedPeers = new Map();
33
+ this.connectedPeerClients = new Map();
32
34
  this.regossipBlsChangesPromise = null;
33
35
  this.onLightClientFinalityUpdate = async (finalityUpdate) => {
34
36
  // TODO: Review is OK to remove if (this.hasAttachedSyncCommitteeMember())
@@ -71,13 +73,26 @@ export class Network {
71
73
  await this.core.updateStatus(this.chain.getStatus());
72
74
  };
73
75
  this.onPeerConnected = (data) => {
74
- this.connectedPeers.add(data.peer);
76
+ this.logger.warn("onPeerConnected", { peer: data.peer, dataColumns: data.dataColumns.join(" ") });
77
+ this.connectedPeers.set(data.peer, data.dataColumns);
78
+ this.connectedPeerClients.set(data.peer, data.clientAgent);
75
79
  };
76
80
  this.onPeerDisconnected = (data) => {
77
81
  this.connectedPeers.delete(data.peer);
78
82
  };
79
- this.peerId = peerIdFromPrivateKey(modules.privateKey);
83
+ this.onTargetGroupCountUpdated = (count) => {
84
+ this.core.setTargetGroupCount(count);
85
+ };
86
+ this.onAdvertisedGroupCountUpdated = (count) => {
87
+ this.core.setAdvertisedGroupCount(count);
88
+ };
89
+ this.onPublishDataColumns = (sidecars) => {
90
+ return promiseAllMaybeAsync(sidecars.map((sidecar) => () => this.publishDataColumnSidecar(sidecar)));
91
+ };
92
+ this.peerId = modules.peerId;
93
+ this.nodeId = modules.nodeId;
80
94
  this.config = modules.config;
95
+ this.custodyConfig = modules.chain.custodyConfig;
81
96
  this.logger = modules.logger;
82
97
  this.chain = modules.chain;
83
98
  this.clock = modules.chain.clock;
@@ -91,8 +106,11 @@ export class Network {
91
106
  this.chain.emitter.on(routes.events.EventType.head, this.onHead);
92
107
  this.chain.emitter.on(routes.events.EventType.lightClientFinalityUpdate, ({ data }) => this.onLightClientFinalityUpdate(data));
93
108
  this.chain.emitter.on(routes.events.EventType.lightClientOptimisticUpdate, ({ data }) => this.onLightClientOptimisticUpdate(data));
109
+ this.chain.emitter.on(ChainEvent.updateTargetGroupCount, this.onTargetGroupCountUpdated);
110
+ this.chain.emitter.on(ChainEvent.updateAdvertisedGroupCount, this.onAdvertisedGroupCountUpdated);
111
+ this.chain.emitter.on(ChainEvent.publishDataColumns, this.onPublishDataColumns);
94
112
  }
95
- static async init({ opts, config, logger, metrics, chain, db, gossipHandlers, privateKey, peerStoreDir, getReqRespHandler, }) {
113
+ static async init({ opts, config, logger, metrics, chain, db, gossipHandlers, peerId, nodeId, peerStoreDir, getReqRespHandler, }) {
96
114
  const events = new NetworkEventBus();
97
115
  const aggregatorTracker = new AggregatorTracker();
98
116
  const activeValidatorCount = chain.getHeadState().epochCtx.currentShuffling.activeIndices.length;
@@ -111,7 +129,7 @@ export class Network {
111
129
  initialStatus,
112
130
  },
113
131
  config,
114
- privateKey,
132
+ peerId,
115
133
  logger,
116
134
  events,
117
135
  metrics,
@@ -120,7 +138,7 @@ export class Network {
120
138
  : await NetworkCore.init({
121
139
  opts,
122
140
  config,
123
- privateKey,
141
+ peerId,
124
142
  peerStoreDir,
125
143
  logger,
126
144
  clock: chain.clock,
@@ -132,11 +150,11 @@ export class Network {
132
150
  });
133
151
  const networkProcessor = new NetworkProcessor({ chain, db, config, logger, metrics, events, gossipHandlers, core, aggregatorTracker }, opts);
134
152
  const multiaddresses = opts.localMultiaddrs?.join(",");
135
- const peerId = peerIdFromPrivateKey(privateKey);
136
153
  logger.info(`PeerId ${peerIdToString(peerId)}, Multiaddrs ${multiaddresses}`);
137
154
  return new Network({
138
155
  opts,
139
- privateKey,
156
+ peerId,
157
+ nodeId,
140
158
  config,
141
159
  logger,
142
160
  chain,
@@ -160,6 +178,9 @@ export class Network {
160
178
  this.chain.emitter.off(routes.events.EventType.head, this.onHead);
161
179
  this.chain.emitter.off(routes.events.EventType.lightClientFinalityUpdate, this.onLightClientFinalityUpdate);
162
180
  this.chain.emitter.off(routes.events.EventType.lightClientOptimisticUpdate, this.onLightClientOptimisticUpdate);
181
+ this.chain.emitter.off(ChainEvent.updateTargetGroupCount, this.onTargetGroupCountUpdated);
182
+ this.chain.emitter.off(ChainEvent.updateAdvertisedGroupCount, this.onAdvertisedGroupCountUpdated);
183
+ this.chain.emitter.off(ChainEvent.publishDataColumns, this.onPublishDataColumns);
163
184
  await this.core.close();
164
185
  this.logger.debug("network core closed");
165
186
  }
@@ -195,7 +216,22 @@ export class Network {
195
216
  }
196
217
  // REST API queries
197
218
  getConnectedPeers() {
198
- return Array.from(this.connectedPeers.values());
219
+ return Array.from(this.connectedPeers.keys());
220
+ }
221
+ // TODO: @matthewkeil check if this needs to be updated for custody groups
222
+ getConnectedPeerCustody(peerId) {
223
+ const columns = this.connectedPeers.get(peerId);
224
+ if (columns === undefined) {
225
+ throw Error("peerId not in connectedPeers");
226
+ }
227
+ return columns;
228
+ }
229
+ getConnectedPeerClientAgent(peerId) {
230
+ const clientAgent = this.connectedPeerClients.get(peerId);
231
+ if (clientAgent === undefined) {
232
+ throw Error("clientAgent not in connectedPeerClients");
233
+ }
234
+ return clientAgent;
199
235
  }
200
236
  getConnectedPeerCount() {
201
237
  return this.connectedPeers.size;
@@ -243,6 +279,14 @@ export class Network {
243
279
  ignoreDuplicatePublishError: true,
244
280
  });
245
281
  }
282
+ async publishDataColumnSidecar(dataColumnSidecar) {
283
+ const slot = dataColumnSidecar.signedBlockHeader.message.slot;
284
+ const fork = this.config.getForkName(slot);
285
+ const index = dataColumnSidecar.index % DATA_COLUMN_SIDECAR_SUBNET_COUNT;
286
+ return this.publishGossip({ type: GossipType.data_column_sidecar, fork, index }, dataColumnSidecar, {
287
+ ignoreDuplicatePublishError: true,
288
+ });
289
+ }
246
290
  async publishBeaconAggregateAndProof(aggregateAndProof) {
247
291
  const fork = this.config.getForkName(aggregateAndProof.message.aggregate.data.slot);
248
292
  return this.publishGossip({ type: GossipType.beacon_aggregate_and_proof, fork }, aggregateAndProof, { ignoreDuplicatePublishError: true });
@@ -340,6 +384,14 @@ export class Network {
340
384
  async sendBlobSidecarsByRoot(peerId, request) {
341
385
  return collectMaxResponseTyped(this.sendReqRespRequest(peerId, ReqRespMethod.BlobSidecarsByRoot, [Version.V1], request), request.length, responseSszTypeByMethod[ReqRespMethod.BlobSidecarsByRoot]);
342
386
  }
387
+ async sendDataColumnSidecarsByRange(peerId, request) {
388
+ return collectMaxResponseTyped(this.sendReqRespRequest(peerId, ReqRespMethod.DataColumnSidecarsByRange, [Version.V1], request),
389
+ // request's count represent the slots, so the actual max count received could be slots * blobs per slot
390
+ request.count * NUMBER_OF_COLUMNS, responseSszTypeByMethod[ReqRespMethod.DataColumnSidecarsByRange]);
391
+ }
392
+ async sendDataColumnSidecarsByRoot(peerId, request) {
393
+ return collectMaxResponseTyped(this.sendReqRespRequest(peerId, ReqRespMethod.DataColumnSidecarsByRoot, [Version.V1], request), request.length, responseSszTypeByMethod[ReqRespMethod.DataColumnSidecarsByRoot]);
394
+ }
343
395
  sendReqRespRequest(peerId, method, versions, request) {
344
396
  const fork = this.config.getForkName(this.clock.currentSlot);
345
397
  const requestType = requestSszTypeByMethod(fork, this.config)[method];
@@ -1 +1 @@
1
- {"version":3,"file":"network.js","sourceRoot":"","sources":["../../src/network/network.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"network.js","sourceRoot":"","sources":["../../src/network/network.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,23 @@
1
+ import { PeerId } from "@libp2p/interface";
2
+ import { BeaconConfig } from "@lodestar/config";
3
+ import { CustodyConfig } from "../util/dataColumns.js";
4
+ import { NodeId } from "./subnets/interface.js";
5
+ /**
6
+ * Store shared data for different modules in the network stack.
7
+ * TODO: consider moving similar shared data, for example PeersData, under NetworkConfig.
8
+ */
9
+ export declare class NetworkConfig {
10
+ private readonly nodeId;
11
+ private readonly config;
12
+ private readonly custodyConfig;
13
+ constructor(peerId: PeerId, config: BeaconConfig);
14
+ getConfig(): BeaconConfig;
15
+ getNodeId(): NodeId;
16
+ /**
17
+ * Consumer should never mutate returned CustodyConfig
18
+ */
19
+ getCustodyConfig(): CustodyConfig;
20
+ setTargetGroupCount(count: number): void;
21
+ setAdvertisedGroupCount(count: number): void;
22
+ }
23
+ //# sourceMappingURL=networkConfig.d.ts.map
@@ -0,0 +1,32 @@
1
+ import { CustodyConfig } from "../util/dataColumns.js";
2
+ import { computeNodeId } from "./subnets/interface.js";
3
+ /**
4
+ * Store shared data for different modules in the network stack.
5
+ * TODO: consider moving similar shared data, for example PeersData, under NetworkConfig.
6
+ */
7
+ export class NetworkConfig {
8
+ constructor(peerId, config) {
9
+ this.nodeId = computeNodeId(peerId);
10
+ this.config = config;
11
+ this.custodyConfig = new CustodyConfig(this.nodeId, config);
12
+ }
13
+ getConfig() {
14
+ return this.config;
15
+ }
16
+ getNodeId() {
17
+ return this.nodeId;
18
+ }
19
+ /**
20
+ * Consumer should never mutate returned CustodyConfig
21
+ */
22
+ getCustodyConfig() {
23
+ return this.custodyConfig;
24
+ }
25
+ setTargetGroupCount(count) {
26
+ this.custodyConfig.updateTargetCustodyGroupCount(count);
27
+ }
28
+ setAdvertisedGroupCount(count) {
29
+ this.custodyConfig.updateAdvertisedCustodyGroupCount(count);
30
+ }
31
+ }
32
+ //# sourceMappingURL=networkConfig.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"networkConfig.js","sourceRoot":"","sources":["../../src/network/networkConfig.ts"],"names":[],"mappings":"AAEA,OAAO,EAAC,aAAa,EAAC,MAAM,wBAAwB,CAAC;AACrD,OAAO,EAAS,aAAa,EAAC,MAAM,wBAAwB,CAAC;AAE7D;;;GAGG;AACH,MAAM,OAAO,aAAa;IAKxB,YAAY,MAAc,EAAE,MAAoB;QAC9C,IAAI,CAAC,MAAM,GAAG,aAAa,CAAC,MAAM,CAAC,CAAC;QACpC,IAAI,CAAC,MAAM,GAAG,MAAM,CAAC;QACrB,IAAI,CAAC,aAAa,GAAG,IAAI,aAAa,CAAC,IAAI,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;IAC9D,CAAC;IAED,SAAS;QACP,OAAO,IAAI,CAAC,MAAM,CAAC;IACrB,CAAC;IAED,SAAS;QACP,OAAO,IAAI,CAAC,MAAM,CAAC;IACrB,CAAC;IAED;;OAEG;IACH,gBAAgB;QACd,OAAO,IAAI,CAAC,aAAa,CAAC;IAC5B,CAAC;IAED,mBAAmB,CAAC,KAAa;QAC/B,IAAI,CAAC,aAAa,CAAC,6BAA6B,CAAC,KAAK,CAAC,CAAC;IAC1D,CAAC;IAED,uBAAuB,CAAC,KAAa;QACnC,IAAI,CAAC,aAAa,CAAC,iCAAiC,CAAC,KAAK,CAAC,CAAC;IAC9D,CAAC;CACF"}
@@ -15,5 +15,7 @@ export const defaultNetworkOptions = {
15
15
  slotsToSubscribeBeforeAggregatorDuty: 2,
16
16
  // This will enable the light client server by default
17
17
  disableLightClientServer: false,
18
+ // for PeerDAS, this is the same to TARGET_SUBNET_PEERS, should reavaluate after devnets
19
+ targetGroupPeers: 6,
18
20
  };
19
21
  //# sourceMappingURL=options.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"options.js","sourceRoot":"","sources":["../../src/network/options.ts"],"names":[],"mappings":"AA2BA,MAAM,CAAC,MAAM,qBAAqB,GAAmB;IACnD,QAAQ,EAAE,GAAG,EAAE,0DAA0D;IACzE,WAAW,EAAE,GAAG;IAChB,eAAe,EAAE,CAAC,uBAAuB,CAAC;IAC1C,cAAc,EAAE,EAAE;IAClB,0BAA0B;IAC1B,MAAM,EAAE,IAAI;IACZ,mBAAmB,EAAE,CAAC;IACtB,SAAS,EAAE,IAAI;IACf,yFAAyF;IACzF,mBAAmB,EAAE,IAAI;IACzB,gFAAgF;IAChF,wBAAwB,EAAE,GAAG;IAC7B,kGAAkG;IAClG,oCAAoC,EAAE,CAAC;IACvC,sDAAsD;IACtD,wBAAwB,EAAE,KAAK;CAChC,CAAC"}
1
+ {"version":3,"file":"options.js","sourceRoot":"","sources":["../../src/network/options.ts"],"names":[],"mappings":"AA2BA,MAAM,CAAC,MAAM,qBAAqB,GAAmB;IACnD,QAAQ,EAAE,GAAG,EAAE,0DAA0D;IACzE,WAAW,EAAE,GAAG;IAChB,eAAe,EAAE,CAAC,uBAAuB,CAAC;IAC1C,cAAc,EAAE,EAAE;IAClB,0BAA0B;IAC1B,MAAM,EAAE,IAAI;IACZ,mBAAmB,EAAE,CAAC;IACtB,SAAS,EAAE,IAAI;IACf,yFAAyF;IACzF,mBAAmB,EAAE,IAAI;IACzB,gFAAgF;IAChF,wBAAwB,EAAE,GAAG;IAC7B,kGAAkG;IAClG,oCAAoC,EAAE,CAAC;IACvC,sDAAsD;IACtD,wBAAwB,EAAE,KAAK;IAC/B,wFAAwF;IACxF,gBAAgB,EAAE,CAAC;CACpB,CAAC"}
@@ -1,4 +1,3 @@
1
- import { AbortOptions } from "@libp2p/interface";
2
1
  import { BaseDatastore } from "datastore-core";
3
2
  import { LevelDatastore } from "datastore-level";
4
3
  import { Key, KeyQuery, Pair, Query } from "interface-datastore";
@@ -30,7 +29,7 @@ export declare class Eth2PeerDataStore extends BaseDatastore {
30
29
  });
31
30
  open(): Promise<void>;
32
31
  close(): Promise<void>;
33
- put(key: Key, val: Uint8Array, _options?: AbortOptions): Promise<Key>;
32
+ put(key: Key, val: Uint8Array): Promise<Key>;
34
33
  /**
35
34
  * Same interface to put with "fromDb" option, if this item is updated back from db
36
35
  * Move oldest items from memory data store to db if it's over this._maxMemoryItems
@@ -36,7 +36,7 @@ export class Eth2PeerDataStore extends BaseDatastore {
36
36
  async close() {
37
37
  return this._dbDatastore.close();
38
38
  }
39
- async put(key, val, _options) {
39
+ async put(key, val) {
40
40
  return this._put(key, val, false);
41
41
  }
42
42
  /**
@@ -1 +1 @@
1
- {"version":3,"file":"datastore.js","sourceRoot":"","sources":["../../../src/network/peers/datastore.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"datastore.js","sourceRoot":"","sources":["../../../src/network/peers/datastore.ts"],"names":[],"mappings":"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"}
@@ -1,26 +1,29 @@
1
- import type { PrivateKey } from "@libp2p/interface";
2
- import { BeaconConfig } from "@lodestar/config";
3
1
  import { LoggerNode } from "@lodestar/logger/node";
4
2
  import { SubnetID } from "@lodestar/types";
3
+ import { IClock } from "../../util/clock.js";
5
4
  import { NetworkCoreMetrics } from "../core/metrics.js";
6
5
  import { Discv5Worker } from "../discv5/index.js";
7
6
  import { LodestarDiscv5Opts } from "../discv5/types.js";
8
7
  import { Libp2p } from "../interface.js";
9
8
  import { SubnetType } from "../metadata.js";
9
+ import { NetworkConfig } from "../networkConfig.js";
10
10
  import { IPeerRpcScoreStore } from "./score/index.js";
11
+ import { type GroupQueries } from "./utils/prioritizePeers.js";
11
12
  export type PeerDiscoveryOpts = {
12
13
  maxPeers: number;
13
14
  discv5FirstQueryDelayMs: number;
14
15
  discv5: LodestarDiscv5Opts;
15
16
  connectToDiscv5Bootnodes?: boolean;
17
+ onlyConnectToBiggerDataNodes?: boolean;
18
+ onlyConnectToMinimalCustodyOverlapNodes?: boolean;
16
19
  };
17
20
  export type PeerDiscoveryModules = {
18
- privateKey: PrivateKey;
21
+ networkConfig: NetworkConfig;
19
22
  libp2p: Libp2p;
23
+ clock: IClock;
20
24
  peerRpcScores: IPeerRpcScoreStore;
21
25
  metrics: NetworkCoreMetrics | null;
22
26
  logger: LoggerNode;
23
- config: BeaconConfig;
24
27
  };
25
28
  export declare enum DiscoveredPeerStatus {
26
29
  bad_score = "bad_score",
@@ -32,6 +35,10 @@ export declare enum DiscoveredPeerStatus {
32
35
  dropped = "dropped",
33
36
  no_multiaddrs = "no_multiaddrs"
34
37
  }
38
+ export declare enum NotDialReason {
39
+ not_contain_requested_sampling_groups = "not_contain_requested_sampling_groups",
40
+ not_contain_requested_attnet_syncnet_subnets = "not_contain_requested_attnet_syncnet_subnets"
41
+ }
35
42
  type UnixMs = number;
36
43
  export type SubnetDiscvQueryMs = {
37
44
  subnet: SubnetID;
@@ -46,26 +53,31 @@ export type SubnetDiscvQueryMs = {
46
53
  export declare class PeerDiscovery {
47
54
  readonly discv5: Discv5Worker;
48
55
  private libp2p;
56
+ private readonly clock;
57
+ private nodeId;
49
58
  private peerRpcScores;
50
59
  private metrics;
51
60
  private logger;
61
+ private networkConfig;
52
62
  private config;
53
63
  private cachedENRs;
54
64
  private randomNodeQuery;
55
65
  private peersToConnect;
56
66
  private subnetRequests;
57
- /** The maximum number of peers we allow (exceptions for subnet peers) */
58
- private maxPeers;
67
+ private groupRequests;
59
68
  private discv5StartMs;
60
69
  private discv5FirstQueryDelayMs;
61
70
  private connectToDiscv5BootnodesOnStart;
71
+ private onlyConnectToBiggerDataNodes;
72
+ private onlyConnectToMinimalCustodyOverlapNodes;
62
73
  constructor(modules: PeerDiscoveryModules, opts: PeerDiscoveryOpts, discv5: Discv5Worker);
63
74
  static init(modules: PeerDiscoveryModules, opts: PeerDiscoveryOpts): Promise<PeerDiscovery>;
64
75
  stop(): Promise<void>;
65
76
  /**
66
77
  * Request to find peers, both on specific subnets and in general
78
+ * pre-fulu groupRequests is empty
67
79
  */
68
- discoverPeers(peersToConnect: number, subnetRequests?: SubnetDiscvQueryMs[]): void;
80
+ discoverPeers(peersToConnect: number, groupRequests: GroupQueries, subnetRequests?: SubnetDiscvQueryMs[]): void;
69
81
  /**
70
82
  * Request discv5 to find peers if there is no query in progress
71
83
  */