Skip to content

挖矿接口

linj edited this page Nov 23, 2022 · 1 revision

挖矿接口

[TOC]

1 获取执行器地址 ConvertExectoAddr

迁移到执行器接口

2 绑定挖矿地址 CreateBindMiner

请求报文:

{
	"jsonrpc":"2.0",
	"id":int32,
	"method":"ticket.CreateBindMiner",
    "params":{
		"bindAddr":"string",
		"originAddr":"string",
		"amount":int64,
		"checkBalance":bool
	}
}

参数说明:

参数 类型 是否必填 说明
bindAddr string 挖矿绑定地址
originAddr string 原始地址
amount int64 用于购买ticket的bty数量
checkBalance bool 是否进行额度检查

响应报文:

{
	"id":int32,
    "result":[
		{
			"txhex":"string"
		}
	]
}

参数说明:

参数 类型 说明
txhex string 交易十六进制字符串

3 设置自动挖矿 SetAutoMining

请求报文:

{
	"jsonrpc":"2.0",
    "id":int32,
    "method":"ticket.SetAutoMining",
    "params":[
	    {
		    "flag":int32
		}
	]
}

参数说明:

参数 类型 是否必填 说明
flag int32 标识符,1 为开启自动挖矿,0 为关闭自动挖矿。
reserve int64 保留字段

响应报文:

{
    "id":int32,
    "result":[
	     {
		     "isOK":true,
			 "msg":""
	     }
	],
    "error":null
}

参数说明:

参数 类型 说明
isok bool 在成功时,返回 true;失败时,返回 false。
msg string 在成功时,为空;失败时,返回错误信息。

4 获取Ticket的数量 GetTicketCount

请求报文:

{
    "jsonrpc":"2.0",
    "id":int32,
    "method":"ticket.GetTicketCount",
    "params":[]
}

参数说明:

参数 类型 是否必填 说明

响应报文:

{
    "id":int32,
    "result":int64
}

参数说明:

参数 类型 说明
result int64 返回ticket的数量

5 获取绑定的挖矿地址

请求报文:

{
    "method":"Chain33.Query",
    "params":[
        {
            "execer":"ticket",
            "funcName":"MinerAddress",
            "payload":{
                "data":"1NNaYHkscJaLJ2wUrFNeh6cQXBS4TrFYeB"
            }
        }
    ]
}

参数说明:

参数 类型 是否必填 说明
execer []byte 执行器名称
funcName string 调用函数名:MinerAddress,获取绑定的挖矿地址
payload []byte 函数参数,data:冷钱包地址

响应报文:

{
    "id":null,
    "result":{
        "data":"12HKLEn6g4FH39yUbHh4EVJWcFo5CXg22d"
    },
    "error":null
}

参数说明:

参数 类型 说明
result data 返回挖矿地址

6 获取矿工地址的对应的冷钱包地址

请求报文:

    {
        "method":"Chain33.Query",
        "params":[
            {
                "execer":"ticket",
                "funcName":"MinerSourceList",
                "payload":{
                    "data":"12HKLEn6g4FH39yUbHh4EVJWcFo5CXg22d"
                }
            }
        ]
}

参数说明:

参数 类型 是否必填 说明
execer []byte 执行器名称
funcName string 调用函数名:MinerSourceList,矿工地址的对应的冷钱包地址
payload []byte 函数参数,data:矿工地址

响应报文:

{
    "id":null,
    "result":{
        "datas":[
            "1NNaYHkscJaLJ2wUrFNeh6cQXBS4TrFYeB"
        ]
    },
    "error":null
}

参数说明:

参数 类型 说明
result datas 冷钱包地址列表

7 关闭指定账户绑定的tickets

请求报文:可以填空参数close所有当前钱包账户绑定的ticket

    {
        "method":"ticket.CloseTickets",
        "params":[
            {
                "minerAddress":"12HKLEn6g4FH39yUbHh4EVJWcFo5CXg22d",
            }
        ]
}

参数说明:

参数 类型 是否必填 说明
minerAddress string 可以指定账户来只关闭与之绑定的tickets
ticketId []string ticketId

响应报文:

{
    "id":null,
    "result":{
        "hashes":[] string
    },
    "error":null
}

参数说明:

参数 类型 说明
hashes []string ticket地址列表

8 构造买票交易 ticket open

请求报文:

{
    "jsonrpc":"2.0",
    "id":int32,
    "method":"Chain33.CreateTransaction",
    "params":[{"execer" : "string", "actionName" : "string", "payload" : {"minerAddress" : "string", "returnAddress" : "string", "count": int32, "randSeed" : int64, "pubHashes" : ["string"]} }]
}

参数说明:

参数 类型 是否必填 说明
execer string ticket
actionName string Topen
payload 结构体 Topen需要的参数
minerAddress string 挖矿地址
returnAddress string 收益地址,(非委托挖矿时,和挖矿地址一致)
count int32 买票数量
randSeed int64 随机数种子
pubHashes 字符串数组 数组长度为count, 每个pubHash 用随机的源字符串通过SHA256算法生成。 挖矿时需要公布生成pubHash的源字符串,源字符串用于生成链上随机数

注意:

  1. 实现需要保留生成的pubHash的源字符串, 一般将这个功能集成到钱包, 由钱包来管理的随机字符串

响应报文:

{
    "id":int32,
    "result": "string"
}

参数说明:

参数 类型 说明
result string 交易的十六进制字符串

9 构造挖矿交易 ticket miner

  1. 由于挖矿交易放在区块的第一个交易, 由挖矿时生成, 不需要构造接口。
Clone this wiki locally