超级帐本(Hyperledger)
1. Hyperledger 项目
Hyperledger 下有两类项目:第一类是区块链框架项目;第二类是支持这些区块链的相关工具或模块。
在 Hyperledger 框架下,目前有 5 个区块链框架项目:Fabric、Sawtooth Lake、Iroha、Burrow 和 Indy。
在模块类下,则有 Hyperledger Cello、Hyperledger Composer、Hyperledger Explorer 和 Hyperledger Quilt。
Hyperledger 项目目前有 200 多个成员组织,并且有许多非常活跃的贡献者,在全球范围内定期定期组织聚会和演讲。
1.1 Fabric
Fabric 是 IBM 和区块链创业公司 DAH(Digital Asset Holdings) 提出的一个区块链项目。该区块链框架旨在为开发具有模块化架构的区块链解决方案提供基础。它基于可插拔的架构,可以根据需要将各种组件 (例如共识引擎和成员资格服务) 插入系统。它还利用容器技术,该技术用于在隔离你的封闭环境中运行智能合约。目前,它的状态是活跃的,这是第一个经历从孵化到活跃状态的项目。
| 注意: Fabric 的源代码可从以下网址获得: https://github.com/hyperledger/fabric |
1.2 Sawtooth Lake
Sawtooth Lake (锯齿湖)是 Intel 公司于 2016 年 4 月提出的一个区块链项目,其一些关键创新着眼于帐本与交易的脱钩、跨多个业务领域的灵活使用,以及可插入的共识。
对于这里所谓的脱钩 (Decoupling,也称为解耦),更精确的解释是,通过使用称为交易族(Transaction Families) 的新概念将交易与共识层脱钩。
交易族不是使用单独的帐本来耦合交易,它提供了更大的灵活性、更丰富的语义以及业务逻辑的开放式设计。交易遵循交易族中定义的模式和结构。
Intel 公司推出的一些创新元素包括缩写为 PoET 的新颖共识算法,即消逝时间量证明(Proof of Elapsed Time), 该算法利用英特尔软件保护扩展(Intel Software Guard Extensions, Intel SGX) 提供的可信执行环境(Trusted Execution Environment,TEE) 来提供安全而随机的领导者选举处理。它还支持许可和无许可设置。
| 注意: 该项目的源代码可以从以下网址获得: https://github.com/hyperledger/sawtooth-core |
1.3 Iroha
Iroha 由 Soramitsu、Hitachi、NTT Data 和 Colu 于 2016 年 9 月 贡献。 Iroha 的目标是建立可重用组件的库,用户可以选择在基于 Hyperledger 的分布式帐本上运行它们。
Iroha 的主要目标是通过提供用 C++ 编写的可重用组件 (重点是移动开发) 来补充其他 Hyperledger 项目。该项目还提出了一种称为 Sumeragi 的新型共识算法,该算法是基于链的拜占庭容错共识算法。
| 注意: 该项目的源代码可以从以下网址获得: https://github.com/hyperledger/iroha |
Iroha 已提出和使用各种库,其中包括但不限于数字签名库(ed25519)、SHA-3 哈希库、交易序列化库、P2P 库、API 服务器库、iOS 库、Android 库 和 JavaScript 库。
1.4 Burrow
Burrow 项目当前处于孵化状态。Hyperledger Burrow 由 Monax 公司贡献,Monax 公司开发了一个业务的区块链开发和部署平台。
Hyperledger Burrow 引入了模块区区块链平台和基于以太坊虚拟机的智能合约执行环境。Burrow 使用权益证明、拜占庭容错 Tendermint 共识机制,其结果就是,Burrow 提供了高吞吐量和交易的不可改变性。
| 注意: 该项目的源代码可以从以下网址获得: https://github.com/hyperledger/burrow |
1.5 Indy
该项目正在 Hyperledger 下进行孵化。Indy 是为建立去中心化身份而开发的分布式帐本。它提供了可用于构建基于区块链的数字身份的工具、实用程序和模块。这些身份可以跨多个区块链、域和应用程序使用。
Indy 拥有自己的分布式帐本,并使用冗余拜占庭容错(Redundant Byzantine Fault Tolerance, RBFT) 达成共识。
| 注意: 该项目的源代码可以从以下网址获得: https://github.com/hyperledger/indy-node |
1.6 Explorer
该项目旨在为 Hyperledger Fabric 构建一个区块链浏览器,可用于查看和查询来自区块链的交易、区块和关联数据,它还提供网络信息以及与链代码进行交互的能力。
| 注意: 该项目的源代码可以从以下网址获得: https://github.com/hyperledger/blockchain-explorer |
当前还有若干正在 Hyperledger 下孵化的其他项目,这些项目旨在提供工具和实用程序来支持区块链网络。
1.7 Cello
Cello 的目的是允许轻松部署区块链,这将提供一种允许 “作为一种服务" 部署区块链服务的能力。目前,该项目处于孵化阶段。
| 注意: 该项目的源代码可以从以下网址获得: https://github.com/hyperledger/cello |
1.8 Composer
该实用程序允许以一种业务语言描述业务流程,同时抽象出低级智能合约开发的细节,从而使区块链解决方案的开发更加容易。
| 注意: 该项目的源代码可以从以下网址获得: https://hyperledger.github.io/composer/ |
1.9 Quit
该实用程序实现了 Interledger 协议,Interledger 协议促进了不同分布式和非分布式帐本网络之间的互操作性。
| 注意: 该项目的源代码可以从以下网址获得: https://github.com/hyperledger/quilt |
2. Hyperledger 即协议
Hyperledger 旨在构建由行业用例驱动的新区块链平台。由于社区对 Hyperledger 项目做出许多贡献,因此 Hyperledger 区块链平台正在演变为业务交易协议。
与仅解决特定类型的行业或要求的早期区块链解决方案相比,Hyperledger 也正在发展成为可以用作构建区块链平台的参考规范。
3. 参考架构
Hyperledger 发布了一份白皮书,该白皮书提供了一种参考架构,可以用作构建许可分布式帐本的指南。参考架构由形成业务区块链的各种组件组成,下图显示了这些高级组件。

在上图中,可以看到 5 个提供各种服务的顶级组件。现在我们就来探讨一下这些组件。
首先是 Identity (身份),它将在成员资格服务下提供授权、标识和身份验证服务。
其次是 Policy (策略)组件,它将提供策略服务。
再次是 Blockchain ( 区块链 )和 Transaction (交易),其中包括分布式帐本、排序服务、网络协议以及背书(Endorsement) 和验证服务。该帐本只能通过区块链网络参与者之间的共识来更新。
最后是 Smart Contract (智能合约)。该层可以在 Hyperledger 中提供链码(Chaincode) 服务,并利用安全容器技术托管智能合约。
一般来说,从组件的角度来看,Hyperledger 包含以下元素:
- 共识层:这些服务负责促进区块链网络上参与者之间的协议流程。需要达成共识以确保交易的顺序和状态在区块链网络中得到验证和同意。
- 智能合约层:这些服务负责根据用户要求实现业务逻辑。根据驻留在区块链上的智能合约中定义的逻辑来处理交易。
- 通信层:该层负责区块链网络上节点之间的消息传输和交换。
- 安全和加密层:这些服务负责提供一种功能,以允许各种加密算法或模块提供隐私、机密性和不可否认性服务。
- 数据存储:该层提供使用不同的数据存储来存储帐本状态的功能。这意味着数据存储也是可插入的,并允许使用任何数据库后端。
- 策略服务:这组服务提供了管理区块链网络所需的不同策略的能力,它包括背书政策和共识政策。
- API 和 SDK :该层允许客户端和应用程序与区块链进行交互。SDK 用于提供在链上部署和执行链码、查询区块和监视事件的机制。
4. Hyperledger Fabric 的要求和设计目标
区块链服务有一定的要求。上述参考架构将由 Hyperledger 项目参与者提出的需求和要求驱动,并且是在研究了行业用例之后的结果。从工业用例的研究中,可以得出若干需求分类,在以下各节中将分别进行讨论。
4.1 模块化方法
Hyperledger 的主要需求是模块化结构。作为跨行业结构(区块链),它将在许多业务场景中使用。因此,与存储、策略、链码、访问控制、共识和许多其他区块链服务相关的功能应模块化且可插入。该规范建议模块应即插即用,并且用户应该能够轻松地删除和添加满足业务要求的其他模块。
4.2 隐私性和机密性
隐私性和机密性要求是最关键的因素之一。由于传统的区块链是无须许可的,因此,在像 Hyperledger Fabric 这样的许可模型中,最重要的一点是:网络上的交易仅对那些被允许查看的人可见。
交易和合约的隐私性和机密性在商业区块链中至关重要。因此,Hyperledger 的愿景是为各种加密协议和算法提供支持。
用户预计能够根据其业务需求选择适当的模块。例如,如果业务区块链仅需要在已经受信任的各方之间运行并执行非常基本的业务操作,那么也许就不需要针结机密性和隐私性的高级加密支持。因此,用户应该能够删除该功能(模块)或将其替找为更适合其需求的模块。
如果用户需要运行跨行业的区块链,那么隐私性和机密性可能是至关重要的。在这种情况下,用户应该能够将高级加密和访问控制机制(模块)插入区块链(结构)中,甚至可以允许使用安全模块硬件(Hardware of Security Modules,HSM)。
同样,区块链应该能够处理复杂的密码算法而不会影响其性能。除了前面提到的方案之外,由于业务中的合规性要求,因此还应该有一条规定:允许根据监管和合规性要求实施隐私性和机密性策略。
4.3 可伸缩性
可伸缩性(Scalability,也称为可扩展性)是 Hyperledger 的一个要求,满足该要求意味着允许合理的交易吞吐量,这将满足所有业务需求以及大量用户的需求。
4.4 确定性交易
确定性交易(Deterministic Transaction) 是任何区块链都必须满足的核心要求。如果不能做到无论执行交易的人是谁、执行交易的地点在哪里,每次执行交易的结果者相同,那么就不可能达成共识。因此,确定性交易成为任何区块链网络中的关键要求。
4.5 身份识别
为了提供隐私性和机密性服务,还需要可用于处理访问控制功能的灵活 PKI 模型。密码机制的强义和类型应该能够根据用户的需求而变化。在某些情况下,可能需要用户隐藏其身份,因此 Hyperledger 也应该提供此功能。
4.6 可审核性
可审核性(Auditability)是 Hyperledger Fabric 的一个要求,应该保留所有身份、相关操作和任何更改的不可变记录,以便跟踪审核。
4.7 互通性
互通性(Interoperability)也称为互操作性。目前有许多可用的区块链平台,但是它们之间无法相互通信,这可能是基于区块链的全球商业生态系统增长的一种限制因素。可以预见,许多区块链网络将根据特定需求在商业环境中运行,但重要的是它们之间应该能够相互通信。所有区块链都应该遵循一套通用的标准,以允许不同帐本之间的通信。因此,有必要开发出一种协议,以允许在诸多结构之间交换信息。
4.8 可移植性
可移植性(Portability) 指的是能够跨多个平台和环境运行而无须在代码级别进行任何更改。Hyperledger Fabric 应该不仅在基础架构级别,而且在代码、库和 API 级别都是可移植的,因此它可以支持在 Hyperledger 各种实现之间的统一开发。
4.9 丰富的数据查询
区块链网络应允许在网络上运行丰富的查询,可以使用传统查询语言来查询帐本的当前状态,满足这一易用性要求将有助于区块链网络的广泛推展。
上述 9 项就是 Hyperledger Fabric 的要求,开发符合 Hyperledger 设计理念的区块链解决方案应满足这些要求。
相关文章:
超级帐本(Hyperledger)
1. Hyperledger 项目 Hyperledger 下有两类项目:第一类是区块链框架项目;第二类是支持这些区块链的相关工具或模块。 在 Hyperledger 框架下,目前有 5 个区块链框架项目:Fabric、Sawtooth Lake、Iroha、Burrow 和 Indy。 在模块类下,则有 Hyp…...
如何精细优化网站关键词排名:实战经验分享
在数字营销日益激烈的今天,我深知每一个关键词的排名都关乎着网站的流量与转化。凭借多年的实战经验,我深刻体会到,要想在浩如烟海的网络世界中脱颖而出,精细化的关键词优化策略至关重要。今天,我将从实战角度出发&…...
Ruoyi Cloud 本地启动
本文视频版本:https://www.bilibili.com/video/BV1SNtueBE9M 参考 http://doc.ruoyi.vip/ https://gitee.com/y_project/RuoYi-Cloud https://blog.csdn.net/cs_dnzk/article/details/135289966 https://doc.ruoyi.vip/ruoyi-cloud/cloud/seata.html#%E5%9F%BA%E6…...
Nginx解析:入门笔记
🌈 个人主页:danci_ 🔥 系列专栏:《设计模式》《MYSQL》 💪🏻 制定明确可量化的目标,坚持默默的做事。 ✨欢迎加入探索nginx之旅✨ 👋 大家好!文本学习和探索Nginx配置。…...
在 Mac 上安装双系统会影响性能吗,安装双系统会清除数据吗?
在 Mac 系统安装并使用双系统已经成为了许多用户办公的选择之一,双系统可以让用户在 Mac 上同时运行 Windows 或其他操作系统。然而,许多用户担心这样做会对 Mac 的性能产生影响。 接下来将给大家介绍 Mac 装双系统会影响性能吗,Mac装双系统…...
vue3提交按钮限制重复点击
下载lodash npm install lodash 引入并使用 <template><div click"submit()">提交</div> </template><script setup>import { debounce } from lodash;const submit debounce(() > {//业务代码},2000,{leading: true,trailing:…...
Java | Leetcode Java题解之第395题至少有K个重复字符的最长子串
题目: 题解: class Solution {public int longestSubstring(String s, int k) {int ret 0;int n s.length();for (int t 1; t < 26; t) {int l 0, r 0;int[] cnt new int[26];int tot 0;int less 0;while (r < n) {cnt[s.charAt(r) - a];…...
20240915 每日AI必读资讯
国家网信办发布《人工智能生成合成内容标识办法(征求意见稿)》 - 要求所有的AI生成内容都要打标,包括文字、图像、视频、音频… - 文本内容要插入标识符提醒,音频内容要在里面插入提示音 - 对创作者不太友好,对平台…...
量化交易需要注意的关于股票交易挂单排队规则的问题
炒股自动化:申请官方API接口,散户也可以 python炒股自动化(0),申请券商API接口 python炒股自动化(1),量化交易接口区别 Python炒股自动化(2):获取…...
应急响应实战---是谁修改了我的密码?
前言:此次应急响应为真实案例,客户反馈无法通过密码登录服务器,疑似服务器被入侵 0x01 如何找回密码? 客户服务器为windows server2019,运维平台为PVE平台;实际上无论是windows系统或者是linux系统&#…...
知识的通用性
概述 很久没有写文章了,因为集团公司当前在大刀阔斧的改革,人员精简,很多事情都合并到同一个人身上,同时将内部的沟通软件平台又做一次大的切换,很多资料都需要重新的整理。 所以,抱歉,很多内…...
36岁,大厂女程序员,中年失业后,我开始接受自己的平凡,并深耕自己
作为80后秦岭大山里面的穷苦农民工家的孩子,从小因为讨厌做家务,做农活,而且家里孩子众多,物质匮乏,从小就特别渴望走出大山。 上学的时候,通过刻苦努力,成绩也还算可以,经常受到老师…...
shader 案例学习笔记之mix函数
mix函数: 在两个值之间进行插值; 使用: #ifdef GL_ES precision mediump float; #endifuniform vec2 u_resolution; uniform float u_time;vec3 colorA vec3(0.149,0.141,0.912); vec3 colorB vec3(1.0,0.83,0.224);void main(){vec2 st…...
OpenAI草莓正式发布,命名o1
一、相关介绍 当地时间 9 月 12 日,OpenAI 推出全新模型 o1,它是该公司计划推出的一系列“推理”模型中的首个,也就是此前业内传闻许久的“Strawberry(草莓)”项目。 据悉,o1 模型在众多任务中能够比人类更…...
心觉:以终为始,帮你精准实现目标
Hi,我是心觉,与你一起玩转潜意识、脑波音乐和吸引力法则,轻松掌控自己的人生! 挑战每日一省写作169/1000天 假设你的目标是 一年内赚到150万。我们可以通过“以终为始”和“以始为终”的结合来帮助你实现这个目标 以下是完整的…...
【Kubernetes】linux centos安装部署Kubernetes集群
【Kubernetes】centos安装Kubernetes集群 1、环境准备 系统centos7 配置yum源参考文章 Centos系统换yum源 yum -y update 步骤1-3是所有主机都要配置,主机名和hosts配置完后可以使用工具命令同步 1.1 主机 一主二从 主机名ipk8smaster192.168.59.148k8snode11…...
canlog-vci can记录仪,速采仪如何用VBDSP进行解析曲线
如下图所示,VBDSP支持绘制解析曲线 添加解析曲线步骤 (1)在线播放DBC解析曲线 ① 添加要解析的规则,自定义规则/DBC解析规则、J1939协议、CANopen协议; ② 选中设备,点击“分析”栏中的“曲线”࿰…...
JCO|病理AI是精准医疗的未来吗?|个人观点·24-09-13
小罗碎碎念 今日顶刊:JCO 这篇文章于24-09-11发表于J Clin Oncol,目前IF42.1,但是注意,这篇文章是一篇观点类文章,而不是我们常规意义上的那种科研型文章。 我在原作者的基础上补充了很多精美插图,并且根据…...
idea一键自动化部署项目
文章目录 前言一、 IDEA插件安装1. 首先下载 Alibaba Cloud Toolkit 插件2. 插件下载完成后重启IDEA 二、SpringBoot项目准备1. pom.xml 文件2. controller3. 启动类 三、SpringBoot项目jar包部署1. Alibaba Cloud Toolkit 插件服务器配置2. 主机 IP、用户名、密码 点击测试链接…...
Mybatis-plus复习篇
文章目录 1.MyBatis-plus基础1.1.mybatis-plus简介1.2.基本使用1.3.注解映射主键生成策略 1.4.命名转换问题1.5.关闭命名转换功能 2.BaseMapper核心接口 1.MyBatis-plus基础 1.1.mybatis-plus简介 MyBatis-Plus(简称 MP)是一个 MyBatis的增强工具&…...
前端倒计时误差!
提示:记录工作中遇到的需求及解决办法 文章目录 前言一、误差从何而来?二、五大解决方案1. 动态校准法(基础版)2. Web Worker 计时3. 服务器时间同步4. Performance API 高精度计时5. 页面可见性API优化三、生产环境最佳实践四、终极解决方案架构前言 前几天听说公司某个项…...
8k长序列建模,蛋白质语言模型Prot42仅利用目标蛋白序列即可生成高亲和力结合剂
蛋白质结合剂(如抗体、抑制肽)在疾病诊断、成像分析及靶向药物递送等关键场景中发挥着不可替代的作用。传统上,高特异性蛋白质结合剂的开发高度依赖噬菌体展示、定向进化等实验技术,但这类方法普遍面临资源消耗巨大、研发周期冗长…...
UDP(Echoserver)
网络命令 Ping 命令 检测网络是否连通 使用方法: ping -c 次数 网址ping -c 3 www.baidu.comnetstat 命令 netstat 是一个用来查看网络状态的重要工具. 语法:netstat [选项] 功能:查看网络状态 常用选项: n 拒绝显示别名&#…...
Java 加密常用的各种算法及其选择
在数字化时代,数据安全至关重要,Java 作为广泛应用的编程语言,提供了丰富的加密算法来保障数据的保密性、完整性和真实性。了解这些常用加密算法及其适用场景,有助于开发者在不同的业务需求中做出正确的选择。 一、对称加密算法…...
LLM基础1_语言模型如何处理文本
基于GitHub项目:https://github.com/datawhalechina/llms-from-scratch-cn 工具介绍 tiktoken:OpenAI开发的专业"分词器" torch:Facebook开发的强力计算引擎,相当于超级计算器 理解词嵌入:给词语画"…...
工业自动化时代的精准装配革新:迁移科技3D视觉系统如何重塑机器人定位装配
AI3D视觉的工业赋能者 迁移科技成立于2017年,作为行业领先的3D工业相机及视觉系统供应商,累计完成数亿元融资。其核心技术覆盖硬件设计、算法优化及软件集成,通过稳定、易用、高回报的AI3D视觉系统,为汽车、新能源、金属制造等行…...
【学习笔记】深入理解Java虚拟机学习笔记——第4章 虚拟机性能监控,故障处理工具
第2章 虚拟机性能监控,故障处理工具 4.1 概述 略 4.2 基础故障处理工具 4.2.1 jps:虚拟机进程状况工具 命令:jps [options] [hostid] 功能:本地虚拟机进程显示进程ID(与ps相同),可同时显示主类&#x…...
Java毕业设计:WML信息查询与后端信息发布系统开发
JAVAWML信息查询与后端信息发布系统实现 一、系统概述 本系统基于Java和WML(无线标记语言)技术开发,实现了移动设备上的信息查询与后端信息发布功能。系统采用B/S架构,服务器端使用Java Servlet处理请求,数据库采用MySQL存储信息࿰…...
代码规范和架构【立芯理论一】(2025.06.08)
1、代码规范的目标 代码简洁精炼、美观,可持续性好高效率高复用,可移植性好高内聚,低耦合没有冗余规范性,代码有规可循,可以看出自己当时的思考过程特殊排版,特殊语法,特殊指令,必须…...
tomcat入门
1 tomcat 是什么 apache开发的web服务器可以为java web程序提供运行环境tomcat是一款高效,稳定,易于使用的web服务器tomcathttp服务器Servlet服务器 2 tomcat 目录介绍 -bin #存放tomcat的脚本 -conf #存放tomcat的配置文件 ---catalina.policy #to…...
