diff options
Diffstat (limited to 'eth/downloader')
-rw-r--r-- | eth/downloader/downloader.go | 26 |
1 files changed, 15 insertions, 11 deletions
diff --git a/eth/downloader/downloader.go b/eth/downloader/downloader.go index c4af5e17b..addcbcc44 100644 --- a/eth/downloader/downloader.go +++ b/eth/downloader/downloader.go @@ -41,6 +41,17 @@ type chainInsertFn func(types.Blocks) error type hashIterFn func() (common.Hash, error) type currentTdFn func() *big.Int +type blockPack struct { + peerId string + blocks []*types.Block +} + +type syncPack struct { + peer *peer + hash common.Hash + ignoreInitial bool +} + type Downloader struct { mu sync.RWMutex queue *queue @@ -65,17 +76,6 @@ type Downloader struct { quit chan struct{} } -type blockPack struct { - peerId string - blocks []*types.Block -} - -type syncPack struct { - peer *peer - hash common.Hash - ignoreInitial bool -} - func New(hasBlock hashCheckFn, insertChain chainInsertFn, currentTd currentTdFn) *Downloader { downloader := &Downloader{ queue: newqueue(), @@ -95,6 +95,10 @@ func New(hasBlock hashCheckFn, insertChain chainInsertFn, currentTd currentTdFn) return downloader } +func (d *Downloader) Stats() (current int, max int) { + return d.queue.blockHashes.Size(), d.queue.fetchPool.Size() + d.queue.hashPool.Size() +} + func (d *Downloader) RegisterPeer(id string, td *big.Int, hash common.Hash, getHashes hashFetcherFn, getBlocks blockFetcherFn) error { d.mu.Lock() defer d.mu.Unlock() |