core: retry block now also parellise nonce checks
This commit is contained in:
		@@ -151,11 +151,17 @@ func (sm *BlockProcessor) RetryProcess(block *types.Block) (logs state.Logs, err
 | 
				
			|||||||
		return nil, ParentError(header.ParentHash)
 | 
							return nil, ParentError(header.ParentHash)
 | 
				
			||||||
	}
 | 
						}
 | 
				
			||||||
	parent := sm.bc.GetBlock(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 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
 | 
					// Process block will attempt to process the given block's transactions and applies them
 | 
				
			||||||
 
 | 
				
			|||||||
		Reference in New Issue
	
	Block a user