miner: broadcast block before insertion/validation

pull/1347/head
Jeffrey Wilcke 9 years ago
parent 5e7db8f5cd
commit 059a1e9e4e
  1. 7
      miner/worker.go

@ -239,12 +239,16 @@ func (self *worker) wait() {
continue
}
// broadcast before waiting for validation
go self.mux.Post(core.NewMinedBlockEvent{block})
// insert mined block in to our own chain
if _, err := self.chain.InsertChain(types.Blocks{block}); err == nil {
// remove uncles we've previously inserted
for _, uncle := range block.Uncles() {
delete(self.possibleUncles, uncle.Hash())
}
self.mux.Post(core.NewMinedBlockEvent{block})
// check staleness and display confirmation
var stale, confirm string
canonBlock := self.chain.GetBlockByNumber(block.NumberU64())
if canonBlock != nil && canonBlock.Hash() != block.Hash() {
@ -256,6 +260,7 @@ func (self *worker) wait() {
glog.V(logger.Info).Infof("🔨 Mined %sblock (#%v / %x). %s", stale, block.Number(), block.Hash().Bytes()[:4], confirm)
// XXX remove old structured json logging
jsonlogger.LogJson(&logger.EthMinerNewBlock{
BlockHash: block.Hash().Hex(),
BlockNumber: block.Number(),

Loading…
Cancel
Save