System.ArgumentOutOfRangeException: 索引和长度必须引用该字符串内的位置。 参数名: length 在 System.String.Substring(Int32 startIndex, Int32 length) 在 zhuanliShow.Bind() 智能合约的测试方法及装置、电子设备、存储介质制造方法及图纸_技高网

智能合约的测试方法及装置、电子设备、存储介质制造方法及图纸

技术编号:43716838 阅读:3 留言:0更新日期:2024-12-20 12:47
本申请的实施例公开了一种智能合约的测试方法及装置、电子设备、存储介质,该方法包括:在接收到云服务器中的合约测试容器发送的待测试的目标智能合约后,先从云服务器中的合约运行容器包含的多个子容器中选择用于运行目标智能合约的目标子容器,并在目标子容器中对目标智能合约进行测试,然后,在对目标智能合约进行测试的过程中,获取目标子容器根据目标智能合约发送的目标数据包,因应于目标数据包的目的网络地址与合约测试容器的网络地址不匹配,丢弃目标数据包。本申请实施例的技术方案可以提升测试灵活性和安全性。

【技术实现步骤摘要】

本申请涉及区块链,具体而言,涉及一种智能合约的测试方法及装置、电子设备、存储介质、程序产品。


技术介绍

1、智能合约(smart contract)是一种旨在以信息化方式传播、验证或执行合同的计算机协议,允许在没有第三方的情况下进行可信交易,这些交易可查看且不可逆转,区块链上的所有用户都可以看到基于区块链的智能合约。

2、在智能合约的开发、调试等场景中,需要对智能合约进行测试,以确定智能合约是否满足需求。相关技术中,通常使用本地环境(即,真实主机)运行智能合约,以对智能合约进行测试,但是这种方式中,需要在本地环境中预先部署智能合约的测试环境等,提升了智能合约的测试复杂度,降低了智能合约的测试灵活性。


技术实现思路

1、本申请的实施例提供了一种智能合约的测试方法及装置、电子设备、存储介质、程序产品,可以提升智能合约的测试灵活性以及安全性。

2、根据本申请实施例的一个方面,提供了一种智能合约的测试方法,所述方法包括:

3、接收云服务器中的合约测试容器发送的待测试的目标智能合约;

4、从云服务器中的合约运行容器包含的多个子容器中选择用于运行所述目标智能合约的目标子容器,并在所述目标子容器中对所述目标智能合约进行测试;

5、在对所述目标智能合约进行测试的过程中,获取所述目标子容器根据所述目标智能合约发送的目标数据包;

6、因应于所述目标数据包的目的网络地址与所述合约测试容器的网络地址不匹配,丢弃所述目标数据包。

7、根据本申请实施例的一个方面,提供了一种智能合约的测试方法,所述方法包括:

8、接收请求方发送的合约测试请求,并根据所述合约测试请求获取待测试的目标智能合约;

9、将所述目标智能合约发送至云服务器中的合约运行容器,以使所述合约运行容器从包含的多个子容器中选择用于运行所述目标智能合约的目标子容器,并在所述目标子容器中对所述目标智能合约进行测试,在对所述目标智能合约进行测试的过程中,若获取到所述目标子容器根据所述目标智能合约发送的目标数据包、且所述目标数据包的目的网络地址与所述合约测试容器的网络地址不匹配,则丢弃所述目标数据包。

10、根据本申请实施例的一个方面,提供了一种智能合约的测试装置,配置于云服务器中,所述装置包括:

11、接收模块,配置为接收云服务器中的合约测试容器发送的待测试的目标智能合约;

12、测试模块,配置为从云服务器中的合约运行容器包含的多个子容器中选择用于运行所述目标智能合约的目标子容器,并在所述目标子容器中对所述目标智能合约进行测试;

13、获取模块,配置为在对所述目标智能合约进行测试的过程中,获取所述目标子容器根据所述目标智能合约发送的目标数据包;

14、丢弃模块,配置为因应于所述目标数据包的目的网络地址与所述合约测试容器的网络地址不匹配,丢弃所述目标数据包。

15、在一示例性实施例中,基于前述方案,在每个子容器的网络地址与所述合约测试容器的网络地址不同的条件下,所述装置还包括比对模块,配置为:将所述目的网络地址与所述多个子容器中除所述目标子容器之外的其他子容器的网络地址进行比对;若所述目的网络地址与所述其他子容器的网络地址相匹配,则确定所述目的网络地址与所述合约测试容器的网络地址不匹配。

16、在一示例性实施例中,基于前述方案,所述装置还包括发送模块,配置为因应于所述目的网络地址与所述合约测试容器的网络地址相匹配,将所述目标数据包发送至所述合约测试容器;其中,所述目标数据包中包含所述目标智能合约的测试数据。

17、在一示例性实施例中,所述发送模块配置为:因应于所述目的网络地址与所述合约测试容器的网络地址相匹配,获取所述目标数据包的传输协议;将所述目标数据包的传输协议与指定传输协议进行比对;若所述目标数据包的传输协议与所述指定传输协议相匹配,则将所述目标数据包发送至所述合约测试容器。

18、在一示例性实施例中,基于前述方案,所述发送模块配置为:若所述目标数据包的传输协议与所述指定传输协议相匹配,则获取所述目标数据包的目的端口;将所述目的端口与指定端口进行比对;其中,所述指定端口是为所述合约测试容器分配的、且与所述指定传输协议相匹配的多个端口中的端口;若所述目的端口与所述指定端口相匹配,则将所述目标数据包发送至所述指定端口。

19、在一示例性实施例中,基于前述方案,在所述合约运行容器中包含虚拟网桥,每个子容器与所述虚拟网桥连接的条件下,所述丢弃模块配置为:通过所述虚拟网桥与所述目标子容器之间的连接接收到所述目标数据包后,将所述目标数据包的目的网络地址与所述合约运行容器的网络地址进行比对,得到比对结果;从所述虚拟网桥预先配置的多条传输规则中选择与所述比对结果相匹配的目标传输规则,若根据所述目标传输规则确定所述目标数据包的目的网络地址与所述合约测试容器的网络地址不匹配,则丢弃所述目标数据包。

20、在一示例性实施例中,基于前述方案,在所述合约运行容器与所述合约测试容器属于同一容器组,所述合约运行容器与所述合约测试容器共享所述容器组的网络地址的条件下,所述丢弃模块配置为:若所述比对结果指示所述目标数据包的目的网络地址与所述容器组的网络地址不匹配,则从所述多条传输规则中选择第一传输规则作为所述目标传输规则;将所述目标数据包的目的网络地址与所述第一传输规则中包含的隔离网络地址进行比对;其中,所述隔离网络地址包含所有网络地址;若所述目标数据包的目的网络地址与所述第一传输规则中的隔离网络地址相匹配,则丢弃所述目标数据包。

21、在一示例性实施例中,基于前述方案,所述发送模块配置为:若所述比对结果指示所述目标数据包的目的网络地址与所述容器组的网络地址相匹配,则从所述多条传输规则中选择第二传输规则作为所述目标传输规则;从所述第二传输规则中获取指定传输协议以及指定端口;其中,所述指定端口是为所述合约测试容器分配的、且与所述指定传输协议相匹配的多个端口中的端口;将所述目标数据包的传输协议与所述指定传输协议进行比对,并将所述目标数据包的目的端口与所述指定端口进行比对;若所述目标数据包的传输协议与所述指定传输协议相匹配,且所述目的端口与所述指定端口相匹配,则通过所述虚拟网桥将所述目标数据包传输至所述指定端口。

22、在一示例性实施例中,基于前述方案,所述测试模块配置为:从所述合约运行容器包含的多个子容器中查找当前未运行智能合约的子容器;若没有查找到当前未运行智能合约的子容器,则在所述合约运行容器中创建子容器,并将创建的子容器与所述虚拟网关进行连接;从所述虚拟网关对应的子网中获取未被占用的网络地址,并将获取到的网络地址分配给创建的子容器;将创建的子容器作为所述目标子容器。

23、在一示例性实施例中,基于前述方案,所述丢弃模块还配置为:接收任一容器发送的待转发数据包,并将所述待转发数据包的目的网络地址与所述目标子容器的网络地址进行匹配;若所述待转本文档来自技高网...

【技术保护点】

1.一种智能合约的测试方法,其特征在于,所述方法包括:

2.如权利要求1所述的方法,其特征在于,每个子容器的网络地址与所述合约测试容器的网络地址不同;所述方法还包括:

3.如权利要求1所述的方法,其特征在于,所述方法还包括:

4.如权利要求3所述的方法,其特征在于,所述因应于所述目的网络地址与所述合约测试容器的网络地址相匹配,将所述目标数据包发送至所述合约测试容器,包括:

5.如权利要求4所述的方法,其特征在于,所述若所述目标数据包的传输协议与所述指定传输协议相匹配,则将所述目标数据包发送至所述合约测试容器,包括:

6.如权利要求1所述的方法,其特征在于,所述合约运行容器中包含虚拟网桥,每个子容器与所述虚拟网桥连接;

7.如权利要求6所述的方法,其特征在于,所述合约运行容器与所述合约测试容器属于同一容器组,所述合约运行容器与所述合约测试容器共享所述容器组的网络地址;

8.如权利要求7所述的方法,其特征在于,所述方法还包括:

9.如权利要求6所述的方法,其特征在于,所述从所述合约运行容器包含的多个子容器中选择出目标子容器,包括:

10.如权利要求1所述的方法,其特征在于,所述方法还包括:

11.一种智能合约测试方法,其特征在于,所述方法包括:

12.如权利要求11所述的方法,其特征在于,所述合约测试容器与所述合约运行容器部署在同一容器组中;

13.一种智能合约的测试装置,其特征在于,配置于云服务器中,所述装置包括:

14.一种智能合约的测试装置,其特征在于,配置于云服务器中,所述装置包括:

15.一种电子设备,其特征在于,包括:

16.一种计算机可读存储介质,其特征在于,其上存储有计算机程序,当所述计算机程序被电子设备的处理器执行时,使所述电子设备实现权利要求1-12中的任一项所述的智能合约的测试方法。

17.一种计算机程序产品,其特征在于,包括计算机程序,所述计算机程序被处理器执行时实现权利要求1-12中的任一项所述的智能合约的测试方法。

...

【技术特征摘要】

1.一种智能合约的测试方法,其特征在于,所述方法包括:

2.如权利要求1所述的方法,其特征在于,每个子容器的网络地址与所述合约测试容器的网络地址不同;所述方法还包括:

3.如权利要求1所述的方法,其特征在于,所述方法还包括:

4.如权利要求3所述的方法,其特征在于,所述因应于所述目的网络地址与所述合约测试容器的网络地址相匹配,将所述目标数据包发送至所述合约测试容器,包括:

5.如权利要求4所述的方法,其特征在于,所述若所述目标数据包的传输协议与所述指定传输协议相匹配,则将所述目标数据包发送至所述合约测试容器,包括:

6.如权利要求1所述的方法,其特征在于,所述合约运行容器中包含虚拟网桥,每个子容器与所述虚拟网桥连接;

7.如权利要求6所述的方法,其特征在于,所述合约运行容器与所述合约测试容器属于同一容器组,所述合约运行容器与所述合约测试容器共享所述容器组的网络地址;

8.如权利要求7所述的方法,其特征在于,所述方法还包括:

【专利技术属性】
技术研发人员:吕朋真
申请(专利权)人:腾讯科技深圳有限公司
类型:发明
国别省市:

网友询问留言 已有0条评论
  • 还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。

1