func headerKey(number uint64, hash common.Hash) []byte {
	return append(append(headerPrefix, encodeBlockNumber(number)...), hash.Bytes()...)
}
headerKey = headerPrefix + num (uint64 big endian) + hash
package rawdb
import (
	"encoding/binary"
	"github.com/dappledger/AnnChain/eth/common"
	"github.com/dappledger/AnnChain/eth/metrics"
)
var (
	databaseVerisionKey = []byte("DatabaseVersion")
	headHeaderKey = []byte("LastHeader")
	headBlockKey = []byte("LastBlock")
	headFastBlockKey = []byte("LastFast")
	fastTrieProgressKey = []byte("TrieSync")
	headerPrefix       = []byte("h")  
	headerTDSuffix     = []byte("t")  
	headerHashSuffix   = []byte("n")  
	headerNumberPrefix = []byte("H")  
	blockBodyPrefix     = []byte("b")  
	blockReceiptsPrefix = []byte("r")  
	txLookupPrefix  = []byte("l")  
	bloomBitsPrefix = []byte("B")  
	preimagePrefix = []byte("secure-key-")       
	configPrefix   = []byte("ethereum-config-")  
	BloomBitsIndexPrefix = []byte("iB")  
	preimageCounter    = metrics.NewRegisteredCounter("db/preimage/total", nil)
	preimageHitCounter = metrics.NewRegisteredCounter("db/preimage/hits", nil)
)
type TxLookupEntry struct {
	BlockHash  common.Hash
	BlockIndex uint64
	Index      uint64
}
func encodeBlockNumber(number uint64) []byte {
	enc := make([]byte, 8)
	binary.BigEndian.PutUint64(enc, number)
	return enc
}