Nodejs SDK使用示例

本文将描述如何在 BaaS 中运行该示例程序。

说明

Fabric Nodejs SDK 的示例程序是来自社区的 marbles,其中包含了一个链码和一个 Web 小游戏。

安装 Nodejs 和 NPM

marbles 依赖 Nodejsv8 版本和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 下,最终目录结构如下:

node sdk layout

打开并修改配置文件 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格式是否合法。

connection-profile-standard

上传链码

将文件 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的信息:

image.png
  • channel: 填写上传 marbles_v4 的通道名,如first-channel

  • chaincode_id: 填写marbles

  • chaincode_version: 填写v4

输入完成后,单击Try Again,如果成功监测到链码将会看到如下页面。如果检查失败,请再次确认是否已经上传链码并且链码已经实例化。

image.png

此时已经配置完成,关闭弹窗即可开始试用。这是一个在不同用户之间转移彩色大理石资产的示例程序,可以将大理石在不同用户之间拖动以表示转移资产。单击用户右侧的“+”可以在该用户下新增一个大理石资产。拖动大理石到右上角的垃圾桶即可删除该资产。

marbles running

更多marbles的资料可以参考社区文档,更多 Nodejs SDK 的使用说明可以参考社区fabric-sdk-node