add support tari-randomx
This commit is contained in:
@@ -225,6 +225,27 @@ type MoneroJob struct {
|
||||
Status string `json:"status"`
|
||||
}
|
||||
|
||||
type RandomxTAuthorize_reply struct {
|
||||
ID float64 `json:"id"`
|
||||
Jsonrpc string `json:"jsonrpc"`
|
||||
Result RandomxTAuthorize_job_msg `json:"job"`
|
||||
Error interface{} `json:"error"`
|
||||
}
|
||||
|
||||
type RandomxTAuthorize_job_msg struct {
|
||||
ID string `json:"id"`
|
||||
Job struct {
|
||||
Algo string `json:"algo"` // "rx/0"
|
||||
JobId string `json:"job_id"`
|
||||
Blob string `json:"blob"`
|
||||
SeedHash string `json:"seed_hash"`
|
||||
Target string `json:"target"`
|
||||
Height uint32 `json:"height"`
|
||||
Variant string `json:"variant"` // "rx/0"
|
||||
} `json:"job"`
|
||||
Status string `json:"status"`
|
||||
}
|
||||
|
||||
type KeepAlived_resp struct {
|
||||
ID int `json:"id"`
|
||||
Jsonrpc string `json:"jsonrpc"`
|
||||
@@ -581,7 +602,7 @@ func Handle_authorize(miner *coin.MinerObj, id float64, auth_msg string, DbCtx *
|
||||
if e = json.Unmarshal([]byte(auth_msg), &s); e != nil {
|
||||
miner.Server.Logg.Error("[server]", zap.String("Unmarshal", e.Error()))
|
||||
}
|
||||
} else if miner.Name == "sha3x" || miner.Name == "monero" {
|
||||
} else if miner.Name == "sha3x" || miner.Name == "monero" || miner.Name == "randomxt" {
|
||||
if e = json.Unmarshal([]byte(auth_msg), &s_sha3x); e != nil {
|
||||
miner.Server.Logg.Error("[server]", zap.String("Unmarshal", e.Error()))
|
||||
}
|
||||
@@ -753,6 +774,41 @@ func Handle_authorize(miner *coin.MinerObj, id float64, auth_msg string, DbCtx *
|
||||
body_string = string(body) + "\n"
|
||||
// fmt.Println(body_string)
|
||||
err = Conn_tx(miner.Conn, []byte(body_string))
|
||||
} else if miner.Name == "randomxt" {
|
||||
var randomxt_ack RandomxTAuthorize_reply
|
||||
randomxt_ack.Result.Status = "OK"
|
||||
idb := make([]byte, 4)
|
||||
binary.BigEndian.PutUint32(idb, miner.JobId)
|
||||
miner.Job.Job_id = hex.EncodeToString(idb)
|
||||
randomxt_ack.ID = id
|
||||
randomxt_ack.Result.Status = "OK"
|
||||
randomxt_ack.Result.ID = "1"
|
||||
randomxt_ack.Result.Job.JobId = miner.Job.Job_id
|
||||
randomxt_ack.Result.Job.Algo = "rx/0"
|
||||
randomxt_ack.Result.Job.Blob = miner.RandomxTJob.Header
|
||||
randomxt_ack.Result.Job.Height = miner.RandomxTJob.Height
|
||||
randomxt_ack.Result.Job.Variant = "rx/0"
|
||||
randomxt_ack.Result.Job.SeedHash = miner.RandomxTJob.SeedHash
|
||||
target_new, _ := utility.MoneroDiffToTarget(miner.Difficulty)
|
||||
target_str := fmt.Sprintf("%064x", target_new.Bytes())
|
||||
target_strr, strerr := ReverseHexStringByByte(target_str)
|
||||
if strerr != nil {
|
||||
println("ReverseHexStringByByte", strerr.Error())
|
||||
}
|
||||
randomxt_ack.Result.Job.Target = target_strr[48:]
|
||||
|
||||
body, err := json.Marshal(randomxt_ack)
|
||||
if err != nil {
|
||||
miner.Server.Logg.Error("[server]", zap.String("Marshal", err.Error()))
|
||||
miner.TxLock.Unlock()
|
||||
return false
|
||||
}
|
||||
body_string = string(body) + "\n"
|
||||
err = Conn_tx(miner.Conn, []byte(body_string))
|
||||
if err != nil {
|
||||
//delete(miner.Server.Miners, miner.MinerId)
|
||||
//miner.Server.Miners.Delete(miner.MinerId)
|
||||
}
|
||||
} else {
|
||||
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user