core, core/vm, crypto: fixes for homestead
* Removed some strange code that didn't apply state reverting properly * Refactored code setting from vm & state transition to the executioner * Updated tests
This commit is contained in:
		| @@ -117,8 +117,7 @@ func (v *BlockValidator) ValidateState(block, parent *types.Block, statedb *stat | ||||
| 	// For valid blocks this should always validate to true. | ||||
| 	rbloom := types.CreateBloom(receipts) | ||||
| 	if rbloom != header.Bloom { | ||||
| 		//fmt.Printf("FUNKY: ValidateState: block number: %v\n", block.Number()) | ||||
| 		return fmt.Errorf("unable to replicate block's bloom=%x", rbloom) | ||||
| 		return fmt.Errorf("unable to replicate block's bloom=%x vs calculated bloom=%x", header.Bloom, rbloom) | ||||
| 	} | ||||
| 	// Tre receipt Trie's root (R = (Tr [[H1, R1], ... [Hn, R1]])) | ||||
| 	receiptSha := types.DeriveSha(receipts) | ||||
| @@ -270,10 +269,6 @@ func calcDifficultyHomestead(time, parentTime uint64, parentNumber, parentDiff * | ||||
| 	bigTime := new(big.Int).SetUint64(time) | ||||
| 	bigParentTime := new(big.Int).SetUint64(parentTime) | ||||
|  | ||||
| 	// for the exponential factor | ||||
| 	periodCount := new(big.Int).Add(parentNumber, common.Big1) | ||||
| 	periodCount.Div(periodCount, ExpDiffPeriod) | ||||
|  | ||||
| 	// holds intermediate values to make the algo easier to read & audit | ||||
| 	x := new(big.Int) | ||||
| 	y := new(big.Int) | ||||
| @@ -298,6 +293,10 @@ func calcDifficultyHomestead(time, parentTime uint64, parentNumber, parentDiff * | ||||
| 		x = params.MinimumDifficulty | ||||
| 	} | ||||
|  | ||||
| 	// for the exponential factor | ||||
| 	periodCount := new(big.Int).Add(parentNumber, common.Big1) | ||||
| 	periodCount.Div(periodCount, ExpDiffPeriod) | ||||
|  | ||||
| 	// the exponential factor, commonly refered to as "the bomb" | ||||
| 	// diff = diff + 2^(periodCount - 2) | ||||
| 	if periodCount.Cmp(common.Big1) > 0 { | ||||
|   | ||||
		Reference in New Issue
	
	Block a user