区块链中的模块

版权声明:本文为博主原创文章,未经博主允许不得转载。 https://blog.csdn.net/ZHOUCHAOQIANG/article/details/84656502

Hyperledger Fabric Model

原文链接 译者:周超强
本节概述Hyperledger Fabric中的一些关键设计的特性,这些特性提供了一套它全方位的、可定制的、企业级的解决方案。
1.资产:资产的定义确保了在网络之间可以通过货币进行交换,从整个的食品交互,到古董的汽车乃至未来。
2.链码:链码以分段的形式来执行,其中的分段有,交易的顺序、信任的限制等级、节点类型之间的验证。并且链码的执行还可以提高稳定性和性能。
3.分类帐的特点:分类帐的不可改变、共享的特点可以对每一个通道中发生的交易历史进行编码,并且包括用于有效审计和争端解决的SQL类查询功能。
4.私有性:通道之间和私有数据的收集取保了私有、加密分类帐的交易,这种交易发生在竞争的商业中和可控制的工厂中,他们之间通常在普通的网络中发生资产的交换。
5.安全性&会员资格服务:有身份验证的会员提供了一个可信任的区域链条网络,在这个网络中,参与者可以了解到,所有的交易都可以被检测、追踪到通过授权的监管者和审计师。
6.一致性:采用一个独立的方法去达到一致性,这种方法可以确保在企业中的灵活性和可扩展性。

资产

资产从有形的(真实资产和硬件)一直延伸到无形的(合同和知识产权)。Hyperledger Fabric提供了一种能力,这种能力可以利用链条交易来更新资产的信息。
Hyperledger Fabric,资产在Hyperledger Fabric中以一个集合的键值对类表示。资产可以表示为二进制或者JSON的形式。
通过Hyperledger Composer tool,你可以在你的 Hyperledger Fabric中轻易的定义和利用资产。

链码

链式链码是定义资产或者资产的软件,也是更新资产的交易说明。换句话说,他就是业务的逻辑。链码强制执行了一些规则,这些规则包括读,可改变的键值对以及其他状态数据库的信息。链表函数针对分类帐的当前状态数据库执行,并且通过交易提议被发起。链码执行的结果是一些列可写入的键值对。这些键值对可以被提交给网络或者应用在所有的分类账在同等组中。

分类帐的特点

分类账是Hyperledger Fabric中所有状态转换的顺序的、防篡改的记录。状态转换是参与方提交的链码调用(“事务”)的结果。每个事务产生一组在创建、更新或删除时提交到分类账的资产键-值对。
分类帐通过一个保存在不可变、顺序记录中的链条组成,也包括一个状态数据库去维持当前的状态。每一个通道都对应一个分类帐。 每个对等点为其所属的每个通道维护分类帐的副本。
分类帐的一些特征如下:

  1. 使用基于键的查找、范围查询和复合键查询查询和更新分类帐
  2. 使用富查询语言的只读查询(如果使用CouchDB作为状态数据库)
  3. 只读历史查询——查询键的分类账历史,启用数据源场景
  4. 交易包括在属于key、value的版本中,这些版本可以在链码中被读取或者能够把key、value写入到链码中。
  5. 事务包含每个认可对等方的签名,并提交给订购服务
  6. 事务被排序为块,并从排序服务被“交付”到通道上的对等方。
  7. 对等方根据背书策略验证事务并执行策略
  8. 在追加块之前,执行版本控制检查以确保从链码执行时间起读取的资产的状态没有改变
  9. 一旦事务被验证和提交,就有不可更改性。
    10.通道分类账包含定义策略、访问控制列表和其他相关信息的配置块
    11.信道包含成员资格服务提供者实例,允许来自不同证书颁发机构的加密材料。
    有关数据库、存储结构和“查询能力”,请参阅分类账主题。

私有性

Hyperledger Fabric在每个通道的基础上使用不可变的分类账,以及能够操纵和修改资产当前状态(即,更新键-值对)的chaincode。分类账存在于一个信道的范围内——它可以在整个网络上共享(假设每个参与者都在一个公共信道上操作)——或者它可以私有化,只包含一组特定的参与者。
在后者情况,这些参与者会成立单独的通道分离。为了解决希望弥合总体透明度和隐私之间的鸿沟的场景,chaincode只能安装在需要访问资产状态以执行读和写的对等体上(换句话说,如果chaincode没有安装在对等体上,则它不能正确地进行内部交互)。
当该通道上的组织的子集需要对其事务数据保密时,使用私有数据收集(收集)在私有数据库中分离该数据,该私有数据库在逻辑上独立于通道分类账,仅可由组织的授权子集访问。
因此,通道将事务从更广泛的网络中保持为私有的,而集合将通道上组织的子集之间的数据保持为私有的。
为了进一步混淆数据,在将事务发送到订购服务并将块附加到分类账之前,可以使用诸如AES之类的通用加密算法对chaincode内的值进行加密(部分或全部)。一旦加密数据被写入分类账,只有拥有用于生成加密文本的相应密钥的用户才能对其进行解密。
有关链接代码加密的进一步细节,请参见开发人员主题的链接代码。
#安全性&会员体系服务
Hyperledger Fabric支持所有参与者都具有已知身份的事务网络。公钥基础设施用于生成与组织、网络组件、最终用户或客户端应用程序相关联的加密证书。因此,可以在更广泛的网络和信道级别上操作和管理数据访问控制。这种“允许的”Hyperledger Fabric概念,加上通道的存在和能力,有助于解决隐私和保密性是最重要的问题。
请参阅成员服务提供商(MSP)主题以更好地理解密码实现,以及Hyperledger Fabric中使用的符号、验证、身份验证方法。

一致性

在分布式分类账技术中,一致性最近已成为单个函数中特定算法的同义词。然而,共识不仅仅包括就交易顺序达成一致,而且这种差异在Hyperledger Fabric中通过它在整个交易流程中的基本作用而得到强调,从建议和认可到订购、确认和承诺。简而言之,一致性被定义为包含块的一组事务的正确性的全循环验证。

当一个块的事务的顺序和结果满足显式策略标准检查时,最终会达成共识。这些检查和平衡发生在事务的生命周期中,并且包括使用认可策略来规定哪些特定成员必须认可某个事务类,以及系统链,以确保这些策略得到执行和维护。在作出承诺之前,对等方将使用这些系统链,以确保存在足够的认可,并确保它们来自适当的实体。此外,在将包含事务的任何块附加到分类账之前,将进行版本控制检查,在此期间,分类账的当前状态得到同意或同意。这个最后的检查提供保护,防止双重花费操作和其他可能损害数据完整性的威胁,并允许针对非静态变量执行函数。

除了要进行大量的认可、有效性和版本控制检查之外,还要在事务流的所有方向上进行身份验证。访问控制列表在网络的层次结构层上实现(将服务下订到信道),并且有效载荷随着事务建议通过不同的体系结构组件而重复地签名、验证和认证。总之,协商一致不仅仅限于商定的一批交易的顺序,而是作为交易从建议到承诺过程中正在进行的验证的副产品而实现的总体特征。
检查一致性的可视化表示的事务流程图。

原创文章,转载请注明: 转载自CSDN(https://blog.csdn.net/luckyzhoustar/article/details/83961124)

阅读更多

没有更多推荐了,返回首页