Hyperledger fabrics是什么
Hyperledger fabric是一个全新解决问题的方式,是基于区块链的企业级分布式账本,通过智能合约来解决多个组织间的信任问题.
Hyperledger fabrics特点
- 模块化 : 组件可定制,可插拔设计,隔离功能
- 可扩展 : 支持多个共识机制,高性能处理,分区和多通道
- 超安全 : 身份管理,数据隐私,链码隔离,不可篡改性
Hyperledger重建信任
hyperledger是基于区块链技术,所以可以创建一个自己的货币,但是hyperledger拥有独特的共识协议,让挖矿不再是必须
Hyperledger交易速度
比特币7笔/s , 以太坊几百笔/min , hyperledger 50万笔/min
Hyperledger适合企业开发的理由
premissioned network(授权网络):
每个参与者只有经过授权才能进入该网络,不需要担心51%的攻击,采用了独特的共识协议,每个参与者都需要CA认证
confidential transaction(交易安全):
存在两个组织之间可以创建一个私有频道进行私下交易,不被其他的组织知道,并且其他组织甚至都不知 道这个频道的存在
no cryptocurrency(无数字货币):
不需要挖矿,没有矿工,成本低,验证操作灵活,运行起来绿色环保,不需要大量的算力
pragrammale(可编程的):
chaincode,可以使用智能合约. 得企业能够实现更加高效、安全和透明的业务流程 .
hyperledge可以创建私有链,联盟链,公有链,只要node处于相同的网络节点,他们之间就可以互相发现,并且可以使用hyperledge来让他们达成共识协议,所以其应用场景很广泛,在任何场景都可以找到落地的需求
Hyperledger的倍数策略
Hyperledger 的背书策略(endorsement policy)是指在 Hyperledger Fabric 中,确定哪些组织的背书(即批准)是必需的,以便交易能够被认为是有效并被提交到区块链的规则
- 定义背书:背书是指组织对交易的认可,只有经过指定组织的背书,交易才能继续进行。
- 灵活性:背书策略可以根据具体的业务需求进行配置。可以要求所有组织的背书,也可以仅要求部分组织的背书。
- 示例策略:
"AND" 策略:需要所有指定组织的背书(例如,组织 A、B 和 C 都需要背书)。
"OR" 策略:只需满足其中一个组织的背书(例如,组织 A 或 B 或 C)。
结合使用:可以组合多种策略,例如需要组织 A 和 B 的背书,或者组织 C 的背书。
- 提高安全性和信任:通过确保交易获得多个组织的背书,增强了系统的安全性和参与者之间的信任。
- 交易的处理:只有满足背书策略的交易,才能被提交到排序服务并最终被添加到区块链
授权网络和MSP和CA
- 授权网络
定义:授权网络是指在 Hyperledger Fabric 中,组织之间建立的网络,参与者通过该网络进行交易和数据共享。
功能:授权网络确保只有经过授权的参与者能够访问和参与交易。它通常涉及到网络中的所有组织和它们的身份管理。
特点:网络的治理、参与者的加入和退出都在这个层面进行管理。 - 成员服务提供者(MSP)
定义:MSP 是 Hyperledger Fabric 中的身份管理组件,负责定义和管理网络中成员(组织)的身份。
功能:MSP 提供身份验证和授权功能,确保只有合法的参与者能够加入网络并进行交易。
特点:
每个组织都有自己的 MSP,用于管理该组织内部用户的身份。
MSP 定义了背书策略和访问控制规则。 - 证书颁发机构(CA)
定义:CA 是负责颁发和管理数字证书的机构,用于证明用户和组织的身份。
功能:CA 生成和颁发用户和组织的证书,确保它们的身份在网络中是可信的。
特点:
CA 可以是集中式的(单个 CA 颁发所有证书)或分散式的(每个组织都有自己的 CA)。
CA 还负责证书的撤销和更新。
总结
授权网络 是网络层面的管理,确保组织之间的合作。
MSP 是身份管理的核心,定义如何验证和管理组织的身份。
CA 则是证书管理的具体实施者,提供所需的数字证书来支持身份验证和安全通信。
peer,client,orderer
- Peer
定义:Peer 是 Hyperledger Fabric 网络中的节点,负责维护区块链账本、执行智能合约(链码)和处理交易。
功能:
账本管理:每个 Peer 保存一份账本副本,确保数据的一致性和可靠性。
交易执行:当交易被提议时,Peer 会执行智能合约并生成结果(背书)。
共识:Peer 参与共识过程,确保网络中交易的有效性和一致性。
类型:
普通 Peer:用于执行智能合约和维护账本。
背书 Peer:专门负责背书(批准)交易。 - Client
定义:Client 是与 Hyperledger Fabric 网络交互的应用程序或用户,它通过 SDK(软件开发工具包)与网络进行通信。
功能:
发起交易:Client 可以发起交易请求、查询账本、提交交易等。
与 Peers 交互:Client 会将交易提议发送到指定的 Peer 进行执行和背书。
处理响应:Client 收到来自 Peers 的背书结果,并将交易提交给 Orderer 进行排序和上链。
特点:Client 可以是任何可以与网络交互的应用程序,例如企业系统、移动应用等。 - Orderer
定义:Orderer 是负责排序交易并将其打包成区块的组件。
功能:
交易排序:Orderer 接收来自 Clients 的已背书交易,将其排序,并将交易打包成区块。
广播区块:Orderer 将生成的区块广播到网络中的所有 Peers,确保所有节点的账本保持一致。
特点:
Orderer 是 Hyperledger Fabric 网络的核心组件之一,负责确保交易的顺序和一致性。
采用不同的共识机制,可以根据网络的需求进行配置。
总结
Peer:负责执行和维护账本,参与交易的背书和共识。(程序员用的,发起交易)
Client:应用程序层,与网络交互并发起交易请求。(每个节点用来同步区块链数据)
Orderer:负责交易的排序和区块的生成,确保网络中所有 Peers 的账本一致。(类似矿工,打包出来的block发送给peer)
Hyperledger工作流程
图示:
原理:
图示是一个网络,三个peer节点,在同一个网络里面,同一个channel上,SDK(nodejs,java,go...)如果需要执行更新账本的操作,SDK先发出一个提案到peer节点,peer节点接受后会先模拟执行,这个模拟操作 是需要多个peer节点都需执行的,然后每个peer节点将执行的结果签名,最后返还给SDK,SDK检查收集所有的背书响应,然后发送给order节点,然后order节点检查签名,背书策略,排序,如果没有问题就发送invocation.正常情况下,所有的peer执行的 是相同的智能合约,所以执行出来的结果也应该相同,如果数据不一致,那么order节点就有理由认为,某个peer节点数据没有同步,或者peer节点被非法篡改.order的排序至关重要,如果同一时刻来自两个SDK的更新提案请求,排序一定要排好.举个例子:第一个proposal是张三花10块钱买大米,在这完全的同一时刻,张三花10块钱买玉米的proposal也发了出来,但是张三只有10块钱,orderer节点排序后,第一个买大米的操作是合法的,但是第二个买玉米的操作就不合法了,因为张三没有这么多钱了.这也是hyperledger如何解决双花问题.
注意: 如果背书策略是需要所有的节点都要同意,只要有一个节点不同意,发出的invocation就会被拒绝,反之,如果背书策略只要有一个同意就行,那么收集一个背书即可.不合法的invocation会被记录在blockcoin上,方便检查问题
标签:背书,网络,fabrics,交易,Hyperledger,区块,节点 From: https://blog.csdn.net/2201_75642274/article/details/143579469