@lodestar/beacon-node 1.33.0-dev.edc35e4b78 → 1.33.0-peerDAS.5a2cffc7e5
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.
- package/lib/api/impl/beacon/blocks/index.js +66 -27
- package/lib/api/impl/beacon/blocks/index.js.map +1 -1
- package/lib/api/impl/debug/index.d.ts +1 -1
- package/lib/api/impl/debug/index.js +24 -1
- package/lib/api/impl/debug/index.js.map +1 -1
- package/lib/chain/archiveStore/archiveStore.d.ts +1 -1
- package/lib/chain/archiveStore/archiveStore.js +2 -2
- package/lib/chain/archiveStore/interface.d.ts +1 -1
- package/lib/chain/archiveStore/utils/archiveBlocks.d.ts +1 -1
- package/lib/chain/archiveStore/utils/archiveBlocks.js +88 -23
- package/lib/chain/archiveStore/utils/archiveBlocks.js.map +1 -1
- package/lib/chain/beaconProposerCache.d.ts +1 -0
- package/lib/chain/beaconProposerCache.js +3 -0
- package/lib/chain/beaconProposerCache.js.map +1 -1
- package/lib/chain/blocks/importBlock.js +8 -3
- package/lib/chain/blocks/importBlock.js.map +1 -1
- package/lib/chain/blocks/types.d.ts +66 -24
- package/lib/chain/blocks/types.js +39 -6
- package/lib/chain/blocks/types.js.map +1 -1
- package/lib/chain/blocks/verifyBlocksDataAvailability.js +21 -10
- package/lib/chain/blocks/verifyBlocksDataAvailability.js.map +1 -1
- package/lib/chain/blocks/writeBlockInputToDb.js +89 -15
- package/lib/chain/blocks/writeBlockInputToDb.js.map +1 -1
- package/lib/chain/chain.d.ts +16 -5
- package/lib/chain/chain.js +32 -4
- package/lib/chain/chain.js.map +1 -1
- package/lib/chain/emitter.d.ts +18 -2
- package/lib/chain/emitter.js +13 -0
- package/lib/chain/emitter.js.map +1 -1
- package/lib/chain/errors/dataColumnSidecarError.d.ts +69 -0
- package/lib/chain/errors/dataColumnSidecarError.js +21 -0
- package/lib/chain/errors/dataColumnSidecarError.js.map +1 -0
- package/lib/chain/errors/index.d.ts +1 -0
- package/lib/chain/errors/index.js +1 -0
- package/lib/chain/errors/index.js.map +1 -1
- package/lib/chain/interface.d.ts +10 -4
- package/lib/chain/interface.js.map +1 -1
- package/lib/chain/options.d.ts +4 -1
- package/lib/chain/options.js +4 -0
- package/lib/chain/options.js.map +1 -1
- package/lib/chain/produceBlock/produceBlockBody.d.ts +4 -2
- package/lib/chain/produceBlock/produceBlockBody.js +8 -3
- package/lib/chain/produceBlock/produceBlockBody.js.map +1 -1
- package/lib/chain/produceBlock/validateBlobsAndKzgCommitments.d.ts +3 -2
- package/lib/chain/produceBlock/validateBlobsAndKzgCommitments.js +25 -2
- package/lib/chain/produceBlock/validateBlobsAndKzgCommitments.js.map +1 -1
- package/lib/chain/seenCache/seenGossipBlockInput.d.ts +64 -18
- package/lib/chain/seenCache/seenGossipBlockInput.js +320 -53
- package/lib/chain/seenCache/seenGossipBlockInput.js.map +1 -1
- package/lib/chain/validation/dataColumnSidecar.d.ts +28 -0
- package/lib/chain/validation/dataColumnSidecar.js +248 -0
- package/lib/chain/validation/dataColumnSidecar.js.map +1 -0
- package/lib/db/beacon.d.ts +3 -1
- package/lib/db/beacon.js +3 -1
- package/lib/db/beacon.js.map +1 -1
- package/lib/db/buckets.d.ts +3 -1
- package/lib/db/buckets.js +2 -0
- package/lib/db/buckets.js.map +1 -1
- package/lib/db/interface.d.ts +3 -1
- package/lib/db/repositories/dataColumnSidecars.d.ts +47 -0
- package/lib/db/repositories/dataColumnSidecars.js +40 -0
- package/lib/db/repositories/dataColumnSidecars.js.map +1 -0
- package/lib/db/repositories/dataColumnSidecarsArchive.d.ts +15 -0
- package/lib/db/repositories/dataColumnSidecarsArchive.js +23 -0
- package/lib/db/repositories/dataColumnSidecarsArchive.js.map +1 -0
- package/lib/db/repositories/index.d.ts +2 -0
- package/lib/db/repositories/index.js +2 -0
- package/lib/db/repositories/index.js.map +1 -1
- package/lib/execution/engine/http.d.ts +5 -3
- package/lib/execution/engine/http.js +70 -31
- package/lib/execution/engine/http.js.map +1 -1
- package/lib/execution/engine/interface.d.ts +4 -2
- package/lib/execution/engine/interface.js +1 -1
- package/lib/execution/engine/interface.js.map +1 -1
- package/lib/execution/engine/mock.d.ts +1 -0
- package/lib/execution/engine/mock.js +5 -0
- package/lib/execution/engine/mock.js.map +1 -1
- package/lib/execution/engine/types.d.ts +10 -0
- package/lib/execution/engine/types.js +6 -0
- package/lib/execution/engine/types.js.map +1 -1
- package/lib/metrics/metrics/beacon.d.ts +12 -0
- package/lib/metrics/metrics/beacon.js +47 -0
- package/lib/metrics/metrics/beacon.js.map +1 -1
- package/lib/metrics/metrics/lodestar.d.ts +15 -0
- package/lib/metrics/metrics/lodestar.js +32 -0
- package/lib/metrics/metrics/lodestar.js.map +1 -1
- package/lib/network/core/metrics.d.ts +10 -3
- package/lib/network/core/metrics.js +22 -4
- package/lib/network/core/metrics.js.map +1 -1
- package/lib/network/core/networkCore.d.ts +8 -3
- package/lib/network/core/networkCore.js +24 -10
- package/lib/network/core/networkCore.js.map +1 -1
- package/lib/network/core/networkCoreWorker.js +1 -0
- package/lib/network/core/networkCoreWorker.js.map +1 -1
- package/lib/network/core/networkCoreWorkerHandler.d.ts +4 -3
- package/lib/network/core/networkCoreWorkerHandler.js +4 -0
- package/lib/network/core/networkCoreWorkerHandler.js.map +1 -1
- package/lib/network/core/types.d.ts +6 -4
- package/lib/network/events.d.ts +4 -2
- package/lib/network/events.js.map +1 -1
- package/lib/network/gossip/interface.d.ts +8 -1
- package/lib/network/gossip/interface.js +1 -0
- package/lib/network/gossip/interface.js.map +1 -1
- package/lib/network/gossip/topic.d.ts +1047 -1031
- package/lib/network/gossip/topic.js +20 -1
- package/lib/network/gossip/topic.js.map +1 -1
- package/lib/network/interface.d.ts +13 -1
- package/lib/network/metadata.d.ts +16 -7
- package/lib/network/metadata.js +40 -6
- package/lib/network/metadata.js.map +1 -1
- package/lib/network/network.d.ts +12 -2
- package/lib/network/network.js +59 -8
- package/lib/network/network.js.map +1 -1
- package/lib/network/networkConfig.d.ts +22 -0
- package/lib/network/networkConfig.js +29 -0
- package/lib/network/networkConfig.js.map +1 -0
- package/lib/network/options.js +5 -0
- package/lib/network/options.js.map +1 -1
- package/lib/network/peers/discover.d.ts +8 -3
- package/lib/network/peers/discover.js +106 -13
- package/lib/network/peers/discover.js.map +1 -1
- package/lib/network/peers/peerManager.d.ts +10 -4
- package/lib/network/peers/peerManager.js +93 -11
- package/lib/network/peers/peerManager.js.map +1 -1
- package/lib/network/peers/peersData.d.ts +17 -3
- package/lib/network/peers/peersData.js.map +1 -1
- package/lib/network/peers/score/interface.d.ts +1 -1
- package/lib/network/peers/score/score.d.ts +2 -2
- package/lib/network/peers/score/score.js +4 -1
- package/lib/network/peers/score/score.js.map +1 -1
- package/lib/network/peers/score/store.d.ts +3 -1
- package/lib/network/peers/score/store.js +6 -2
- package/lib/network/peers/score/store.js.map +1 -1
- package/lib/network/peers/utils/assertPeerRelevance.d.ts +7 -3
- package/lib/network/peers/utils/assertPeerRelevance.js +10 -1
- package/lib/network/peers/utils/assertPeerRelevance.js.map +1 -1
- package/lib/network/peers/utils/prioritizePeers.d.ts +18 -7
- package/lib/network/peers/utils/prioritizePeers.js +43 -7
- package/lib/network/peers/utils/prioritizePeers.js.map +1 -1
- package/lib/network/processor/extractSlotRootFns.js +8 -1
- package/lib/network/processor/extractSlotRootFns.js.map +1 -1
- package/lib/network/processor/gossipHandlers.js +153 -8
- package/lib/network/processor/gossipHandlers.js.map +1 -1
- package/lib/network/processor/gossipQueues/index.js +5 -0
- package/lib/network/processor/gossipQueues/index.js.map +1 -1
- package/lib/network/processor/index.js +1 -0
- package/lib/network/processor/index.js.map +1 -1
- package/lib/network/reqresp/ReqRespBeaconNode.d.ts +2 -2
- package/lib/network/reqresp/ReqRespBeaconNode.js +33 -10
- package/lib/network/reqresp/ReqRespBeaconNode.js.map +1 -1
- package/lib/network/reqresp/beaconBlocksMaybeBlobsByRange.d.ts +15 -5
- package/lib/network/reqresp/beaconBlocksMaybeBlobsByRange.js +203 -14
- package/lib/network/reqresp/beaconBlocksMaybeBlobsByRange.js.map +1 -1
- package/lib/network/reqresp/beaconBlocksMaybeBlobsByRoot.d.ts +32 -6
- package/lib/network/reqresp/beaconBlocksMaybeBlobsByRoot.js +282 -28
- package/lib/network/reqresp/beaconBlocksMaybeBlobsByRoot.js.map +1 -1
- package/lib/network/reqresp/handlers/beaconBlocksByRange.d.ts +1 -1
- package/lib/network/reqresp/handlers/beaconBlocksByRange.js.map +1 -1
- package/lib/network/reqresp/handlers/dataColumnSidecarsByRange.d.ts +8 -0
- package/lib/network/reqresp/handlers/dataColumnSidecarsByRange.js +106 -0
- package/lib/network/reqresp/handlers/dataColumnSidecarsByRange.js.map +1 -0
- package/lib/network/reqresp/handlers/dataColumnSidecarsByRoot.d.ts +6 -0
- package/lib/network/reqresp/handlers/dataColumnSidecarsByRoot.js +57 -0
- package/lib/network/reqresp/handlers/dataColumnSidecarsByRoot.js.map +1 -0
- package/lib/network/reqresp/handlers/index.js +10 -0
- package/lib/network/reqresp/handlers/index.js.map +1 -1
- package/lib/network/reqresp/handlers/status.js +3 -2
- package/lib/network/reqresp/handlers/status.js.map +1 -1
- package/lib/network/reqresp/protocols.d.ts +4 -0
- package/lib/network/reqresp/protocols.js +20 -0
- package/lib/network/reqresp/protocols.js.map +1 -1
- package/lib/network/reqresp/rateLimit.js +11 -1
- package/lib/network/reqresp/rateLimit.js.map +1 -1
- package/lib/network/reqresp/types.d.ts +15 -8
- package/lib/network/reqresp/types.js +10 -3
- package/lib/network/reqresp/types.js.map +1 -1
- package/lib/network/statusCache.d.ts +5 -5
- package/lib/network/statusCache.js.map +1 -1
- package/lib/network/subnets/interface.d.ts +3 -0
- package/lib/network/subnets/interface.js +14 -1
- package/lib/network/subnets/interface.js.map +1 -1
- package/lib/network/subnets/syncnetsService.js +4 -5
- package/lib/network/subnets/syncnetsService.js.map +1 -1
- package/lib/node/nodejs.js +1 -0
- package/lib/node/nodejs.js.map +1 -1
- package/lib/sync/constants.d.ts +1 -1
- package/lib/sync/constants.js +4 -1
- package/lib/sync/constants.js.map +1 -1
- package/lib/sync/interface.d.ts +2 -2
- package/lib/sync/interface.js +1 -1
- package/lib/sync/interface.js.map +1 -1
- package/lib/sync/range/batch.d.ts +16 -2
- package/lib/sync/range/batch.js +38 -7
- package/lib/sync/range/batch.js.map +1 -1
- package/lib/sync/range/chain.d.ts +16 -1
- package/lib/sync/range/chain.js +110 -30
- package/lib/sync/range/chain.js.map +1 -1
- package/lib/sync/range/range.d.ts +3 -2
- package/lib/sync/range/range.js +9 -3
- package/lib/sync/range/range.js.map +1 -1
- package/lib/sync/range/utils/chainTarget.d.ts +5 -1
- package/lib/sync/range/utils/chainTarget.js +26 -1
- package/lib/sync/range/utils/chainTarget.js.map +1 -1
- package/lib/sync/range/utils/peerBalancer.d.ts +12 -5
- package/lib/sync/range/utils/peerBalancer.js +69 -10
- package/lib/sync/range/utils/peerBalancer.js.map +1 -1
- package/lib/sync/unknownBlock.d.ts +8 -1
- package/lib/sync/unknownBlock.js +226 -69
- package/lib/sync/unknownBlock.js.map +1 -1
- package/lib/sync/utils/remoteSyncType.d.ts +4 -4
- package/lib/sync/utils/remoteSyncType.js.map +1 -1
- package/lib/util/blobs.d.ts +18 -1
- package/lib/util/blobs.js +104 -1
- package/lib/util/blobs.js.map +1 -1
- package/lib/util/dataColumns.d.ts +132 -0
- package/lib/util/dataColumns.js +349 -0
- package/lib/util/dataColumns.js.map +1 -0
- package/lib/util/metadata.d.ts +4 -0
- package/lib/util/metadata.js +7 -0
- package/lib/util/metadata.js.map +1 -1
- package/lib/util/sszBytes.d.ts +1 -0
- package/lib/util/sszBytes.js +17 -0
- package/lib/util/sszBytes.js.map +1 -1
- package/package.json +14 -14
|
@@ -1,10 +1,12 @@
|
|
|
1
|
-
import { BitArray } from "@chainsafe/ssz";
|
|
2
|
-
import { SLOTS_PER_EPOCH, SYNC_COMMITTEE_SUBNET_COUNT } from "@lodestar/params";
|
|
1
|
+
import { BitArray, toHexString } from "@chainsafe/ssz";
|
|
2
|
+
import { ForkSeq, SLOTS_PER_EPOCH, SYNC_COMMITTEE_SUBNET_COUNT } from "@lodestar/params";
|
|
3
3
|
import { withTimeout } from "@lodestar/utils";
|
|
4
4
|
import { GOODBYE_KNOWN_CODES, GoodByeReasonCode, Libp2pEvent } from "../../constants/index.js";
|
|
5
|
+
import { getCustodyGroups, getDataColumns } from "../../util/dataColumns.js";
|
|
5
6
|
import { NetworkEvent } from "../events.js";
|
|
6
7
|
import { SubnetType } from "../metadata.js";
|
|
7
8
|
import { ReqRespMethod } from "../reqresp/ReqRespBeaconNode.js";
|
|
9
|
+
import { computeNodeId } from "../subnets/index.js";
|
|
8
10
|
import { getConnection, getConnectionsMap, prettyPrintPeerId } from "../util.js";
|
|
9
11
|
import { ClientKind, getKnownClientFromAgentVersion } from "./client.js";
|
|
10
12
|
import { PeerDiscovery } from "./discover.js";
|
|
@@ -41,6 +43,7 @@ const STARVATION_PRUNE_RATIO = 0.05;
|
|
|
41
43
|
* Relative factor of peers that are allowed to have a negative gossipsub score without penalizing them in lodestar.
|
|
42
44
|
*/
|
|
43
45
|
const ALLOWED_NEGATIVE_GOSSIPSUB_FACTOR = 0.1;
|
|
46
|
+
// TODO(fulu): dedupe with network/peers/peerData.ts
|
|
44
47
|
var RelevantPeerStatus;
|
|
45
48
|
(function (RelevantPeerStatus) {
|
|
46
49
|
RelevantPeerStatus["Unknown"] = "unknown";
|
|
@@ -106,6 +109,7 @@ export class PeerManager {
|
|
|
106
109
|
// NOTE: libp2p may emit two "peer:connect" events: One for inbound, one for outbound
|
|
107
110
|
// If that happens, it's okay. Only the "outbound" connection triggers immediate action
|
|
108
111
|
const now = Date.now();
|
|
112
|
+
const nodeId = computeNodeId(remotePeer);
|
|
109
113
|
const peerData = {
|
|
110
114
|
lastReceivedMsgUnixTsMs: direction === "outbound" ? 0 : now,
|
|
111
115
|
// If inbound, request after STATUS_INBOUND_GRACE_PERIOD
|
|
@@ -113,6 +117,7 @@ export class PeerManager {
|
|
|
113
117
|
connectedUnixTsMs: now,
|
|
114
118
|
relevantStatus: RelevantPeerStatus.Unknown,
|
|
115
119
|
direction,
|
|
120
|
+
nodeId,
|
|
116
121
|
peerId: remotePeer,
|
|
117
122
|
status: null,
|
|
118
123
|
metadata: null,
|
|
@@ -122,7 +127,7 @@ export class PeerManager {
|
|
|
122
127
|
};
|
|
123
128
|
this.connectedPeers.set(remotePeer.toString(), peerData);
|
|
124
129
|
if (direction === "outbound") {
|
|
125
|
-
//this.pingAndStatusTimeouts();
|
|
130
|
+
// this.pingAndStatusTimeouts();
|
|
126
131
|
void this.requestPing(remotePeer);
|
|
127
132
|
void this.requestStatus(remotePeer, this.statusCache.get());
|
|
128
133
|
}
|
|
@@ -153,6 +158,7 @@ export class PeerManager {
|
|
|
153
158
|
.merge(remotePeer, { tags: { [PEER_RELEVANT_TAG]: undefined } })
|
|
154
159
|
.catch((e) => this.logger.verbose("cannot untag peer", { peerId: remotePeer.toString() }, e));
|
|
155
160
|
};
|
|
161
|
+
const { networkConfig } = modules;
|
|
156
162
|
this.libp2p = modules.libp2p;
|
|
157
163
|
this.logger = modules.logger;
|
|
158
164
|
this.metrics = modules.metrics;
|
|
@@ -162,12 +168,14 @@ export class PeerManager {
|
|
|
162
168
|
this.syncnetsService = modules.syncnetsService;
|
|
163
169
|
this.statusCache = modules.statusCache;
|
|
164
170
|
this.clock = modules.clock;
|
|
165
|
-
this.
|
|
171
|
+
this.networkConfig = networkConfig;
|
|
172
|
+
this.config = networkConfig.getConfig();
|
|
166
173
|
this.peerRpcScores = modules.peerRpcScores;
|
|
167
174
|
this.networkEventBus = modules.events;
|
|
168
175
|
this.connectedPeers = modules.peersData.connectedPeers;
|
|
169
176
|
this.opts = opts;
|
|
170
177
|
this.discovery = discovery;
|
|
178
|
+
this.nodeId = networkConfig.getNodeId();
|
|
171
179
|
const { metrics } = modules;
|
|
172
180
|
if (metrics) {
|
|
173
181
|
metrics.peers.addCollect(() => this.runPeerCountMetrics(metrics));
|
|
@@ -254,6 +262,11 @@ export class PeerManager {
|
|
|
254
262
|
onPing(peer, seqNumber) {
|
|
255
263
|
// if the sequence number is unknown update the peer's metadata
|
|
256
264
|
const metadata = this.connectedPeers.get(peer.toString())?.metadata;
|
|
265
|
+
this.logger.warn("onPing", {
|
|
266
|
+
seqNumber,
|
|
267
|
+
metaSeqNumber: metadata?.seqNumber,
|
|
268
|
+
cond: !metadata || metadata.seqNumber < seqNumber,
|
|
269
|
+
});
|
|
257
270
|
if (!metadata || metadata.seqNumber < seqNumber) {
|
|
258
271
|
void this.requestMetadata(peer);
|
|
259
272
|
}
|
|
@@ -265,12 +278,37 @@ export class PeerManager {
|
|
|
265
278
|
// Store metadata always in case the peer updates attnets but not the sequence number
|
|
266
279
|
// Trust that the peer always sends the latest metadata (From Lighthouse)
|
|
267
280
|
const peerData = this.connectedPeers.get(peer.toString());
|
|
281
|
+
this.logger.warn("onMetadata", {
|
|
282
|
+
peer: peer.toString(),
|
|
283
|
+
peerData: peerData !== undefined,
|
|
284
|
+
custodyGroupCount: metadata.custodyGroupCount,
|
|
285
|
+
});
|
|
268
286
|
if (peerData) {
|
|
287
|
+
const oldMetadata = peerData.metadata;
|
|
288
|
+
const custodyGroupCount = metadata.custodyGroupCount ?? this.config.CUSTODY_REQUIREMENT;
|
|
289
|
+
const samplingGroupCount = Math.max(this.config.SAMPLES_PER_SLOT, custodyGroupCount);
|
|
290
|
+
const nodeId = peerData?.nodeId ?? computeNodeId(peer);
|
|
291
|
+
// TODO(fulu): this should be columns not groups. need to change everywhere
|
|
292
|
+
const custodyGroups = oldMetadata == null || oldMetadata.custodyGroups == null || custodyGroupCount !== oldMetadata.custodyGroupCount
|
|
293
|
+
? getCustodyGroups(nodeId, custodyGroupCount)
|
|
294
|
+
: oldMetadata.custodyGroups;
|
|
295
|
+
const oldSamplingGroupCount = Math.max(this.config.SAMPLES_PER_SLOT, oldMetadata?.custodyGroupCount ?? 0);
|
|
296
|
+
const samplingGroups = oldMetadata == null || oldMetadata.samplingGroups == null || samplingGroupCount !== oldSamplingGroupCount
|
|
297
|
+
? getCustodyGroups(nodeId, samplingGroupCount)
|
|
298
|
+
: oldMetadata.samplingGroups;
|
|
269
299
|
peerData.metadata = {
|
|
270
300
|
seqNumber: metadata.seqNumber,
|
|
271
301
|
attnets: metadata.attnets,
|
|
272
302
|
syncnets: metadata.syncnets ?? BitArray.fromBitLen(SYNC_COMMITTEE_SUBNET_COUNT),
|
|
303
|
+
custodyGroupCount: metadata.custodyGroupCount ??
|
|
304
|
+
// TODO: spec says that Clients MAY reject peers with a value less than CUSTODY_REQUIREMENT
|
|
305
|
+
this.config.CUSTODY_REQUIREMENT,
|
|
306
|
+
custodyGroups,
|
|
307
|
+
samplingGroups,
|
|
273
308
|
};
|
|
309
|
+
if (oldMetadata === null || oldMetadata.custodyGroupCount !== peerData.metadata.custodyGroupCount) {
|
|
310
|
+
void this.requestStatus(peer, this.statusCache.get());
|
|
311
|
+
}
|
|
274
312
|
}
|
|
275
313
|
}
|
|
276
314
|
/**
|
|
@@ -297,9 +335,10 @@ export class PeerManager {
|
|
|
297
335
|
peerData.lastStatusUnixTsMs = Date.now();
|
|
298
336
|
peerData.status = status;
|
|
299
337
|
}
|
|
338
|
+
const forkName = this.config.getForkName(this.clock.currentSlot);
|
|
300
339
|
let isIrrelevant;
|
|
301
340
|
try {
|
|
302
|
-
const irrelevantReasonType = assertPeerRelevance(status, this.statusCache.get(), this.clock.currentSlot);
|
|
341
|
+
const irrelevantReasonType = assertPeerRelevance(status, this.statusCache.get(), this.clock.currentSlot, forkName);
|
|
303
342
|
if (irrelevantReasonType === null) {
|
|
304
343
|
isIrrelevant = false;
|
|
305
344
|
}
|
|
@@ -334,19 +373,50 @@ export class PeerManager {
|
|
|
334
373
|
peerData.relevantStatus = RelevantPeerStatus.relevant;
|
|
335
374
|
}
|
|
336
375
|
if (getConnection(this.libp2p, peer.toString())) {
|
|
337
|
-
|
|
376
|
+
const nodeId = peerData?.nodeId ?? computeNodeId(peer);
|
|
377
|
+
const custodyGroupCount = peerData?.metadata?.custodyGroupCount;
|
|
378
|
+
const peerCustodyGroupCount = custodyGroupCount ?? this.config.CUSTODY_REQUIREMENT;
|
|
379
|
+
const dataColumns = getDataColumns(nodeId, peerCustodyGroupCount);
|
|
380
|
+
// on metadata, we should have custodyGroupss
|
|
381
|
+
const peerCustodyGroups = peerData?.metadata?.custodyGroups ?? getCustodyGroups(nodeId, peerCustodyGroupCount);
|
|
382
|
+
const sampleSubnets = this.networkConfig.getCustodyConfig().sampledSubnets;
|
|
383
|
+
const matchingSubnetsNum = sampleSubnets.reduce((acc, elem) => acc + (dataColumns.includes(elem) ? 1 : 0), 0);
|
|
384
|
+
const hasAllColumns = matchingSubnetsNum === sampleSubnets.length;
|
|
385
|
+
const clientAgent = peerData?.agentClient ?? ClientKind.Unknown;
|
|
386
|
+
this.logger.warn(`onStatus ${custodyGroupCount === undefined ? "undefined custody count assuming 4" : ""}`, {
|
|
387
|
+
nodeId: toHexString(nodeId),
|
|
388
|
+
myNodeId: toHexString(this.nodeId),
|
|
389
|
+
peerId: peer.toString(),
|
|
390
|
+
custodyGroupCount,
|
|
391
|
+
hasAllColumns,
|
|
392
|
+
dataColumns: dataColumns.join(" "),
|
|
393
|
+
matchingSubnetsNum,
|
|
394
|
+
peerCustodyGroups: peerCustodyGroups.join(" "),
|
|
395
|
+
mySampleSubnets: sampleSubnets.join(" "),
|
|
396
|
+
clientAgent,
|
|
397
|
+
});
|
|
398
|
+
// TODO @matthewkeil need to double check the dataColumns is received on the other end of this correctly
|
|
399
|
+
this.networkEventBus.emit(NetworkEvent.peerConnected, {
|
|
400
|
+
peer: peer.toString(),
|
|
401
|
+
status,
|
|
402
|
+
dataColumns,
|
|
403
|
+
clientAgent: `${clientAgent}-cgc:${dataColumns.length}`,
|
|
404
|
+
});
|
|
338
405
|
}
|
|
339
406
|
}
|
|
340
407
|
async requestMetadata(peer) {
|
|
341
408
|
try {
|
|
409
|
+
this.logger.warn("requestMetadata", { peer: peer.toString() });
|
|
342
410
|
this.onMetadata(peer, await this.reqResp.sendMetadata(peer));
|
|
343
411
|
}
|
|
344
|
-
catch (
|
|
412
|
+
catch (e) {
|
|
413
|
+
this.logger.error("invalid requestMetadata response", undefined, e);
|
|
345
414
|
// TODO: Downvote peer here or in the reqResp layer
|
|
346
415
|
}
|
|
347
416
|
}
|
|
348
417
|
async requestPing(peer) {
|
|
349
418
|
try {
|
|
419
|
+
this.logger.warn("requestPing", { peer: peer.toString() });
|
|
350
420
|
this.onPing(peer, await this.reqResp.sendPing(peer));
|
|
351
421
|
// If peer replies a PING request also update lastReceivedMsg
|
|
352
422
|
const peerData = this.connectedPeers.get(peer.toString());
|
|
@@ -407,7 +477,8 @@ export class PeerManager {
|
|
|
407
477
|
this.clock.currentSlot - status.headSlot > STARVATION_THRESHOLD_SLOTS;
|
|
408
478
|
this.lastStatus = status;
|
|
409
479
|
this.metrics?.peerManager.starved.set(starved ? 1 : 0);
|
|
410
|
-
const
|
|
480
|
+
const forkSeq = this.config.getForkSeq(this.clock.currentSlot);
|
|
481
|
+
const { peersToDisconnect, peersToConnect, attnetQueries, syncnetQueries, groupQueries } = prioritizePeers(connectedHealthyPeers.map((peer) => {
|
|
411
482
|
const peerData = this.connectedPeers.get(peer.toString());
|
|
412
483
|
return {
|
|
413
484
|
id: peer,
|
|
@@ -415,17 +486,21 @@ export class PeerManager {
|
|
|
415
486
|
status: peerData?.status ?? null,
|
|
416
487
|
attnets: peerData?.metadata?.attnets ?? null,
|
|
417
488
|
syncnets: peerData?.metadata?.syncnets ?? null,
|
|
489
|
+
// here we care samplingGroups not custodyGroups in order to know which column subnets peers subscribe to
|
|
490
|
+
samplingGroups: peerData?.metadata?.samplingGroups ?? null,
|
|
418
491
|
score: this.peerRpcScores.getScore(peer),
|
|
419
492
|
};
|
|
420
493
|
}),
|
|
421
494
|
// Collect subnets which we need peers for in the current slot
|
|
422
|
-
this.attnetsService.getActiveSubnets(), this.syncnetsService.getActiveSubnets(),
|
|
495
|
+
this.attnetsService.getActiveSubnets(), this.syncnetsService.getActiveSubnets(),
|
|
496
|
+
// ignore samplingGroups for pre-fulu forks
|
|
497
|
+
forkSeq >= ForkSeq.fulu ? this.networkConfig.getCustodyConfig().sampleGroups : undefined, {
|
|
423
498
|
...this.opts,
|
|
424
499
|
status,
|
|
425
500
|
starved,
|
|
426
501
|
starvationPruneRatio: STARVATION_PRUNE_RATIO,
|
|
427
502
|
starvationThresholdSlots: STARVATION_THRESHOLD_SLOTS,
|
|
428
|
-
});
|
|
503
|
+
}, this.metrics);
|
|
429
504
|
const queriesMerged = [];
|
|
430
505
|
for (const { type, queries } of [
|
|
431
506
|
{ type: SubnetType.attnets, queries: attnetQueries },
|
|
@@ -446,6 +521,10 @@ export class PeerManager {
|
|
|
446
521
|
this.metrics?.peersRequestedSubnetsPeerCount.inc({ type }, count);
|
|
447
522
|
}
|
|
448
523
|
}
|
|
524
|
+
for (const maxPeersToDiscover of groupQueries.values()) {
|
|
525
|
+
this.metrics?.peersRequestedSubnetsToQuery.inc({ type: "column" }, 1);
|
|
526
|
+
this.metrics?.peersRequestedSubnetsPeerCount.inc({ type: "column" }, maxPeersToDiscover);
|
|
527
|
+
}
|
|
449
528
|
// disconnect first to have more slots before we dial new peers
|
|
450
529
|
for (const [reason, peers] of peersToDisconnect) {
|
|
451
530
|
this.metrics?.peersRequestedToDisconnect.inc({ reason }, peers.length);
|
|
@@ -456,7 +535,8 @@ export class PeerManager {
|
|
|
456
535
|
if (this.discovery) {
|
|
457
536
|
try {
|
|
458
537
|
this.metrics?.peersRequestedToConnect.inc(peersToConnect);
|
|
459
|
-
|
|
538
|
+
// for PeerDAS, lodestar implements subnet sampling strategy, hence we need to issue columnSubnetQueries to PeerDiscovery
|
|
539
|
+
this.discovery.discoverPeers(peersToConnect, groupQueries, queriesMerged);
|
|
460
540
|
}
|
|
461
541
|
catch (e) {
|
|
462
542
|
this.logger.error("Error on discoverPeers", {}, e);
|
|
@@ -524,6 +604,7 @@ export class PeerManager {
|
|
|
524
604
|
try {
|
|
525
605
|
const reason = GOODBYE_KNOWN_CODES[goodbye.toString()] || "";
|
|
526
606
|
this.metrics?.peerGoodbyeSent.inc({ reason });
|
|
607
|
+
this.logger.debug("disconnected peer", { reason, peerId: prettyPrintPeerId(peer) });
|
|
527
608
|
const conn = getConnection(this.libp2p, peer.toString());
|
|
528
609
|
if (conn && Date.now() - conn.timeline.open > LONG_PEER_CONNECTION_MS) {
|
|
529
610
|
this.metrics?.peerLongConnectionDisconnect.inc({ reason });
|
|
@@ -565,6 +646,7 @@ export class PeerManager {
|
|
|
565
646
|
const attnets = peerData?.metadata?.attnets;
|
|
566
647
|
// TODO: Consider optimizing by doing observe in batch
|
|
567
648
|
metrics.peerLongLivedAttnets.observe(attnets ? attnets.getTrueBitIndexes().length : 0);
|
|
649
|
+
metrics.peerColumnGroupCount.observe(peerData?.metadata?.custodyGroupCount ?? 0);
|
|
568
650
|
metrics.peerScoreByClient.observe({ client }, this.peerRpcScores.getScore(peerId));
|
|
569
651
|
metrics.peerGossipScoreByClient.observe({ client }, this.peerRpcScores.getGossipScore(peerId));
|
|
570
652
|
metrics.peerConnectionLength.observe((now - openCnx.timeline.open) / 1000);
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"peerManager.js","sourceRoot":"","sources":["../../../src/network/peers/peerManager.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"peerManager.js","sourceRoot":"","sources":["../../../src/network/peers/peerManager.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,7 +1,19 @@
|
|
|
1
1
|
import { PeerId } from "@libp2p/interface";
|
|
2
2
|
import { Encoding } from "@lodestar/reqresp";
|
|
3
|
-
import {
|
|
3
|
+
import { CustodyIndex, Slot, Status, fulu } from "@lodestar/types";
|
|
4
|
+
import { NodeId } from "../subnets/interface.js";
|
|
4
5
|
import { ClientKind } from "./client.js";
|
|
6
|
+
type PeerIdStr = string;
|
|
7
|
+
type Metadata = fulu.Metadata & {
|
|
8
|
+
custodyGroups: CustodyIndex[];
|
|
9
|
+
samplingGroups: CustodyIndex[];
|
|
10
|
+
};
|
|
11
|
+
export type PeerSyncMeta = {
|
|
12
|
+
peerId: PeerIdStr;
|
|
13
|
+
client: string;
|
|
14
|
+
custodyGroups: CustodyIndex[];
|
|
15
|
+
earliestAvailableSlot?: Slot;
|
|
16
|
+
};
|
|
5
17
|
export declare enum RelevantPeerStatus {
|
|
6
18
|
Unknown = "unknown",
|
|
7
19
|
relevant = "relevant",
|
|
@@ -14,8 +26,9 @@ export type PeerData = {
|
|
|
14
26
|
relevantStatus: RelevantPeerStatus;
|
|
15
27
|
direction: "inbound" | "outbound";
|
|
16
28
|
peerId: PeerId;
|
|
17
|
-
|
|
18
|
-
metadata:
|
|
29
|
+
nodeId: NodeId | null;
|
|
30
|
+
metadata: Metadata | null;
|
|
31
|
+
status: Status | null;
|
|
19
32
|
agentVersion: string | null;
|
|
20
33
|
agentClient: ClientKind | null;
|
|
21
34
|
encodingPreference: Encoding | null;
|
|
@@ -34,4 +47,5 @@ export declare class PeersData {
|
|
|
34
47
|
getEncodingPreference(peerIdStr: string): Encoding | null;
|
|
35
48
|
setEncodingPreference(peerIdStr: string, encoding: Encoding): void;
|
|
36
49
|
}
|
|
50
|
+
export {};
|
|
37
51
|
//# sourceMappingURL=peersData.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"peersData.js","sourceRoot":"","sources":["../../../src/network/peers/peersData.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"peersData.js","sourceRoot":"","sources":["../../../src/network/peers/peersData.ts"],"names":[],"mappings":"AAeA,MAAM,CAAN,IAAY,kBAIX;AAJD,WAAY,kBAAkB;IAC5B,yCAAmB,CAAA;IACnB,2CAAqB,CAAA;IACrB,+CAAyB,CAAA;AAC3B,CAAC,EAJW,kBAAkB,KAAlB,kBAAkB,QAI7B;AAiBD;;;;;;GAMG;AACH,MAAM,OAAO,SAAS;IAAtB;QACW,mBAAc,GAAG,IAAI,GAAG,EAAuB,CAAC;IAoB3D,CAAC;IAlBC,eAAe,CAAC,SAAiB;QAC/B,OAAO,IAAI,CAAC,cAAc,CAAC,GAAG,CAAC,SAAS,CAAC,EAAE,YAAY,IAAI,IAAI,CAAC;IAClE,CAAC;IAED,WAAW,CAAC,SAAiB;QAC3B,OAAO,IAAI,CAAC,cAAc,CAAC,GAAG,CAAC,SAAS,CAAC,EAAE,WAAW,IAAI,IAAI,CAAC;IACjE,CAAC;IAED,qBAAqB,CAAC,SAAiB;QACrC,OAAO,IAAI,CAAC,cAAc,CAAC,GAAG,CAAC,SAAS,CAAC,EAAE,kBAAkB,IAAI,IAAI,CAAC;IACxE,CAAC;IAED,qBAAqB,CAAC,SAAiB,EAAE,QAAkB;QACzD,MAAM,QAAQ,GAAG,IAAI,CAAC,cAAc,CAAC,GAAG,CAAC,SAAS,CAAC,CAAC;QACpD,IAAI,QAAQ,EAAE,CAAC;YACb,QAAQ,CAAC,kBAAkB,GAAG,QAAQ,CAAC;QACzC,CAAC;IACH,CAAC;CACF"}
|
|
@@ -16,7 +16,7 @@ export interface IPeerRpcScoreStore {
|
|
|
16
16
|
export interface IPeerScore {
|
|
17
17
|
getScore(): number;
|
|
18
18
|
getGossipScore(): number;
|
|
19
|
-
add(scoreDelta: number):
|
|
19
|
+
add(scoreDelta: number): number;
|
|
20
20
|
update(): number;
|
|
21
21
|
updateGossipsubScore(newScore: number, ignore: boolean): void;
|
|
22
22
|
getStat(): PeerScoreStat;
|
|
@@ -12,7 +12,7 @@ export declare class RealScore implements IPeerScore {
|
|
|
12
12
|
constructor();
|
|
13
13
|
getScore(): number;
|
|
14
14
|
getGossipScore(): number;
|
|
15
|
-
add(scoreDelta: number):
|
|
15
|
+
add(scoreDelta: number): number;
|
|
16
16
|
/**
|
|
17
17
|
* Applies time-based logic such as decay rates to the score.
|
|
18
18
|
* This function should be called periodically.
|
|
@@ -40,7 +40,7 @@ export declare class RealScore implements IPeerScore {
|
|
|
40
40
|
export declare class MaxScore implements IPeerScore {
|
|
41
41
|
getScore(): number;
|
|
42
42
|
getGossipScore(): number;
|
|
43
|
-
add():
|
|
43
|
+
add(): number;
|
|
44
44
|
update(): number;
|
|
45
45
|
updateGossipsubScore(): void;
|
|
46
46
|
getStat(): PeerScoreStat;
|
|
@@ -25,6 +25,7 @@ export class RealScore {
|
|
|
25
25
|
if (newScore < MIN_SCORE)
|
|
26
26
|
newScore = MIN_SCORE;
|
|
27
27
|
this.setLodestarScore(newScore);
|
|
28
|
+
return newScore;
|
|
28
29
|
}
|
|
29
30
|
/**
|
|
30
31
|
* Applies time-based logic such as decay rates to the score.
|
|
@@ -108,7 +109,9 @@ export class MaxScore {
|
|
|
108
109
|
getGossipScore() {
|
|
109
110
|
return DEFAULT_SCORE;
|
|
110
111
|
}
|
|
111
|
-
add() {
|
|
112
|
+
add() {
|
|
113
|
+
return DEFAULT_SCORE;
|
|
114
|
+
}
|
|
112
115
|
update() {
|
|
113
116
|
return MAX_SCORE;
|
|
114
117
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"score.js","sourceRoot":"","sources":["../../../../src/network/peers/score/score.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,sBAAsB,EACtB,aAAa,EACb,+BAA+B,EAC/B,+BAA+B,EAC/B,iBAAiB,EACjB,SAAS,EACT,6BAA6B,EAC7B,SAAS,GACV,MAAM,gBAAgB,CAAC;AACxB,OAAO,EAA4B,UAAU,EAAC,MAAM,gBAAgB,CAAC;AACrE,OAAO,EAAC,YAAY,EAAC,MAAM,YAAY,CAAC;AAExC;;GAEG;AACH,MAAM,OAAO,SAAS;IAQpB;QACE,IAAI,CAAC,aAAa,GAAG,aAAa,CAAC;QACnC,IAAI,CAAC,WAAW,GAAG,aAAa,CAAC;QACjC,IAAI,CAAC,KAAK,GAAG,aAAa,CAAC;QAC3B,IAAI,CAAC,yBAAyB,GAAG,KAAK,CAAC;QACvC,IAAI,CAAC,UAAU,GAAG,IAAI,CAAC,GAAG,EAAE,CAAC;IAC/B,CAAC;IAED,QAAQ;QACN,OAAO,IAAI,CAAC,KAAK,CAAC;IACpB,CAAC;IAED,cAAc;QACZ,OAAO,IAAI,CAAC,WAAW,CAAC;IAC1B,CAAC;IAED,GAAG,CAAC,UAAkB;QACpB,IAAI,QAAQ,GAAG,IAAI,CAAC,aAAa,GAAG,UAAU,CAAC;QAC/C,IAAI,QAAQ,GAAG,SAAS;YAAE,QAAQ,GAAG,SAAS,CAAC;QAC/C,IAAI,QAAQ,GAAG,SAAS;YAAE,QAAQ,GAAG,SAAS,CAAC;QAE/C,IAAI,CAAC,gBAAgB,CAAC,QAAQ,CAAC,CAAC;
|
|
1
|
+
{"version":3,"file":"score.js","sourceRoot":"","sources":["../../../../src/network/peers/score/score.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,4 +1,5 @@
|
|
|
1
1
|
import { PeerId } from "@libp2p/interface";
|
|
2
|
+
import { Logger } from "@lodestar/utils";
|
|
2
3
|
import { PeerIdStr } from "../../../util/peerId.js";
|
|
3
4
|
import { NetworkCoreMetrics } from "../../core/metrics.js";
|
|
4
5
|
import { IPeerRpcScoreStore, PeerAction, PeerRpcScoreOpts, PeerScoreStats, ScoreState } from "./interface.js";
|
|
@@ -10,7 +11,8 @@ import { IPeerRpcScoreStore, PeerAction, PeerRpcScoreOpts, PeerScoreStats, Score
|
|
|
10
11
|
export declare class PeerRpcScoreStore implements IPeerRpcScoreStore {
|
|
11
12
|
private readonly scores;
|
|
12
13
|
private readonly metrics;
|
|
13
|
-
|
|
14
|
+
private readonly logger;
|
|
15
|
+
constructor(opts?: PeerRpcScoreOpts, metrics?: NetworkCoreMetrics | null, logger?: Logger | null);
|
|
14
16
|
getScore(peer: PeerId): number;
|
|
15
17
|
getGossipScore(peer: PeerId): number;
|
|
16
18
|
getScoreState(peer: PeerId): ScoreState;
|
|
@@ -1,4 +1,5 @@
|
|
|
1
1
|
import { MapDef, pruneSetToMax } from "@lodestar/utils";
|
|
2
|
+
import { prettyPrintPeerId } from "../../util.js";
|
|
2
3
|
import { DEFAULT_SCORE, MAX_ENTRIES, MAX_SCORE, MIN_SCORE, SCORE_THRESHOLD } from "./constants.js";
|
|
3
4
|
import { PeerAction } from "./interface.js";
|
|
4
5
|
import { MaxScore, RealScore } from "./score.js";
|
|
@@ -16,8 +17,9 @@ const peerActionScore = {
|
|
|
16
17
|
*/
|
|
17
18
|
export class PeerRpcScoreStore {
|
|
18
19
|
// TODO: Persist scores, at least BANNED status to disk
|
|
19
|
-
constructor(opts = {}, metrics = null) {
|
|
20
|
+
constructor(opts = {}, metrics = null, logger = null) {
|
|
20
21
|
this.metrics = metrics;
|
|
22
|
+
this.logger = logger;
|
|
21
23
|
this.scores = opts.disablePeerScoring ? new MapDef(() => new MaxScore()) : new MapDef(() => new RealScore());
|
|
22
24
|
}
|
|
23
25
|
getScore(peer) {
|
|
@@ -34,7 +36,9 @@ export class PeerRpcScoreStore {
|
|
|
34
36
|
}
|
|
35
37
|
applyAction(peer, action, actionName) {
|
|
36
38
|
const peerScore = this.scores.getOrDefault(peer.toString());
|
|
37
|
-
|
|
39
|
+
const scoreChange = peerActionScore[action];
|
|
40
|
+
const newScore = peerScore.add(scoreChange);
|
|
41
|
+
this.logger?.debug("peer score adjusted", { scoreChange, newScore, peerId: prettyPrintPeerId(peer), actionName });
|
|
38
42
|
this.metrics?.peersReportPeerCount.inc({ reason: actionName });
|
|
39
43
|
}
|
|
40
44
|
update() {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"store.js","sourceRoot":"","sources":["../../../../src/network/peers/score/store.ts"],"names":[],"mappings":"AACA,OAAO,
|
|
1
|
+
{"version":3,"file":"store.js","sourceRoot":"","sources":["../../../../src/network/peers/score/store.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,8 +1,10 @@
|
|
|
1
|
-
import {
|
|
1
|
+
import { ForkName } from "@lodestar/params";
|
|
2
|
+
import { ForkDigest, Root, Slot, Status } from "@lodestar/types";
|
|
2
3
|
export declare enum IrrelevantPeerCode {
|
|
3
4
|
INCOMPATIBLE_FORKS = "IRRELEVANT_PEER_INCOMPATIBLE_FORKS",
|
|
4
5
|
DIFFERENT_CLOCKS = "IRRELEVANT_PEER_DIFFERENT_CLOCKS",
|
|
5
|
-
DIFFERENT_FINALIZED = "IRRELEVANT_PEER_DIFFERENT_FINALIZED"
|
|
6
|
+
DIFFERENT_FINALIZED = "IRRELEVANT_PEER_DIFFERENT_FINALIZED",
|
|
7
|
+
NO_EARLIEST_AVAILABLE_SLOT = "NO_EARLIEST_AVAILABLE_SLOT"
|
|
6
8
|
}
|
|
7
9
|
type IrrelevantPeerType = {
|
|
8
10
|
code: IrrelevantPeerCode.INCOMPATIBLE_FORKS;
|
|
@@ -11,6 +13,8 @@ type IrrelevantPeerType = {
|
|
|
11
13
|
} | {
|
|
12
14
|
code: IrrelevantPeerCode.DIFFERENT_CLOCKS;
|
|
13
15
|
slotDiff: number;
|
|
16
|
+
} | {
|
|
17
|
+
code: IrrelevantPeerCode.NO_EARLIEST_AVAILABLE_SLOT;
|
|
14
18
|
} | {
|
|
15
19
|
code: IrrelevantPeerCode.DIFFERENT_FINALIZED;
|
|
16
20
|
expectedRoot: Root;
|
|
@@ -20,7 +24,7 @@ type IrrelevantPeerType = {
|
|
|
20
24
|
* Process a `Status` message to determine if a peer is relevant to us. If the peer is
|
|
21
25
|
* irrelevant the reason is returned.
|
|
22
26
|
*/
|
|
23
|
-
export declare function assertPeerRelevance(remote:
|
|
27
|
+
export declare function assertPeerRelevance(remote: Status, local: Status, currentSlot: Slot, forkName: ForkName): IrrelevantPeerType | null;
|
|
24
28
|
export declare function isZeroRoot(root: Root): boolean;
|
|
25
29
|
export declare function renderIrrelevantPeerType(type: IrrelevantPeerType): string;
|
|
26
30
|
export {};
|
|
@@ -1,3 +1,4 @@
|
|
|
1
|
+
import { isForkPostFulu } from "@lodestar/params";
|
|
1
2
|
import { ssz } from "@lodestar/types";
|
|
2
3
|
import { toHex, toRootHex } from "@lodestar/utils";
|
|
3
4
|
// TODO: Why this value? (From Lighthouse)
|
|
@@ -7,12 +8,13 @@ export var IrrelevantPeerCode;
|
|
|
7
8
|
IrrelevantPeerCode["INCOMPATIBLE_FORKS"] = "IRRELEVANT_PEER_INCOMPATIBLE_FORKS";
|
|
8
9
|
IrrelevantPeerCode["DIFFERENT_CLOCKS"] = "IRRELEVANT_PEER_DIFFERENT_CLOCKS";
|
|
9
10
|
IrrelevantPeerCode["DIFFERENT_FINALIZED"] = "IRRELEVANT_PEER_DIFFERENT_FINALIZED";
|
|
11
|
+
IrrelevantPeerCode["NO_EARLIEST_AVAILABLE_SLOT"] = "NO_EARLIEST_AVAILABLE_SLOT";
|
|
10
12
|
})(IrrelevantPeerCode || (IrrelevantPeerCode = {}));
|
|
11
13
|
/**
|
|
12
14
|
* Process a `Status` message to determine if a peer is relevant to us. If the peer is
|
|
13
15
|
* irrelevant the reason is returned.
|
|
14
16
|
*/
|
|
15
|
-
export function assertPeerRelevance(remote, local, currentSlot) {
|
|
17
|
+
export function assertPeerRelevance(remote, local, currentSlot, forkName) {
|
|
16
18
|
// The node is on a different network/fork
|
|
17
19
|
if (!ssz.ForkDigest.equals(local.forkDigest, remote.forkDigest)) {
|
|
18
20
|
return {
|
|
@@ -48,6 +50,11 @@ export function assertPeerRelevance(remote, local, currentSlot) {
|
|
|
48
50
|
};
|
|
49
51
|
}
|
|
50
52
|
}
|
|
53
|
+
if (isForkPostFulu(forkName) && remote.earliestAvailableSlot === undefined) {
|
|
54
|
+
return {
|
|
55
|
+
code: IrrelevantPeerCode.NO_EARLIEST_AVAILABLE_SLOT,
|
|
56
|
+
};
|
|
57
|
+
}
|
|
51
58
|
// Note: Accept request status finalized checkpoint in the future, we do not know if it is a true finalized root
|
|
52
59
|
return null;
|
|
53
60
|
}
|
|
@@ -63,6 +70,8 @@ export function renderIrrelevantPeerType(type) {
|
|
|
63
70
|
return `DIFFERENT_CLOCKS slotDiff: ${type.slotDiff}`;
|
|
64
71
|
case IrrelevantPeerCode.DIFFERENT_FINALIZED:
|
|
65
72
|
return `DIFFERENT_FINALIZED root: ${toRootHex(type.remoteRoot)} expected: ${toRootHex(type.expectedRoot)}`;
|
|
73
|
+
case IrrelevantPeerCode.NO_EARLIEST_AVAILABLE_SLOT:
|
|
74
|
+
return "No earliestAvailableSlot announced via peer Status";
|
|
66
75
|
}
|
|
67
76
|
}
|
|
68
77
|
//# sourceMappingURL=assertPeerRelevance.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"assertPeerRelevance.js","sourceRoot":"","sources":["../../../../src/network/peers/utils/assertPeerRelevance.ts"],"names":[],"mappings":"AAAA,OAAO,
|
|
1
|
+
{"version":3,"file":"assertPeerRelevance.js","sourceRoot":"","sources":["../../../../src/network/peers/utils/assertPeerRelevance.ts"],"names":[],"mappings":"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"}
|