7.3.2 泰安链(基于FISCO BCOS)网关接入说明

  密钥算法

  泰安链(基于FISCO BCOS)通过ECDSA(secp256k1)算法生成链账户地址以及公私钥,具体可以参考SDK中提供的方法。或者使用openssl生成密钥,具体参考:

  https://zhuanwang.bsnbase.com/static/tmpFile/bzsc/helper/5-2.html

  Chain ID

  泰安链Chain ID为1。

  接入方式

  泰安链(基于FISCO BCOS)目前仅支持JSON-RPC API方式接入,API文档参考:

  https://fisco-bcos-documentation.readthedocs.io/zh_CN/latest/docs/api.html

  密钥模式

  支持密钥托管模式、发布公钥模式以及上传链账户地址模式。

  在发布公钥模式与上传链账户地址模式下,用户自己管理密钥,完全按照API文档发起交易。

  在密钥托管模式下,由于BSN需要代替用户对上链数据进行签名,所以sendRawTransaction和sendRawTransactionAndGetProof接口无法按照API文档中的报文格式提交交易,需要按照以下格式提交数据:

{
    "method": "sendRawTransaction",
    "id": 1,
    "jsonrpc": "2.0",
    "params": {
        "blockNumber": 95, //当前块高
        "contractAbi": "合约ABI",
        "contractBin": "合约BIN", //非必填,若为合约部署该字段必填
        "contractAddress": "合约地址", //非必填,若为合约调用该字段必填
        "funcName": "合约方法", //非必填,若为合约调用该字段必填
        "funcParam" : [
            "参数"
        ],
        "groupId": 1
    }
}

  注:泰安链新建链账户不再支持密钥托管模式,原有的密钥托管模式下的链账户可正常使用。

  区块链浏览器:

  http://explorer.taian.bsnbase.com

  网关地址规则:

  若添加BsnAccount则认为是通过网关托管加签(密钥托管模式),若为非托管模式(发布公钥模式、上传链账户地址模式)则不需要添加。

  • RPC访问地址

  网关地址/api/[项目id]/[BsnAccount]/[Protocol];

  如果使用项目key接入,需按照网关地址/api/[项目id]/[BsnAccount]/[Protocol]格式拼接请求地址,同时请求报文头header中增加x-api-key:{项目key值}。

  注:密钥托管模式下,BsnAccount必传,代表BSN网关进行签名,其他模式可不传,默认自己签名,网关只负责进行交易转发。

  项目id:创建项目后生成的项目ID,见下图;

7.3.2-3

  项目id也可以从项目管理->操作->下载接入参数获取:

7.3.2-4

  BsnAccount:BSN链账户标识, 链账户管理->链账户详情页面可看到,如图:

7.3.2-2

  Protocol:开放链-协议(rpc)。

  合约语言

  泰安链(基于FISCO BCOS)官方使用Solidity语言进行合约的开发。

  开发文档

  https://fisco-bcos-documentation.readthedocs.io/zh_CN/latest/docs/app_dev/index.html

  开发实例:

  https://github.com/WeBankBlockchain/SmartDev-Contract/tree/dev-bsn

  示例:

  1) 获取块高(getBlockNumber)

  • 适用于密钥托管模式、发布公钥模式与上传链账户地址模式。

  接口地址:网关地址/api/{您的开放联盟链项目ID}/rpc

  若启用项目key则需要在HTTP Header中添加x-api-key请求头。

  请求报文:

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

  2) 发送交易(sendRawTransaction)

  • 适用于密钥托管模式

  接口地址:网关地址/api/{您的开放联盟链项目ID}/rpc

  若启用项目key则需要在HTTP Header中添加x-api-key请求头。

  请求报文:

{
    "method": "sendRawTransaction",
    "id": 1,
    "jsonrpc": "2.0",
    "params": {
        "blockNumber": 102,
        "contractAbi": "[{\"inputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"constructor\"},{\"inputs\":[],\"name\":\"get\",\"outputs\":[{\"internalType\":\"string\",\"name\":\"\",\"type\":\"string\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"string\",\"name\":\"word\",\"type\":\"string\"}],\"name\":\"set\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"}]",
        "contractAddress": "0xbfa50ab0a208921456f705bed36411134cc2133",
        "funcName": "set",
        "funcParam": [
            "taianchain"
        ],
        "groupId": 1
    }
}
  • 适用于发布公钥模式和上传链账户地址模式

  请求地址:网关地址/api/{您的开放联盟链项目ID}/rpc

  若启用项目key则需要在HTTP Header中添加x-api-key请求头。

  请求报文:

{
    "id": 1,
    "jsonrpc": "2.0",
    "method": "sendRawTransaction",
    "params": [
        1,
    "0xf8f0a00230a0915f8b2f7a485891baae4bc77efec4c16ae6e0e2af44252d5dda785b8885051f4d5c0083419ce08202f894f01e3be20884bbbe4bd08430a6f12aff90bbb4fc80b8644ed3885e0000000000000000000000000000000000000000000000000000000000000020000000000000000000000000000000000000000000000000000000000000000632313031323700000000000000000000000000000000000000000000000000000101801ba091cee4d6c73a1e6f033104f82833690f6f93c143f3af965cc39fd7ef7f5793a5a01d11202fef96d543fee52699b7f305cb11004ebc25fd0dc608165dab6d96a414"
    ]
}
Copyright 北京红枣科技有限公司

results matching ""

    No results matching ""

    results matching ""

      No results matching ""