区块链中智能合约的执行方法及装置和电子设备制造方法及图纸

技术编号:27462594 阅读:83 留言:0更新日期:2021-02-25 05:28
本说明书实施例提供一种区块链中智能合约的执行方法及装置和电子设备。所述方法包括:接收用户提交的第一交易;所述第一交易携带有业务执行所需调用的逻辑合约的第一合约地址;响应于所述第一交易,调用所述第一合约地址对应的逻辑合约,获取所述逻辑合约对应的合约账户中维护的业务逻辑;确定执行所述业务逻辑缺少的状态数据的字段名称;调用所述区块链的路由合约,查询所述路由合约对应的合约账户中维护的映射表中所述第一合约地址映射的第二合约地址;调用所述第二合约地址对应的数据合约,获取所述数据合约对应的合约账户中维护的所述字段名称的状态数据;将所述状态数据补充到所述业务逻辑中缺少的状态数据,以执行所述业务逻辑。所述业务逻辑。所述业务逻辑。

【技术实现步骤摘要】
【国外来华专利技术】区块链中智能合约的执行方法及装置和电子设备


[0001]本说明书一个或多个实施例涉及区块链
,尤其涉及一种区块链中智能合约的执行方法及装置和电子设备。

技术介绍

[0002]区块链技术,也被称之为分布式账本技术,是一种由若干台计算设备共同参与“记账”,共同维护一份完整的分布式数据库的新兴技术。由于区块链技术具有去中心化、公开透明、每台计算设备可以参与数据库记录、并且各计算设备之间可以快速的进行数据同步的特性,使得区块链技术已在众多的领域中广泛的进行应用。

技术实现思路

[0003]本说明书实施例提供的一种区块链中智能合约的创建、升级、执行方法及装置和电子设备。
[0004]根据本说明书实施例的第一方面,提供一种区块链中智能合约的执行方法,所述方法包括:
[0005]接收用户提交的第一交易;其中,所述第一交易携带有业务执行所需调用的逻辑合约的第一合约地址;
[0006]响应于所述第一交易,调用所述第一合约地址对应的逻辑合约,获取所述逻辑合约对应的合约账户中维护的业务逻辑;
[0007]确定执行所述业务逻辑缺少的状态数据的字段名称;
[0008]调用所述区块链的路由合约,查询所述路由合约对应的合约账户中维护的映射表中所述第一合约地址映射的第二合约地址;
[0009]调用所述第二合约地址对应的数据合约,获取所述数据合约对应的合约账户中维护的所述字段名称的状态数据;
[0010]将所述状态数据补充到所述业务逻辑中缺少的状态数据,以执行所述业务逻辑。
[0011]可选的,所述方法还包括:
[0012]当执行所述业务逻辑产生了目标字段的新状态数据后,调用所述第二合约地址对应的数据合约,更新所述数据合约对应的合约账户中维护的所述目标字段的状态数据,以将所述目标字段的状态数据修改为新状态数据。
[0013]可选的,所述方法还包括:
[0014]接收用户提交的第二交易;其中,所述第二交易携带有待创建智能合约的业务逻辑;
[0015]响应于所述第二交易,创建逻辑合约,在所述逻辑合约对应的合约账户中写入所述业务逻辑;
[0016]创建数据合约,在所述数据合约对应的合约账户中写入所述业务逻辑中各字段的初始状态数据;
[0017]调用所述区块链中的路由合约,更新所述路由合约对应的合约账户中维护的映射表,以将所述逻辑合约对应的第一合约地址和所述数据合约的第二合约地址写入所述映射表。
[0018]可选的,所述方法还包括:
[0019]接收用户提交的第三交易;其中,所述第三交易携带有待升级的旧逻辑合约的第一合约地址和需升级的新业务逻辑;
[0020]响应于所述第三交易,创建新的逻辑合约,在所述新的逻辑合约对应的合约账户中写入所述新业务逻辑;
[0021]调用所述区块链中的路由合约,更新所述路由合约对应的合约账户中维护的映射表,以将所述映射表中旧的逻辑合约的第一合约地址修改为所述新的逻辑合约的第一合约地址。
[0022]可选的,所述方法还包括:
[0023]如果所述新业务逻辑相比旧业务逻辑增加了新的字段,则创建新的数据合约,在所述新的数据合约对应的合约账户中写入所述新的字段的初始状态数据;
[0024]调用所述区块链中的路由合约,更新所述路由合约对应的合约账户中维护的映射表,以在所述映射表中增加第一合约地址与该新的数据合约的第二合约地址的映射关系。
[0025]可选的,如果所述第一交易还携带有业务相关的状态数据,所述响应于所述第一交易,调用所述第一合约地址对应的逻辑合约,获取所述逻辑合约对应的合约账户中维护的业务逻辑,具体包括:
[0026]响应于所述第一交易,调用所述区块链的路由合约,查询所述路由合约对应的合约账户中维护的映射表中所述第一合约地址映射的第二合约地址;
[0027]进一步调用所述第二合约地址对应的数据合约,更新所述数据合约对应的合约账户中维护的所述目标字段的状态数据,以记录所述第一交易携带的状态数据;
[0028]进一步调用所述第一合约地址对应的逻辑合约,获取所述逻辑合约对应的合约账户中维护的业务逻辑。
[0029]可选的,所述数据合约对应的合约账户维护的状态数据位于资产映射表,所述资产映射表存储了用户账户与用户资产的状态数据;
[0030]所述调用所述第二合约地址对应的数据合约,更新所述数据合约对应的合约账户中维护的所述目标字段的状态数据,包括:
[0031]如果所述第一交易为用户资产的入账交易,则调用所述第二合约地址对应的数据合约,在所述资产映射表中记录该用户账户和用户资产的状态数据;
[0032]如果所述第一交易为用户资产的出账交易,则调用所述第二合约地址对应的数据合约,校验所述第一交易指示的用户账户是否位于所述资产映射表;
[0033]所述调用所述第一合约地址对应的逻辑合约,获取所述逻辑合约对应的合约账户中维护的业务逻辑,
[0034]在所述用户账户位于所述资产映射表中时,,进一步调用所述第一合约地址对应的逻辑合约,获取所述逻辑合约对应的合约账户中维护的业务逻辑。
[0035]根据本说明书实施例的第二方面,一种区块链中智能合约的创建方法,所述方法包括:
[0036]接收用户提交的第二交易;其中,所述第二交易携带有待创建智能合约的业务逻辑;
[0037]响应于所述第二交易,创建逻辑合约,在所述逻辑合约对应的合约账户中写入所述业务逻辑;
[0038]创建数据合约,在所述数据合约对应的合约账户中写入所述业务逻辑中各字段的初始状态数据;
[0039]调用所述区块链中的路由合约,更新所述路由合约对应的合约账户中维护的映射表,以将所述逻辑合约对应的第一合约地址和所述数据合约的第二合约地址写入所述映射表。
[0040]根据本说明书实施例的第三方面,一种区块链中智能合约的升级方法,所述方法包括:
[0041]接收用户提交的第三交易;其中,所述第三交易携带有待升级的旧逻辑合约的第一合约地址和需升级的新业务逻辑;
[0042]响应于所述第三交易,创建新的逻辑合约,在所述新的逻辑合约对应的合约账户中写入所述新业务逻辑;
[0043]调用所述区块链中的路由合约,更新所述路由合约对应的合约账户中维护的映射表,以将所述映射表中旧的逻辑合约的第一合约地址修改为所述新的逻辑合约的第一合约地址。
[0044]可选的,所述方法还包括:
[0045]如果所述新业务逻辑相比旧业务逻辑增加了新的字段,则创建新的数据合约,在所述新的数据合约对应的合约账户中写入所述新的字段的初始状态数据;
[0046]调用所述区块链中的路由合约,更新所述路由合约对应的合约账户中维护的映射表,以在所述映射表中增加第一合约地址与该新的数据合约的第二合约地址的映射关系。
[0047]根据本说明书实施例的第四方面,一种区块链中智能合约的执行装置,所述装置包括:本文档来自技高网
...

【技术保护点】

【技术特征摘要】
【国外来华专利技术】1.一种区块链中智能合约的执行方法,其特征在于,所述方法包括:接收用户提交的第一交易;其中,所述第一交易携带有业务执行所需调用的逻辑合约的第一合约地址;响应于所述第一交易,调用所述第一合约地址对应的逻辑合约,获取所述逻辑合约对应的合约账户中维护的业务逻辑;确定执行所述业务逻辑缺少的状态数据的字段名称;调用所述区块链的路由合约,查询所述路由合约对应的合约账户中维护的映射表中所述第一合约地址映射的第二合约地址;调用所述第二合约地址对应的数据合约,获取所述数据合约对应的合约账户中维护的所述字段名称的状态数据;将所述状态数据补充到所述业务逻辑中缺少的状态数据,以执行所述业务逻辑。2.根据权利要求1所述的方法,其特征在于,所述方法还包括:当执行所述业务逻辑产生了目标字段的新状态数据后,调用所述第二合约地址对应的数据合约,更新所述数据合约对应的合约账户中维护的所述目标字段的状态数据,以将所述目标字段的状态数据修改为新状态数据。3.根据权利要求1所述的方法,其特征在于,所述方法还包括:接收用户提交的第二交易;其中,所述第二交易携带有待创建智能合约的业务逻辑;响应于所述第二交易,创建逻辑合约,在所述逻辑合约对应的合约账户中写入所述业务逻辑;创建数据合约,在所述数据合约对应的合约账户中写入所述业务逻辑中各字段的初始状态数据;调用所述区块链中的路由合约,更新所述路由合约对应的合约账户中维护的映射表,以将所述逻辑合约对应的第一合约地址和所述数据合约的第二合约地址写入所述映射表。4.根据权利要求1所述的方法,其特征在于,所述方法还包括:接收用户提交的第三交易;其中,所述第三交易携带有待升级的旧逻辑合约的第一合约地址和需升级的新业务逻辑;响应于所述第三交易,创建新的逻辑合约,在所述新的逻辑合约对应的合约账户中写入所述新业务逻辑;调用所述区块链中的路由合约,更新所述路由合约对应的合约账户中维护的映射表,以将所述映射表中旧的逻辑合约的第一合约地址修改为所述新的逻辑合约的第一合约地址。5.根据权利要求4所述的方法,其特征在于,所述方法还包括:如果所述新业务逻辑相比旧业务逻辑增加了新的字段,则创建新的数据合约,在所述新的数据合约对应的合约账户中写入所述新的字段的初始状态数据;调用所述区块链中的路由合约,更新所述路由合约对应的合约账户中维护的映射表,以在所述映射表中增加第一合约地址与该新的数据合约的第二合约地址的映射关系。6.根据权利要求1所述的方法,其特征在于,如果所述第一交易还携带有业务相关的状态数据,所述响应于所述第一交易,调用所述第一合约地址对应的逻辑合约,获取所述逻辑合约对应的合约账户中维护的业务逻辑,具体包括:
响应于所述第一交易,调用所述区块链的路由合约,查询所述路由合约对...

【专利技术属性】
技术研发人员:刘海峰郭三彬陈复星李腾卓越雷宇
申请(专利权)人:北京和联共识科技有限公司
类型:发明
国别省市:

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

1