智能合约的测试方法、计算机可读存储介质及测试终端技术

技术编号:20484464 阅读:39 留言:0更新日期:2019-03-02 18:48
本发明专利技术属于区块链技术领域,尤其涉及一种智能合约的测试方法、计算机可读存储介质及测试终端。所述测试方法包括:将待测试的智能合约加载至离线测试环境,其中,所述离线测试环境为对所述智能合约实际运行的区块链环境进行模拟而得到的运行环境;对所述智能合约进行编译,获得可执行文件;执行所述可执行文件,生成所述智能合约的服务;调用所述服务,并提供触发数据以触发所述智能合约在所述离线测试环境中运行;对在所述离线测试环境中运行的所述智能合约进行测试。本发明专利技术能够简化智能合约的测试过程,有利于提高智能合约的开发效率。

【技术实现步骤摘要】
智能合约的测试方法、计算机可读存储介质及测试终端
本专利技术属于区块链
,尤其涉及一种智能合约的测试方法、计算机可读存储介质及测试终端。
技术介绍
智能合约(SmartContract)是一种旨在以信息化方式传播、验证或执行合同的计算机协议,其允许在没有第三方的情况下进行可信交易,这些交易可追踪且不可逆转。目前,在区块链结构下,智能合约需要运行在隔离的沙箱中,例如,超级账本(Hyperledger)的智能合约需要运行在Docker容器中。由于业务场景的复杂多样性,智能合约需满足图灵完备性,因此其可能存在异常复杂的业务逻辑,为了确保智能合约的质量,对发布的智能合约进行测试是必不可少的环节。目前对智能合约进行测试的过程一般为:首先部署区块链网络和智能合约,并在Docker环境中运行智能合约,通过查看智能合约的日志来分析问题并进行代码修改。然而,一方面,智能合约的日志可能存在丢失的情形,并且由于运行过程中的中间数据一般都采用了加密方式以随机数的形式呈现,因此无法通过查看日志的方式判断中间数据的正确性;另一方面,若检测到智能合约存在的问题,在进行相应的代码修改之后,还需要重新进行区块链本文档来自技高网...

【技术保护点】
1.一种智能合约的测试方法,其特征在于,所述测试方法包括:将待测试的智能合约加载至离线测试环境,其中,所述离线测试环境为对所述智能合约实际运行的区块链环境进行模拟而得到的运行环境;对所述智能合约进行编译,获得可执行文件;执行所述可执行文件,生成所述智能合约的服务;调用所述服务,并提供触发数据以触发所述智能合约在所述离线测试环境中运行;对在所述离线测试环境中运行的所述智能合约进行测试。

【技术特征摘要】
1.一种智能合约的测试方法,其特征在于,所述测试方法包括:将待测试的智能合约加载至离线测试环境,其中,所述离线测试环境为对所述智能合约实际运行的区块链环境进行模拟而得到的运行环境;对所述智能合约进行编译,获得可执行文件;执行所述可执行文件,生成所述智能合约的服务;调用所述服务,并提供触发数据以触发所述智能合约在所述离线测试环境中运行;对在所述离线测试环境中运行的所述智能合约进行测试。2.根据权利要求1所述的智能合约的测试方法,其特征在于,在将待测试的智能合约加载至离线测试环境之前包括:搭建所述离线测试环境。3.根据权利要求2所述的智能合约的测试方法,其特征在于,所述搭建所述离线测试环境包括:配置所述智能合约运行所需的应用程序编程接口,其中,所述应用程序编程接口包括数据写入接口、数据查询接口和范围查询接口;配置所述智能合约运行所需的全局账本状态;配置所述智能合约运行所需的区块数据。4.根据权利要求3所述的智能合约的测试方法,其特征在于,所述配置所述智能合约运行所需的全局账本状态,包括:获取所述区块链环境中的全局账本状态数据;创建本地键值对数据库,并在所述本地键值对数据库中存储获取的所述全局账本状态数据。5.根据权利要求3所述的智能合约的测试方法,其特征在于,所述配置所述智能合约运行所需的区块数据,包括:确定所述智能合约在所述区块链环境运行时所...

【专利技术属性】
技术研发人员:谢丹力陈飞宦鹏飞
申请(专利权)人:深圳壹账通智能科技有限公司
类型:发明
国别省市:广东,44

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

1