浅析Fabric的"深"与Jingtum的"浅"

浅析Fabric的"深"与Jingtum的"浅"

原创   小豪 

我们在与有区块链技术服务需求的企业交流的时候,经常会聊到Fabric,这也是当前区块链应用的主流选择之一。Fabric项⽬是由IBM发起,Linux基⾦会托管,国内众多重量级的企业都以其为底层框架构建平台提供区块链技术服务,还有⼀些企业基于Fabric构建⾃⼰的联盟链并尝试在其上跑业务。 

有一种常见的观点,Fabric,出身好,有⼤⼚背书,有⼀帮⽜⼈维护,还有⼀帮⼤神们使用,难道不“⾹”么?对此,我们有一些基于自身的不同体会。

细心的朋友应该会发现,我们在区块链应用项目中基本都使用国内自主可控的Jingtum联盟公链技术,例如我们的智慧零售可信数据服务平台——心链www.xinl.shop。今天我们就来浅析下我们理解的Fabric与Jingtum技术的异同,因为我们的能力所限,有很多疏漏之处,还望读者斧正。

Fabric 

⾸先,来通过下⾯⼀个架构图简单了解⼀下Fabric。

R1、R2、R3、R4: 代表组织 

CA1、CA2、CA3、CA4: 代表组织所对应的证书,⽤来身份认证 

A1、A2、A3: 代表app 

P1、P2、P3: 代表节点 

L1、L2: 代表账本 

S5、S6: 代表智能合约 

CC1、CC2: 代表channel 

O4: 代表排序服务 

NC4: 指定的策略规则

简要过程如下:

1. 组织R1、R2为联盟创建⼀个通道C1,节点P1、P2加⼊了C1通道,并产⽣了账本L1,账本L1分别存储在P1、P2上; 

2. 在节点P1上了安装⼀个智能合约S5(节点P2在加⼊C1通道的时候,也会存有智能合约S5的副本)然后在通道C1上实例化,客户端应⽤程序就可以调⽤这个智能合约; 

3. 接下来,应⽤程序就可以通过智能合约S5⽣成并接受交易了; 

注:通道C2的过程与通道C1的过程⼀样,只是通过通道C2⽣成的账本L2与通过通道C1⽣成的账本L1是完全独⽴的,排序服务O4只是将L1和L2的账本进⾏排序。 

通过以上过程,可以了解到账本⾥⾯的数据都是通过调⽤智能合约产⽣,如果企业想搭建Fabric⽹络,则必须把⾃⼰的业务系统通过"智能合约"的⽅式实现账本的变更,⾼度定制化。 

现在假设A企业和B企业共同搭建了⼀套基于Fabric的商业票据系统,那么整个智能合约肯定是基于A企业和B企业共同制定出⼀套智能合约集合。此时,如果企业C想加⼊这个⽹络,有两种⽅式:

1. 要么让⾃⼰的业务系统强⾏匹配这套智能合约集合,那么⾃身的业务系统肯定会⼤改;

2. 要么A企业和B企业共同研究C企业的业务系统,进⾏相应的智能合约升级改造。 

以上可以看出Fabric对⽤户的业务系统侵⼊性很强。由于Fabric还提供了⼀套诸如身份管理、隐私和保护、⾼效的处理、链码功能、模块化设计等功能,Fabric更像⼀套完备的PaaS平台。 

Jingtum 

接下来,说说Jingtum⽹络。Jingtum类似于⼀套微服务架构,提供了⼀套通⽤的接⼝集合,属于⼀种轻量级服务(BaaS,后端即服务),这一点类似于Ethereum,对⽤户的业务系统侵⼊性很浅。Jingtum⾃身除了⽀持原⽣的基础Token外,还有⽤户Token。⽤户Token可以看成是⼀种⾃定义的数字资产的表征符号,类似于ERC20,与ERC20不同的是,⽤户不必⾃⼰再额外实现⼀个标准化的ERC20智能合约,避免了安全风险。 

此外,Jingtum与Ethereum的不同在于,Jingtum是联盟公链技术,强调的是有效去中⼼化。其核⼼就是如何在保持去中⼼化带来的可靠性的同时,避免其在效率⽅⾯的不⾜。Jingtum的做法,就是使得选择的这个最有效的平衡点变得可以⾃动调节,根据⽤户的场景和需求⾃动优化到最佳的那个位置。在接⼊⽅式上,⽤户也可以根据⾃⼰的需求选择接⼊井通Jingtum的联盟公链或者利⽤Jingtum技术架设专属链。这些专属链都可以选择是否与井通Jingtum联盟公链互联。 

Jingtum的共识采⽤Randomized BFT的⽅式,核⼼有N个验证节点维持系统的基本验证⽹络。井通Jingtum的验证⽹络对每⼀个接⼊Jingtum的应⽤开放。这些应⽤可以通过井通Jingtum提供的API直接接⼊Jingtum的公有区块链,也可以使⽤井通的平台技术,部署私有的区块链,除了不会造成资源浪费外,在性能上也有⼀定的优势。

⽤户通过API作为桥梁与Jingtum联盟公链连接,对于业务系统的侵⼊性很浅,灵活性⾮常强。我们设想如果把井通Jingtum联盟公链作为底层通⽤平台,然后借鉴Fabric的思想,就可以搭建⼀个更加完善的区块链PaaS平台;当然这种很浅的侵⼊性也会带来业务系统与区块链之间的协同问题,这也是业界所⾯临的难点之⼀。

关于链上链下协同的问题可以参考另外⼀篇⽂章:⼀⽂说清“链上”和“链下” 。

后记

技术路线的选择,主要还是看是否适⽤于⾃身的情况,并⽆⾼下之分。选择技术路线就如同是选兵器,⼗⼋般兵器的选择,重要的是匹配自身的力量、速度与耐力。

你可能感兴趣的:(浅析Fabric的"深"与Jingtum的"浅")