科普|Nirvana:采用基于NIO的Netty,实现链上应用百万级TPS并发

2021-02-22  来源:互联网 

TPS,即系统吞吐量,是软件测试结果的测量单位,指的是一个数值代表一个客户机向服务器发送请求,然后服务器作出反应的过程。通常来说,它是衡量系统处理能力的重要指标,体现了系统的性能。

在区块链行业中,TPS一直是备受关注的技术参数。假如TPS每秒并发太低,极易造成网络严重拥堵,这对区块链上的高并发业务应用来说,在前期落地上就已出现“致命伤”。例如比特币和以太坊就曾因为TPS每秒并发太低,衍生出交易费用高、确认时间长、扩展性差等问题。

为了在区块链行业中争得一席之地,许多公司开始在TPS上作文章,希望能通过有效措施提高TPS。在Nirvana的白皮书中,对其网络通讯所采用的技术进行了阐述。将打造更有价值、更具操作可能性的公链应用生态作为项目目标的Nirvana自成立以来,陆续采用了一系列全新的技术支持方案用于公链建设,其网络通讯便是重点之一。

据了解,Nirvana采用了基于NIO的Netty构架。目前Netty已经通过了许多商业应用的考验,在互联网领域、大数据分布式计算领域、游戏行业、通信行业等获得了广泛的应用,一些业界著名的开源组件也是基于Netty构建框架开展。在这个架构中,首先NIO具备面向缓存区操作,同时还使用到虚拟内存技术,可以对客户端请求进行批量操作,而基于NIO技术的Netty在保留NIO特性的基础上进行了封装优化,操作更加便利,在开发高性能服务端和客户端上具备得天独厚的优势。现在的Netty功能丰富,内置多种数据编解码功能、支持多种网络协议;可扩展性极佳,可以通过它提供的ChannelHandler组件对网络通信方面进行灵活扩展。

在此基础之上,Nirvana研发独树一帜的异构复合链模式,异构复合链是由POW+DPOS+DAG组成。在Nirvana共识算法的技术方案当中,POW是用于维护应用链的共识;所有DAPP发布和下架均由此链完成共识;DPOS是用于维护每一个独立的DAPP的共识,每个DAPP上线需要完成对应的节点上线,使数据入链达到5000TPS以上;DAG是用于维护数据链的共识从而提升了高性能的交互频率,可以让数据单链达到20000TPS以上,因此有了异构复合链的加持作用,Nirvana得以区分于传统公链,在速度上取得了别样的突破。

网络通讯上的数据吞吐量决定着应用场景是否能够正常、高效运行,Nirvana想要建设一个“应用为王”的实用性公链,TPS上的考虑是前期工作重点之一,可以说TPS数值的天花板将决定其公链上所创建应用的短板高度。有了TPS数值的保证,至少能在寻找应用方向和场景上挖掘出更多可供延展的可能性,这是打造优秀的实用性公链最重要的先行条件之一。


文章评论

共有 51 位网对文章表示很赞! 查看完整内容