OSDN Git Service

init delete the pow related (#55)
[bytom/vapor.git] / protocol / state / blockindex.go
index df04fa7..3262d8d 100644 (file)
@@ -2,13 +2,11 @@ package state
 
 import (
        "errors"
-       "math/big"
        "sort"
        "sync"
 
        "github.com/vapor/common"
        "github.com/vapor/consensus"
-       "github.com/vapor/consensus/difficulty"
        "github.com/vapor/protocol/bc"
        "github.com/vapor/protocol/bc/types"
 )
@@ -20,16 +18,12 @@ const approxNodesPerDay = 24 * 24
 // BlockNode represents a block within the block chain and is primarily used to
 // aid in selecting the best chain to be the main chain.
 type BlockNode struct {
-       Parent  *BlockNode // parent is the parent block for this node.
-       Hash    bc.Hash    // hash of the block.
-       Seed    *bc.Hash   // seed hash of the block
-       WorkSum *big.Int   // total amount of work in the chain up to
+       Parent *BlockNode // parent is the parent block for this node.
+       Hash   bc.Hash    // hash of the block.
 
        Version                uint64
        Height                 uint64
        Timestamp              uint64
-       Nonce                  uint64
-       Bits                   uint64
        TransactionsMerkleRoot bc.Hash
        TransactionStatusHash  bc.Hash
 }
@@ -42,22 +36,12 @@ func NewBlockNode(bh *types.BlockHeader, parent *BlockNode) (*BlockNode, error)
        node := &BlockNode{
                Parent:                 parent,
                Hash:                   bh.Hash(),
-               WorkSum:                difficulty.CalcWork(bh.Bits),
                Version:                bh.Version,
                Height:                 bh.Height,
                Timestamp:              bh.Timestamp,
-               Nonce:                  bh.Nonce,
-               Bits:                   bh.Bits,
                TransactionsMerkleRoot: bh.TransactionsMerkleRoot,
                TransactionStatusHash:  bh.TransactionStatusHash,
        }
-
-       if bh.Height == 0 {
-               node.Seed = consensus.InitialSeed
-       } else {
-               node.Seed = parent.CalcNextSeed()
-               node.WorkSum = node.WorkSum.Add(parent.WorkSum, node.WorkSum)
-       }
        return node, nil
 }
 
@@ -72,8 +56,6 @@ func (node *BlockNode) BlockHeader() *types.BlockHeader {
                Height:            node.Height,
                PreviousBlockHash: previousBlockHash,
                Timestamp:         node.Timestamp,
-               Nonce:             node.Nonce,
-               Bits:              node.Bits,
                BlockCommitment: types.BlockCommitment{
                        TransactionsMerkleRoot: node.TransactionsMerkleRoot,
                        TransactionStatusHash:  node.TransactionStatusHash,
@@ -93,30 +75,6 @@ func (node *BlockNode) CalcPastMedianTime() uint64 {
        return timestamps[len(timestamps)/2]
 }
 
-// CalcNextBits calculate the bits for next block
-func (node *BlockNode) CalcNextBits() uint64 {
-       if node.Height%consensus.BlocksPerRetarget != 0 || node.Height == 0 {
-               return node.Bits
-       }
-
-       compareNode := node.Parent
-       for compareNode.Height%consensus.BlocksPerRetarget != 0 {
-               compareNode = compareNode.Parent
-       }
-       return difficulty.CalcNextRequiredDifficulty(node.BlockHeader(), compareNode.BlockHeader())
-}
-
-// CalcNextSeed calculate the seed for next block
-func (node *BlockNode) CalcNextSeed() *bc.Hash {
-       if node.Height == 0 {
-               return consensus.InitialSeed
-       }
-       if node.Height%consensus.SeedPerRetarget == 0 {
-               return &node.Hash
-       }
-       return node.Seed
-}
-
 // BlockIndex is the struct for help chain trace block chain as tree
 type BlockIndex struct {
        sync.RWMutex