|
|
@ -567,6 +567,7 @@ func (self *ChainManager) InsertChain(chain types.Blocks) (int, error) { |
|
|
|
go verifyNonces(self.pow, chain, nonceQuit, nonceDone) |
|
|
|
go verifyNonces(self.pow, chain, nonceQuit, nonceDone) |
|
|
|
defer close(nonceQuit) |
|
|
|
defer close(nonceQuit) |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
txcount := 0 |
|
|
|
for i, block := range chain { |
|
|
|
for i, block := range chain { |
|
|
|
bstart := time.Now() |
|
|
|
bstart := time.Now() |
|
|
|
// Wait for block i's nonce to be verified before processing
|
|
|
|
// Wait for block i's nonce to be verified before processing
|
|
|
@ -625,6 +626,8 @@ func (self *ChainManager) InsertChain(chain types.Blocks) (int, error) { |
|
|
|
return i, err |
|
|
|
return i, err |
|
|
|
} |
|
|
|
} |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
txcount += len(block.Transactions()) |
|
|
|
|
|
|
|
|
|
|
|
cblock := self.currentBlock |
|
|
|
cblock := self.currentBlock |
|
|
|
// Compare the TD of the last known block in the canonical chain to make sure it's greater.
|
|
|
|
// 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.
|
|
|
|
// At this point it's possible that a different chain (fork) becomes the new canonical chain.
|
|
|
@ -683,7 +686,7 @@ func (self *ChainManager) InsertChain(chain types.Blocks) (int, error) { |
|
|
|
if (stats.queued > 0 || stats.processed > 0 || stats.ignored > 0) && bool(glog.V(logger.Info)) { |
|
|
|
if (stats.queued > 0 || stats.processed > 0 || stats.ignored > 0) && bool(glog.V(logger.Info)) { |
|
|
|
tend := time.Since(tstart) |
|
|
|
tend := time.Since(tstart) |
|
|
|
start, end := chain[0], chain[len(chain)-1] |
|
|
|
start, end := chain[0], chain[len(chain)-1] |
|
|
|
glog.Infof("imported %d block(s) (%d queued %d ignored) in %v. #%v [%x / %x]\n", stats.processed, stats.queued, stats.ignored, tend, end.Number(), start.Hash().Bytes()[:4], end.Hash().Bytes()[:4]) |
|
|
|
glog.Infof("imported %d block(s) (%d queued %d ignored) including %d txs in %v. #%v [%x / %x]\n", stats.processed, stats.queued, stats.ignored, txcount, tend, end.Number(), start.Hash().Bytes()[:4], end.Hash().Bytes()[:4]) |
|
|
|
} |
|
|
|
} |
|
|
|
|
|
|
|
|
|
|
|
go self.eventMux.Post(queueEvent) |
|
|
|
go self.eventMux.Post(queueEvent) |
|
|
|