一种残膜回收机防缠绕挑膜装置的制 一种秧草收获机用电力驱动行走机构

区块链中部署合约的方法、装置、计算机设备及存储介质与流程

2022-04-30 16:45:17 来源:中国专利 TAG:


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.根据所述合约部署请求获取所述目标用户节点在所述区块链网络中的目标节点标识;
37.若所述目标节点标识属于所述候选节点标识,通过所述管理员节点在所述代理合约中创建所述目标合约对应的区块链中部署合约的方法;
38.通过所述目标用户节点调用所述代理合约中的所述区块链中部署合约的方法;
39.基于所述区块链中部署合约的方法在所述区块链网络中部署所述目标合约。
40.可选的,所述次数阈值包括第二次数阈值,所述次数阈值获取单元还用于:
41.通过所述管理员节点在所述代理合约中设置预设时间内可部署用户节点在所述区块链网络中进行合约部署的第二次数阈值,所述可部署用户节点包括多个所述用户节点中在所述区块链网络具有合约部署权限的用户节点;
42.在所述代理合约中获取所述可部署用户节点在所述区块链网络进行合约部署的所述第二次数阈值。
43.可选的,所述已部署次数为第二已部署次数,所述已部署次数获取单元还用于:
44.基于所述代理合约获取所述可部署用户节点在所述预设时间内在所述区块链网络中进行合约部署的所述第二已部署次数。
45.可选的,所述接收单元还用于:
46.若所述目标用户节点不具有在所述区块链网络中进行合约部署的合约部署权限,通过所述管理员节点发起节点增加交易,所述节点增加交易用于使所述目标用户节点具有所述合约部署权限;
47.对所述节点增加交易执行上链处理,以触发所述区块链网络根据所述节点增加交易为所述目标用户节点设置所述合约部署权限。
48.可选的,所述合约部署请求包括可调用所述目标合约的调用用户节点在所述区块链网络中的调用节点标识,所述部署单元还用于:
49.根据所述调用节点标识向所述调用用户节点反馈所述目标合约在所述区块链网络中的目标合约地址,以使所述调用用户节点根据所述目标合约地址调用所述目标合约,其中,一个所述目标合约对应一个所述目标合约地址。
50.可选的,所述合约部署请求包括所述目标合约的最大可调用次数,所述装置还用于:
51.接收目标调用用户节点发送的合约调用请求,所述合约调用请求包括所述目标调用用户节点的目标调用节点标识和针对所述目标合约的待调用次数;
52.若所述调用节点标识包括所述目标调用节点标识,在所述代理合约中获取所述目标合约的已调用次数;
53.计算当前调用次数和所述已调用次数的调用次数总和;
54.若所述调用次数总和小于等于所述最大可调用次数,实现所述目标调用用户节点调用所述目标合约。
55.可选的,所述接收单元还用于:
56.若所述目标用户节点为多个,接收至少一个所述目标用户节点在所述区块链网络中的合约部署请求,其中,所述合约部署请求包括各个所述目标用户节点的私钥,以及在所述区块链网络中的节点标识;
57.所述已部署次数获取单元还用于:
58.基于所述代理合约确定在所述区块链网络中各所述目标用户节点进行合约部署
的已部署次数;
59.所述部署单元还用于:
60.若各所述目标用户节点对应的已部署次数和所述待部署次数的各部署次数总和不超过所述次数阈值,通过所述代理合约基于各所述目标用户节点在所述区块链网络中的私钥,以及节点标识部署所述目标合约。
61.同样的,本技术实施例还提供一种计算机设备,包括:
62.存储器,用于存储计算机程序;
63.处理器,用于在执行所述区块链中部署合约的方法任一项的步骤。
64.此外,本技术实施例还提供一种计算机可读存储介质,所述计算机可读存储介质上存储有计算机程序,所述计算机程序被处理器执行时实现区块链中部署合约的方法任一项的步骤。
65.本技术实施例提供一种区块链中部署合约的方法、装置、计算机设备及存储介质,区块链网络中的用户节点不能直接在区块链网络中部署合约,当目标用户节点想要在区块链网络中部署目标合约时,需要通过代理合约判断区块链网络中已经进行合约部署的已部署次数和目标用户节点当前想要进行合约部署的待部署次数,没有超过可以在区块链网络中进行合约部署的次数阈值,才能进一步通过代理合约部署目标合约,从而限制了用户节点在区块链网络中进行合约部署的次数,可以有效地减少区块链网络中同样功能的区块链合约有多个,避免区块链网络中的合约混乱和无效合约过多。
附图说明
66.为了更清楚地说明本技术实施例中的技术方案,下面将对实施例描述中所需要兑现的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明的一些实施例,对于本领域技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
67.图1是本技术实施例提供的合约部署装置的系统示意图;
68.图2是本技术实施例提供的区块链中部署合约的方法的流程示意图;
69.图3是本技术实施例提供的区块链中部署合约的方法的另一流程示意图;
70.图4是本技术实施例提供的合约部署装置的结构示意图;
71.图5是本技术实施例提供的计算机设备的结构示意图。
具体实施方式
72.下面将结合本技术实施例中的附图,对本技术实施例中的技术方案进行清楚、完整地描述。显然,所描述的实施例仅仅是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域技术人员在没有作出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
73.本技术实施例提供一种区块链中部署合约的方法、装置、计算机设备及存储介质。具体地,本技术实施例的合约部署可以由计算机设备执行,其中,该计算机设备可以为终端或者服务器等设备。该终端可以为智能手机、平板电脑、笔记本电脑、触控屏幕、游戏机、个人计算机(personal computer,pc)、个人数字助理(personal digital assistant,pda)等
终端设备,终端还可以包括客户端,该客户端可以是游戏应用客户端、携带有游戏程序的浏览器客户端或即时通信客户端等。服务器可以是独立的物理服务器,也可以是多个物理服务器构成的服务器集群或者分布式系统,还可以是提供云服务、云数据库、云计算、云函数、云存储、网络服务、云通信、中间件服务、域名服务、安全服务、内容分发网络服务、以及大数据和人工智能平台等基础云计算服务的云服务器。
74.请参阅图1,图1为本技术实施例提供的合约部署装置的系统示意图。该系统为区块链网络系统,可以包括多个终端作为用户节点,其中一个终端为管理员节点,区块链网络用于接收目标用户节点在区块链网络中的合约部署请求,合约部署请求包括目标用户节点待部署的至少一个目标合约;获取由管理员节点部署的代理合约,代理合约用于根据合约部署请求在区块链网络中部署目标合约;在代理合约中获取在区块链网络中进行合约部署的次数阈值;基于目标合约的个数获取目标用户节点当前在区块链网络中进行合约部署的待部署次数;基于代理合约确定在区块链网络中进行合约部署的已部署次数;若待部署次数和已部署次数的部署次数总和不超过次数阈值,通过代理合约在区块链网络中部署目标合约。
75.以下分别进行详细说明。需说明的是,以下实施例的描述顺序不作为对实施例优选顺序的限定。
76.本实施例将从合约部署装置的角度进行描述,该合约部署装置具体可以集成在终端设备中,该终端设备可以包括智能手机、笔记本电脑、平板电脑以及个人计算机等设备。
77.本技术实施例提供的一种区块链中部署合约的方法,该方法可以由终端的处理器执行,如图2所示,该区块链中部署合约的方法的具体流程主要包括步骤201至步骤206,详细说明如下:
78.步骤201、接收目标用户节点在区块链网络中的合约部署请求,合约部署请求用于指示将目标用户节点待部署的至少一个目标合约在区块链网络中进行部署。
79.在本技术实施例中,合约是一种以数字形式定义的协议,包括提供、验证及执行该数字形式的协议,是用计算机语言取代法律语言记录条款并由程序自动执行的合约。合约可以认为是传统合同的数字化版本,在区块链网络上运行,由程序自动执行。其中,目标合约是目标用户节点在区块链网络中待部署的合约。此外,步骤202中提到的代理合约包括各个用户节点已经在区块链网络中部署合约的已部署次数和可以在区块链网络中部署合约的总次数,以及各个在区块链网络中部署的合约的代理交易方法,代理合约由管理员节点在区块链网络中部署生成。
80.在本技术实施例中,当目标用户节点想要使得与其他用户节点之间制定协议生效时,目标用户节点可以在区块链网络中部署记录该协议的合约,从而使得协议双方的用户节点可以执行该协议。
81.在本技术实施例中,目标用户节点可以是区块链网络包括的用户节点中的一个用户节点,当区块链网络接收到目标用户节点的合约部署请求之后,需要判断目标用户节点是否具有在区块链网络中进行合约部署的权限。如果有,则进一步进行合约部署次数的判断。
82.在本技术实施例中,如果想要进行合约部署的目标用户节点不具有在区块链网络中进行合约部署的权限,为了使得目标用户节点可以在区块链网络中部署目标用户,可以
通过管理员节点发起节点增加交易,使得目标用户标识可以在区块链网络中部署目标合约。此时上述步骤201“接收目标用户节点在区块链网络中的合约部署请求”之后,还可以包括:
83.若目标用户节点不具有在区块链网络中进行合约部署的合约部署权限,通过管理员节点发起节点增加交易,节点增加交易用于使目标用户节点具有合约部署权限;
84.对节点增加交易执行上链处理,以触发区块链网络根据节点增加交易为目标用户节点设置合约部署权限。
85.在本技术实施例中,当目标用户节点可以在区块链网络中进行合约部署时,目标用户节点可以直接具有在区块链网络中进行合约部署的权限,接着可以继续在区块链网络中进行合约部署。
86.此外,目标用户节点也可以仍然不具有合约部署权限,而只是可以在区块链网络中部署目标合约,不具有在区块链网络中部署其他合约的权限。
87.在本技术实施例中,合约部署请求中可以包括目标用户节点在区块链网络中待部署的目标合约的合约标识(合约名称、合约编号等)和合约具体内容(即部署合约的代码)。
88.在本技术实施例中,进行合约部署的目标用户节点可以一个也可以是多个,若目标用户节点是多个,则上述步骤201中“接收目标用户节点在区块链网络中的合约部署请求”可以是:若目标用户节点为多个,接收至少一个目标用户节点在区块链网络中的合约部署请求,其中,合约部署请求包括各个目标用户节点在区块链网络中的私钥,以及节点标识。此时,步骤205“基于代理合约确定在区块链网络中进行合约部署的已部署次数”可以是:基于代理合约确定在区块链网络中各目标用户节点进行合约部署的已部署次数,步骤206“若待部署次数和已部署次数的部署次数总和不超过次数阈值,通过代理合约在区块链网络中部署目标合约”可以是:若各目标用户节点对应的已部署次数和待部署次数的各部署次数总和不超过次数阈值,通过代理合约基于各目标用户节点在区块链网络中的私钥,以及节点标识部署目标合约。
89.步骤202、获取由区块链网络的管理员节点部署的代理合约,代理合约用于根据合约部署请求在区块链网络中部署目标合约。
90.在本技术实施例中,在获取代理合约之前,需要先由管理员节点在区块链网络中部署代理合约,其中,管理员节点可以是用户节点中的一个,也可以独立于用户节点,即在上述步骤202“获取由管理员节点部署的代理合约”之前还包括:
91.在区块链网络包括的多个用户节点中确定管理员节点;
92.通过管理员节点接收用户节点在区块链网络中首次进行合约部署的合约首次部署请求;
93.通过管理员节点基于合约首次部署请求在区块链网络中部署代理合约。
94.在本技术实施例中,管理员节点的确定方法不受限制,管理员节点可以是由相关技术人员在区块链网络中指定的一个用户节点,也可以是通过预定规则(例如,多签权限管理、网络资源最好等)选举的用户节点。管理员节点的数量也可以不受限制,可以是一个或多个。
95.在本技术实施例中,合约首次部署请求是区块链网络中的所有用户节点中的一个用户节点第一次进行合约部署时发送的合约部署请求,当管理员节点接收该请求之后,在
区块链网络中部署代理合约。为了进行合约部署次数的限制,可以在代理合约中设置在区块链网络中进行合约部署的次数阈值,并且实时记录在区块链网络中进行合约部署的已部署次数。此外,为了使得用户节点可以通过代理合约在区块链网络进行合约部署,还可以在代理合约中设置进行合约部署的方法。
96.在本技术实施例中,为了减少代理合约的部署,减少代理合约的资源占用,区块链网络中可以只具有一个代理合约,所有进行合约部署的用户节点都通过一个代理合约获取次数阈值、已部署次数,并且都调用一个代理合约中的合约部署方法进行合约部署。
97.在本技术实施例中,为了避免代理合约使用频繁,也可以是每个进行合约部署的用户节点对应一个代理合约,即每个用户节点首次在区块链网络中进行合约部署时,通过管理员节点在区块链网络中部署该用户节点对应的代理合约,该用户节点每次在区块链网络中部署合约时,都通过对应的代理合约进行次数的判断,以及合约部署方法的调用。
98.在本技术的一种实施方式中,也可以是用户节点每次在区块链网络中进行合约部署时,管理员节点都部署一个代理合约。
99.步骤203、在代理合约中获取在区块链网络中进行合约部署的次数阈值。
100.在本技术实施例中,可以在代理合约中设置每个用户节点可以在区块链网络中进行合约部署的最大次数,即第一次数阈值,当次数阈值为第一次数阈值,上述在步骤203“在代理合约中获取在区块链网络中进行合约部署的次数阈值”之前,还可以包括:通过管理员节点接收目标用户节点发送的第一次数限制信息,第一次数限制信息包括目标用户节点在区块链网络中进行合约部署的第一次数阈值;通过管理员节点在代理合约中设置第一次数阈值。此时,上述步骤203“在代理合约中获取在区块链网络中进行合约部署的次数阈值”包括:在代理合约中获取目标用户节点在区块链网络中进行合约部署的第一次数阈值。
101.在本技术实施例中,每个用户节点在区块链网络中进行合约部署的第一次数阈值可以是用户节点自身确定的,然后向管理员节点发送第一次数限制信息,使得管理员节点获取第一次数阈值。
102.在本技术实施例中,为了更好地管理每个用户节点在区块链网络中的合约部署次数,可以统一设置每个用户节点的第一次数阈值。其中,每个用户节点对应的第一次数阈值可以相同,也可以不同。
103.在本技术实施例中,可以在代理合约中设置预设时间内(例如,一天)所有的用户节点可在区块链网络中进行合约部署的总次数,即第二次数阈值,从而避免在区块链网络中部署的合约较多。当次数阈值为第二次数阈值,上述步骤203中“在代理合约中获取在区块链网络中进行合约部署的次数阈值”之前,还可以包括:通过管理员节点在代理合约中设置预设时间内可部署用户节点在区块链网络中进行合约部署的第二次数阈值,可部署用户节点包括多个用户节点中在区块链网络具有合约部署权限的用户节点。此时,上述步骤203“在代理合约中获取在区块链网络中进行合约部署的次数阈值”可以是:在代理合约中获取可部署用户节点在区块链网络进行合约部署的第二次数阈值。
104.步骤204、基于目标合约的个数获取目标用户节点当前在区块链网络中进行合约部署的待部署次数。
105.在本技术实施例中,由于用户节点一次部署一个目标合约,即表明目标合约的个数和目标用户节点即将在区块链网络中进行合约部署的待部署次数相同,因此可以根据合
约部署请求中确定目标合约的个数,然后目标合约的个数即为目标用户节点的待部署次数。
106.步骤205、基于代理合约确定在区块链网络中进行合约部署的已部署次数。
107.在本技术实施例中,合约部署请求包括目标用户节点在区块链网络中的目标节点标识,当次数阈值是第一次数阈值时,已部署次数为目标用户节点在区块链网络中已经部署合约的第一已部署次数,此时上述步骤205“基于代理合约确定在区块链网络中进行合约部署的已部署次数”可以是基于目标节点标识在代理合约中获取目标用户节点在区块链网络中进行合约部署的第一已部署次数。
108.在本技术实施例中,当次数阈值是第二次数阈值时,已部署次数可以为预设时间内区块链网络中已经部署合约的第二已部署次数,此时上述步骤205中“基于代理合约确定在区块链网络中进行合约部署的已部署次数”可以是基于代理合约获取可部署用户节点在预设时间内在区块链网络中进行合约部署的第二已部署次数。
109.步骤206、若待部署次数和已部署次数的部署次数总和不超过次数阈值,通过代理合约在区块链网络中部署目标合约。
110.在本技术实施例中,若待部署次数和已部署次数的部署次数总和不超过次数阈值,则目标用户节点在区块链网络中进行合约部署的已部署次数没有超过目标用户节点可以在区块链网络中进行合约部署的最大次数,且目标用户节点在当前时刻进行合约部署的待部署次数没有超过目标用户节点还可以在区块链网络中进行合约部署的次数,表明目标用户节点还可以在区块链网络中部署目标合约。
111.在本技术实施例中,在已部署次数是第一已部署次数的情况下,且次数阈值为目标用户节点在区块链网络中进行合约部署的第一次数阈值,若待部署次数和第一已部署次数的第一部署次数总和超过第一次数阈值,则表明目标用户节点不能当前不能在区块链网络中部署目标合约。此时,为了避免目标用户节点的一些重要合约不能在区块链网络中部署,管理员节点可以增加目标用户节点在区块链网络中可以进行合约部署的最大次数,即管理员节点可以在代理合约中增加原先设定的第一次数阈值。为了使目标用户节点可以在当前部署目标合约,并且控制目标用户节点在区块链网络中部署合约的次数,可以将第一次数阈值更改为允许目标用户节点部署目标合约的最小值,具体可以是:
112.若待部署次数和第一已部署次数的第一部署次数总和超过第一次数阈值,通过管理员节点确定第一部署次数总和与第一次数阈值之间的次数差值;
113.通过管理员节点发起次数增加交易,次数增加交易包括次数差值;
114.对次数增加交易执行上链处理,以触发区块链网络根据次数增加交易在代理合约中将第一次数阈值与次数差值求和,得到更新后的第一次数阈值。
115.在本技术实施例中,为了实时准确地记录目标用户节点在区块链网络中进行合约部署的已部署次数,当目标用户节点在区块链网络中部署了目标合约之后,表明目标用户节点在区块链网络中进行合约部署的已部署次数发生改变,需要更新已部署次数,具体方法可以是:
116.获取第一已部署次数和待部署次数的第一部署次数总和;
117.基于目标节点标识在代理合约中将第一已部署次数更新为第一部署次数总和。
118.在本技术实施例中,合约部署请求包括可部署目标合约的候选节点标识,上述步
骤206中“通过代理合约在区块链网络中部署目标合约”可以是:
119.根据合约部署请求获取目标用户节点在区块链网络中的目标节点标识;
120.若目标节点标识属于候选节点标识,通过管理员节点在代理合约中创建目标合约对应的合约部署方法;
121.通过目标用户节点调用代理合约中的合约部署方法;
122.基于合约部署方法在区块链网络中部署目标合约。
123.在本技术实施例中,当在区块链网络中部署目标合约之后,具有调用目标合约权限的用户节点可以调用目标合约完成一系列功能,具有调用目标合约权限的用户节点需要获取目标合约在区块链网络中的合约地址,因此,在完成目标合约的部署之后,需要向具有调用目标合约权限的用户节点发送目标合约的合约地址,具体合约部署请求包括可调用目标合约的调用用户节点在区块链网络中的调用节点标识,上述步骤206“通过代理合约在区块链网络中部署目标合约”之后还可以包括:根据调用节点标识向调用用户节点反馈目标合约在区块链网络中的目标合约地址,以使调用用户节点根据目标合约地址调用目标合约,其中,一个目标合约对应一个目标合约地址。
124.在本技术实施例中,为了避免具有调用目标合约权限的用户节点进行多次无用的调用,使得网络资源浪费,可以限制每个具有调用目标合约权限的用户节点对目标合约的调用次数,即可以在合约部署请求包括目标合约的最大可调用次数,具体可以是:
125.接收目标调用用户节点发送的合约调用请求,合约调用请求包括目标调用用户节点的目标调用节点标识和针对目标合约的待调用次数;
126.若调用节点标识包括目标调用节点标识,在代理合约中获取目标合约的已调用次数;
127.计算当前调用次数和已调用次数的调用次数总和;
128.若调用次数总和小于等于最大可调用次数,实现目标调用用户节点调用目标合约。
129.上述所有的技术方案,可以采用任意结合形成本技术的可选实施例,在此不再一一赘述。
130.本技术实施例提供的区块链中部署合约的方法,区块链网络中的用户节点不能直接在区块链网络中部署合约,当目标用户节点想要在区块链网络中部署目标合约时,需要通过代理合约判断区块链网络中已经进行合约部署的已部署次数和目标用户节点当前想要进行合约部署的待部署次数,没有超过可以在区块链网络中进行合约部署的次数阈值,才能进一步通过代理合约部署目标合约,从而限制了用户节点在区块链网络中进行合约部署的次数,可以有效地减少区块链网络中同样功能的区块链合约有多个,避免区块链网络中的合约混乱和无效合约过多。
131.请参阅图3,图3为本技术实施例提供的区块链中部署合约的方法的另一流程示意图。该方法的具体流程可以如下:
132.在区块链网络的用户节点中确定管理员节点,管理员节点在区块链网络中部署代理合约,代理合约中记录进行合约部署的用户节点在区块链网络中可部署合约的第一次数阈值和已部署合约的第一已部署次数,当接收到用户的合约部署请求时,通过第一次数阈值、第一已部署次数以及当前进行合约部署的待部署次数确定目标用户节点可以在区块链
网络中进行合约部署,在代理合约中部署目标合约1对应的合约部署方法,以及目标合约n对应的合约部署方法,用户节点调用代理合约中目标合约1对应的合约部署方法在区块链网络中部署用户合约1,调用代理合约中目标合约n对应的合约部署方法在区块链网络中部署用户合约n。
133.上述所有的技术方案,可以采用任意结合形成本技术的可选实施例,在此不再一一赘述。
134.本技术实施例提供的区块链中部署合约的方法,区块链网络中的用户节点不能直接在区块链网络中部署合约,当目标用户节点想要在区块链网络中部署目标合约时,需要通过代理合约判断区块链网络中已经进行合约部署的已部署次数和目标用户节点当前想要进行合约部署的待部署次数,没有超过可以在区块链网络中进行合约部署的次数阈值,才能进一步通过代理合约部署目标合约,从而限制了用户节点在区块链网络中进行合约部署的次数,可以有效地减少区块链网络中同样功能的区块链合约有多个,避免区块链网络中的合约混乱和无效合约过多。
135.为便于更好的实施本技术实施例的区块链中部署合约的方法,本技术实施例还提供一种合约部署装置。请参阅图4,图4为本技术实施例提供的合约部署装置的结构示意图。该合约部署装置应用于具有多个用户节点的区块链网络,用户节点中包括管理员节点,可以包括接收单元401、合约获取单元402、次数阈值获取单元403、待部署次数获取单元404、已部署次数获取单元405和部署单元406。
136.其中,接收单元401,用于接收目标用户节点在区块链网络中的合约部署请求,合约部署请求用于指示将目标用户节点待部署的至少一个目标合约在区块链网络中进行部署;
137.合约获取单元402,用于获取由区块链网络的管理员节点部署的代理合约,代理合约用于根据合约部署请求在区块链网络中部署目标合约;
138.次数阈值获取单元403,用于在代理合约中获取在区块链网络中进行合约部署的次数阈值;
139.待部署次数获取单元404,用于基于目标合约的个数获取目标用户节点当前在区块链网络中进行合约部署的待部署次数;
140.已部署次数获取单元405,用于基于代理合约确定在区块链网络中进行合约部署的已部署次数;
141.部署单元406,用于若待部署次数和已部署次数的部署次数总和不超过次数阈值,通过代理合约在区块链网络中部署目标合约。
142.可选的,合约获取单元402还用于:
143.在区块链网络包括的多个用户节点中确定管理员节点;
144.通过管理员节点接收用户节点在区块链网络中首次进行合约部署的合约首次部署请求;
145.通过管理员节点基于合约首次部署请求在区块链网络中部署代理合约。
146.可选的,次数阈值包括第一次数阈值,次数阈值获取单元403还用于:
147.通过管理员节点接收目标用户节点发送的第一次数限制信息,第一次数限制信息包括目标用户节点在区块链网络中进行合约部署的第一次数阈值;
148.通过管理员节点在代理合约中设置第一次数阈值;
149.在代理合约中获取目标用户节点在区块链网络中进行合约部署的第一次数阈值。
150.可选的,合约部署请求包括目标用户节点在区块链网络中的目标节点标识,已部署次数为第一已部署次数,已部署次数获取单元405还用于:
151.基于目标节点标识在代理合约中获取目标用户节点在区块链网络中进行合约部署的第一已部署次数。
152.可选的,次数阈值包括目标用户节点在区块链网络中进行合约部署的第一次数阈值,装置还用于:
153.若待部署次数和第一已部署次数的第一部署次数总和超过第一次数阈值,通过管理员节点确定第一部署次数总和与第一次数阈值之间的次数差值;
154.通过管理员节点发起次数增加交易,次数增加交易包括次数差值;
155.对次数增加交易执行上链处理,以触发区块链网络根据次数增加交易在代理合约中将第一次数阈值与次数差值求和,得到更新后的第一次数阈值。
156.可选的,部署单元406还用于:
157.获取第一已部署次数和待部署次数的第一部署次数总和;
158.基于目标节点标识在代理合约中将第一已部署次数更新为第一部署次数总和。
159.可选的,合约部署请求包括可部署目标合约的候选节点标识,部署单元406还用于:
160.根据合约部署请求获取目标用户节点在区块链网络中的目标节点标识;
161.若目标节点标识属于候选节点标识,通过管理员节点在代理合约中创建目标合约对应的合约部署方法;
162.通过目标用户节点调用代理合约中的合约部署方法;
163.基于合约部署方法在区块链网络中部署目标合约。
164.可选的,次数阈值包括第二次数阈值,次数阈值获取单元403还用于:
165.通过管理员节点在代理合约中设置预设时间内可部署用户节点在区块链网络中进行合约部署的第二次数阈值,可部署用户节点包括多个用户节点中在区块链网络具有合约部署权限的用户节点;
166.在代理合约中获取可部署用户节点在区块链网络进行合约部署的第二次数阈值。
167.可选的,已部署次数为第二已部署次数,已部署次数获取单元405还用于:
168.基于代理合约获取可部署用户节点在预设时间内在区块链网络中进行合约部署的第二已部署次数。
169.可选的,接收单元401还用于:
170.若目标用户节点不具有在区块链网络中进行合约部署的合约部署权限,通过管理员节点发起节点增加交易,节点增加交易用于使目标用户节点具有合约部署权限;
171.对节点增加交易执行上链处理,以触发区块链网络根据节点增加交易为目标用户节点设置合约部署权限。
172.可选的,合约部署请求包括可调用目标合约的调用用户节点在区块链网络中的调用节点标识,部署单元406还用于:
173.根据调用节点标识向调用用户节点反馈目标合约在区块链网络中的目标合约地
址,以使调用用户节点根据目标合约地址调用目标合约,其中,一个目标合约对应一个目标合约地址。
174.可选的,合约部署请求包括目标合约的最大可调用次数,装置还用于:
175.接收目标调用用户节点发送的合约调用请求,合约调用请求包括目标调用用户节点的目标调用节点标识和针对目标合约的待调用次数;
176.若调用节点标识包括目标调用节点标识,在代理合约中获取目标合约的已调用次数;
177.计算当前调用次数和已调用次数的调用次数总和;
178.若调用次数总和小于等于最大可调用次数,实现目标调用用户节点调用目标合约。
179.可选的,接收单元401还用于:
180.若目标用户节点为多个,接收至少一个目标用户节点在区块链网络中的合约部署请求,其中,合约部署请求包括各目标用户节点在区块链网络中的私钥,以及节点标识;
181.已部署次数获取单元405还用于:
182.基于代理合约确定在区块链网络中各目标用户节点进行合约部署的已部署次数;
183.部署单元406还用于:
184.若各目标用户节点对应的已部署次数和待部署次数的各部署次数总和不超过次数阈值,通过代理合约基于各目标用户节点在区块链网络中的私钥,以及节点标识部署目标合约。
185.上述所有的技术方案,可以采用任意结合形成本技术的可选实施例,在此不再一一赘述。
186.本技术实施例提供的合约部署装置,区块链网络中的用户节点不能直接在区块链网络中部署合约,当目标用户节点想要在区块链网络中部署目标合约时,需要通过代理合约判断区块链网络中已经进行合约部署的已部署次数和目标用户节点当前想要进行合约部署的待部署次数,没有超过可以在区块链网络中进行合约部署的次数阈值,才能进一步通过代理合约部署目标合约,从而限制了用户节点在区块链网络中进行合约部署的次数,可以有效地减少区块链网络中同样功能的区块链合约有多个,避免区块链网络中的合约混乱和无效合约过多。
187.相应的,本技术实施例还提供一种计算机设备,该计算机设备可以为终端,该终端可以为智能手机、平板电脑、笔记本电脑、触控屏幕、游戏机、个人计算机、个人数字助理等终端设备。如图5所示,图5为本技术实施例提供的计算机设备的结构示意图。该计算机设备500包括有一个或者一个以上处理核心的处理器501、有一个或一个以上计算机可读存储介质的存储器502及存储在存储器502上并可在处理器上运行的计算机程序。其中,处理器501与存储器502电性连接。本领域技术人员可以理解,图中示出的计算机设备结构并不构成对计算机设备的限定,可以包括比图示更多或更少的部件,或者组合某些部件,或者不同的部件布置。
188.处理器501是计算机设备500的控制中心,利用各种接口和线路连接整个计算机设备500的各个部分,通过运行或加载存储在存储器502内的软件程序和/或模块,以及调用存储在存储器502内的数据,执行计算机设备500的各种功能和处理数据,从而对计算机设备
500进行整体监控。
189.在本技术实施例中,计算机设备500中的处理器501会按照如下的步骤,将一个或一个以上的应用程序的进程对应的指令加载到存储器502中,并由处理器501来运行存储在存储器502中的应用程序,从而实现各种功能:
190.接收目标用户节点在区块链网络中的合约部署请求,合约部署请求用于指示将目标用户节点待部署的至少一个目标合约在区块链网络中进行部署;
191.获取由区块链网络的管理员节点部署的代理合约,代理合约用于根据合约部署请求在区块链网络中部署目标合约;
192.在代理合约中获取在区块链网络中进行合约部署的次数阈值;
193.基于目标合约的个数获取目标用户节点当前在区块链网络中进行合约部署的待部署次数;
194.基于代理合约确定在区块链网络中进行合约部署的已部署次数;
195.若待部署次数和已部署次数的部署次数总和不超过次数阈值,通过代理合约在区块链网络中部署目标合约。
196.以上各个操作的具体实施可参见前面的实施例,在此不再赘述。
197.可选的,如图5所示,计算机设备500还包括:触控显示屏503、射频电路504、音频电路505、输入单元506以及电源507。其中,处理器501分别与触控显示屏503、射频电路504、音频电路505、输入单元506以及电源507电性连接。本领域技术人员可以理解,图5中示出的计算机设备结构并不构成对计算机设备的限定,可以包括比图示更多或更少的部件,或者组合某些部件,或者不同的部件布置。
198.触控显示屏503可用于显示图形用户界面以及接收用户作用于图形用户界面产生的操作指令。触控显示屏503可以包括显示面板和触控面板。其中,显示面板可用于显示由用户输入的信息或提供给用户的信息以及计算机设备的各种图形用户接口,这些图形用户接口可以由图形、文本、图标、视频和其任意组合来构成。可选的,可以采用液晶显示器(liquid crystal display,lcd)、有机发光二极管(organic light-emitting diode,oled)等形式来配置显示面板。触控面板可用于收集用户在其上或附近的触摸操作(比如用户兑现手指、触笔等任何适合的物体或附件在触控面板上或在触控面板附近的操作),并生成相应的操作指令,且操作指令执行对应程序。可选的,触控面板可包括触摸检测装置和触摸控制器两个部分。其中,触摸检测装置检测用户的触摸方位,并检测触摸操作带来的信号,将信号传送给触摸控制器;触摸控制器从触摸检测装置上接收触摸信息,并将它转换成触点坐标,再送给处理器501,并能接收处理器501发来的命令并加以执行。触控面板可覆盖显示面板,当触控面板检测到在其上或附近的触摸操作后,传送给处理器501以确定触摸事件的类型,随后处理器501根据触摸事件的类型在显示面板上提供相应的视觉输出。在本技术实施例中,可以将触控面板与显示面板集成到触控显示屏503而实现输入和输出功能。但是在某些实施例中,触控面板与触控面板可以作为两个独立的部件来实现输入和输出功能。即触控显示屏503也可以作为输入单元506的一部分实现输入功能。
199.射频电路504可用于收发射频信号,以通过无线通信与网络设备或其他计算机设备建立无线通讯,与网络设备或其他计算机设备之间收发信号。
200.音频电路505可以用于通过扬声器、传声器提供用户与计算机设备之间的音频接
口。音频电路505可将接收到的音频数据转换后的电信号,传输到扬声器,由扬声器转换为声音信号输出;另一方面,传声器将收集的声音信号转换为电信号,由音频电路505接收后转换为音频数据,再将音频数据输出处理器501处理后,经射频电路504以发送给比如另一计算机设备,或者将音频数据输出至存储器502以便进一步处理。音频电路505还可能包括耳塞插孔,以提供外设耳机与计算机设备的通信。
201.输入单元506可用于接收输入的数字、字符信息或用户特征信息(例如指纹、虹膜、面部信息等),以及产生与用户设置以及功能控制有关的键盘、鼠标、操作杆、光学或者轨迹球信号输入。
202.电源507用于给计算机设备500的各个部件供电。可选的,电源507可以通过电源管理系统与处理器501逻辑相连,从而通过电源管理系统实现管理充电、放电、以及功耗管理等功能。电源507还可以包括一个或一个以上的直流或交流电源、再充电系统、电源故障检测电路、电源转换器或者逆变器、电源状态指示器等任意组件。
203.尽管图5中未示出,计算机设备500还可以包括摄像头、传感器、无线保真模块、蓝牙模块等,在此不再赘述。
204.在上述实施例中,对各个实施例的描述都各有侧重,某个实施例中没有详述的部分,可以参见其他实施例的相关描述。
205.由上可知,本实施例提供的计算机设备,区块链网络中的用户节点不能直接在区块链网络中部署合约,当目标用户节点想要在区块链网络中部署目标合约时,需要通过代理合约判断区块链网络中已经进行合约部署的已部署次数和目标用户节点当前想要进行合约部署的待部署次数,没有超过可以在区块链网络中进行合约部署的次数阈值,才能进一步通过代理合约部署目标合约,从而限制了用户节点在区块链网络中进行合约部署的次数,可以有效地减少区块链网络中同样功能的区块链合约有多个,避免区块链网络中的合约混乱和无效合约过多。
206.本领域普通技术人员可以理解,上述实施例的各种方法中的全部或部分步骤可以通过指令来完成,或通过指令控制相关的硬件来完成,该指令可以存储于一计算机可读存储介质中,并由处理器进行加载和执行。
207.为此,本技术实施例提供一种计算机可读存储介质,其中存储有多条计算机程序,该计算机程序能够被处理器进行加载,以执行本技术实施例所提供的任一种区块链中部署合约的方法中的步骤。例如,该计算机程序可以执行如下步骤:
208.接收目标用户节点在区块链网络中的合约部署请求,合约部署请求用于指示将目标用户节点待部署的至少一个目标合约在区块链网络中进行部署;
209.获取由区块链网络的管理员节点部署的代理合约,代理合约用于根据合约部署请求在区块链网络中部署目标合约;
210.在代理合约中获取在区块链网络中进行合约部署的次数阈值;
211.基于目标合约的个数获取目标用户节点当前在区块链网络中进行合约部署的待部署次数;
212.基于代理合约确定在区块链网络中进行合约部署的已部署次数;
213.若待部署次数和已部署次数的部署次数总和不超过次数阈值,通过代理合约在区块链网络中部署目标合约。
214.以上各个操作的具体实施可参见前面的实施例,在此不再赘述。
215.其中,该存储介质可以包括:只读存储器(read only memory,rom)、随机存取记忆体(random access memory,ram)、磁盘或光盘等。
216.由于该存储介质中所存储的计算机程序,可以执行本技术实施例所提供的任一种区块链中部署合约的方法中的步骤,因此,可以实现本技术实施例所提供的任一种区块链中部署合约的方法所能实现的有益效果,详见前面的实施例,在此不再赘述。
217.在上述实施例中,对各个实施例的描述都各有侧重,某个实施例中没有详述的部分,可以参见其他实施例的相关描述。
218.以上对本技术实施例所提供的一种区块链中部署合约的方法、装置、计算机设备及存储介质进行了详细介绍,本文中应用了具体个例对本发明的原理及实施方式进行了阐述,以上实施例的说明只是用于帮助理解本发明的技术方案及其核心思想;本领域的普通技术人员应当理解:其依然可以对前述各实施例所记载的技术方案进行修改,或者对其中部分技术特征进行等同替换;而这些修改或者替换,并不使相应技术方案的本质脱离本发明各实施例的技术方案的范围。
再多了解一些

本文用于企业家、创业者技术爱好者查询,结果仅供参考。

发表评论 共有条评论
用户名: 密码:
验证码: 匿名发表

相关文献