Documentation ¶
Index ¶
- func DisableLog()
- func JSONFormatBlockData(data *BlockData) (*bytes.Buffer, error)
- func NewChainMonitor(ctx context.Context, collector *Collector, savers []BlockDataSaver, ...) *chainMonitor
- func UseLogger(logger slog.Logger)
- type BlockData
- type BlockDataSaver
- type BlockDataToJSONFiles
- type BlockDataToJSONStdOut
- type BlockDataToSummaryStdOut
- type BlockTrigger
- type Collector
- func (t *Collector) Collect() (*BlockData, *wire.MsgBlock, error)
- func (t *Collector) CollectAPITypes(hash *chainhash.Hash) (*apitypes.BlockDataBasic, *apitypes.StakeInfoExtended)
- func (t *Collector) CollectBlockInfo(hash *chainhash.Hash) (*apitypes.BlockDataBasic, *chainjson.FeeInfoBlock, ...)
- func (t *Collector) CollectHash(hash *chainhash.Hash) (*BlockData, *wire.MsgBlock, error)
Constants ¶
This section is empty.
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 JSONFormatBlockData ¶
JSONFormatBlockData concatenates block data results into a single JSON object with primary keys for the result type
func NewChainMonitor ¶
func NewChainMonitor(ctx context.Context, collector *Collector, savers []BlockDataSaver, reorgSavers []BlockDataSaver) *chainMonitor
NewChainMonitor creates a new chainMonitor.
Types ¶
type BlockData ¶
type BlockData struct { Header chainjson.GetBlockHeaderVerboseResult Connections int32 FeeInfo chainjson.FeeInfoBlock CurrentStakeDiff chainjson.GetStakeDifficultyResult EstStakeDiff chainjson.EstimateStakeDiffResult PoolInfo *apitypes.TicketPoolInfo ExtraInfo apitypes.BlockExplorerExtraInfo BlockchainInfo *chainjson.GetBlockChainInfoResult PriceWindowNum int IdxBlockInWindow int WinningTickets []string }
BlockData contains all the data collected by a Collector and stored by a BlockDataSaver. TODO: consider if pointers are desirable here.
func (*BlockData) ToBlockExplorerSummary ¶
func (b *BlockData) ToBlockExplorerSummary() apitypes.BlockExplorerBasic
ToBlockExplorerSummary returns a BlockExplorerBasic
func (*BlockData) ToBlockSummary ¶
func (b *BlockData) ToBlockSummary() apitypes.BlockDataBasic
ToBlockSummary returns an apitypes.BlockDataBasic object from the blockdata
func (*BlockData) ToStakeInfoExtended ¶
func (b *BlockData) ToStakeInfoExtended() apitypes.StakeInfoExtended
ToStakeInfoExtended returns an apitypes.StakeInfoExtended object from the blockdata
func (*BlockData) ToStakeInfoExtendedEstimates ¶
func (b *BlockData) ToStakeInfoExtendedEstimates() apitypes.StakeInfoExtendedEstimates
ToStakeInfoExtendedEstimates returns an apitypes.StakeInfoExtendedEstimates object from the blockdata
type BlockDataSaver ¶
BlockDataSaver is an interface for saving/storing BlockData
type BlockDataToJSONFiles ¶
type BlockDataToJSONFiles struct {
// contains filtered or unexported fields
}
BlockDataToJSONFiles implements BlockDataSaver interface for JSON output to the file system
func NewBlockDataToJSONFiles ¶
func NewBlockDataToJSONFiles(folder string, fileBase string, m ...*sync.Mutex) *BlockDataToJSONFiles
NewBlockDataToJSONFiles creates a new BlockDataToJSONFiles with optional existing mutex
func (*BlockDataToJSONFiles) Store ¶
func (s *BlockDataToJSONFiles) Store(data *BlockData, _ *wire.MsgBlock) error
Store writes BlockData to a file in JSON format The file name is nameBase+height+".json".
type BlockDataToJSONStdOut ¶
type BlockDataToJSONStdOut struct {
// contains filtered or unexported fields
}
BlockDataToJSONStdOut implements BlockDataSaver interface for JSON output to stdout
func NewBlockDataToJSONStdOut ¶
func NewBlockDataToJSONStdOut(m ...*sync.Mutex) *BlockDataToJSONStdOut
NewBlockDataToJSONStdOut creates a new BlockDataToJSONStdOut with optional existing mutex
func (*BlockDataToJSONStdOut) Store ¶
func (s *BlockDataToJSONStdOut) Store(data *BlockData, _ *wire.MsgBlock) error
Store writes BlockData to stdout in JSON format
type BlockDataToSummaryStdOut ¶
type BlockDataToSummaryStdOut struct {
// contains filtered or unexported fields
}
BlockDataToSummaryStdOut implements BlockDataSaver interface for plain text summary to stdout
func NewBlockDataToSummaryStdOut ¶
func NewBlockDataToSummaryStdOut(sdiffWinSize int64, m ...*sync.Mutex) *BlockDataToSummaryStdOut
NewBlockDataToSummaryStdOut creates a new BlockDataToSummaryStdOut with optional existing mutex
func (*BlockDataToSummaryStdOut) Store ¶
func (s *BlockDataToSummaryStdOut) Store(data *BlockData, _ *wire.MsgBlock) error
Store writes BlockData to stdout as plain text summary
type BlockTrigger ¶
BlockTrigger wraps a simple function of builtin-typed hash and height.
func (BlockTrigger) Store ¶
func (s BlockTrigger) Store(bd *BlockData, _ *wire.MsgBlock) error
Store reduces the block data to the hash and height in builtin types, and passes the data to the saver.
type Collector ¶
type Collector struct {
// contains filtered or unexported fields
}
Collector models a structure for the source of the blockdata
func NewCollector ¶
func NewCollector(dcrdChainSvr *rpcclient.Client, params *chaincfg.Params, stakeDB *stakedb.StakeDatabase) *Collector
NewCollector creates a new Collector.
func (*Collector) CollectAPITypes ¶
func (t *Collector) CollectAPITypes(hash *chainhash.Hash) (*apitypes.BlockDataBasic, *apitypes.StakeInfoExtended)
CollectAPITypes uses CollectBlockInfo to collect block data, then organizes it into the BlockDataBasic and StakeInfoExtended and dcrdataapi types.
func (*Collector) CollectBlockInfo ¶
func (t *Collector) CollectBlockInfo(hash *chainhash.Hash) (*apitypes.BlockDataBasic, *chainjson.FeeInfoBlock, *chainjson.GetBlockHeaderVerboseResult, *apitypes.BlockExplorerExtraInfo, *wire.MsgBlock, error)
CollectBlockInfo uses the chain server and the stake DB to collect most of the block data required by Collect() that is specific to the block with the given hash.
func (*Collector) CollectHash ¶
CollectHash collects chain data at the block with the specified hash.