func (h *Header) HashNoNonce() common.Hash {
	return rlpHash([]interface{}{
		h.ParentHash,
		h.UncleHash,
		h.Coinbase,
		h.Root,
		h.TxHash,
		h.ReceiptHash,
		h.Bloom,
		h.Difficulty,
		h.Number,
		h.GasLimit,
		h.GasUsed,
		h.Time,
		h.Extra,
	})
}
HashNoNonce returns the hash which is used as input for the proof-of-work search.
package types
import (
	"encoding/binary"
	"encoding/json"
	"errors"
	"fmt"
	"io"
	"math/big"
	"sort"
	"sync/atomic"
	"time"
	"github.com/Baptist-Publication/chorus-module/lib/eth/common"
	"github.com/Baptist-Publication/chorus-module/lib/eth/common/hexutil"
	"github.com/Baptist-Publication/chorus-module/lib/eth/crypto/sha3"
	"github.com/Baptist-Publication/chorus-module/lib/eth/rlp"
)
var (
	EmptyRootHash  = DeriveSha(Transactions{})
	EmptyUncleHash = CalcUncleHash(nil)
)
var (
	errMissingHeaderMixDigest = errors.New("missing mixHash in JSON block header")
	errMissingHeaderFields    = errors.New("missing required JSON block header fields")
	errBadNonceSize           = errors.New("invalid block nonce size, want 8 bytes")
)
type BlockNonce [8]byte
func EncodeNonce(i uint64) BlockNonce {
	var n BlockNonce
	binary.BigEndian.PutUint64(n[:], i)
	return n
}
func (n BlockNonce) Uint64() uint64 {
	return binary.BigEndian.Uint64(n[:])
}
func (n BlockNonce) MarshalJSON() ([]byte, error) {
	return hexutil.Bytes(n[:]).MarshalJSON()
}
func (n *BlockNonce) UnmarshalJSON(input []byte) error {
	return hexutil.UnmarshalJSON("BlockNonce", input, n[:])
}
type Header struct {
	ParentHash  common.Hash     
	UncleHash   common.Hash     
	Coinbase    common.Address  
	Root        common.Hash     
	TxHash      common.Hash     
	ReceiptHash common.Hash     
	Bloom       Bloom           
	Difficulty  *big.Int        
	Number      *big.Int        
	GasLimit    *big.Int        
	GasUsed     *big.Int        
	Time        *big.Int        
	Extra       []byte          
	MixDigest   common.Hash     
	Nonce       BlockNonce
}
type jsonHeader struct {
	ParentHash  *common.Hash    `json:"parentHash"`
	UncleHash   *common.Hash    `json:"sha3Uncles"`
	Coinbase    *common.Address `json:"miner"`
	Root        *common.Hash    `json:"stateRoot"`
	TxHash      *common.Hash    `json:"transactionsRoot"`
	ReceiptHash *common.Hash    `json:"receiptsRoot"`
	Bloom       *Bloom          `json:"logsBloom"`
	Difficulty  *hexutil.Big    `json:"difficulty"`
	Number      *hexutil.Big    `json:"number"`
	GasLimit    *hexutil.Big    `json:"gasLimit"`
	GasUsed     *hexutil.Big    `json:"gasUsed"`
	Time        *hexutil.Big    `json:"timestamp"`
	Extra       *hexutil.Bytes  `json:"extraData"`
	MixDigest   *common.Hash    `json:"mixHash"`
	Nonce       *BlockNonce     `json:"nonce"`
}
func (h *Header) Hash() common.Hash {
	return rlpHash(h)
}