storage

package
v0.0.0-...-839eff0 Latest Latest
Warning

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

Go to latest
Published: Feb 13, 2023 License: GPL-3.0 Imports: 10 Imported by: 0

Documentation

Index

Constants

This section is empty.

Variables

This section is empty.

Functions

This section is empty.

Types

type BlockData

type BlockData struct {
	Height         int64    `json:"height"`
	Timestamp      int64    `json:"timestamp"`
	Difficulty     int64    `json:"difficulty"`
	TotalShares    int64    `json:"shares"`
	Uncle          bool     `json:"uncle"`
	UncleHeight    int64    `json:"uncleHeight"`
	Orphan         bool     `json:"orphan"`
	Hash           string   `json:"hash"`
	Finder         string   `json:"finder"`
	Worker         string   `json:"worker"`
	Nonce          string   `json:"-"`
	PowHash        string   `json:"-"`
	MixDigest      string   `json:"-"`
	Reward         *big.Int `json:"-"`
	ExtraReward    *big.Int `json:"-"`
	ImmatureReward string   `json:"-"`
	RewardString   string   `json:"reward"`
	RoundHeight    int64    `json:"-"`

	MiningType string `json:"miningType"`
	// contains filtered or unexported fields
}

func (*BlockData) RewardInShannon

func (b *BlockData) RewardInShannon() int64

func (*BlockData) RoundKey

func (b *BlockData) RoundKey() string

type Config

type Config struct {
	Endpoint string `json:"endpoint"`
	Password string `json:"password"`
	Database int64  `json:"database"`
	PoolSize int    `json:"poolSize"`
}

type Exchange

type Exchange struct {
	// contains filtered or unexported fields
}

type ExchangeData

type ExchangeData struct {
	Name       string      `json:"name"`
	BaseUnit   string      `json:"base_unit"`
	BaseFixed  int         `json:"base_fixed"`
	BaseFee    float64     `json:"base_fee"`
	QuoteUnit  string      `json:"quote_unit"`
	QuoteFixed int         `json:"quote_fixed"`
	QuoteFee   float64     `json:"quote_fee"`
	Api        bool        `json:"api"`
	BaseLot    interface{} `json:"base_lot"`
	QuoteLot   interface{} `json:"quote_lot"`
	BaseMin    string      `json:"base_min"`
	QuoteMin   string      `json:"quote_min"`
	Blocks     int         `json:"blocks"`
	BlockTime  string      `json:"block_time"`
	Wstatus    string      `json:"wstatus"`
	Low        string      `json:"low"`
	High       string      `json:"high"`
	Last       string      `json:"last"`
	Open       string      `json:"open"`
	Volume     string      `json:"volume"`
	Volume2    string      `json:"volume2"`
	Sell       string      `json:"sell"`
	Buy        string      `json:"buy"`
	At         int         `json:"at"`
	Exchanges  []Exchange  `json:"exchanges"`
}

type Miner

type Miner struct {
	LastBeat int64 `json:"lastBeat"`
	HR       int64 `json:"hr"`
	Offline  bool  `json:"offline"`
	Solo     bool  `json:"solo"`
	// contains filtered or unexported fields
}

type MinerCharts

type MinerCharts struct {
	Timestamp      int64  `json:"x"`
	TimeFormat     string `json:"timeFormat"`
	MinerHash      int64  `json:"minerHash"`
	MinerLargeHash int64  `json:"minerLargeHash"`
	WorkerOnline   string `json:"workerOnline"`
}

type PaymentCharts

type PaymentCharts struct {
	Timestamp  int64  `json:"x"`
	TimeFormat string `json:"timeFormat"`
	Amount     int64  `json:"amount"`
}

type PendingPayment

type PendingPayment struct {
	Timestamp int64  `json:"timestamp"`
	Amount    int64  `json:"amount"`
	Address   string `json:"login"`
}

type PoolCharts

type PoolCharts struct {
	Timestamp  int64  `json:"x"`
	TimeFormat string `json:"timeFormat"`
	PoolHash   int64  `json:"y"`
}

type RedisClient

type RedisClient struct {
	CoinName string
	// contains filtered or unexported fields
}

func NewRedisClient

func NewRedisClient(cfg *Config, prefix string, pplns int64, CoinName string, CoinSolo string) *RedisClient

func (*RedisClient) BgSave

func (r *RedisClient) BgSave() (string, error)

func (*RedisClient) Check

func (r *RedisClient) Check() (string, error)

func (*RedisClient) Client

func (r *RedisClient) Client() *redis.Client

func (*RedisClient) CollectBlocks

func (r *RedisClient) CollectBlocks(login string) (map[string]interface{}, error)

func (*RedisClient) CollectLuckStats

func (r *RedisClient) CollectLuckStats(windows []int) (map[string]interface{}, error)

func (*RedisClient) CollectStats

func (r *RedisClient) CollectStats(smallWindow time.Duration, maxBlocks, maxPayments int64) (map[string]interface{}, error)

func (*RedisClient) CollectWorkersStats

func (r *RedisClient) CollectWorkersStats(sWindow, lWindow time.Duration, login string) (map[string]interface{}, error)

func (*RedisClient) FlushStaleStats

func (r *RedisClient) FlushStaleStats(window, largeWindow time.Duration) (int64, error)

WARNING: Must run it periodically to flush out of window hashrate entries

func (*RedisClient) GetAllMinerAccount

func (r *RedisClient) GetAllMinerAccount() (account []string, err error)

func (*RedisClient) GetBalance

func (r *RedisClient) GetBalance(login string) (int64, error)

func (*RedisClient) GetBlacklist

func (r *RedisClient) GetBlacklist() ([]string, error)

Always returns list of addresses. If Redis fails it will return empty list.

func (*RedisClient) GetCandidates

func (r *RedisClient) GetCandidates(maxHeight int64) ([]*BlockData, error)

func (*RedisClient) GetExchangeData

func (r *RedisClient) GetExchangeData() (map[string]string, error)

func (*RedisClient) GetIP

func (r *RedisClient) GetIP(login string) string

func (*RedisClient) GetImmatureBlocks

func (r *RedisClient) GetImmatureBlocks(maxHeight int64) ([]*BlockData, error)

func (*RedisClient) GetMailAddress

func (r *RedisClient) GetMailAddress(login string) string

func (*RedisClient) GetMinerCharts

func (r *RedisClient) GetMinerCharts(hashNum int64, login string) (stats []*MinerCharts, err error)

func (*RedisClient) GetMinerStats

func (r *RedisClient) GetMinerStats(login string, maxPayments int64) (map[string]interface{}, error)

func (*RedisClient) GetMinerStatsSolo

func (r *RedisClient) GetMinerStatsSolo(login string, maxPayments int64) (map[string]interface{}, error)

func (*RedisClient) GetMiningType

func (r *RedisClient) GetMiningType(login string) string

func (*RedisClient) GetNetworkDifficulty

func (r *RedisClient) GetNetworkDifficulty() (*big.Int, error)

func (*RedisClient) GetNodeStates

func (r *RedisClient) GetNodeStates() ([]map[string]interface{}, error)

func (*RedisClient) GetPassword

func (r *RedisClient) GetPassword(login string) string

func (*RedisClient) GetPayees

func (r *RedisClient) GetPayees() ([]string, error)

func (*RedisClient) GetPaymentCharts

func (r *RedisClient) GetPaymentCharts(login string) (stats []*PaymentCharts, err error)

func (*RedisClient) GetPendingPayments

func (r *RedisClient) GetPendingPayments() []*PendingPayment

func (*RedisClient) GetPoolCharts

func (r *RedisClient) GetPoolCharts(poolHashLen int64) (stats []*PoolCharts, err error)

func (*RedisClient) GetRewards

func (r *RedisClient) GetRewards(login string) ([]*RewardData, error)

func (*RedisClient) GetRoundShares

func (r *RedisClient) GetRoundShares(height int64, nonce string) (map[string]int64, error)

func (*RedisClient) GetThreshold

func (r *RedisClient) GetThreshold(login string) (int64, error)

func (*RedisClient) GetTotalShares

func (r *RedisClient) GetTotalShares() (int64, error)

func (*RedisClient) GetWhitelist

func (r *RedisClient) GetWhitelist() ([]string, error)

Always returns list of IPs. If Redis fails it will return empty list.

func (*RedisClient) GetWorker

func (r *RedisClient) GetWorker(login string, worker string) string

func (*RedisClient) IsMinerExists

func (r *RedisClient) IsMinerExists(login string) (bool, error)

func (*RedisClient) IsPayoutsLocked

func (r *RedisClient) IsPayoutsLocked() (bool, error)

func (*RedisClient) LockPayouts

func (r *RedisClient) LockPayouts(login string, amount int64) error

func (*RedisClient) LogIP

func (r *RedisClient) LogIP(login string, ip string)

func (*RedisClient) RollbackBalance

func (r *RedisClient) RollbackBalance(login string, amount int64) error

func (*RedisClient) SetAlert

func (r *RedisClient) SetAlert(login string, alert string) (bool, error)

func (*RedisClient) SetIP

func (r *RedisClient) SetIP(login string, ip string)

func (*RedisClient) SetMailAddress

func (r *RedisClient) SetMailAddress(login string, email string) (bool, error)

func (*RedisClient) SetMiningType

func (r *RedisClient) SetMiningType(login string, miningType string)

func (*RedisClient) SetThreshold

func (r *RedisClient) SetThreshold(login string, threshold int64) (bool, error)

func (*RedisClient) SetWorkerWithEmailStatus

func (r *RedisClient) SetWorkerWithEmailStatus(login string, worker string, emailSent string)

func (*RedisClient) StoreExchangeData

func (r *RedisClient) StoreExchangeData(exchangeData ExchangeData)

func (*RedisClient) UnlockPayouts

func (r *RedisClient) UnlockPayouts() error

func (*RedisClient) UpdateBalance

func (r *RedisClient) UpdateBalance(login string, amount int64) error

Deduct miner's balance for payment

func (*RedisClient) WriteBlock

func (r *RedisClient) WriteBlock(login, id string, params []string, diff, roundDiff int64, height uint64, window time.Duration, hostname string) (bool, error)

func (*RedisClient) WriteBlockSolo

func (r *RedisClient) WriteBlockSolo(login, id string, params []string, diff, roundDiff int64, height uint64, window time.Duration, hostname string) (bool, error)

func (*RedisClient) WriteImmatureBlock

func (r *RedisClient) WriteImmatureBlock(block *BlockData, roundRewards map[string]int64) error

func (*RedisClient) WriteMaturedBlock

func (r *RedisClient) WriteMaturedBlock(block *BlockData, roundRewards map[string]int64) error

func (*RedisClient) WriteMinerCharts

func (r *RedisClient) WriteMinerCharts(time1 int64, time2, k string, hash, largeHash, workerOnline int64) error

func (*RedisClient) WriteNodeState

func (r *RedisClient) WriteNodeState(id string, height uint64, diff *big.Int) error

func (*RedisClient) WriteOrphan

func (r *RedisClient) WriteOrphan(block *BlockData) error

func (*RedisClient) WritePasswordByMiner

func (r *RedisClient) WritePasswordByMiner(login string, password string)

func (*RedisClient) WritePayment

func (r *RedisClient) WritePayment(login, txHash string, amount int64, txCharges int64) error

func (*RedisClient) WritePendingOrphans

func (r *RedisClient) WritePendingOrphans(blocks []*BlockData) error

func (*RedisClient) WritePoolCharts

func (r *RedisClient) WritePoolCharts(time1 int64, time2 string, poolHash string) error

func (*RedisClient) WriteReward

func (r *RedisClient) WriteReward(login string, amount int64, percent *big.Rat, immature bool, block *BlockData) error

func (*RedisClient) WriteShare

func (r *RedisClient) WriteShare(login, id string, params []string, diff int64, height uint64, window time.Duration, hostname string) (bool, error)

func (*RedisClient) WriteShareSolo

func (r *RedisClient) WriteShareSolo(login, id string, params []string, diff int64, height uint64, window time.Duration, hostname string) (bool, error)

type RewardData

type RewardData struct {
	Height    int64   `json:"blockheight"`
	Timestamp int64   `json:"timestamp"`
	BlockHash string  `json:"blockhash"`
	Reward    int64   `json:"reward"`
	Percent   float64 `json:"percent"`
	Immature  bool    `json:"immature"`
}

type SumRewardData

type SumRewardData struct {
	Interval int64  `json:"inverval"`
	Reward   int64  `json:"reward"`
	Name     string `json:"name"`
	Offset   int64  `json:"offset"`
}

type Worker

type Worker struct {
	Miner
	TotalHR        int64  `json:"hr2"`
	WorkerDiff     int64  `json:"difficulty"`
	WorkerHostname string `json:"hostname"`
}

Jump to

Keyboard shortcuts

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