本发明涉及互联网上量子链系统,为一种量子链测试方法。
背景技术:
量子链系统中,首要的是致力于提供一个面向不同行业的高可用的兼容utxo模型的pos机制的智能合约平台。utxo模型是比特币网络非常核心的一部分,其中的代码具备比较高的成熟度,在这其中兼容utxo模型,不但可以吸纳比特币生态系统的其他开发者和现有开发工具,还可以具有比较好的安全性。另外,关于智能合约的虚拟机部分,量子链的测试网络中也必须支持虚拟机。因此,量子链系统在发行前将会经过一系列严格的测试,通过完善的软件测试流程,来控制软件质量。
技术实现要素:
有鉴于此,本发明提供一种解决或部分解决上述问题的量子链测试方法。
为达到上述技术方案的效果,本发明的技术方案为:一种量子链测试方法,包含以下内容:
功能测试,针对量子链核心的应用程序编程接口的每个方法进行测试,必须在代码上达到85%的覆盖率,对于每个所述方法详细说明规范中的额外测试逻辑,以覆盖复杂的案例;
场景测试,定义了带有复杂测试逻辑的高级场景集合,包含:
1.发行新的资产;
2.创建新的交易;
3.创建特定的订单,并在资产中记录以满足量子币的需要;
4.做一套交易;
对最终结果进行追踪,所述场景测试必须包含子系统的相互交互以及复杂的逻辑;
网络测试,在其中着重网络延迟以及吞吐量问题,运行带有不同拓扑结构的测试网络,并且模拟不同的情况:第一种情况为,网络关键连接延迟的退化;第二种情况为,网络中关键节点的吞吐量的退化;
网络p2p测试,构建网络和模拟情况集合以得到对等网络:
1.核心名称节点将由第三方消除;
2.网络将分解为相互独立的子网络;
3.注意交易和区块在不同网络拓扑传播的速度;
4.避免循环传播的问题;
性能测试,能够允许验证一个本地节点的计算性能,而不考虑网络延迟效果;为了这样的测试,我们必须执行网络虚拟化模型去排除网络效果,测试必须为每个应用程序编程接口执行进行大规模应用程序编程接口调用;
可扩展网络测试,在其中进行高负荷降解测试以及不同拓扑结构的高负荷测试,在所述高负荷降解测试中,运行量子链系统中节点集合以及每秒产生最大数量的交易,将两者在网络中传播,收集统计数据并且观察性能的降低以及其他问题;在所述不同拓扑结构的高负荷测试中,运行在不同的拓扑结构中的节点集合,并产生交易流量;
可扩展性的存储测试,产生最大数量的本地实体,并且验证关键参数和所有的查询的退化;
金融测试,在所述金融测试中,进行小数精度测试、具有最终平衡验证的复杂交易生成方案、系统时间快进试验;
金融危机测试,在不同的金融危机情况下,进行基准测试,所述基准测试中可以假设的条件为巨大的回收率、许可网关的缺省、加密网关的缺省,在此条件下进行测试;
攻击性测试,针对系统设计足够的复杂的威胁模型,并分析所有可能的威胁并且试图去避免其的发生,为它们创造敏锐的缓解计划;并且,必须测试标准攻击,所述标准攻击包含双重花费攻击、共识攻击、分布式拒绝服务的交易泛滥;
可靠性测试,在特殊虚拟机上进行系统有关的具体测试以及观察它们如何伴随着时间执行它们的活动,在这其中注意所有的关键参数,并试图找出关键参数的退化情况;
有效网络测试,只运行很少的具有不同拓扑结构、禁用/启用节点、具有网络关键参数退化的网络,只针对有效网络,在这其中注意当满节点将无法使用时的情况;
可用存储测试,在网络上实现文件的完全可用性,部署完整的网络,并上传网络文件和一个接一个地破坏节点,以观察网络是否能够提供所需的可用性水平;
安全性测试,分析有用的安全问题,并对所有覆盖区域进行复杂分析;
版本测试,在这过程中部署测试网络,并在此网络上部署新的不同版本的节点后,尝试通过所有其他测试。
本发明的有益成果为:本发明提供了一种量子链测试方法,量子链的平台将在被部署前经过严格的测试;这包括软件的功能测试、网络p2p测试、攻击性测试、可靠性测试等,并且将在测试网络发布更新,发布之前进行代码的审查,测试有效地保证系统的安全性、可用性。
具体实施方式
为了使本发明所要解决的技术问题、技术方案及有益效果更加清楚明白,以下结合实施例,对本发明进行详细的说明。应当说明的是,此处所描述的具体实施例仅用以解释本发明,并不用于限定本发明,能实现同样功能的产品属于等同替换和改进,均包含在本发明的保护范围之内。具体方法如下:
实施例1:在每周的每次建立所有测试都必须完成并且在网上社区公布。测试策略如下:
1.功能测试
针对量子核心api的每个方法。我们必须在代码上达到85%的覆盖率。对于每个方法我们都将详细说明规范中的额外测试逻辑,这样能够覆盖复杂的案例。因此,我们将确定我们的逻辑功能在规范中定义完好以及进展顺利。
2.场景测试
我们定义了带有复杂测试逻辑的高级场景集合,包含:
1.发行新的资产
2.创建新的交易
3.创建特定的订单,并在资产中记录以满足量子币的需要。
4.做一套交易
对最终结果进行追踪,这样的场景测试必须包含子系统的相互交互以及复杂的逻辑。
3.网络测试
在这个测试中我们必须着重网络延迟以及吞吐量问题。
我们必须运行带有不同拓扑结构的测试网络,并且必须模拟不同的情况。第一种情况为,网络关键连接延迟的退化,第二种情况为,网络中关键节点的吞吐量的退化。我们必须关注网络如何表现和适应这种情况。
4.网络p2p测试
我们必须构建网络和模拟情况集合以得到对等网络。
1.核心名称节点将由第三方消除。
2.网络将分解为相互独立的子网络。
3.注意交易和区块在不同网络拓扑传播的速度。
4.避免循环传播的问题。
5.性能测试
性能测试能够允许我们验证一个本地节点的计算性能,而不考虑网络延迟效果。为了这样的测试,我们必须执行网络虚拟化模型去排除网络效果。测试必须为每个api执行进行大规模api调用。例如,每秒创建数以百万计的交易和观察核心性能参数的退化。
6.可扩展网络测试
我们必须较少实现网络上的一些拓扑:
1.核心网络节点
2.代理网络节点
高负荷降解试验
我们必须运行节点集合以及每秒产生最大数量的交易并在网络中传播。收集统计数据并且观察性能的降低以及其他问题。
不同拓扑结构的高负荷
我们必须运行节点集合,并产生交易流量,但所有这些节点将被包括在不同的拓扑结构中。
7.可扩展性的存储测试
我们必须产生最大数量的本地实体,并且验证关键参数以及所有的查询的退化。
8.金融测试
我们必须进行许多标准的金融测试。
1.小数精度测试
2.具有最终平衡验证的复杂交易生成方案
3.10年系统寿命的时间快进试验
9.金融危机测试
系统必须在不同的金融危机情况下是可靠的。我们需要对他们进行基准测试:
1.巨大的回收率
2.许可网关的缺省
3.加密网关的缺省
10.攻击性测试
我们必须针对系统设计足够的复杂的威胁模型。我们必须分析所有可能的威胁并且试图去避免其的发生,为它们创造敏锐的缓解计划。
例如,我们存在必须覆盖的情况,该情况为智能合约逻辑会被黑客入侵和价值传递将分发给不好的用户。
并且,我们必须测试在这些网络中测试标准攻击,例如:
1.双重花费攻击
2.共识攻击
3.分布式拒绝服务的交易泛滥
11.可靠性测试
系统必须可靠。我们必须在特殊虚拟机上进行系统有关的具体测试以及观察它们如何伴随着时间执行它们的活动。必须注意所有的关键参数,并试图找出关键参数的退化情况。
12.有效网络测试
我们必须运行很少的具有不同拓扑结构、禁用/启用节点、具有网络关键参数退化的网络。特别是,我们必须注意的情况为,当满节点将无法使用时。
13.可用存储测试
我们必须在网络上实现文件的完全可用性。因此,我们需要部署完整的网络,上传网络文件和一个接一个地破坏节点,以观察网络是否能够提供所需的可用性水平。
14.安全性测试
我们必须分析有用的安全问题比如缓冲区溢出的问题。我们对所有覆盖区域进行复杂分析。
15.版本测试
我们必须部署测试网络,并在网络上部署新的不同版本的节点后,尝试通过所有其他测试。
实施例2:测试的形式化逻辑
交易的创建:
其中,
区块的创建:
其中,
智能合约的创建:
创建地址,私钥与公钥:
测试交易传播时间:
测试区块建立与传播时间:
对网络攻击的测试保护针对以下方面:未经授权的支出、双支出、竞争攻击、历史修改、私自的挖掘、sybil的攻击、51%攻击。
以上所述仅为本发明之较佳实施例,并非用以限定本发明的权利要求保护范围。同时以上说明,对于相关技术领域的技术人员应可以理解及实施,因此其他基于本发明所揭示内容所完成的等同改变,均应包含在本权利要求书的涵盖范围内。
本发明的有益成果为:本发明提供了一种量子链测试方法,量子链的平台将在被部署前经过严格的测试;这包括软件的功能测试、网络p2p测试、攻击性测试、可靠性测试等,并且将在测试网络发布更新,发布之前进行代码的审查,测试有效地保证系统的安全性、可用性。