dcrsqlite

package
v3.0.0-...-e4f035e Latest Latest
Warning

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

Go to latest
Published: Nov 7, 2019 License: ISC Imports: 28 Imported by: 0

Documentation

Index

Constants

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

	// DBBusyTimeout is the length of time in milliseconds for sqlite to retry
	// DB access when the SQLITE_BUSY error would otherwise be returned.
	DBBusyTimeout = "30000"
)
View Source
const (
	InitialLoadSyncStatusMsg = "(Lite Mode) Syncing stake and base DBs..."
)

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 *rpcclient.Client,
	p *chaincfg.Params, datadir string, updateStatusSync bool) (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 *rpcclient.Client,
	p *chaincfg.Params, datadir string, updateStatusSync bool) (wiredDB, func() error, error)

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

func UseLogger

func UseLogger(logger slog.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) 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, error)

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, error)

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

func (*DB) GetStakeInfoHeight

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

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

func (*DB) RetrieveAllPoolValAndSize

func (db *DB) RetrieveAllPoolValAndSize() (*dbtypes.ChartsData, error)

RetrieveAllPoolValAndSize returns all the pool values and sizes stored since the first value was recorded up current height.

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) RetrieveBlockFeeInfo

func (db *DB) RetrieveBlockFeeInfo() (*dbtypes.ChartsData, error)

RetrieveBlockFeeInfo fetches the block median fee chart data.

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) RetrieveBlockSummaryByTimeRange

func (db *DB) RetrieveBlockSummaryByTimeRange(minTime, maxTime int64, limit int) ([]apitypes.BlockDataBasic, error)

func (*DB) RetrieveDiff

func (db *DB) RetrieveDiff(timestamp int64) (float64, error)

RetrieveDiff returns the difficulty in the last 24hrs or immediately after 24hrs.

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, []string, 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 at the specified chain height.

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 the block at height ind.

func (*DB) RetrieveWinners

func (db *DB) RetrieveWinners(ind int64) ([]string, string, error)

RetrieveWinners returns the winning ticket tx IDs drawn after connecting the given block height (called to validate the block). The block hash corresponding to the input block height is also returned.

func (*DB) RetrieveWinnersByHash

func (db *DB) RetrieveWinnersByHash(hash string) ([]string, uint32, error)

RetrieveWinnersByHash returns the winning ticket tx IDs drawn after connecting the block with the given hash. The block height corresponding to the input block hash is also returned.

func (*DB) StoreBlockSummary

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

StoreBlockSummary attempts to store 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 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