feat(proxy): store miner login algo list
Co-Authored-By: Virgil <virgil@lethean.io>
This commit is contained in:
parent
2f59714cce
commit
b16ebc1a28
3 changed files with 13 additions and 2 deletions
3
miner.go
3
miner.go
|
|
@ -28,7 +28,8 @@ type Miner struct {
|
|||
id int64 // monotonically increasing per-process; atomic assignment
|
||||
rpcID string // UUID v4 sent to miner as session id
|
||||
state MinerState
|
||||
extAlgo bool // miner sent algo list in login params
|
||||
extAlgo bool // miner sent algo list in login params
|
||||
loginAlgos []string
|
||||
extNH bool // NiceHash mode active (fixed byte splitting)
|
||||
algoEnabled bool // proxy is configured to negotiate the algo extension
|
||||
ip string // remote IP (without port, for logging)
|
||||
|
|
|
|||
|
|
@ -70,6 +70,9 @@ func TestMiner_HandleLogin_Good(t *testing.T) {
|
|||
if len(payload.Result.Extensions) != 1 || payload.Result.Extensions[0] != "algo" {
|
||||
t.Fatalf("expected algo extension, got %#v", payload.Result.Extensions)
|
||||
}
|
||||
if got := miner.LoginAlgos(); len(got) != 1 || got[0] != "cn/r" {
|
||||
t.Fatalf("expected login algo list to be stored, got %#v", got)
|
||||
}
|
||||
if got := payload.Result.Job["job_id"]; got != "job-1" {
|
||||
t.Fatalf("expected embedded job, got %#v", got)
|
||||
}
|
||||
|
|
|
|||
|
|
@ -638,6 +638,12 @@ func (m *Miner) SetCurrentJob(job Job) {
|
|||
func (m *Miner) CurrentJob() Job {
|
||||
return m.currentJob
|
||||
}
|
||||
func (m *Miner) LoginAlgos() []string {
|
||||
if m == nil || len(m.loginAlgos) == 0 {
|
||||
return nil
|
||||
}
|
||||
return append([]string(nil), m.loginAlgos...)
|
||||
}
|
||||
func (m *Miner) FixedByte() uint8 {
|
||||
return m.fixedByte
|
||||
}
|
||||
|
|
@ -777,7 +783,8 @@ func (m *Miner) handleLogin(req stratumRequest) {
|
|||
m.password = params.Pass
|
||||
m.agent = params.Agent
|
||||
m.rigID = params.RigID
|
||||
m.extAlgo = len(params.Algo) > 0
|
||||
m.loginAlgos = append([]string(nil), params.Algo...)
|
||||
m.extAlgo = len(m.loginAlgos) > 0
|
||||
m.rpcID = generateUUID()
|
||||
m.state = MinerStateWaitReady
|
||||
if m.onLogin != nil {
|
||||
|
|
|
|||
Loading…
Add table
Reference in a new issue