为什么说性能和存储是区块链时代必须攻克的技术难题
扫描二维码
随时随地手机看文章
性能决定着每秒可以处理多少请求。举个简单的例子,2016年时淘宝双十一订单交易的创建就达到了每秒钟17.5万笔,而在区块链领域,国内外很多知名主链的TPS(每秒交易次数)都不超过二位数,因此极大限制了区块链技术应用于用户数量较大的C端场景。目前,业内公认为性能最为领先的是迅雷链,它凭借独创的同构多链框架实现了百万TPS的处理能力,也使得区块链技术大规模应用过程中的性能瓶颈迎刃而解。
再说存储。
区块链的存储问题也是行业内众所周知的难题,区块链不适合存储大块的数据,但与我们生活息息相关的各种应用又有大数据存储的需要,比如图片、存证等等。
迅雷链通过同构多链框架,每个链上的记账节点只需要记录所在链的数据,一定程度缓解了单个记账节点存储的压力。但是为了安全性的考虑,一个链的多个记账节点仍然存有全量数据,对于大块的数据比如合同、存证等可能高达几兆的数据在链上存储依然十分不经济。为了解决这个问题,迅雷链在去年7月份推出了针对区块链应用存储的迅雷链文件系统TCFS,解决了区块链上存储大块数据的问题,更适用于区块链开发。
但这依然还不够,区块链数据的快速增长,历史数据不断增大,导致节点的存储负担越来越重,如比特币全量数据大小已超过200GB,并以每月3-4GB的速度增长。如果你打算加入比特币网络启动一个全量节点,在10M/s的下载速度的情况下需要6个小时才能完成数据的同步,如果只有1M/s的下载速度则需要60个小时。
新节点加入不仅需要消耗大量带宽还需要占用大量的存储空间,这次迅雷链继续迎难而上。
在最近迅雷链发布的四大技术升级中,其中之一就是对存储层进行了优化,通过存储引擎可插拔技术和快照压缩技术完美解决了区块链存储难题。
1. 存储引擎可插拔
迅雷链将存储层进行了抽象,实现适配多种存储引擎,以适应不同数据量场景的要求:
当数据量较小时可选择轻量级单机数据库,如leveldb,满足性能和易维护的要求;
当数据量较大时可选择主流分布式存储数据库,增强节点的存储能力。目前迅雷链已经实现基于mongoDB存储集群的样例,其他扩展需求只需要实现相应的接口,就可以轻松、无缝切换掉底层存储系统。
2. 快照压缩
迅雷链通过构建区块数据快照,利用百万共享计算节点进行历史数据存储,并提供数据的完整性和存在性证明,使得迅雷链中参加共识的节点无需同步和存储全量的历史数据,只需同步最新的区块快照数据和最新的状态数据即可,实现了真正的轻量记账节点。具体工作流程如图所示:
1)数据快照
利用基于百万级的共享计算节点的TCFS(迅雷链文件系统)存储迅雷链的历史数据和每个区块的数据状态快照,确保数据永不丢失,同时提供数据的完整性证明和存在性证明。
每个区块的交易被确认执行之后,迅雷链会记录当前区块高度的全局数据状态,即数据快照。数据快照内容包括区块头部信息、交易数据、所有账户数据以及共识投票信息等。历史数据使用TCFS进行归档存储,TCFS提供数据安全性的保障。
2)真正的轻节点
加入迅雷链的节点只需要同步最新的状态数据便可加入共识流程。
在之后的运行过程中,只需保留最近的数据,已归档的数据可删除,本地存储数据量不会过快的增长。
这使得一个轻节点也可加入共识流程,扩大了适用范围,使移动设备加入迅雷链网络成为可能。
3)快速启动
新节点的启动只需要下载极少量的数据,即可快速完成启动并入共识流程,极大降低加入门槛,提高节点加入迅雷链的积极性。
在公网的环境下,节点由于网络抖动或其他原因,掉线一段时间后重连,这时节点不需要同步掉线期间错过的所有数据,只需从最新快照开始同步。这部分的数据量是非常小的,能在短时间内跟进最新状态,重新加入到迅雷链网络之中。
此次优化不仅降低整个网络的带宽消耗,同时也提升了迅雷链网络的鲁棒性。
区块链存储的重要性不言而喻。迅雷链针对区块链存储问题提出新思路,以解决实际的问题为出发点,保证主链性能的基础上,优化存储技术,使得区块链开发变得更加简单、可应用。迅雷链对技术的不断投入,解决了大型企业在区块链上的存储需求。而随着研发的不断深入,这些新技术必然会为区块链技术落地实体经济,带来至关重要的驱动力。