Versions in this module Expand all Collapse all v1 v1.0.0 Dec 21, 2023 Changes in this version + var ErrDupeShare = fmt.Errorf("duplicate share") + var ErrStaleShare = fmt.Errorf("stale share") + func BigDiffToLittle(diff *big.Int) float64 + func CalculateTarget(bits uint64) big.Int + func DiffToHash(diff float64) float64 + func DiffToTarget(diff float64) *big.Int + func GenerateJobHeader(headerData []byte) []uint64 + func GenerateLargeJobParams(headerData []byte, timestamp uint64) string + func GetAverageHashrateGHs(stats *WorkStats) float64 + func InitInvalidCounter(worker *gostratum.StratumContext, errorType string) + func InitWorkerCounters(worker *gostratum.StratumContext) + func ListenAndServe(cfg BridgeConfig) error + func MiningStateGenerator() any + func RecordBalances(response *appmessage.GetBalancesByAddressesResponseMessage) + func RecordBlockFound(worker *gostratum.StratumContext, nonce, bluescore uint64, hash string) + func RecordDisconnect(worker *gostratum.StratumContext) + func RecordDupeShare(worker *gostratum.StratumContext) + func RecordInvalidShare(worker *gostratum.StratumContext) + func RecordNetworkStats(hashrate uint64, blockCount uint64, difficulty float64) + func RecordNewJob(worker *gostratum.StratumContext) + func RecordShareFound(worker *gostratum.StratumContext, shareDiff float64) + func RecordStaleShare(worker *gostratum.StratumContext) + func RecordWeakShare(worker *gostratum.StratumContext) + func RecordWorkerError(address string, shortError ErrorShortCodeT) + func SerializeBlockHeader(template *appmessage.RPCBlock) ([]byte, error) + func StartPromServer(log *zap.SugaredLogger, port string) + type BridgeConfig struct + BlockWaitTime time.Duration + ClampPow2 bool + ExtranonceSize uint + HealthCheckPort string + MinShareDiff uint + PrintStats bool + PromPort string + RPCServer string + SharesPerMin uint + StratumPort string + UseLogFile bool + VarDiff bool + VarDiffStats bool + type ErrorShortCodeT string + const ErrBadDataFromMiner + const ErrDisconnected + const ErrFailedBlockFetch + const ErrFailedSendWork + const ErrFailedSetDiff + const ErrInvalidAddressFmt + const ErrMissingJob + const ErrNoMinerAddress + type KaspaApi struct + func NewKaspaAPI(address string, blockWaitTime time.Duration, logger *zap.SugaredLogger) (*KaspaApi, error) + func (ks *KaspaApi) GetBlockTemplate(client *gostratum.StratumContext) (*appmessage.GetBlockTemplateResponseMessage, error) + func (ks *KaspaApi) Start(ctx context.Context, blockCb func()) + type MiningState struct + JobLock sync.Mutex + Jobs map[uint64]*appmessage.RPCBlock + func GetMiningState(ctx *gostratum.StratumContext) *MiningState + func (ms *MiningState) AddJob(job *appmessage.RPCBlock) uint64 + func (ms *MiningState) GetJob(id uint64) (*appmessage.RPCBlock, bool) + type WorkStats struct + BlocksFound atomic.Int64 + InvalidShares atomic.Int64 + LastShare time.Time + MinDiff atomic.Float64 + SharesDiff atomic.Float64 + SharesFound atomic.Int64 + StaleShares atomic.Int64 + StartTime time.Time + VarDiffSharesFound atomic.Int64 + VarDiffStartTime time.Time + VarDiffWindow int + WorkerName string