本文将描述如何在 BaaS 中运行该示例程序。
Fabric Nodejs SDK 的示例程序是来自社区的 marbles,其中包含了一个链码和一个 Web 小游戏。
安装 Nodejs 和 NPM
marbles 依赖 Nodejs
v8 版本和npm
,通过以下命令确认 Nodejs 和 npm 已经安装成功。
$ node --version
v8.11.2
$ npm --version
5.6.0
下载示例程序
下载 node-sdk-demo-1.4.5 到任意目录并解压缩,得到目录node-sdk-demo。复制SDK配置文件 connection-profile-standard.json
配置文件到目录 node-sdk-demo/config
下,最终目录结构如下:
打开并修改配置文件 config/connection-profile-standard.json
:将用户名和密码构造成如下JSON内容,并新增到对应的 certificateAuthorities
段落中。
"registrar": [
{
"enrollId": "user",
"enrollSecret": "user-secret"
}
],
例如:区块链组织页面中创建的用户名和密码为:user/user-secret,且该用户来自 test10
组织,那么就将用户信息增加到CA: ca1.test10.aliyunbaas.top
下,修改完成后的配置文件如下图所示:
将JSON文件内容格式化后更便于编辑,可以使用在线服务:https://jsonlint.com/ 进行格式化。编辑完成后建议使用格式化工具监测JSON格式是否合法。
上传链码
将文件 node-sdk-demo/chaincode/marbles_v4.cc
上传至BaaS并实例化,上传方法可以参考部署链码章节。
运行示例程序
执行如下命令安装 marbles 依赖和启动 marbles 应用:
npm install --registry http://registry.npmmirror.com
gulp marbles_baas
看到有如下输出时,即表明 marbles 应用已经启动:
debug: Open your browser to http://localhost:3001 and login to tweak settings for startup
在浏览器中打开地址:http://localhost:3001/ 访问 marbles 示例程序。如果需要密码,输入 admin
即可。
由于BaaS生成的connection-profile-standard.json
是标准的fabric配置文件,未包含chaincode的配置信息(此配置为 marbles 的个性化配置),所以您可能会看到一些找不到链码的日志输出,如’Missing “chaincodeId” parameter’,这些错误日志是预期中的,不影响marbles的运行。
接下来将在 marbles 引导页中配置链码的相关信息,所以选择“Guided”模式:
自动跳转到第三步骤,开始配置Chaincode的信息:
channel: 填写上传 marbles_v4 的通道名,如first-channel。
chaincode_id: 填写marbles。
chaincode_version: 填写v4。
输入完成后,单击Try Again,如果成功监测到链码将会看到如下页面。如果检查失败,请再次确认是否已经上传链码并且链码已经实例化。
此时已经配置完成,关闭弹窗即可开始试用。这是一个在不同用户之间转移彩色大理石资产的示例程序,可以将大理石在不同用户之间拖动以表示转移资产。单击用户右侧的“+”可以在该用户下新增一个大理石资产。拖动大理石到右上角的垃圾桶即可删除该资产。
更多marbles的资料可以参考社区文档,更多 Nodejs SDK 的使用说明可以参考社区fabric-sdk-node。