Merge pull request #3884 from ethcore/fix-diff-adj
Fix difficulty adjustment.
This commit is contained in:
		
						commit
						e755c09446
					
				@ -178,15 +178,15 @@ impl Engine for Ethash {
 | 
			
		||||
		let gas_limit = {
 | 
			
		||||
			let gas_limit = parent.gas_limit().clone();
 | 
			
		||||
			let bound_divisor = self.ethash_params.gas_limit_bound_divisor;
 | 
			
		||||
			let lower_limit = gas_limit - gas_limit / bound_divisor + 1.into();
 | 
			
		||||
			let upper_limit = gas_limit + gas_limit / bound_divisor - 1.into();
 | 
			
		||||
			if gas_limit < gas_floor_target {
 | 
			
		||||
				min(gas_floor_target, gas_limit + gas_limit / bound_divisor - 1.into())
 | 
			
		||||
				min(gas_floor_target, upper_limit)
 | 
			
		||||
			} else if gas_limit > gas_ceil_target {
 | 
			
		||||
				max(gas_ceil_target, gas_limit - gas_limit / bound_divisor + 1.into())
 | 
			
		||||
				max(gas_ceil_target, lower_limit)
 | 
			
		||||
			} else {
 | 
			
		||||
				min(gas_ceil_target,
 | 
			
		||||
					max(gas_floor_target,
 | 
			
		||||
						gas_limit - gas_limit / bound_divisor + 1.into() +
 | 
			
		||||
							(header.gas_used().clone() * 6.into() / 5.into()) / bound_divisor))
 | 
			
		||||
				max(gas_floor_target, min(min(gas_ceil_target, upper_limit), 
 | 
			
		||||
					lower_limit + (header.gas_used().clone() * 6.into() / 5.into()) / bound_divisor))
 | 
			
		||||
			}
 | 
			
		||||
		};
 | 
			
		||||
		header.set_difficulty(difficulty);
 | 
			
		||||
 | 
			
		||||
		Loading…
	
		Reference in New Issue
	
	Block a user