downloader: don't remove peers. keep them around
This commit is contained in:
parent
03b4cf74a2
commit
50e096e627
@ -176,6 +176,7 @@ out:
|
||||
var peer *peer = sync.peer
|
||||
err := d.getFromPeer(peer, sync.hash, sync.ignoreInitial)
|
||||
if err != nil {
|
||||
glog.V(logger.Detail).Infoln(err)
|
||||
break
|
||||
}
|
||||
|
||||
@ -301,7 +302,7 @@ out:
|
||||
d.queue.reset()
|
||||
d.peers.reset()
|
||||
|
||||
return errPeersUnavailable
|
||||
return fmt.Errorf("%v avaialable = %d. total = %d", errPeersUnavailable, len(availablePeers), len(d.peers))
|
||||
}
|
||||
|
||||
} else if len(d.queue.fetching) == 0 {
|
||||
@ -321,7 +322,7 @@ out:
|
||||
if time.Since(chunk.itime) > blockTtl {
|
||||
badPeers = append(badPeers, pid)
|
||||
// remove peer as good peer from peer list
|
||||
d.UnregisterPeer(pid)
|
||||
//d.UnregisterPeer(pid)
|
||||
}
|
||||
}
|
||||
d.queue.mu.Unlock()
|
||||
|
@ -185,7 +185,16 @@ func (self *ProtocolManager) handleMsg(p *peer) error {
|
||||
if request.Amount > maxHashes {
|
||||
request.Amount = maxHashes
|
||||
}
|
||||
|
||||
hashes := self.chainman.GetBlockHashesFromHash(request.Hash, request.Amount)
|
||||
|
||||
if glog.V(logger.Debug) {
|
||||
if len(hashes) == 0 {
|
||||
glog.Infof("invalid block hash %x", request.Hash.Bytes()[:4])
|
||||
}
|
||||
}
|
||||
|
||||
// returns either requested hashes or nothing (i.e. not found)
|
||||
return p.sendBlockHashes(hashes)
|
||||
case BlockHashesMsg:
|
||||
msgStream := rlp.NewStream(msg.Payload)
|
||||
@ -282,6 +291,7 @@ func (self *ProtocolManager) handleMsg(p *peer) error {
|
||||
return nil
|
||||
}
|
||||
self.BroadcastBlock(hash, request.Block)
|
||||
fmt.Println(request.Block.Hash().Hex(), "our calculated TD =", request.Block.Td, "their TD =", request.TD)
|
||||
} else {
|
||||
// adding blocks is synchronous
|
||||
go func() {
|
||||
@ -291,6 +301,7 @@ func (self *ProtocolManager) handleMsg(p *peer) error {
|
||||
return
|
||||
}
|
||||
self.BroadcastBlock(hash, request.Block)
|
||||
fmt.Println(request.Block.Hash().Hex(), "our calculated TD =", request.Block.Td, "their TD =", request.TD)
|
||||
}()
|
||||
}
|
||||
default:
|
||||
|
@ -1,20 +1,7 @@
|
||||
package eth
|
||||
|
||||
import (
|
||||
"log"
|
||||
"math/big"
|
||||
"os"
|
||||
"testing"
|
||||
"time"
|
||||
|
||||
"github.com/ethereum/go-ethereum/common"
|
||||
"github.com/ethereum/go-ethereum/core/types"
|
||||
"github.com/ethereum/go-ethereum/crypto"
|
||||
"github.com/ethereum/go-ethereum/errs"
|
||||
ethlogger "github.com/ethereum/go-ethereum/logger"
|
||||
"github.com/ethereum/go-ethereum/p2p"
|
||||
"github.com/ethereum/go-ethereum/p2p/discover"
|
||||
)
|
||||
/*
|
||||
TODO All of these tests need to be re-written
|
||||
|
||||
var logsys = ethlogger.NewStdLogSystem(os.Stdout, log.LstdFlags, ethlogger.LogLevel(ethlogger.DebugDetailLevel))
|
||||
|
||||
@ -398,3 +385,4 @@ func TestTransactionsMsg(t *testing.T) {
|
||||
eth.checkError(ErrDecode, delay)
|
||||
|
||||
}
|
||||
*/
|
||||
|
Loading…
Reference in New Issue
Block a user