Documentation ¶
Index ¶
- Variables
- func TestStorage(t *testing.T, m MockStorage)
- type Factory
- type Forks
- type KV
- type KeyValueStorage
- func (s *KeyValueStorage) Close() error
- func (s *KeyValueStorage) ReadBody(hash types.Hash) (*types.Body, error)
- func (s *KeyValueStorage) ReadCanonicalHash(n uint64) (types.Hash, bool)
- func (s *KeyValueStorage) ReadForks() ([]types.Hash, error)
- func (s *KeyValueStorage) ReadHeadHash() (types.Hash, bool)
- func (s *KeyValueStorage) ReadHeadNumber() (uint64, bool)
- func (s *KeyValueStorage) ReadHeader(hash types.Hash) (*types.Header, error)
- func (s *KeyValueStorage) ReadReceipts(hash types.Hash) ([]*types.Receipt, error)
- func (s *KeyValueStorage) ReadSnapshot(hash types.Hash) ([]byte, bool)
- func (s *KeyValueStorage) ReadTotalDifficulty(hash types.Hash) (*big.Int, bool)
- func (s *KeyValueStorage) ReadTxLookup(hash types.Hash) (types.Hash, bool)
- func (s *KeyValueStorage) WriteBody(hash types.Hash, body *types.Body) error
- func (s *KeyValueStorage) WriteCanonicalHash(n uint64, hash types.Hash) error
- func (s *KeyValueStorage) WriteCanonicalHeader(h *types.Header, diff *big.Int) error
- func (s *KeyValueStorage) WriteForks(forks []types.Hash) error
- func (s *KeyValueStorage) WriteHeadHash(h types.Hash) error
- func (s *KeyValueStorage) WriteHeadNumber(n uint64) error
- func (s *KeyValueStorage) WriteHeader(h *types.Header) error
- func (s *KeyValueStorage) WriteReceipts(hash types.Hash, receipts []*types.Receipt) error
- func (s *KeyValueStorage) WriteSnapshot(hash types.Hash, blob []byte) error
- func (s *KeyValueStorage) WriteTotalDifficulty(hash types.Hash, diff *big.Int) error
- func (s *KeyValueStorage) WriteTxLookup(hash types.Hash, blockHash types.Hash) error
- type MockStorage
- type Storage
Constants ¶
This section is empty.
Variables ¶
var ( // DIFFICULTY is the difficulty prefix DIFFICULTY = []byte("d") // HEADER is the header prefix HEADER = []byte("h") // HEAD is the chain head prefix HEAD = []byte("o") // FORK is the entry to store forks FORK = []byte("f") // CANONICAL is the prefix for the canonical chain numbers CANONICAL = []byte("c") // BODY is the prefix for bodies BODY = []byte("b") // RECEIPTS is the prefix for receipts RECEIPTS = []byte("r") // SNAPSHOTS is the prefix for snapshots SNAPSHOTS = []byte("s") // TX_LOOKUP_PREFIX is the prefix for transaction lookups TX_LOOKUP_PREFIX = []byte("l") )
Prefixes for the key-value store
var ( HASH = []byte("hash") NUMBER = []byte("number") EMPTY = []byte("empty") )
Sub-prefixes
var ErrNotFound = fmt.Errorf("not found")
Functions ¶
func TestStorage ¶
func TestStorage(t *testing.T, m MockStorage)
TestStorage tests a set of tests on a storage
Types ¶
type Forks ¶
func (*Forks) MarshalRLPTo ¶
MarshalRLPTo is a wrapper function for calling the type marshal implementation
func (*Forks) MarshalRLPWith ¶
MarshalRLPWith is the actual RLP marshal implementation for the type
func (*Forks) UnmarshalRLP ¶
UnmarshalRLP is a wrapper function for calling the type unmarshal implementation
type KV ¶
type KV interface { Close() error Set(p []byte, v []byte) error Get(p []byte) ([]byte, bool, error) }
KV is a key value storage interface.
KV = Key-Value
type KeyValueStorage ¶
type KeyValueStorage struct { Db KV // contains filtered or unexported fields }
KeyValueStorage is a generic storage for kv databases
func (*KeyValueStorage) Close ¶
func (s *KeyValueStorage) Close() error
Close closes the connection with the db
func (*KeyValueStorage) ReadCanonicalHash ¶
func (s *KeyValueStorage) ReadCanonicalHash(n uint64) (types.Hash, bool)
ReadCanonicalHash gets the hash from the number of the canonical chain
func (*KeyValueStorage) ReadForks ¶
func (s *KeyValueStorage) ReadForks() ([]types.Hash, error)
ReadForks read the current forks
func (*KeyValueStorage) ReadHeadHash ¶
func (s *KeyValueStorage) ReadHeadHash() (types.Hash, bool)
ReadHeadHash returns the hash of the head
func (*KeyValueStorage) ReadHeadNumber ¶
func (s *KeyValueStorage) ReadHeadNumber() (uint64, bool)
ReadHeadNumber returns the number of the head
func (*KeyValueStorage) ReadHeader ¶
ReadHeader reads the header
func (*KeyValueStorage) ReadReceipts ¶
ReadReceipts reads the receipts
func (*KeyValueStorage) ReadSnapshot ¶
func (s *KeyValueStorage) ReadSnapshot(hash types.Hash) ([]byte, bool)
ReadSnapshot reads the snapshot from the DB
func (*KeyValueStorage) ReadTotalDifficulty ¶
ReadTotalDifficulty reads the difficulty
func (*KeyValueStorage) ReadTxLookup ¶
ReadTxLookup reads the block hash using the transaction hash
func (*KeyValueStorage) WriteCanonicalHash ¶
func (s *KeyValueStorage) WriteCanonicalHash(n uint64, hash types.Hash) error
WriteCanonicalHash writes a hash for a number block in the canonical chain
func (*KeyValueStorage) WriteCanonicalHeader ¶
WriteCanonicalHeader implements the storage interface
func (*KeyValueStorage) WriteForks ¶
func (s *KeyValueStorage) WriteForks(forks []types.Hash) error
WriteForks writes the current forks
func (*KeyValueStorage) WriteHeadHash ¶
func (s *KeyValueStorage) WriteHeadHash(h types.Hash) error
WriteHeadHash writes the hash of the head
func (*KeyValueStorage) WriteHeadNumber ¶
func (s *KeyValueStorage) WriteHeadNumber(n uint64) error
WriteHeadNumber writes the number of the head
func (*KeyValueStorage) WriteHeader ¶
func (s *KeyValueStorage) WriteHeader(h *types.Header) error
WriteHeader writes the header
func (*KeyValueStorage) WriteReceipts ¶
WriteReceipts writes the receipts
func (*KeyValueStorage) WriteSnapshot ¶
func (s *KeyValueStorage) WriteSnapshot(hash types.Hash, blob []byte) error
WriteSnapshot writes the snapshot to the DB
func (*KeyValueStorage) WriteTotalDifficulty ¶
WriteTotalDifficulty writes the difficulty
func (*KeyValueStorage) WriteTxLookup ¶
WriteTxLookup maps the transaction hash to the block hash
type MockStorage ¶
type Storage ¶
type Storage interface { ReadCanonicalHash(n uint64) (types.Hash, bool) WriteCanonicalHash(n uint64, hash types.Hash) error ReadHeadHash() (types.Hash, bool) ReadHeadNumber() (uint64, bool) WriteHeadHash(h types.Hash) error WriteHeadNumber(uint64) error WriteForks(forks []types.Hash) error ReadForks() ([]types.Hash, error) WriteTotalDifficulty(hash types.Hash, diff *big.Int) error ReadTotalDifficulty(hash types.Hash) (*big.Int, bool) WriteHeader(h *types.Header) error ReadHeader(hash types.Hash) (*types.Header, error) WriteCanonicalHeader(h *types.Header, diff *big.Int) error WriteBody(hash types.Hash, body *types.Body) error ReadBody(hash types.Hash) (*types.Body, error) WriteSnapshot(hash types.Hash, blob []byte) error ReadSnapshot(hash types.Hash) ([]byte, bool) WriteReceipts(hash types.Hash, receipts []*types.Receipt) error ReadReceipts(hash types.Hash) ([]*types.Receipt, error) WriteTxLookup(hash types.Hash, blockHash types.Hash) error ReadTxLookup(hash types.Hash) (types.Hash, bool) Close() error }
Storage is a generic blockchain storage