hcsqlite

package
v0.0.0-...-9342d9d Latest Latest
Warning

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

Go to latest
Published: Dec 4, 2019 License: ISC Imports: 27 Imported by: 2

Documentation

Index

Constants

View Source
const (
	// TableNameSummaries is name of the table used to store block summary data
	TableNameSummaries = "hcdata_block_summary"
	// TableNameStakeInfo is name of the table used to store extended stake info
	TableNameStakeInfo = "hcdata_stakeinfo_extended"
)
View Source
const (

	// dbType is the database backend type to use
	// dbType = "ffldb"
	// DefaultStakeDbName is the default database name
	DefaultStakeDbName = "ffldb_stake"
)

Variables

This section is empty.

Functions

func DisableLog

func DisableLog()

DisableLog disables all library log output. Logging output is disabled by default until UseLogger is called.

func InitWiredDB

func InitWiredDB(dbInfo *DBInfo, statusC chan uint32, cl *hcrpcclient.Client, p *chaincfg.Params) (wiredDB, func() error, error)

InitWiredDB creates a new wiredDB from a file containing the data for a sql.DB. The other parameters are same as those for NewWiredDB.

func NewWiredDB

func NewWiredDB(db *sql.DB, statusC chan uint32, cl *hcrpcclient.Client, p *chaincfg.Params) (wiredDB, func() error)

NewWiredDB creates a new wiredDB from a *sql.DB, a node client, network parameters, and a status update channel. It calls hcsqlite.NewDB to create a new DB that wrapps the sql.DB.

func UseLogger

func UseLogger(logger btclog.Logger)

UseLogger uses a specified Logger to output package logging info.

Types

type BlockSummaryDatabaser

type BlockSummaryDatabaser interface {
	StoreBlockSummary(bd *apitypes.BlockDataBasic) error
	RetrieveBlockSummary(ind int64) (*apitypes.BlockDataBasic, error)
}

BlockSummaryDatabaser is the interface for a block data saving database

type ChainMonitor

type ChainMonitor struct {
	ConnectingLock chan struct{}
	DoneConnecting chan struct{}
	// contains filtered or unexported fields
}

ChainMonitor handles change notifications from the node client

func (*ChainMonitor) BlockConnectedHandler

func (p *ChainMonitor) BlockConnectedHandler()

BlockConnectedHandler handles block connected notifications, which helps deal with a chain reorganization.

func (*ChainMonitor) BlockConnectedSync

func (p *ChainMonitor) BlockConnectedSync(hash *chainhash.Hash)

BlockConnectedSync is the synchronous (blocking call) handler for the newly connected block given by the hash.

func (*ChainMonitor) ReorgHandler

func (p *ChainMonitor) ReorgHandler()

ReorgHandler receives notification of a chain reorganization and initiates a corresponding update of the SQL db keeping the main chain data.

type DB

type DB struct {
	*sql.DB
	sync.RWMutex
	// contains filtered or unexported fields
}

DB is a wrapper around sql.DB that adds methods for storing and retrieving chain data. Use InitDB to get a new instance. This may be unexported in the future.

func InitDB

func InitDB(dbInfo *DBInfo) (*DB, error)

InitDB creates a new DB instance from a DBInfo containing the name of the file used to back the underlying sql database.

func NewDB

func NewDB(db *sql.DB) *DB

NewDB creates a new DB instance with pre-generated sql statements from an existing sql.DB. Use InitDB to create a new DB without having a sql.DB. TODO: if this db exists, figure out best heights

func (*DB) GetBestBlockHash

func (db *DB) GetBestBlockHash() string

GetBestBlockHash returns the hash of the best block

func (*DB) GetBestBlockHeight

func (db *DB) GetBestBlockHeight() int64

GetBestBlockHeight returns the height of the best block

func (*DB) GetBlockSummaryHeight

func (db *DB) GetBlockSummaryHeight() int64

GetBlockSummaryHeight returns the largest block height for which the database can provide a block summary

func (*DB) GetStakeInfoHeight

func (db *DB) GetStakeInfoHeight() int64

GetStakeInfoHeight returns the largest block height for which the database can provide a stake info

func (*DB) RetrieveBestBlockHash

func (db *DB) RetrieveBestBlockHash() (string, error)

RetrieveBestBlockHash returns the block hash for the best block

func (*DB) RetrieveBestBlockHeight

func (db *DB) RetrieveBestBlockHeight() (int64, error)

RetrieveBestBlockHeight returns the block height for the best block

func (*DB) RetrieveBlockHash

func (db *DB) RetrieveBlockHash(ind int64) (string, error)

RetrieveBlockHash returns the block hash for block ind

func (*DB) RetrieveBlockHeight

func (db *DB) RetrieveBlockHeight(hash string) (int64, error)

RetrieveBlockHeight returns the block height for blockhash hash

func (*DB) RetrieveBlockSizeRange

func (db *DB) RetrieveBlockSizeRange(ind0, ind1 int64) ([]int32, error)

RetrieveBlockSizeRange returns an array of block sizes for block range ind0 to ind1

func (*DB) RetrieveBlockSummary

func (db *DB) RetrieveBlockSummary(ind int64) (*apitypes.BlockDataBasic, error)

RetrieveBlockSummary returns basic block data for block ind

func (*DB) RetrieveBlockSummaryByHash

func (db *DB) RetrieveBlockSummaryByHash(hash string) (*apitypes.BlockDataBasic, error)

RetrieveBlockSummaryByHash returns basic block data for a block given its hash

func (*DB) RetrieveLatestBlockSummary

func (db *DB) RetrieveLatestBlockSummary() (*apitypes.BlockDataBasic, error)

RetrieveLatestBlockSummary returns the block summary for the best block

func (*DB) RetrieveLatestStakeInfoExtended

func (db *DB) RetrieveLatestStakeInfoExtended() (*apitypes.StakeInfoExtended, error)

RetrieveLatestStakeInfoExtended returns the extended stake info for the best block

func (*DB) RetrievePoolInfo

func (db *DB) RetrievePoolInfo(ind int64) (*apitypes.TicketPoolInfo, error)

RetrievePoolInfo returns ticket pool info for block height ind

func (*DB) RetrievePoolInfoByHash

func (db *DB) RetrievePoolInfoByHash(hash string) (*apitypes.TicketPoolInfo, error)

RetrievePoolInfoByHash returns ticket pool info for blockhash hash

func (*DB) RetrievePoolInfoRange

func (db *DB) RetrievePoolInfoRange(ind0, ind1 int64) ([]apitypes.TicketPoolInfo, error)

RetrievePoolInfoRange returns an array of apitypes.TicketPoolInfo for block range ind0 to ind1 and a non-nil error on success

func (*DB) RetrievePoolValAndSizeRange

func (db *DB) RetrievePoolValAndSizeRange(ind0, ind1 int64) ([]float64, []float64, error)

RetrievePoolValAndSizeRange returns an array each of the pool values and sizes for block range ind0 to ind1

func (*DB) RetrieveSDiff

func (db *DB) RetrieveSDiff(ind int64) (float64, error)

RetrieveSDiff returns the stake difficulty for block ind

func (*DB) RetrieveSDiffRange

func (db *DB) RetrieveSDiffRange(ind0, ind1 int64) ([]float64, error)

RetrieveSDiffRange returns an array of stake difficulties for block range ind0 to ind1

func (*DB) RetrieveStakeInfoExtended

func (db *DB) RetrieveStakeInfoExtended(ind int64) (*apitypes.StakeInfoExtended, error)

RetrieveStakeInfoExtended returns the extended stake info for block ind

func (*DB) StoreBlockSummary

func (db *DB) StoreBlockSummary(bd *apitypes.BlockDataBasic) error

StoreBlockSummary attempts to stores the block data in the database and returns an error on failure

func (*DB) StoreStakeInfoExtended

func (db *DB) StoreStakeInfoExtended(si *apitypes.StakeInfoExtended) error

StoreStakeInfoExtended stores the extended stake info in the database

type DBDataSaver

type DBDataSaver struct {
	*DB
	// contains filtered or unexported fields
}

DBDataSaver models a DB with a channel to communicate new block height to the web interface

func (*DBDataSaver) Store

func (db *DBDataSaver) Store(data *blockdata.BlockData, _ *wire.MsgBlock) error

Store satisfies the blockdata.BlockDataSaver interface

type DBInfo

type DBInfo struct {
	FileName string
}

DBInfo contains db configuration

type ReorgData

type ReorgData struct {
	OldChainHead   chainhash.Hash
	OldChainHeight int32
	NewChainHead   chainhash.Hash
	NewChainHeight int32
}

ReorgData contains the information from a reoranization notification

type StakeInfoDatabaser

type StakeInfoDatabaser interface {
	StoreStakeInfoExtended(bd *apitypes.StakeInfoExtended) error
	RetrieveStakeInfoExtended(ind int64) (*apitypes.StakeInfoExtended, error)
}

StakeInfoDatabaser is the interface for an extended stake info saving database

Jump to

Keyboard shortcuts

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