【跟小嘉学习区块链】二、Hyperledger Fabric 架构详解
系列文章目录
【跟小嘉学习区块链】一、区块链基础知识与关键技术解析
【跟小嘉学习区块链】一、区块链基础知识与关键技术解析
文章目录
- 系列文章目录
- @[TOC](文章目录)
- 前言
- 一、Hyperledger 社区
- 1.1、Hyperledger(面向企业的分布式账本)
- 1.2、Hyperledger社区组织结构
- 二、Hyperledger 项目介绍
- 2.1、Hyperledger 项目介绍
- 2.1.1、Hyperledger 项目介绍
- 2.1.2、Hyperledger 顶级项目介绍
- 三、社区工作流
- 3.1、Linux Foundation ID
- 3.2、Jira
- 3.3、Gerrit
- 3.4、RocketChat
- 四、开发环境
- 五、Hyperledger Fabric
- 5.1、Hyperledger Fabric 介绍
- 5.2、Hyperledger Fabric 应用场景
- 5.3、Hyperledger Fabric 架构
- 5.3.1、Hyperledger Fabric 名词解释
- 5.3.2、基础架构
- 5.3.3、Fabric 1.x 架构优势
- 5.3.4、交易流程
文章目录
- 系列文章目录
- @[TOC](文章目录)
- 前言
- 一、Hyperledger 社区
- 1.1、Hyperledger(面向企业的分布式账本)
- 1.2、Hyperledger社区组织结构
- 二、Hyperledger 项目介绍
- 2.1、Hyperledger 项目介绍
- 2.1.1、Hyperledger 项目介绍
- 2.1.2、Hyperledger 顶级项目介绍
- 三、社区工作流
- 3.1、Linux Foundation ID
- 3.2、Jira
- 3.3、Gerrit
- 3.4、RocketChat
- 四、开发环境
- 五、Hyperledger Fabric
- 5.1、Hyperledger Fabric 介绍
- 5.2、Hyperledger Fabric 应用场景
- 5.3、Hyperledger Fabric 架构
- 5.3.1、Hyperledger Fabric 名词解释
- 5.3.2、基础架构
- 5.3.3、Fabric 1.x 架构优势
- 5.3.4、交易流程
前言
本系列章节主要讲解 Hyperledger 社区、Hyperledger项目、Hyperledger 社区工作流程、Hyperledger Fabric 架构详解
[参考资料]
Fabric技术概览
Fabric智能合约
Fabric架构初探
Fabric官方中文文档
Fabric相关博客
一、Hyperledger 社区
1.1、Hyperledger(面向企业的分布式账本)
超级账本(Hyperledger) 是首个面向企业应用场景的分布式账本平台,包括了IBM、Intel、Cisco、DAH、摩根大通、R3等在内的众多科技和金融巨头的贡献参与,在银行、供应链等领域得到了广泛的关注和发展,目前已经拥有了超过200家企业成员
1.2、Hyperledger社区组织结构
- 技术委员会(Technical Steering Committee,TSC)
- 管理董事会(Govering Board)
- Linux基金会(Linux Foundation)
二、Hyperledger 项目介绍
2.1、Hyperledger 项目介绍
2.1.1、Hyperledger 项目介绍
2015年12月,由Linux基金会牵头,30多家初始企业成员共同宣布 Hyperledger 联合项目成立。成立之初,IBM贡献了4万多行已有多 OpenBlockchain 代码,Digital Asset 则贡献了企业和开发者相关资源,R3贡献了新的金融交易架构,Intel 也贡献了分布式账本相关的代码
作为一个联合项目,旗下由面向不同的场景的子项目构成(8大项目,fabric、iroha、 BlockChain Exploror、Cello、Indy、Composer、Burrow),所有项目都遵循 Apache V2 许可,并约定共同遵守如下的基本原则
- 重视模块化设计:包括交易、合同、一致性、身份、存储等技术场景
- 重视代码可读性:保障新功能和模块都可以很容易添加和扩展
- 可持续的演化路线:随着需求的深入和更多的应用场景,不断增加和演化新的项目
2.1.2、Hyperledger 顶级项目介绍
- Hyperledger Fabric 是一个带有准入机制的企业级联盟链项目,它的前身就是IBM贡献的 OpenBlockChain。
- Hyperledger Sawtooth 是一个创建、部署和运行分布式账本的模块化平台,它包含一个新的共识算法,叫做经历时间证明(Proof of Elapsed Time, PoET),面向大型分布式验证器群,消耗最少的资源;
- Hyperledger Iroha 是为了将分布式账本技术简单容易地与基础架构型项目集成而设计的一个区块链框架项目
- Hyperledger BlockChain Exploror:区块链浏览器
- Hyperledger Cello:提供按需部署的功能,可以将区块链部署在各种裸机、虚拟机、容器等环境中,该项目起初是由IBM发起,目前等到了Soramitsu、华为和 Intel 的赞助
- Hyperledger Indy 是特别为去中心化的身份而建立的一种分布式账本。它提供了基于区块链或者其他分布式账本互操作来创建和使用独立数据身份的工具、代码库和可以重用的组件
- Hyperledger Composer
- Hyperledger Burrow 是一个支持许可的智能合约机,提供了一个模块化的区块链客户端,带一个经许可的智能合约解释器,它部分建立在以太坊虚拟机(EVM) 规范的基础上
三、社区工作流
在社区开发过程中,需要了解 Linux Foundation ID、Jira(任务和进度管理)、Gerrit(代码和Review管理)、RocketChat(在线沟通)等工具使用
3.1、Linux Foundation ID
超级账本项目受到 Linux 基金会等支持,采用 Linux Foundation ID (LF ID)作为社区等唯一ID。
3.2、Jira
Jira 是一套任务管理和事项跟踪的追踪平台,提供 Web 操作界面,实用十分方便。
3.3、Gerrit
Gerrit 是一个负责代码协同的开源项目,很多企业和团队都使用它负责代码仓库都管理和代码的审阅工作。
3.4、RocketChat
RocketChat 是一个开源的沟通工具
四、开发环境
- git
- golang
- docker
五、Hyperledger Fabric
5.1、Hyperledger Fabric 介绍
Hyperledger Fabric 是一个提供分布式账本解决方案的平台。Hyperledger Fabric 由模块化架构支撑,并具备极佳的保密性、可伸缩性、灵活性和可扩展性。
Hyperledger Fabric 被设计成支持不同的模块组件直接拔插启,并能适应在经济生态系统中错综复杂的各种场景。
5.2、Hyperledger Fabric 应用场景
- 商业积分,利用区块链多方发行扩大参与者、使积分自由流通,吸引用户多次消费
- 跨境支付与结算,减少机构之间的信任成本,将低手续费;
- 数据存证,版权保护、鉴别数据真伪;
5.3、Hyperledger Fabric 架构
5.3.1、Hyperledger Fabric 名词解释
- 成员服务(Membership Services):成员服务用来在许可的区块链网络上认证、授权和管理身份
- 排序或共识服务(Order Service),确认交易并将交易排序放入 block;
- 账本(Ledger),交易状态的持久化
- 节点(Node),一个网络实体用来维护 Ledger,执行合约的容器
- SDk 用来和区块链网络进行交互;
5.3.2、基础架构


5.3.3、Fabric 1.x 架构优势
- 链码(Chaincode)执行信任的可伸缩性,将用户自己开发的链码(Chaincode)和系统提供的Order 服务拆分,用户开发的链码(Chaincode)和系统提供的Order服务不再是一一对应的关系,Order也可以适当容忍错误的出现,增加了系统的鲁棒性
- 性能提升,拆分链码(Chaincode)和Order的串行执行,在原有架构中,当链码(Chaincode)执行非常耗时的时候,Order将会处于闲置状态,不利于提高系统的吞吐量,拆分以后链码(Chaincode)和Order可以并行执行发送交易
- 共识机制可以单独实现(order)
5.3.4、交易流程
- 应用向单个或多个Peer节点放交易的背书请求;
- 背书节点执行 ChainCode,但并不将结果提交到本地账本,知识将结果返回给应用
- 应用收集背书节点的结果后,将结果播给Orderer
- Orderer执行共识过程,并成Block,通过消息通道批量的将 block 发布给 Peer 节点
- 各个Peer节点验证交易,并提交到本地账本中
相关文章:
【跟小嘉学习区块链】二、Hyperledger Fabric 架构详解
系列文章目录 【跟小嘉学习区块链】一、区块链基础知识与关键技术解析 【跟小嘉学习区块链】一、区块链基础知识与关键技术解析 文章目录 系列文章目录[TOC](文章目录) 前言一、Hyperledger 社区1.1、Hyperledger(面向企业的分布式账本)1.2、Hyperledger社区组织结构 二、Hype…...
springboot下spring方式实现Websocket并设置session时间
概述 springboot实现websocket有4种方式 servlet,spring,netty,stomp 使用下来spring方式是最简单的. springboot版本:3.1.2 jdk:17 当前依赖版本 <dependency><groupId>org.springframework.boot<…...
LeetCode算法二叉树—相同的树
目录 100. 相同的树 - 力扣(LeetCode) 代码: 运行结果: 给你两棵二叉树的根节点 p 和 q ,编写一个函数来检验这两棵树是否相同。 如果两个树在结构上相同,并且节点具有相同的值,则认为它们是…...
搭建Flink集群、集群HA高可用以及配置历史服务器
Flink集群搭建 Flink集群搭建集群规划下载并解压安装包修改集群配置分发安装目录启动集群访问Web UI Flink集群HA高可用概述集群规划配置flink配置master、workers配置ZK分发安装目录启动HA集群测试 Flink参数配置配置历史服务器概述配置启动、停止历史服务器提交一个Job任务查…...
vscode终端中打不开conda虚拟包管理
今天,想着将之前鸽的Unet网络模型给实现一下,结果发现,在vscode中运行python脚本,显示没有这包,没有那包。但是在其他的ipynb中是有的,感觉很奇怪。我检查了一下python版本,发现不是我深度学习的…...
【音视频】MP4封装格式
基本概念 使用MP4box.js查看MP4内部组成结构 整体结构 数据索引(moov)数据流包(mdat) 各个包的位置,大小,信息,时间戳,编码方式等全在数据索引 数据流包只有纯二进制码流数据 数据…...
环境-使用vagrant快速创建linux虚拟机
1.下载软件 虚拟机 Oracle VM VirtualBox 镜像 Vagrant by HashiCorp (vagrantup.com) 如果下载慢,可以复制下载链接,使用迅雷下载 2.安装 根据提示点击下一步即可,建议安装到空间较大的非系统盘。 打开 window cmd 窗口,…...
10.1网站编写(Tomcat和servlet基础)
一.Tomcat: 1.Tomcat是java写的,运行时需要依赖jre,所以要装jdk. 2.建议配置好环境变量. 3.默认端口号8080(业务端口)可能会被占用,建议改一下(本人改成了9999). 4.另一个默认端口是8005(管理端口). 二Servlet基础(编写一个hello world代码): 整体分为7个步骤,分别是创建…...
10CQRS
本系列包含以下文章: DDD入门DDD概念大白话战略设计代码工程结构请求处理流程聚合根与资源库实体与值对象应用服务与领域服务领域事件CQRS(本文) 案例项目介绍 # 既然DDD是“领域”驱动,那么我们便不能抛开业务而只讲技术&…...
DAZ To UMA⭐一.DAZ简单使用教程
文章目录 🟥 DAZ快捷键🟧 DAZ界面介绍 🟥 DAZ快捷键 移动物体:ctrlalt鼠标左键 旋转物体:ctrlalt鼠标右键 导入模型:双击左侧模型UI 🟧 DAZ界面介绍 Files:显示全部文件 Products:显示全部产品 Figures:安装的全部人物 Wardrobe…...
面试题 —— Java集合篇(23题)
文章目录 1.Java中常见集合有哪些 ?2. 说说你对Java集合是怎么理解的?3.请你说一下List,Set,Map三者的特点是 ?4.在实际开发过程中如何更好的选择集合 ?5. ArrayList和Vector区别 ?6. ArrayList…...
SpringBoot2.7.14整合Swagger3.0的详细步骤及容易踩坑的地方
🧑💻作者名称:DaenCode 🎤作者简介:啥技术都喜欢捣鼓捣鼓,喜欢分享技术、经验、生活。 😎人生感悟:尝尽人生百味,方知世间冷暖。 📖所属专栏:Sp…...
题解:ABC321D - Set Menu
题解:ABC321D - Set Menu 题目 链接:Atcoder。 链接:洛谷。 难度 算法难度:B。 思维难度:C。 调码难度:B。 综合评价:见洛谷链接。 算法 枚举二分查找。 思路 先对b升序排序&#x…...
什么是Progressive Web App(PWA)?它们有哪些特点?
聚沙成塔每天进步一点点 ⭐ 专栏简介⭐ 渐进式Web App简介⭐ PWAs的主要特点⭐ 总结⭐ 写在最后 ⭐ 专栏简介 前端入门之旅:探索Web开发的奇妙世界 欢迎来到前端入门之旅!感兴趣的可以订阅本专栏哦!这个专栏是为那些对Web开发感兴趣、刚刚踏入…...
MySQL的高级SQL语句
目录 一、高级SQL语句 1、select 查询表中一个或多个字段的数据 2、distinct 不显示重复的数据记录 3、where 有条件查询 4、and与or 且与或 5、in 显示在某个范围值内 的字段的信息 6、between 显示两个值范围内的数据记录 7、order by 对字…...
基于人脸5个关键点的人脸对齐(人脸纠正)
摘要:人脸检测模型输出人脸目标框坐标和5个人脸关键点,在进行人脸比对前,需要对检测得到的人脸框进行对齐(纠正),本文将通过5个人脸关键点信息对人脸就行对齐(纠正)。 一、输入图像…...
vue3中两个el-select下拉框选项相互影响
vue3中两个el-select下拉框选项相互影响 1、开发需求2、代码2.1 定义hooks文件2.2 在组件中使用 1、开发需求 如图所示,在项目开发过程中,遇到这样一个需求,常规时段中选中的月份在高峰时段中是禁止选择的状态,反之亦然。 2、代…...
博弈论——反应函数
反应函数 1 引言 谢老师的《经济博弈论》书中对反应函数并没有给出一般笼统的定义,而是将其应用与古诺模型并给出了相关解释:反应函数是指在无限策略的古诺博弈模型中,博弈方的策略有无限多种,因此各个博弈方的最佳对策也有无限…...
UE5读取json文件
一、下载插件 在工程中启用 二、定义读取外部json文件的函数,参考我之前的文章 ue5读取外部文件_艺菲的博客-CSDN博客 三、读取文件并解析为json对象 这里Load Text就是自己定义的函数,ResourceBundle为一个字符串常量,通常是读取的文件夹…...
Vue中的插槽--组件复用,内容自定义
插槽 文章目录 插槽插槽-默认插槽插槽-后备内容(设置默认值)插槽-具名插槽插槽–作用域插槽 插槽-默认插槽 作用:让组件内部的一些结构支持自定义 需求:要在页面中显示一个对话框,封装成一个组件(对话框有很多功能是类…...
基于算法竞赛的c++编程(28)结构体的进阶应用
结构体的嵌套与复杂数据组织 在C中,结构体可以嵌套使用,形成更复杂的数据结构。例如,可以通过嵌套结构体描述多层级数据关系: struct Address {string city;string street;int zipCode; };struct Employee {string name;int id;…...
测试微信模版消息推送
进入“开发接口管理”--“公众平台测试账号”,无需申请公众账号、可在测试账号中体验并测试微信公众平台所有高级接口。 获取access_token: 自定义模版消息: 关注测试号:扫二维码关注测试号。 发送模版消息: import requests da…...
手游刚开服就被攻击怎么办?如何防御DDoS?
开服初期是手游最脆弱的阶段,极易成为DDoS攻击的目标。一旦遭遇攻击,可能导致服务器瘫痪、玩家流失,甚至造成巨大经济损失。本文为开发者提供一套简洁有效的应急与防御方案,帮助快速应对并构建长期防护体系。 一、遭遇攻击的紧急应…...
Vue3 + Element Plus + TypeScript中el-transfer穿梭框组件使用详解及示例
使用详解 Element Plus 的 el-transfer 组件是一个强大的穿梭框组件,常用于在两个集合之间进行数据转移,如权限分配、数据选择等场景。下面我将详细介绍其用法并提供一个完整示例。 核心特性与用法 基本属性 v-model:绑定右侧列表的值&…...
Cesium1.95中高性能加载1500个点
一、基本方式: 图标使用.png比.svg性能要好 <template><div id"cesiumContainer"></div><div class"toolbar"><button id"resetButton">重新生成点</button><span id"countDisplay&qu…...
python/java环境配置
环境变量放一起 python: 1.首先下载Python Python下载地址:Download Python | Python.org downloads ---windows -- 64 2.安装Python 下面两个,然后自定义,全选 可以把前4个选上 3.环境配置 1)搜高级系统设置 2…...
聊聊 Pulsar:Producer 源码解析
一、前言 Apache Pulsar 是一个企业级的开源分布式消息传递平台,以其高性能、可扩展性和存储计算分离架构在消息队列和流处理领域独树一帜。在 Pulsar 的核心架构中,Producer(生产者) 是连接客户端应用与消息队列的第一步。生产者…...
NLP学习路线图(二十三):长短期记忆网络(LSTM)
在自然语言处理(NLP)领域,我们时刻面临着处理序列数据的核心挑战。无论是理解句子的结构、分析文本的情感,还是实现语言的翻译,都需要模型能够捕捉词语之间依时序产生的复杂依赖关系。传统的神经网络结构在处理这种序列依赖时显得力不从心,而循环神经网络(RNN) 曾被视为…...
20个超级好用的 CSS 动画库
分享 20 个最佳 CSS 动画库。 它们中的大多数将生成纯 CSS 代码,而不需要任何外部库。 1.Animate.css 一个开箱即用型的跨浏览器动画库,可供你在项目中使用。 2.Magic Animations CSS3 一组简单的动画,可以包含在你的网页或应用项目中。 3.An…...
适应性Java用于现代 API:REST、GraphQL 和事件驱动
在快速发展的软件开发领域,REST、GraphQL 和事件驱动架构等新的 API 标准对于构建可扩展、高效的系统至关重要。Java 在现代 API 方面以其在企业应用中的稳定性而闻名,不断适应这些现代范式的需求。随着不断发展的生态系统,Java 在现代 API 方…...
