aboutsummaryrefslogtreecommitdiffstats
path: root/block_pool.go
diff options
context:
space:
mode:
Diffstat (limited to 'block_pool.go')
-rw-r--r--block_pool.go50
1 files changed, 10 insertions, 40 deletions
diff --git a/block_pool.go b/block_pool.go
index 69c7a54de..bb459cc7d 100644
--- a/block_pool.go
+++ b/block_pool.go
@@ -9,7 +9,7 @@ import (
"sync"
"time"
- "github.com/ethereum/go-ethereum/chain"
+ "github.com/ethereum/go-ethereum/chain/types"
"github.com/ethereum/go-ethereum/ethutil"
"github.com/ethereum/go-ethereum/logger"
"github.com/ethereum/go-ethereum/wire"
@@ -20,7 +20,7 @@ var poollogger = logger.NewLogger("BPOOL")
type block struct {
from *Peer
peer *Peer
- block *chain.Block
+ block *types.Block
reqAt time.Time
requested int
}
@@ -73,7 +73,7 @@ func (self *BlockPool) HasCommonHash(hash []byte) bool {
return self.eth.ChainManager().GetBlock(hash) != nil
}
-func (self *BlockPool) Blocks() (blocks chain.Blocks) {
+func (self *BlockPool) Blocks() (blocks types.Blocks) {
for _, item := range self.pool {
if item.block != nil {
blocks = append(blocks, item.block)
@@ -123,15 +123,15 @@ func (self *BlockPool) AddHash(hash []byte, peer *Peer) {
}
}
-func (self *BlockPool) Add(b *chain.Block, peer *Peer) {
+func (self *BlockPool) Add(b *types.Block, peer *Peer) {
self.addBlock(b, peer, false)
}
-func (self *BlockPool) AddNew(b *chain.Block, peer *Peer) {
+func (self *BlockPool) AddNew(b *types.Block, peer *Peer) {
self.addBlock(b, peer, true)
}
-func (self *BlockPool) addBlock(b *chain.Block, peer *Peer, newBlock bool) {
+func (self *BlockPool) addBlock(b *types.Block, peer *Peer, newBlock bool) {
self.mut.Lock()
defer self.mut.Unlock()
@@ -283,7 +283,7 @@ out:
break out
case <-procTimer.C:
blocks := self.Blocks()
- chain.BlockBy(chain.Number).Sort(blocks)
+ types.BlockBy(types.Number).Sort(blocks)
// Find common block
for i, block := range blocks {
@@ -309,10 +309,6 @@ out:
}
}
- // TODO figure out whether we were catching up
- // If caught up and just a new block has been propagated:
- // sm.eth.EventMux().Post(NewBlockEvent{block})
- // otherwise process and don't emit anything
if len(blocks) > 0 {
chainman := self.eth.ChainManager()
@@ -331,37 +327,11 @@ out:
self.peer.StopWithReason(DiscBadPeer)
self.td = ethutil.Big0
self.peer = nil
-
- for _, block := range blocks {
- self.Remove(block.Hash())
- }
}
- /*
- // Test and import
- bchain := chain.NewChain(blocks)
- _, err := chainManager.TestChain(bchain)
- if err != nil && !chain.IsTDError(err) {
- poollogger.Debugln(err)
-
- self.Reset()
-
- if self.peer != nil && self.peer.conn != nil {
- poollogger.Debugf("Punishing peer for supplying bad chain (%v)\n", self.peer.conn.RemoteAddr())
- }
-
- // This peer gave us bad hashes and made us fetch a bad chain, therefor he shall be punished.
- self.eth.BlacklistPeer(self.peer)
- self.peer.StopWithReason(DiscBadPeer)
- self.td = ethutil.Big0
- self.peer = nil
- } else {
- chainManager.InsertChain(bchain)
- for _, block := range blocks {
- self.Remove(block.Hash())
- }
- }
- */
+ for _, block := range blocks {
+ self.Remove(block.Hash())
+ }
}
}
}