Use uint64 on ts in chain_manager, block_processor
This commit is contained in:
		@@ -386,7 +386,7 @@ func ValidateHeader(pow pow.PoW, block *types.Header, parent *types.Block, check
 | 
			
		||||
		return BlockEqualTSErr
 | 
			
		||||
	}
 | 
			
		||||
 | 
			
		||||
	expd := CalcDifficulty(int64(block.Time), int64(parent.Time()), parent.Difficulty())
 | 
			
		||||
	expd := CalcDifficulty(block.Time, parent.Time(), parent.Difficulty())
 | 
			
		||||
	if expd.Cmp(block.Difficulty) != 0 {
 | 
			
		||||
		return fmt.Errorf("Difficulty check failed for block %v, %v", block.Difficulty, expd)
 | 
			
		||||
	}
 | 
			
		||||
 
 | 
			
		||||
@@ -171,7 +171,7 @@ func makeHeader(parent *types.Block, state *state.StateDB) *types.Header {
 | 
			
		||||
		Root:       state.Root(),
 | 
			
		||||
		ParentHash: parent.Hash(),
 | 
			
		||||
		Coinbase:   parent.Coinbase(),
 | 
			
		||||
		Difficulty: CalcDifficulty(int64(time), int64(parent.Time()), parent.Difficulty()),
 | 
			
		||||
		Difficulty: CalcDifficulty(time, parent.Time(), parent.Difficulty()),
 | 
			
		||||
		GasLimit:   CalcGasLimit(parent),
 | 
			
		||||
		GasUsed:    new(big.Int),
 | 
			
		||||
		Number:     new(big.Int).Add(parent.Number(), common.Big1),
 | 
			
		||||
 
 | 
			
		||||
@@ -611,7 +611,7 @@ func (self *ChainManager) InsertChain(chain types.Blocks) (int, error) {
 | 
			
		||||
				// Allow up to MaxFuture second in the future blocks. If this limit
 | 
			
		||||
				// is exceeded the chain is discarded and processed at a later time
 | 
			
		||||
				// if given.
 | 
			
		||||
				if max := time.Now().Unix() + maxTimeFutureBlocks; int64(block.Time()) > max {
 | 
			
		||||
				if max := uint64(time.Now().Unix()) + maxTimeFutureBlocks; block.Time() > max {
 | 
			
		||||
					return i, fmt.Errorf("%v: BlockFutureErr, %v > %v", BlockFutureErr, block.Time(), max)
 | 
			
		||||
				}
 | 
			
		||||
 | 
			
		||||
 
 | 
			
		||||
@@ -31,10 +31,16 @@ import (
 | 
			
		||||
// CalcDifficulty is the difficulty adjustment algorithm. It returns
 | 
			
		||||
// the difficulty that a new block b should have when created at time
 | 
			
		||||
// given the parent block's time and difficulty.
 | 
			
		||||
func CalcDifficulty(time int64, parentTime int64, parentDiff *big.Int) *big.Int {
 | 
			
		||||
func CalcDifficulty(time, parentTime uint64, parentDiff *big.Int) *big.Int {
 | 
			
		||||
	diff := new(big.Int)
 | 
			
		||||
	adjust := new(big.Int).Div(parentDiff, params.DifficultyBoundDivisor)
 | 
			
		||||
	if big.NewInt(time-parentTime).Cmp(params.DurationLimit) < 0 {
 | 
			
		||||
	bigTime := new(big.Int)
 | 
			
		||||
	bigParentTime := new(big.Int)
 | 
			
		||||
 | 
			
		||||
	bigTime.SetUint64(time)
 | 
			
		||||
	bigParentTime.SetUint64(parentTime)
 | 
			
		||||
 | 
			
		||||
	if bigTime.Sub(bigTime, bigParentTime).Cmp(params.DurationLimit) < 0 {
 | 
			
		||||
		diff.Add(parentDiff, adjust)
 | 
			
		||||
	} else {
 | 
			
		||||
		diff.Sub(parentDiff, adjust)
 | 
			
		||||
 
 | 
			
		||||
@@ -427,7 +427,7 @@ func (self *worker) commitNewWork() {
 | 
			
		||||
	header := &types.Header{
 | 
			
		||||
		ParentHash: parent.Hash(),
 | 
			
		||||
		Number:     num.Add(num, common.Big1),
 | 
			
		||||
		Difficulty: core.CalcDifficulty(int64(tstamp), int64(parent.Time()), parent.Difficulty()),
 | 
			
		||||
		Difficulty: core.CalcDifficulty(uint64(tstamp), parent.Time(), parent.Difficulty()),
 | 
			
		||||
		GasLimit:   core.CalcGasLimit(parent),
 | 
			
		||||
		GasUsed:    new(big.Int),
 | 
			
		||||
		Coinbase:   self.coinbase,
 | 
			
		||||
 
 | 
			
		||||
		Reference in New Issue
	
	Block a user