add support tari-randomx

This commit is contained in:
lzx
2025-09-09 14:54:04 +08:00
parent 8cc56a489e
commit 917d7118e6
26 changed files with 14297 additions and 111 deletions

View File

@@ -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 {
}