@libp2p/gossipsub 15.0.23 → 16.0.0-b7c6dc0f2
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/README.md +5 -6
- package/dist/index.min.js +1 -1
- package/dist/index.min.js.map +4 -4
- package/dist/src/constants.d.ts +4 -0
- package/dist/src/constants.d.ts.map +1 -1
- package/dist/src/constants.js +4 -0
- package/dist/src/constants.js.map +1 -1
- package/dist/src/gossipsub.d.ts +7 -1
- package/dist/src/gossipsub.d.ts.map +1 -1
- package/dist/src/gossipsub.js +65 -31
- package/dist/src/gossipsub.js.map +1 -1
- package/dist/src/message/decodeRpc.d.ts.map +1 -1
- package/dist/src/message/decodeRpc.js +8 -7
- package/dist/src/message/decodeRpc.js.map +1 -1
- package/dist/src/score/message-deliveries.js +1 -1
- package/dist/src/score/peer-score-params.js +1 -1
- package/dist/src/score/peer-score-thresholds.js +1 -1
- package/dist/src/score/peer-score.d.ts +4 -4
- package/dist/src/score/peer-score.js +2 -2
- package/dist/src/score/peer-stats.d.ts +1 -1
- package/dist/src/utils/buildRawMessage.d.ts +4 -4
- package/dist/src/utils/buildRawMessage.d.ts.map +1 -1
- package/dist/src/utils/buildRawMessage.js +2 -2
- package/dist/src/utils/create-gossip-rpc.d.ts +1 -1
- package/dist/src/utils/msgIdFn.d.ts +1 -1
- package/dist/src/utils/publishConfig.d.ts +1 -1
- package/dist/src/utils/publishConfig.js +1 -1
- package/package.json +15 -14
- package/src/constants.ts +5 -0
- package/src/gossipsub.ts +70 -31
- package/src/message/decodeRpc.ts +8 -7
- package/src/score/message-deliveries.ts +1 -1
- package/src/score/peer-score-params.ts +1 -1
- package/src/score/peer-score-thresholds.ts +1 -1
- package/src/score/peer-score.ts +4 -4
- package/src/score/peer-stats.ts +1 -1
- package/src/utils/buildRawMessage.ts +3 -3
- package/src/utils/create-gossip-rpc.ts +1 -1
- package/src/utils/msgIdFn.ts +1 -1
- package/src/utils/publishConfig.ts +2 -2
- package/dist/typedoc-urls.json +0 -195
package/dist/src/constants.d.ts
CHANGED
|
@@ -174,6 +174,10 @@ export declare const GossipsubMaxIHaveLength = 5000;
|
|
|
174
174
|
* GossipsubMaxIHaveMessages is the maximum number of IHAVE messages to accept from a peer within a heartbeat.
|
|
175
175
|
*/
|
|
176
176
|
export declare const GossipsubMaxIHaveMessages = 10;
|
|
177
|
+
/**
|
|
178
|
+
* GossipsubMaxIWantMessages is the maximum number of IWANT messages to accept from a peer within a heartbeat.
|
|
179
|
+
*/
|
|
180
|
+
export declare const GossipsubMaxIWantMessages = 10;
|
|
177
181
|
/**
|
|
178
182
|
* Time to wait for a message requested through IWANT following an IHAVE advertisement.
|
|
179
183
|
* If the message is not received within this window, a broken promise is declared and
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"constants.d.ts","sourceRoot":"","sources":["../../src/constants.ts"],"names":[],"mappings":"AAAA,eAAO,MAAM,MAAM,OAAO,CAAA;AAC1B,eAAO,MAAM,MAAM,QAAc,CAAA;AAIjC,eAAO,MAAM,UAAU,oBAAoB,CAAA;AAE3C;;;GAGG;AACH,eAAO,MAAM,cAAc,mBAAmB,CAAA;AAE9C;;;;GAIG;AACH,eAAO,MAAM,cAAc,mBAAmB,CAAA;AAE9C;;;;GAIG;AACH,eAAO,MAAM,cAAc,mBAAmB,CAAA;AAI9C;;;;GAIG;AACH,eAAO,MAAM,UAAU,IAAI,CAAA;AAE3B;;;;GAIG;AACH,eAAO,MAAM,YAAY,IAAI,CAAA;AAE7B;;;GAGG;AACH,eAAO,MAAM,YAAY,KAAK,CAAA;AAE9B;;;;GAIG;AACH,eAAO,MAAM,eAAe,IAAI,CAAA;AAEhC;;;;;;;GAOG;AACH,eAAO,MAAM,aAAa,IAAI,CAAA;AAI9B;;;GAGG;AACH,eAAO,MAAM,sBAAsB,IAAI,CAAA;AAEvC;;;;;;;;;GASG;AACH,eAAO,MAAM,sBAAsB,IAAI,CAAA;AAEvC;;;;;GAKG;AACH,eAAO,MAAM,cAAc,IAAI,CAAA;AAE/B;;;;GAIG;AACH,eAAO,MAAM,qBAAqB,OAAO,CAAA;AAEzC;;;;GAIG;AACH,eAAO,MAAM,6BAA6B,IAAI,CAAA;AAI9C;;;GAGG;AACH,eAAO,MAAM,8BAA8B,MAAM,CAAA;AAEjD;;GAEG;AACH,eAAO,MAAM,0BAA0B,OAAS,CAAA;AAEhD;;;;GAIG;AACH,eAAO,MAAM,kBAAkB,QAAS,CAAA;AAExC;;;;;GAKG;AACH,eAAO,MAAM,mBAAmB,KAAK,CAAA;AAErC;;;;;;;GAOG;AACH,eAAO,MAAM,qBAAqB,QAAS,CAAA;AAE3C;;GAEG;AACH,eAAO,MAAM,2BAA2B,QAAc,CAAA;AAEtD;;;GAGG;AACH,eAAO,MAAM,0BAA0B,KAAK,CAAA;AAE5C;;GAEG;AACH,eAAO,MAAM,mBAAmB,IAAI,CAAA;AAEpC;;GAEG;AACH,eAAO,MAAM,8BAA8B,MAAM,CAAA;AAEjD;;GAEG;AACH,eAAO,MAAM,0BAA0B,QAAc,CAAA;AAErD;;;GAGG;AACH,eAAO,MAAM,2BAA2B,MAAM,CAAA;AAE9C;;GAEG;AACH,eAAO,MAAM,kCAAkC,OAAS,CAAA;AAExD;;;;;GAKG;AACH,eAAO,MAAM,gCAAgC,KAAK,CAAA;AAElD;;GAEG;AACH,eAAO,MAAM,gCAAgC,IAAI,CAAA;AAEjD;;;GAGG;AACH,eAAO,MAAM,4BAA4B,QAAc,CAAA;AAEvD;;;;;;GAMG;AACH,eAAO,MAAM,uBAAuB,OAAO,CAAA;AAE3C;;GAEG;AACH,eAAO,MAAM,yBAAyB,KAAK,CAAA;AAE3C;;;;GAIG;AACH,eAAO,MAAM,0BAA0B,QAAa,CAAA;AAEpD;;GAEG;AACH,eAAO,MAAM,gBAAgB,QAAa,CAAA;AAE1C,eAAO,MAAM,iBAAiB,QAAa,CAAA;AAE3C,eAAO,MAAM,0BAA0B,+BAA+B,CAAA;AACtE,eAAO,MAAM,0BAA0B,+BAA+B,CAAA;AAEtE;;;GAGG;AACH,eAAO,MAAM,qCAAqC,IAAI,CAAA;AAEtD;;;GAGG;AACH,eAAO,MAAM,kCAAkC,MAAM,CAAA;AAErD;;;GAGG;AACH,eAAO,MAAM,iCAAiC,OAAO,CAAA;AAErD;;GAEG;AACH,eAAO,MAAM,8CAA8C,OAAO,CAAA;AAElE,2DAA2D;AAC3D,eAAO,MAAM,aAAa,IAAI,CAAA;AAE9B,eAAO,MAAM,6BAA6B,MAAM,CAAA;AAChD,eAAO,MAAM,6BAA6B,MAAM,CAAA"}
|
|
1
|
+
{"version":3,"file":"constants.d.ts","sourceRoot":"","sources":["../../src/constants.ts"],"names":[],"mappings":"AAAA,eAAO,MAAM,MAAM,OAAO,CAAA;AAC1B,eAAO,MAAM,MAAM,QAAc,CAAA;AAIjC,eAAO,MAAM,UAAU,oBAAoB,CAAA;AAE3C;;;GAGG;AACH,eAAO,MAAM,cAAc,mBAAmB,CAAA;AAE9C;;;;GAIG;AACH,eAAO,MAAM,cAAc,mBAAmB,CAAA;AAE9C;;;;GAIG;AACH,eAAO,MAAM,cAAc,mBAAmB,CAAA;AAI9C;;;;GAIG;AACH,eAAO,MAAM,UAAU,IAAI,CAAA;AAE3B;;;;GAIG;AACH,eAAO,MAAM,YAAY,IAAI,CAAA;AAE7B;;;GAGG;AACH,eAAO,MAAM,YAAY,KAAK,CAAA;AAE9B;;;;GAIG;AACH,eAAO,MAAM,eAAe,IAAI,CAAA;AAEhC;;;;;;;GAOG;AACH,eAAO,MAAM,aAAa,IAAI,CAAA;AAI9B;;;GAGG;AACH,eAAO,MAAM,sBAAsB,IAAI,CAAA;AAEvC;;;;;;;;;GASG;AACH,eAAO,MAAM,sBAAsB,IAAI,CAAA;AAEvC;;;;;GAKG;AACH,eAAO,MAAM,cAAc,IAAI,CAAA;AAE/B;;;;GAIG;AACH,eAAO,MAAM,qBAAqB,OAAO,CAAA;AAEzC;;;;GAIG;AACH,eAAO,MAAM,6BAA6B,IAAI,CAAA;AAI9C;;;GAGG;AACH,eAAO,MAAM,8BAA8B,MAAM,CAAA;AAEjD;;GAEG;AACH,eAAO,MAAM,0BAA0B,OAAS,CAAA;AAEhD;;;;GAIG;AACH,eAAO,MAAM,kBAAkB,QAAS,CAAA;AAExC;;;;;GAKG;AACH,eAAO,MAAM,mBAAmB,KAAK,CAAA;AAErC;;;;;;;GAOG;AACH,eAAO,MAAM,qBAAqB,QAAS,CAAA;AAE3C;;GAEG;AACH,eAAO,MAAM,2BAA2B,QAAc,CAAA;AAEtD;;;GAGG;AACH,eAAO,MAAM,0BAA0B,KAAK,CAAA;AAE5C;;GAEG;AACH,eAAO,MAAM,mBAAmB,IAAI,CAAA;AAEpC;;GAEG;AACH,eAAO,MAAM,8BAA8B,MAAM,CAAA;AAEjD;;GAEG;AACH,eAAO,MAAM,0BAA0B,QAAc,CAAA;AAErD;;;GAGG;AACH,eAAO,MAAM,2BAA2B,MAAM,CAAA;AAE9C;;GAEG;AACH,eAAO,MAAM,kCAAkC,OAAS,CAAA;AAExD;;;;;GAKG;AACH,eAAO,MAAM,gCAAgC,KAAK,CAAA;AAElD;;GAEG;AACH,eAAO,MAAM,gCAAgC,IAAI,CAAA;AAEjD;;;GAGG;AACH,eAAO,MAAM,4BAA4B,QAAc,CAAA;AAEvD;;;;;;GAMG;AACH,eAAO,MAAM,uBAAuB,OAAO,CAAA;AAE3C;;GAEG;AACH,eAAO,MAAM,yBAAyB,KAAK,CAAA;AAE3C;;GAEG;AACH,eAAO,MAAM,yBAAyB,KAAK,CAAA;AAE3C;;;;GAIG;AACH,eAAO,MAAM,0BAA0B,QAAa,CAAA;AAEpD;;GAEG;AACH,eAAO,MAAM,gBAAgB,QAAa,CAAA;AAE1C,eAAO,MAAM,iBAAiB,QAAa,CAAA;AAE3C,eAAO,MAAM,0BAA0B,+BAA+B,CAAA;AACtE,eAAO,MAAM,0BAA0B,+BAA+B,CAAA;AAEtE;;;GAGG;AACH,eAAO,MAAM,qCAAqC,IAAI,CAAA;AAEtD;;;GAGG;AACH,eAAO,MAAM,kCAAkC,MAAM,CAAA;AAErD;;;GAGG;AACH,eAAO,MAAM,iCAAiC,OAAO,CAAA;AAErD;;GAEG;AACH,eAAO,MAAM,8CAA8C,OAAO,CAAA;AAElE,2DAA2D;AAC3D,eAAO,MAAM,aAAa,IAAI,CAAA;AAE9B,eAAO,MAAM,6BAA6B,MAAM,CAAA;AAChD,eAAO,MAAM,6BAA6B,MAAM,CAAA"}
|
package/dist/src/constants.js
CHANGED
|
@@ -178,6 +178,10 @@ export const GossipsubMaxIHaveLength = 5000;
|
|
|
178
178
|
* GossipsubMaxIHaveMessages is the maximum number of IHAVE messages to accept from a peer within a heartbeat.
|
|
179
179
|
*/
|
|
180
180
|
export const GossipsubMaxIHaveMessages = 10;
|
|
181
|
+
/**
|
|
182
|
+
* GossipsubMaxIWantMessages is the maximum number of IWANT messages to accept from a peer within a heartbeat.
|
|
183
|
+
*/
|
|
184
|
+
export const GossipsubMaxIWantMessages = 10;
|
|
181
185
|
/**
|
|
182
186
|
* Time to wait for a message requested through IWANT following an IHAVE advertisement.
|
|
183
187
|
* If the message is not received within this window, a broken promise is declared and
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"constants.js","sourceRoot":"","sources":["../../src/constants.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"constants.js","sourceRoot":"","sources":["../../src/constants.ts"],"names":[],"mappings":"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"}
|
package/dist/src/gossipsub.d.ts
CHANGED
|
@@ -74,6 +74,8 @@ export declare class GossipSub extends TypedEventEmitter<GossipSubEvents> implem
|
|
|
74
74
|
private readonly peerhave;
|
|
75
75
|
/** Number of messages we have asked from peer in the last heartbeat */
|
|
76
76
|
private readonly iasked;
|
|
77
|
+
/** Number of IWANT messages we have received from peer in the last heartbeat */
|
|
78
|
+
private readonly iwantCounts;
|
|
77
79
|
/** Prune backoff map */
|
|
78
80
|
private readonly backoff;
|
|
79
81
|
/**
|
|
@@ -144,7 +146,7 @@ export declare class GossipSub extends TypedEventEmitter<GossipSubEvents> implem
|
|
|
144
146
|
private readonly allowedTopics;
|
|
145
147
|
private heartbeatTimer;
|
|
146
148
|
constructor(components: GossipSubComponents, options?: Partial<GossipsubOpts>);
|
|
147
|
-
readonly [Symbol.toStringTag] = "@
|
|
149
|
+
readonly [Symbol.toStringTag] = "@libp2p/gossipsub";
|
|
148
150
|
readonly [serviceCapabilities]: string[];
|
|
149
151
|
readonly [serviceDependencies]: string[];
|
|
150
152
|
getPeers(): PeerId[];
|
|
@@ -195,6 +197,10 @@ export declare class GossipSub extends TypedEventEmitter<GossipSubEvents> implem
|
|
|
195
197
|
* Get the list of topics which the peer is subscribed to.
|
|
196
198
|
*/
|
|
197
199
|
getTopics(): TopicStr[];
|
|
200
|
+
/**
|
|
201
|
+
* Decode an inbound RPC, enforcing this.decodeRpcLimits.
|
|
202
|
+
*/
|
|
203
|
+
private decodeRpc;
|
|
198
204
|
/**
|
|
199
205
|
* Responsible for processing each RPC message received by other peers.
|
|
200
206
|
*/
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"gossipsub.d.ts","sourceRoot":"","sources":["../../src/gossipsub.ts"],"names":[],"mappings":"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
|
|
1
|
+
{"version":3,"file":"gossipsub.d.ts","sourceRoot":"","sources":["../../src/gossipsub.ts"],"names":[],"mappings":"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"}
|
package/dist/src/gossipsub.js
CHANGED
|
@@ -92,6 +92,8 @@ export class GossipSub extends TypedEventEmitter {
|
|
|
92
92
|
peerhave = new Map();
|
|
93
93
|
/** Number of messages we have asked from peer in the last heartbeat */
|
|
94
94
|
iasked = new Map();
|
|
95
|
+
/** Number of IWANT messages we have received from peer in the last heartbeat */
|
|
96
|
+
iwantCounts = new Map();
|
|
95
97
|
/** Prune backoff map */
|
|
96
98
|
backoff = new Map();
|
|
97
99
|
/**
|
|
@@ -271,7 +273,7 @@ export class GossipSub extends TypedEventEmitter {
|
|
|
271
273
|
this.runOnLimitedConnection = options.runOnLimitedConnection;
|
|
272
274
|
this.allowedTopics = (opts.allowedTopics != null) ? new Set(opts.allowedTopics) : null;
|
|
273
275
|
}
|
|
274
|
-
[Symbol.toStringTag] = '@
|
|
276
|
+
[Symbol.toStringTag] = '@libp2p/gossipsub';
|
|
275
277
|
[serviceCapabilities] = [
|
|
276
278
|
'@libp2p/pubsub'
|
|
277
279
|
];
|
|
@@ -414,6 +416,7 @@ export class GossipSub extends TypedEventEmitter {
|
|
|
414
416
|
this.control.clear();
|
|
415
417
|
this.peerhave.clear();
|
|
416
418
|
this.iasked.clear();
|
|
419
|
+
this.iwantCounts.clear();
|
|
417
420
|
this.backoff.clear();
|
|
418
421
|
this.outbound.clear();
|
|
419
422
|
this.gossipTracer.clear();
|
|
@@ -626,6 +629,28 @@ export class GossipSub extends TypedEventEmitter {
|
|
|
626
629
|
}
|
|
627
630
|
// TODO: Reviewing Pubsub API
|
|
628
631
|
// MESSAGE METHODS
|
|
632
|
+
/**
|
|
633
|
+
* Decode an inbound RPC, enforcing this.decodeRpcLimits.
|
|
634
|
+
*/
|
|
635
|
+
decodeRpc(rpcBytes) {
|
|
636
|
+
return RPC.decode(rpcBytes, {
|
|
637
|
+
limits: {
|
|
638
|
+
subscriptions: this.decodeRpcLimits.maxSubscriptions,
|
|
639
|
+
messages: this.decodeRpcLimits.maxMessages,
|
|
640
|
+
control: {
|
|
641
|
+
ihave: this.decodeRpcLimits.maxControlMessages,
|
|
642
|
+
ihave$: { messageIDs: this.decodeRpcLimits.maxIhaveMessageIDs },
|
|
643
|
+
iwant: this.decodeRpcLimits.maxControlMessages,
|
|
644
|
+
iwant$: { messageIDs: this.decodeRpcLimits.maxIwantMessageIDs },
|
|
645
|
+
graft: this.decodeRpcLimits.maxControlMessages,
|
|
646
|
+
prune: this.decodeRpcLimits.maxControlMessages,
|
|
647
|
+
prune$: { peers: this.decodeRpcLimits.maxPeerInfos },
|
|
648
|
+
idontwant: this.decodeRpcLimits.maxControlMessages,
|
|
649
|
+
idontwant$: { messageIDs: this.decodeRpcLimits.maxIdontwantMessageIDs }
|
|
650
|
+
}
|
|
651
|
+
}
|
|
652
|
+
});
|
|
653
|
+
}
|
|
629
654
|
/**
|
|
630
655
|
* Responsible for processing each RPC message received by other peers.
|
|
631
656
|
*/
|
|
@@ -638,25 +663,7 @@ export class GossipSub extends TypedEventEmitter {
|
|
|
638
663
|
const rpcBytes = data.subarray();
|
|
639
664
|
// Note: This function may throw, it must be wrapped in a try {} catch {} to prevent closing the stream.
|
|
640
665
|
// TODO: What should we do if the entire RPC is invalid?
|
|
641
|
-
const rpc =
|
|
642
|
-
limits: {
|
|
643
|
-
subscriptions: this.decodeRpcLimits.maxSubscriptions,
|
|
644
|
-
messages: this.decodeRpcLimits.maxMessages,
|
|
645
|
-
control$: {
|
|
646
|
-
ihave: this.decodeRpcLimits.maxIhaveMessageIDs,
|
|
647
|
-
iwant: this.decodeRpcLimits.maxIwantMessageIDs,
|
|
648
|
-
graft: this.decodeRpcLimits.maxControlMessages,
|
|
649
|
-
prune: this.decodeRpcLimits.maxControlMessages,
|
|
650
|
-
prune$: {
|
|
651
|
-
peers: this.decodeRpcLimits.maxPeerInfos
|
|
652
|
-
},
|
|
653
|
-
idontwant: this.decodeRpcLimits.maxControlMessages,
|
|
654
|
-
idontwant$: {
|
|
655
|
-
messageIDs: this.decodeRpcLimits.maxIdontwantMessageIDs
|
|
656
|
-
}
|
|
657
|
-
}
|
|
658
|
-
}
|
|
659
|
-
});
|
|
666
|
+
const rpc = this.decodeRpc(rpcBytes);
|
|
660
667
|
this.metrics?.onRpcRecv(rpc, rpcBytes.length);
|
|
661
668
|
// Since processRpc may be overridden entirely in unsafe ways,
|
|
662
669
|
// the simplest/safest option here is to wrap in a function and capture all errors
|
|
@@ -1044,20 +1051,28 @@ export class GossipSub extends TypedEventEmitter {
|
|
|
1044
1051
|
}
|
|
1045
1052
|
// string msgId => msgId
|
|
1046
1053
|
const iwant = new Map();
|
|
1047
|
-
|
|
1054
|
+
// Cap the message ids we examine per call at GossipsubMaxIHaveLength
|
|
1055
|
+
let processed = 0;
|
|
1056
|
+
// eslint-disable-next-line no-labels
|
|
1057
|
+
out: for (const { topicID, messageIDs } of ihave) {
|
|
1048
1058
|
if (topicID == null || (messageIDs == null) || !this.mesh.has(topicID)) {
|
|
1049
|
-
|
|
1059
|
+
continue;
|
|
1050
1060
|
}
|
|
1051
1061
|
let idonthave = 0;
|
|
1052
|
-
|
|
1062
|
+
for (const msgId of messageIDs) {
|
|
1063
|
+
if (processed >= constants.GossipsubMaxIHaveLength) {
|
|
1064
|
+
// eslint-disable-next-line no-labels
|
|
1065
|
+
break out;
|
|
1066
|
+
}
|
|
1067
|
+
processed++;
|
|
1053
1068
|
const msgIdStr = this.msgIdToStrFn(msgId);
|
|
1054
1069
|
if (!this.seenCache.has(msgIdStr)) {
|
|
1055
1070
|
iwant.set(msgIdStr, msgId);
|
|
1056
1071
|
idonthave++;
|
|
1057
1072
|
}
|
|
1058
|
-
}
|
|
1073
|
+
}
|
|
1059
1074
|
this.metrics?.onIhaveRcv(topicID, messageIDs.length, idonthave);
|
|
1060
|
-
}
|
|
1075
|
+
}
|
|
1061
1076
|
if (iwant.size === 0) {
|
|
1062
1077
|
return [];
|
|
1063
1078
|
}
|
|
@@ -1093,25 +1108,43 @@ export class GossipSub extends TypedEventEmitter {
|
|
|
1093
1108
|
this.log('IWANT: ignoring peer %s with score below threshold [score = %d]', id, score);
|
|
1094
1109
|
return [];
|
|
1095
1110
|
}
|
|
1111
|
+
// IWANT flood protection
|
|
1112
|
+
const iwantCount = (this.iwantCounts.get(id) ?? 0) + 1;
|
|
1113
|
+
this.iwantCounts.set(id, iwantCount);
|
|
1114
|
+
if (iwantCount > constants.GossipsubMaxIWantMessages) {
|
|
1115
|
+
this.log('IWANT: peer %s has requested too many times within this heartbeat interval; ignoring', id);
|
|
1116
|
+
return [];
|
|
1117
|
+
}
|
|
1096
1118
|
const ihave = new Map();
|
|
1097
1119
|
const iwantByTopic = new Map();
|
|
1098
1120
|
let iwantDonthave = 0;
|
|
1099
|
-
|
|
1100
|
-
|
|
1121
|
+
// Cap the message ids we examine per call at GossipsubMaxIHaveLength
|
|
1122
|
+
let processed = 0;
|
|
1123
|
+
// eslint-disable-next-line no-labels
|
|
1124
|
+
out: for (const { messageIDs } of iwant) {
|
|
1125
|
+
if (messageIDs == null) {
|
|
1126
|
+
continue;
|
|
1127
|
+
}
|
|
1128
|
+
for (const msgId of messageIDs) {
|
|
1129
|
+
if (processed >= constants.GossipsubMaxIHaveLength) {
|
|
1130
|
+
// eslint-disable-next-line no-labels
|
|
1131
|
+
break out;
|
|
1132
|
+
}
|
|
1133
|
+
processed++;
|
|
1101
1134
|
const msgIdStr = this.msgIdToStrFn(msgId);
|
|
1102
1135
|
const entry = this.mcache.getWithIWantCount(msgIdStr, id);
|
|
1103
1136
|
if (entry == null) {
|
|
1104
1137
|
iwantDonthave++;
|
|
1105
|
-
|
|
1138
|
+
continue;
|
|
1106
1139
|
}
|
|
1107
1140
|
iwantByTopic.set(entry.msg.topic, 1 + (iwantByTopic.get(entry.msg.topic) ?? 0));
|
|
1108
1141
|
if (entry.count > constants.GossipsubGossipRetransmission) {
|
|
1109
1142
|
this.log('IWANT: Peer %s has asked for message %s too many times: ignoring request', id, msgId);
|
|
1110
|
-
|
|
1143
|
+
continue;
|
|
1111
1144
|
}
|
|
1112
1145
|
ihave.set(msgIdStr, entry.msg);
|
|
1113
|
-
}
|
|
1114
|
-
}
|
|
1146
|
+
}
|
|
1147
|
+
}
|
|
1115
1148
|
this.metrics?.onIwantRcv(iwantByTopic, iwantDonthave);
|
|
1116
1149
|
if (ihave.size === 0) {
|
|
1117
1150
|
this.log('IWANT: Could not provide any wanted messages to %s', id);
|
|
@@ -2133,6 +2166,7 @@ export class GossipSub extends TypedEventEmitter {
|
|
|
2133
2166
|
this.peerhave.clear();
|
|
2134
2167
|
this.metrics?.cacheSize.set({ cache: 'iasked' }, this.iasked.size);
|
|
2135
2168
|
this.iasked.clear();
|
|
2169
|
+
this.iwantCounts.clear();
|
|
2136
2170
|
// apply IWANT request penalties
|
|
2137
2171
|
this.applyIwantPenalties();
|
|
2138
2172
|
// clean up IDONTWANT counters
|