From 29b0480cfb2f2bd6c350fdce0063312ad691d7b8 Mon Sep 17 00:00:00 2001 From: Péter Szilágyi Date: Thu, 28 May 2015 13:06:10 +0300 Subject: core, eth/downloader: expose the bad hashes, check in downloader --- core/blocks.go | 7 ++++--- core/chain_manager.go | 2 +- core/manager.go | 6 ------ 3 files changed, 5 insertions(+), 10 deletions(-) (limited to 'core') diff --git a/core/blocks.go b/core/blocks.go index d09242a07..35e170af3 100644 --- a/core/blocks.go +++ b/core/blocks.go @@ -2,7 +2,8 @@ package core import "github.com/ethereum/go-ethereum/common" -var badHashes = []common.Hash{ - common.HexToHash("f269c503aed286caaa0d114d6a5320e70abbc2febe37953207e76a2873f2ba79"), - common.HexToHash("38f5bbbffd74804820ffa4bab0cd540e9de229725afb98c1a7e57936f4a714bc"), +// Set of manually tracked bad hashes (usually hard forks) +var BadHashes = map[common.Hash]bool{ + common.HexToHash("f269c503aed286caaa0d114d6a5320e70abbc2febe37953207e76a2873f2ba79"): true, + common.HexToHash("38f5bbbffd74804820ffa4bab0cd540e9de229725afb98c1a7e57936f4a714bc"): true, } diff --git a/core/chain_manager.go b/core/chain_manager.go index ee73145c1..edf8825f3 100644 --- a/core/chain_manager.go +++ b/core/chain_manager.go @@ -121,7 +121,7 @@ func NewChainManager(blockDb, stateDb common.Database, pow pow.PoW, mux *event.T bc.setLastState() // Check the current state of the block hashes and make sure that we do not have any of the bad blocks in our chain - for _, hash := range badHashes { + for hash, _ := range BadHashes { if block := bc.GetBlock(hash); block != nil { glog.V(logger.Error).Infof("Found bad hash. Reorganising chain to state %x\n", block.ParentHash().Bytes()[:4]) block = bc.GetBlock(block.ParentHash()) diff --git a/core/manager.go b/core/manager.go index 695f0e99c..ba0ecf9d1 100644 --- a/core/manager.go +++ b/core/manager.go @@ -3,9 +3,7 @@ package core import ( "github.com/ethereum/go-ethereum/accounts" "github.com/ethereum/go-ethereum/common" - "github.com/ethereum/go-ethereum/eth/downloader" "github.com/ethereum/go-ethereum/event" - "github.com/ethereum/go-ethereum/p2p" ) // TODO move this to types? @@ -14,11 +12,7 @@ type Backend interface { BlockProcessor() *BlockProcessor ChainManager() *ChainManager TxPool() *TxPool - PeerCount() int - IsListening() bool - Peers() []*p2p.Peer BlockDb() common.Database StateDb() common.Database EventMux() *event.TypeMux - Downloader() *downloader.Downloader } -- cgit