火星链 火星链
Ctrl+D收藏火星链
首页 > 世界币 > 正文

BSP:长文详解PlatON测试Case全景图

作者:

时间:1900/1/1 0:00:00

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

同时还要注意PlatON链本身包含公有链、私有链,不同类型在管理、用户身份、最大节点数等平台自身特征方面均有不同,测试需要考虑所有的模式,导致测试方案和场景也比常规的传统测试更加复杂。

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

PlatON测试范围总览

从Case全景图可以看出,我们对PlatON的Case过程进行分类,主要是通过5个方面去验证系统保证安全可靠。

主要是通过在链初始化时,搭建私链或者链接主网时对经济模型中的合约账号、信息以及参数进行合理性的验证。

隐式初始化-不指定网络时链接PlatON主网络,这时候需要验证网络节点搭建成功之后链上信息和内置的信息保持一致。

显式初始化-搭建私链则是通过创世文件初始化的方式加入到特定的私有网络,成功加入链之后验证链上信息和配置的信息保持一致初始化参数。

共识参数-经济模型参数、治理参数、惩罚参数、奖励参数、增发参数。

初始化参数是通用的系统参数,参数分主网参数和自定义参数两类:

主网参数-通过在启动节点时增加命令参数来实现链接PlatON主网络,需要验证的就是链上共识参数、经济模型参数、治理参数等和主网参数保持一致。

Web3身份构建器Carv完成400万美元融资,淡马锡旗下Vertex Ventures领投:11月22日消息,针对游戏玩家的去中心化身份(DID)解决方案 Carv 以 4000 万美元估值完成 400 万美元融资,淡马锡旗下风险投资公司 Vertex Ventures 领投,其他投资方包括 EVOS(ATTN Group)、SNACKCLUB(Loud Gaming)、Infinity Ventures Crypto、YGG SEA、UpHonest Capital、Lyrik Ventures、Lintentry Foundation、PAKADAO、7UpDAO 和天使投资人 Aliaksandr Hadzilin(NEAR 联合创始人)等。

总部位于洛杉矶的 Carv 主要产品包括一个聚合来自 Web2 和 Web3 的游戏玩家数据引擎,并将这些信息集中在唯一的用户 ID 下。Carv DID 系统兼容包括以太坊和 Solana 在内的 20 多个 Layer 1 网络。(TechCrunch)[2022/11/22 7:56:29]

自定义参数-在启动节点时,通过调整初始化创世文件里的初始化参数来实现自定义参数,然后通过链初始化启动节点,这时候链上的参数应该和创世文件中的参数保持一致。

但是这里需要注意的是自定义参数时,创世文件中数值阈值的调整需要合理,不同的参数组合最终会导致链启动成功与否以及链上运行的规则发生变化,我们的测试过程正是验证这些参数变动带来的各种边界值,以及参数是否给链的运行提供合理的标准。

启动阶段测试我们分为两种模式进行验证,分别是单节点和集群,因为不同的节点数量链运行方式也会有所不同,我们从简单的结构出发,然后慢慢扩展数量,从而达到模拟真实环境。

启动节点 

查看节点信息 

查看版本信息 

韩国未来资产集团再次推迟成立数字资产子公司:11月3日消息,韩国最大的共同基金公司未来资产集团(Mirae Asset)已决定今年不成立数字资产公司“Digital X”,相关人士表示,因为市场情况不好,所以很难在今年年底成立Digital X,未来资产集团正在全面审查其虚拟资产业务。

报道称,今年年初,未来资产集团推出了比特币和NFT等虚拟资产托管业务,并计划在3月份成立数字资产公司“Digital X”,但之后将该计划推迟至今年年底。(EToday)[2022/11/3 12:12:26]

链上功能

快速参数集群 

主网集群 

作为区块链运转的载体,所有的事情几乎都要节点参与,网络通信、逻辑运算、交易、数据验证等,而区块链一般是由多个节点组成协同工作,因此节点属性及对节点的管理至关重要。在实际管理中,节点能由管理者操作加入或者退出区块链网络,而不影响业务的正常运行,以及扩容新增节点。

在节点相关验证,主要包含了链部署时不同节点数量的情况下节点的运行情况检查,创世文件启动时不同的参数组合对链影响,如共识节点数量、治理参数配置、同步方式等,我们会根据不同的组合去验证配置参数的合理性,同时节点本身具备了不同的启动参数,在整个链运行的过程中需要对启动参数的调整来验证这些启动命令的有效性以及对链的影响。

同时还需要分别在单节点和集群模式下进行链上功能的验证,确保在不同模式下PlatON经济模型业务表示是一致的。 

这个阶段也是PlatON主要的测试内容,这个阶段主要包含了对底层和业务层两个方面。

底层

Giskard共识

孙宇晨受邀出席TOKEN 2049并发言 关注未来十年行业走向:9月28日消息,波场TRON创始人,格林纳达常驻世界贸易组织(WTO)代表、特命全权大使孙宇晨受邀出席TOKEN 2049活动并发言。TOKEN 2049是加密行业重要的活动之一,每年在新加坡和伦敦举办,出席的嘉宾来自全世界头部的Web3公司的创始人、投资者、开发者和媒体。今年的“TOKEN 2049 新加坡“于9月28日至29日举办,议题包括NFTs、Metaverse、DeFi、Global Macro、Web3、DAO等。孙宇晨出席的是“加密货币的未来:驾驭未来的十年”主题版块。[2022/9/28 22:35:42]

正所谓「无共识,不区块」,作为区块链的核心属性,「共识机制」决定了区块链的安全性、 去中心化和可扩展性等重要性质,并且保证各共识节点对交易执行结果达成一致。

PlatON的Giskard共识协议由概率性权益证明PPoS(PlatON proof of stake)和Giskard拜占庭容错协议-Giskard BFT(Giskard Byzantine Fault Tolerance) 组成。PPoS使用质押、委托、随机选取的形式选出参与共识的验证节点,Giskard BFT使用类BFT算法实现区块的生产和验证。

针对Giskard共识我们设计了相应的验证场景来覆盖PlatON共识模块。

1. 从共识的不同阶段我们来验证每个阶段共识

viewChange:对viewChange基本信息校验同时包含viewChange发起、收到等场景组合来验证正确性。 

prepareBlock:对prepareBlock消息基本校验同时窗口期内viewChangeQC后发起的不同状态下的prepareBlock进行验证。 

prepareVote:对prepareVote消息基本校验同时不同窗口期以及不同节点状态下的prepareVote进行验证。 

外媒:韩国对Do Kwon发出逮捕令不久后,LFG钱包转移了3313枚BTC:9月27日消息,韩国检方于9月14日在对Terra创始人Do Kwon发出逮捕令不久后,3313枚比特币从LFG在币安上创建的钱包中突然被转移至两个韩国境外加密交易所,韩国检察机关冻结了一家交易所的BTC。截止当地时间9月27日下午1时,这些被转移的BTC价值约6659万美元。

此前消息,韩国检方对Terra创始人Do Kwon等5人发出逮捕令,并要求外交部强制注销Do Kwon等人的护照。国际刑警组织已向Terra创始人Do Kwon发出红色通缉令。今日早些时候消息,韩国国会将于10月份对Luna-Terra事件展开国政监察。(CoinDesk Korea)[2022/9/27 22:33:07]

VerifyQC:包含了viewChangQC和prepareQC,主要检测不同签名数量下场景验证。

2. 模拟拜占庭场景下共识模块的验证

Giskard-非拜占庭场景:模拟参与节点在非拜占庭场景下共识模块各个阶段的验证。 

Giskard-拜占庭场景:模拟参与节点在拜占庭场景双出、恶意等操作下共识模块各个阶段的验证。 

3. 异常场景下共识模块的验证 

Giskard-节点启停:通过启停节点、间隔启停、节点恢复等操作来验证共识模块的完整性和连续性。 

Giskard-消息丢失:模拟丢弃投票、prepareBlock等场景下验证共识消息传递的有效性。 

Giskard-容错:通过构建超时、恶劣环境的运行稳定性场景来验证共识的容错性。

通过以上场景我们测试需要验证的是,这种共识机制能否按预期算法完成从交易触发到数据落块,以及在容错和容灾范围内依然正常工作。区块链平台上线前,对其使用的共识算法需要做严格的测试验证,涉及功能、安全、易用性等各方面。

印度储备银行:加密货币既不是货币也不是金融资产:6月30日消息,印度储备银行(RBI)在6月30日发布的2022年6月金融稳定报告中承认加密货币已经获得了普及,但强调数字资产不能被归类为货币或金融资产,同时强调加密货币没有内在价值,会带来风险。此外,RBI认为加密货币市场与股票的相关性是另一个重大风险。因此,RBI坚持认为,加密货币的增长需要各国的紧急监管。根据该银行的说法,打算监管加密货币的政策制定者应该关注围绕网络风险和气候相关金融风险的挑战。

该报告补充了之前RBI对数字货币的怀疑态度,坚持认为数字货币对国家的金融部门构成了威胁。据RBI官员警告说,由于大多数加密货币以美元计价,可能导致国家经济的美元化。为了阻止私人加密货币的渗透,RBI指出其正在探索推出中央银行数字货币(CBDC)的可能性。随着不同国家对CBDC的研究,RBI建议每个国家在设计数字货币时应制定其风险缓解措施。(Finbold)[2022/6/30 1:42:32]

P2P网络验证

涉及到连接的地方主要有节点间P2P连接、节点与客户端的连接,以及链下机构间通过链上节点进行通信。通常在环境条件正常时,以上连接都能顺利进行,并且通过网络连接命令和日志信息能查询对应结果。而真正考验连接的健壮性是在异常环境下系统的应对能力,以及环境恢复正常之后,连接能否也恢复正常。

从而我们需要考虑从以下几个方向来验证p2p网络的安全性:

1. 节点数

不同的节点数量组合,可以验证网络通信中消息传递所需要的时间是否满足以及消息传递过程中是否出现遗漏和丢失。

2. 网络流量

监控网络流量,则是为了验证在一个链运行过程中的各种业务功能和节点操作时,链上资源消耗情况是否能达到预期的要求,避免出现运行过程中异常流量的产生导致链出现无法共识的情况。

3. 节点发现

通过配置种子节点数、静态节点数来验证节点在互联过程中静态节点连接数限制,主动链接数限制、被动链接数限制是否生效,模拟在不同级别的数量节点配置情况下链的运行是否稳定。

发送到节点的交易,应当能同步到网络中其他节点。不同的区块链平台,根据节点的类型、组网模式,会采用不同的同步逻辑。区块同步涉及场景较多,新入网节点、进程停止一段时间在重启、节点遭遇故障导致数据丢失等,都会触发区块同步逻辑,以及在没有交易处理时,节点间也会保持状态的同步,以上都涉及到很多的同步场景,在测试中需对每一个场景设计详细、全面的验证过程,包括一些场景的交叉测试。

区块存储验证

区块存储功能的验证主要还是稳定性和正确性,在落块成功的基础上还要保证节点之间数据都一致。

每个节点根据不同节点启动策略部署的数据存储的信息能有效且准确的保留信息,一般我们会根据启动参数以及同步模式的不同采取fast或者full模式进行验证,这时候我们需要考虑的是多交易在发送过程中记录在本地的区块信息是否有遗漏,同时在进行功能验证的时候可采用混沌模型测试,各业务场景进行组合,验证每个节点存储稳定且数据正确。

业务层

经济模型验证

PlatON的经济模型就是在链上进行各种会产生经济活动的场景组合,所有参与到经济活动的主体在互动时,都将伴随着Token的变化,针对不同的经济活动我们可以运用测试理论中的测试手段,如边界值、等价类、因果法、场景构建等方法进行验证,主要是活动主体的Token的数量进行校验。

锁仓

锁仓创建 

锁仓质押委托 

锁仓回退 

锁仓结算 

处罚通知....

Staking

createStaking (质押) 

editCandidate (修改候选人信息) 

increaseStaking (增持质押) 

withdrewStaking (撤销质押) 

delegate (委托) 

withdrewDelegate (撤销委托) 

withdrawDelegateReward (领取奖励)

getVerifierList (查询当前结算周期的验证人列表) 

ElectNextVerifierList (选举下一个结算周期的验证人列表)激励 ……

激励

发放质押奖励 

发放出块奖励 

是否到达年末……

处罚

举报双签 

举报双出 

查询举报信息 

处罚规则……

在这个过程中,我们也会对节点排名、状态、节点的收益进行验证,针对不同的经济活动场景进行有效的组合,其中包括了节点的状态以及链的结算周期和共识周期的变化,根据不同的组合我们可以通过自动化的方式检查活动主体的Token数量和状态变化情况是否满足设计要求,从而验证了经济模型的合理性和正确性。

治理模型验证

PlatON治理模型主要是验证PlatON进行链上治理时,链上节点参与投票的进行更新或者修复的一个过程,在这个过程中节点的选择行为会影响到链上发展方向和链的一个状态,如果节点对治理的内容有分歧则会出现不同的结果,治理升级的验证主要是验证治理前后链上数据的一致性和区块的连续性。

提交提案

提交升级提案 

提交文本提案 

提交参数提案 

提交取消提案 ……

投票

有效提案投票 

无效提案投票 

放弃投票 

投票统计……

版本声明

有效的提案声明 

无效提案声明……

提案全流程

提交文本提案统计 

提交取消提案……

通过不同的结算周期、共识周期、投票节点状态的变化来验证治理机制的正确性。同时为了满足实际场景中的复杂运行环境,需要增加经济活动的场景来丰富可能出现的异常情况,从而验证整个治理模型的可靠性。

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

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

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

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

合约编译及支持

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

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

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

标签:BSPNBS区块链PlatONBSPT价格nbs币发行量区块链游戏币拍卖Platonic Quintessence

世界币热门资讯
TOM:Fantom生态TOP14项目盘点

简介共识协议的快速、可扩展和安全的layer1平台,采用POS机制。 Fantom可做到平均在1秒内完成交易,每秒可以处理数千币交易且支持扩展到数百个节点.

1900/1/1 0:00:00
CRO:Cronics测试版打金教程

Cronics是由ToniqLabs在Dfinity上构建的一款Play-to-earn NFT链游,Cronics结合了繁殖机制、可穿戴NFT和p2e迷你游戏等生态系统.

1900/1/1 0:00:00
ROO:OEC即将上线元宇宙项目ROOT 限时空投10000枚NFT

近日,一个允许任何人铸造一组 8 个冒险家主题装备物品的 NFT 项目——Loot火了。 据 OpenSea 数据显示,「公平铸造(fair mint)」NFT 项目 Loot NFT过去一周成.

1900/1/1 0:00:00
Rarible:介绍 Rarible 协议:用于 NFT 创新的开源跨链工具

今天,我们很自豪地宣布推出一套开源工具(称为“?Rarible 协议”),以极大地简化 NFT 项目和想法的上市流程.

1900/1/1 0:00:00
xNFT:NFT赛道迎重磅玩家 欧易OKEx上线NFT平台OKExNFT

最近几个月,NFT赛道持续火爆。一方面,海外巨头争相入局,购买或推出相应的NFT作品;另一方面,阿里、腾讯、网页等国内大厂也在NFT领域有所动作。众多机构加持之下,NFT市场迎来大爆发.

1900/1/1 0:00:00
LOOT:NFT 新物种:Loot 自下而上构建 NFT

Loot 是与众不同的,这是以前从未出现过的,它是 NFT 领域的范式转变。 那 Loot 到底是什么?Loot 是一种仅包含文本的链上 NFT,是的,它只是 text 文字!这是以文本形式而存.

1900/1/1 0:00:00