@@ -296,7 +296,7 @@ export class GossipSub extends TypedEventEmitter<GossipsubEvents> implements Pub
296
296
297
297
// State
298
298
299
- public readonly peers = new Set < PeerIdStr > ( )
299
+ public readonly peers = new Map < PeerIdStr , PeerId > ( )
300
300
public readonly streamsInbound = new Map < PeerIdStr , InboundStream > ( )
301
301
public readonly streamsOutbound = new Map < PeerIdStr , OutboundStream > ( )
302
302
@@ -602,7 +602,7 @@ export class GossipSub extends TypedEventEmitter<GossipsubEvents> implements Pub
602
602
]
603
603
604
604
getPeers ( ) : PeerId [ ] {
605
- return [ ...this . peers . keys ( ) ] . map ( ( str ) => peerIdFromString ( str ) )
605
+ return [ ...this . peers . values ( ) ]
606
606
}
607
607
608
608
isStarted ( ) : boolean {
@@ -915,7 +915,7 @@ export class GossipSub extends TypedEventEmitter<GossipsubEvents> implements Pub
915
915
if ( ! this . peers . has ( id ) ) {
916
916
this . log ( 'new peer %p' , peerId )
917
917
918
- this . peers . add ( id )
918
+ this . peers . set ( id , peerId )
919
919
920
920
// Add to peer scoring
921
921
this . score . addPeer ( id )
@@ -1016,7 +1016,7 @@ export class GossipSub extends TypedEventEmitter<GossipsubEvents> implements Pub
1016
1016
*/
1017
1017
getSubscribers ( topic : TopicStr ) : PeerId [ ] {
1018
1018
const peersInTopic = this . topics . get ( topic )
1019
- return ( ( peersInTopic != null ) ? Array . from ( peersInTopic ) : [ ] ) . map ( ( str ) => peerIdFromString ( str ) )
1019
+ return ( ( peersInTopic != null ) ? Array . from ( peersInTopic ) : [ ] ) . map ( ( str ) => this . peers . get ( str ) ?? peerIdFromString ( str ) )
1020
1020
}
1021
1021
1022
1022
/**
@@ -2316,7 +2316,7 @@ export class GossipSub extends TypedEventEmitter<GossipsubEvents> implements Pub
2316
2316
}
2317
2317
2318
2318
return {
2319
- recipients : Array . from ( tosend . values ( ) ) . map ( ( str ) => peerIdFromString ( str ) )
2319
+ recipients : Array . from ( tosend . values ( ) ) . map ( ( str ) => this . peers . get ( str ) ?? peerIdFromString ( str ) )
2320
2320
}
2321
2321
}
2322
2322
@@ -2705,7 +2705,7 @@ export class GossipSub extends TypedEventEmitter<GossipsubEvents> implements Pub
2705
2705
// the peer ID and let the pruned peer find them in the DHT -- we can't trust
2706
2706
// unsigned address records through PX anyways
2707
2707
// Finding signed records in the DHT is not supported at the time of writing in js-libp2p
2708
- const id = peerIdFromString ( peerId )
2708
+ const id = this . peers . get ( peerId ) ?? peerIdFromString ( peerId )
2709
2709
let peerInfo : Peer | undefined
2710
2710
2711
2711
try {
@@ -3229,7 +3229,7 @@ export class GossipSub extends TypedEventEmitter<GossipsubEvents> implements Pub
3229
3229
3230
3230
private readonly tagMeshPeer = ( evt : CustomEvent < MeshPeer > ) : void => {
3231
3231
const { peerId, topic } = evt . detail
3232
- this . components . peerStore . merge ( peerIdFromString ( peerId ) , {
3232
+ this . components . peerStore . merge ( this . peers . get ( peerId ) ?? peerIdFromString ( peerId ) , {
3233
3233
tags : {
3234
3234
[ topic ] : {
3235
3235
value : 100
@@ -3240,7 +3240,7 @@ export class GossipSub extends TypedEventEmitter<GossipsubEvents> implements Pub
3240
3240
3241
3241
private readonly untagMeshPeer = ( evt : CustomEvent < MeshPeer > ) : void => {
3242
3242
const { peerId, topic } = evt . detail
3243
- this . components . peerStore . merge ( peerIdFromString ( peerId ) , {
3243
+ this . components . peerStore . merge ( this . peers . get ( peerId ) ?? peerIdFromString ( peerId ) , {
3244
3244
tags : {
3245
3245
[ topic ] : undefined
3246
3246
}
0 commit comments