[0038] 下面将结合本发明实施例中的附图,结合具体发明实施例对本发明实施例中的技术方案作进一步解释和说明。
[0039] 本发明实施例提供一种基于区块链的时序数据处理方法及存储系统可以应用于基于区块链对时序数据进行传输和存储的场景,特别在于可以基于时序数据保留策略来实现冷热数据的分类处理。
[0040] 如图1所示,一种基于区块链的冷热时序数据分类存储系统,包括多链数据传输模块、内容哈希存储模块:
[0041] 所述的多链数据传输模块基于多链,根据设定的数据保留时间和数据传输通道的数目构造多条自动生成和自动销毁即具有生命周期的数据链即数据传输通道,输入的时序数据直接以内容形式存储在数据传输通道的区块文件中;
[0042] 所述的内容哈希存储模块,构造单条一直存在的数据传输通道即存证链,输入的时序数据内容都会以内容哈希形式存储在内容哈希存储模块的区块文件中。内容哈希存储模块包含多个过期数据区块,其过期数据区块中的信息是对多链数据传输模块中过期数据链的数据进行内容哈希所得到的结果,每个过期数据区块对应一个过期数据传输通道。
[0043] 进一步的,每条数据链即数据传输通道会与多个区块链节点关联,经过权限认证的区块链节点可以在所授权的数据传输通道进行时序数据的存取,在数据传输通道关联的各个区块链节点在其本地都会维护一份该数据传输通道内时序数据的账本。
[0044] 所述的数据传输通道内时序数据的账本,包含该数据传输通道的时间分区、该数据传输通道内的时序数据和时序数据的数据所属节点。
[0045] 进一步的,多链数据传输模块中的数据传输通道内的时序数据账本在与该数据传输通道关联的每个区块链节点都备份了全部数据,而在数据传输通道过期后,关联的每个区块链节点仅保留属于其自身的数据,减少了数据的备份,但同时不能避免之后相关区块链节点失联后所造成的数据丢失。
[0046] 一种基于区块链的冷热时序数据分类处理方法,包括以下步骤:
[0047] 步骤(1)设定时序数据保留策略;
[0048] 对数据保留时间和数据传输通道的数目进行设定,通过配置文件进行配置。
[0049] 数据保留时间,为单个数据传输通道的数据保留时间。
[0050] 数据传输通道,根据数据传输通道的数目生成数据传输通道;数据传输通道与数据保留时间结合,得到每个数据传输通道的所属时间分区。
[0051] 步骤(2)根据上传的时序数据的时间参数,区别热点数据与冷门数据;
[0052] 根据预先设定的阈值对时序数据进行区别,当时序数据的时间参数小于设定的阈值则判定时序数据为热点数据,当时序数据的时间参数大于等于设定的阈值则判定时序数据为冷门数据。
[0053] 所述的时序数据包含时间参数和数据所属节点。
[0054] 步骤(3)当时序数据为热点数据时,将时序数据输入时序数据存储系统的多链数据传输模块中;在输入至最新的数据传输通道前,根据最新的数据传输通道的时间分区和时序数据的时间参数和数据所属节点对时序数据添加标签。
[0055] 当时序数据为冷门数据时,将时序数据通过内容哈希存储在时序数据存储系统的内容哈希存储模块中。
[0056] 步骤(4)当多链数据传输模块中的数据传输通道超过数据保留时间确定的生命周期后将会进行数据传输通道的销毁,并生成新的处理不同时间区间的数据传输通道;数据传输通道的数目是固定;
[0057] 内容哈希存储模块在数据传输通道销毁时进行数据添加,数据传输通道发送过期信号给关联的各区块链节点;各区块链节点对属于其自身的时序数据进行内容哈希;时序数据存储系统基于共识算法对与该数据传输通道关联的各区块链节点的内容哈希对比达成共识;达成共识后,将时间分区、数据所属节点、内容哈希存到存证链上。
[0058] 进一步的,所述内容哈希存储模块的中时序数据的获取步骤如下:
[0059] 根据查询的时间区间,在存证链上获取对应的节点信息和内容哈希;根据节点信息获取时间区间内的数据,在获取所有节点的数据后,对获得的时序数据、数据所属节点以及时间区间进行内容哈希,检查得到内容哈希是否和链上的内容哈希进行比对。如果哈希比对一致,则获取数据完整并正确;否则数据可能不完整或者数据中途得到篡改。
[0060] 多链数据传输模块中的数据传输通道内的时序数据账本在与该数据传输通道关联的每个区块链节点都备份了全部数据,而在数据传输通道过期后,关联的每个区块链节点仅保留属于其自身的数据,减少了数据的备份,但同时不能避免之后相关区块链节点失联后所造成的数据丢失。
[0061] 下面将结合附图2,对本发明实施例提供的基于区块链的冷热时序数据分类存储系统的完整存储流程进行详细介绍。
[0062] 需要说明的,整个基于区块链的冷热时序数据分类存储系统的完整存储流程涉及到客户端即区块链节点、多链数据传输模块、内容哈希数据存储模块,这里只对数据传输、存储过程作详细说明,对诸如具体共识过程、网络传输、应用形式等方面不做讨论。
[0063] 如图2所示,触发冷热时序数据分类存储任务后,执行数据存储的流程为:
[0064] 1)、客户端将时序数据上传到多链数据传输模块;
[0065] 2)、多链数据传输模块从上传的时序数据中获取时间参数,基于时序数据保留策略得到相关时间分区,再根据时间分区获取数据传输通道信息;
[0066] 3)、多链数据传输模块将时序数据存储结果返回给客户端。同时,多链数据传输模块在获取的数据传输通道内进行数据共享,该数据传输通道相关联的区块链节点可以同步上传的时序数据。
[0067] 4)、多链数据传输模块中的数据传输通道的生命周期结束后,数据传输通道过期;
[0068] 5)、数据传输通道过期后,数据传输通道相关联的区块链节点利用共识模块进行数据共识;
[0069] 6)、在达成数据共识后,选中的区块链节点对通道内的数据账本中的时序数据内容进行哈希,将得到内容哈希和该数据传输通道的时序数据和时间分区存证到内容哈希数据存储模块的存证链上。
[0070] 7)、在内容哈希数据存储模块完成数据存证后,将存证结果返回到多链数据传输模块;
[0071] 8)、得到存证结果后,多链数据传输模块将对应的过期的数据传输通道销毁并生成新的数据传输通道,等待新的时序数据上传。同时过期的数据传输通道相关联的区块链节点将不属于自身的时序数据删除。
[0072] 下面将结合附图3,对本发明实施例提供的基于区块链的冷热时序数据分类存储系统的完整数据查询流程进行详细介绍。
[0073] 需要说明的,整个基于区块链的冷热时序数据分类存储系统的完整数据查询流程涉及到客户端即区块链节点、多链数据传输模块、内容哈希数据存储模块三个方面,这里只对数据传输、存储过程作详细说明,对诸如具体共识过程、网络传输、应用形式等方面不做讨论。
[0074] 如图3所示,触发冷热时序数据分类查询任务后,执行数据查询的流程为:
[0075] 1)、客户端发出时序数据查询请求至多链数据传输模块,请求中包含待查询时序数据对应的时间区间数据;
[0076] 2)、多链数据传输模块得到对应时间区间,基于时序数据保留策略,检查当前维护的数据传输通道中是否有匹配对象。如果有匹配对象,则为热点数据,并进行热点数据查询流程;如果匹配对象,则为冷门数据,需要转到内容哈希数据存储模块来进行数据查询。
[0077] 3)、当待查询数据为热点数据时,转到匹配的数据传输通道中,获取本地账本中维护的对应时序数据即可。
[0078] 4)、当待查询数据为冷门数据时,则将数据查询任务委托给内容哈希存储模块进行数据查询,所述的任务中的数据包括处理后的客户端上传的请求中的时间区间数据,即在请求中的时间区间数据中删除热点数据包含的时间区间。
[0079] 5)、内容哈希数据存储模块在接到数据查询请求后,将得到时间区间数据与当前存证链中的区块中的时间区间数据进行比对,在查询到对应区块信息后,将对应区块信息传回客户端,所述的对应区块信息包括时序数据哈希、时序数据所属节点信息以及时间区间信息。
[0080] 6)、客户端收到传回的区块信息后,根据其中的时序数据所属节点信息和时间区间信息,与各区块链节点进行点对点通信,获取对应时间区间内的时序数据信息。
[0081] 得到所有时序数据信息后,对其进行内容哈希,与传回的区块信息中的时序数据哈希进行对比。
[0082] 如果哈希比对一致,则获取数据完整并正确;否则数据可能不完整或者数据中途得到篡改。
[0083] 以上所示为对本发明的较佳实施例,但本发明的权利并不能仅以此例来限定,熟悉该领域的相关技术人员做出的相关等同变化,仍包含在本申请权利要求所涵盖的范围内。