Hyperledger_Fabric_Model

本部分描述了Hyperledger Fabric的主要设计特点

  • Assets: 资产定义使得任何东西都可以通过货币值在网络中交易,从食物到老爷车再到期货。
  • Chaincode: 由以下几部分构成的执行部分,包括交易排序,限制信任等级,验证节点类型以及优化网络性能。
  • Ledger Features: 不可更改的、共享的账本编码了整个交易历史(for each channel),包含了类似于SQL语句的查询命用于高效审计和解决纠纷。
  • Privacy through Channels: 可以使具有高度隐私和机密性的多边交易成为竞争企业和受监管行业在公共网络上交换资产所必需的。
  • Security & Membership Services: Permissioned membership 提供了一个可信任的区块链网络,它的参与者知道所有的交易都可以被检测到兵器被管理者追踪。
  • Consensus: 一个统一的方法用来建立共识,实现了企业级网络所需要的灵活性与可扩展性。

Assets(资产)

资产可以是任何有型的无形的资产,Hyperledger Fabric提供了通过chaincode来修改资产的能力。

资产在Hyperledger Fabric中表现为一个键值对的集合,状态的改变会记录在一个channel的ledger上。资产可以以二进制或者是JSON格式。

在Hyperledger Fabric中,你可以通过Hyperledger Composer工具很容易的定义并使用资产。

Chaincode

Chaincode是通过软件定义资产,以及资产修改的指令。或者说,chaincode是商业逻辑。chaincode执行读取或者更改键值对的规则。Chaincode函数根据账本的当前状态来执行。如果chaincode的执行结果是更改键值对,那么这个操作会传播到网内的所有节点。

Ledger Features

ledger是顺序的、难以破坏的记录,其记录了整个fabric上所有状态变化。状态变化是chain code的执行结果。每个交易都会导致一系列键值对创建、修改或是删除。

ledger是用区块链来用来存储不变的、顺序记录的交易信息,除此之外还有一个状态数据库用来表示当前的fabric状态。每个channel都有一个ledger。每个peer都包含了他所属那个channel的ledger的整个拷贝。

privacy through channels

HyperLedger Fabric在每一个channel上都实现了一个不可变更的账本,chaincode可以管理修改资产的当前状态。一个账本存在于一个channel的作用域内,可以在网络间所有节点内共享(这时所有节点都使用这个channel),也可以只在部分节点中共享。

在后一种情况下,共享账本的节点会创建一个独立的channel以以在相互之间共享账本。为了解决在完全透明的账本和部分可见的账本之间的通讯问题,chaincode可以只在需要访问资产状态的节点上实现。换句话说就是,如果节点上没有安装chaincode,那么该节点就不能正确访问资产。

Security & Membership Services

Hyperledger Fabric实现的区块链网络中,所有节点都有一个唯一的ID,Public Key Infrastructure 用来产生加密证书,这些证书绑定到组织、网络参与者、用户或者客户端应用上。数据访问控制可以在整个网络,在channel级别进行管理。

Consensus 共识

在分布式分类帐技术中,共识最近已经成为特定算法的同义词,在一个单一的函数内。共识已经不仅仅是简单地同意交易的顺序,从提案和背书,到订购、验证和承诺,都突出显示在超级分类账上。简而言之,共识被定义为对包含块的一组事务的正确性进行全面的验证。

endorsement: 背书,是转让汇票权利的一种法定手续,就是由汇票持有人在汇票背面签上自己的名字,或再加上受让人的名字,并把汇票交给受让人的行为。

当块事务的顺序和结果满足显式策略标准检查时,最终会达成一致。这些检查和平衡在事务的生命周期中都会发生,包括使用背书策略来规定哪些特定成员必须认可某个事务类,以及系统链码以确保这些策略得到执行和维护。在确认之前,节点将使用这些chaincode,以确保有足够的背书存在,并且这些背书来自适当的实体。此外,在将包含交易的任何块附加到分类账之前,将进行版本检查,在此期间,对分类账的当前状态达成一致或同意。这个最后的检查提供了对重复开销操作和其他可能危及数据完整性的威胁的保护,并允许对非静态变量执行函数。

除了进行大量的背书、有效性和版本控制检查之外,还有在事务流的各个方向上正在进行的身份验证。访问控制列表在网络的层次层上实现(从服务到通道),并且有效负载在通过不同体系结构组件的事务提案时被反复签名、验证和验证。综上所述,共识不仅限于达成一致的一批交易的顺序,而是作为交易从提案到承诺的过程中正在进行的验证的副产品实现的总体特征。

Hyperledger_Fabric_Model的更多相关文章

随机推荐

  1. Web—12-详解CSS的相对定位和绝对定位

    CSS的相对定位和绝对定位通常情况下,我们元素的position属性的值默认为static 就是没有定位,元素出现在正常的文档流中,,这个时候你给这个元素设置的left,right,bottom,to ...

  2. java.lang.IllegalStateException: Failed to load property source from location 'classpath:/application.yml'

    java.lang.IllegalStateException: Failed to load property source from location 'classpath:/applicatio ...

  3. quartz定时任务时间表达式说明

    quartz定时任务时间表达式说明   这些星号由左到右按顺序代表 :    *    *     *     *    *     *   *     格式: [秒] [分] [小时] [日] [月 ...

  4. jquery file upload使用

    <!-- jquery file upload相关js --> <script src="/js/jquery-file-upload/js/jquery.ui.widge ...

  5. Redis(二):Redis入门介绍

    Redis入门介绍目录导航: 入门概述 VMWare + VMTools千里之行始于足下 Redis的安装 Redis启动后杂项基础知识讲解 入门概述 是什么 Redis:REmote DIction ...

  6. 01-Python简介

    人生苦短,我用 Python —— Life is short, you need Python 目标 Python 的起源 Python 解释器 是用 C 语言实现的,并能够调用 C 语言的库文件. ...

  7. 第一节 如何用Go实现单链表

    一.概念介绍 下面这副图是我们单链表运煤车队. 每节运煤车就是单链表里的元素,每节车厢里的煤炭就是元素中保存的数据.前后车通过锁链相连,作为单链表运煤车,从1号车厢开始,每节车厢都知道后面拉着哪一节车 ...

  8. Word中用VBA插入一个文件夹里的所有.jpg图片

    每四张图片放在一页,第一行为四张图片的文件名 插入图片调整尺寸参考 Sub final() Dim FN As String, N%, W#, H#, PW#, PH# With ActiveDocu ...

  9. Hadoop HA高可用集群搭建(2.7.2)

    1.集群规划: 主机名        IP                安装的软件                            执行的进程 drguo1  192.168.80.149 j ...

  10. 20155203 《信息安全技术》 实验2 Windows口令破解

    实验目的 了解Windows口令破解原理 对信息安全有直观感性认识 能够运用工具实现口令破解 系统环境 Windows 实验工具 LC5 SuperDic(密码字典生成器) 实验原理 口令破解方法 口 ...