文章目录

  • 什么是Hyperledger Fabric?
  • Hyperledger架构是怎么工作的?
  • Hyperledger交易如何执行
  • 总结

Hyperledger Fabric基础知识

本文我们会介绍Hyperledger Fabric的基础知识,并了解如何充分利用这个多功能的区块链框架。

区块链技术为创新提供了丰富的机会。它提供了一种新的交易方式,从而可以从根本上改变业务的实现。

那么,在众多的区块链框架中,开发人员应该首先掌握哪个框架呢?IBM开发的Hyperledger Fabric肯定是最佳选择,尤其在今天这个公链应用不明朗的情况下,使用Fabric开发联盟链应该是最常见也最实用的框架了。

Hyperledger是一种开源协作成果,旨在促进跨行业的区块链技术供企业使用。该全球合作由The Linux Foundation主持。

Hyperledger孵化并支持一系列区块链业务技术,框架,库和应用程序。 Hyperledger项目托管了多个区块链框架,包括Hyperledger Fabric。本文概述了什么是Hyperledger Fabric,如何使用它来构建解决方案以及如何在Hyperledger Fabric中执行事务。

什么是Hyperledger Fabric?

Hyperledger Fabric是用于私有链和联盟链业务网络的开源框架实现,其中成员身份和角色对于其他成员是已知的。它是一种模块化的架构。它允许账本数据库,共识机制和成员资格服务等组件即插即用。它使用了容器技术,从而提供了企业级的网络安全性,可伸缩性和机密性。

Hyperledger Fabric网络具有以下组件:

  • Assets。资产是任何有价值的东西。资产具有状态和所有权。资产在Hyperledger Fabric中表示为键值对的集合。

  • Shared ledger。共享账本记录资产的状态和所有权。共享账本包括两个部分:

    • world state描述了给定时间点的共享账本状态。这是共享账本的数据库。
    • blockchain是记录所有交易的交易日志历史记录。
  • Smart contract。 Hyperledger Fabric智能合约称为chaincode。 Chaincode是定义资产和相关交易的软件;换句话说,它包含系统的业务逻辑。当应用程序需要与共享账本交互时,将调用Chaincode。链码可以用Golang或Node.js编写。

  • Peer nodes。Peer是网络的基本元素,因为它们托管共享账本和智能合约。Peer执行链码,访问共享账本数据,认可交易并与应用程序对接。Peer可以是endorsing peers,也可以是endorsers。每个链码都可以指定背书策略,该政策定义了有效交易背书的必要条件和充分条件。

  • Channel。通道是由peers集合形成的逻辑结构。此功能允许一组peers创建单独的交易共享账本。

  • Organizations。 Hyperledger Fabric网络是由网络中不同组织拥有和贡献的peers构建的。该网络之所以存在是因为组织将其个人资源贡献给了集体网络。peers具有成员资格服务提供商从其所属组织分配的身份(数字证书)。不同组织的Peers可以在同一channel上。

  • Membership Services Provider (MSP)。 MSP是证书颁发机构,以管理用于认证成员身份和角色的证书。在Hyperledger Fabric网络中,所有的节点必须要有认证过的身份才能进行交易。MSP管理用户ID并验证网络上的所有参与者,从而使Hyperledger Fabric成为一个私有的和准入的网络。

  • Ordering service。Ordering service将交易打包成块,以交付给通道上的peers。它保证了网络中的交易顺利执行。它与peers和endorsing peers进行通信。Ordering service目前只支持Solo和Kafka。

下图是Hyperledger Fabric的组件和构成:

Hyperledger架构是怎么工作的?

在Hyperledger解决方案中,Hyperledger Fabric网络充当后端,而应用程序前端则与网络进行通信。 SDK可帮助您在前端和后端之间建立通信,例如Node.js SDK和Java SDK。 SDK提供了一种执行用户链码,在网络中执行事务,监视事件等的方法。

要编写区块链应用程序,您需要:

  1. 用受支持的编程语言(例如Go)编写chaincode。
  2. 在Hyperledger Fabric网络上部署链码。
  3. 使用SDK开发客户端应用程序。

Hyperledger交易如何执行

Hyperledger Fabric网络中事务的请求流如下所示:

  1. 客户端使用Node.js或Java™SDK连接到Hyperledger Fabric网络。客户端使用SDK API,创建一个事务并将其发送给背书peer。
  2. endorsing peer会验证客户的签名,模拟交易并发送背书签名。
  3. 如果交易得到认可,则客户将交易提交给ordering service。否则,交易被取消。
  4. ordering service将交易传递给peers。所有peers都提交并应用相同的事务序列并更新其状态。

总结

Hyperledger Fabric是一个区块链框架实现。 你可以很轻松的使用Hyperledger来构建一个私人或联盟网络,并为其编写智能合约。

当然Hyperledger相对其他的区块链框架而言还是比较复杂的,因为它是专为企业级应用而生的。后面我们会详细讲解。

更多精彩内容且看:

  • 区块链从入门到放弃系列教程-涵盖密码学,超级账本,以太坊,Libra,比特币等持续更新
  • Spring Boot 2.X系列教程:七天从无到有掌握Spring Boot-持续更新
  • Spring 5.X系列教程:满足你对Spring5的一切想象-持续更新
  • java程序员从小工到专家成神之路(2020版)-持续更新中,附详细文章教程

更多教程请参考 flydean的博客

Hyperledger Fabric基础知识相关推荐

  1. Hyperledger Fabric基础

    Fabric环境搭建 准备工作 官方帮助文档 安装cURL,curd-version查i间版本 安装docker,docker-version查i间版本 安装docker-compose,docker ...

  2. (一)Hyperledger Fabric 1.1安装部署-基础环境搭建

    在学习和开发hyperledger fabric的时候遇到了一些坑,现将自己的一些总结和心得整理如下,以期对大家有所帮助. 本次使用的宿主机环境:ubuntu,版本:Ubuntu 16.04.3 LT ...

  3. 区块链解读6-区块链框架分析+超级账本(Hyperledger Fabric)基础

    解读区块链,区块链框架分析+超级账本(Hyperledger Fabric)基础 写了几篇区块链基础知识点的文章,自己也在尝试搭建环境,本人不是区块链从业者.区块链技术只是出于个人兴趣,现在开始文章分 ...

  4. HyperLedger Fabric Introduction——区块链超级账本介绍

    介绍 HyperLedger Fabric是一个基于模块化架构的分布式账本解决方案平台,它拥有深度加密.便捷扩展.部署灵活及可插拔等特性.它设计之初的目的是支持不同组件的可插拔实现,并适应整个经济生态 ...

  5. Hyperledger Fabric 超级账本 Java 开发区块链环境构建

    面向 Java 开发人员的链代码简介 您听说过区块链超级账本Hyperledger Fabric?对Java开发人员有何用.我将分步展示用 Hyperledger Fabric v0.6来搭建开发环境 ...

  6. Hyperledger Fabric on SAP Cloud Platform(SAP云平台上的超级账本简介)

    今天的文章来自Wen Aviva, 坐Jerry面对面的程序媛. Jerry在之前的公众号文章<在SAP UI中使用纯JavaScript显示产品主数据的3D模型视图>已经介绍过Aviva ...

  7. Hyperledger Fabric介绍

    转载地址 https://blog.csdn.net/xiaonu123/article/details/81006936 简介 Hyperledger介绍 超级账本(Hyperledger)项目是首 ...

  8. 区块链基础知识与关键技术解析

    区块链基础 1. 区块链的来龙去脉     1.1 区块链技术起源     1.2 比特币产生背景与现状     1.3 数字货币概念     1.4 比特币技术原理 2. 区块链概念与产业现状   ...

  9. Hyperledger Fabric 入门必读书籍

    下面整理一些 Hyperledger Fabric 一些比较好的区块链书籍,仅供学习参考. 1. 区块链原理.设计与应用 1.1 书籍封面 1.2 介绍 本书由超级账本核心设计和开发者撰写,是区块链开 ...

最新文章

  1. 多行表头_多行表头数据汇总你怎么操作?手动复制粘贴?OUT!用VBA1分钟完成
  2. 机器学习-LR推导及与SVM的区别
  3. 计算机控制的点火系统由,第八节(点火系统)
  4. 电子计算机时代 英语,2018年英语专四作文范文:计算机时代
  5. python名人名言代码打印_php随机输出名人名言的代码
  6. 数据中心多余的热量去哪儿了?
  7. 洛谷 | P1219 八皇后(DFS)C++
  8. SQL:postgresql中合并多个查询结果UNION (ALL)
  9. X264码率控制总结——ABR,CQP,CRF
  10. c语言青蛙跳答案是多少啊,青蛙跳台阶问题(示例代码)
  11. 「cocos2d-x」垂直射击游戏之宇智波鼬 VS 九尾狐(1)
  12. 澳洲电源和电池充电器对应标准的公告将强制执行2022年6月15日起
  13. 计算机键盘能直接接手机吗,手机变成电脑!将键盘和鼠标连接到智能手机的3种方式...
  14. Maven之jar包冲突引入非第三方jar
  15. python打开paint并画一个圆
  16. echarts 保存/导出图片
  17. SLAM学习笔记《Past, Present, and Future of Simultaneous Localization and Mapping: Toward the Robust-Per》
  18. Java什么是对象?
  19. 易快借的额度有多少?易快借的利息怎么计算?
  20. SCLS | 朱永官院士等-噬菌体技术阻抑抗生素耐药风险流行(视频)

热门文章

  1. 最简单的基于FFmpeg的编码器-纯净版(不包含libavformat)
  2. 编程实现木马的ActiveX启动和注入IE的启动方式
  3. WebRTC 的版本号与代码分支
  4. [译]BitTorrent协议规范
  5. Redis 五种数据类型
  6. 再见丑陋的 Swagger,这个API神器界面更炫酷,逼格更高,体验更好!
  7. 阿里规定代码中禁用static修饰SimpleDateFormat,为何?
  8. Java集合框架:Collections工具类
  9. 圆桌对话:数字化升级,视频通信云赋能全行业
  10. Pinterest:Android系统上的视频管理