1. 请求方式

统一使用 HTTP 请求(基于 HTTP1.0/1.1 标准)的 POST 方法。

2. 安全要求

如果在公网则请求及响应数据采用 HTTPS 加密传输,内网可以使用 HTTP。

3. 授权机制

3.1. client 端

在 HTTP header 中添加 Authorization 字段,其值为根据颁发的 clientId 和 secretKey 生成的 jwt token 值。 其中 jwt token 的 playload 格式为:

字段 类型 描述
clientId string 从授权处获取的 clientId 编号
rnd number 为了防止重放攻击使用的随机数,不得小于 8 位
exp unix timestamp 该 jwt token 的过期时间时间戳,建议比当前时间大 3 到 5 分钟,如果对安全要求高的可以缩小范围,不建议太大了。

3.2. server 端

验证 client 端发送的 HTTP 请求中 header 里面的 Authorization 字段内容是否为合法授权的 jwt token。

3.3. 举例

client 端发送一个请求给 server,并在其 http header 中加上有效的 jwt token:

const _ = require('lodash');
const jwt = require('jsonwebtoken');
const request = require('request-promise-native');

const url = 'http://service_url'; // server端api的URL地址
const clientId = 'xxxxxxxxx';     // 授权处颁发的clientId
const secretKey = 'xxxxx';        // 授权处颁发的secretKey,注意保密

const random = _.random(1000000000, 9999999999);    // 随机数
const exp = Date.now() / 1000 + 180;                 // 有效期180秒
const playload = { clientId: clientId, rnd: random, exp: exp };    // jwt token的playload内容

const parameters = {...}; // 接口请求参数内容

const token = jwt.sign(playload, secretKey);    // 产生授权jwt token

request.post(url, {
    headers: { Authorization: token },         // 在client的http header中设置Authorization字段,其值为前面产生的jwt token
    body: parameters,
    json: true,
}).then(function (resp) {
    // 结果处理
});

4. 请求格式

数据采用 JSON 格式,请注意在 HTTP 请求的 header 中设置:Content-Type: application/json。 为了提高安全性,需对请求内容进行数字签名,请求内容格式如下:

字段 类型 描述
action string 执行操作名,具体见后面接口列表中的接口操作名
at unixTimestamp 请求的时间戳
data string 请求参数内容的 JSON 字符串
signNonce string 签名唯一随机数
sign string 请求的签名,签名过程见后面文档

5. 签名过程

  1. 生成需要签名的字符串: 将请求内容按照 action at data signNonce 的顺序拼接起来,并在末尾在拼上授权处颁发的secretSalt

  2. 生成签名: 对需要签名的字符串进行 HMAC-SHA256 签名得到的 hex 编码的字符串。

6. 请求代码示例

const crypto = require('crypto');
const _ = require('lodash');
const jwt = require('jsonwebtoken');
const request = require('request-promise-native');

const url = 'http://service_url'; // server端api的URL地址
const clientId = 'xxxxxxxxx';     // 授权处颁发的clientId
const secretKey = 'xxxxx';  // 授权处颁发的secretKey,注意保密
const secretSalt = 'xxxxx'; // 授权处颁发的secretSalt,注意保密

const random = _.random(1000000000, 9999999999);    // 随机数
const exp = Date.now() / 1000 + 180;                 // 有效期180秒
const playload = { clientId: clientId, rnd: random, exp: exp };    // jwt token的playload内容

const parameters = {...}; // 接口请求参数内容

const token = jwt.sign(playload, secretKey);    // 产生授权jwt token

const action = 'action-xxx';
const at = Date.now() / 1000;
const data = JSON.stringify(parameters);
const signNonce = _.random(1000000000, 9999999999).toString(); // 随机数;

const needSignContent = action + at.toString() + data + signNonce + secretSalt;
const sign = crypto.createHmac('sha256', secretKey).update(needSignContent).digest('hex'); // 生成签名

request.post(url, {
    headers: { Authorization: token },         // 在client的http header中设置Authorization字段,其值为前面产生的jwt token
    body: {
      action,
      at,
      data,
      signNonce,
      sign
    },
    json: true,
}).then(function (resp) {
    // 结果处理
});

7. 返回格式

返回内容统一为 JSON 格式,包括的字段如下:

字段 类型 描述
code int 执行结果错误码,如果执行成功,为 0,否则为对应的错误码
data any 接口返回数据内容
message string 错误信息

8. 错误码说明

错误码对照表如下:

描述
0 执行成功
5010 输入内容无效
5020 用户身份验证失败
5030 操作失败
5040 权限不足
5050 系统错误

9. 接口定义

9.1. 用户主账户

9.1.1. 创建主账户

action: Account.Create

参数:

字段 是否必须 类型 描述
account string 用户主账户名
phone string 用户手机号
mail string 用户邮箱
password string 用户密码

注意:phone 和 mail 两项有一项不能为空。

返回值:

请根据执行结果错误码判断操作是否成功。

举例:

{
  "code": 0,
  "message": null,
  "data": null
}

9.1.2. 获取账户绑定信息

action: Account.GetBindInfo

参数:

字段 是否必须 类型 描述
account string 用户主账户名

返回值:

字段 类型 描述
data object 主账户绑定信息

主账户绑定信息:

字段 类型 描述
phone string 用户绑定的手机号,在用户只绑定了邮箱的情况下可能为空
mail string 用户绑定的邮箱,在用户只绑定了手机的可能为空

举例:

{
  "code": 0,
  "message": null,
  "data": {
    "phone": "13811012345",
    "mail": "hello@gmail.com"
  }
}

9.1.3. 修改账户绑定手机号

action: Account.UpdatePhone

参数:

字段 是否必须 类型 描述
account string 用户主账户名
phone string 用户手机号

返回值:

请根据执行结果错误码判断操作是否成功。

举例:

{
  "code": 0,
  "message": null,
  "data": null
}

9.1.4. 修改账户绑定邮箱

action: Account.UpdateMail

参数:

字段 是否必须 类型 描述
account string 用户主账户名
mail string 用户邮箱

返回值:

请根据执行结果错误码判断操作是否成功。

举例:

{
  "code": 0,
  "message": null,
  "data": null
}

9.1.5. 修改账户密码

action: Account.UpdatePassword

参数:

字段 是否必须 类型 描述
account string 用户主账户名
password string 用户密码

返回值:

请根据执行结果错误码判断操作是否成功。

举例:

{
  "code": 0,
  "message": null,
  "data": null
}

9.1.6. 检测账户密码

action: Account.CheckPassword

参数:

字段 是否必须 类型 描述
account string 用户主账户名
password string 用户密码

返回值:

字段 类型 描述
data bool 密码是否正确

举例:

{
  "code": 0,
  "message": null,
  "data": false
}

9.1.7. 根据手机号查找用户名

action: Account.QueryUserNameByPhone

参数:

字段 是否必须 类型 描述
phone string 用户手机号

返回值:

字段 类型 描述
data string[] 用户名数组

举例:

{
  "code": 0,
  "message": null,
  "data": ["username1", "username2"]
}

9.1.8. 根据邮箱查找用户名

action: Account.QueryUserNameByMail

参数:

字段 是否必须 类型 描述
mail string 用户邮箱

返回值:

字段 类型 描述
data string[] 用户名数组

举例:

{
  "code": 0,
  "message": null,
  "data": ["username1", "username2"]
}

9.2. 用户子账户

9.2.1. 获取用户账户下所有的子账户名

action: SubAccount.GetUserAll

参数:

字段 是否必须 类型 描述
account string 用户主账户名

返回值:

字段 类型 描述
data string[] 子账户名数组

举例:

{
  "code": 0,
  "message": null,
  "data": ["username1", "username2"]
}

9.2.2. 批量获取子账户基本信息

action: SubAccount.BulkGetBasicInfo

参数:

字段 是否必须 类型 描述
userNames string[] 用户子账户名数组

返回值:

字段 类型 描述
data array 子账户基本信息数组

子账户基本信息:

字段 类型 描述
userName string 用户名
theorySpeed double 额定算力,单位:P
description string 提示名
workerCount int 理论矿机数量
master string 主账户名

举例:

{
  "code": 0,
  "message": null,
  "data": [
    {
      "userName": "username1",
      "theorySpeed": 0.1,
      "workerCount": 10,
      "description": "四川",
      "master": "username1"
    },
    {
      "userName": "username2",
      "theorySpeed": 0.11,
      "workerCount": 12,
      "description": "四川1",
      "master": "username1"
    }
  ]
}

9.2.3. 创建子账户

action: SubAccount.Create

参数:

字段 是否必须 类型 描述
master string 用户主账户名
userName string 用户子账户名
theorySpeed double 额定算力,单位:P
description string 提示名
workerCount int 理论矿机数量

返回值:

请根据执行结果错误码判断操作是否成功。

举例:

{
  "code": 0,
  "message": null,
  "data": null
}

9.2.4. 批量获取子账户的费率信息

action: SubAccount.BulkGetFeeInfo

参数:

字段 是否必须 类型 描述
userNames string[] 用户子账户名数组

返回值:

字段 类型 描述
data array 子账户费率信息数组

子账户费率信息数组:

字段 类型 描述
userName string 用户名
feeType string 费率类型:PPS 或 FPPS
fee double 费率
refer string 推荐人用户名
commission double 推荐人费率
bchPpsFee double BCH 收益的 PPS 费率
bchCommission double 推荐人 BCH 费率

举例:

{
  "code": 0,
  "message": null,
  "data": [
    {
      "userName": "username1",
      "feeType": "FPPS",
      "fee": 0.01,
      "bchPpsFee": 0.01,
      "commission": 0.01,
      "bchCommission": 0.01,
      "refer": "username110"
    },
    {
      "userName": "username2",
      "feeType": "FPPS",
      "fee": 0.01,
      "bchPpsFee": 0.01,
      "commission": 0.01,
      "bchCommission": 0.01,
      "refer": "username110"
    }
  ]
}

9.2.5. 修改子账户费率信息

action: SubAccount.UpdateFeeInfo

参数:

字段 是否必须 类型 描述
userName string 用户子账户名
feeType string 费率类型:PPS 或 FPPS
fee double 费率
refer string 推荐人用户名
commission double 推荐人费率
bchPpsFee double BCH 收益的 PPS 费率
bchCommission double 推荐人 BCH 费率

注意:上面参数传需要修改的内容的值就行,不需要修改的可以不传。

返回值:

请根据执行结果错误码判断操作是否成功。

举例:

{
  "code": 0,
  "message": null,
  "data": null
}

9.2.6. 获取子账户的收款设置信息

action: SubAccount.GetCoinHarvestSetting

参数:

字段 是否必须 类型 描述
userName string 用户子账户名
coinType string 币种:btc、bch

返回值:

字段 类型 描述
data object 子账户收款设置信息

子账户收款设置信息:

字段 类型 描述
address string 收币地址
min double 自动收币最小额,如果为 0 则表示不自动收币
updatedAt datetime 最后更新时间

举例:

{
  "code": 0,
  "message": null,
  "data": {
    "address": "coin-address-xxx",
    "min": 0.01,
    "updatedAt": "2020-03-23 10:13:01"
  }
}

9.2.7. 设置子账户收款设置

action: SubAccount.SetCoinHarvestSetting

参数:

字段 是否必须 类型 描述
userName string 用户子账户名
coinType string 币种:btc、bch
address string 收币地址
min double 自动收币最小额,可选值为:0,0.001,0.01,0.1;如果为 0 则表示不自动收币

返回值:

请根据执行结果错误码判断操作是否成功。

举例:

{
  "code": 0,
  "message": null,
  "data": null
}

9.2.8. 获取子账户的人民币收款设置信息

action: SubAccount.GetMoneyHarvestSetting

参数:

字段 是否必须 类型 描述
userName string 用户子账户名

返回值:

字段 类型 描述
data object 子账户人民币收款设置信息

子账户收款设置信息:

字段 类型 描述
address object 收款地址(银行信息)
min double 自动收币最小额,如果为 0 则表示不自动收币
updatedAt datetime 最后更新时间

收款地址(银行信息):

字段 类型 描述
province string
city string
name string 银行
branch string 支行
owner string 开户人
no string 卡号

举例:

{
  "code": 0,
  "message": null,
  "data": {
    "address": {
      "province": "北京",
      "city": "北京",
      "name": "中国银行",
      "branch": "西二旗支行",
      "owner": "李鸿章",
      "no": "6223211231313123"
    },
    "min": 500,
    "updatedAt": "2020-03-23 10:13:01"
  }
}

9.2.9. 设置子账户人民币收款设置

action: SubAccount.SetMoneyHarvestSetting

参数:

字段 是否必须 类型 描述
userName string 用户子账户名
province string
city string
name string 银行
branch string 支行
owner string 开户人
no string 卡号
min double 自动收币最小额,可选值为:0,0.001,0.01,0.1;如果为 0 则表示不自动收币

返回值:

请根据执行结果错误码判断操作是否成功。

举例:

{
  "code": 0,
  "message": null,
  "data": null
}

9.2.10. 获取子账户挖矿收益自动兑换人民币设置信息

action: SubAccount.GetCoin2MoneySetting

参数:

字段 是否必须 类型 描述
userName string 用户子账户名

返回值:

字段 类型 描述
data object 自动兑换人民币设置信息

自动兑换人民币设置信息:

字段 类型 描述
auto bool 是否自动兑换

举例:

{
  "code": 0,
  "message": null,
  "data": {
    "auto": true
  }
}

9.2.11. 设置子账户挖矿收益自动兑换人民币设置信息

action: SubAccount.SetCoin2MoneySetting

参数:

字段 是否必须 类型 描述
userName string 用户子账户名
auto bool 是否自动兑换

返回值:

请根据执行结果错误码判断操作是否成功。

举例:

{
  "code": 0,
  "message": null,
  "data": null
}

9.2.12. 获取子账户观察者链接信息

action: SubAccount.GetObserverList

参数:

字段 是否必须 类型 描述
userName string 用户子账户名

返回值:

字段 类型 描述
data array 子账户观察者链接信息

子账户观察者链接信息:

字段 类型 描述
link string 链接
remark string 备注名
linkId int 链接编号
rights string[] 观察者具备的权限项数组,目前包括 3 个权限项:dashboard_observer、worker_observer、profit_observer

举例:

{
  "code": 0,
  "message": null,
  "data": [
    {
      "link": "https://btc.top/ob/xxxxx",
      "remark": "运维",
      "linkId": 123,
      "rights": ["worker_observer"]
    },
    {
      "link": "https://btc.top/ob/xxxxxxx",
      "remark": "财务",
      "linkId": 124,
      "rights": ["dashboard_observer", "profit_observer"]
    }
  ]
}

9.2.13. 添加子账户观察者链接信息

action: SubAccount.AddObserverInfo

参数:

字段 是否必须 类型 描述
userName string 用户子账户名
rights string[] 观察者具备的权限项数组,目前包括 3 个权限项:dashboard_observer、worker_observer、profit_observer
remark string 观察者备注

返回值:

请根据执行结果错误码判断操作是否成功。

举例:

{
  "code": 0,
  "message": null,
  "data": null
}

9.2.14. 修改子账户观察者链接信息

action: SubAccount.UpdateObserverInfo

参数:

字段 是否必须 类型 描述
linkId int 链接编号
rights string[] 观察者具备的权限项数组,目前包括 3 个权限项:dashboard_observer、worker_observer、profit_observer
remark string 观察者备注

返回值:

请根据执行结果错误码判断操作是否成功。

举例:

{
  "code": 0,
  "message": null,
  "data": null
}

9.2.15. 删除子账户观察者链接信息

action: SubAccount.DeleteObserverInfo

参数:

字段 是否必须 类型 描述
linkId int 链接编号

返回值:

请根据执行结果错误码判断操作是否成功。

举例:

{
  "code": 0,
  "message": null,
  "data": null
}

9.3. 收益

9.3.1. 获取子账户的收益汇总信息

action: Profit.GetSubAccountSummary

参数:

字段 是否必须 类型 描述
userName string 用户子账户名

返回值:

字段 类型 描述
data array 子账户的收益汇总信息数组

子账户的收益汇总信息:

字段 类型 描述
latestPay double 最近支付
total double 累计收益
remain double 账户余额
autoPay int 是否自动付款。这里保持的自动支付下限。若值为 0 则表示不自动支付,若值为-1 则表示未设置收款地址。
type string 账户类型:btc、bch、cny

举例:

{
  "code": 0,
  "message": null,
  "data": [
    {
      "latestPay": 0.0112,
      "total": 50.123,
      "remain": 0.000123,
      "autoPay": 0.01,
      "type": "btc"
    },
    {
      "latestPay": 0.0114,
      "total": 5.123,
      "remain": 0.000123,
      "autoPay": 0.01,
      "type": "bch"
    }
  ]
}

9.3.2. 获取账户全部子账户的收益汇总信息

action: Profit.GetAccountSummary

参数:

字段 是否必须 类型 描述
account string 用户主账户名

返回值:

字段 类型 描述
data array 账户全部子账户的收益汇总信息

子账户的收益汇总信息:

字段 类型 描述
total double 累计收益
remain double 账户余额
type string 账户类型:btc、bch、cny

举例:

{
  "code": 0,
  "message": null,
  "data": [
    {
      "total": 50.123,
      "remain": 0.000123,
      "type": "btc"
    },
    {
      "total": 5.123,
      "remain": 0.000123,
      "type": "bch"
    }
  ]
}

9.3.3. 获取子账户的出账信息

action: Profit.GetByDay

参数:

字段 是否必须 类型 描述
userName string 用户子账户名
coinType string 币种:btc、bch、cny
start date 开始日期
end date 截止日期

返回值:

字段 类型 描述
data array 出账信息

出账信息:

字段 类型 描述
at string 出账日期
profitPerP double 1P 理论产出
speed double 日均算力,单位 P
total double 总收益
status string 付款状态:saved-存入余额;paying-付款中;finish-付款完成;none-无需支付

举例:

{
  "code": 0,
  "message": null,
  "data": [
    {
      "at": "2020-04-01",
      "profitPerP": 0.000123,
      "speed": 1.0,
      "total": 0.000123
    },
    {
      "at": "2020-04-02",
      "profitPerP": 0.00012401,
      "speed": 1.0,
      "total": 0.00012401
    }
  ]
}

9.3.4. 获取全部用户账户的支付信息

action: Profit.GetAllUserPaymentByDay

参数:

字段 是否必须 类型 描述
day date 日期

返回值:

字段 类型 描述
data array 支付信息

支付信息:

字段 类型 描述
userName string 用户名(子账户名)
at string 出账日期
btcPaid string 需要支付BTC,为了结果准确,进行了格式化,保留8位小数
bchPaid string 需要支付BCH,为了结果准确,进行了格式化,保留8位小数
rmbPaid string 需要支付RMB,为了结果准确,进行了格式化,保留2位小数
btcRemain string 延迟支付BTC,为了结果准确,进行了格式化,保留8位小数
bchRemain string 延迟支付BCH,为了结果准确,进行了格式化,保留8位小数
rmbRemain string 延迟支付RMB,为了结果准确,进行了格式化,保留2位小数
btcLockReason string 延迟支付BTC原因
bchLockReason string 延迟支付BCH原因
rmbLockReason string 延迟支付RMB原因
payType string 支付类型:BTC/RMB/BANK
address string 支付地址,取决与支付类型,如果是BTC则是BTC地址,如果是RMB则是RMB地址(支付宝账号之类的),如果是BANK则是银行地址,注意银行地址是json格式保存的,需要自己进行json反序列化
bchAddress string 支付BCH地址

举例:

{
  "code": 0,
  "message": null,
  "data": [
    {
      "at": "2020-04-01",
      "userName": "test",
      "btcPaid": "0.01234567",
      "bchPaid": "0.01234567",
      "rmbPaid": "0.00",
      "btcRemain": "0.00000000",
      "bchRemain": "0.00000000",
      "rmbRemain": "0.00",
      "btcLockReason": "",
      "bchLockReason": "",
      "rmbLockReason": "",
      "payType": "BTC",
      "address": "19weei3Jh4t3fHrYzW6iVgBUnzw2aY8638",
      "bchAddress": "19weei3Jh34234fHrYzW6iVgBUnzw2aY8638"
    },
    {
       "at": "2020-04-01",
       "userName": "test2",
       "btcPaid": "0.01234567",
       "bchPaid": "0.01234567",
       "rmbPaid": "0.00",
       "btcRemain": "0.00000000",
       "bchRemain": "0.00000000",
       "rmbRemain": "0.00",
       "btcLockReason": "",
       "bchLockReason": "",
       "rmbLockReason": "",
       "payType": "BTC",
       "address": "19weei3Jh4t3fHrYzW6iVgBUnzw2aY8638",
       "bchAddress": "19weei3Jh34234fHrYzW6iVgBUnzw2aY8638"
    }
  ]
}

9.4. 算力

9.4.1. 获取子账户的日算力信息

action: Speed.GetSubAccountDailySpeed

参数:

字段 是否必须 类型 描述
userName string 用户子账户名
start date 开始日期
end date 截止日期

返回值:

字段 类型 描述
data array 日算力信息

日算力信息:

字段 类型 描述
time string 日期
validSpeed int 算力
rejectRate double 拒绝率

举例:

{
  "code": 0,
  "message": null,
  "data": [
    {
      "time": "2020-04-01",
      "validSpeed": 11234342234231434,
      "rejectRate": 0.00123
    },
    {
      "time": "2020-04-02",
      "validSpeed": 11234342234231424,
      "rejectRate": 0.00122
    }
  ]
}

9.4.2. 获取子账户的小时算力信息

action: Speed.GetSubAccountHourlySpeed

参数:

字段 是否必须 类型 描述
userName string 用户子账户名
start datetime 开始时间
end datetime 截止时间

返回值:

字段 类型 描述
data array 小时算力信息

小时算力信息:

字段 类型 描述
time string 时间(小时)
validSpeed int 算力
rejectRate double 拒绝率

举例:

{
  "code": 0,
  "message": null,
  "data": [
    {
      "time": "2020-04-01 00:00:00",
      "validSpeed": 11234342234231434,
      "rejectRate": 0.00123
    },
    {
      "time": "2020-04-01 01:00:00",
      "validSpeed": 11234342234231424,
      "rejectRate": 0.00122
    }
  ]
}

9.4.3. 获取子账户的实时算力信息

action: Speed.GetSubAccountRealtimeSpeed

参数:

字段 是否必须 类型 描述
userName string 用户子账户名

返回值:

字段 类型 描述
data object 实时算力信息

实时算力信息:

字段 类型 描述
speed5m object 5 分钟算力
speed10m object 10 分钟算力
speed30m object 30 分钟算力
speed24h object 24 小时算力

算力格式:

字段 类型 描述
validSpeed int 有效算力(H/s)
rejectRate float 拒绝率

举例:

{
  "code": 0,
  "message": null,
  "data": {
    "speed5m": { "validSpeed": 24561271905291252, "rejectRate": 0.007 },
    "speed10m": { "validSpeed": 24388516638335084, "rejectRate": 0.001 },
    "speed30m": { "validSpeed": 24559043561725624, "rejectRate": 0 },
    "speed24h": { "validSpeed": 24559042561725624, "rejectRate": 0 }
  }
}

9.4.4. 获取矿机的日算力信息

action: Speed.GetWorkerDailySpeed

参数:

字段 是否必须 类型 描述
userName string 用户子账户名
worker string 矿机名
start date 开始日期
end date 截止日期

返回值:

字段 类型 描述
data array 日算力信息

日算力信息:

字段 类型 描述
time string 日期
validSpeed int 算力
rejectRate double 拒绝率

举例:

{
  "code": 0,
  "message": null,
  "data": [
    {
      "time": "2020-04-01",
      "validSpeed": 11234342234231434,
      "rejectRate": 0.00123
    },
    {
      "time": "2020-04-02",
      "validSpeed": 11234342234231424,
      "rejectRate": 0.00122
    }
  ]
}

9.4.5. 获取矿机的小时算力信息

action: Speed.GetWorkerHourlySpeed

参数:

字段 是否必须 类型 描述
userName string 用户子账户名
worker string 矿机名
start datetime 开始时间
end datetime 截止时间

返回值:

字段 类型 描述
data array 小时算力信息

小时算力信息:

字段 类型 描述
time string 时间(小时)
validSpeed int 算力
rejectRate double 拒绝率

举例:

{
  "code": 0,
  "message": null,
  "data": [
    {
      "time": "2020-04-01 00:00:00",
      "validSpeed": 11234342234231434,
      "rejectRate": 0.00123
    },
    {
      "time": "2020-04-01 01:00:00",
      "validSpeed": 11234342234231424,
      "rejectRate": 0.00122
    }
  ]
}

9.4.6. 批量获取子账号下所有矿机的小时算力信息

action: Speed.GetSubAccountAllWorkersHourlySpeedBulk

参数:

字段 是否必须 类型 描述
userName string 用户子账户名
start datetime 开始时间
end datetime 截止时间

返回值:

字段 类型 描述
data array 小时算力信息

小时算力信息:

字段 类型 描述
worker string 矿机名
time string 时间(小时)
validSpeed int 算力
rejectRate double 拒绝率

举例:

{
  "code": 0,
  "message": null,
  "data": [
    {
      "worker": "100x001",
      "time": "2020-04-01 00:00:00",
      "validSpeed": 11234342234231434,
      "rejectSpeed": 0.00123
    },
    {
      "worker": "100x002",
      "time": "2020-04-01 01:00:00",
      "validSpeed": 11234342234231424,
      "rejectRate": 0.00122
    }
  ]
}

9.4.7. 获取系统的日算力信息(最近 30 天)

action: Speed.GetSystemDailySpeed

参数:

返回值:

字段 类型 描述
data array 日算力信息

日算力信息:

字段 类型 描述
time string 日期
validSpeed int 算力
rejectRate double 拒绝率

举例:

{
  "code": 0,
  "message": null,
  "data": [
    {
      "time": "2020-04-01",
      "validSpeed": 11234342234231434,
      "rejectRate": 0.00123
    },
    {
      "time": "2020-04-02",
      "validSpeed": 11234342234231424,
      "rejectRate": 0.00122
    }
  ]
}

9.4.8. 获取系统的小时算力信息(最近 24 小时)

action: Speed.GetSystemHourlySpeed

参数:

返回值:

字段 类型 描述
data array 小时算力信息

小时算力信息:

字段 类型 描述
time string 时间(小时)
validSpeed int 算力
rejectRate double 拒绝率

举例:

{
  "code": 0,
  "message": null,
  "data": [
    {
      "time": "2020-04-01 00:00:00",
      "validSpeed": 11234342234231434,
      "rejectRate": 0.00123
    },
    {
      "time": "2020-04-01 01:00:00",
      "validSpeed": 11234342234231424,
      "rejectRate": 0.00122
    }
  ]
}

9.4.9. 获取系统的实时算力信息

action: Speed.GetSystemRealtimeSpeed

参数:

字段 是否必须 类型 描述
coinType string 币种:btc、bch,如果要获取全部请传 all

返回值:

字段 类型 描述
data object 实时算力信息

实时算力信息:

字段 类型 描述
speed5m object 5 分钟算力
speed10m object 10 分钟算力
speed30m object 30 分钟算力

算力格式:

字段 类型 描述
totalSpeed int 总效算力(H/s)
rejectRate float 拒绝率

举例:

{
  "code": 0,
  "message": null,
  "data": [
    {
      "speed5m": { "totalSpeed": 24561271905291252, "rejectRate": 0.007 },
      "speed10m": { "totalSpeed": 24388516638335084, "rejectRate": 0.001 },
      "speed30m": { "totalSpeed": 24559043561725624, "rejectRate": 0 }
    },
    {
      "speed5m": { "totalSpeed": 24561271905291252, "rejectRate": 0.007 },
      "speed10m": { "totalSpeed": 24388516638335084, "rejectRate": 0.001 },
      "speed30m": { "totalSpeed": 24559043561725624, "rejectRate": 0 }
    }
  ]
}

9.5. 矿机

9.5.1. 获取用户矿机详细信息

action: Worker.GetSubAccountWorkerList

参数:

字段 是否必须 类型 描述
userName string 用户子账户名

返回值:

字段 类型 描述
data array 矿机详细信息

矿机详细信息:

字段 类型 描述
name string 矿机名称
speed5m object 5 分钟算力
speed30m object 30 分钟算力
speed24h object 24 小时算力
lastCommitTime string 最近提交时间
status number 状态:1-在线;2-停机;3-失效;
group object 矿机所属分组信息

算力格式:

字段 类型 描述
validSpeed int 有效算力(H/s)
rejectRate float 拒绝率

矿机所属分组信息:

字段 类型 描述
id int 分组编号
name string 矿机分组名称

举例:

{
  "code": 0,
  "message": null,
  "data": [
    {
      "name": "worker1x100",
      "speed5m": { "validSpeed": 24561271905291252, "rejectRate": 0.007 },
      "speed24h": { "validSpeed": 24388516638335084, "rejectRate": 0.001 },
      "speed30m": { "validSpeed": 24559043561725624, "rejectRate": 0 },
      "lastCommitTime": "2020-04-01 10:02:12",
      "status": 1,
      "group": {
        "id": 1,
        "name": "四川"
      }
    },
    {
      "name": "worker1x101",
      "speed5m": { "validSpeed": 24561271905291252, "rejectRate": 0.007 },
      "speed24h": { "validSpeed": 24388516638335084, "rejectRate": 0.001 },
      "speed30m": { "validSpeed": 24559043561725624, "rejectRate": 0 },
      "lastCommitTime": "2020-04-01 10:02:13",
      "status": 1,
      "group": {
        "id": 1,
        "name": "四川"
      }
    }
  ]
}

9.5.2. 获取用户矿机汇总信息

action: Worker.GetSubAccountWorkerSummary

参数:

字段 是否必须 类型 描述
userName string 用户子账户名

返回值:

字段 类型 描述
data object 矿机汇总信息

矿机汇总信息:

字段 类型 描述
running int 运行中
stopped int 停机数
invalid int 失效数

举例:

{
  "code": 0,
  "message": null,
  "data": {
    "running": 123,
    "stopped": 1,
    "invalid": 2
  }
}

9.5.3. 获取用户矿机分组信息

action: Worker.GetSubAccountWorkerGroupList

参数:

字段 是否必须 类型 描述
userName string 用户子账户名

返回值:

字段 类型 描述
data array 矿机分组信息

矿机分组信息:

字段 类型 描述
id int 分组编号
name string 矿机分组名称

举例:

{
  "code": 0,
  "message": null,
  "data": [
    {
      "id": 1,
      "name": "四川"
    },
    {
      "id": 2,
      "name": "重庆"
    }
  ]
}

9.5.4. 创建矿机分组

action: Worker.CreateGroup

参数:

字段 是否必须 类型 描述
userName string 用户子账户名
name string 分组名

返回值:

请根据执行结果错误码判断操作是否成功。

举例:

{
  "code": 0,
  "message": null,
  "data": null
}

9.5.5. 修改矿机分组

action: Worker.UpdateGroup

参数:

字段 是否必须 类型 描述
userName string 用户子账户名
name string 分组名
groupId int 分组编号

返回值:

请根据执行结果错误码判断操作是否成功。

举例:

{
  "code": 0,
  "message": null,
  "data": null
}

9.5.6. 删除矿机分组

action: Worker.DeleteGroup

参数:

字段 是否必须 类型 描述
userName string 用户子账户名
groupId int 分组编号

返回值:

请根据执行结果错误码判断操作是否成功。

举例:

{
  "code": 0,
  "message": null,
  "data": null
}

9.5.7. 批量设置矿机所属分组

action: Worker.SetWorkerGroupBulk

参数:

字段 是否必须 类型 描述
userName string 用户子账户名
groupId int 分组编号
workers string[] 矿机名数组

返回值:

请根据执行结果错误码判断操作是否成功。

举例:

{
  "code": 0,
  "message": null,
  "data": null
}

9.5.8. 获取子账户所属矿机的在线情况

action: Worker.GetSubAccountWorkerHourlyActiveNumList

参数:

字段 是否必须 类型 描述
userName string 用户子账户名
start date 开始日期
end date 截止日期

返回值:

字段 类型 描述
data array 每小时矿机在线信息

每小时小时矿机在线信息:

字段 类型 描述
at string 时间(小时)
workerNum int 在线矿机数量

举例:

{
  "code": 0,
  "message": null,
  "data": [
     {
        "at": "2020-04-01 00:00:00",
        "workerNum": 100
     },
     {
        "at": "2020-04-01 01:00:00",
        "workerNum": 100
     }
  ]
}

9.5.9. 获取子账户所属矿机的天在线情况

action: Worker.GetSubAccountWorkerDailyActiveNumList

参数:

字段 是否必须 类型 描述
userName string 用户子账户名
start date 开始日期
end date 截止日期

返回值:

字段 类型 描述
data array 每天矿机在线信息

每小时小时矿机在线信息:

字段 类型 描述
at string 日期
workerNum int 在线矿机数量

举例:

{
  "code": 0,
  "message": null,
  "data": [
     {
        "at": "2020-04-01",
        "workerNum": 100
     },
     {
        "at": "2020-04-01",
        "workerNum": 100
     }
  ]
}