eth: adapted to new synchronous api of downloader's AddBlock
This commit is contained in:
parent
c2c24b3bb4
commit
0d536734fe
@ -173,8 +173,6 @@ out:
|
|||||||
select {
|
select {
|
||||||
case sync := <-d.syncCh:
|
case sync := <-d.syncCh:
|
||||||
var peer *peer = sync.peer
|
var peer *peer = sync.peer
|
||||||
d.activePeer = peer.id
|
|
||||||
|
|
||||||
err := d.getFromPeer(peer, sync.hash, sync.ignoreInitial)
|
err := d.getFromPeer(peer, sync.hash, sync.ignoreInitial)
|
||||||
if err != nil {
|
if err != nil {
|
||||||
break
|
break
|
||||||
|
@ -50,6 +50,8 @@ func (d *Downloader) Synchronise() (types.Blocks, error) {
|
|||||||
}
|
}
|
||||||
|
|
||||||
func (d *Downloader) getFromPeer(p *peer, hash common.Hash, ignoreInitial bool) error {
|
func (d *Downloader) getFromPeer(p *peer, hash common.Hash, ignoreInitial bool) error {
|
||||||
|
d.activePeer = p.id
|
||||||
|
|
||||||
glog.V(logger.Detail).Infoln("Synchronising with the network using:", p.id)
|
glog.V(logger.Detail).Infoln("Synchronising with the network using:", p.id)
|
||||||
// Start the fetcher. This will block the update entirely
|
// Start the fetcher. This will block the update entirely
|
||||||
// interupts need to be send to the appropriate channels
|
// interupts need to be send to the appropriate channels
|
||||||
|
@ -265,10 +265,12 @@ func (self *ProtocolManager) handleMsg(p *peer) error {
|
|||||||
if self.chainman.HasBlock(hash) {
|
if self.chainman.HasBlock(hash) {
|
||||||
break
|
break
|
||||||
}
|
}
|
||||||
if self.chainman.Td().Cmp(request.TD) > 0 {
|
/* XXX unsure about this
|
||||||
|
if self.chainman.Td().Cmp(request.TD) > 0 && new(big.Int).Add(request.Block.Number(), big.NewInt(7)).Cmp(self.chainman.CurrentBlock().Number()) < 0 {
|
||||||
glog.V(logger.Debug).Infoln("dropped block", request.Block.Number(), "due to low TD", request.TD)
|
glog.V(logger.Debug).Infoln("dropped block", request.Block.Number(), "due to low TD", request.TD)
|
||||||
break
|
break
|
||||||
}
|
}
|
||||||
|
*/
|
||||||
|
|
||||||
// Attempt to insert the newly received by checking if the parent exists.
|
// Attempt to insert the newly received by checking if the parent exists.
|
||||||
// if the parent exists we process the block and propagate to our peers
|
// if the parent exists we process the block and propagate to our peers
|
||||||
@ -281,7 +283,15 @@ func (self *ProtocolManager) handleMsg(p *peer) error {
|
|||||||
}
|
}
|
||||||
self.BroadcastBlock(hash, request.Block)
|
self.BroadcastBlock(hash, request.Block)
|
||||||
} else {
|
} else {
|
||||||
self.downloader.AddBlock(p.id, request.Block, request.TD)
|
// adding blocks is synchronous
|
||||||
|
go func() {
|
||||||
|
err := self.downloader.AddBlock(p.id, request.Block, request.TD)
|
||||||
|
if err != nil {
|
||||||
|
glog.V(logger.Detail).Infoln("downloader err:", err)
|
||||||
|
return
|
||||||
|
}
|
||||||
|
self.BroadcastBlock(hash, request.Block)
|
||||||
|
}()
|
||||||
}
|
}
|
||||||
default:
|
default:
|
||||||
return errResp(ErrInvalidMsgCode, "%v", msg.Code)
|
return errResp(ErrInvalidMsgCode, "%v", msg.Code)
|
||||||
|
Loading…
Reference in New Issue
Block a user