From: Yahtoo Ma Date: Mon, 23 Apr 2018 06:36:11 +0000 (+0800) Subject: Change defaultBanDuration and ban score X-Git-Tag: v1.0.5-alpha~230^2 X-Git-Url: http://git.osdn.net/view?a=commitdiff_plain;h=5cad0ded88e27c6a8a80208ffca0230b7486761f;p=bytom%2Fbytom-spv.git Change defaultBanDuration and ban score --- diff --git a/netsync/block_keeper.go b/netsync/block_keeper.go index b8514429..1b921f0b 100644 --- a/netsync/block_keeper.go +++ b/netsync/block_keeper.go @@ -106,7 +106,7 @@ func (bk *blockKeeper) BlockRequestWorker(peerID string, maxPeerHeight uint64) e log.Info("peer is deleted") break } - if ban := bkPeer.addBanScore(50, 0, "block process error"); ban { + if ban := bkPeer.addBanScore(20, 0, "block process error"); ban { bk.sw.AddBannedPeer(swPeer) bk.sw.StopPeerGracefully(swPeer) } @@ -199,7 +199,7 @@ func (bk *blockKeeper) txsProcessWorker() { if isOrphan, err := bk.chain.ValidateTx(tx); err != nil && isOrphan == false { if bkPeer, ok := bk.peers.Peer(txsResponse.peerID); ok { swPeer := bkPeer.getPeer() - if ban := bkPeer.addBanScore(50, 0, "tx error"); ban { + if ban := bkPeer.addBanScore(10, 0, "tx error"); ban { bk.sw.AddBannedPeer(swPeer) bk.sw.StopPeerGracefully(swPeer) } diff --git a/netsync/fetcher.go b/netsync/fetcher.go index 9b444b03..3a731cea 100644 --- a/netsync/fetcher.go +++ b/netsync/fetcher.go @@ -154,7 +154,7 @@ func (f *Fetcher) insert(peerID string, block *types.Block) { return } swPeer := fPeer.getPeer() - if ban := fPeer.addBanScore(50, 0, "block process error"); ban { + if ban := fPeer.addBanScore(20, 0, "block process error"); ban { f.sw.AddBannedPeer(swPeer) f.sw.StopPeerGracefully(swPeer) } diff --git a/p2p/switch.go b/p2p/switch.go index a86227b9..cfee40a5 100644 --- a/p2p/switch.go +++ b/p2p/switch.go @@ -24,7 +24,7 @@ const ( reconnectInterval = 10 * time.Second bannedPeerKey = "BannedPeer" - defaultBanDuration = time.Hour * 24 + defaultBanDuration = time.Hour * 1 ) var ErrConnectBannedPeer = errors.New("Connect banned peer") @@ -679,10 +679,7 @@ func (sw *Switch) AddBannedPeer(peer *Peer) error { return nil } -func (sw *Switch) DelBannedPeer(addr string) error { - sw.mtx.Lock() - defer sw.mtx.Unlock() - +func (sw *Switch) delBannedPeer(addr string) error { delete(sw.bannedPeer, addr) datajson, err := json.Marshal(sw.bannedPeer) if err != nil { @@ -693,11 +690,14 @@ func (sw *Switch) DelBannedPeer(addr string) error { } func (sw *Switch) checkBannedPeer(peer string) error { + sw.mtx.Lock() + defer sw.mtx.Unlock() + if banEnd, ok := sw.bannedPeer[peer]; ok { if time.Now().Before(banEnd) { return ErrConnectBannedPeer } - sw.DelBannedPeer(peer) + sw.delBannedPeer(peer) } return nil }