一种区块链智能合约调试发布方法及系统与流程

文档序号:17492432发布日期:2019-04-23 20:45阅读:245来源:国知局
一种区块链智能合约调试发布方法及系统与流程

本发明涉及区块链技术领域,特别涉及一种区块链智能合约调试发布方法及系统。



背景技术:

随着区块链技术的兴起和发展,越来越多的企业和组织开始探索区块链技术在多种商业和生活场景中的落地应用,以使这项新技术为社会的各项生产和生活活动带来切实可见的好处。作为一种为各类上层业务提供合约运行环境和技术支撑的基础平台,区块链平台既要保证自身运行的稳定性,同时也要为上层业务的稳定性和可用性提供支撑和担保。

当前,区块链技术已经在金融、物流、版权保护等多种场景中展开了应用实践,而由于上层业务存在其复杂性和多变性,使得区块链上部署的智能合约往往需要多次的修改和测试才能验证其是否满足业务运行的要求。而通常区块链平台采用的方法是反复修改、反复部署,这种实现方式有两个问题:

1、智能合约每次的修改和部署都需要频繁地进行合约内容在交易通道上的共识,增加了区块链中各参与方的工作量;

2、使交易通道中增加了许多没有价值的测试数据,影响通道上区块和交易的查询和存储。



技术实现要素:

为了解决现有技术的问题,本发明实施例提供了一种区块链智能合约调试发布方法,以克服现有技术中智能合约每次的修改和部署都需要频繁地进行合约内容在交易通道上的共识,增加了区块链中各参与方的工作量,以及使交易通道中增加了许多没有价值的测试数据,影响通道上区块和交易的查询和存储等问题。

一方面,提供了一种区块链智能合约调试发布方法,所述方法包括如下步骤:

s1:在创建交易通道的同时自动创建一条测试通道,且用户加入或退出所述交易通道时同步将用户加入或退出所述测试通道;

s2:将待测试的智能合约部署到所述测试通道上,所述测试通道上所有用户共同对合约内容进行业务测试;

s3:判断所述待测试的智能合约测试是否通过,若通过,则执行步骤s4,若不通过,则将所述智能合约返回给开发者修改或选择新的智能合约后返回步骤s2,重新对其进行测试;

s4:所述测试通道上所有用户对所述智能合约的内容进行共识,得到同意部署的反馈后,将所述智能合约部署到所述交易通道上。

进一步的,所述待测试的智能合约包括新提交的智能合约和/或历史版本的智能合约。

进一步的,所述s3具体包括:

若所述新提交的智能合约测试通过,则执行步骤s4,若测试不通过,则将所述智能合约返回给开发者修改后返回步骤s2,重新对其进行测试;和/或,

若所述历史版本的智能合约测试通过,则执行步骤s4,若测试不通过,则选择新的智能合约返回步骤s2,重新对其进行测试。

进一步的,所述s2还包括:

将所述智能合约在所述测试通道上运行生成的测试数据记录在所述测试通道上,用户可在所述测试通道查询所述测试数据。

进一步的,所述步骤s2还包括:

用户在得到所述测试通道上所有用户的共识后,可将所述测试数据删除。

进一步的,所述步骤s4还包括:

将所述智能合约在所述交易通道上运行生成的区块和/或交易数据记录在所述交易通道上,用户可在所述交易通道查询所述区块和/或交易数据。

另一方面,提供了一种区块链智能合约调试发布系统,所述系统至少包括:

新建模块,用于提供给用户创建交易通道,且在创建交易通道的同时自动创建一条测试通道;

注册模块,用于提供给用户加入或退出所述交易通道,且在用户加入或退出所述交易通道时同步将用户加入或退出所述测试通道;

测试模块,用于将待测试的智能合约部署到所述测试通道上,所述测试通道上所有用户共同对合约内容进行业务测试;

判断模块,用于判断所述待测试的智能合约测试是否通过,若通过,则将所述待测试的智能合约发送至发布模块,若不通过,则将所述智能合约返回给开发者修改或选择新的智能合约后发送至测试模块,重新对其进行测试;

发布模块,用于在所述测试通道上所有用户对所述智能合约的内容进行共识,得到同意部署的反馈后,将所述智能合约部署到所述交易通道上。

进一步的,所述系统还包括:

第一存储模块,用于将所述智能合约在所述测试通道上运行生成的测试数据记录在所述测试通道;

第一查询模块,用于用户在所述测试通道查询所述测试数据。

进一步的,所述系统还包括:

删除模块,用于用户在得到所述测试通道上所有用户的共识后,将所述测试数据删除。

进一步的,所述系统还包括:

第二存储模块,用于将所述智能合约在所述交易通道上运行生成的区块和/或交易数据记录在所述交易通道上;

第二查询模块,用于用户在所述交易通道查询所述区块和/或交易数据。

本发明实施例提供的技术方案带来的有益效果是:

1、本发明实施例提供的区块链智能合约调试发布方法及系统,在用户新建交易通道的同时系统自动为交易通道新建一条具有相同参与方的测试通道,用于合约正式部署前的测试,智能合约内容只需要在测试时由交易通道各参与方保证是否与其业务相符合而不需要在每次部署测试前都进行合约内容的共识认证,减少参与方工作量,缩短更新合约的操作周期;

2、本发明实施例提供的区块链智能合约调试发布方法及系统,将测试数据和交易数据分别存储,两组数据互不干扰,有效提高区块链底层网络的运行和查询效率,提高稳定性;

3、本发明实施例提供的区块链智能合约调试发布方法及系统,将软件开发工程中的流程规范性和可管理性引入到区块链通道的合约调试发布中,减少合约的维护成本,最大限度的提高团队的合作效率。

附图说明

为了更清楚地说明本发明实施例中的技术方案,下面将对实施例描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。

图1是根据一示例性实施例示出的区块链智能合约调试发布方法流程图;

图2是根据一示例性实施例示出的区块链智能合约调试发布系统的结构示意图。

具体实施方式

为使本发明的目的、技术方案和优点更加清楚,下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。

图1是根据一示例性实施例示出的区块链智能合约调试发布方法流程图,参照图1所示,所述方法包括如下步骤:

s1:在创建交易通道的同时自动创建一条测试通道,且用户加入或退出所述交易通道时同步将用户加入或退出所述测试通道。

具体的,区块链的用户根据业务需要新建一条交易通道,系统会在用户创建交易通道的同时自动为其创建一条具有相同参与用户的测试通道,新的区块链用户在加入或退出交易通道的同时也将同步加入或退出对应的测试通道。

s2:将待测试的智能合约部署到所述测试通道上,所述测试通道上所有用户共同对合约内容进行业务测试。

具体的,区块链中的用户可以将合约开发者提交的待测试的智能合约部署到测试通道中,测试通道上所有用户共同对合约内容进行业务测试。这里需要说明的是,在本发明实施例中,智能合约内容只需要在测试时由测试通道的各参与方(同时这些参与方也是交易通道的参与方)保证是否与其业务相符合,而不需要在每次部署测试前都进行智能合约内容的共识认证,减少了各参与方工作量,缩短更新合约的操作周期。

各参与方测试智能合约内容与其业务是否相符合可采用如下过程:

获取待测试的智能合约对应的智能合约的代码,对智能合约代码进行编译,获取编译文件;

对编译文件进行分析后,生成功能测试页面;

用户在功能测试页面上输入测试参数,对待测试的智能合约进行功能测试。

进一步的,将所述智能合约在所述测试通道上运行生成的测试数据记录在所述测试通道上,用户可在所述测试通道查询所述测试数据。

具体的,智能合约在交易通道上正式部署之前,在测试通道上运行生成的测试数据将记录在测试通道上,且测试数据将在测试通道进行查询和展示,也就是说用户可在测试通道查询测试数据。

进一步的,用户在得到所述测试通道上所有用户的共识后,可将所述测试数据删除。

具体的,当需要对区块链中的数据进行删除时,需要得到通道上所有用户的共识,不能自行删除。例如,当区块链中的数据量达到负载瓶颈时,可由测试数据占用存储空间较多的通道用户发起对测试数据的删除,得到测试通道上所有用户共识后,才可将数据占用的存储空间进行释放。如此操作,可以保证区块链上的数据不能被随意删除。

这里需要说明的是,在本发明实施例中,应用程序可以调用sdk向测试通道写入交易,且可以在应用程序调用sdk向测试通道写入交易的时候在sdk中限制交易的提交速度,防止测试通道的测试操作对交易通道性能造成干扰。

s3:判断所述待测试的智能合约测试是否通过,若通过,则执行步骤s4,若不通过,则将所述智能合约返回给开发者修改或选择新的智能合约后返回步骤s2,重新对其进行测试。

具体的,测试通道上所有用户共同对合约内容进行业务测试后,根据测试结果,判断待测试的智能合约测试是否通过,若测试通过,则执行步骤s4,若测试不通过,则将智能合约转交给开发者修改或选择新的智能合约后返回步骤s2,重新对其进行测试。

s4:所述测试通道上所有用户对所述智能合约的内容进行共识,得到同意部署的反馈后,将所述智能合约部署到正式的交易通道上使用。

具体的,测试通过以后,还需要测试通道上所有用户对智能合约的内容进行共识并得到同意部署的反馈后,才能将智能合约部署到所述交易通道上

进一步的,将所述智能合约在所述交易通道上运行生成的区块和/或交易数据记录在所述交易通道上,用户可在所述交易通道查询所述区块和/或交易数据。

具体的,智能合约在交易通道上运行生成的区块和/或交易数据将记录在交易通道上,且区块和/或交易数据将在交易通道进行查询和展示,也就是说用户可在交易通道查询区块和/或交易数据。这里需要说明的是,交易通道和测试通道的数据都将具备区块链上数据不可篡改的特性。且将测试数据和交易数据分别进行存储,使得两组数据互不干扰,有效提高区块链底层网络的运行和查询效率,进一步提高稳定性。

进一步的,所述待测试的智能合约包括新提交的智能合约和/或历史版本的智能合约。

进一步的,所述s3具体包括:

若所述新提交的智能合约测试通过,则执行步骤s4,若测试不通过,则将所述智能合约返回给开发者修改后返回步骤s2,重新对其进行测试;和/或,

若所述历史版本的智能合约测试通过,则执行步骤s4,若测试不通过,则选择新的智能合约返回步骤s2,重新对其进行测试。

具体的,在本发明实施例中,待测试的智能合约包括新提交的智能合约和/或历史版本的智能合约。无论是新提交的智能合约还是历史版本的智能合约,若测试通过,均执行步骤s4,但是,两者若是测试不通过,则后续操作会略有不同。具体如下:若新提交的智能合约测试不通过,则将智能合约返回给开发者修改后返回步骤s2,重新对其进行测试;而若历史版本的智能合约测试不通过,则选择新的智能合约返回步骤s2,重新对其进行测试。

也就是说,如需根据业务调整等变化对智能合约的内容进行更新或回滚到之前的合约版本时,区块链中的用户可选择将开发者提交的新智能合约或当前交易通道上使用过的历史版本的智能合约部署到测试通道上,由测试通道的所有用户对测试通道的合约内容进行业务测试。如测试不通过,则新提交的智能合约可转给合约的开发者进行修改后再提交和测试,历史版本的智能合约则无法再进行修改,只能选择新的智能合约重新部署到测试通道中进行测试,而交易通道中仍然执行上一个正式部署的合约,如测试通过,则由通道中的所有用户对智能合约的内容进行共识并得到同意部署的反馈后,将更新的合约正式部署到交易通道上使用。

上述所有可选技术方案,可以采用任意结合形成本发明的可选实施例,在此不再一一赘述。

图2是根据一示例性实施例示出的区块链智能合约调试发布系统的结构示意图,参照图2所示,该系统至少包括:

新建模块,用于提供给用户创建交易通道,且在用户创建交易通道的同时自动创建一条测试通道,其中,测试通道与交易通道相对应。

注册模块,用于提供给用户加入或退出所述交易通道,且在用户加入或退出所述交易通道时同步将用户加入或退出所述测试通道。

测试模块,用于将待测试的智能合约部署到所述测试通道上,所述测试通道上所有用户共同对合约内容进行业务测试。

具体的,在本发明实施例中,智能合约内容只需要在测试时由测试通道的各参与方(同时这些参与方也是交易通道的参与方)保证是否与其业务相符合,而不需要在每次部署测试前都进行智能合约内容的共识认证,减少了各参与方工作量,缩短更新合约的操作周期。

判断模块,用于判断所述待测试的智能合约测试是否通过,若通过,则将所述待测试的智能合约发送至发布模块,若不通过,则将所述智能合约返回给开发者修改或选择新的智能合约后发送至测试模块,重新对其进行测试。

这里需要说明的是,待测试的智能合约包括新提交的智能合约和/或历史版本的智能合约。如测试不通过,新提交的智能合约可转给合约的开发者进行修改后再提交和测试,历史版本的智能合约则无法再进行修改,只能选择新的智能合约重新部署到测试通道中进行测试。

发布模块,用于在所述测试通道上所有用户对所述智能合约的内容进行共识,得到同意部署的反馈后,将所述智能合约部署到所述交易通道上。

进一步的,所述系统还包括:

第一存储模块,用于将所述智能合约在所述测试通道上运行生成的测试数据记录在所述测试通道;

第一查询模块,用于用户在所述测试通道查询所述测试数据;

删除模块,用于用户在得到所述测试通道上所有用户的共识后,将所述测试数据删除;

第二存储模块,用于将所述智能合约在所述交易通道上运行生成的区块和/或交易数据记录在所述交易通道上;

第二查询模块,用于用户在所述交易通道查询所述区块和/或交易数据。

具体的,在本发明实施例中,交易通道和测试通道的数据都将具备区块链上数据不可篡改的特性。且将测试数据和交易数据分别进行存储,使得两组数据互不干扰,有效提高区块链底层网络的运行和查询效率,进一步提高稳定性。

这里需要说明的,上述区块链智能合约调试发布系统可以是基于上述区块链智能合约调试发布方法来实现的。

综上所述,本发明实施例提供的技术方案带来的有益效果是:

1、本发明实施例提供的区块链智能合约调试发布方法及系统,在用户新建交易通道的同时系统自动为交易通道新建一条具有相同参与方的测试通道,用于合约正式部署前的测试,智能合约内容只需要在测试时由交易通道各参与方保证是否与其业务相符合而不需要在每次部署测试前都进行合约内容的共识认证,减少参与方工作量,缩短更新合约的操作周期;

2、本发明实施例提供的区块链智能合约调试发布方法及系统,将测试数据和交易数据分别存储,两组数据互不干扰,有效提高区块链底层网络的运行和查询效率,提高稳定性;

3、本发明实施例提供的区块链智能合约调试发布方法及系统,将软件开发工程中的流程规范性和可管理性引入到区块链通道的合约调试发布中,减少合约的维护成本,最大限度的提高团队的合作效率。

需要说明的是:上述实施例提供的区块链智能合约调试发布系统在触发调试发布业务时,仅以上述各功能模块的划分进行举例说明,实际应用中,可以根据需要而将上述功能分配由不同的功能模块完成,即将系统的内部结构划分成不同的功能模块,以完成以上描述的全部或者部分功能。另外,上述实施例提供的区块链智能合约调试发布系统与区块链智能合约调试发布方法实施例属于同一构思,其具体实现过程详见方法实施例,这里不再赘述。

本领域普通技术人员可以理解实现上述实施例的全部或部分步骤可以通过硬件来完成,也可以通过程序来指令相关的硬件完成,所述的程序可以存储于一种计算机可读存储介质中,上述提到的存储介质可以是只读存储器,磁盘或光盘等。

以上所述仅为本发明的较佳实施例,并不用以限制本发明,凡在本发明的精神和原则之内,所作的任何修改、等同替换、改进等,均应包含在本发明的保护范围之内。

当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1