Nodejs SDK Demo
本Demo提供了一个nodejs的链代码,并提供基于fabric-nodejs-sdk的程序调用链代码,向您演示如何使用nodejs的sdk来访问区块链。有关Fabric nodejs SDK的接口使用说明请参考官方文档:https://hyperledger.github.io/fabric-sdk-node/release-1.4/index.html。

只用于场景体验,不用于实际应用。
准备工作
准备顺序 | 操作指导 | 说明 |
|---|---|---|
1 | 安装开发工具 | 请从官网下载并安装nodejs运行环境,地址为https://nodejs.org/en/download/ |
2 | 下载Demo项目代码 | 项目代码:nodejs-demo.zip |
创建区块链实例
安装及实例化链代码
- 登录区块链服务管理控制台。
- 单击左侧导航栏中的“实例管理”。
- 在新创建的实例卡片中,单击“区块链管理”,登录链代码管理页面。
- 在登录页面输入用户名、密码,单击“登录”。

用户名为admin,密码为您在创建区块链实例时设置的区块链管理初始密码,如果没有设置区块链管理初始密码,则以资源初始密码为准。
- 在链代码管理页面,单击页面左上角的
。安装参数如下:参数
值
链代码名称
bcsysq
链代码版本
1.0
账本数据存储方式
文件数据库(goleveldb)
选择全部Peer节点
勾选
组织&Peer节点
peer-0
链代码语言
nodejs
链代码文件
下载示例链代码文件:nodejs-chaincode.zip
链代码描述
根据需要填写相关描述。
- 单击“安装”完成链代码安装。
- 链代码安装完成后,在链代码列表的“操作”列,单击“实例化”。实例化参数如下:
参数
值
链代码名称
bcsysq
实例化通道
channel
链代码版本
1.0
初始化函数
init
链代码参数
a,200,b,250
背书策略
任意组织背书
背书组织列表
organization
隐私保护配置
否
部署应用
- 下载Demo项目工程:nodejs-demo.zip,并将Demo项目代码包下载解压到本地并使用IDE打开。
本Demo是一个nodejs编写的js脚本,它包含了fabric-client库,实现链代码a给b转账的功能。请使用个人喜欢的IDE打开。项目包含如下内容:
表4 项目内容 文件
说明
invoke.js
调用链代码,实现a给b转账 。
query.js
查询链代码,查询a的账户余额。
sdk-config.js
解析从BCS控制台下载的区块链网络配置文件sdk-config.json。
sdk-config.json
区块链网络配置信息
- 下载SDK和证书。
- 在“实例管理”界面,在实例卡片中,单击“获取客户端配置”。
- 勾选“SDK文件”,SDK配置参数如下:
参数名称
说明
链代码名称
bcsysq
须知:链代码名称需要和链代码安装&实例化时的一致。
证书存放路径
请指定一个证书存放路径,本例中为:E:\code\temp
通道名称
channel
组织&Peer节点
保持系统默认
勾选“共识节点证书”。
勾选“Peer节点证书”,指定节点组织选择organization,勾选“管理员证书”。
- 单击“下载”,下载SDK配置文件、node-sdk-demo-orderer组织的管理员证书和organization组织的管理员证书。
- 复制并解压。
将下载SDK和证书步骤中的zip文件解压,将orderer文件夹、peer文件夹内容全部复制到证书的存放路径下;将sdk-config.json文件复制到证书的存放路径下,并且命名为node-sdk-demo-sdk-config.json。
调试应用
- 打开sdk-config.js,修改SDK配置文件的路径为node-sdk-demo-sdk-config.json的路径。

- 在项目工程所在路径执行node query.js,查询a用户的余额(如图所示a的余额为10000)。

- 在项目所在的路径执行node invoke.js,执行链码调用,实现a给b转账。如图所示即调用成功。

- 再次查询a的余额(如图所示a的余额为9990),可以看到转账成功。

说明
- 本Demo借鉴了Fabric社区的Demo,更多的样例可以参考https://github.com/hyperledger/fabric-samples。
- 如何在链代码中自定义npm仓库?



