dcrsqlite

package
v2.1.2+incompatible Latest Latest
Warning

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

Go to latest
Published: Aug 10, 2018 License: ISC Imports: 27 Imported by: 0

Documentation

Index

Constants

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

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) (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) (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.

func ValidateNetworkAddress added in v1.3.0

func ValidateNetworkAddress(address dcrutil.Address, p *chaincfg.Params) bool

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

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

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 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) 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 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
	WG             *sync.WaitGroup
}

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