Implement eth.miner.new_block event
This commit is contained in:
		
							parent
							
								
									ad3a21f260
								
							
						
					
					
						commit
						60a2704b04
					
				| @ -1,6 +1,7 @@ | ||||
| package logger | ||||
| 
 | ||||
| import ( | ||||
| 	"math/big" | ||||
| 	"time" | ||||
| ) | ||||
| 
 | ||||
| @ -53,10 +54,10 @@ func (l *P2PDisconnected) EventName() string { | ||||
| } | ||||
| 
 | ||||
| type EthMinerNewBlock struct { | ||||
| 	BlockHash     string `json:"block_hash"` | ||||
| 	BlockNumber   int    `json:"block_number"` | ||||
| 	ChainHeadHash string `json:"chain_head_hash"` | ||||
| 	BlockPrevHash string `json:"block_prev_hash"` | ||||
| 	BlockHash     string   `json:"block_hash"` | ||||
| 	BlockNumber   *big.Int `json:"block_number"` | ||||
| 	ChainHeadHash string   `json:"chain_head_hash"` | ||||
| 	BlockPrevHash string   `json:"block_prev_hash"` | ||||
| 	LogEvent | ||||
| } | ||||
| 
 | ||||
|  | ||||
| @ -10,11 +10,14 @@ import ( | ||||
| 	"github.com/ethereum/go-ethereum/core/types" | ||||
| 	"github.com/ethereum/go-ethereum/ethutil" | ||||
| 	"github.com/ethereum/go-ethereum/event" | ||||
| 	"github.com/ethereum/go-ethereum/logger" | ||||
| 	"github.com/ethereum/go-ethereum/pow" | ||||
| 	"github.com/ethereum/go-ethereum/state" | ||||
| 	"gopkg.in/fatih/set.v0" | ||||
| ) | ||||
| 
 | ||||
| var jsonlogger = logger.NewJsonLogger() | ||||
| 
 | ||||
| type environment struct { | ||||
| 	totalUsedGas *big.Int | ||||
| 	state        *state.StateDB | ||||
| @ -141,7 +144,12 @@ func (self *worker) wait() { | ||||
| 			block := self.current.block | ||||
| 			if block.Number().Uint64() == work.Number && block.Nonce() == nil { | ||||
| 				self.current.block.Header().Nonce = work.Nonce | ||||
| 
 | ||||
| 				jsonlogger.LogJson(&logger.EthMinerNewBlock{ | ||||
| 					BlockHash:     ethutil.Bytes2Hex(block.Hash()), | ||||
| 					BlockNumber:   block.Number(), | ||||
| 					ChainHeadHash: ethutil.Bytes2Hex(block.ParentHeaderHash), | ||||
| 					BlockPrevHash: ethutil.Bytes2Hex(block.ParentHeaderHash), | ||||
| 				}) | ||||
| 				if err := self.chain.InsertChain(types.Blocks{self.current.block}); err == nil { | ||||
| 					self.mux.Post(core.NewMinedBlockEvent{self.current.block}) | ||||
| 				} else { | ||||
|  | ||||
		Loading…
	
		Reference in New Issue
	
	Block a user