eth, eth/downloader: remove duplicate consts, bump hash fetch to 2K
This commit is contained in:
parent
52db6d8be5
commit
06a041589f
@ -15,8 +15,10 @@ import (
|
|||||||
)
|
)
|
||||||
|
|
||||||
const (
|
const (
|
||||||
maxHashFetch = 512 // Amount of hashes to be fetched per chunk
|
MinHashFetch = 512 // Minimum amount of hashes to not consider a peer stalling
|
||||||
maxBlockFetch = 128 // Amount of blocks to be fetched per chunk
|
MaxHashFetch = 2048 // Amount of hashes to be fetched per retrieval request
|
||||||
|
MaxBlockFetch = 128 // Amount of blocks to be fetched per retrieval request
|
||||||
|
|
||||||
peerCountTimeout = 12 * time.Second // Amount of time it takes for the peer handler to ignore minDesiredPeerCount
|
peerCountTimeout = 12 * time.Second // Amount of time it takes for the peer handler to ignore minDesiredPeerCount
|
||||||
hashTTL = 5 * time.Second // Time it takes for a hash request to time out
|
hashTTL = 5 * time.Second // Time it takes for a hash request to time out
|
||||||
)
|
)
|
||||||
@ -290,7 +292,7 @@ func (d *Downloader) fetchHashes(p *peer, h common.Hash) error {
|
|||||||
}
|
}
|
||||||
if !done {
|
if !done {
|
||||||
// Check that the peer is not stalling the sync
|
// Check that the peer is not stalling the sync
|
||||||
if len(inserts) < maxHashFetch {
|
if len(inserts) < MinHashFetch {
|
||||||
return ErrStallingPeer
|
return ErrStallingPeer
|
||||||
}
|
}
|
||||||
// Try and fetch a random block to verify the hash batch
|
// Try and fetch a random block to verify the hash batch
|
||||||
@ -451,7 +453,7 @@ out:
|
|||||||
}
|
}
|
||||||
// Get a possible chunk. If nil is returned no chunk
|
// Get a possible chunk. If nil is returned no chunk
|
||||||
// could be returned due to no hashes available.
|
// could be returned due to no hashes available.
|
||||||
request := d.queue.Reserve(peer, maxBlockFetch)
|
request := d.queue.Reserve(peer, MaxBlockFetch)
|
||||||
if request == nil {
|
if request == nil {
|
||||||
continue
|
continue
|
||||||
}
|
}
|
||||||
|
@ -135,7 +135,7 @@ func (dl *downloadTester) getBlock(hash common.Hash) *types.Block {
|
|||||||
|
|
||||||
// getHashes retrieves a batch of hashes for reconstructing the chain.
|
// getHashes retrieves a batch of hashes for reconstructing the chain.
|
||||||
func (dl *downloadTester) getHashes(head common.Hash) error {
|
func (dl *downloadTester) getHashes(head common.Hash) error {
|
||||||
limit := maxHashFetch
|
limit := MaxHashFetch
|
||||||
if dl.maxHashFetch > 0 {
|
if dl.maxHashFetch > 0 {
|
||||||
limit = dl.maxHashFetch
|
limit = dl.maxHashFetch
|
||||||
}
|
}
|
||||||
|
@ -17,7 +17,7 @@ import (
|
|||||||
)
|
)
|
||||||
|
|
||||||
const (
|
const (
|
||||||
blockCacheLimit = 1024 // Maximum number of blocks to cache before throttling the download
|
blockCacheLimit = 8 * MaxBlockFetch // Maximum number of blocks to cache before throttling the download
|
||||||
)
|
)
|
||||||
|
|
||||||
// fetchRequest is a currently running block retrieval operation.
|
// fetchRequest is a currently running block retrieval operation.
|
||||||
|
@ -206,8 +206,8 @@ func (self *ProtocolManager) handleMsg(p *peer) error {
|
|||||||
return errResp(ErrDecode, "->msg %v: %v", msg, err)
|
return errResp(ErrDecode, "->msg %v: %v", msg, err)
|
||||||
}
|
}
|
||||||
|
|
||||||
if request.Amount > maxHashes {
|
if request.Amount > downloader.MaxHashFetch {
|
||||||
request.Amount = maxHashes
|
request.Amount = downloader.MaxHashFetch
|
||||||
}
|
}
|
||||||
|
|
||||||
hashes := self.chainman.GetBlockHashesFromHash(request.Hash, request.Amount)
|
hashes := self.chainman.GetBlockHashesFromHash(request.Hash, request.Amount)
|
||||||
@ -254,7 +254,7 @@ func (self *ProtocolManager) handleMsg(p *peer) error {
|
|||||||
if block != nil {
|
if block != nil {
|
||||||
blocks = append(blocks, block)
|
blocks = append(blocks, block)
|
||||||
}
|
}
|
||||||
if i == maxBlocks {
|
if i == downloader.MaxBlockFetch {
|
||||||
break
|
break
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@ -8,6 +8,7 @@ import (
|
|||||||
|
|
||||||
"github.com/ethereum/go-ethereum/common"
|
"github.com/ethereum/go-ethereum/common"
|
||||||
"github.com/ethereum/go-ethereum/core/types"
|
"github.com/ethereum/go-ethereum/core/types"
|
||||||
|
"github.com/ethereum/go-ethereum/eth/downloader"
|
||||||
"github.com/ethereum/go-ethereum/logger"
|
"github.com/ethereum/go-ethereum/logger"
|
||||||
"github.com/ethereum/go-ethereum/logger/glog"
|
"github.com/ethereum/go-ethereum/logger/glog"
|
||||||
"github.com/ethereum/go-ethereum/p2p"
|
"github.com/ethereum/go-ethereum/p2p"
|
||||||
@ -100,8 +101,8 @@ func (p *peer) sendTransaction(tx *types.Transaction) error {
|
|||||||
}
|
}
|
||||||
|
|
||||||
func (p *peer) requestHashes(from common.Hash) error {
|
func (p *peer) requestHashes(from common.Hash) error {
|
||||||
glog.V(logger.Debug).Infof("[%s] fetching hashes (%d) %x...\n", p.id, maxHashes, from[:4])
|
glog.V(logger.Debug).Infof("[%s] fetching hashes (%d) %x...\n", p.id, downloader.MaxHashFetch, from[:4])
|
||||||
return p2p.Send(p.rw, GetBlockHashesMsg, getBlockHashesMsgData{from, maxHashes})
|
return p2p.Send(p.rw, GetBlockHashesMsg, getBlockHashesMsgData{from, downloader.MaxHashFetch})
|
||||||
}
|
}
|
||||||
|
|
||||||
func (p *peer) requestBlocks(hashes []common.Hash) error {
|
func (p *peer) requestBlocks(hashes []common.Hash) error {
|
||||||
|
@ -12,8 +12,6 @@ const (
|
|||||||
NetworkId = 0
|
NetworkId = 0
|
||||||
ProtocolLength = uint64(8)
|
ProtocolLength = uint64(8)
|
||||||
ProtocolMaxMsgSize = 10 * 1024 * 1024
|
ProtocolMaxMsgSize = 10 * 1024 * 1024
|
||||||
maxHashes = 512
|
|
||||||
maxBlocks = 128
|
|
||||||
)
|
)
|
||||||
|
|
||||||
// eth protocol message codes
|
// eth protocol message codes
|
||||||
|
Loading…
Reference in New Issue
Block a user