package test
import (
- "github.com/vapor/mining/tensority"
"github.com/vapor/protocol"
"github.com/vapor/protocol/bc"
"github.com/vapor/protocol/bc/types"
}
preBlockHeader := chain.BestBlockHeader()
- preBlockHash := preBlockHeader.Hash()
- nextBits, err := chain.CalcNextBits(&preBlockHash)
- if err != nil {
- return nil, err
- }
-
b := &types.Block{
BlockHeader: types.BlockHeader{
Version: 1,
PreviousBlockHash: preBlockHeader.Hash(),
Timestamp: preBlockHeader.Timestamp + 1,
BlockCommitment: types.BlockCommitment{},
- Bits: nextBits,
},
Transactions: []*types.Tx{nil},
}
if err != nil {
return err
}
- if err := SolveAndUpdate(chain, block); err != nil {
+ if _, err := chain.ProcessBlock(block); err != nil {
return err
}
}
return nil
}
-
-// SolveAndUpdate solve difficulty and update chain status
-func SolveAndUpdate(chain *protocol.Chain, block *types.Block) error {
- seed, err := chain.CalcNextSeed(&block.PreviousBlockHash)
- if err != nil {
- return err
- }
- Solve(seed, block)
- _, err = chain.ProcessBlock(block)
- return err
-}
-
-// Solve simulate solve difficulty by add result to cache
-func Solve(seed *bc.Hash, block *types.Block) {
- hash := block.BlockHeader.Hash()
- tensority.AIHash.AddCache(&hash, seed, &bc.Hash{})
-}