本文将继续介绍我在阿里云下基于蚂蚁区块链开发的产品溯源Demo客户端部分。蚂蚁链提供了两个平台的客户端SDK:Java与Node.js,我使用的是JS SDK。
开发前准备
安装SDK
- 从node.js官网下载并安装 Node.js(推荐使用 v10.11.0 及以上版本)。
- 到链管理页面下载蚂蚁链SDK,下载的压缩包中同时包含JAVA与JS SDK。
- 将JS SDK alipay-mychain-0.2.27.tgz,并安装在项目目录
npm i alipay-mychain-0.2.27.tgz --save
准备SSL证书文件
客户端与区块链节点之间的通讯使用SSL双向加密,以保证不被中途拦截与篡改。客户端访问需要三个证书:
- client.key 管理员线下自行生成或在创建节点时由baas自动生成(由于服务器不保存客户端私钥,此文件只允许下载一次)
- client.crt 节点创建成功后,可在bass平台中的链管理界面下载
- ca.crt 节点创建成功后,可在bass平台中的链管理界面下载
这三个证书文件要放在客户端项目目录,以备用。
创建账户
蚂蚁链通过“账户”来管理客户端的访问权限,在启动开发前,需要在蚂蚁链BaaS平台的“成员管理”中,添加相应的账户。
添加账户需要提交账户公钥,账户公私角可由线下生成进行提交,也可以由线上生成(由于服务器不保存账户私钥,此账户的密钥文件只允许下载一次)
账户创建好后,要保存将账户私钥key文件,并将使用openssl将其转成pem格式:
openssl ec -in user.key -passin pass:${key_password} -passout pass:${key_password} -aes256 -out user.pem
获取链节点 IP 和端口号
要与合约链交互,您需要获取链节点的 IP 地址和端口号。在 BaaS 平台,通过查看目标合约链详情,在区块浏览器中查看节点详情,可获取链节点的 IP 地址和端口号。
创建与初始化SDK实例
- 引入JS SDK
const Chain = require("./build/index.node")
- 配置环境参数
const fs = require("fs")
const currentUserName = 'john' //当前账户名
c