chaindb

package
v1.0.0 Latest Latest
Warning

This package is not in the latest version of its module.

Go to latest
Published: Apr 12, 2019 License: LGPL-3.0 Imports: 7 Imported by: 0

Documentation

Index

Constants

This section is empty.

Variables

View Source
var (

	// Chain index prefixes (use `i` + single byte to avoid mixing data types).
	BloomBitsIndexPrefix = []byte("iB") // BloomBitsIndexPrefix is the data table of a chain indexer to track its progress

)

The fields below define the low level database schema prefixing.

Functions

This section is empty.

Types

type ChainDB

type ChainDB struct {
	// contains filtered or unexported fields
}

func NewChainDB

func NewChainDB(db ethdb.Database, decoder model.BlockDecoder) *ChainDB

func (*ChainDB) DB

func (chainDB *ChainDB) DB() ethdb.Database

func (*ChainDB) DeleteBlock

func (chainDB *ChainDB) DeleteBlock(hash common.Hash, number uint64)

func (*ChainDB) DeleteBlockHashByNumber

func (chainDB *ChainDB) DeleteBlockHashByNumber(number uint64)

func (*ChainDB) DeleteBody

func (chainDB *ChainDB) DeleteBody(hash common.Hash, number uint64)

func (*ChainDB) DeleteHeader

func (chainDB *ChainDB) DeleteHeader(hash common.Hash, number uint64)

func (*ChainDB) DeleteHeaderNumber

func (chainDB *ChainDB) DeleteHeaderNumber(hash common.Hash)

func (*ChainDB) DeleteTxLookupEntry

func (chainDB *ChainDB) DeleteTxLookupEntry(block model.AbstractBlock)

func (*ChainDB) GetBlock

func (chainDB *ChainDB) GetBlock(hash common.Hash, number uint64) model.AbstractBlock

func (*ChainDB) GetBlockHashByNumber

func (chainDB *ChainDB) GetBlockHashByNumber(number uint64) common.Hash

func (*ChainDB) GetBody

func (chainDB *ChainDB) GetBody(hash common.Hash, number uint64) model.AbstractBody

func (*ChainDB) GetBodyRLP

func (chainDB *ChainDB) GetBodyRLP(hash common.Hash, number uint64) rlp.RawValue

func (*ChainDB) GetHeadBlockHash

func (chainDB *ChainDB) GetHeadBlockHash() common.Hash

func (*ChainDB) GetHeadHeaderHash

func (chainDB *ChainDB) GetHeadHeaderHash() common.Hash

func (*ChainDB) GetHeader

func (chainDB *ChainDB) GetHeader(hash common.Hash, number uint64) model.AbstractHeader

func (*ChainDB) GetHeaderNumber

func (chainDB *ChainDB) GetHeaderNumber(hash common.Hash) *uint64

func (*ChainDB) GetHeaderRLP

func (chainDB *ChainDB) GetHeaderRLP(hash common.Hash, number uint64) rlp.RawValue

func (*ChainDB) GetTransaction

func (chainDB *ChainDB) GetTransaction(txHash common.Hash) (model.AbstractTransaction, common.Hash, uint64, uint64)

func (*ChainDB) GetTxLookupEntry

func (chainDB *ChainDB) GetTxLookupEntry(txHash common.Hash) (common.Hash, uint64, uint64)

func (*ChainDB) HasBody

func (chainDB *ChainDB) HasBody(hash common.Hash, number uint64) bool

func (*ChainDB) HasHeader

func (chainDB *ChainDB) HasHeader(hash common.Hash, number uint64) bool

func (*ChainDB) InsertBlock

func (chainDB *ChainDB) InsertBlock(block model.AbstractBlock) error

func (*ChainDB) SaveBlock

func (chainDB *ChainDB) SaveBlock(block model.AbstractBlock)

func (*ChainDB) SaveBlockHash

func (chainDB *ChainDB) SaveBlockHash(hash common.Hash, number uint64)

func (*ChainDB) SaveBody

func (chainDB *ChainDB) SaveBody(hash common.Hash, number uint64, body model.AbstractBody)

func (*ChainDB) SaveBodyRLP

func (chainDB *ChainDB) SaveBodyRLP(hash common.Hash, number uint64, rlp rlp.RawValue)

func (*ChainDB) SaveHeadBlockHash

func (chainDB *ChainDB) SaveHeadBlockHash(hash common.Hash)

func (*ChainDB) SaveHeadHeaderHash

func (chainDB *ChainDB) SaveHeadHeaderHash(hash common.Hash)

func (*ChainDB) SaveHeader

func (chainDB *ChainDB) SaveHeader(header model.AbstractHeader)

func (*ChainDB) SaveHeaderNumber

func (chainDB *ChainDB) SaveHeaderNumber(hash common.Hash, number uint64)

func (*ChainDB) SaveHeaderRLP

func (chainDB *ChainDB) SaveHeaderRLP(hash common.Hash, number uint64, rlp rlp.RawValue)

func (*ChainDB) SaveTxLookupEntries

func (chainDB *ChainDB) SaveTxLookupEntries(block model.AbstractBlock)

type Database

type Database interface {
	DB() ethdb.Database

	GetBlockHashByNumber(number uint64) common.Hash
	SaveBlockHash(hash common.Hash, number uint64)
	DeleteBlockHashByNumber(number uint64)

	GetHeaderNumber(hash common.Hash) *uint64
	SaveHeaderNumber(hash common.Hash, number uint64)
	DeleteHeaderNumber(hash common.Hash)

	GetHeadHeaderHash() common.Hash
	SaveHeadHeaderHash(hash common.Hash)
	GetHeadBlockHash() common.Hash
	SaveHeadBlockHash(hash common.Hash)

	GetHeaderRLP(hash common.Hash, number uint64) rlp.RawValue
	SaveHeaderRLP(hash common.Hash, number uint64, rlp rlp.RawValue)
	HasHeader(hash common.Hash, number uint64) bool
	GetHeader(hash common.Hash, number uint64) model.AbstractHeader
	SaveHeader(header model.AbstractHeader)
	DeleteHeader(hash common.Hash, number uint64)

	GetBodyRLP(hash common.Hash, number uint64) rlp.RawValue
	SaveBodyRLP(hash common.Hash, number uint64, rlp rlp.RawValue)
	HasBody(hash common.Hash, number uint64) bool
	GetBody(hash common.Hash, number uint64) model.AbstractBody
	SaveBody(hash common.Hash, number uint64, body model.AbstractBody)
	DeleteBody(hash common.Hash, number uint64)

	GetBlock(hash common.Hash, number uint64) model.AbstractBlock
	SaveBlock(block model.AbstractBlock)
	DeleteBlock(hash common.Hash, number uint64)

	GetTxLookupEntry(txHash common.Hash) (common.Hash, uint64, uint64)
	SaveTxLookupEntries(block model.AbstractBlock)
	DeleteTxLookupEntry(block model.AbstractBlock)

	GetTransaction(txHash common.Hash) (model.AbstractTransaction, common.Hash, uint64, uint64)

	InsertBlock(block model.AbstractBlock) error
}

type DatabaseDeleter

type DatabaseDeleter interface {
	Delete(key []byte) error
}

DatabaseDeleter wraps the Delete method of a backing data store.

type DatabaseReader

type DatabaseReader interface {
	Has(key []byte) (bool, error)
	Get(key []byte) ([]byte, error)
}

type DatabaseWriter

type DatabaseWriter interface {
	Put(key []byte, value []byte) error
}

DatabaseWriter wraps the Put method of a backing data store.

type TxLookupEntry

type TxLookupEntry struct {
	BlockHash  common.Hash
	BlockIndex uint64
	Index      uint64
}

TxLookupEntry is a positional metadata to help looking up the data content of a transaction or receipt given only its hash.

Jump to

Keyboard shortcuts

? : This menu
/ : Search site
f or F : Jump to
y or Y : Canonical URL