From b54518cdcfee8ea524275bd67889d502dd3fa479 Mon Sep 17 00:00:00 2001 From: hunjixin <1084400399@qq.com> Date: Fri, 16 Dec 2022 17:26:58 +0800 Subject: [PATCH] fix: remove bootstrap in dht --- app/submodule/network/network_submodule.go | 9 +++------ pkg/net/peermgr/peermgr.go | 16 ++++++++++------ 2 files changed, 13 insertions(+), 12 deletions(-) diff --git a/app/submodule/network/network_submodule.go b/app/submodule/network/network_submodule.go index b38dce1e14..e657c9102b 100644 --- a/app/submodule/network/network_submodule.go +++ b/app/submodule/network/network_submodule.go @@ -145,8 +145,6 @@ func NewNetworkSubmodule(ctx context.Context, chainStore *chain.Store, } // set up host - var peerMgr peermgr.IPeerMgr - rawHost, err := buildHost(ctx, config, libP2pOpts, config.Repo().Config()) if err != nil { return nil, err @@ -163,7 +161,7 @@ func NewNetworkSubmodule(ctx context.Context, chainStore *chain.Store, return nil, err } - peerMgr, err = peermgr.NewPeerMgr(peerHost, router.(*dht.IpfsDHT), period, bootNodes) + peerMgr, err := peermgr.NewPeerMgr(peerHost, router.(*dht.IpfsDHT), period, bootNodes) if err != nil { return nil, err } @@ -344,7 +342,7 @@ func buildHost(ctx context.Context, config networkConfig, libP2pOpts []libp2p.Op } relayHost, err := libp2p.New( - libp2p.EnableRelay(), // TODO ? + libp2p.EnableRelay(), libp2p.EnableAutoRelay(), publicAddrFactory, libp2p.ChainOptions(libP2pOpts...), @@ -375,8 +373,7 @@ func makeDHT(ctx context.Context, h types.RawHost, config networkConfig, network dht.ProtocolPrefix(net.FilecoinDHT(networkName)), dht.QueryFilter(dht.PublicQueryFilter), dht.RoutingTableFilter(dht.PublicRoutingTableFilter), - dht.DisableProviders(), - dht.BootstrapPeers(bootNodes...), + dht.DisableProviders(), //do not add dht bootstrap.make the peer-mgr unable to work dht.DisableValues(), } r, err := dht.New( diff --git a/pkg/net/peermgr/peermgr.go b/pkg/net/peermgr/peermgr.go index 0d9d681386..e770228242 100644 --- a/pkg/net/peermgr/peermgr.go +++ b/pkg/net/peermgr/peermgr.go @@ -153,15 +153,19 @@ func (pmgr *PeerMgr) Stop(ctx context.Context) error { func (pmgr *PeerMgr) Run(ctx context.Context) { tick := time.NewTicker(pmgr.period) + defer tick.Stop() + for { + pCount := pmgr.getPeerCount() + if pCount < pmgr.minFilPeers { + pmgr.expandPeers() + } else if pCount > pmgr.maxFilPeers { + log.Debugf("peer count about threshold: %d > %d", pCount, pmgr.maxFilPeers) + } + select { case <-tick.C: - pcount := pmgr.getPeerCount() - if pcount < pmgr.minFilPeers { - pmgr.expandPeers() - } else if pcount > pmgr.maxFilPeers { - log.Debugf("peer count about threshold: %d > %d", pcount, pmgr.maxFilPeers) - } + continue case <-pmgr.done: log.Warn("exiting peermgr run") return