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

一种数据上链方法和装置与流程

2022-02-21 09:33:32 来源:中国专利 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.图1为本技术实施例的数据上链方法流程图;
29.图2为本技术实施例的数据上链方法示意图;
30.图3为本技术实施例的数据上链装置组成框图。
具体实施方式
31.本技术描述了多个实施例,但是该描述是示例性的,而不是限制性的,并且对于本领域的普通技术人员来说显而易见的是,在本技术所描述的实施例包含的范围内可以有更多的实施例和实现方案。尽管在附图中示出了许多可能的特征组合,并在具体实施方式中进行了讨论,但是所公开的特征的许多其它组合方式也是可能的。除非特意加以限制的情
况以外,任何实施例的任何特征或元件可以与任何其它实施例中的任何其他特征或元件结合使用,或可以替代任何其它实施例中的任何其他特征或元件。
32.本技术包括并设想了与本领域普通技术人员已知的特征和元件的组合。本技术已经公开的实施例、特征和元件也可以与任何常规特征或元件组合,以形成由权利要求限定的独特的发明方案。任何实施例的任何特征或元件也可以与来自其它发明方案的特征或元件组合,以形成另一个由权利要求限定的独特的发明方案。因此,应当理解,在本技术中示出和/或讨论的任何特征可以单独地或以任何适当的组合来实现。因此,除了根据所附权利要求及其等同替换所做的限制以外,实施例不受其它限制。此外,可以在所附权利要求的保护范围内进行各种修改和改变。
33.此外,在描述具有代表性的实施例时,说明书可能已经将方法和/或过程呈现为特定的步骤序列。然而,在该方法或过程不依赖于本文所述步骤的特定顺序的程度上,该方法或过程不应限于所述的特定顺序的步骤。如本领域普通技术人员将理解的,其它的步骤顺序也是可能的。因此,说明书中阐述的步骤的特定顺序不应被解释为对权利要求的限制。此外,针对该方法和/或过程的权利要求不应限于按照所写顺序执行它们的步骤,本领域技术人员可以容易地理解,这些顺序可以变化,并且仍然保持在本技术实施例的精神和范围内。
34.本技术实施例提供了一种数据上链方法,如图1所示,所述方法可以包括步骤s101-s102:
35.s101、确定设备端具有新的待上链数据时,在对所述新的待上链数据进行上链之前,检测预设的本地存储空间中是否存在上链失败数据;所述本地存储空间设置为保存上链失败数据;
36.s102、当检测到所述本地存储空间中存在上链失败数据时,对所述上链失败数据和所述新的待上链数据进行拼接,并对拼接后的数据进行上链。
37.在本技术的示例性实施例中,当检测到所述本地存储空间中不存在上链失败数据时,所述方法还可以包括:
38.根据预先定义的数据字典,直接对所述新的待上链数据按照先后顺序进行拼接,并对拼接后的数据进行上链;
39.其中,所述数据字典是所述设备端和区块链端通过合约预先定义好的。
40.在本技术的示例性实施例中,本地存储空间为设备端预先设置的专门的文件夹,该本地存储空间中按先后顺序保存的都是上链失败数据。
41.在本技术的示例性实施例中,在设备端每次数据上链失败以后,可以将该次的上链失败数据按照顺序写入预设的本地文件中。
42.在本技术的示例性实施例中,每条上链失败数据可以包括但不限于:上链失败设备的设备号、订单号、数据内容等。例如:
43.第一条数据:设备号、订单号、数据1、数据2;
44.第二条数据:设备号、订单号、数据1、数据2。
45.在本技术的示例性实施例中,当设备端任意的设备存在新的待上链数据需要上链时,可以首先检测该本地存储空间中是否存在以前上链失败保存的上链失败数据,如果检测该本地存储空间中存在以前上链失败保存的上链失败数据,则将这些上链失败数据与该新的待上链数据一起拼接进行上链;如果检测该本地存储空间中不存在以前上链失败保存
的上链失败数据,则直接对该新的待上链数据进行拼接并进行上链。
46.在本技术的示例性实施例中,所述对所述上链失败数据和所述新的待上链数据进行拼接,可以包括:
47.根据预先定义的数据字典,对所述上链失败数据按照先后顺序进行拼接后,将所述新的待上链数据按照先后顺序拼接在所述上链失败数据之后。
48.在本技术的示例性实施例中,无论是对上链失败数据和该新的待上链数据一起拼接,还是直接对该新的待上链数据进行拼接,均可以采用数据字典按照每条数据的先后顺序进行拼接。
49.在本技术的示例性实施例中,该数据字典就是设备端和智能合约端(即区块链端)双方根据项目实际需求进行设计,设备端和智能合约端按同一设计定义数据字典。设备端根据双方定义好的数据字典进行上链数据的拼接,区块链端的智能合约根据数据字典解析数据。
50.在本技术的示例性实施例中,在对数据进行拼接时,可以根据实际情况进行拼接,尽量减少重复字段,比如每个设备的设备号是固定不变的,拼接数据中只需要有一个设备号即可,以尽量减少资源占用。
51.在本技术的示例性实施例中,所述方法还可以包括:在对拼接后的数据上链后,检测数据上链是否成功。
52.在本技术的示例性实施例中,所述检测数据上链是否成功,可以包括:
53.判断数据上链后是否返回交易哈希;
54.如果没有返回所述交易哈希,则判定数据上链可能失败,则根据上链结果再次检测数据上链是否成功;
55.如果返回所述交易哈希,则判定数据上链成功。
56.在本技术的示例性实施例中,在数据上链时,如果数据上链成功,一般会返回一个交易哈希,因此,可以根据该交易哈希判断当前数据上链是否成功。收到该交易哈希,可以判定数据上链成功,未收到该交易哈希,可以初步判断数据上链失败。由于未收到交易哈希不止数据上链失败一种事件可以造成,还可能是由于其他原因,为了避免误判,此时可以进一步根据上链结果再次检测数据上链是否成功,即,检测区块链端是否接收到上链数据。
57.在本技术的示例性实施例中,所述根据上链结果再次检测数据上链是否成功,可以包括:
58.向区块链端发送数据获取消息,以通过所述数据获取信息从所述区块链端获取数据上链时向所述区块链端发送的上链数据;
59.当从所述区块链端获取到数据上链时向所述区块链端发送的上链数据时,确定数据上链成功;
60.当未从所述区块链端获取到数据上链时向所述区块链端发送的上链数据时,确定数据上链失败。
61.在本技术的示例性实施例中,在验证上连结果时,可以调用智能合约接口,向区块链端发送消息(即所述的数据获取消息),以获取前面所述的上链数据。
62.在本技术的示例性实施例中,在数据上链失败以后,所述方法还可以包括:将所述新的待上链数据保存到所述本地存储空间中,并保留所述本地存储空间中原有的上链失败
数据。
63.在本技术的示例性实施例中,在设备端,当确定上链失败以后,则将该新的待上链数据按照先后顺序保存在本地存储空间的末尾,该本地文件中原有的上链失败数据不会删除。
64.在本技术的示例性实施例中,在数据上链成功以后,所述方法还可以包括:在所述设备端将所述本地存储空间中保存的全部上链失败数据删除,并丢弃所述新的待上链数据。
65.在本技术的示例性实施例中,数据上链成功后,表示拼接后的数据做为一个整体全都上链成功,设备端可以删除该本地存储空间中的所有数据,并且会丢弃当前的这条新的待上链数据。
66.在本技术的示例性实施例中,在数据上链成功以后,所述方法还可以包括:由所述区块链端根据所述数据字典对所述区块链端获得的上链数据进行解析。
67.在本技术的示例性实施例中,如图2所示,下面给出本技术实施例的一个具体实施例,可以包括步骤s201-s214:
68.s201、开始;
69.s202、设备端有一条新的待上链数据需要上链;
70.s203、读取设备端的本地文件中是否有上链失败数据(本地存储空间中按先后顺序保存的都是上链失败数据),如果有数据,则进入步骤s204;如果没有数据,则直接运行步骤s205;
71.s204、读取本地存储空间中的所有数据;
72.s205、根据数据字典对所有数据按先后顺序进行拼接;(设备端和区块链端智能合约事先已经定义好了的数据字典)
73.s206、对拼接后的数据上链;
74.s207、判断数据上链后是否返回交易哈希;如果没有返回交易哈希,判定交易可能失败,进入步骤s208以验证上链结果;如果有返回交易哈希,进入步骤s211;
75.s208、调用智能合约接口,向区块链端发送消息,以获取前面的上链数据;
76.s209、判断是否获取到上链数据?如果没有获取到上链数据,进入步骤s210;如果获取到上链数据,进入步骤s210;
77.s210、判定数据上链失败,进入步骤s212;
78.s211、判定数据上链成功,进入步骤s213;
79.s212、把这条新的待上链数据保存到本地存储空间的末尾,本地文件中原有的数据不会删除;之后进入步骤s214;
80.s213、数据上链成功后,表示拼接后的数据作为一个整体全都上链成功,设备端删除本地存储空间中的所有数据,并且会丢弃这条新的待上链数据;之后进入步骤s214;
81.s214、结束。
82.本技术实施例还提供了一种数据上链装置1,如图3所示,可以包括处理器11和计算机可读存储介质12,所述计算机可读存储介质12中存储有指令,当所述指令被所述处理器11执行时,实现上述任意一项所述的数据上链方法。
83.在本技术的示例性实施例中,前述的方法实施例中的任意实施例均适用于该装置
实施例中,在此不再一一赘述。
84.本领域普通技术人员可以理解,上文中所公开方法中的全部或某些步骤、系统、装置中的功能模块/单元可以被实施为软件、固件、硬件及其适当的组合。在硬件实施方式中,在以上描述中提及的功能模块/单元之间的划分不一定对应于物理组件的划分;例如,一个物理组件可以具有多个功能,或者一个功能或步骤可以由若干物理组件合作执行。某些组件或所有组件可以被实施为由处理器,如数字信号处理器或微处理器执行的软件,或者被实施为硬件,或者被实施为集成电路,如专用集成电路。这样的软件可以分布在计算机可读介质上,计算机可读介质可以包括计算机存储介质(或非暂时性介质)和通信介质(或暂时性介质)。如本领域普通技术人员公知的,术语计算机存储介质包括在用于存储信息(诸如计算机可读指令、数据结构、程序模块或其他数据)的任何方法或技术中实施的易失性和非易失性、可移除和不可移除介质。计算机存储介质包括但不限于ram、rom、eeprom、闪存或其他存储器技术、cd-rom、数字多功能盘(dvd)或其他光盘存储、磁盒、磁带、磁盘存储或其他磁存储装置、或者可以用于存储期望的信息并且可以被计算机访问的任何其他的介质。此外,本领域普通技术人员公知的是,通信介质通常包含计算机可读指令、数据结构、程序模块或者诸如载波或其他传输机制之类的调制数据信号中的其他数据,并且可包括任何信息递送介质。
再多了解一些

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

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

相关文献