From 72d065d49102dd07c929d1e147186604c5e4ab05 Mon Sep 17 00:00:00 2001 From: obscuren Date: Mon, 20 Apr 2015 16:02:50 +0200 Subject: core: force block process & fixed chain manager test --- core/block_processor.go | 14 ++++++++++++++ 1 file changed, 14 insertions(+) (limited to 'core/block_processor.go') diff --git a/core/block_processor.go b/core/block_processor.go index b624037a5..3030af27d 100644 --- a/core/block_processor.go +++ b/core/block_processor.go @@ -149,6 +149,20 @@ func (self *BlockProcessor) ApplyTransactions(coinbase *state.StateObject, state return receipts, err } +func (sm *BlockProcessor) RetryProcess(block *types.Block) (logs state.Logs, err error) { + // Processing a blocks may never happen simultaneously + sm.mutex.Lock() + defer sm.mutex.Unlock() + + header := block.Header() + if !sm.bc.HasBlock(header.ParentHash) { + return nil, ParentError(header.ParentHash) + } + parent := sm.bc.GetBlock(header.ParentHash) + + return sm.processWithParent(block, parent) +} + // Process block will attempt to process the given block's transactions and applies them // on top of the block's parent state (given it exists) and will return wether it was // successful or not. -- cgit v1.2.3