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
|
var peer *peer = sync.peer
|
||||||
err := d.getFromPeer(peer, sync.hash, sync.ignoreInitial)
|
err := d.getFromPeer(peer, sync.hash, sync.ignoreInitial)
|
||||||
if err != nil {
|
if err != nil {
|
||||||
|
glog.V(logger.Detail).Infoln(err)
|
||||||
break
|
break
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -301,7 +302,7 @@ out:
|
|||||||
d.queue.reset()
|
d.queue.reset()
|
||||||
d.peers.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 {
|
} else if len(d.queue.fetching) == 0 {
|
||||||
@ -321,7 +322,7 @@ out:
|
|||||||
if time.Since(chunk.itime) > blockTtl {
|
if time.Since(chunk.itime) > blockTtl {
|
||||||
badPeers = append(badPeers, pid)
|
badPeers = append(badPeers, pid)
|
||||||
// remove peer as good peer from peer list
|
// remove peer as good peer from peer list
|
||||||
d.UnregisterPeer(pid)
|
//d.UnregisterPeer(pid)
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
d.queue.mu.Unlock()
|
d.queue.mu.Unlock()
|
||||||
|
@ -185,7 +185,16 @@ func (self *ProtocolManager) handleMsg(p *peer) error {
|
|||||||
if request.Amount > maxHashes {
|
if request.Amount > maxHashes {
|
||||||
request.Amount = maxHashes
|
request.Amount = maxHashes
|
||||||
}
|
}
|
||||||
|
|
||||||
hashes := self.chainman.GetBlockHashesFromHash(request.Hash, request.Amount)
|
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)
|
return p.sendBlockHashes(hashes)
|
||||||
case BlockHashesMsg:
|
case BlockHashesMsg:
|
||||||
msgStream := rlp.NewStream(msg.Payload)
|
msgStream := rlp.NewStream(msg.Payload)
|
||||||
@ -282,6 +291,7 @@ func (self *ProtocolManager) handleMsg(p *peer) error {
|
|||||||
return nil
|
return nil
|
||||||
}
|
}
|
||||||
self.BroadcastBlock(hash, request.Block)
|
self.BroadcastBlock(hash, request.Block)
|
||||||
|
fmt.Println(request.Block.Hash().Hex(), "our calculated TD =", request.Block.Td, "their TD =", request.TD)
|
||||||
} else {
|
} else {
|
||||||
// adding blocks is synchronous
|
// adding blocks is synchronous
|
||||||
go func() {
|
go func() {
|
||||||
@ -291,6 +301,7 @@ func (self *ProtocolManager) handleMsg(p *peer) error {
|
|||||||
return
|
return
|
||||||
}
|
}
|
||||||
self.BroadcastBlock(hash, request.Block)
|
self.BroadcastBlock(hash, request.Block)
|
||||||
|
fmt.Println(request.Block.Hash().Hex(), "our calculated TD =", request.Block.Td, "their TD =", request.TD)
|
||||||
}()
|
}()
|
||||||
}
|
}
|
||||||
default:
|
default:
|
||||||
|
@ -1,20 +1,7 @@
|
|||||||
package eth
|
package eth
|
||||||
|
|
||||||
import (
|
/*
|
||||||
"log"
|
TODO All of these tests need to be re-written
|
||||||
"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"
|
|
||||||
)
|
|
||||||
|
|
||||||
var logsys = ethlogger.NewStdLogSystem(os.Stdout, log.LstdFlags, ethlogger.LogLevel(ethlogger.DebugDetailLevel))
|
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)
|
eth.checkError(ErrDecode, delay)
|
||||||
|
|
||||||
}
|
}
|
||||||
|
*/
|
||||||
|
Loading…
Reference in New Issue
Block a user