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

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.1https://www.alipay.comhttps://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 字段内容根据不同的接口返回不同内容,具体请查看接口返回值。

4,参考

(1)JS SDK 开发指南>API 参考>API 概览
https://tech.antfin.com/docs/2/107131
(2)Java SDK 开发指南>Java SDK 说明
https://tech.antfin.com/docs/2/101892
(3)C++ SDK 开发指南>C++ SDK 说明
https://tech.antfin.com/docs/2/107229

©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 206,839评论 6 482
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 88,543评论 2 382
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 153,116评论 0 344
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 55,371评论 1 279
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 64,384评论 5 374
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 49,111评论 1 285
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 38,416评论 3 400
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 37,053评论 0 259
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 43,558评论 1 300
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 36,007评论 2 325
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 38,117评论 1 334
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 33,756评论 4 324
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 39,324评论 3 307
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 30,315评论 0 19
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 31,539评论 1 262
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 45,578评论 2 355
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 42,877评论 2 345

推荐阅读更多精彩内容