DBC-Blockchain 主网 RPC

2022年1月6日大约 6 分钟

DBC-Blockchain 主网 RPC

发送 RPC 请求的方式,请参考上一篇文章。

并不是所有的链上数据都有 RPC 接口。如果想要查询的数据(包括历史数据)没有通过 RPC 暴露出来,可以通过查询链上存储来获取对应数据。

1. onlineProfile 模块

onlineProfile 模块记录了机器在线奖励的信息

1.1 查询某个资金账户控制的所有机器

  • 示例
{
  "jsonrpc": "2.0",
  "id": 1,
  "method": "onlineProfile_getStakerInfo",
  "params": ["5FEio5dgXeXsASdo3Wh5DQ8zfbRfQJTXYmFkCbSCFk2qsTt6"] # 资金账户 (stash account)
}
  • 结果说明
{
  "jsonrpc": "2.0",
  "result": {
    "bondedMachines": [
      {
        "calcPoint": 51775, # 机器算力点数
        "gpuNum": 4, # 机器GPU数量
        "machineId": "7a79fd95e89c3db2e8bc052cb307d4130f6750cb715c44639e2c3faa7217ef1f", # 机器ID
        "machineStatus": "online" # 机器当前状态
      },
      {
        "calcPoint": 51775,
        "gpuNum": 4,
        "machineId": "8a79fd95e89c3db2e8bc052cb307d4130f6750cb715c44639e2c3faa7217ef1f",
        "machineStatus": "online"
      },
      {
        "calcPoint": 94143,
        "gpuNum": 4,
        "machineId": "9a79fd95e89c3db2e8bc052cb307d4130f6750cb715c44639e2c3faa7217ef1f",
        "machineStatus": "online"
      }
    ],
    "stashStatistic": {
      "canClaimReward": "664079816723400000", # 可以领取的DBC奖励
      "onlineMachine": [ # 在线的机器
        "7a79fd95e89c3db2e8bc052cb307d4130f6750cb715c44639e2c3faa7217ef1f"
      ],
      "totalBurnFee": "0", # 银河竞赛开启后,销毁的租金数
      "totalCalcPoints": 197930, # 总算力点数
      "totalClaimedReward": "0", # 已经领取的奖励
      "totalEarnedReward": "2656319266893600000", # 已经获得的奖励
      "totalGpuNum": 12, # 总绑定的GPU数量
      "totalMachine": [
        "7a79fd95e89c3db2e8bc052cb307d4130f6750cb715c44639e2c3faa7217ef1f"
      ],
      "totalRentFee": "0", # 获得的机器租金
      "totalRentedGpu": 0 # 被租用的GPU数量
    }
  },
  "id": 1
}

1.2 查询机器某个 Era 获得收益

  • 示例
{
  "jsonrpc": "2.0",
  "id": 1,
  "method": "onlineProfile_getMachineEraReward",
  "params": [
    "ee0d003006f8ddbccb97dff96bcb4bee1b8c1aeaf7c64e0ca9d0f31752d17875",
    1
  ] # 机器ID, 第几个Era
}
  • 结果说明
{
  "jsonrpc": "2.0",
  "result": "123456", # Era 1该机器获取的总奖励数量
  "id": 1
}

1.3. 查询机器某个 Era 解锁收益

  • 示例
{
  "jsonrpc": "2.0",
  "id": 1,
  "method": "onlineProfile_getMachineEraReleasedReward",
  "params": [
    "ee0d003006f8ddbccb97dff96bcb4bee1b8c1aeaf7c64e0ca9d0f31752d17875",
    1
  ] # 机器ID;第几个Era
}
  • 结果
{
  "jsonrpc": "2.0",
  "result": "123456", # Era 1 该机器解锁的奖励
  "id": 1
}

1.4. 查询资金账户某个 Era 获得收益

  • 示例:
{
  "jsonrpc": "2.0",
  "id": 1,
  "method": "onlineProfile_getStashEraReward",
  "params": ["5DhR2dxiPZquPhFjfPzFg5jZENdr375hbX643kr9FBXMVa2z", 1] # 资金账户; 第几个Era
}
  • 结果:
{
  "jsonrpc": "2.0",
  "result": "123456", # Era 1 该资金账户获得的奖励
  "id": 1
}

1.5. 查询资金账户某个 Era 解锁奖励

  • 示例:
{
  "jsonrpc": "2.0",
  "id": 1,
  "method": "onlineProfile_getStashEraReward",
  "params": ["5DhR2dxiPZquPhFjfPzFg5jZENdr375hbX643kr9FBXMVa2z", 1] # 资金账户; 第几个Era
}
  • 结果:
{
  "jsonrpc": "2.0",
  "result": "123456", # Era 1 该资金账户解锁的奖励
  "id": 1
}

1.6. 查询机器详细信息

  • 示例:
{
  "jsonrpc": "2.0",
  "id": 1,
  "method": "onlineProfile_getMachineInfo",
  "params": ["ee0d003006f8ddbccb97dff96bcb4bee1b8c1aeaf7c64e0ca9d0f31752d17875"] # 机器ID
}
  • 结果
{
  "jsonrpc": "2.0",
  "result": {
    "bondingHeight": 531155, # 开始上链时间
    "controller": "5FTWuKEDhPsRWaeK5Jfn68a6rEFPsW8AAVF5YtfqNrznTWfv", # 机器控制账户
    "initStakePerGpu": "100000000000000000000", # 上链时每卡质押数量
    "lastMachineRenter": "5D45i3Ac4fXoimZQETJVMyYu79tAYzt4xQzEwzNLfirhsbg5", # 最后一个机器租用人
    "lastMachineRestake": 537808, # 机器付全部质押时间
    "lastOnlineHeight": 580412, # 机器最后一次状态为online的时间
    "machineInfoDetail": { # 机器详细信息
      "committee_upload_info": {
        "calc_point": 60775,
        "cpu_core_num": 64,
        "cpu_rate": 2900,
        "cpu_type": "Intel(R) Xeon(R) Silver 4214R",
        "cuda_core": 8704,
        "data_disk": 1800,
        "gpu_mem": 10,
        "gpu_num": 4,
        "gpu_type": "GeForceRTX2080Ti",
        "is_support": true,
        "machine_id": "7a79fd95e89c3db2e8bc052cb307d4130f6750cb715c44639e2c3faa7217ef1f",
        "mem_num": 471,
        "rand_str": "",
        "sys_disk": 350
      },
      "staker_customize_info": { # 机器其他信息
        "download_net": 20,
        "latitude": {
          "North": 306667
        },
        "longitude": {
          "East": 1040667
        },
        "server_room": "0x6465f54d26f4b406261e7e5201a4a17551ad4d27448609f2d7cdcb75b413524c",
        "telecom_operators": ["China Unicom"],
        "upload_net": 20
      }
    },
    "machineStash": "5HWSG8FXkCSe4NgwzbnA64nT5bmRFKRKgbSKj2X8Pe7KyYcQ", # 机器资金账户
    "machineStatus": "rented", # 机器当前状态
    "onlineHeight": 537808, # 机器上线时间
    "rewardCommittee": [ # 可以获得机器在线奖励的委员会列表
      "5EfFToHMVc3SEzJCiSisAMMu3zVMsufaxWwNECUM3k2qUEFQ",
      "5G3oJ8cGv4mhzRvtoBtGG9cX3MTNKxNTcMNAVykxA5ZFz8wi",
      "5GGcwSx1xb4tpCfopfk8kSmJNQ6qpH38yjFVLEYYqdnECwcX"
    ],
    "rewardDeadline": 733, # 委员会奖励结束时间(era)
    "stakeAmount": "400000000000000000000", # 机器质押数量
    "totalBurnFee": "0", # 因银河竞赛开启,销毁的租金数
    "totalRentFee": "60329673396778369975", # 总租金数
    "totalRentedDuration": 14, # 被租用时长
    "totalRentedTimes": 2 # 被租用次数
  },
  "id": 1
}

1.7. 查看矿工个数

示例:

{
  "jsonrpc": "2.0",
  "id": 1,
  "method": "onlineProfile_getStakerNum",
  "params": []
}

结果说明:

{
  "jsonrpc": "2.0",
  "result": 13,  # 矿工个数(>=1台机器)
  "id": 1
}

1.8. 查看所有机器列表

  • 示例:
{
  "jsonrpc": "2.0",
  "id": 1,
  "method": "onlineProfile_getMachineList",
  "params": []
}
  • 结果说明:
{
  "jsonrpc": "2.0",
  "result": {
    "bondingMachine": [],
    "bookedMachine": [
      "7a79fd95e89c3db2e8bc052cb307d4130f6750cb715c44639e2c3faa7217ef12"
      "9a79fd95e89c3db2e8bc052cb307d4130f6750cb715c44639e2c3faa7217ef1f"
      "aa79fd95e89c3db2e8bc052cb307d4130f6750cb715c44639e2c3faa7217ef1d"
    ],
    "confirmedMachine": [],
    "fulfillingMachine": [],
    "offlineMachine": [],
    "onlineMachine": [],
    "refusedMachine": [],
    "refusedMutHardwareMachine": [],
    "rentedMachine": []
  },
  "id": 1
}

1.9 查看 onlineProfile 模块统计信息

  • 示例
{
  "jsonrpc": "2.0",
  "id": 1,
  "method": "onlineProfile_getOpInfo",
  "params": []
}
  • 结果说明:
{
  "jsonrpc": "2.0",
  "result": {
    "totalBurnFee": "0",
    "totalCalcPoints": 21389044,
    "totalGpuNum": 961,
    "totalRentFee": "15509145941941806044301",
    "totalRentedGpu": 937,
    "totalStake": "96215000000000000000000",
    "totalStaker": 13
  },
  "id": 1
}

1.10 获取账户链上身份

  • 示例
{
  "jsonrpc": "2.0",
  "id": 1,
  "method": "onlineProfile_getStakerIdentity",
  "params": ["5CqTCD23gTbfmP8s6g1ehbJ66i6wi4Er4AguAw7yggDAKmPu"]
}
  • 结果说明:
{
  "jsonrpc": "2.0",
  "result": "Alice",
  "id": 1
}

1.11 获取矿工统计信息

  • 示例
{
  "jsonrpc": "2.0",
  "id": 1,
  "method": "onlineProfile_getStakerListInfo",
  "params": [0, 5]
}
  • 结果说明
{
  "jsonrpc": "2.0",
  "result": [
    {
      "calcPoints": 10045876,
      "index": 0,
      "stakerAccount": "5CsRZJCDiFJbZas6m2NnuYpBqo9gYv2nixHbzGLUVGdgx94w",
      "stakerName": "Alice",
      "totalBurnFee": "0",
      "totalGpuNum": 400,
      "totalReleasedReward": "3058070375932000902000",
      "totalRentFee": "6923734258518997224842",
      "totalRentedGpu": 400,
      "totalReward": "10311175917767854800000"
    },
    {
      "calcPoints": 3153803,
      "index": 2,
      "stakerAccount": "5HJugpuDxQGKLJwmv6K5eWFepDPkhPbwyTDR5vKjCv1MwUcS",
      "stakerName": "Bob",
      "totalBurnFee": "0",
      "totalGpuNum": 132,
      "totalReleasedReward": "1392103944062414253000",
      "totalRentFee": "2669666089085907226556",
      "totalRentedGpu": 132,
      "totalReward": "4458201216316382700000"
    },
    {
      "calcPoints": 617340,
      "index": 4,
      "stakerAccount": "5Gg1z77NCrUNyV4c5rm9tb3x27rYjBVYh74UrVNJh1TJGsx4",
      "stakerName": "Eve",
      "totalBurnFee": "0",
      "totalGpuNum": 28,
      "totalReleasedReward": "279809088882620814000",
      "totalRentFee": "527263236025890876875",
      "totalRentedGpu": 28,
      "totalReward": "893193550619416200000"
    }
  ],
  "id": 1
}

1.12 按位置获取统计信息

  • 示例
{
  "jsonrpc": "2.0",
  "id": 1,
  "method": "onlineProfile_getPosGpuInfo",
  "params": []
}
  • 结果说明
{
  "jsonrpc": "2.0",
  "result": [
    [
      {
        "East": 1182946
      },
      {
        "North": 340643
      },
      {
        "offlineGpu": 0,
        "onlineGpu": 400,
        "onlineGpuCalcPoints": 7496900,
        "rentedGpu": 400
      }
    ],
    [
      {
        "East": 1399262
      },
      {
        "North": 353817
      },
      {
        "offlineGpu": 0,
        "onlineGpu": 1,
        "onlineGpuCalcPoints": 21029,
        "rentedGpu": 1
      }
    ]
  ],
  "id": 1
}

2. Committee 模块

2.1 committee_getCommitteeList

  • 示例:
{
  "jsonrpc": "2.0",
  "id": 1,
  "method": "committee_getCommitteeList",
  "params": []
}
  • 结果说明:
{
  "jsonrpc": "2.0",
  "result": {
    "chillList": ["5GGcwSx1xb4tpCfopfk8kSmJNQ6qpH38yjFVLEYYqdnECwcX"],  # 当前停止接单的委员会
    "fulfillingList": [],
    "normal": [ # 当前状态正常的委员会
      "5D1vwMoK1DjBF7pfApKjT9Gi5C4DKHvZMztFRhTsMqo71B8r",
      "5DdA3eHdWKuHLjqEquKQzyvhumNBEN32RxRWkuuaFvda474S",
      "5EfFToHMVc3SEzJCiSisAMMu3zVMsufaxWwNECUM3k2qUEFQ",
      "5EhZqXq9objj6Qf7DzCxmjZfUHUbZh9JK5Xb3DgKmpvjyMMV",
      "5FyU86E1arMRNwdxtRJvBs6qX4Y1o1UB2TXHUV3ZJcmQVkQK",
      "5G3oJ8cGv4mhzRvtoBtGG9cX3MTNKxNTcMNAVykxA5ZFz8wi",
      "5GFCgrhHv2jwimWZAgnDzSdvJocDzEadCk78B5AZJc5tYSYp",
      "5Gy6ANnyoWwo6WxuN5Vxz5hogY2JXg51FZbR99gYtQ49qckW",
      "5HDjo1p7DNmfXsjvcAjFogQ8Ue8fNb26Z1RAD9XqmWrKETFk"
    ],
    "waitingBoxPubkey": ["5Gv3FyFA7bFbUqqgXWXwkgCkazMaaBpfbVnwtVVRP5vgUYRs"] # 还没设置boxPubkey的委员会
  },
  "id": 1
}

3. OnlineCommittee 模块

3.1 获取机器分配的委员会列表

  • 示例:
{
  "jsonrpc": "2.0",
  "id": 1,
  "method": "onlineCommittee_getMachineCommitteeList",
  "params": ["38f4a824e0dc1fc5a9a7dccff53417b300fc0edad208176d8770597d98f6eb5c"]  # 机器ID
}
  • 结果说明
{
  "jsonrpc": "2.0",
  "result": {
    "bookTime": 533682, # 派单时间
    "bookedCommittee": [ # 派单委员会
      "5D1vwMoK1DjBF7pfApKjT9Gi5C4DKHvZMztFRhTsMqo71B8r",
      "5DdA3eHdWKuHLjqEquKQzyvhumNBEN32RxRWkuuaFvda474S",
      "5Gy6ANnyoWwo6WxuN5Vxz5hogY2JXg51FZbR99gYtQ49qckW"
    ],
    "confirmStartTime": 538002, # 开始提交原始机器信息时间
    "confirmedCommittee": [ # 已提交了原始值的委员会
      "5D1vwMoK1DjBF7pfApKjT9Gi5C4DKHvZMztFRhTsMqo71B8r",
      "5DdA3eHdWKuHLjqEquKQzyvhumNBEN32RxRWkuuaFvda474S",
      "5Gy6ANnyoWwo6WxuN5Vxz5hogY2JXg51FZbR99gYtQ49qckW"
    ],
    "hashedCommittee": [ # 已提交了机器信息Hash的委员会
      "5D1vwMoK1DjBF7pfApKjT9Gi5C4DKHvZMztFRhTsMqo71B8r",
      "5DdA3eHdWKuHLjqEquKQzyvhumNBEN32RxRWkuuaFvda474S",
      "5Gy6ANnyoWwo6WxuN5Vxz5hogY2JXg51FZbR99gYtQ49qckW"
    ],
    "onlinedCommittee": [ # 机器上线成功,将会获得奖励的委员会
      "5D1vwMoK1DjBF7pfApKjT9Gi5C4DKHvZMztFRhTsMqo71B8r",
      "5DdA3eHdWKuHLjqEquKQzyvhumNBEN32RxRWkuuaFvda474S",
      "5Gy6ANnyoWwo6WxuN5Vxz5hogY2JXg51FZbR99gYtQ49qckW"
    ],
    "status": "finished" # 派单状态
  },
  "id": 1
}

3.2 获取委员会对机器的审核时间

  • 示例:
{
  "jsonrpc": "2.0",
  "id": 1,
  "method": "onlineCommittee_getCommitteeOps",
  "params": [
    "5D1vwMoK1DjBF7pfApKjT9Gi5C4DKHvZMztFRhTsMqo71B8r",
    "74339d3413c1386d23d92e55586ccf25090c7eb762928f9bc69799b677f65f51"
  ] # 委员会ID; 机器ID
}
  • 结果说明:
{
  "jsonrpc": "2.0",
  "result": {
    "bookedTime": 600340, # 派单时间
    "confirmHash": "0x00000000000000000000000000000000", # 提交的机器信息Hash
    "confirmTime": 0,
    "hashTime": 0,
    "machineInfo": { # 提交的机器信息
      "calc_point": 0,
      "cpu_core_num": 0,
      "cpu_rate": 0,
      "cpu_type": "AMD 5900x",
      "cuda_core": 0,
      "data_disk": 0,
      "gpu_mem": 0,
      "gpu_num": 0,
      "gpu_type": "NVIDIA GeForce GTX 3080",
      "is_support": false,
      "machine_id": "74339d3413c1386d23d92e55586ccf25090c7eb762928f9bc69799b677f65f51",
      "mem_num": 0,
      "rand_str": "abc",
      "sys_disk": 0
    },
    "machineStatus": "booked",
    "stakedDbc": "1000000000000000000",
    "verifyTime": [600820, 602260, 603700]
  },
  "id": 1
}

3.3 获取委员会所有派单的机器列表

  • 示例:
{
  "jsonrpc": "2.0",
  "id": 1,
  "method": "onilneCommittee_getCommitteeMachineList",
  "params": ["5Gv3FyFA7bFbUqqgXWXwkgCkazMaaBpfbVnwtVVRP5vgUYRs"] # 委员会ID
}
  • 结果说明:
{
  "jsonrpc": "2.0",
  "result": {
    "bookedMachine": [], # 当前的派单
    "confirmedMachine": [], # 提交了原始值的机器列表
    "hashedMachine": [], # 提交了Hash的机器列表
    "onlineMachine": [], # 现在已经在线的机器
  },
  "id": 1
}

4. RentMachine 模块

4.1 查看机器的租用信息

  • 示例
{
  "jsonrpc": "2.0",
  "id": 1,
  "method": "rentMachine_getRentOrder",
  "params": ["38f4a824e0dc1fc5a9a7dccff53417b300fc0edad208176d8770597d98f6eb5c"] # 机器ID
}
  • 结果说明
{
  "jsonrpc": "2.0",
  "result": {
    "confirmRent": 539746, # 确认租用块高
    "rentEnd": 623264, # 租用结束时间
    "rentStart": 539744, # 租用开始时间
    "rentStatus": "renting", # 当前订单状态
    "renter": "5D45i3Ac4fXoimZQETJVMyYu79tAYzt4xQzEwzNLfirhsbg5", # 租用者
    "stakeAmount": "0" # 租用者质押金额
  },
  "id": 1
}

4.2 查看某个账户租用的订单列表

  • 示例
{
  "jsonrpc": "2.0",
  "id": 1,
  "method": "rentMachine_getRentList",
  "params": ["5E7123qZExgZaYKnmTcJacu68c2GbLeSHo9qNWmUWcaw4RSR"] # 账户地址
}
  • 结果说明
{
  "jsonrpc": "2.0",
  "result": [0,1], # 订单ID
  "id": 1
}
Loading...