Hyperledger Fabric是一个分布式账本解决方案的平台,采用模块化架构,提供高度的机密性、弹性、灵活性和可伸缩性。它被设计为支持不同组件的可插拔实现,并适应存在于整个经济生态系统中的复杂性和复杂性。
1.1.1、一种分布式账本
区块链网络的核心是一个分布式账本,它记录在网络上发生的所有交易。
区块链账本通常被描述为分散的,因为它在许多网络参与者之间复制,每个参与者都在维护它。去中心化和协作化是现实世界中企业进行商品交换和服务的两个重要的属性。
除了去中心化和协作化,记录到区块链的信息只用于追加,使用加密技术保证一旦一个交易被添加到分类帐中,它就不能被修改。这种“不变性”的属性使得确定信息的来源变得简单,因为参与者可以确定信息在事后没有被改变。这也是区块链被描述为证明系统的原因
1.1.2、智能合约
为了支持信息的持续更新——并使一整套账本功能(交易、查询等)得以实现——区块链网络使用智能合约来提供对账本的受控访问。
智能契约不仅是封装信息并使其在网络中保持简单的关键机制,还可以编写为允许参与者自动执行某些方面的交易。
例如,智能合同可以规定货物的运输成本,运输费用取决于货物到达的速度。根据双方同意的条款并写入总帐,当收到款项时,相应的资金就会自动转手。
1.1.3、共识机制
共识机制是用来使网络上的分类帐交易保持同步的过程。共识机制确保只有当交易被适当的参与者批准时,总账才会更新,并且当总账更新时,它们会以相同的顺序更新相同的交易。
以后你会学到更多关于账本、智能合同和共识的知识。目前,把区块链看作一个共享的、复制的交易系统就足够了,它通过智能契约进行更新,并通过一个称为共识的协作过程保持一致的同步。
1.2.1、传统的记录系统
传统的商业网络中成员相互进行交易,但是他们都各自维护各自的账本。基本结构如下
现代技术已经把这个过程从石碑和纸质文件夹带到硬盘驱动器和云平台,但其底层结构是相同的。管理网络参与者身份的系统是不存在的,溯源是一件很困难的事情,可能需要耗费几天甚至更多时间。合同必须手动签署,并且系统中的每个数据库都包含唯一的信息,因此存在单点故障。
1.2.2、区块链
如果商业网络不再像“现代”交易系统那样,钻着无效率的老鼠窝,而是拥有在网络上建立身份、执行交易和存储数据的标准方法,那会怎么样呢?如果可以通过查看交易列表来确定资产的来源,而这些交易一旦写好,就不能更改,因此可以信任,那该怎么办呢?
区块链中的商业网络如下图所示:
这是一个区块链网络,其中每个参与者都有自己复制的账本。除了共享分类帐信息外,更新分类帐的过程也是共享的。不像今天的系统,参与者的私人程序被用来更新他们的私人账本,区块链系统有共享的程序来更新共享的账本。
区块链网络通过共享账本来协调其业务网络,可以减少与私人信息和处理相关的时间、成本和风险,同时提高信任和可见性。
区块链还有很多其他重要的细节,但它们都与信息共享和过程的基本理念有关。
Hyperledger Fabric是Hyperledger的区块链项目之一。同其他区块链技术一样,它有一个账本,使用智能合同,是一个参与者管理交易的系统。
与其他区块链不同的是, Hyperledger Fabric 是私有的,并且只有被允许的成员才可以加入到这个网络中( Permissioned )。Hyperledger Fabric网络的成员通过可信的成员服务提供商(MSP)注册。
Hyperledger Fabric还提供了创建通道的能力,允许一组参与者创建单独的交易账本。对于网络来说,这是一个特别重要的选择,因为有些参与者可能是竞争对手,而不希望他们所做的每一笔交易——例如,他们提供给某些参与者而不是其他参与者的特殊价格——让每个参与者都知道。如果两个参与者组成了一个通道,那么这些参与者——没有其他参与者——拥有该通道的账本的副本
1.3.1、共享账本
Hyperledger Fabric有一个由两个组件组成的ledger子系统:世界状态和事务日志。每个参与者都有一份属于他们所属的每个超级账本网络的账本副本。
世界状态组件描述了在给定时间点的账本的状态。这是总账的数据库。事务日志组件记录导致当前世界状态值的所有事务;这是世界状态的更新历史。因此,账本是世界状态数据库和交易日志历史的组合。
账本有一个世界状态的可替换数据存储。默认情况下,这是一个Level DB 键-值存储数据库。事务日志不需要是可插入的。它只是简单地记录区块链网络使用的账本数据库的前后值。
1.3.2、智能合约
Hyperledger Fabric智能合约是用链码编写的,在区块链外部的应用程序需要与账本交互时调用该智能合约。在大多数情况下,链码只与分类账的数据库组件、世界状态(例如查询它)交互,而不是与事务日志交互。
链码可以用几种编程语言实现。目前支持Go和Node。
1.3.3、隐私
根据网络的需要,企业对企业(B2B)网络的参与者可能对共享多少信息非常敏感。Hyperledger Fabric支持隐私(使用通道)是关键运营需求的网络,以及相对开放的网络。
1.3.4、共识
事务必须按照它们发生的顺序写入账本,即使它们可能在网络内的不同参与者之间。要做到这一点,必须建立交易的顺序,并对错误(或恶意)插入账本的非法交易进行拒绝。