HyperLedger是IBM、Intel等多家公司正开展的一个区块链项目,包含了Fabric、Iroha等多项技术,其中最为活跃的是Fabric。git
在"开源中国"网站,对Fabric的介绍以下:github
HyperLedger Fabirc是一个开源的区块链实现,以企业级的安全机制和membership机制为特点,简单来讲,Fabric之于区块链,极可能正如Hadoop之于大数据。算法
开源项目能够直接从代码来进一步理解,代码中提供的Demo很少,比较典型的是这个:chaincode_example2。
整体来讲代码并不复杂,具体再也不展开,简述下这个Demo的功能:安全
chaincode_example02 主要执行三个核心函数,init、invoke、query。
init函数在起始过程当中初始化两个帐户A,B,而且在A,B帐户上发行必定数量的资产。
invoke函数在A、B上进行转帐。
query函数查询A、B函数上的帐户余额。网络
下面具体描述下各个功能:分布式
这是一个无中心的分布式系统,会同时在银行和客户来进行部署并创建点对点的联系。函数
主要做用是创建帐户,第一步是银行和客户在本地节点创建帐户。第二步是会把帐户会自动传送到所有节点上。须要注意的是在技术上讲,帐户只是一个数据的容器而已,能够类比Oracle里的表。oop
做用是向帐户中添加和查询数据。Invoke的做用是当在本地帐户中装入数据后,会将数据自动传输到所有节点上,以下图所示。从Demo代码来看,invoke的是二进制格式数据,也就是说并不限制数据的具体内容。性能
我简单小结一下,Fabric从功能上主要做用以下:区块链
从Fabric的介绍里我提取了三个关键词:数据交互、分布式、安全。
咱们从数据交互出发,托管人的数据交互,主要对象包括客户、交易所/登记公司、境外合做机构。其中托管人目前并不能左右交易所/登记公司的系统建设,因此暂时排除。对于银行业务来讲,这是个统一的要求都须要的。
再来看分布式这个关键字,限制是须要在客户方部署程序,托管业务是对公业务,不管是客户仍是合做机构都符合这个要求。
因此Fabric的应用场景是在于客户以及境外合做机构的数据交互。下面对这两个领域业内已经有的解决方案进行一下比较。
这是目前托管业内最主流的数据交换方式,支持了实时消息交换(交易、对帐等)以及文件交换两种方式。
Fabric | 深圳通直连 | SWIFT | |
---|---|---|---|
数据支持 | 二进制消息 | 格式化消息/文件 | 格式化消息 |
传输性能 | 低(从现有应用看) | 高 | 低(按流量收费) |
安全保障 | 软件算法 | 加密网络 | 加密网络 |
部署成本 | 低(基于互联网) | 高(需开通网络专线) | 高(需开通专用网络) |
开发成本 | 低(可仅关注业务逻辑) | 中(需考虑较多技术因素) | 低(可仅关注业务逻辑) |
整体而言,Fabric部署和开发成本较低,但目前看性能偏弱。
这里想额外提一下前几天看到新闻说SWIFT组织正在推动区块链技术的运用,应该也是有了危机感。
从现有的信息掌握来看,Fabric对于托管业务来讲,整体上讲是一项改进型技术而非颠覆型技术。我的认为,相比现有的深圳通直连以及SWIFT,其最大的优点是在因为可基于互联网部署,推广运用的速度能够获得大大的加快,是一个更适合目前这个高速变化时代的技术。虽然本文只是针对托管业务,但其应用远不止此,舞台广阔。