网站首页 > 开源技术 正文
前言
前面提到的fabric示例(如first-network和e2e-cli)都只是在单机上的简单测试,启动一个cli命令行容器来与网络成员节点进行交互,通过在cli容器中手动输入命令完成一系列操作。
而在实际开发中,fabric区块链应用应该拥有一个完整的应用程序来处理前端发起的请求,调用SDK与各节点进行交互,最终利用fabric底层特性将数据存入区块链中。
说明:本篇文章是基于我的朋友的这篇文章进行修改的:http://zhayujie.com
应用模型
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切换版本。
git clone https://github.com/hyperledger/fabric-samples.git cd fabric-samples/balance-transfer
2.启动网络
在终端1执行:
./runApp.sh
该脚本完成:
- 启动fabric网络节点(docker-compose up)
- 下载所需node模块(npm install)
- 启动应用程序监听4000端口(node app.js)
3.测试网络
测试前需要下载jq:
sudo apt-get install jq
在终端2执行测试脚本,主要是利用curl工具发送请求:
./testAPIs.sh
该脚本完成:
- 创建通道并加入节点
- 按照和实例化链码
- 调用执行转账交易操作
- 进行各种查询操作
4.关闭网络
# 清除所有容器并删除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]
结语
如果您认为我的文章对您有帮助,欢迎关注我的头条号「BlockChainDeveloper」。
如果您想要和我联系,后台回复「骚扰」即可获取我的联系方式。
您的支持是对我的最大的鼓励。
- 上一篇: 「译」 如何做到一秒渲染一个移动页面
- 下一篇: vue2组件系列第九节:Toast 轻提示
猜你喜欢
- 2024-09-08 vue2组件系列第四十二节:NavBar 导航栏
- 2024-09-08 从零开始学Python——使用Selenium抓取动态网页数据
- 2024-09-08 黑客突破macOS的安全防御,新型恶意软件正在偷偷的窃取你的文件
- 2024-09-08 vue2组件系列第三十六节:Lazyload 图片懒加载
- 2024-09-08 Visa|实习面试|2022 暑假(visa issues)
- 2024-09-08 消息中间件RabbitMQ入门详解(消息中间件mq作用)
- 2024-09-08 vue2组件系列第二十二节:SwitchCell 开关单元格
- 2024-09-08 vue2组件系列第二十节:按钮式单选组件
- 2024-09-08 vue2组件系列第四十节:NoticeBar 通告栏
- 2024-09-08 vue2组件系列第二十六节:PasswordInput 密码输入框
你 发表评论:
欢迎- 07-10公司网站建站选择:人工建站和源码建站分析
- 07-10多用途游戏娱乐新闻网站HTML5模板
- 07-10站长教你搭建属于自己的网站(搭建网站的步骤)
- 07-10php宝塔搭建部署实战响应式塑料封条制品企业网站模板源码
- 07-10自适应响应式汽车配件类网站源码 html5高端大气汽车网站织梦模板
- 07-10网站标签怎么设置?(网站标签怎么设置比较好)
- 07-10PageAdmin企业网站制作中踩过的坑
- 07-10豆包给我输出的html在线象棋源码(有点简单)
- 最近发表
- 标签列表
-
- jdk (81)
- putty (66)
- rufus (78)
- 内网穿透 (89)
- okhttp (70)
- powertoys (74)
- windowsterminal (81)
- netcat (65)
- ghostscript (65)
- veracrypt (65)
- asp.netcore (70)
- wrk (67)
- aspose.words (80)
- itk (80)
- ajaxfileupload.js (66)
- sqlhelper (67)
- express.js (67)
- phpmailer (67)
- xjar (70)
- redisclient (78)
- wakeonlan (66)
- tinygo (85)
- startbbs (72)
- webftp (82)
- vsvim (79)
本文暂时没有评论,来添加一个吧(●'◡'●)