为什么要追求百万级的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、迅雷链外围辅助系统
为降低区块链应用开发门槛,迅雷链推出多种外围辅助系统,其中包括区块链虚拟机的更新、业务流程的设计、技术人才的招聘和培训,以及对区块链改造的咨询建议等。
张慧勇表示,迅雷链希望通过多样的辅助系统,为那些想要接入区块链、使用区块链的传统企业减负,为他们赋能,让企业真正的把区块链“用”起来。
演讲最后,张慧勇给有志于区块链的开发者和企业两个建议:第一,不要一上来就做深层的改变,而是从一个新的业务着手,可能会更简单一些;第二,不要为了区块链而区块链,最好是在对自身业务流程有所思考之后,再考虑如何使用区块链进行改造,这样区块链转型才能更方便、更快捷。让企业以熟悉的方式,先把区块链用起来,然后再优化、迭代、变革,最终真正通过区块链的特性,来解决企业发展业务过程中遇到的真实问题。