登录注册
IBM HyperLedger fabric 简述
表演5342 2019-05-30 22:19:16 来源于:区块链论坛
26636 94

在我看来,比特币就是现实中的V字仇杀队,当然现实是更残酷的世界政府,这场博弈关乎着人类文明、政治、社会属性、经济和人权。

IBM HyperLeger 又叫 fabric,你可以把它想象成一个由全社会来共同维护的一个超级账本,没有中心机构拥揽权力,你的每一笔交易都是全网公开且安全的,信用由全社会共同见证。它与Bitcoin的关系就是,你可以利用fabric构建出一个叫Bitcoin的应用来帮助你change the world。

愿景是那么的牛X,貌似正合我们想改变世界的胃口,但是在残酷的现实和世界面前我们永远是天真幼稚的,blockchain需要一步一步脚印来构建它的宏伟蓝图,起码目前是没有将它用于工业生产和国家经济的案例的。

fabric源于IBM,初衷为了服务于工业生产,IBM将44,000行代码开源,是了不起的贡献,让我们可以有机会如此近的去探究区块链的原理,但毕竟IBM是从自身利益和客户利益出发的,并不是毫无目的的去做这项公益事业,我们在看fabric的同时要有一种审慎的思维:区块链不一定非得这样,它跟比特币最本质的非技术区别在哪里。我们先来大致了解一下fabric的关键术语(因为一些词汇用英文更准确,我就不硬翻译了)。

1. Terminology

  • Transaction 它一条request,用来在ledger上执行一个function,这个function是用chaincode来实现的
  • Transactor 发出transaction的实体,比如它可能是一个客户端应用
  • Ledger Legder 可以理解为一串经过加密的block链条,每一个block包含着transactions和当前world state等信息
  • World State world state是一组变量的集合,包含着transactions的执行结果
  • Chaincode 这是一段应用层面的代码(又叫smart contract,智能合约),它存储在ledger上,作为transaction的一部分。也就是说chaincode来运行transaction,然后运行结果可能会修改world state
  • Validating Peer参与者之一,它是一种在网络里负责执行一致性协议、确认交易和维护账本的计算机节点
  • Nonvalidating Peer 它相当于一个代理节点,用来连接transactor和邻近的VP(Validating Peer)节点。一个NVP节点不会去执行transactions但是回去验证它们。同时它也会承担起事件流server和提供REST services的角色
  • Permissioned Ledger 这是一个要求每一个实体和节点都要成为网络成员的blockchain网络,所有匿名节点都不被允许连接
  • Privacy 用来保护和隐蔽chain transactors的身份,当网络成员要检查交易时,如果没有特权的话,是无法追踪到交易的transactor
  • Confidentiality 这个特性使得交易内容不是对所有人可见,只开放给利益相关者
  • Auditability 将blockchain用于商业用途需要遵守规则,方便监管者调查交易记录


2. Architecture

架构核心逻辑有三条:Membership、Blockchain和Chaincode。

Snip20160719_3

2.1 Membership Services

这项服务用来管理节点身份、隐私、confidentiality 和 auditability。在一个 non-permissioned的区块链网络里,参与者不要求授权,所有的节点被视作一样,都可以去submit一个transaction,去把这些交易存到区块(blocks)中。那Membership Service是要将一个 non-permissioned的区块链网络变成一个permissioned的区块链网络,凭借着Public Key Infrastructure (PKI)、去中心和一致性。

2.2 Blockchain Services

Blockchain services使用建立在HTTP/2上的P2P协议来管理分布式账本。提供最有效的哈希算法来维护world state的副本。采取可插拔的方式来根据具体需求来设置共识协议,比如PBFT,Raft,PoW和PoS等等。

2.3 Chaincode Services

Chaincode services 会提供一种安全且轻量级的沙盒运行模式,来在VP节点上执行chaincode逻辑。这里使用container环境,里面的base镜像都是经过签名验证的安全镜像,包括OS层和开发chaincode的语言、runtime和SDK层,目前支持Go、Jave和Nodejs开发语言。

2.4 Events

在blockchain网络里,VP节点和chaincode会发送events来触发一些监听动作。比如chaincode是用户代码,它可以产生用户事件。

2.5 API 和 CLI

提供REST API,允许注册用户、查询blockchain和发送transactions。一些针对chaincode的API,可以用来执行transactions和查询交易结果。对于开发者,可以通过CLI快速去测试chaincode,或者去查询交易状态。


3. Topology分布式网络的拓扑结构是非常值得研究的。在这个世界里散布着众多参与者,不同角色,不同利益体,各种各样的情况处理象征着分布式网络里的规则和法律,无规则不成方圆。在区块链网络里,有Membership service,有VP节点,NVP节点,一个或多个应用,它们形成一个chain,然后会有多个chain,每一个chain都有各自的安全要求和操作需求。


IBM HyperLedger fabric 简述;https://bi8.btcmoney.cc/group/topic/id/44514.html
(1个赞) 点赞
(0个收藏)收藏
用户评论
登录账号发表你的看法,还没有账号?立即免费注册