Http 请求格式说明

大约 2 分钟

Http 请求格式说明

请求方式:POST

URL格式:http://<dbc_client_ip>:<dbc_client_port>/api/v1/具体请求路径

请求body

{
    "peer_nodes_list": [
        // DBC节点的node_id,目前仅支持填写1个
        "460e56d4cdade97065ddf4d0dfeee7ab7e6e77d0058fad07e43123fadd1d8d2a"
    ],
    "additional": {
        // 每个请求要传递的各种参数

    },
   // 身份认证信息
   ...
}

身份认证信息一共有 3 种类型,请求时,填写任意一种即可:

第 1 种类型:租用者钱包签名

说明: 需要知道租用者的钱包地址对应的钱包私钥,所以,使用此方式的一般是租用者本人

  • 签名方法:./sign_tool [钱包地址] [钱包私钥]

输出: import

  • 将生成的 3 个值填写到请求 body 中,最终的请求 body 格式:

    {
      "peer_nodes_list": [
        "460e56d4cdade97065ddf4d0dfeee7ab7e6e77d0058fad07e43123fadd1d8d2a"
      ],
      "additional": {},
      "wallet": "5Dy8ULx1De6u3WE9ixpy1VKK2CVssvsjQT15qcmQsG662Zj4",
      "nonce": "5q7KRn4d8EmXFFsim8vHBp23N2CpERbD2mWR3WCo1o3teZnGxYEh4N6",
      "sign": "2460725b2f5e737cd810c773be61b9b27c3b9dbdac4af9cf25c7be9949ad7202a0b7467f71ad843888f482662d3ae2e4fa566d3c1930a3fa90f3dcb97ea4098d"
    }
    

第 2 种类型:多签钱包签名

说明: 需要知道多签账户的所有钱包地址,以及阈值(threshold)数量个账户的钱包签名。

  • 以 3 签 2 为例,各字段的释义:

    "multisig_accounts": {
        // 多签账户的所有钱包地址
        "wallets": [
            "5Dy8ULx1De6u3WE9ixpy1VKK2CVssvsjQT15qcmQsG662Zj4",
            "5HgVTsXnUBmaL5F2RBjKmXMoAeG9Avuyk9tmgnnVx28u2ZrS",
            "5DhBmvUkj9YWvdDtJWJwaGrFRpzeqW4Ch5oTyTamXG2LMHVQ"
        ],
        // 创建多签钱包时的阈值(threshold)
        "threshold": "2",
        // 使用多签账户中的任意2个钱包私钥签名(签名方法与第1种类型中的签名方法相同)
        "signs": [
            {
                "wallet":"5Dy8ULx1De6u3WE9ixpy1VKK2CVssvsjQT15qcmQsG662Zj4",
                "nonce":"5q7KRn4d8EmXFFsim8vHBp23N2CpERbD2mWR3WCo1o3teZnGxYEh4N6",
                   "sign":"2460725b2f5e737cd810c773be61b9b27c3b9dbdac4af9cf25c7be9949ad7202a0b7467f71ad843888f482662d3ae2e4fa566d3c1930a3fa90f3dcb97ea4098d"
            },
            {
                "wallet":"5HgVTsXnUBmaL5F2RBjKmXMoAeG9Avuyk9tmgnnVx28u2ZrS",
                "nonce":"5t1mv263Qpnu5tk5xPDk86oXGUX8yXaYGpAWj2n6gU45HNmsQqLaAU7",
                "sign":"c494cc517f3c181fd7206d03175b5c0c29d162e53aa88c557887241d104456272dc313501c8ae4e71dbcbae183942a119713974aff87aa1ef3870aa505be6384"
            }
        ]
    }
    
  • 最终的请求 body 格式:

    {
      "peer_nodes_list": [
        "460e56d4cdade97065ddf4d0dfeee7ab7e6e77d0058fad07e43123fadd1d8d2a"
      ],
      "additional": {},
      "multisig_accounts": {
        "wallets": [
          "5Dy8ULx1De6u3WE9ixpy1VKK2CVssvsjQT15qcmQsG662Zj4",
          "5HgVTsXnUBmaL5F2RBjKmXMoAeG9Avuyk9tmgnnVx28u2ZrS",
          "5DhBmvUkj9YWvdDtJWJwaGrFRpzeqW4Ch5oTyTamXG2LMHVQ"
        ],
        "threshold": "2",
        "signs": [
          {
            "wallet": "5Dy8ULx1De6u3WE9ixpy1VKK2CVssvsjQT15qcmQsG662Zj4",
            "nonce": "5q7KRn4d8EmXFFsim8vHBp23N2CpERbD2mWR3WCo1o3teZnGxYEh4N6",
            "sign": "2460725b2f5e737cd810c773be61b9b27c3b9dbdac4af9cf25c7be9949ad7202a0b7467f71ad843888f482662d3ae2e4fa566d3c1930a3fa90f3dcb97ea4098d"
          },
          {
            "wallet": "5HgVTsXnUBmaL5F2RBjKmXMoAeG9Avuyk9tmgnnVx28u2ZrS",
            "nonce": "5t1mv263Qpnu5tk5xPDk86oXGUX8yXaYGpAWj2n6gU45HNmsQqLaAU7",
            "sign": "c494cc517f3c181fd7206d03175b5c0c29d162e53aa88c557887241d104456272dc313501c8ae4e71dbcbae183942a119713974aff87aa1ef3870aa505be6384"
          }
        ]
      }
    }
    

第 3 种类型:使用机器租用者分发的 session_id 和 session_id_sign

说明: session_id 和 session_id_sign 是租用者给其他想要使用该机器的第三方用户身份凭证,第三方用户可以使用该 session_id 访问该机器。

注意:session_id 只能由租用者向机器请求获取和修改(请求方式:参考上述第 1 种和第 2 种类型)

  • 机器租用者请求机器获取 session_id(请求方式:参考上述第 1 种和第 2 种类型; 此处以第 1 种方式为例),返回值为 session_id:

    {
      "peer_nodes_list": [
        "460e56d4cdade97065ddf4d0dfeee7ab7e6e77d0058fad07e43123fadd1d8d2a"
      ],
      "additional": {},
      "wallet": "5Dy8ULx1De6u3WE9ixpy1VKK2CVssvsjQT15qcmQsG662Zj4",
      "nonce": "5q7KRn4d8EmXFFsim8vHBp23N2CpERbD2mWR3WCo1o3teZnGxYEh4N6",
      "sign": "2460725b2f5e737cd810c773be61b9b27c3b9dbdac4af9cf25c7be9949ad7202a0b7467f71ad843888f482662d3ae2e4fa566d3c1930a3fa90f3dcb97ea4098d"
    }
    
  • 机器租用者对 session_id 进行签名: import 将生成的 session_id 和 session_id_sign 分发给第三方用户即可。

  • 第三方用户拿到这个 session_id 和 session_id_sign 后,请求的 body 格式为:

    {
      "peer_nodes_list": [
        "460e56d4cdade97065ddf4d0dfeee7ab7e6e77d0058fad07e43123fadd1d8d2a"
      ],
      "additional": {},
      "session_id": "3QRjS1PsbDReGJKVBBRqxUh9RqXB5jbfHJ8bMgGoJ3C9HHHHm9rCmmh",
      "session_id_sign": "ca89d0adb44a03c6f22a9205a06e22f682805f8c8ee25dd182e36ceb581899001196ce94c40e2147247f967256d7e010318e4387853939d94ba99c81f16a358f"
    }
    
Loading...