proxy

package
v0.1.0 Latest Latest
Warning

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

Go to latest
Published: Oct 7, 2023 License: GPL-3.0 Imports: 26 Imported by: 0

Documentation

Index

Constants

View Source
const (
	MaxReqSize = 1024
)

Variables

This section is empty.

Functions

This section is empty.

Types

type Block

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

func (Block) Difficulty

func (b Block) Difficulty() *big.Int

func (Block) HashNoNonce

func (b Block) HashNoNonce() common.Hash

func (Block) MixDigest

func (b Block) MixDigest() common.Hash

func (Block) Nonce

func (b Block) Nonce() uint64

func (Block) NumberU64

func (b Block) NumberU64() uint64

type BlockTemplate

type BlockTemplate struct {
	sync.RWMutex
	Header               string
	Seed                 string
	Target               string
	Difficulty           *big.Int
	Height               uint64
	GetPendingBlockCache *rpc.GetBlockReplyPart
	// contains filtered or unexported fields
}

type ClusterNode

type ClusterNode struct {
	NodeName string `json:"nodeName"`
	NodeIp   string `json:"nodeIp"`
}

type Config

type Config struct {
	Name                      string        `json:"-"`
	LocalIP                   string        `json:"-"`
	Log                       Log           `json:"log"`
	Cluster                   []ClusterNode `json:"cluster"`
	Proxy                     Proxy         `json:"proxy"`
	Api                       api.ApiConfig `json:"api"`
	Upstream                  []Upstream    `json:"upstream"`
	UpstreamCheckInterval     string        `json:"upstreamCheckInterval"`
	UpstreamCoinBaseEncrypted string        `json:"upstreamCoinBaseEncrypted"`
	UpstreamCoinBase          string        `json:"-"`

	Threads int `json:"threads"`

	Coin          string                 `json:"coin"`
	Redis         storage.Config         `json:"redis"`
	RedisFailover storage.ConfigFailover `json:"redisFailover"`

	BlockUnlocker payouts.UnlockerConfig `json:"unlocker"`
	Payouts       payouts.PayoutsConfig  `json:"payouts"`

	NewrelicName    string `json:"newrelicName"`
	NewrelicKey     string `json:"newrelicKey"`
	NewrelicVerbose bool   `json:"newrelicVerbose"`
	NewrelicEnabled bool   `json:"newrelicEnabled"`
}

type DiffAdjust

type DiffAdjust struct {
	Enabled          bool   `json:"enabled"`
	AdjustInv        string `json:"adjustInv"`
	ExpectShareCount int64  `json:"expectShareCount"`
}

type ErrorReply

type ErrorReply struct {
	Code    int    `json:"code"`
	Message string `json:"message"`
}

type JSONPushMessage

type JSONPushMessage struct {
	// FIXME: Temporarily add ID for Claymore compliance
	Id      int64       `json:"id"`
	Version string      `json:"jsonrpc"`
	Result  interface{} `json:"result"`
}

Stratum

type JSONRpcReq

type JSONRpcReq struct {
	Id     json.RawMessage `json:"id"`
	Method string          `json:"method"`
	Params json.RawMessage `json:"params"`
}

type JSONRpcResp

type JSONRpcResp struct {
	Id      json.RawMessage `json:"id"`
	Version string          `json:"jsonrpc"`
	Result  interface{}     `json:"result"`
	Error   interface{}     `json:"error,omitempty"`
}

type Log

type Log struct {
	LogSetLevel int `json:"logSetLevel"`
}

type Proxy

type Proxy struct {
	Enabled              bool   `json:"enabled"`
	Listen               string `json:"listen"`
	LimitHeadersSize     int    `json:"limitHeadersSize"`
	LimitBodySize        int64  `json:"limitBodySize"`
	BehindReverseProxy   bool   `json:"behindReverseProxy"`
	BlockRefreshInterval string `json:"blockRefreshInterval"`
	Difficulty           int64  `json:"difficulty"`
	StateUpdateInterval  string `json:"stateUpdateInterval"`
	HashrateExpiration   string `json:"hashrateExpiration"`

	Policy policy.Config `json:"policy"`

	MaxFails    int64 `json:"maxFails"`
	HealthCheck bool  `json:"healthCheck"`

	Stratum        Stratum    `json:"stratum"`
	StratumVIP     StratumVIP `json:"stratumVIP"`
	StratumTls     StratumTls `json:"stratumTls"`
	StratumMaxConn int        `json:"stratumMaxConn"`

	DiffAdjust DiffAdjust `json:"diffAdjust"`
}

type ProxyServer

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

func NewProxy

func NewProxy(cfg *Config, backend *storage.RedisClient) *ProxyServer

func (*ProxyServer) DumpAllSessionNames

func (s *ProxyServer) DumpAllSessionNames() map[string]struct{}

func (*ProxyServer) ListenTCP

func (s *ProxyServer) ListenTCP(listenEndPoint string, timeOutStr string)

func (*ProxyServer) ListenTLS

func (s *ProxyServer) ListenTLS(listenEndPoint string, timeOutStr string, tlsCert string, tlsKey string)

func (*ProxyServer) ServeHTTP

func (s *ProxyServer) ServeHTTP(w http.ResponseWriter, r *http.Request)

func (*ProxyServer) Start

func (s *ProxyServer) Start()

func (*ProxyServer) UpdateAllSessionCache

func (s *ProxyServer) UpdateAllSessionCache()

func (*ProxyServer) UpdateAllSessionDiff

func (s *ProxyServer) UpdateAllSessionDiff()

type Session

type Session struct {

	// Stratum
	sync.Mutex
	// contains filtered or unexported fields
}

type Stratum

type Stratum struct {
	Enabled bool   `json:"enabled"`
	Listen  string `json:"listen"`
	Timeout string `json:"timeout"`
}

type StratumReq

type StratumReq struct {
	JSONRpcReq
	Worker string `json:"worker"`
}

type StratumTls

type StratumTls struct {
	Enabled bool   `json:"enabled"`
	Listen  string `json:"listen"`
	Timeout string `json:"timeout"`
	TlsCert string `json:"tlsCert"`
	TlsKey  string `json:"tlsKey"`
}

type StratumVIP

type StratumVIP struct {
	Enabled   bool   `json:"enabled"`
	PortRange string `json:"portRange"`
	Timeout   string `json:"timeout"`
}

type SubmitReply

type SubmitReply struct {
	Status string `json:"status"`
}

type Upstream

type Upstream struct {
	Name    string `json:"name"`
	Url     string `json:"url"`
	Timeout string `json:"timeout"`
}

Jump to

Keyboard shortcuts

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