技术路线的选择,主要还是看是否适用于自身的情况,并无高下之分。选择技术路线就如同是选兵器,十八般兵器的选择,重要的是匹配自身的力量、速度与耐力。
我们在与有区块链技术服务需求的企业交流的时候,经常会聊到Fabric,这也是当前区块链应用的主流选择之一。Fabric项目是由IBM发起,Linux基金会托管,国内众多重量级的企业都以其为底层框架构建平台提供区块链技术服务,还有一些企业基于Fabric构建自己的联盟链并尝试在其上跑业务。
有一种常见的观点,Fabric,出身好,有大厂背书,有一帮牛人维护,还有一帮大神们使用,难道不“香”么?对此,我们有一些基于自身的不同体会。
细心的朋友应该会发现,我们在区块链应用项目中基本都使用国内自主可控的Jingtum联盟公链技术,例如我们的智慧零售可信数据服务平台——心链www.xinl.shop。今天我们就来浅析下我们理解的Fabric与Jingtum技术的异同,因为我们的能力所限,有很多疏漏之处,还望读者斧正。
首先,来通过下面一个架构图简单了解一下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: 指定的策略规则
简要过程如下:
组织R1、R2为联盟创建一个通道C1,节点P1、P2加入了C1通道,并产生了账本L1,账本L1分别存储在P1、P2上;
在节点P1上了安装一个智能合约S5(节点P2在加入C1通道的时候,也会存有智能合约S5的副本)然后在通道C1上实例化,客户端应用程序就可以调用这个智能合约;
接下来,应用程序就可以通过智能合约S5生成并接受交易了;
注:通道C2的过程与通道C1的过程一样,只是通过通道C2生成的账本L2与通过通道C1生成的账本L1是完全独立的,排序服务O4只是将L1和L2的账本进行排序。
通过以上过程,可以了解到账本里面的数据都是通过调用智能合约产生,如果企业想搭建Fabric网络,则必须把自己的业务系统通过"智能合约"的方式实现账本的变更,高度定制化。
现在假设A企业和B企业共同搭建了一套基于Fabric的商业票据系统,那么整个智能合约肯定是基于A企业和B企业共同制定出一套智能合约集合。此时,如果企业C想加入这个网络,有两种方式:
要么让自己的业务系统强行匹配这套智能合约集合,那么自身的业务系统肯定会大改;
要么A企业和B企业共同研究C企业的业务系统,进行相应的智能合约升级改造。
以上可以看出Fabric对用户的业务系统侵入性很强。由于Fabric还提供了一套诸如身份管理、隐私和保护、高效的处理、链码功能、模块化设计等功能,Fabric更像一套完备的PaaS平台。
接下来,说说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平台;当然这种很浅的侵入性也会带来业务系统与区块链之间的协同问题,这也是业界所面临的难点之一。
技术路线的选择,主要还是看是否适用于自身的情况,并无高下之分。选择技术路线就如同是选兵器,十八般兵器的选择,重要的是匹配自身的力量、速度与耐力。
如果觉得我的文章对您有用,请随意打赏。你的支持将鼓励我继续创作!