eth, eth/downloader: remove duplicate consts, bump hash fetch to 2K

pull/1064/head
Péter Szilágyi 10 years ago
parent 52db6d8be5
commit 06a041589f
  1. 10
      eth/downloader/downloader.go
  2. 2
      eth/downloader/downloader_test.go
  3. 2
      eth/downloader/queue.go
  4. 6
      eth/handler.go
  5. 5
      eth/peer.go
  6. 2
      eth/protocol.go

@ -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…
Cancel
Save