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

数据上链方法、系统、电子设备及存储介质与流程

2022-02-19 07:51:12 来源:中国专利 TAG:


1.本发明实施例涉及区块链领域,特别涉及一种数据上链方法、系统、电子设备及存储介质。


背景技术:

2.区块链可以看作一个分布式的共享账本和数据库,具有去中心化、不可篡改、全程留痕、可以追溯、集体维护、公开透明等特点。这些特点保证了区块链的“诚实”与“透明”,为区块链创造信任奠定基础。而区块链丰富的应用场景,基本上都基于区块链能够解决信息不对称问题,实现多个主体之间的协作信任与一致行动。为了进一步实现区块链技术的“去中心化”,智能合约技术被提出,智能合约是一种计算机协议,旨在以数字化的方式促进、验证或执行合约谈判和履行。数据上链的终端基于智能合约进行上链可以在没有第三方参与的情况下为可信交易提供保障。
3.在一些数据上链方法中,每个智能合约有一个对应的地址,终端基于此地址访问对应的智能合约,并且,智能合约一旦部署一个地址后不可变更,当智能合约根据用户的需求进行更新升级后,会被部署到新地址,但终端无法获知智能合约的更新,无法获取到新地址,也就无法基于新的智能合约进行上链。因此,为了使终端基于实际可用的智能合约进行上链,终端中存有智能合约名称,在每次数据上链时,采用智能合约名称解析服务发起名称解析查询得到实际可用的智能合约地址,根据得到的地址进行数据上链。
4.因此,在这种数据上链方法存在以下问题:终端在数据上链发起名称解析时,需要耗费一定区块链资源,导致数据上链成本较高。


技术实现要素:

5.本发明实施方式的目的在于提供一种数据上链方法、系统、电子设备及存储介质,可以减少终端数据上链耗费的区块链资源,降低终端数据上链成本。
6.为解决上述技术问题,本发明的实施方式提供了一种数据上链方法,应用于终端,方法包括:当有数据需要上链时,若终端内缓存有智能合约地址,比较当前时刻t是否小于t
n
;其中,终端中存储有缓存的智能合约地址的失效时刻t
n
,t
n
是t
e
与t
l
t的较小值,其中,t
l
是终端上一次调用智能合约名称解析服务的时刻,t
e
是终端在t
l
时刻查询到的智能合约地址的作废时刻,t是缓存的智能合约地址的最大有效时长;若t>t
n
,或者,t=t
n
,则重新调用智能合约名称解析服务发起名称解析,基于本次解析得到的地址进行数据上链,并根据更新后的t
l
的值和更新后的t
e
的值,重新确定t
n
;其中,更新后的t
l
的值为当前时刻t的值,更新后的t
e
的值为本次获取的智能合约地址的作废时刻;若t<t
n
,则基于缓存的智能合约地址进行数据上链。
7.为解决上述技术问题,本发明的实施方式还提供了一种数据上链方法,应用于区块链节点,区块链节点部署有智能合约且智能合约包含有智能合约地址的作废时刻t
e
,方法包括:在智能合约地址新的作废时刻t
e
到来时,在智能合约名称解析服务中将智能合约
名称的名称解析结果映射至新的智能合约地址;其中,t
e
≥t
d
t,t
d
是指区块链节点将智能合约中旧的智能合约地址的作废时刻更新为新的作废时刻t
e
的时间点,t是智能合约地址缓存在与区块链节点连接的终端中的最大有效时长。
8.为解决上述技术问题,本发明的实施方式还提供了一种数据上链方法,包括:当有数据需要上链时,若终端内缓存有智能合约地址,比较当前时刻t是否小于t
n
;其中,终端中存储有缓存的智能合约地址的失效时刻t
n
,t
n
是t
e
与t
l
t的较小值,其中,t
l
是终端上一次调用智能合约名称解析服务的时刻,t
e
是终端在t
l
时刻查询到的智能合约地址的作废时刻,t是缓存的智能合约地址的最大有效时长;若t>t
n
,或者,t=t
n
,则终端重新调用智能合约名称解析服务发起名称解析,基于本次解析得到的地址进行数据上链,并根据更新后的t
l
的值和更新后的t
e
的值,重新确定t
n
;其中,更新后的t
l
的值为当前时刻t的值,更新后的t
e
的值为本次获取的智能合约地址的作废时刻;若t<t
n
,则终端基于缓存的智能合约地址进行数据上链;在智能合约地址新的作废时刻t
e
到来时,区块链节点在智能合约名称解析服务中将智能合约名称的名称解析结果映射至新的智能合约地址;其中,区块链节点部署有智能合约且智能合约包含有智能合约地址的作废时刻t
e
,t
e
≥t
d
t,t
d
是指区块链节点将智能合约中旧的智能合约地址的作废时刻更新为新的作废时刻t
e
的时间点。
9.本发明的实施方式还提供了一种数据上链方法,应用于终端,包括:终端的本地缓存中存在智能合约地址的情况下,周期性地根据本地缓存中的智能合约地址获取智能合约地址的作废时刻t
e
;当t
e
到达时,调用智能合约名称解析服务发起名称解析,重新获取智能合约地址,并将本地缓存中的智能合约地址更新为重新获取的智能合约地址;当有数据需要上链时,基于本地缓存中的智能合约地址进行数据上链。
10.本发明的实施方式还提供了一种数据上链方法,包括:在终端的本地缓存中存在智能合约地址的情况下,终端周期性地根据本地缓存中的智能合约地址获取智能合约地址的作废时刻t
e
;当t
e
到达时,终端调用智能合约名称解析服务发起名称解析,重新获取智能合约地址,并将本地缓存中的智能合约地址更新为重新获取的智能合约地址;当有数据需要上链时,终端基于本地缓存中的智能合约地址进行数据上链;在智能合约地址新的作废时刻t
e
到来时,区块链节点在智能合约名称解析服务中将智能合约名称的名称解析结果映射至新的智能合约地址;其中,区块链节点部署有智能合约且智能合约包含有智能合约地址的作废时刻t
e
,t
e
≥t
d
t,t
d
是指区块链节点将智能合约中旧的智能合约地址的作废时刻更新为新的作废时刻t
e
的时间点,t是智能合约地址缓存在与区块链节点连接的终端中的最大有效时长。
11.本发明的实施方式还提供了一种数据上链系统,包括终端和区块链节点;其中,终端,用于当有数据需要上链时,若终端内缓存有智能合约地址,比较当前时刻t是否小于t
n
;其中,终端中存储有缓存的智能合约地址的失效时刻t
n
,t
n
是t
e
与t
l
t的较小值,其中,t
l
是终端上一次调用智能合约名称解析服务的时刻,t
e
是终端在t
l
时刻查询到的智能合约地址的作废时刻,t是缓存的智能合约地址的最大有效时长;若t>t
n
,或者,t=t
n
,则重新调用智能合约名称解析服务发起名称解析,基于本次解析得到的地址进行数据上链,并根据更新后的t
l
的值和更新后的t
e
的值,重新确定t
n
;其中,更新后的t
l
的值为当前时刻t的值,更新后的t
e
的值为本次获取的智能合约地址的作废时刻;若t<t
n
,则基于缓存的智能合约地址进行数据上链;区块链节点,用于在智能合约地址新的作废时刻t
e
到来时,区块链节点在智能
合约名称解析服务中将智能合约名称的名称解析结果映射至新的智能合约地址;其中,区块链节点部署有智能合约且智能合约包含有智能合约地址的作废时刻t
e
,t
e
≥t
d
t,t
d
是指区块链节点将智能合约中旧的智能合约地址的作废时刻更新为新的作废时刻t
e
的时间点。
12.本发明的实施方式还提供了一种数据上链系统,包括终端和区块链节点;其中,终端,用于在终端的本地缓存中存在智能合约地址的情况下,终端周期性地根据本地缓存中的智能合约地址获取智能合约地址的作废时刻t
e
;当t
e
到达时,终端调用智能合约名称解析服务发起名称解析,重新获取智能合约地址,并将本地缓存中的智能合约地址更新为重新获取的智能合约地址;当有数据需要上链时,终端基于本地缓存中的智能合约地址进行数据上链;区块链节点,用于在智能合约地址新的作废时刻t
e
到来时,区块链节点在智能合约名称解析服务中将智能合约名称的名称解析结果映射至新的智能合约地址;其中,区块链节点部署有智能合约且智能合约包含有智能合约地址的作废时刻t
e
,t
e
≥t
d
t,t
d
是指区块链节点将智能合约中旧的智能合约地址的作废时刻更新为新的作废时刻t
e
的时间点,t是智能合约地址缓存在与区块链节点连接的终端中的最大有效时长。
13.本发明的实施方式还提供了一种电子设备,包括:至少一个处理器;与至少一个处理器通信连接的存储器;存储器存储有可被至少一个处理器执行的指令,指令被至少一个处理器执行,以使至少一个处理器能够执行上述的应用于终端的数据上链方法,或者,应用于区块链节点的数据上链方法。
14.本发明的实施方式还提供了一种计算机可读存储介质,存储有计算机程序,计算机程序被处理器执行时实现上述的应用于终端的数据上链方法,或者,应用于区块链节点的数据上链方法。
15.本发明实施方式的数据上链方法,由于在t>t
n
,或者,t=t
n
时,终端会重新调用智能合约名称解析服务发起名称解析,基于本次解析得到的地址进行数据上链,以更新后的t
l
的值为当前时刻t的值,更新后的t
e
的值为本次获取的智能合约地址的作废时刻,根据更新后的t
l
的值和更新后的t
e
的值,重新确定t
n
。可以保证终端中存储的地址一定是可用的智能合约的地址,从而保证终端进行数据上链的成功率,在t<t
n
,终端基于缓存的智能合约地址进行数据上链,此时,终端不需要进行名称解析即可完成数据上链,从而可以降低终端进行名称解析的频次,确保在不过多降低智能合约有效性的同时,减少终端数据上链耗费的区块链与网络资源,降低终端数据上链成本。
附图说明
16.一个或多个实施例通过与之对应的附图中的图片进行示例性说明,这些示例性说明并不构成对实施例的限定,附图中具有相同参考数字标号的元件表示为类似的元件,除非有特别申明,附图中的图不构成比例限制。
17.图1是根据本发明一实施例提供的应用于终端的数据上链方法流程图一;
18.图2是根据本发明一实施例提供的数据上链方法流程图一;
19.图3是根据本发明一实施例提供的应用于终端的数据上链方法流程图二;
20.图4是根据本发明一实施例提供的数据上链方法流程图二;
21.图5是根据本发明一实施例提供的数据上链方法系统示意图;
22.图6是根据本发明一实施例提供的电子设备结构示意图。
具体实施方式
23.为使本发明实施例的目的、技术方案和优点更加清楚,下面将结合附图对本发明的各实施方式进行详细的阐述。然而,本领域的普通技术人员可以理解,在本发明各实施方式中,为了使读者更好地理解本技术而提出了许多技术细节。但是,即使没有这些技术细节和基于以下各实施方式的种种变化和修改,也可以实现本技术所要求保护的技术方案。以下各个实施例的划分是为了描述方便,不应对本发明的具体实现方式构成任何限定,各个实施例在不矛盾的前提下可以相互结合相互引用。
24.本发明的实施例涉及一种数据上链方法,具体流程如图1所示:
25.步骤101,当有数据需要上链时,若终端内缓存有智能合约地址,比较当前时刻t是否小于t
n
;其中,终端中存储有缓存的智能合约地址的失效时刻t
n
,t
n
是t
e
与t
l
t的较小值,其中,t
l
是终端上一次调用智能合约名称解析服务的时刻,t
e
是终端在t
l
时刻查询到的智能合约地址的作废时刻,t是缓存的智能合约地址的最大有效时长;
26.步骤102

1,若t>t
n
,或者,t=t
n
,则重新调用智能合约名称解析服务发起名称解析,基于本次解析得到的地址进行数据上链,并根据更新后的t
l
的值和更新后的t
e
的值,重新确定t
n
;其中,更新后的t
l
的值为当前时刻t的值,更新后的t
e
的值为本次获取的智能合约地址的作废时刻;
27.步骤102

2,若t<t
n
,则基于缓存的智能合约地址进行数据上链。
28.本实施例的数据上链方法,应用于终端,终端是数据上链系统中的终端,可以是手机、电脑或者充电桩之类的物联网终端等,终端和区块链节点通信连接,终端需要基于智能合约才能向区块链节点进行上链,智能合约被预先部署在区块链节点中,终端中预存有使用的智能合约名称,终端通过向区块链智能合约名称解析服务发起名称解析查询得到智能合约地址,就能根据智能合约的地址,使用智能合约接口使数据上链到区块链节点。
29.一些数据上链方法,由于区块链节点在更新智能合约,即部署、启用新的智能合约,使旧的智能合约作废后,并不会告知终端,终端无法获知智能合约的更新,因此,即使区块链节点中已经启用新智能合约,终端也无法获知,也无法获取新的智能合约,这就导致终端无法使用新的智能合约进行数据上链,从而导致终端上链失败。因此,终端中存储有预设的终端使用的智能合约的智能合约名称,终端在每次数据上链时,通过解析预设的智能合约名称获取并存储智能合约的地址,智能合约名称由区块链节点映射至智能合约地址,终端根据智能合约地址,使用智能合约接口使数据上链到区块链节点。
30.而本实施例中,由于在t>t
n
,或者,t=t
n
时,终端会重新调用智能合约名称解析服务发起名称解析,基于本次解析得到的地址进行数据上链,以更新后的t
l
的值为当前时刻t的值,更新后的t
e
的值为本次获取的智能合约地址的作废时刻,根据更新后的t
l
的值和更新后的t
e
的值,重新确定t
n
。可以保证终端中存储的地址一定是可用的智能合约的地址,从而保证终端进行数据上链的成功率,在t<t
n
,终端基于缓存的智能合约地址进行数据上链,此时,终端不需要进行名称解析即可完成数据上链,从而可以降低终端进行名称解析的频次,确保在不过多降低智能合约有效性的同时,减少终端数据上链耗费的区块链与网络资源,降低终端数据上链成本。
31.下面对本实施方式的数据上链方法的实现细节进行具体的说明,以下内容仅为方便理解提供的实现细节,并非实施本方案的必须。
32.在步骤101中,终端在有数据需要上链时,若终端内缓存有智能合约地址,比较当前时刻t是否小于t
n

33.具体地,数据上链就是终端将自己内部的数据,上传至区块链节点中进行存储,使其随时可查询且不可篡改。其中,终端可以选择将自己内部的数据全部上链或者部分上链。终端可以实时将新生成的数据进行上链,也可以以一个固定的周期,将周期内生成的数据进行上链,还可以在终端满足一定条件,例如,当数据存储量到达预设容量后,将存储的数据进行上链。
34.终端内部存储可以有一个或者若干个智能合约名称,每次进行数据上链时,终端需要选定本次上链需要使用的智能合约名称,才能使用选定的智能合约进行上链。其中,终端需要通过合约管理服务进行名称解析,才能获取选定的智能合约的智能合约地址。根据智能合约地址,终端才能获得智能合约地址对应的t
n
。t
n
是t
e
与t
l
t的较小值,其中,t
l
是终端上一次调用智能合约名称解析服务的时刻,终端根据步骤101比较得到的t与t
n
的大小关系,判断执行步骤102

1或者步骤102

2。
35.在一个例子中,当有数据需要上链时,若终端内未缓存有智能合约地址,则调用智能合约名称解析服务发起名称解析,基于本次解析得到的地址进行数据上链;将t
l
的值初始化为当前时刻t的值,将t
e
的值初始化为本次获取的智能合约地址的作废时刻,将t
n
的值初始化为t
e
与t
l
t的较小值。
36.本实施例中,在终端内未缓存有智能合约地址时,通过调用智能合约名称解析服务发起名称解析,基于本次解析得到的地址进行数据上链,将t
l
的值初始化为当前时刻t的值,将t
e
的值初始化为本次获取的智能合约地址的作废时刻,将t
n
的值初始化为t
e
与t
l
t的较小值,保证终端在需要数据上链时,一定存在可用的地址,从而终端可以获取到可用的智能合约进行数据上链,确保了所访问智能合约地址的有效性,降低终端数据上链失败率。
37.在步骤102

1中,若t>t
n
,或者,t=t
n
,则终端重新调用智能合约名称解析服务发起名称解析,基于本次解析得到的地址进行数据上链,并根据更新后的t
l
的值和更新后的t
e
的值,重新确定t
n
;其中,更新后的t
l
的值为当前时刻t的值,更新后的t
e
的值为本次获取的智能合约地址的作废时刻。
38.具体地,在t>t
n
,或者,t=t
n
时,终端中缓存的智能合约地址过期,此智能合约可能已经作废,或者需要更新作废时间,继续使用此智能合约地址会存在上链失败的风险,因此,终端需要重新发起名称解析,并重新确定t
n
,供下一次上链使用。
39.在步骤102

2中,若t<t
n
,则终端基于缓存的智能合约地址进行数据上链。
40.具体地,终端在每次进行名称解析后,都会将名称解析得到的地址存储在终端内部中,在每次解析得到地址后,都会获取并存储地址,如果当前时间早于t
n
,即,当前时间早于地址过期时刻,且,当前时间早于智能合约的作废时刻t
e
,那么,终端在此次数据上链时,不需要再智能合约名称进行解析得到地址,直接使用上一次解析的智能合约地址对应的合约进行上链。其中,终端可以将地址存储在非易失性存储器中,也可以将地址存储在缓存中。
41.本发明的实施例涉及一种数据上链方法,应用于区块链节点,包括以下步骤:
42.在智能合约地址新的作废时刻t
e
到来时,在智能合约名称解析服务中将智能合约名称的名称解析结果映射至新的智能合约地址;其中,t
e
≥t
d
t,t
d
是指区块链节点将智能
合约中旧的智能合约地址的作废时刻更新为新的作废时刻t
e
的时间点,t是智能合约地址缓存在与区块链节点连接的终端中的最大有效时长。
43.本实施例的数据上链方法,应用于区块链节点,区块链节点和终端通信连接,区块链节点部署有智能合约且智能合约包含有智能合约地址的作废时刻t
e

44.在一个例子中,t
e
可以由智能合约的发布者在首次部署智能合约时将智能合约地址的作废时刻t
e
的初始值设置为无穷大,当智能合约根据用户的需求进行更新升级时,发布者在t
d
时刻宣布,宣布的意思是指发布者将智能合约中旧的智能合约地址的作废时刻更新为新的作废时刻t
e
。宣布后,终端可向智能合约查询获得t
e
。其中,t
e
应满足t
e
>t
d
t。
45.不难发现,本实施是与应用于终端的数据上链方法对应的实用于区块链节点的方法,本实施例可与应用于终端的实施例互相配合实施。应用于终端的实施例中提到的相关技术细节在本实施例中依然有效。相应地,本实施例中提到的相关技术细节也可应用在应用于终端的实施例中。
46.本发明的实施例涉及一种数据上链方法,如图2所示,包括以下步骤:
47.步骤201,当有数据需要上链时,若终端内缓存有智能合约地址,比较当前时刻t是否小于t
n
;其中,终端中存储有缓存的智能合约地址的失效时刻t
n
,t
n
是t
e
与t
l
t的较小值,其中,t
l
是终端上一次调用智能合约名称解析服务的时刻,t
e
是终端在t
l
时刻查询到的智能合约地址的作废时刻,t是缓存的智能合约地址的最大有效时长;
48.步骤202

1,若t>t
n
,或者,t=t
n
,则终端重新调用智能合约名称解析服务发起名称解析,基于本次解析得到的地址进行数据上链,并根据更新后的t
l
的值和更新后的t
e
的值,重新确定t
n
;其中,更新后的t
l
的值为当前时刻t的值,更新后的t
e
的值为本次获取的智能合约地址的作废时刻;
49.步骤202

2,若t<t
n
,则终端基于缓存的智能合约地址进行数据上链;
50.步骤203,在智能合约地址新的作废时刻t
e
到来时,区块链节点在智能合约名称解析服务中将智能合约名称的名称解析结果映射至新的智能合约地址;其中,区块链节点部署有智能合约且智能合约包含有智能合约地址的作废时刻t
e
,t
e
≥t
d
t,t
d
是指区块链节点将智能合约中旧的智能合约地址的作废时刻更新为新的作废时刻t
e
的时间点。
51.其中,为了方便画图,将步骤203作为步骤202后的步骤,在实际实施中,步骤203可以发生在步骤201或者步骤202任何一个步骤前后。
52.在一个例子中,当有数据需要上链时,若终端内未缓存有智能合约地址,则终端调用智能合约名称解析服务发起名称解析,基于本次解析得到的地址进行数据上链;终端将t
l
的值初始化为当前时刻t的值,将t
e
的值初始化为本次获取的智能合约地址的作废时刻,将t
n
的值初始化为t
e
与t
l
t的较小值。
53.为了更好的理解上述方法,我们假设预设的作废时长t是7天,发布者在10月5日10:00更新智能合约地址的作废时刻,由于作废时刻必须满足t
e
>t
d
t,所以发布者更新的作废时刻必须是晚于10月12日10:00,比如更新作废时刻为10月13日10:00,这样区块链侧会在10月13日10:00将智能合约名称的名称解析结果映射至新的智能合约地址。
54.假设当前时刻t为10月5日10:00分,上一次进行智能合约名称解析的时刻t
l
是10月1日10:00分,预设的作废时长t是7天,上一次进行智能合约名称解析获取到的t
e
为无穷大,由于t
l
t<t
e
,所以缓存的智能合约地址失效时刻t
n
为t
l
t,即10月8日10:00,由于t<t
n

所以终端只需要基于10月1日10:00进行智能合约名称解析并缓存在终端中的智能合约地址进行数据上链,不需要进行智能合约名称解析服务。
55.假设当前时刻t为10月10日10:00,上一次进行智能合约名称解析的时刻t
l
是10月1日10:00分,预设的作废时长t是7天,上一次进行智能合约名称解析获取到的t
e
为无穷大,由于t
l
t<t
e
,所以缓存的智能合约地址失效时刻t
n
为t
l
t,即10月8日10:00,由于t>t
n
,所以终端需要重新进行智能合约名称解析,存储本次解析得到的地址,基于本次解析得到的地址进行数据上链,同时,终端也能获取到智能合约的作废时间t
e
为10月13日10:00,由于t
l
t>t
e,
将缓存的智能合约地址失效时刻t
n
10月8日10:00更新为10月13日10:00。
56.假设终端在10月15日10:00时需要再次进行数据上链,由于t>t
n
,所以终端需要重新进行智能合约名称解析,存储本次解析得到的地址,基于本次解析得到的地址进行数据上链,并根据新获取的新的智能合约地址的作废时刻t
e’与当前时刻t
l
(10月15日10:00) t得到的10月22日10:00比较,更新t
n
,供下一次数据上链时使用。在后续的数据上链过程中重复以上过程。
57.本发明的实施例涉及一种数据上链方法,如图3所示,包括以下步骤:
58.步骤301,在终端的本地缓存中存在智能合约地址的情况下,周期性地根据本地缓存中的智能合约地址获取智能合约地址的作废时刻t
e

59.步骤302,当t
e
到达时,调用智能合约名称解析服务发起名称解析,重新获取智能合约地址,并将本地缓存中的智能合约地址更新为重新获取的智能合约地址;
60.步骤303,当有数据需要上链时,基于本地缓存中的智能合约地址进行数据上链。
61.本实施例的数据上链方法,应用于终端,终端和区块链节点通信连接,区块链节点部署有智能合约及智能合约地址作废时刻t
e
,其中,为了方便画图,将三个步骤排列为步骤301、步骤302、步骤303,在实际实施中,各步骤的发生顺序可以是这三个步骤的任何排列组合。
62.本实施例的数据上链方法,由于终端在每个周期时间都更新t
e
,可以保证终端在数据上链时使用的智能合约地址是有效的,从而终端可以在未到t
e
时,都基于缓存中的地址访问区块链节点,从而不需要进行名称解析,即,在非必要时,不进行智能合约地址解析,可以降低终端进行名称解析的频次,从而减少终端数据上链耗费的区块链资源,降低终端数据上链成本。
63.在一个例子中,在本地缓存中不存在智能合约地址的情况下,终端调用智能合约名称解析服务发起名称解析,获取智能合约地址,并将智能合约地址存储至本地缓存中。本实施例中,通过在本地缓存中不存在智能合约地址的情况下,调用智能合约名称解析服务发起名称解析,获取智能合约地址,并将智能合约地址存储至本地缓存中,可以使终端获取初始可用的地址和地址对应的智能合约的作废时间,即,获取一个可用的智能合约供终端进行数据上链,保证终端在开机后的任意时刻都可以获取到实际可用的智能合约进行数据上链,降低终端数据上链失败率。
64.本发明的实施例涉及一种数据上链方法,如图4所示,包括以下步骤:
65.步骤401,在终端的本地缓存中存在智能合约地址的情况下,终端周期性地根据本地缓存中的智能合约地址获取智能合约地址的作废时刻t
e

66.步骤402,当t
e
到达时,终端调用智能合约名称解析服务发起名称解析,重新获取
智能合约地址,并将本地缓存中的智能合约地址更新为重新获取的智能合约地址;
67.步骤403,当有数据需要上链时,终端基于本地缓存中的智能合约地址进行数据上链;
68.步骤404,在智能合约地址新的作废时刻t
e
到来时,区块链节点在智能合约名称解析服务中将智能合约名称的名称解析结果映射至新的智能合约地址;其中,区块链节点部署有智能合约且智能合约包含有智能合约地址的作废时刻t
e
,t
e
≥t
d
t,t
d
是指区块链节点将智能合约中旧的智能合约地址的作废时刻更新为新的作废时刻t
e
的时间点,t是智能合约地址缓存在与区块链节点连接的终端中的最大有效时长。
69.其中,为了方便画图,将四个步骤排列为步骤401、步骤402、步骤403、步骤404,在实际实施中,各步骤的发生顺序可以是这四个步骤的任何排列组合。
70.在一个例子中,假设终端上一次进行名称解析的时刻t
l
是9月29日10:05分,预设的周期t是7天,若智能合约部署时未被设置智能合约地址作废时间t
e
,则终端下一次进行名称解析的时间是10月6日10:05分,并在间隔t后,再次进行名称解析,更新获取的智能合约地址和t
e
,若在终端上一次进行名称解析时刻t
l
是9月29日10:05分获取的智能合约地址作废时间t
e
为10月9日22:05分,则终端在10月6日10:05分进行名称解析后,在10月9日22:05分需要再次发起名称解析,更新获取的智能合约地址和t
e
。不论终端在何时进行数据上链,都基于需要上链的当前时间的上一次进行名称解析时获取的智能合约地址(即本地缓存中的智能合约地址)进行上链。
71.上面各种方法的步骤划分,只是为了描述清楚,实现时可以合并为一个步骤或者对某些步骤进行拆分,分解为多个步骤,只要包括相同的逻辑关系,都在本专利的保护范围内;对算法中或者流程中添加无关紧要的修改或者引入无关紧要的设计,但不改变其算法和流程的核心设计都在该专利的保护范围内。
72.本发明的实施例涉及一种数据上链系统,如图5所示,包括:终端501和区块链节点502;
73.在一个例子中,终端501,用于当有数据需要上链时,若终端501内缓存有智能合约地址,比较当前时刻t是否小于t
n
;其中,终端501中存储有缓存的智能合约地址的失效时刻t
n
,t
n
是t
e
与t
l
t的较小值,其中,t
l
是终端501上一次调用智能合约名称解析服务的时刻,t
e
是终端501在t
l
时刻查询到的智能合约地址的作废时刻,t是缓存的智能合约地址的最大有效时长;若t>t
n
,或者,t=t
n
,则重新调用智能合约名称解析服务发起名称解析,基于本次解析得到的地址进行数据上链,并根据更新后的t
l
的值和更新后的t
e
的值,重新确定t
n
;其中,更新后的t
l
的值为当前时刻t的值,更新后的t
e
的值为本次获取的智能合约地址的作废时刻;若t<t
n
,则基于缓存的智能合约地址进行数据上链;
74.区块链节点502,用于在智能合约地址新的作废时刻t
e
到来时,区块链节点502在智能合约名称解析服务中将智能合约名称的名称解析结果映射至新的智能合约地址;其中,区块链节点502部署有智能合约且智能合约包含有智能合约地址的作废时刻t
e
,t
e
≥t
d
t,t
d
是指区块链节点502将智能合约中旧的智能合约地址的作废时刻更新为新的作废时刻t
e
的时间点。
75.在一个例子中,终端501还用于,当有数据需要上链时,若终端501内未缓存有智能合约地址,则调用智能合约名称解析服务发起名称解析,基于本次解析得到的地址进行数
据上链;将t
l
的值初始化为当前时刻t的值,将t
e
的值初始化为本次获取的智能合约地址的作废时刻,将t
n
的值初始化为t
e
与t
l
t的较小值。
76.在另一个例子中,终端501,用于在终端501的本地缓存中存在智能合约地址的情况下,终端501周期性地根据本地缓存中的智能合约地址获取智能合约地址的作废时刻t
e
;当t
e
到达时,终端501调用智能合约名称解析服务发起名称解析,重新获取智能合约地址,并将本地缓存中的智能合约地址更新为重新获取的智能合约地址;当有数据需要上链时,终端501基于本地缓存中的智能合约地址进行数据上链;
77.区块链节点502,用于在智能合约地址新的作废时刻t
e
到来时,区块链节点502在智能合约名称解析服务中将智能合约名称的名称解析结果映射至新的智能合约地址;其中,区块链节点502部署有智能合约且智能合约包含有智能合约地址的作废时刻t
e
,t
e
≥t
d
t,t
d
是指区块链节点502将智能合约中旧的智能合约地址的作废时刻更新为新的作废时刻t
e
的时间点,t是智能合约地址缓存在与区块链节点502连接的终端501中的最大有效时长。
78.在一个例子中,终端501还用于,在本地缓存中不存在智能合约地址的情况下,调用智能合约名称解析服务发起名称解析,获取智能合约地址,并将智能合约地址存储至本地缓存中。
79.不难发现,本实施例为与上述实施例相对应的系统实施例,本实施例可与上述实施例互相配合实施。上述实施例中提到的相关技术细节在本实施例中依然有效,为了减少重复,这里不再赘述。相应地,本实施例中提到的相关技术细节也可应用在上述实施例中。
80.本发明的实施例还涉及一种电子设备,如图6所示,包括:至少一个处理器601;与至少一个处理器通信连接的存储器602;其中,存储器602存储有可被至少一个处理器601执行的指令,指令被至少一个处理器601执行上述的方法实施例。
81.其中,存储器602和处理器601采用总线方式连接,总线可以包括任意数量的互联的总线和桥,总线将一个或多个处理器601和存储器602的各种电路连接在一起。总线还可以将诸如外围设备、稳压器和功率管理电路等之类的各种其他电路连接在一起,这些都是本领域所公知的,因此,本文不再对其进行进一步描述。总线接口在总线和收发机之间提供接口。收发机可以是一个元件,也可以是多个元件,比如多个接收器和发送器,提供用于在传输介质上与各种其他装置通信的单元。经处理器601处理的信息通过天线在无线介质上进行传输,进一步,天线还接收信息并将信息传送给处理器601。
82.处理器601负责管理总线和通常的处理,还可以提供各种功能,包括定时,外围接口,电压调节、电源管理以及其他控制功能。而存储器602可以被用于存储处理器在执行操作时所使用的信息。
83.本发明的实施例涉及一种计算机可读存储介质,存储有计算机程序。计算机程序被处理器执行时实现上述方法实施例。
84.即,本领域技术人员可以理解,实现上述实施例方法中的全部或部分步骤是可以通过程序来指令相关的硬件来完成,该程序存储在一个存储介质中,包括若干指令用以使得一个设备(可以是单片机,芯片等)或处理器(processor)执行本技术各个实施例方法的全部或部分步骤。而前述的存储介质包括:u盘、移动硬盘、只读存储器(rom,read

only memory)、随机存取存储器(ram,random access memory)、磁碟或者光盘等各种可以存储程序代码的介质。
85.本领域的普通技术人员可以理解,上述各实施方式是实现本发明的具体实施例,而在实际应用中,可以在形式上和细节上对其作各种改变,而不偏离本发明的精神和范围。
再多了解一些

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

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

相关文献