database

package
v0.3.5 Latest Latest
Warning

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

Go to latest
Published: Feb 6, 2016 License: MIT Imports: 3 Imported by: 10

Documentation

Index

Constants

View Source
const AllShas = int64(^uint64(0) >> 1)

AllShas is a special value that can be used as the final sha when requesting a range of shas by height to request them all.

Variables

This section is empty.

Functions

This section is empty.

Types

type Db

type Db interface {
	// Close cleanly shuts down the database and syncs all data.
	Close() (err error)

	// RollbackClose discards the recent database changes to the previously
	// saved data at last Sync and closes the database.
	RollbackClose() (err error)

	// Sync verifies that the database is coherent on disk and no
	// outstanding transactions are in flight.
	Sync() (err error)

	// InsertEntry inserts an entry
	InsertEntry(entry *common.Entry) (err error)

	// FetchEntry gets an entry by hash from the database.
	FetchEntryByHash(entrySha *common.Hash) (entry *common.Entry, err error)

	// ProcessEBlockBatche inserts the EBlock and update all it's ebentries in DB
	ProcessEBlockBatch(eblock *common.EBlock) error

	// InsertChain inserts the newly created chain into db
	InsertChain(chain *common.EChain) (err error)

	// FetchChainByHash gets a chain by chainID
	FetchChainByHash(chainID *common.Hash) (chain *common.EChain, err error)

	//FetchAllChains gets all of the chains
	FetchAllChains() (chains []*common.EChain, err error)

	// FetchEntryBlock gets an entry by hash from the database.
	FetchEBlockByHash(eBlockHash *common.Hash) (eBlock *common.EBlock, err error)

	// FetchEBlockByMR gets an entry block by merkle root from the database.
	FetchEBlockByMR(eBMR *common.Hash) (eBlock *common.EBlock, err error)

	// FetchEBHashByMR gets an entry by hash from the database.
	FetchEBHashByMR(eBMR *common.Hash) (eBlockHash *common.Hash, err error)

	// FetchAllEBlocksByChain gets all of the blocks by chain id
	FetchAllEBlocksByChain(chainID *common.Hash) (eBlocks *[]common.EBlock, err error)

	// FetchDBlock gets an entry by hash from the database.
	FetchDBlockByHash(dBlockHash *common.Hash) (dBlock *common.DirectoryBlock, err error)

	// FetchDBlockByMR gets a directory block by merkle root from the database.
	FetchDBlockByMR(dBMR *common.Hash) (dBlock *common.DirectoryBlock, err error)

	// FetchDBHashByMR gets a DBHash by MR from the database.
	FetchDBHashByMR(dBMR *common.Hash) (dBlockHash *common.Hash, err error)

	// FetchDBBatchByHash gets an FBBatch obj
	FetchDirBlockInfoByHash(dbHash *common.Hash) (dirBlockInfo *common.DirBlockInfo, err error)

	// Insert the Directory Block meta data into db
	InsertDirBlockInfo(dirBlockInfo *common.DirBlockInfo) (err error)

	// FetchAllDirBlockInfo gets all of the dirBlockInfo
	FetchAllDirBlockInfo() (ddirBlockInfoMap map[string]*common.DirBlockInfo, err error)

	// FetchAllUnconfirmedDirBlockInfo gets all of the dirBlockInfos that have BTC Anchor confirmation
	//FetchAllUnconfirmedDirBlockInfo() (dBInfoSlice []common.DirBlockInfo, err error)
	FetchAllUnconfirmedDirBlockInfo() (dirBlockInfoMap map[string]*common.DirBlockInfo, err error)

	// ProcessDBlockBatche inserts the EBlock and update all it's ebentries in DB
	ProcessDBlockBatch(block *common.DirectoryBlock) error

	// FetchHeightRange looks up a range of blocks by the start and ending
	// heights.  Fetch is inclusive of the start height and exclusive of the
	// ending height. To fetch all hashes from the start height until no
	// more are present, use the special id `AllShas'.
	FetchHeightRange(startHeight, endHeight int64) (rshalist []wire.ShaHash, err error)

	// FetchBlockHeightBySha returns the block height for the given hash.  This is
	// part of the database.Db interface implementation.
	FetchBlockHeightBySha(sha *wire.ShaHash) (int64, error)

	// FetchAllECBlocks gets all of the entry credit blocks
	FetchAllECBlocks() (cBlocks []common.ECBlock, err error)

	// FetchAllFBInfo gets all of the fbInfo
	FetchAllDBlocks() (fBlocks []common.DirectoryBlock, err error)

	// FetchDBHashByHeight gets a dBlockHash from the database.
	FetchDBHashByHeight(dBlockHeight uint32) (dBlockHash *common.Hash, err error)

	// FetchDBlockByHeight gets an directory block by height from the database.
	FetchDBlockByHeight(dBlockHeight uint32) (dBlock *common.DirectoryBlock, err error)

	// ProcessECBlockBatche inserts the ECBlock and update all it's ecbentries in DB
	ProcessECBlockBatch(block *common.ECBlock) (err error)

	// FetchECBlockByHash gets an Entry Credit block by hash from the database.
	FetchECBlockByHash(cBlockHash *common.Hash) (ecBlock *common.ECBlock, err error)

	// Initialize External ID map for explorer search
	InitializeExternalIDMap() (extIDMap map[string]bool, err error)

	// ProcessABlockBatch inserts the AdminBlock
	ProcessABlockBatch(block *common.AdminBlock) error

	// FetchABlockByHash gets an admin block by hash from the database.
	FetchABlockByHash(aBlockHash *common.Hash) (aBlock *common.AdminBlock, err error)

	// FetchAllABlocks gets all of the admin blocks
	FetchAllABlocks() (aBlocks []common.AdminBlock, err error)

	// ProcessABlockBatch inserts the AdminBlock
	ProcessFBlockBatch(block.IFBlock) error

	// FetchABlockByHash gets an admin block by hash from the database.
	FetchFBlockByHash(*common.Hash) (block.IFBlock, error)

	// FetchAllABlocks gets all of the admin blocks
	FetchAllFBlocks() ([]block.IFBlock, error)

	// UpdateBlockHeightCache updates the dir block height cache in db
	UpdateBlockHeightCache(dirBlkHeigh uint32, dirBlkHash *common.Hash) error

	// FetchBlockHeightCache returns the hash and block height of the most recent dir block
	FetchBlockHeightCache() (sha *wire.ShaHash, height int64, err error)

	// UpdateNextBlockHeightCache updates the next dir block height cache (from server) in db
	UpdateNextBlockHeightCache(dirBlkHeigh uint32) error

	// FetchNextBlockHeightCache returns the next block height from server
	FetchNextBlockHeightCache() (height int64)

	// FtchHeadMRByChainID gets a MR of the highest block from the database.
	FetchHeadMRByChainID(chainID *common.Hash) (blkMR *common.Hash, err error)
}

Db defines a generic interface that is used to request and insert data into db

Directories

Path Synopsis
ldb

Jump to

Keyboard shortcuts

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