PlatON测试Case全景图:稳定性与性能扩展

原创 : PlatON

PlatON测试Case全景图:稳定性与性能扩展

说PlatON测试之前,我们需要先了解下关于区块链测试和传统测试互联网测试的区别,其主要体现在系统边界模糊,对于区块链的测试不仅仅是前端API与某个区块链节点之间的测试,还涉及大量区块链节点与节点之间的测试。

现在我们可以来认识下PlatON,首先它不属于交易所类型的业务产品,而是基于区块链的技术以及链技术产生的价值的生态基础服务,测试的重点也是不一样的。我们的测试会更加关注底层,比如共识算法、网络、存储、经济模型等。本篇内容将讲稳定性、性能及扩展。

4. 稳定性

对于区块链底层的测试,不仅仅是前端API与某个区块链节点之间的测试,还涉及大量区块链节点与节点之间的测试。所以,如果只是单一地去做某个特性的测试,比如连接或者同步,同样条件,这次成功,下次可能就会失败,因为区块链是个分布式的系统软件,一个节点的正常不代表整个系统正常。

测试过程也需要融入分布式思想,而不能停留在中心化软件上。某个节点在同步,其他节点可能在共识,包括节点所在机器环境也可能随时发生变化,在场景模拟的过程,需要将软件、硬件以及区块链自身操作进行各种组合验证,区块链的边界比较模糊,而各种组合测试正好通过模拟现实运行的场景,让系统尽可能运行在边界处,就比如共识算法,多节点的网络,让其中部分正常运行,剩下的部分节点在正常的阈值内进程启停,进行场景模拟会更容易发现一些边界问题。所有场景模拟过程,持续运行测试,观察资源的消耗情况,从而找到系统的盲点。

5. 性能

作为一个底层平台,性能是一个很关键的指标,它决定了上层应用在高峰期能跑多少的业务量。一个系统中每个接口,每个功能特性都会涉及到性能,但并非都需要压出其性能。对于区块链来说,重点关注的是它处理交易的性能,从客户端发起交易、签名,到节点打包、共识,最后数据落盘,这一完整过程系统的性能。

任何一个性能数据背后都对应着软件和硬件配置组合的结果,包括CPU、内存、磁盘、带宽等硬件条件,以及压测的合约类型、交易大小,节点组网模式等因素都会影响性能结果。理论上,代码自己没有逻辑错误,只要配置跟上,性能是可以无限的。但实际生产条件肯定有个上限,因此压测的性能数据可以提供两份,生产常用的硬件及软件配置条件下的,和实验室里高配的硬件和软件时的性能数据。后续会再出一篇专门的性能文章,来讲解PlatON性能是如何提升上去的。

6. 扩展

  • 合约编译及支持

合约的使用和管理对区块链是一个重要的评测标准。包括合约的部署方式是否简便,即能提供哪些语言支持的客户端或者中间件工具部署合约,以及发送交易。合约是否支持升级,升级后如何管理版本。除了合约本身的升级,区块链节点升级后,已经部署的老合约也应当能继续调用,兼容性都没问题。

PlatON提供对应的编译工具,为此我们也要对合约编译工具及本身合约版本进行验证,确保链上支持不同版本的合约语法。拿solidity语言来说,需要验证提供的各种变量类型、语法表达式、控制接口等合约结构,在链上是否都能跑通,包括能否跨合约调用链上的内置合约功能。

  • 安全

区块链系统涉及的安全包括很多方面,从连接到共识、从算法到隐私保护,都和安全息息相关,安全措施覆盖得越全面,系统被攻击的概率越低,运行越稳健。区块链是由节点组成,而对于非法节点的加入,平台是否提供了证书网络准入机制或者黑白名单特性,解决非法连接和入网问题。链上大量的数据或者各种类型的表,需要提供权限管理机制给不同用户授予不同操作权限,包括部署合约及发送交易。

本文转载自https://mp.weixin.qq.com/s/Yy0ePp1qICZbzNnBtiiU4A

(0)
PlatONWorld-M6的头像PlatONWorld-M6管理员
上一篇 9 7 月, 2021 11:55
下一篇 10 7 月, 2021 10:20

相关推荐

发表回复

登录后才能评论