Fabric简介

Fabric

Hyperledger Fabric是一个由模块化架构支撑的分布式账本解决方案平台,提供高度的保密性、弹性、灵活性和伸缩性。它被设计支持不同组件的插拔,并且适应经济生态系统的复杂性。

 Hyperledger Fabric相比去其他的区块链解决方案提供了独特的弹性和可扩展架构。规划企业区块链的未来要求建立在一个充分审核、开源的架构之上;Hyperledger Fabric是一个很好的起点。

 我们建议第一次使用的人通过以下介绍了解区块链的运行原理和拥有特定功能和组件的Hyperledger Fabric。

何为区块链

 一个分布式账本

区块链网络的核心是一个分布式账本,用于记录网络中发生的每一笔交易。 

区块链账本通常被描述为去中心化的,这是因为它被网络中的众多节点复制,每一个节点协作维护这个账本。我们将看到去中心和协作是的强大作用在于将真实世界的商品和服务交易映射到数字世界。

除了去中心化和协作以外,记录在区块链里的信息是只能添加的,使用加密技术保证一旦交易被添加到账本里就不能被修改了。这个不可逆的特性使它能轻松追溯到信息的来源。因此是区块链有时被成为证明系统。

智能合约

为了支持变更信息的一致性——以及启用一整套账本功能(交易、查询等)——一个区块链网络使用智能合约提供正本的可控访问。

智能合约不仅是封装信息并在网络中保持信息以简单的形式传播的关键机制,它们也被用于允许参与者自动执行某种交易。

比如,一个智能合约可以写成规定运费和货物的价格根据送达情况改变。将双方达成一致的条款写入账本,这样货物到达时适当的资金将自动转手

一致性

保证账本交易在整个网络同步的机制——即保证账本只在参与方确认后才会更新,网络中每个节点按照同一个顺序更新相同的交易的机制——被称为一致性。

下面我们将深入了解账本、智能合约和一致性。从现在起,已经可以认识到区块链是一个共享的复制的交易系统,这个系统通过智能合约更新,通过一种称作共识的协作过程同步一致性。

为什么区块链很有用

 当前的记录系统

当今的交易网络仅仅是自打有业务记录以来的网络的略微改进版。业务网络的成员之间互相交易,但是他们各自维护自己的交易记录。他们交易的物品——无论是16世纪的佛兰芒挂毯还是今天的证券——每次交易的时候都要公认一下来源以确定出售物品的一方拥有一个确认其所有权的产权链。

这是一个低效、高成本、易受攻击的网络。

现代科技把这个流程从石片和纸簿转换到硬盘和云平台上,但是底层架构是一样的。不存在管理网络参与者身份的统一系统,追溯来源是如此费力,需要花费几天来明确证券交易,合约必须手工签署和执行,系统中每一个数据库都存储一份与他人不同的信息,这就带来了单点故障。

基于当今这种割裂的信息共享方式建立一个跨业务网络的记账系统是不可能的,即便透明度和可信度是明确的(clear)。

区块链的不同之处

如果要取代像老鼠窝一样低效的“现代”交易系统,业务网络有一套标准的方法来建立身份、执行交易和存储数据,该怎么办?如果追溯一笔资产的来源可以通过翻看一份交易清单来确定,一旦写入,不可修改,以建立信任,该怎么办?

业务网络看起来应该是一致的、可溯源的和不可逆的。

这是一个区块链网络。它的每一个参与者拥有整个账本的副本。除了账本信息被共享以外,更新账本的的过程也被共享。不像当今的系统这样一个参与者的私有的程序用来更新他们的私有账本,区块链系统用共享的程序更新共享的账本。(此处共享可以理解为公开)

有了通过共享账本来协同业务网络的能力,区块链网络可以与私人信息及其处理流程相关的时间、成本和风险,同时提高透明度和可信度。

你现在知道了什么是区块链网络和为什么它很有用。还有一些其他的重要细节,他们都基于这些共享信息及其处理流程的基础理念

什么是Hyperledger Fabric?

Linux基金会2015年成立了超级账本项目(Hyperledger)来推动跨行业区块链技术。并非声明一个单一的区块链标准,它鼓励通过社区来合作开发区块链技术,鼓励开源知识产权,采用随时间演进的关键标准。

 Hyperledger Fabric是Hyperledger区块链项目中的一员。像其他区块链技术一样,它有一个账本,使用智能合约,是一个由参与者共同管理他们的交易的系统。

Hyperledger Fabric和其他区块链系统不同之处在于它是私有的和有准入资格授权的。并非一个公开的无授权的允许不明身份参与者进入网络(需要工作量证明之类的协议认证交易和保证网络安全)的系统,Hyperledger Fabric的成员要在会员服务提供商(MSP)注册。

Hyperledger Fabric也提供一些可插拔的选项。账本数据能够以多种格式存储,一致性机制可以引入也可以退出,并且支持不同的多个MSP。

Hyperledger Fabric还提供创建通道(channel)的能力,允许一组参与者建立一个单独的交易账本。这对于参与者可能是竞争对手的网络是一个特别重要的选项,比如参与者之间针对不同交易对象设定不同价格,他们就不希望每一别交易被每一个参与者知道。在一个通道里的两个参与者,有这个通道账本的全部副本,通道之外的其他人没有。(可以把一个通道理解为一个隔离的账本)

共享账本

Hyperledger Fabric有一个账本子系统包含两个组件:世界状态和交易日志。每一个参与者有一份他们参与的每个Hyperledger Fabric网络的账本的副本。

世界状态组件描述了一个给点时间点的账本状态。它是账本的数据库。交易日志组件记录所有导致世界状态当前值的交易。它是世界状态的更新历史。这样,账本就是世界状态数据库和交易日志历史的组合体。

账本有可替换的世界状态数据库。默认是LevelDB键值存储数据库。交易日志不需要是可插拔的。它只是简单的记录账本数据库被区块链网络使用之前和之后的值。

智能合约

Hyperledger Fabric智能合约写在链码(chaincode)里并在区块链外部应用程序要和账本发生交易的时候被外部应用程序调用。

在大多数情况下,链码只和账本的数据库组件(世界状态)交互,而不和交易日志交互。

链码可以用多种编程语言实现。目前支持的链码编写语言包括Go、Java、Python等,未来还会支持更多。

隐私

出于对网络的需要,B2B网络的参与者可能对于他们分享的信息范围极端敏感。

对于其他网络而言,隐私不会成为首要问题。 Hyperledger Fabric支持把隐私(使用通道)作为关键操作要求的同时又比较开放的网络

共识

网络中不通参与者之间的交易必须按照发生的顺序被写进账本里。为了实现这一点,必须建立交易顺序,并且设置一个拒绝由于误操作或者(恶意)插入账本的错误(恶意)交易的方法。

这是一个经过深入研究的计算机科学领域,有很多方法可以实现它,每种都有不同的权衡。比如PBFT(实践拜占庭容错)可以为文件副本提供通过与其他节点沟通来保持一致性的一种机制,即使发生腐败的情况。另外,在比特币里,排序通过一个称为挖矿的由计算机竞赛解一道加密难题的流程来保证。

Hyperledger Fabric设计为允许网络在初始时选择一种能够最好地代表现存参与者之间关系的共识机制。与隐私一样,还有一系列的要求;从高度结构化的网络到更加对等的网络。

你可能感兴趣的:(Fabric简介)