Merge fixes

pull/253/head
obscuren 10 years ago
parent 721e8ae93f
commit 0dc566124a
  1. 5
      core/chain_manager.go
  2. 6
      core/transaction_pool.go
  3. 5
      core/types/common.go
  4. 4
      eth/backend.go

@ -101,7 +101,10 @@ func NewChainManager(mux *event.TypeMux) *ChainManager {
} }
func (self *ChainManager) Status() (td *big.Int, currentBlock []byte, genesisBlock []byte) { func (self *ChainManager) Status() (td *big.Int, currentBlock []byte, genesisBlock []byte) {
return self.TD, self.CurrentBlock.Hash(), self.Genesis().Hash() self.mu.RLock()
defer self.mu.RUnlock()
return self.td, self.currentBlock.Hash(), self.Genesis().Hash()
} }
func (self *ChainManager) SetProcessor(proc types.BlockProcessor) { func (self *ChainManager) SetProcessor(proc types.BlockProcessor) {

@ -72,19 +72,17 @@ type TxPool struct {
subscribers []chan TxMsg subscribers []chan TxMsg
broadcaster types.Broadcaster
chainManager *ChainManager chainManager *ChainManager
eventMux *event.TypeMux eventMux *event.TypeMux
} }
func NewTxPool(chainManager *ChainManager, broadcaster types.Broadcaster, eventMux *event.TypeMux) *TxPool { func NewTxPool(chainManager *ChainManager, eventMux *event.TypeMux) *TxPool {
return &TxPool{ return &TxPool{
pool: list.New(), pool: list.New(),
queueChan: make(chan *types.Transaction, txPoolQueueSize), queueChan: make(chan *types.Transaction, txPoolQueueSize),
quit: make(chan bool), quit: make(chan bool),
chainManager: chainManager, chainManager: chainManager,
eventMux: eventMux, eventMux: eventMux,
broadcaster: broadcaster,
} }
} }
@ -96,7 +94,7 @@ func (pool *TxPool) addTransaction(tx *types.Transaction) {
pool.pool.PushBack(tx) pool.pool.PushBack(tx)
// Broadcast the transaction to the rest of the peers // Broadcast the transaction to the rest of the peers
pool.Ethereum.EventMux().Post(TxPreEvent{tx}) pool.eventMux.Post(TxPreEvent{tx})
} }
func (pool *TxPool) ValidateTransaction(tx *types.Transaction) error { func (pool *TxPool) ValidateTransaction(tx *types.Transaction) error {

@ -4,13 +4,8 @@ import (
"math/big" "math/big"
"github.com/ethereum/go-ethereum/state" "github.com/ethereum/go-ethereum/state"
"github.com/ethereum/go-ethereum/wire"
) )
type BlockProcessor interface { type BlockProcessor interface {
Process(*Block) (*big.Int, state.Messages, error) Process(*Block) (*big.Int, state.Messages, error)
} }
type Broadcaster interface {
Broadcast(wire.MsgType, []interface{})
}

@ -69,9 +69,9 @@ func New(db ethutil.Database, identity p2p.ClientIdentity, keyManager *crypto.Ke
eventMux: &event.TypeMux{}, eventMux: &event.TypeMux{},
} }
eth.txPool = core.NewTxPool(eth)
eth.chainManager = core.NewChainManager(eth.EventMux()) eth.chainManager = core.NewChainManager(eth.EventMux())
eth.blockManager = core.NewBlockManager(eth) eth.txPool = core.NewTxPool(eth.chainManager, eth.EventMux())
eth.blockManager = core.NewBlockManager(eth.txPool, eth.chainManager, eth.EventMux())
eth.chainManager.SetProcessor(eth.blockManager) eth.chainManager.SetProcessor(eth.blockManager)
eth.whisper = whisper.New() eth.whisper = whisper.New()

Loading…
Cancel
Save