Fabric 介绍
Hyperledger Fabric 是一个模块化架构的分布式账本平台,提供高度的机密性,弹性,灵活性和可扩展性。它旨在支持不同组件的可插拔实现,并且可以容纳生态系统中存在的高度复杂应用。
与别的区块链解决方案不同的是,Hyperledger Fabric 提供了独一无二的可伸缩架构。它也是为了满足未来需要审核的企业级区块链需求,从而在此基础上建立的开源架构。Hyperledger Fabric 将是你的起点。
什么是区块链?
分布式账本(A Distributed Ledger)
区块链网络的核心是一个分布式账本,用于记录在网络上发生的所有交易。区块链账本通常被描述为去中心化的,因为它被复制到许多网络参与者中,每个参与者都在协作维护。我们将看到,分权和协作是反映企业在现实世界中交换产品和服务方式的强大属性。
除了去中心化和协作之外,记录在区块链中的信息只能追加,使用加密技术可保证一旦交易添加在账本中,便无法对其进行修改。这种无法篡改的特性使得判断信息的来源变得很简单,因为参与者可以肯定信息在事后没有被改变。这就是区块链有时被描述为证明体系的原因。
智能合约(Smart Contracts)
为了支持信息一致性更新 —— 启用一整作用于账本的功能(交易,查询等) —— 区块链网络使用智能合约来提供对账本访问控制。
智能合约不仅是简单的封装信息在整个网络中同步,它们也可以被写入以允许参与者的一些交易能自动执行。例如,可以写一份智能合约,通过物品何时到达来决定传输费用。双方一旦同意该条款并写入账本中,当商品到达时,相应的资金将会自动被转入。
共识(Consensus)
通过网络保持分类账交易同步的过程 — 确保账本只有在交易获得相应的参与者批准时才更新,并且当账本更新时,它们以包含相同的顺序区块来更新账本 — 这个过程就称为共识。
我们将在后面学习更多关于账本、智能合约和共识的知识。就目前而言,将区块链视为共享的、复制的交易系统就足够了,该交易系统通过智能合约进行更新,并通过称为共识的协作过程保持一致同步。
为什么区块链有用?
现有的记录系统
今天的交易网络仅仅是对老旧的商业记录保存进行简单的更新。一个商业网络的成员彼此进行交易,但他们各自都维护着一套交易记录 — 无论是16世纪的佛兰芒挂毯还是今天的证券 — 每次出售时都必须确立其出处,以确保出售商品的商家拥有一系列产权。
它看起来像这样的商业网络:
现代技术已经从石板和纸质文件夹的时代过渡到硬盘驱动和云平台了,但是其底层架构是相同的。用于管理网络参与者身份的统一系统不存在,建立起源非常费力,需要数天的时间才能清除证券交易(世界量级是数万亿美元),合同必须手动签名和执行,并且系统中的每个数据库都包含唯一信息,因此意味着单点故障的发生。
交易对可见性和信任体系的需求是明确的,但今天的信息和流程分享方法仍然不可能建立跨越商业网络的记录系统。
区块链的与众不同之处
如果,相对于现在这种低效的交易系统,提供了一种标准体系来建立身份网络、交易自动执行、和数据同步存储会怎样?如果通过查看交易清单,一旦写入就不允许更改,以此来建立资产来源机制会如何?是不是这样,就能够形成信任体系呢?
上图描述了一个区块链网络,每个参与者都有自己的账本副本。除了共享账本信息之外,账本更新的过程也是共享的。 与今天的系统不同,今天的系统是私人的程序用来更新私人的账本,而区块链系统则是通过共享程序来更新共享的账本。
凭借通过共享账本协调业务网络的能力,区块链网络可以减少与私人信息处理时间、成本和风险,同时提高相互信任度和信息透明度。
您现在知道区块链是什么以及它为什么有用。区块链还有很多其他重要的细节,但都跟上面所提到的信息和流程共享的基本思想分不开。
什么是 Hyperledger Fabric?
Linux 基金会于2015年创立了 Hyperledger,以推进跨行业区块链技术。相对于声明一个的区块链标准,它鼓励通过社区协作流程来开发区块链技术,鼓励开源来开发知识产权并最终采用一套标准。
Hyperledger Fabric 是 Hyperledger 中的区块链项目之一。像其他区块链技术一样,它具有账本,使用智能合约,并且系统是参与者管理其交易的。
Hyperledger Fabric从其他一些区块链系统中脱颖而出的地方在于它是私密的并且是权限化的。相对于允许未知身份参与网络的开放式权限系统(需要工作证明等协议来验证交易和保护网络)。Hyperledger Fabric 网络的成员通过注册可信成员服务提供商(Membership Service Provider 简称 MSP)来保证系统的私密性。
Hyperledger Fabric 还提供多种可热插拔选项。账本数据可以以多种格式来存储,共识机制可以随时切换开关,并支持多种的MSP。
Hyperledger Fabric 还提供了创建频道(channels)的能力,允许一组参与者创建单独的交易账本。对网络参与者中有潜在的竞争对手的情况下,这是一个特别重要的选择 — 例如,他们向某些参与者提供的特殊价格 — 每位参与者都知道。如果两个参与者都在一个频道,那么这些参与者(没有其他人)就拥有该频道的账本副本。
共享账本(Shared Ledger)
Hyperledger Fabric 的账本系统有两个组件:世界状态(world state)和事务日志(transaction log)。每个参与者都将分类帐的副本分配给所属的每个 Hyperledger Fabric 网络。Hyperledger Fabric 中的网络参与者都有一本账本副本。
世界状态组件描述了在特定时间点下账本的状态。这是相当于账本的数据库。交易日志组件记录了构成世界状态的所有交易;由此得出,账本是世界状态数据库和交易日志历史记录的组合。
账本对世界状态有可替换的数据存储。默认情况下,这是一个 LevelDB 键值存储数据库。事务日志不需要是可插拔的。它只记录区块链网络中使用的账本数据库的前后值。
智能合约(Smart Contracts)
Hyperledger Fabric 的智能合约是用 chaincode 实现的,并且被区块链外部应用程序所调用,以此来与账本交互。在大多数情况下,chaincode 仅与账本的数据库组件(世界状态)(例如查询)交互,而不与交易日志交互。
Chaincode 可以用几种编程语言实现。目前支持的 chaincode 的语言是 Go,未来将支持 Java 和其他语言。
私密性(Privacy)
根据网络的需求,企业对企业(B2B)网络的参与者可能对他们共享多少信息非常敏感。对于其他区块链网络而言,隐私不会成为首要问题。
相遇对其他的区块链网络,隐私(使用频道方法)对于 Hyperledger Fabric 是非常关键的要求。
共识(Consensus)
交易必须按照发生的顺序写入账本中,网络中不同的参与者皆是如此。要做到这点,必须建立交易顺序,并且必须实施一种方法,用于拒绝错误(或恶意)插入账本的不良交易。
这是一个老生常谈的计算机科学领域,有很多方法可以实现共识算法,每个方法都有不同的利弊。例如,PBFT(Practical Byzantine Fault Tolerance)可以提供文件副本相互通信的机制,以保持每个副本的一致性,即使在发生损坏的情况下。或者,在比特币中,通过计算加密问题(也被称为挖矿)来实现共识,谁先算出来该区块就算谁的。
Hyperledger Fabric 被设计为允许网络初始者选择最能代表参与者之间存在关系的共识机制。与隐私一样,还有一系列需求;从关系高度结构化的网络到更加点对点的网络。
我们将了解更多的 Hyperledger Fabric 共识机制,其中目前包括 SOLO,Kafka,并且在另一个文档中,会很快将了解到 SBFT(简化的拜占庭容错)。
到底什么是Fabric呀 (请用人话描述)?
好的好的,要说Fabric的话,是要知道区块链发展史的,我们都应该听说过,中本聪发明了比特币,使得区块链技术进入大众视线。到目前为止,短短12年,但是区块链技术却经历了几次重要的跃进期。第一次就是加密数字货币比特币,第二次是图灵完备语言智能合约以太坊,第三次就是这个基于准入的真正通用化语言实现的联盟链Fabric。总之就是越来越先进,越来越强大,越来越具有适普性。知道这个就够了,细节之后我们慢慢展开。