前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >蚂蚁区块链第15课 JS SDK概述及API接口速查

蚂蚁区块链第15课 JS SDK概述及API接口速查

作者头像
辉哥
发布2019-04-18 16:46:08
1.3K0
发布2019-04-18 16:46:08
举报
文章被收录于专栏:区块链入门

1,摘要

本文讲解蚂蚁BAAS的JavaScript SDK概述,说明JS SDK对应的API接口速查。其他语言包SDK参考官网其他章节说明即可。

2,JS SDK 说明

JavaScript SDK(简称 JS SDK)是业务端与区块链平台沟通的桥梁,提供基础的 API 功能,包括提交交易、账户操作、部署和调用合约、各类查询操作、交易模拟执行、监听事件等,同时实现了通过 TLS 和 HTTPS 协议与区块链平台交互,统一了 API 接口使用方式。因此,JS SDK 既可集成运行在 Node.js 环境,也可以运行在浏览器、Web 应用等环境,更加的灵活方便。

JS SDK 的使用方式简单,且对环境兼容友好。使用 TLS 协议时需要依赖 Node.js,使用 HTTPS 时可直接在浏览器环境集成使用。

版本说明

JS SDK 会不断的升级发布,完善功能,历史发布版本核心功能说明如下表。

版本

合约链支持说明

更新功能

下载链接

0.2.27

支持标准合约链; 支持 TEE 硬件隐私合约链; 不支持国密合约链

支持 TLS/HTTPS 协议; 支持账户合约操作、查询、事件订阅等功能 ; 支持 Solidity 和 C++ 合约 ;

alipay-mychain-0.2.27.tgz

说明:TEE 硬件隐私合约链C++ 合约开发功能(编译为 wasm 字节码),仅供 蚂蚁区块链创新大赛 试用,尚未正式对外发布。

JS SDK 引用说明

不同运行环境下,JS SDK 的引用方式略有不同:

  • Node 环境: const Chain = require("@alipay/mychain/index.node")
  • Web 环境: const Chain = require("@alipay/mychain")

配置项说明

在初始化与区块链连接的实例之前,可进行选项配置,各配置项的具体说明如下。

说明

  • 如无特别说明,配置项的数据类型默认为 string 类型。
  • 配置项中配置了账户相关的 Key 信息,包括账户公私钥、账户恢复公私钥。链的连接实例默认使用配置项中的账户 Key 信息进行交易签名。如果要切换账户,需要重新配置账户 Key 相关选项。详情参见 创建账户 中切换账户配置的使用示例。

配置项

必填

配置说明

示例值

host

true

区块链节点的 IP 或者主机名。使用 TLS 时为 IP 地址;使用 HTTPS 时为主机名。

127.0.0.1, https://www.alipay.com 或 https://127.0.0.1

port

true

区块链节点开放连接的端口号,类型为 number。

18130

clients

false

可设置多个 host:port,作为主节点(首个为主节点),次节点备份,当主节点出现连接问题,SDK 会切换到列表其它节点重试连接。如果配置此参数,可不用设置 host 和 port 参数。

[{host:’127.0.0.1’,port:18130},{host:’127.0.0.2’,port:18130}]

timeout

true

与区块链节点连接的超时时间配置,单位毫秒,类型为 number。

30000

ca

true

目标合约链的根证书。

在 BaaS 平台申请通过后下载 ,详情参考 申请证书

cert

true

客户端证书文件。

在 BaaS 平台申请通过后下载,详情参考 申请证书

key

true

客户端生成的私钥文件,用于生成证书请求文件,进而申请证书。

使用 BaaS 提供 密钥生成工具 生成 ,详情参考 申请证书

userPublicKey

true

账户公钥,字符串内容为 16 进制。

0x971c77d38bf220572fe8294d7884b184adeeb9bac4d61c1b3e1e924575e526152145763eaba40c8713c82cc2961fba98f71c8b93984d4e3d10b2ff53ea039551

userPrivateKey

true

账户私钥,字符串内容为 16 进制。

0x4015e39643765014b874dbd35a53f1a01418c66f7c47da35f3a84122c743d9a3

userRecoverPublicKey

true

账户恢复公钥,字符串内容为 16 进制。

0xb961f6a1a43b9e7aa368be8d093ed7bec2d0ff85ff7646ec968d86bd546151efbd037cfe09933684b5c98978a1593074cdff465de3a3620089f5634911bf7b2e

userRecoverPrivateKey

true

账户恢复私钥,字符串内容为 16 进制。

0x44a973e5286f1d3513561360bb0214235425b942a4649c7d371f780ca1ee0e80

passphrase

true

TLS 或 HTTPS 链接的 client.key 文件的自定义密码。

123abc

checkServerIdentity

false

针对 TLS 协议的配置,类型为 boolean,含义为是否启用对服务端 hostname 的检查,即对比服务端证书的 CN 字段与 hostname 是否匹配,默认值为 false。

false

tx_querycount

false

对于交易类型,提交交易后会调用 QueryTransactionReceipt查询收据,此配置可设定重试的次数,类型为 number,默认值为 3。

5

tx_querytime

false

对于交易类型,提交交易后会调用 QueryTransactionReceipt查询收据,此配置可设定重试的时间间隔,类型为 number,单位为毫秒,默认值为 3000。

200

3,API 概览

蚂蚁BAAS API 概览

汇总了合约平台支持的所有 JS API,并对接口调用的返回值予以说明。具体接口信息参见相关接口文档。

环境接口

接口

描述

Chain

初始化环境实例。

账户接口

接口

描述

CreateAccount

创建账户。

TransferBalance

转账。

SetRecoverkey

设置恢复公钥。

PreResetPubKey

预重置公钥。

ResetPubKey

重置公钥。

UpdateAuthMap

更新权重。

合约接口

接口

描述

contract

构造合约实例。

new

部署合约。

自定义合约方法名

调用合约。

update

升级合约。

查询接口

接口

描述

QueryBlockHeader

查询区块头。

QueryLastBlock

查询最后一个区块。

QueryBlock

查询指定的区块。

QueryTransaction

查询交易。

QueryTransactionReceipt

查询收据。

QueryAccount

查询账户。

QueryContract

查询合约账户。

本地执行接口

接口

描述

LocalTransaction

本地执行普通交易。

合约相关操作方法

本地执行合约相关交易。

原生存证接口

接口

描述

NativeDepositData

在合约链上对目标数据进行存证。

事件接口

接口

描述

event.account

订阅账户事件。

accountEvent.close

取消订阅账户事件。

event.contract

订阅合约事件。

contractEvent.close

取消订阅合约事件。

event.topic

订阅主题事件。

topicEvent.close

取消订阅主题事件。

event.block

订阅区块事件。

blockEvent.close

取消订阅区块事件。

辅助工具类接口

接口

描述

getHash

对给定字符串计算哈希。

toDecimal

将十六进制转换成十进制。

toUtf8

将十六进制字符串转换成 utf8 字符串。

getKeyInfo

获取账户信息。

decryptAESWithPassword

TEE 解密方法

decryptTXWithAES

TEE 硬件隐私合约链,解密 Transaction 方法。

generateAESKey

TEE 硬件隐私合约链,通过指定的 aesKey 和交易哈希派生目标交易的最终 AES 密钥。

返回值

JS SDK 多数接口都以相同的回调方式返回结果,对于合约相关接口,结果返回方式稍有不同。

  • 普通接口返回值

参数

类型

说明

err

string

使用的账户名,用此账户来创建新账户。

data

object

交易回执的结果

  • 合约部署和调用接口返回值

参数

类型

说明

err

string

错误信息,如果为 undefined,则说明无错误。

output

不确定

如果是合约部署,此字段为合约的 bytecode;如果是合约调用此字段,则与合约方法返回值类型相同。

data

object

交易回执的结果

以上 data 字段内容根据不同的接口返回不同内容,具体请查看接口返回值。

本文参与 腾讯云自媒体同步曝光计划,分享自作者个人站点/博客。
原始发表:2019.04.10 ,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • 1,摘要
  • 2,JS SDK 说明
    • 版本说明
      • JS SDK 引用说明
        • 配置项说明
    • 3,API 概览
      • 环境接口
        • 账户接口
          • 合约接口
            • 查询接口
              • 本地执行接口
                • 原生存证接口
                  • 事件接口
                    • 辅助工具类接口
                      • 返回值
                      相关产品与服务
                      区块链
                      云链聚未来,协同无边界。腾讯云区块链作为中国领先的区块链服务平台和技术提供商,致力于构建技术、数据、价值、产业互联互通的区块链基础设施,引领区块链底层技术及行业应用创新,助力传统产业转型升级,推动实体经济与数字经济深度融合。
                      领券
                      问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档