Merge branch 'master' of https://github.com/tomochain/tomochain into genesis

This commit is contained in:
DinhLN 2018-11-06 10:01:15 +07:00
commit 6fa126fca9
3 changed files with 21 additions and 21 deletions

View file

@ -669,8 +669,8 @@ func (f *Fetcher) insert(peer string, block *types.Block) {
go f.broadcastBlock(block, true)
return
}
block = newBlock
propBroadcastOutTimer.UpdateSince(block.ReceivedAt)
f.enqueue(peer,newBlock)
return
default:
// Something went very wrong, drop the peer
log.Debug("Propagated block verification failed", "peer", peer, "number", block.Number(), "hash", hash, "err", err)
@ -693,7 +693,6 @@ func (f *Fetcher) insert(peer string, block *types.Block) {
// If import succeeded, broadcast the block
propAnnounceOutTimer.UpdateSince(block.ReceivedAt)
go f.broadcastBlock(block, true)
go f.broadcastBlock(block, false)
}()

View file

@ -877,6 +877,7 @@ func (s *PublicBlockChainAPI) rpcOutputBlock(b *types.Block, inclTx bool, fullTx
if signer == masternode {
countFinality++
filterSigners = append(filterSigners, masternode)
break
}
}
}

View file

@ -337,6 +337,24 @@ func (self *worker) wait() {
if stat == core.CanonStatTy {
events = append(events, core.ChainHeadEvent{Block: block})
}
if work.config.Posv != nil {
// epoch block
if (block.NumberU64() % work.config.Posv.Epoch) == 0 {
core.CheckpointCh <- 1
}
// prepare set of masternodes for the next epoch
if (block.NumberU64() % work.config.Posv.Epoch) == (work.config.Posv.Epoch - work.config.Posv.Gap) {
err := self.chain.UpdateM1()
if err != nil {
if err == core.ErrNotPoSV {
log.Error("Stopping node", "err", err)
os.Exit(1)
} else {
log.Error("Error when update masternodes set. Keep the current masternodes set for the next epoch.", "err", err)
}
}
}
}
self.chain.PostChainEvents(events, logs)
// Insert the block into the set of pending ones to wait for confirmations
@ -590,24 +608,6 @@ func (self *worker) commitNewWork() {
log.Info("Commit new mining work", "number", work.Block.Number(), "txs", work.tcount, "special txs", len(specialTxs), "uncles", len(uncles), "elapsed", common.PrettyDuration(time.Since(tstart)))
self.unconfirmed.Shift(work.Block.NumberU64() - 1)
}
if work.config.Posv != nil {
// epoch block
if (work.Block.NumberU64() % work.config.Posv.Epoch) == 0 {
core.CheckpointCh <- 1
}
// prepare set of masternodes for the next epoch
if (work.Block.NumberU64() % work.config.Posv.Epoch) == (work.config.Posv.Epoch - work.config.Posv.Gap) {
err := self.chain.UpdateM1()
if err != nil {
if err == core.ErrNotPoSV {
log.Error("Stopping node", "err", err)
os.Exit(1)
} else {
log.Error("Error when update masternodes set. Keep the current masternodes set for the next epoch.", "err", err)
}
}
}
}
self.push(work)
}