eth/fetcher: allow backward uncle imports too
This commit is contained in:
parent
90d45f0397
commit
ecd19919c5
@ -16,6 +16,7 @@ import (
|
|||||||
const (
|
const (
|
||||||
arriveTimeout = 500 * time.Millisecond // Time allowance before an announced block is explicitly requested
|
arriveTimeout = 500 * time.Millisecond // Time allowance before an announced block is explicitly requested
|
||||||
fetchTimeout = 5 * time.Second // Maximum alloted time to return an explicitly requested block
|
fetchTimeout = 5 * time.Second // Maximum alloted time to return an explicitly requested block
|
||||||
|
maxUncleDist = 7 // Maximum allowed backward distance from the chain head
|
||||||
maxQueueDist = 256 // Maximum allowed distance from the chain head to queue
|
maxQueueDist = 256 // Maximum allowed distance from the chain head to queue
|
||||||
)
|
)
|
||||||
|
|
||||||
@ -202,7 +203,7 @@ func (f *Fetcher) loop() {
|
|||||||
break
|
break
|
||||||
}
|
}
|
||||||
// Otherwise if fresh and still unknown, try and import
|
// Otherwise if fresh and still unknown, try and import
|
||||||
if number <= height || f.getBlock(op.block.Hash()) != nil {
|
if number+maxUncleDist < height || f.getBlock(op.block.Hash()) != nil {
|
||||||
continue
|
continue
|
||||||
}
|
}
|
||||||
f.insert(op.origin, op.block)
|
f.insert(op.origin, op.block)
|
||||||
@ -317,7 +318,7 @@ func (f *Fetcher) enqueue(peer string, block *types.Block) {
|
|||||||
hash := block.Hash()
|
hash := block.Hash()
|
||||||
|
|
||||||
// Discard any past or too distant blocks
|
// Discard any past or too distant blocks
|
||||||
if dist := int64(block.NumberU64()) - int64(f.chainHeight()); dist <= 0 || dist > maxQueueDist {
|
if dist := int64(block.NumberU64()) - int64(f.chainHeight()); dist < -maxUncleDist || dist > maxQueueDist {
|
||||||
glog.V(logger.Detail).Infof("Peer %s: discarded block #%d [%x], distance %d", peer, block.NumberU64(), hash.Bytes()[:4], dist)
|
glog.V(logger.Detail).Infof("Peer %s: discarded block #%d [%x], distance %d", peer, block.NumberU64(), hash.Bytes()[:4], dist)
|
||||||
return
|
return
|
||||||
}
|
}
|
||||||
|
Loading…
Reference in New Issue
Block a user