全部产品

Nodejs SDK使用示例

更新时间:2020-05-19 17:31:49

Fabric Nodejs SDK 的示例程序是来自社区的 marbles,其中包含了一个链码和一个 web 小游戏,下文将描述如何在 BaaS 中运行该示例程序。

安装 Nodejs 和 NPM

marbles 依赖 Nodejsv8 版本和npm,通过以下命令确认 Nodejs 和 npm 已经安装成功。

  1. $ node --version
  2. v8.11.2
  3. $ npm --version
  4. 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 段落中。

  1. "registrar": [
  2. {
  3. "enrollId": "user",
  4. "enrollSecret": "user-secret"
  5. }
  6. ],

例如:区块链组织页面中创建的用户名和密码为: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 应用:

  1. npm install --registry http://registry.npm.taobao.org
  2. gulp marbles_baas

看到有如下输出时,即表明 marbles 应用已经启动:

  1. 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”模式:

marble guide

自动跳转到第三步骤,开始配置Chaincode的信息:

marble chaincode

  • channel: 填写上传 marbles_v4 的通道名,如first-channel
  • chaincode_id: 填写marbles
  • chaincode_version: 填写v4

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

chaincode ok

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

marbles running

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