《Fabric 介绍》解读

官方文档 《介绍》

Fabric 中将一个区块链网络中的节点称为 peer 节点(peer nodes),网络中的交易是通过一个共识协议来在每个节点的账本中保留一个副本,Fabric 确实使用了区块链的技术(Corda 并没有使用区块链技术,Corda 中没有区块的概念),将一些交易信息打包到块中,然后块与块之间是通过哈希值相互绑定连接的,是区块的链式结构。

区块链的 1.0 时代(Bitcoin)以及 2.0 时代(Ethereum)主要是指公链的应用,不需要许可就可以随时加入并参与,大家都是匿名的,谁也不知道谁是谁。但是如果想开发企业级的区块链应用显然公链是不行的,我们需要经过许可才能参与的区块链网络,需要一个 KYC(Know-Your-Customer)的流程。

企业级的区块链需要满足几个要求:

  • 必须知道参与者是谁
  • 区块链网络需要许可机制
  • 需要有好的网络效率
  • 交易的确认需要低延迟
  • 需要保护交易及数据的隐私性

Fabric 是一个开源的企业级区块链开发平台,它是一种分布式账本技术(DLT),由 Linux 基金会发起,由社区中的组织和开发者共同维护。

Fabric 支持多种智能合约开发语言,包括 Java、Go 和 Node.js。智能合约在 Fabric 中被称为 chaincode,它实现了数据的隐私性和保密性。

Fabric 是一个需要许可才能加入的平台,以来一定的公约制度来确保建立一个可信的治理模式。并且它不需要加密货币 cryptocurrency 来支撑它的运行,所以也就没有挖矿的事情。

Fabric 是高度模块化的架构,可以通过插拔的方式开启不同的功能,比如它的共识协议,如果只是在一个组织内构建这个网络,那么 crash fault-tolerant(CFT) 协议会更有效,但是对于多个组织共同参与的情况 byzantine fault tolerant(BFT) 共识协议会更有效。

Fabric 的核心模块组件有:

  • 可插拔的 ordering 服务,确保依据交易产生的顺序而达成共识然后将区块广播给 peers 节点
  • 可插拔的 membership 服务,来为每个参与者关联一个加密身份标识
  • 一个可选的 peer-to-peer 的 gossip 服务将产生的区块信息通过 ordering 服务传播给其他节点
  • 在容器中运行的智能合约(chaincode)
  • 可以支持不同的数据库管理系统 DBMSs 的账本
  • 可插拔的倍数和验证策略,可以根据不同的应用来独立配置

智能合约是区块链中的应用程序,包含了业务逻辑,它有几个特征:

  • 不同的智能合约可以同时运行,它们不会互相影响
  • 不同的智能合约可以独立部署
  • 代码应该以一种不可信的方式来对待

Fabric 引入了一种全新的 execute-order-validate 架构,更好地解决了弹性、灵活性、扩展性、性能以及保密性相关的挑战,它将交易的流程分为三个步骤:

  1. 执行一个交易来检验它的正确性,因为为其背书
  2. 通过共识协议将交易排序
  3. 基于应用程序指定的背书策略,在交易被提交到账本前对交易进行验证

在公链网络中,为了能够实现一个共识模型,每个节点都可以来执行交易,所有的交易以及智能合约对于所有节点都是透明的,通过工作量证明(PoW)来实现拜占庭容错共识机制。但是这种完全透明的方式对于企业使用的业务场景显然是不适用的,不是所有的信息都是可以共享的。为了这种隐私性和保密性,区块链平台使用了不同的方式,每种都有利弊。

Fabric 通过 channel 的架构和 private data 的功能来实现保密性。一个 channel 内的智能合约和交易信息只有这个 channel 的参与者们才能看到。在一个 channel 中,private data 能够实现更小范围内的数据共享。

Fabric 将交易的排序工作交给了 ordering 服务来处理。可以使用 CFT(crash fault-tolerant 崩溃容错)或者 BFT(byzantine fault-tolerant 拜占庭容错)来排序。Fabric 中的 CFT 是基于 RAFT 协议来实现的。一个 Fabric 网络中是可以同时使用多个 ordering 服务来支持不同的需求的。

Hyperledger Fabric 的性能和扩展工作组 正在制定一个叫做 Hyperledger Caliper 的标杆框架。

你可能感兴趣的:(Hyperledger,Fabric,blockchain,区块链,hyperledger,超级账本,fabric)