m2pool_core/internal/gbt/coin/coin.go

89 lines
1.7 KiB
Go

// coin.go
package coin
import (
"net"
"pool/internal/db"
"pool/internal/gbt/alph/http"
"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"`
Port string `json:"port"`
ApiHost string `json:"apiHost"`
ApiPort string `json:"apiPort"`
ApiKey string `json:"apiKey"`
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
PushCh *goczmq.Sock
Started bool
Config GbtConfig
Client *rpcclient.Client
ClientAlph *net.Conn
ClientAlphApi *http.HttpClient
// ClientEnx *kaspad.RPCClient
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*/
}