前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >Fabric应用开发

Fabric应用开发

作者头像
zhayujie
修改2020-05-12 23:49:01
1.9K0
修改2020-05-12 23:49:01
举报
文章被收录于专栏:ZYJ的技术专栏

本文介绍fabric的应用开发模型,Node SDK的使用以及运行一个简单的fabric应用示例。

前言

前面提到的fabric示例(如first-network和e2e-cli)都只是在单机上的简单测试,启动一个cli命令行容器来与网络成员节点进行交互,通过在cli容器中手动输入命令完成一系列操作。

而在实际开发中,fabric区块链应用应该拥有一个完整的应用程序来处理前端发起的请求,调用SDK与各节点进行交互,最终利用fabric底层特性将数据存入区块链中。

应用模型

架构图
架构图

Fabric应用可以分为三层,App层,SDK层,Fabric底层。开发人员需要开发的包括app应用和链码chaincode。应用程序一般运行于客户端节点上,负责处理请求并调用相应SDK与Peer节点,Orderer节点,CA节点进行通信。chiancode负责业务逻辑的执行,从账本查询数据或更新数据到账本。

Fabric Node SDK

Hyperledger fabric支持多种语言的SDK,包括Go, Node.js, Java, Python。其中Node SDK由官方维护,最为稳定,文档资料也最为齐全。

Node SDK主要的模块及其中重要的方法如下:

1.Client

  • getUserContext() / setUserContext():从本地读取/写入用户信息
  • 创建其他各种类的示例

2.CAClient

  • register():登记
  • enroll():注册

3.Channel

  • sendTransactionProposal():发送提案
  • sendTransaction():发送交易
  • queryByChaincode():调用链码查询
  • 各种与区块、交易有关的查询功能

4.Peer

  • sendProposal():发送交易提案到Peer节点

5.Orderer

  • sendBrodcast():发送数据到Ordere节点
  • sendDeliver():从Orderer节点获取数据

Balance Transfer

Blacne transfer是Fabric Node SDK的一个示例应用,基于Node.js的express框架实现了完整的web服务,提供了RESTful接口,实现网络初始化,用户注册生成证书,交易转账,查询等功能。

1.下载示例

下载前需要部署所需环境,前文以及详细介绍,这里不再赘述。注意fabric-samples的版本最好与fabric镜像的版本保持一致,否则可能会出现各种错误,可以利用git checkout加上指定版本tag切换版本。

代码语言:txt
复制
git clone https://github.com/hyperledger/fabric-samples.git
cd fabric-samples/balance-transfer

2.启动网络

在终端1执行:

代码语言:txt
复制
./runApp.sh

该脚本完成:

  • 启动fabric网络节点(docker-compose up)
  • 下载所需node模块(npm install)
  • 启动应用程序监听4000端口(node app.js)

3.测试网络

测试前需要下载jq:

代码语言:txt
复制
sudo apt-get install jq

在终端2执行测试脚本,主要是利用curl工具发送请求:

代码语言:txt
复制
./testAPIs.sh

该脚本完成:

  • 创建通道并加入节点
  • 按照和实例化链码
  • 调用执行转账交易操作
  • 进行各种查询操作

4.关闭网络

代码语言:txt
复制
# 清除所有容器并删除docker网络
cd artifacts
docker-compose down
# 删除chaincode镜像
docker rmi -f $(docker images | grep dev | awk '{print $3}')
# 删除用户数据,包括私钥和证书
rm -rf fabric-client-kv-org[1-2]
本文参与 腾讯云自媒体同步曝光计划,分享自作者个人站点/博客。
原始发表:2018-08-17,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • 前言
  • 应用模型
  • Fabric Node SDK
  • Balance Transfer
相关产品与服务
区块链
云链聚未来,协同无边界。腾讯云区块链作为中国领先的区块链服务平台和技术提供商,致力于构建技术、数据、价值、产业互联互通的区块链基础设施,引领区块链底层技术及行业应用创新,助力传统产业转型升级,推动实体经济与数字经济深度融合。
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档