diff options
author | zelig <viktor.tron@gmail.com> | 2015-03-03 16:44:41 +0800 |
---|---|---|
committer | zelig <viktor.tron@gmail.com> | 2015-03-03 16:44:41 +0800 |
commit | 6c2856df2335dec946a5ebc14a4438b261e0c881 (patch) | |
tree | 78c8f29f0bfa9f1ffa480c0858398be2f2e57635 /core | |
parent | fc47f0f27b4b672c84e8de230a5a3c5e5519f3aa (diff) | |
download | dexon-6c2856df2335dec946a5ebc14a4438b261e0c881.tar.gz dexon-6c2856df2335dec946a5ebc14a4438b261e0c881.tar.zst dexon-6c2856df2335dec946a5ebc14a4438b261e0c881.zip |
add eth.chain.new_head log to core/chain_manager
Diffstat (limited to 'core')
-rw-r--r-- | core/chain_manager.go | 15 |
1 files changed, 12 insertions, 3 deletions
diff --git a/core/chain_manager.go b/core/chain_manager.go index 959bfd398..71d36d57d 100644 --- a/core/chain_manager.go +++ b/core/chain_manager.go @@ -14,7 +14,10 @@ import ( "github.com/ethereum/go-ethereum/state" ) -var chainlogger = logger.NewLogger("CHAIN") +var ( + chainlogger = logger.NewLogger("CHAIN") + jsonlogger = logger.NewJsonLogger() +) type ChainEvent struct { Block *types.Block @@ -122,7 +125,7 @@ func (self *ChainManager) Status() (td *big.Int, currentBlock []byte, genesisBlo self.mu.RLock() defer self.mu.RUnlock() - return self.td, self.currentBlock.Hash(), self.Genesis().Hash() + return self.td, self.currentBlock.Hash(), self.genesisBlock.Hash() } func (self *ChainManager) SetProcessor(proc types.BlockProcessor) { @@ -395,11 +398,11 @@ func (self *ChainManager) InsertChain(chain types.Blocks) error { var canonical, split bool self.mu.Lock() + cblock := self.currentBlock { // Write block to database. Eventually we'll have to improve on this and throw away blocks that are // not in the canonical chain. self.write(block) - cblock := self.currentBlock // Compare the TD of the last known block in the canonical chain to make sure it's greater. // At this point it's possible that a different chain (fork) becomes the new canonical chain. if td.Cmp(self.td) > 0 { @@ -417,6 +420,12 @@ func (self *ChainManager) InsertChain(chain types.Blocks) error { self.mu.Unlock() if canonical { + jsonlogger.LogJson(&logger.EthChainNewHead{ + BlockHash: ethutil.Bytes2Hex(block.Hash()), + BlockNumber: block.Number(), + ChainHeadHash: ethutil.Bytes2Hex(cblock.Hash()), + BlockPrevHash: ethutil.Bytes2Hex(block.ParentHash()), + }) self.setTransState(state.New(block.Root(), self.db)) self.eventMux.Post(ChainEvent{block, td}) } |