From 37111aa4bd215cfc8bcfb97cdc7e223649306196 Mon Sep 17 00:00:00 2001 From: obscuren Date: Thu, 11 Jun 2015 12:06:05 +0200 Subject: core: retry block now also parellise nonce checks --- core/block_processor.go | 10 ++++++++-- 1 file changed, 8 insertions(+), 2 deletions(-) diff --git a/core/block_processor.go b/core/block_processor.go index 190e72694..3ec3c585f 100644 --- a/core/block_processor.go +++ b/core/block_processor.go @@ -151,11 +151,17 @@ func (sm *BlockProcessor) RetryProcess(block *types.Block) (logs state.Logs, err return nil, ParentError(header.ParentHash) } parent := sm.bc.GetBlock(header.ParentHash) - if !sm.Pow.Verify(block) { + + // FIXME Change to full header validation. See #1225 + errch := make(chan bool) + go func() { errch <- sm.Pow.Verify(block) }() + + logs, err = sm.processWithParent(block, parent) + if !<-errch { return nil, ValidationError("Block's nonce is invalid (= %x)", block.Nonce) } - return sm.processWithParent(block, parent) + return logs, err } // Process block will attempt to process the given block's transactions and applies them -- cgit