区块链交易的模拟方法、装置、电子设备和可读介质与流程

本技术涉及计算机,尤其涉及一种区块链交易的模拟方法、装置、电子设备和可读介质。
背景技术:
1、模拟交易是一种不期望对区块链数据的修改在区块链中留下痕迹的交易。区块链可以在需要在交易正式上链之前确认交易对区块链的影响或者在需要调试智能合约的逻辑等情况中进行模拟交易。
2、模拟交易通常在模拟链中进行,模拟区块链是基于实际区块链的代码建立的一条区块链,用户通过在模拟链中进行交易来进行模拟交易。
3、然而,此类方案中,模拟区块链的交易环境和链上数据通常是独立设置的,与实际区块链中的交易环境和链上数据之间存在差异,使得模拟交易的影响因素与实际区块链交易的影响因素不同,影响模拟交易的拟真程度。
技术实现思路
1、基于上述技术问题,本技术提供一种区块链交易的模拟方法、装置、电子设备和可读介质,以消除模拟区块链与实际区块链之间的数据差异,提升模拟交易的拟真程度。
2、本技术的其他特性和优点将通过下面的详细描述变得显然,或部分地通过本技术的实践而习得。
3、根据本技术实施例的一个方面,提供一种区块链交易的模拟方法,包括:
4、获取模拟交易请求;
5、响应于所述模拟交易请求,根据所述区块链的最新区块进行区块链分叉操作以生成分叉区块,并根据所述分叉区块建立所述区块链的模拟区块环境;
6、在所述模拟区块环境中根据所述模拟交易请求进行模拟交易;
7、根据所述模拟区块环境中的数据变化,生成区块链交易的模拟结果。
8、根据本技术实施例的一个方面,提供一种区块链交易的模拟装置,包括:
9、获取模块,用于获取模拟交易请求;
10、分叉模块,用于响应于所述模拟交易请求,根据所述区块链的最新区块进行区块链分叉操作以生成分叉区块,并根据所述分叉区块建立所述区块链的模拟区块环境;
11、模拟模块,用于在所述模拟区块环境中根据所述模拟交易请求进行模拟交易;
12、生成模块,用于根据所述模拟区块环境中的数据变化,生成区块链交易的模拟结果。
13、在本技术的一些实施例中,基于以上技术方案,模拟模块还配置为:根据所述模拟交易请求中的交易信息,确定所述模拟交易请求的交易类型;若所述模拟交易请求的交易类型为链内交易,则根据所述模拟交易请求中交易双方在所述区块链中的账户地址以及虚拟资源交易量,调用所述链内交易对应的模拟交易接口,以进行模拟交易并更新所述模拟区块环境中分叉区块的区块链数据;若所述模拟交易请求的交易类型为跨链交易,则根据所述模拟交易请求中的智能合约地址、智能合约调用参数以及账户地址,调用所述跨链交易对应的模拟交易接口,以进行模拟交易并更新所述模拟区块环境中分叉区块的区块链数据。
14、在本技术的一些实施例中,基于以上技术方案,生成模块还配置为:通过所述模拟交易接口,获取所述模拟交易接口返回的模拟交易结果;从所述模拟交易结果中获取所述模拟交易中虚拟资源交易量、所述模拟交易调用的智能合约信息以及被调用智能合约输出的日志数据,得到区块链交易的模拟结果。
15、在本技术的一些实施例中,基于以上技术方案,模拟模块还配置为:检查所述模拟交易请求中的虚拟资源类型和交易双方的账户地址;若所述模拟交易请求中包含多个虚拟资源类型或者交易双方的账户地址之一为智能合约地址,则确定所述模拟交易请求的交易类型为跨链交易;若所述模拟交易请求中包含单个虚拟资源类型并且交易双方的账户地址均为所述区块链中的账户地址,则确定所述模拟交易请求的交易类型为链内交易。
16、在本技术的一些实施例中,所述模拟交易请求中包含多组交易信息,基于以上技术方案,模拟模块还配置为:将每组交易信息中交易双方在所述区块链中的账户地址以及虚拟资源交易量分别输入到所述链内交易对应的模拟交易接口,以通过所述模拟交易接口返回所述模拟交易请求的模拟交易结果,其中,所述模拟交易结果中包含各组交易信息在所述模拟交易环境中进行交易的交易结果数据。
17、在本技术的一些实施例中,所述模拟交易请求中包含多组交易信息,基于以上技术方案,模拟模块还配置为:根据所述多组交易信息中交易双方在所述区块链中的账户地址以及虚拟资源交易量依次调用所述链内交易对应的模拟交易接口,以通过所述模拟交易接口返回每组交易信息对应的模拟交易结果;
18、在根据每组交易信息调用所述链内交易对应的模拟交易接口的过程中,对于各组交易信息,在通过所述模拟交易接口获得所述上一组交易信息对应的模拟交易结果之后,根据当前的交易信息调用所述链内交易对应的模拟交易接口。
19、在本技术的一些实施例中,基于以上技术方案,区块链交易的模拟装置还包括:
20、接收模块,配置为接收针对所述模拟结果的结果确认消息;
21、打包模块,配置为响应于所述结果确认消息,将所述模拟结果对应的模拟交易信息打包为区块链交易;
22、签名模块,配置为通过区块链密钥对所述区块链交易进行签名;
23、上链模块,配置为将签名后的区块链交易在所述区块链中上链。
24、在本技术的一些实施例中,基于以上技术方案,打包模块还配置为:响应于所述结果确认消息,根据所述模拟交易中的交易操作以及交易操作对应的历史交易的交易数据,确定所述模拟交易的模拟交易信息;根据所述区块链中区块链交易的信息结构,将所述模拟交易信息打包为区块链交易。
25、在本技术的一些实施例中,基于以上技术方案,区块链交易的模拟装置还包括:
26、交易获取模块,配置为当所述区块链中生成新区块时,获取所述新区块中的上链交易,所述上链交易中包含交易方账户的签名信息;
27、签名验证模块,配置为根据所述模拟交易环境中所述交易方账户的密钥信息对所述上链交易中的签名信息进行签名验证;
28、交易执行模块,配置为若签名验证通过,则在所述模拟交易环境中执行所述新区块中的上链交易。
29、在本技术的一些实施例中,基于以上技术方案,交易执行模块还配置为:解析所述新区块中的上链交易,得到所述上链交易的交易序列值;在所述模拟交易环境的模拟交易中检索所述上链交易的交易序列值;若存在历史模拟交易的交易序列值与所述上链交易的交易序列值相同,则根据所述历史模拟交易,在所述模拟交易环境中还原所述历史模拟交易造成的数据变化;在所述模拟交易环境中执行所述上链交易。
30、在本技术的一些实施例中,基于以上技术方案,所述模拟区块环境对应于区块链账户;分叉模块还配置为:获取其他区块链账户的模拟交易请求;响应于所述其他区块链账户的模拟交易请求,根据所述区块链的最新区块进行区块链分叉操作,得到其他分叉区块,并根据所述其他分叉区块建立对应于所述其他区块链账户的模拟区块环境;生成模块还配置为:若接收到所述区块链账户的模拟交易请求,则在所述区块链账户对应的模拟区块环境中执行所述模拟交易请求;若接收到所述其他区块链账户的模拟交易请求,则在所述区块链账户对应的其他模拟区块环境中执行所述模拟交易请求。
31、在本技术的一些实施例中,基于以上技术方案,获取模块还配置为:获取并在本地保存所述区块链中最新区块的最新区块数据;监测所述区块链中的区块上链操作;当所述区块链中有新区块上链时,获取所述新区块并根据所述新区块更新本地保存的最新区块数据,以用于生成所述区块链的模拟区块环境。
32、根据本技术实施例的一个方面,提供一种电子设备,该电子设备包括:处理器;以及存储器,用于存储处理器的可执行指令;其中,该处理器配置为经由执行可执行指令来执行如以上技术方案中的区块链交易的模拟方法。
33、根据本技术实施例的一个方面,提供一种计算机可读存储介质,其上存储有计算机程序,当该计算机程序被处理器执行时实现如以上技术方案中的区块链交易的模拟方法。
34、根据本技术实施例的一个方面,提供了一种计算机程序产品或计算机程序,该计算机程序产品或计算机程序包括计算机指令,该计算机指令存储在计算机可读存储介质中。计算机设备的处理器从计算机可读存储介质读取该计算机指令,处理器执行该计算机指令,使得该计算机设备执行上述各种可选实现方式中提供的区块链交易的模拟方法。
35、在本技术的实施例中,在模拟交易的过程中,先根据区块链对应的交易逻辑信息以及区块链中最新区块的数据生成区块链的模拟区块环境,然后再改模拟区块环境中进行模拟交易,再根据模拟区块环境中的数据变化,生成区块链交易的模拟结果。通过模拟的真实环境来进行模拟交易,消除模拟区块链与实际区块链之间的数据差异,提升模拟交易的拟真程度。
36、应当理解的是,以上的一般描述和后文的细节描述仅是示例性和解释性的,并不能限制本技术。
技术研发人员:黄桂鸿
技术所有人:腾讯科技(深圳)有限公司
备 注:该技术已申请专利,仅供学习研究,如用于商业用途,请联系技术所有人。
声 明 :此信息收集于网络,如果你是此专利的发明人不想本网站收录此信息请联系我们,我们会在第一时间删除
