Removed old tx pool notification system. Fixes #19

This commit is contained in:
obscuren 2014-05-15 14:05:15 +02:00
parent 2734fc4079
commit 7bf2ae0b11
4 changed files with 9 additions and 20 deletions

View File

@ -260,7 +260,7 @@ func AddTestNetFunds(block *Block) {
"e6716f9544a56c530d868e4bfbacb172315bdead", // Jeffrey "e6716f9544a56c530d868e4bfbacb172315bdead", // Jeffrey
"1e12515ce3e0f817a4ddef9ca55788a1d66bd2df", // Vit "1e12515ce3e0f817a4ddef9ca55788a1d66bd2df", // Vit
"1a26338f0d905e295fccb71fa9ea849ffa12aaf4", // Alex "1a26338f0d905e295fccb71fa9ea849ffa12aaf4", // Alex
"2ef47100e0787b915105fd5e3f4ff6752079d5cb", // Maran //"2ef47100e0787b915105fd5e3f4ff6752079d5cb", // Maran
} { } {
//log.Println("2^200 Wei to", addr) //log.Println("2^200 Wei to", addr)
codedAddr := ethutil.FromHex(addr) codedAddr := ethutil.FromHex(addr)
@ -268,6 +268,7 @@ func AddTestNetFunds(block *Block) {
account.Amount = ethutil.BigPow(2, 200) account.Amount = ethutil.BigPow(2, 200)
block.state.UpdateStateObject(account) block.state.UpdateStateObject(account)
} }
log.Printf("%x\n", block.RlpEncode())
} }
func (bc *BlockChain) setLastBlock() { func (bc *BlockChain) setLastBlock() {

View File

@ -133,7 +133,8 @@ func (pool *TxPool) ProcessTransaction(tx *Transaction, block *Block, toContract
log.Printf("[TXPL] Processed Tx %x\n", tx.Hash()) log.Printf("[TXPL] Processed Tx %x\n", tx.Hash())
pool.notifySubscribers(TxPost, tx) // Notify all subscribers
pool.Ethereum.Reactor().Post("newTx:post", tx)
return return
} }
@ -188,10 +189,7 @@ out:
pool.addTransaction(tx) pool.addTransaction(tx)
// Notify the subscribers // Notify the subscribers
pool.Ethereum.Reactor().Post("newTx", tx) pool.Ethereum.Reactor().Post("newTx:pre", tx)
// Notify the subscribers
pool.notifySubscribers(TxPre, tx)
} }
case <-pool.quit: case <-pool.quit:
break out break out
@ -252,14 +250,3 @@ func (pool *TxPool) Stop() {
log.Println("[TXP] Stopped") log.Println("[TXP] Stopped")
} }
func (pool *TxPool) Subscribe(channel chan TxMsg) {
pool.subscribers = append(pool.subscribers, channel)
}
func (pool *TxPool) notifySubscribers(ty TxMsgTy, tx *Transaction) {
msg := TxMsg{Type: ty, Tx: tx}
for _, subscriber := range pool.subscribers {
subscriber <- msg
}
}

View File

@ -26,7 +26,7 @@ func NewDefaultMiner(coinbase []byte, ethereum ethchain.EthManager) Miner {
quitChan := make(chan ethutil.React, 1) // This is the channel that can exit the miner thread quitChan := make(chan ethutil.React, 1) // This is the channel that can exit the miner thread
ethereum.Reactor().Subscribe("newBlock", reactChan) ethereum.Reactor().Subscribe("newBlock", reactChan)
ethereum.Reactor().Subscribe("newTx", reactChan) ethereum.Reactor().Subscribe("newTx:post", reactChan)
// We need the quit chan to be a Reactor event. // We need the quit chan to be a Reactor event.
// The POW search method is actually blocking and if we don't // The POW search method is actually blocking and if we don't
@ -34,7 +34,7 @@ func NewDefaultMiner(coinbase []byte, ethereum ethchain.EthManager) Miner {
// The miner overseer will never get the reactor events themselves // The miner overseer will never get the reactor events themselves
// Only after the miner will find the sha // Only after the miner will find the sha
ethereum.Reactor().Subscribe("newBlock", quitChan) ethereum.Reactor().Subscribe("newBlock", quitChan)
ethereum.Reactor().Subscribe("newTx", quitChan) ethereum.Reactor().Subscribe("newTx:post", quitChan)
miner := Miner{ miner := Miner{
pow: &ethchain.EasyPow{}, pow: &ethchain.EasyPow{},

View File

@ -46,6 +46,7 @@ func (e *ReactorEvent) Remove(ch chan React) {
// Basic reactor resource // Basic reactor resource
type React struct { type React struct {
Resource interface{} Resource interface{}
Event string
} }
// The reactor basic engine. Acts as bridge // The reactor basic engine. Acts as bridge
@ -81,6 +82,6 @@ func (reactor *ReactorEngine) Unsubscribe(event string, ch chan React) {
func (reactor *ReactorEngine) Post(event string, resource interface{}) { func (reactor *ReactorEngine) Post(event string, resource interface{}) {
ev := reactor.patterns[event] ev := reactor.patterns[event]
if ev != nil { if ev != nil {
ev.Post(React{Resource: resource}) ev.Post(React{Resource: resource, Event: event})
} }
} }