百度链接提交,百度seo优化排名软件,网站后台管理系统是什么,广州免费建站推荐1. 简介
Hyperledger Fabric 是一个开源的企业级许可分布式账本技术#xff08;Distributed Ledger Technology#xff0c;DLT#xff09;平台。
Fabric 具有高度模块化和可配置的架构#xff0c;可为各行各业的业务提供创新性、多样性和优化#xff0c;其中包括银行、金…1. 简介
Hyperledger Fabric 是一个开源的企业级许可分布式账本技术Distributed Ledger TechnologyDLT平台。
Fabric 具有高度模块化和可配置的架构可为各行各业的业务提供创新性、多样性和优化其中包括银行、金融、保险、医疗保健、人力资源、供应链甚至数字音乐分发。
支持通用编程语言编写智能合约如 Java、Go 和 Node.js
该平台最重要的区别之一是它支持可插拔的共识协议使得平台能够更有效地进行定制以适应特定的业务场景和信任模型。例如当部署在单个企业内或由可信任的权威机构管理时完全拜占庭容错的共识可能是不必要的并且大大降低了性能和吞吐量。在这种的情况下崩溃容错Crash Fault-TolerantCFT共识协议可能就够了而在去中心化的场景中可能需要更传统的拜占庭容错Byzantine Fault TolerantBFT共识协议。 1.1 智能合约
智能合约不仅是在网络中封装和简化信息的关键机制它还可以被编写成自动执行参与者的特定交易的合约。
例如可以编写智能合约以规定物品的运费运费根据物品送达的速度变化而变化。交易双方同意并把条款写入账本后当物品送达时相应的资金就会自动转账。 Hyperledger Fabric 智能合约用 链码 编写当该应用程序需要与账本交互时由区块链外部的应用程序调用。在大多数情况下链码只与账本的数据库、世界状态见3.4交互例如查询而不与交易日志交互。
链码可以用几种编程语言实现。目前支持 Go、Node.js 和 Java 链码。 1.2 共识
保持账本在整个网络中同步的过程称为 共识 。该过程确保所有账本仅在交易被相应参与者批准时更新并且当账本更新时所有账本都以相同的顺序更新相同的交易。
Hyperledger Fabric 被设计为允许网络启动者选择最能代表参与者间存在的关系的共识机制。 1.3 通道
Hyperledger Fabric 还提供创建 通道 的功能允许一组参与者创建各自的交易账本。对于某些网络而言这是一个特别重要的选择。这些网络中一些参与者可能是竞争对手并且不希望他们做出的每笔交易都被每个参与者知晓例如他们只向某些参与者提供的特殊价格而其他人不是。如果两个参与者组成一个通道那么只有这两个参与者拥有该通道的账本副本而其他参与者没有。
不同通道的交易信息和数据彼此隔离。 1.4 链码
链码是对智能合约的进一步扩展隔离运行在docker环境中。分为系统链码和用户链码系统链码嵌入在系统内提供对系统的配置和管理。用户通过相关的API编写用户链码通过部署和实例化后可以对账本中的状态进行更新。部署和启动Fabric网络后可以通过命令行或者SDK进行链码操作。
执行与交易排序分离限制了跨节点类型所需的信任和验证级别并优化了网络可扩展性和性能。
即业务逻辑。链码强制执行读取或更改键值对或其他状态数据库信息的规则。链码函数针对账本的当前状态数据库执行并通过交易提案启动。链码执行会产生一组用于写入的键值对写集可以被提交到网络并应用于所有节点的账本。
2. 主要特点 2.1 模块化
平台的核心设计旨在满足企业业务需求的多样性。
可插拔的排序服务对交易顺序建立共识然后向节点广播区块可插拔的成员服务提供者负责将网络中的实体与加密身份相关联可选的P2P gossip 服务通过排序服务将区块发送到其他节点智能合约“链码”隔离运行在容器环境例如 Docker中。它们可以用标准编程语言编写但不能直接访问账本状态账本可以通过配置支持多种 DBMS可插拔的背书和验证策略每个应用程序可以独立配置。 2.2 智能合约
智能合约在 Fabric 中称之为“链码”
有三个关键点适用于智能合约尤其是应用于平台时
多个智能合约在网络中同时运行它们可以动态部署很多情况下任何人都可以部署应用代码应视为不被信任的甚至可能是恶意的。
大多数现有的具有智能合约能力的区块链平台遵循顺序执行架构其中共识协议
验证并将交易排序然后将它们传播到所有的节点每个节点按顺序执行交易。
采用顺序执行架构的区块链执行智能合约的结果一定是确定的否则可能永远不会达成共识。由于所有节点都按顺序执行所有交易性能和规模被限制。事实上系统要求智能合约代码要在每个节点上都执行这就需要采取复杂措施来保护整个系统免受恶意合约的影响以确保整个系统的弹性。
Fabric的新方法执行-排序-验证。为了解决顺序执行模型面临的弹性、灵活性、可伸缩性、性能和机密性问题它将交易流分为三个步骤
执行一个交易并检查其正确性从而给它背书通过可插拔的共识协议将交易排序提交交易到账本前先根据特定应用程序的背书策略验证交易
在 Fabric 中特定应用程序的背书策略可以指定需要哪些节点或多少节点来保证给定的智能合约正确执行。因此每个交易只需要由满足交易的背书策略所必需的节点的子集来执行背书。这样可以并行执行从而提高系统的整体性能和规模。第一阶段也消除了任何非确定性因为在排序之前可以过滤掉不一致的结果。
因为我们已经消除了非确定性Fabric 是第一个能使用标准编程语言的区块链技术。
3. 关键概念
关键概念 — hyperledger-fabricdocs master 文档
区块链网络区块链网络 — hyperledger-fabricdocs master 文档角色划分
Fabric包含三类角色客户端client、节点peer、排序者order。多角色划分有利于提高交易处理效率。
客户端client用于将终端用户的交易请求发送到区块链网络节点peer。为了提高交易处理效率节点分为多种类型如背书节点Endorser确认节点Committter主节点Leader锚节点Anchor。节点是一个逻辑概念Endorser和Committer可以同时部署在一台物理机上。排序者order负责对交易排序后打包成区块并将结果返回给Committer节点一般由order集群实现。
Orderer 排序服务节点 或 排序节点Orderer 是一个运行实现交付担保的通信服务节点例如原子性或总顺序广播。排序节点负责接受交易并排序排序算法有: SOLOKAFKARAFTPBFT最后将排序好的交易按照配置中的约定整理为区块之后提交给记账节点进行处理。Peer 节点Peer 是业务参与方组织在区块链网络中所拥有的参与共识和账本记录的节点。可以有多种角色。作为 Committing Peer 记账节点时无需安装链码只负责验证从 Orderer 发出的区块和交易的合法性、并存储账本区块信息。作为 Endorsing Peer 背书节点时必须安装链码在交易时需进行签名背书。Anchor 锚节点为了实现高可用每个参与方组织一般包含两个或多个 Peer 节点可以设置其中的一个为 Anchor 与区块链网络中的其他组织进行信息同步。客户端节点客户端扮演了代表最终用户的实体可以同时与 Peer 和 Orderer 通信创建并调用交易。这里客户端可以指应用程序、SDK、命令行等。