解密迅雷链独有同构多链框架 扫清开发障碍
迅雷链技术沙龙广州站于11月10日如期举行,在本次沙龙上,迅雷链研发负责人张慧勇向开发者分享了迅雷链达成百万级TPS的秘密:即同构多链框架,以及迅雷链选择PBFT共识算法的原因和优势。其中,重点分析了迅雷链在扫清开发障碍、降低开发门槛方面所作的具体工作,让到场的区块链开发者们对迅雷链在应用开发上的优势有了更加直观的认识。
为什么要追求百万级的TPS?
很多开发者对两个问题充满了疑惑,第一,迅雷链百万级TPS的性能对于目前的交易需求来说是否真的有必要?第二,实际应用中,是否真的达到了如此高的性能?
张慧勇首先肯定了第一个疑惑,百万级的TPS是非常有必要的。如果我们相信区块链是与互联网同等量级的基础服务,那就一定需要一个非常高的交易处理能力,一方面是要满足应用对TPS能力的低成本要求,也就是性能越高,单位能力的成本就越低;另外,只有足够高的性能,才能支撑具备想象空间的各种应用,不能让应用实现的可能,受制于底层性能的瓶颈。
在他张慧勇看来,百万级的TPS并不能算“完美”性能。因为一旦有大规模的落地应用,其并发交易处理请求是非常惊人的。张慧勇以最简单的运动应用举例,运行时,应用需要记录人的位置、心跳等指标的数据状态、运动频率等。数据能够及时同步到链上是所有用户的根本需求,假如有1万人同时使用,就会产生高达几十万的并发请求。如果用户规模继续扩大,百万级的TPS同样会面临性能不足。
有的人提出了一些变通处理的方案的处理首发则是,即在较低TPS的情况上基础上实现高并发的数据上链。解决其原理是设立一个中继服务器,所有实时数据,先上传服务器,再分批次地写到区块链,这样可以大大降低对主链性能的要求。但这样的方案其核心问题是问题是,中继服务器的存在是违背区块链原理的,有这样一个中心化的节点存在,整条链的可信度都会下降。所以综合来看,百万级乃至更高的TPS非常有必要。
如何实现百万级TPS?
迅雷链同构多链框架同构多链框架带来了性能的提升,加强了业务的可扩展的,并缩小了存储需求。多链是指多条链,不同用户的数据会落到不同的链上,同构就是每一条链用的程序是一样的。单个节点只需负责单一链上的相关数据,不仅对存储的需求变小,同时性能得到了极大提升。而且由于多链是可以无限扩展的,再加上了同构的特性,由此又得到性能上的扩展。
增加多链时,性能的损耗几乎可以忽略不计,整体上呈线性增长,并不会因为同时运行多条链,而导致性能受损。目前,迅雷链独有的同构多链架构已得到验证,引领了行业趋势。张慧勇认为,同构多链会成为区块链技术的未来方向。
为什么选择PBFT共识算法?
PBFT结构示意图迅雷链选择PBFT算法的原因,其一,商业级的应用难以选择随机性的功能算法,用户无法接受区块链产生的分叉。比如,购买时下单,用户很难接受卖家一会说这个定单交易成功,一会又说不成功。或明明买到了,最后交易没有达成。其二,商业级应用都需要秒级的确认能力。随机选择算法的区块链,确认需要少则几分钟,多则数小时乃至一天,显然无法实现商用。
PBFT就是一种控制类的算法,它与随机选择算法不同,在一致性和秒级确认上有突出优势,能够保证不分叉、秒级出块,具备了商用的基本条件。
不过PBFT算法也存在缺点,就是会面临停机可能性,当有1/3的节点故障时,就会导致全链停机。但是这个问题,正好用迅雷链的特性来加以解决,玩客云构建的共享计算为迅雷链提供的150万个共享节点,正因为有如此大的量级,所以迅雷链不会面临节点不够的问题,可以从容择优选取优质节点来作为记账节点,保证整个链永不停机。
迅雷链的服务层上增加了哪些东西?
在应用实际开发过程中开发者对区块链技术还比较陌生,尤其对区块链不够熟悉。为了降低开发者门槛,更易使用,迅雷链在服务层上增加了很多特色内容。
1、合约中心
迅雷链提供的智能合约模板,把原本需要从头设计开发的区块链智能合约,整理成一个个可以轻松调用的模板,与当前通用的IT调用方式类似,以方便开发者接入。种类丰富,覆盖大部分常见的业务场景,未来还将继续增加模板类型。
2、迅雷链文件系统(TCFS)
迅雷链推出的文件系统,即知名的TCFS,解决了大文件、大数据上链存储的问题。在此之前,区块链上链存储的成本非常高,导致很多应用无法实现。TCFS系统不但解决了链上数据保存的技术问题,更让存储成本变得可以接受,成为区块链应用能够落地的前提之一。
3、迅雷链外围辅助系统
为降低区块链应用开发门槛,迅雷链推出多种外围辅助系统,其中包括区块链虚拟机的更新、业务流程的设计、技术人才的招聘和培训,以及对区块链改造的咨询建议等。
张慧勇表示,迅雷链希望通过多样的辅助系统,为那些想要接入区块链、使用区块链的传统企业减负,为他们赋能,让企业真正的把区块链“用”起来。
演讲最后,张慧勇给有志于区块链的开发者和企业两个建议:第一,不要一上来就做深层的改变,而是从一个新的业务着手,可能会更简单一些;第二,不要为了区块链而区块链,最好是在对自身业务流程有所思考之后,再考虑如何使用区块链进行改造,这样区块链转型才能更方便、更快捷。让企业以熟悉的方式,先把区块链用起来,然后再优化、迭代、变革,最终真正通过区块链的特性,来解决企业发展业务过程中遇到的真实问题。