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 |
创建区块链实例
- 登录区块链服务管理控制台。
- 单击页面右上角的“创建区块链实例”。
- 根据界面提示,配置区块链基本信息,参数如表1所示。
为了保证示例Demo成功运行,请在参数配置时按照表格中的参数值填写。
- 单击“下一步:资源配置”,进行资源配置,参数如表2所示。
- 单击“下一步:区块链配置”,进行区块链配置,参数如表3所示。
表3 区块链配置 参数
示例
区块链配置
选择“自定义配置”。
区块链管理初始密码
如果填写该项,则以填写值为准,如果不填写,则以资源初始密码为准。
区块链管理确认密码
-
存储卷类型
极速文件存储卷
节点组织存储容量 (GB)
使用默认规格。
账本数据存储方式
选择“文件数据库(GoLevelDB)”
peer节点组织
系统已默认创建1个节点组织,名称为organization,将节点数量修改为1。
通道配置
organization节点组织已默认添加进至通道中,保持默认即可。
共识节点数量
使用默认。
安全机制
ECDSA
须知:安全机制仅支持选择ECDSA。
区块生成配置
否
添加RESTful API支持
否
- 单击“下一步:确认规格”。
- 确认配置信息无误后,根据界面提示创建区块链实例。
请等待数分钟,安装页面提示安装成功,查看实例状态变为“正常”后,表示区块链实例部署完成。
安装及实例化链代码
- 登录区块链服务管理控制台。
- 单击左侧导航栏中的“实例管理”。
- 在新创建的实例卡片中,单击“区块链管理”,登录链代码管理页面。
- 在登录页面输入用户名、密码,单击“登录”。
用户名为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仓库?