Skip to content

Commit 7a15e22

Browse files
yxq33cn
yxq
authored andcommitted
fix: ignore peers without addr when saving peers
1 parent 7e95977 commit 7a15e22

File tree

1 file changed

+11
-5
lines changed

1 file changed

+11
-5
lines changed

system/p2p/dht/p2p.go

+11-5
Original file line numberDiff line numberDiff line change
@@ -15,9 +15,8 @@ import (
1515
"sync/atomic"
1616
"time"
1717

18-
"github.com/33cn/chain33/common"
19-
2018
"github.com/33cn/chain33/client"
19+
"github.com/33cn/chain33/common"
2120
dbm "github.com/33cn/chain33/common/db"
2221
"github.com/33cn/chain33/common/log/log15"
2322
"github.com/33cn/chain33/p2p"
@@ -34,6 +33,7 @@ import (
3433
core "github.com/libp2p/go-libp2p-core"
3534
"github.com/libp2p/go-libp2p-core/crypto"
3635
"github.com/libp2p/go-libp2p-core/metrics"
36+
"github.com/libp2p/go-libp2p-core/peer"
3737
discovery "github.com/libp2p/go-libp2p-discovery"
3838
"github.com/multiformats/go-multiaddr"
3939
)
@@ -266,7 +266,7 @@ func (p *P2P) buildHostOptions(priv crypto.PrivKey, bandwidthTracker metrics.Rep
266266
if p.subCfg.MaxConnectNum > 0 { //如果不设置最大连接数量,默认允许dht自由连接并填充路由表
267267
var maxconnect = int(p.subCfg.MaxConnectNum)
268268
minconnect := maxconnect - int(manage.CacheLimit) //调整为不超过配置的上限
269-
if minconnect < 0 {
269+
if minconnect <= 0 {
270270
minconnect = maxconnect / 2
271271
}
272272
//2分钟的宽限期,定期清理
@@ -290,9 +290,15 @@ func (p *P2P) managePeers() {
290290
return
291291
case <-time.After(time.Minute * 10):
292292
//Refresh addr book
293-
peersInfo := p.discovery.FindLocalPeers(p.connManager.FetchNearestPeers(50))
293+
var peersInfo []peer.AddrInfo
294+
for _, pid := range p.connManager.FetchNearestPeers(50) {
295+
info := p.discovery.FindLocalPeer(pid)
296+
if len(info.Addrs) != 0 {
297+
peersInfo = append(peersInfo, info)
298+
}
299+
}
294300
if len(peersInfo) != 0 {
295-
p.addrBook.SaveAddr(peersInfo)
301+
_ = p.addrBook.SaveAddr(peersInfo)
296302
}
297303
}
298304
}

0 commit comments

Comments
 (0)