m2pool-core/internal/gbt/coin/coin.go

86 lines
1.9 KiB
Go
Raw Normal View History

2025-09-03 08:00:42 +00:00
// coin.go
package coin
import (
"pool/internal/db"
monero_rpc "pool/internal/gbt/monero/rpc"
"pool/internal/gbt/tari"
"pool/internal/utility"
"github.com/btcsuite/btcd/rpcclient"
"github.com/redis/go-redis/v9"
"github.com/zeromq/goczmq"
"go.uber.org/zap"
"gopkg.in/natefinch/lumberjack.v2"
)
type RpcConfig struct {
Host string `json:"host"`
Testnet string `json:"testnet"`
Type string `json:"type"`
User string `json:"user"`
Pass string `json:"pass"`
ZmqSub string `json:"zmqsub"`
Timeout int `json:"timeout"`
}
type ZmqConfig struct {
Pub string `json:"pub"`
Sub string `json:"sub"`
}
type ProfitConfig struct {
Push string `json:"push"`
}
type GbtConfig struct {
Rpc RpcConfig `json:"rpc"`
Zmq ZmqConfig `json:"zmq"`
Redis utility.RedisConfig `json:"redis"`
Profit ProfitConfig `json:"profit"`
Zaplog zap.Config `json:"zap"`
Logrotae utility.LogRotateConfig `json:"logrotate"`
}
type GbtContext struct {
DbCtx *db.DbContext
NodeSubCh *goczmq.Sock
PubCh *goczmq.Sock
SubCh *goczmq.Sock
MoneroNewBlockPubCh *goczmq.Sock // monero gbt有新块产生时发送消息队列
MoneroNewBlockSubCh *goczmq.Sock // 模仿自带zmq通知的币
PushCh *goczmq.Sock
Started bool
Config GbtConfig
Client *rpcclient.Client
MoneroClinet *monero_rpc.HttpClient
TariClient *tari.BaseNodeClient
MoneroAddr string // monero报块地址
TariAddr string // tari报块地址
ExitNotifyChan chan bool
ExitGbtChan chan bool
ExitBlockChan chan bool
//AlivingChan chan bool
FlagAliving int32
FlagAlivingExit int32
Log *zap.Logger
LogR *lumberjack.Logger
RedisClient *redis.Client
Coin string
MinerAddrs []string
MinerAddrIndex int
/*Blocks int64
Reward float64
Fee float64*/
}