一种区块链网络的数据处理方法、装置、设备及存储介质与流程

文档序号:15696009发布日期:2018-10-19 19:03阅读:167来源:国知局
一种区块链网络的数据处理方法、装置、设备及存储介质与流程

本发明实施例涉及区块链技术领域,尤其涉及一种区块链网络的数据处理方法、装置、设备及存储介质。



背景技术:

区块链技术是一种去中心化且寓于分布式结构的数据存储、传输和证明的方法,用数据区块取代了目前互联网对中心服务器的依赖。智能合约是指以数字形式定义的能够自动执行条款的合约。在区块链技术领域,智能合约特指基于预定事件触发、不可篡改、自动执行的计算机程序。

现有技术中,区块链上的节点可以通过调用智能合约实现各种交易。交易双方达成的智能合约作为事务请求发送给区块生成节点,由区块生成节点进行处理,打包添加至区块中进行存储后不再修改。通过区块链系统来保证区块中交易数据的不可篡改性,从而保证交易的安全性。

但是,上述智能合约的处理方式,限制了智能合约所能处理的事务形式,无法将区块链技术的优势充分发挥。



技术实现要素:

本发明实施例提供一种区块链网络的数据处理方法、装置、设备及存储介质,实现对智能合约的实时监测和调整,从而丰富智能合约的功能。

第一方面,本发明实施例提供了一种区块链网络的数据处理方法,应用于区块链网络中的区块生成节点,所述方法包括:

对区块链中已存储智能合约的有效性进行检测;

根据有效性检测结果执行所述智能合约的后续操作。

第二方面,本发明实施例还提供了一种区块链网络的数据处理装置,配置于区块链网络中的区块生成节点,包括:

有效性检测模块,用于对区块链中已存储智能合约的有效性进行检测;

操作执行模块,用于根据有效性检测结果执行所述智能合约的后续操作。

第三方面,本发明实施例还提供了一种计算机设备,所述计算机设备包括:

一个或多个处理器;

存储装置,用于存储一个或多个程序;

当所述一个或多个程序被所述一个或多个处理器执行,使得所述一个或多个处理器实现本发明任意实施例所提供的区块链网络的数据处理方法。

第四方面,本发明实施例还提供了一种计算机存储介质,其上存储有计算机程序,该程序被处理器执行时实现本发明任意实施例所提供的区块链网络的数据处理方法。

本发明实施例通过对区块链中已存储智能合约的有效性进行检测,获取已存储智能合约有效或失效的有效性检测结果;根据有效性检测结果执行智能合约的后续操作,以实现对已存储智能合约的有效性进行持续性检测,并对已存储的智能合约进行后续的修改操作。上述技术方案解决了现有区块链网络中经存储确认的智能合约不做调整的问题,实现对智能合约的实时监测和调整,从而能够丰富智能合约的功能。

附图说明

图1是本发明实施例一提供的一种区块链网络的数据处理方法的流程图;

图2是本发明实施例二提供的一种区块链网络的数据处理方法的流程图;

图3a是本发明实施例三提供的一种区块链网络的数据处理方法的流程示意图;

图3b是本发明实施例三提供的采用新的承租节点构建新的存储智能合约的示意图;

图3c是本发明实施例三提供的一种区块生成节点依据智能合约对各承租节点支付租赁费用的示意图;

图4a是本发明实施例四提供的一种区块链网络的数据处理方法的流程图;

图4b是本发明实施例四所涉及的原始梅克尔树的结构示意图;

图5是本发明实施例五提供的一种区块链网络的数据处理装置的示意图;

图6为本发明实施例六提供的一种计算机设备的结构示意图。

具体实施方式

下面结合附图和实施例对本发明作进一步的详细说明。可以理解的是,此处所描述的具体实施例仅仅用于解释本发明,而非对本发明的限定。

另外还需要说明的是,为了便于描述,附图中仅示出了与本发明相关的部分而非全部内容。在更加详细地讨论示例性实施例之前应当提到的是,一些示例性实施例被描述成作为流程图描绘的处理或方法。虽然流程图将各项操作(或步骤)描述成顺序的处理,但是其中的许多操作可以被并行地、并发地或者同时实施。此外,各项操作的顺序可以被重新安排。当其操作完成时所述处理可以被终止,但是还可以具有未包括在附图中的附加步骤。所述处理可以对应于方法、函数、规程、子例程、子程序等等。

实施例一

图1是本发明实施例一提供的一种区块链网络的数据处理方法的流程图,本实施例可适用于检测区块链网络中的智能合约并执行后续操作的情况,该方法可以由区块链网络的数据处理装置来执行,该装置可以由软件和/或硬件的方式来实现,并一般可集成在承担区块生成节点功能的计算机设备中,区块生成节点是在区块链网络中当前获得区块生成权限的节点。如图1所示,该方法包括如下操作:

s110、对区块链中已存储智能合约的有效性进行检测。

其中,已存储智能合约为经区块生成节点添加到区块中,并经其他节点进行存储确认的智能合约,可以是区块链中各个区块中的已存储智能合约。智能合约的有效性是指智能合约中任意要素、以及智能合约整体,是否仍然符合智能合约规定的要求。要素例如可以是:智能合约的参与方,其有效性可以是参与方节点是否仍存在且符合要求;智能合约的条款规定,其有效性是当前情况是否仍符合条款规定,例如条款规定乙方节点持续为甲方节点进行某类数据的采集,但是乙方节点已经一定时间内没有采集,则不符合该条款规定;智能合约的期限,其有效性是未到达规定结束期限。要素不限于上述内容,可以是维持智能合约的任意内容。要素有效性的丧失原因可以是:故障等客观原因,恶意操作的主观原因,或者也可以是由于各种因素导致的正常失效,需要调整来维持智能合约的正常存在。

在本发明实施例中,可以由当前竞争到区块处理权限的区块生成节点实时检测区块链网络中已存储智能合约的有效性。示例性的,区块生成节点可以检测智能合约中设定的、对参与方节点进行周期性检测的规则,以判断各参与方节点的可用存储空间、计算性能、稳定性能或可靠性能等是否符合智能合约中的相关规定。

在本发明的一个可选实施例中,所述智能合约为存储智能合约,用于存储承租节点信息、租赁节点信息、和存储的副本信息。

其中,存储智能合约可以是经区块链网络中各个节点确认后存储在区块中的智能合约。租赁节点为区块链网络中有租赁需求的节点。例如,租赁需求可以是租赁节点需要利用其他节点的存储空间进行数据存储,或者,也可以是利用其他计算性能较强的节点负责部分数据运算等。承租节点是根据租赁节点的租赁需求为其服务的节点。例如,承租节点可以是区块链网络中为租赁节点提供可用的存储空间或可靠的计算服务的节点。副本信息可以是各承租节点存储的数据副本信息。例如,副本信息可以是原始数据的部分数据组成的副本,也可以是应用程序副本信息等。

在本发明实施例中,存储智能合约可以用于存储各参与方的信息,例如租赁节点和承租节点的信息,还可以存储各参与方中涉及到的交互材料的信息,例如存储的副本信息等。需要说明的是,承租节点的数量可以是至少两个。也即,本发明实施例中的存储智能合约可以实现在线调度区块链网络中更多节点资源的优势,以及能够通过动态变化的区块生成节点的公信力,提高智能合约的可信度。

s120、根据有效性检测结果执行所述智能合约的后续操作。

其中,有效性检测结果可以包括有效和失效两种结果。智能合约的后续操作可以是重新确定智能合约中的各参与方以及各参与方需要履行的规则以构建新的智能合约。或者,智能合约的后续操作还可以是终止各参与方之间的合作关系。

在本发明实施例中,当有效性检测结果为有效时,无需对智能合约进行修改,继续按照预设的时间规律对已存储智能合约的有效性进行检测。当有效性检测结果为失效时,可以依据导致智能合约失效的具体原因对其执行相应的后续操作以对智能合约进行修改,以实时保证智能合约的有效性,从而保障智能合约中各参与方的利益。

本发明实施例通过对区块链中已存储智能合约的有效性进行检测,获取已存储智能合约有效或失效的有效性检测结果;根据有效性检测结果执行智能合约的后续操作,以实现对已存储智能合约的有效性进行持续性检测,并对失效的智能合约进行后续的修改操作。上述技术方案解决了现有区块链网络中经存储确认的智能合约不再修改的问题,实现对智能合约的实时监测和修改,从而能够丰富智能合约的功能。

实施例二

图2是本发明实施例二提供的一种区块链网络的数据处理方法的流程图,本实施例以上述实施例为基础进行具体化,在本实施例中,将对区块链中已存储智能合约的有效性进行检测具体为:如果识别到区块链中已存储智能合约存在有效性检测需求,则从区块中读取智能合约的内容;根据所述智能合约中设定的有效性检测规则进行有效性检测;或识别所述智能合约的生效条件是否结束。相应的,如图2所示,本实施例的方法可以包括:

s210、如果识别到区块链中已存储智能合约存在有效性检测需求,则从区块中读取智能合约的内容。

需要说明的是,在区块链网络中的已存储智能合约的性质是不尽相同的。部分已存储智能合约只需要记录各参与方完成合作的既定信息。例如,甲方向乙方转账时,已存储智能合约只需要记录参与单向转账过程的甲方与乙方的信息以及转账明细等。转账完成且经其他节点确认后无需对智能合约进行后续的有效性检测。部分已存储智能合约除了需要记录各参与方的信息,还需要记录保证各参与方利益的校验规则。例如,租赁节点将待存储文件进行数据分组后,将部分数据分组重新组合形成数据副本并传输给不同的承租节点进行分布式存储,为了保证承租节点完成了相应的存储任务,可以通过智能合约中规定的校验规则对各承租节点是否存储了数据副本进行检测。

由此可见,区块链网络中的已存储智能合约并不是都需要进行有效性检测。因此,在本发明实施例中,需要对区块链网络中已存储智能合约是否存在有效性检测需求,当确认已存储智能合约存储有效性检测需求时,才会从区块中读取其记录的内容。

在本发明的一个可选实施例中,识别区块链中已存储智能合约存在有效性检测需求包括:

在达到预设的绝对时间点、或相对时间间隔、或设定区块高度值时,对区块链中已存储的智能合约进行遍历,以确定存在有效性检测需求的智能合约;或

检测区块链中已存储的智能合约的检测标志,以确定存在有效性检测需求的智能合约。

其中,预设的绝对时间点可以是区块链网络中所遵循的绝对时间,例如,预设的绝对时间点可以是网络时间中的每个整点时间(如12点、3点或9点等)。相对时间间隔可以区块生成节点每两次识别已存储智能合约的有效性检测需求的时间间隔。设定区块高度值可以是预先规定的区块链的高度值,如1000或10000等。上述预设的绝对时间点、相对时间间隔以及设定区块高度值具体可以依据实际需求进行设定,本发明实施例对此并不进行限制。检测标志可以是区块链网络通过某种形式对需要进行有效性检测的智能合约形成的一种标志,例如,检测标志可以在区块头中通过设定位置的字符或字符串对需要进行有效性检测的智能合约进行标记。

在本发明实施例中,区块生成节点可以按照区块链网络中预设的绝对时间点对已存储智能合约进行有效性检测需求的识别。示例性的,每到达网络的整点时间,例如12点、13点或14点等,当前竞争到区块处理权限的区块生成节点就自动对区块链中已存储的智能合约进行遍历,即读取所有已存储智能合约的内容,以确定存在有效性检测需求的智能合约。或者,当前竞争到区块处理权限的区块生成节点判断上一区块生成节点或该节点上一次执行已存储智能合约的有效性检测需求的识别的时间,当确定该时间与当前时间之间的时间间隔达到相对时间间隔要求时,则自动对区块链中已存储的智能合约进行遍历,以确定存在有效性检测需求的智能合约。或者,区块生成节点还可以根据区块目前的高度值达到设定区块高度值要求时,自动对区块链中已存储的智能合约进行遍历,以确定存在有效性检测需求的智能合约。

需要说明的是,区块生成节点除了可以通过根据设定条件遍历已存储的智能合约的内容实现有效性检测需求的识别,还可以根据区块链中预先设定的已存储的智能合约的检测标志,直接确定存在有效性检测需求的智能合约,而无需对智能合约的内容进行一一遍历,从而缩减检测时间,提高区块链网络的数据处理效率。

s220、根据所述智能合约中设定的有效性检测规则进行有效性检测;或识别所述智能合约的生效条件是否结束。

其中,有效性检测规则是智能合约针对其规定的各参与方的信息所制定的,用于检测各参与方是否完成了相应的规定的规则。例如,有效性检测规则可以是检测各承租节点是否正确存储了数据副本。生效条件可以是智能合约本身的生效期对应的有效期限,例如,生效条件可以是某一智能合约在2018年1月1日至2018年12月31日之间有效,在此时间段之外的时间里,该智能合约中的规定都不具有约束力。

在本发明实施例中,区块生成节点检测到有效性检测需求的已存储智能合约后,如果该智能合约处于生效期,则需要继续按照智能合约中规定的有效性检测规则进行检测。

在本发明的一个可选实施例中,识别所述存储智能合约的生效条件是否结束包括:识别所述存储智能合约中的租赁期限是否到期。

其中,租赁期限可以是智能合约中各参与方,如租赁节点和承租节点之间的合作期限。

在本发明实施例中,可以通过识别存储智能合约中的租赁期限是否到期来确定存储智能合约的生效条件是否结束。

根据有效性检测结果执行所述智能合约的后续操作可具体包括:

s230、根据有效性检测结果确定所述智能合约中的待调整要素;

s240、从区块链中已存储区块中获取待调整要素的要素内容,或从区块链网络节点中实时采集获取待调整要素的要素内容;

s250、根据所述要素内容调整所述智能合约的内容。

上述操作是根据有效性检测结果对智能合约进行后续调整的一种实施方式。通常智能合约失效则可能需要调整其中的某个要素,例如参与方、存续时间、合约条款等。可以由区块生成节点控制进行要素的调整。要调整的要素内容可以从以往的区块中获取,也可以实时采集。以存储文件副本为例,若某个存储副本的节点出现失效现象,不再存储文件副本,则可以从以往的区块中查找是否有其他节点声明可承担副本存储的服务,提供存储空间。若有,则可以更换智能合约中的承租节点,建立新的智能合约。或者,可以在区块链网络中广播争取要素的需求,由可提供的节点主动上报。可以声明能提供存储空间、计算资源等。

本发明实施例的技术方案,由区块生成节点来控制监测智能合约的有效性,其可以进一步控制执行要素采集和智能合约的调整,能够更发挥出区块链的去中心化信任机制的作用。

实施例三

图3a是本发明实施例三提供的一种区块链网络的数据处理方法的流程示意图,本实施例以前述实施例为基础,以区块链网络提供分布式存储服务,且对副本存储节点的副本持续存储进行有效性验证为例进行说明。该方法包括:

s310、如果识别到区块链中已存储智能合约存在有效性检测需求,则从区块中读取智能合约的内容;

具体的,本实施例所涉及的智能合约是存储智能合约,如前所述,即有存储需求的租赁节点,将待存储文件形成多个副本,分布式存储于承租节点。将记录上述存储关系的合约成为存储智能合约。区块生成节点检测到区块中已经存在的存储智能合约,视为其存在副本保持验证需求,作为有效性检测需求。可从智能合约中读取待检测的承租节点以及所存储副本情况,进行检测。

s320、根据所述智能合约中设定的副本保持验证规则,向存储有数据副本的承租节点发送副本保持验证请求。

其中,副本保持验证规则可以是对承租节点是否进行数据副本的有效存储进行验证的规则。副本保持验证请求可以是向存储数据副本的承租节点发送的,用于验证该节点是否存储了相应的数据副本的请求。数据副本为原始数据经拆分和组合处理后所形成的部分数据,数据副本的数量大于或等于2,可以预先设定,也可以根据实际情况,例如原始数据的重要性等级以及承租节点的稳定性情况进行动态调整。每个数据副本会存储于不同的承租节点中。

在本发明实施例中,可以由区块生成节点按照智能合约中设定的副本保持验证规则,向存储有数据副本的承租节点发送副本保持验证请求,以实现对各承租节点进行验证。

在本发明的一个可选实施例中,所述副本保持验证请求中包括验证片段的存储位置,所述验证片段包括预先在数据副本中确定的数据片段,所述存储位置用于指示所述节点根据所述存储位置提取存储的数据片段,并根据数据片段确定对应的验证标识。

其中,验证片段至少包括数据副本中预先指定的设定位置处对应的数据片段,用于生成对应的验证标识。其中,数据片段即为数据副本的部分数据,可以是连续的部分数据,也可以是非连续的部分数据,本发明实施例对此并不进行限制。验证标识为根据数据片段的内容所形成的用于验证数据片段有效性的标识,例如数据片段对应的哈希值或经其他加密算法针对数据片段形成的验证数据等。

在本发明实施例中,副本保持验证请求信息中包括了用于获取验证标识对应的验证片段的存储位置,以便于各承租节点根据存储位置提取数据副本中对应的数据片段,并根据提取的数据片段生成对应的验证标识。

在本发明的一个可选实施例中,所述数据副本为数据分片,原始的待存储数据对应多个数据分组,每个数据分片中包括部分数据分组,且每个数据分组添加至至少两个数据分片中;所述验证片段为所述数据分片中至少一个数据分组内的数据片段。

其中,原始的待存储数据可以是文本、图片、视频、音频以及其他类型(如zip格式的压缩文件等)的可存储的数据文件,本发明实施例并不对原始的待存储数据的类型进行限定。数据分组可以是待存储数据的其中一部分数据。数据副本,即数据分片由部分数据分组组成,即每个数据分片并不需要包括所有的数据分组。其中,各个数据分片中所包括的数据分组的数量可以相同,也可以不同,例如,数据分片包括的数据分组数量可以是2个、5个、8个或者更多,本发明实施例并不对数据分片包括的数据分组的数量进行限定。验证片段可以是数据分片中包括的数据分组内设定位置处的数据片段,可以在一个或多个数据分组内各自选择一个或多个数据片段。

需要说明的是,为了提高数据存储的安全性,可以将全部的数据分组形成多个数据分片,并且能够保证每个数据分组都可以添加到至少两个数据分片中,即保证每个数据分组至少形成了两个存储副本。在本发明实施例中,每个数据分片都可以由部分数据分组集合按照随机的顺序组成,再加上数据分组是冗余存储的,因此可以通过技术手段保证每个数据分片都不会完全一致,因而每个承租节点存储的数据分片都不相同。所以,各承租节点之间不可能复用一个存储证明。

s330、接收所述承租节点反馈的副本保持验证结果。

在本发明实施例中,各承租节点接收到副本保持验证请求后,可以针对副本保持验证请求中包括的验证片段的相关信息,即存储位置,对存储的数据副本进行数据片段的提取,并根据提取的数据片段生成对应的验证标识,然后将生成的验证标识进行反馈。

s340、根据所述副本保持验证结果,验证所述承租节点是否对数据副本进行有效存储。

在本发明实施例中,区块生成节点根据接收的副本保持验证结果对承租节点是否对数据副本进行有效存储进行验证。

在本发明的一个可选实施例中,所述副本保持验证结果中包括验证片段的验证标识,用于与原始记录的验证标识进行匹配,以验证所述节点是否对数据副本进行有效存储。

其中,原始记录的验证标识是在将数据副本传输至承租节点进行存储之前,提前根据验证片段包括的数据片段形成的验证标识,作为验证依据对接收到的验证标识进行验证。具体的,如果原始记录的验证标识语接收的验证标识一致,表明验证通过,节点对数据副本进行了有效存储;否则,表明验证未通过,节点未对数据副本进行有效存储。

在本发明的一个可选实施例中,所述验证标识为所述数据片段的哈希值;或所述验证标识为所述数据片段和预设随机时间戳组合的哈希值,其中,所述副本保持验证请求中还包括所述预设随机时间戳。

其中,预设随机时间戳可以是随机生成或按照设定的生成规律的唯一地标识某一刻的时间的字符序列。随机时间戳与数据片段组成的字符序列,共同构成验证片段。随机时间戳是在确定数据片段时确定的,或者,随机时间戳也可以在每次验证时确定,与数据片段组成不同的验证片段。

在本发明实施例中,可以将验证片段对应的哈希值作为验证标识。为了进一步提高验证标识的可靠性,还可以在验证片段的基础上,与预设随机时间戳进行组合以形成对应的哈希值。因为每个数据副本不同,所以其对应的验证片段也不同,再加上时间戳的字符序列,可以保证每个数据副本的所产生的验证标识具有严格的唯一性,从而避免各个承租节点复用相同的存储证明。需要说明的是,当需要采用验证片段和时间戳的组合形成验证标识时,向承租节点发送的副本保持验证请求中需要包括预设随机时间戳信息,以使承租节点根据提取的验证片段和预设随机时间戳信息生成相应的验证标识。

当然,本领域技术人员还可以根据实际需求,在本技术方案的技术背景下,建立其他生成具有唯一性验证标识的方法,本发明实施例对此并不进行限制。

s350、根据有效性检测结果执行所述智能合约的后续操作。

相应的,根据有效性检测结果执行所述智能合约的后续操作,具体可以包括以下操作:

s351、如果根据有效性检测结果确定承租节点对副本存储失效,则根据所述智能合约中的要素要求,从区块链的事务数据中或区块链网络的节点中获取承租承诺。

其中,要素,可能是所要创建的智能合约的参与方、合约成立条件、合约内容、以及合约期限等任意智能合约成立的数据。要素要求为合约发起声明中规定的对要获取的要素内容的要求,可以是一系列规定或条件。例如,要素可以是合约参与节点,则要素要求可以是合约发起声明中规定的节点数量以及节点的性能参数等。承租承诺可以是承租节点在区块链网络中广播的承租节点的信息。例如,承租承诺可以包括承租节点的公钥、承租节点的押金、承租节点能提供的存储空间、历史租赁承诺的成功完成率以及承租有效期。另外,承租承诺的内容还可以包括承租节点的性能信息,如计算性能、稳定性和可靠性等,本发明实施例并不对承租承诺的内容进行限定。事务数据是指区块链网络中的节点发起的,需要经过区块生成节点处理后添加至区块中存储的数据,所谓处理可能包括诸如信息转换、格式调整、或代码运行等,根据具体的事务数据的情况来执行。例如,常规的交易请求数据就是典型的一种事务数据。在区块链的不用应用场景下会产生不同的事务数据需要处理。在同一个应用场景中,节点所发送的事务数据可能相同也可能不同。

在本发明实施例中,如果区块生成节点确定承租节点没有对数据副本进行有效存储(包括智能合约在生效期间或智能合约已过生效期),则可以根据智能合约中的要素要求,在区块链网络中对满足要素要求的承租承诺进行采集。具体的,区块生成节点可以从区块链的事务数据中直接采集承租承诺,也可以从各节点中进行数据采集形成承租承诺。

s352、根据所述承租承诺确定新的承租节点。

相应的,为了对租赁节点提供基本的信用保障,区块生成节点在获取到承租承诺后,可以根据承租承诺中的具体信息对各节点进行筛选以确定新的承租节点。例如,区块生成节点可以依据承租承诺中包括的历史租赁承诺的成功完成率以及押金等对各节点进行筛选,以确定满足智能合约中的要素要求的承租节点。需要说明的是,接收到包含承租承诺区块的每个节点都会读取区块中所有做出有效的承租承诺的承租节点的信息,并对所有有效的承租节点进行承租信用分计算。因此,区块生成节点可获知各节点的具体情况,据此进行筛选。其中,影响承租信用分的因素包括但不限于:1)历史租赁承诺的成功完成率。成功率越高,承租信用分越高;2)承租节点愿意付出的押金(同时检查该承租节点是否拥有足够的虚拟货币作为押金)。押金越高,承租信用分越高。

s353、以新的承租节点替换旧的承租节点,以形成新的合约发起声明。

其中,合约发起声明指的是区块链网络中的节点,针对某种建立智能合约的需求所发起的声明,该声明用于表达该节点需要与其他节点之间建立某种智能合约。示例性的,合约发起声明可以是某节点需要其他节点为其提供存储空间,以达成提供存储服务的存储智能合约而发起的声明。合约发起声明是智能合约建立之前的准备内容。

相应的,在确定新从承租节点后,可以用新的承租节点替换没有完成数据副本的有效存储的承租节点,并将所有的承租节点信息形成醒的合约发起声明。需要说明的是,在旧的智能合约的准备阶段,区块链网络中的节点(即租赁节点)同样需要在区块链网络中广播旧的合约发起声明,或者直接将旧的合约发起声明发送至区块生成节点。当前竞争到区块处理权限的区块生成节点可以接收旧的合约发起声明,并根据旧的合约发起声明中的要素要求,从区块链的事务数据中或区块链网络的节点中进行数据采集,将采集的数据作为要素数据添加至旧的合约发起声明,以形成旧的智能合约。也即,新的合约发起声明与旧的合约发起声明中所包含的信息是类似的,只不过新的合约发起声明中采用新的承租节点替换了未能对数据副本进行有效存储的旧的承租节点。

s354、将所述合约发起声明发送给租赁节点进行确认后,获取新的存储智能合约。

相应的,区块生成节点将获取的新的合约发起声明发送给租赁节点。租赁节点可以依据新的合约发起声明进行确认,并将确认信息反馈给区块生成节点。区块生成节点依据反馈的确认信息根据租赁节点、各承租节点以及各承租节点存储的数据副本等信息形成新的存储智能合约。生成的新的存储智能合约,可以经过或不经过合约发起声明对应节点的确认。

s355、将所述新的存储智能合约添加至区块中,并通过所述区块链网络进行确认存储,同时作废旧的存储智能合约。

在本发明实施例中,同样由区块生成节点将新的存储智能合约进行打包和记录,添加至区块中,并通过区块链网络发送给其他节点,进行确认并存储。需要说明的是,在新的存储智能合约经确认存储后,区块生成节点需立即作废旧的存储智能合约,防止两份合约同时存储造成有效性检测出现错误结果。另外还需说明的是,可以在新的存储智能合约经存储确认后,将旧的承租节点中负责存储的数据副本发送给相应的新的承租节点进行存储。或者也可以先将旧的承租节点中负责存储的数据副本发送给相应的新的承租节点进行存储,然后形成新的存储智能合约。

s356、如果识别到所述存储智能合约中的租赁期限到期,则通知租赁节点结束存储租赁或发起新的合约发起声明。

在本发明实施例中,如果区块生成节点检测到存储智能合约中的租赁期限到期,代表该智能合约本身已经失效,不再对其中的租赁节点和各承租节点具有约束力。此时,区块生成节点无需再对该智能合约是否存在有效性检测需求进行识别,可以直接通知租赁节点结束存储租赁。如果租赁节点还需要继续发布存储租赁需求,则租赁节点还可以重新发起新的合约发起声明,以招募新的承租节点,并构建新的存储智能合约进行存储确认。

示例性的,图3b是本发明实施例三提供的采用新的承租节点构建新的存储智能合约的示意图,如图3b所示,区块生成节点对旧的智能合约中的3个承租节点,即承租节点1、承租节点2、以及承租节点3,是否对数据副本进行有效存储进行检测。其中,承租节点1和承租节点2通过检测,无需替换。承租节点3未通过检测,区块生成节点需要确定新的满足租赁节点租赁需求的承租节点4,使其替换承租节点3后,发布新的存储智能合约并添加到区块中,使其他节点对其进行存储确认。最后,区块生成节点再作废旧的智能合约。

s357、根据所述存储智能合约中设置的奖惩规则,对完成副本存储任务的承租节点进行奖励,对未完成副本存储任务的承租节点进行惩罚。

相应的,如果区块生成节点检测到生效期过期的存储智能合约,还可以根据该存储智能合约中设置的奖惩规则对完成副本存储任务的承租节点进行奖励。例如,区块生成节点将租赁节点规定的奖励金平均分给完成副本存储任务的承租节点。另外,区块生成节点还可以根据存储智能合约中设置的奖惩规则,对未完成副本存储任务的承租节点进行惩罚。例如,区块生成节点扣除未完成副本存储任务的承租节点的押金,并将其分配给租赁节点。

示例性的,图3c是本发明实施例三提供的一种区块生成节点依据智能合约对各承租节点支付租赁费用的示意图。如图3c所示,在区块生成节点采用承租节点4取代旧的承租节点3并形成新的存储智能合约后,如果查询到新的存储智能合约的生效期已到期,则根据新的存储智能合约中的规定,扣除租赁节点中的租赁费用(如,可以从智能合约中的保证金或奖励金等扣除),并将该租赁费用支付给承租节点1、承租节点2、以及承租节点4。区块生成节点在支付租赁费用时,可以依据各承租节点存储的数据副本的重要性等级权重按比例进行支付。

需要说明的是,图3a仅是一种实现方式的示意图,本发明并不对s356-s357与s351-s355之间的顺序进行限定。也即,可以按s351-s357的顺序执行,也可以先执行s356-s357,再执行s351-s355。

采用上述技术方案,通过向存储有数据副本的承租节点发送副本保持验证请求,接收各节点反馈的副本保持验证结果,即验证标识。若各节点存储的数据副本并不相同,则各节点反馈的验证标识也不尽相同。然后将原始记录的验证标识和接收的验证标识进行匹配验证,根据验证结果判断各节点是否对数据副本进行了有效存储,验证标识是根据实际存储的副本来确定的,能够提供正确的验证标识的节点,表明对数据副本保持了有效的存储。对于未提供正确验证标识的节点,可以根据智能合约中的要素要求,重新采集数据并确定新的承租节点,进而形成新的智能合约。同时,对租赁到期的存智能合约,还可以通知租赁节点结束存储租赁或发起新的合约发起声明,并对对完成副本存储任务的承租节点进行奖励,对未完成副本存储任务的承租节点进行惩罚。由此既能够解决现有分布式存储技术存储数据存在的可靠性较低的问题,便于用户检查分布式存储节点中是否正确存储了数据副本,以提高数据存储的可靠性,还可以解决现有区块链网络中经存储确认的智能合约不再修改的问题,实现对智能合约的实时监测和修改,从而能够丰富智能合约的功能。

实施例四

图4a是本发明实施例四提供的一种区块链网络的数据处理方法的流程图,本实施例以上述实施例为基础进行具体化,在本实施例中,给出区块生成节点依据租赁节点发起的租赁承诺形成智能合约的具体过程,在智能合约经存储确认后,由区块生成节点试试检测区块链网络中的智能合约并执行后续操作。相应的,如图4a所示,本实施例的方法可以包括:

s410、区块生成节点从区块链网络中的租赁节点接收作为合约发起声明的租赁承诺,其中,所述租赁承诺的内容包括下述至少一项:租赁节点公钥、保证金、待存储文件的副本数量和大小、租赁期限、租赁成本、以及承租节点要求。

其中,租赁节点可以是通过合约发起声明体现其租赁需求的节点,租赁需求指的是租赁其他节点为其服务时所规定的约束条件。例如,租赁需求可以是利用其他节点的存储空间或计算能力为其服务。租赁承诺可以是租赁节点依据其租赁需求所制定的一系列规定或条件等。租赁承诺中的保证金可以是租赁节点需要被冻结的押金。待存储文件可以是文本、图片、视频、音频以及其他类型(如zip格式的压缩文件等)的可存储的文件,本发明实施例并不对待存储文件的类型进行限定。租赁期限可以是租赁节点租赁承租节点的起止时间,租赁成本可以包括租赁节点愿意为承租节点提供的奖励金等。承租节点要求可以是对承租节点的存储空间、计算能力、稳定性、可靠性以及历史租赁承诺的成功完成率等信息所提出的要求。

在本发明实施例中,租赁节点可以是具有文件云存储需求的节点,用于上传待存储文件。当一个节点有租赁需求时,可以在区块链网络中进行广播,此时,它成为一个租赁候选节点,当智能合约生成并存储确认后,成为租赁节点。

s420、区块生成节点根据所述租赁承诺中的租赁需求,从区块链的事务数据中或区块链网络的节点中采集的要素数据至少包括如下至少一种:承租节点信息、承租金额、和承租时间。

其中,承租节点可以是存储文件分块的节点。当一个节点想利用自身的存储空间为满足租赁需求的租赁节点存储数据时,可以在区块链网络中进行广播。此时,它成为一个承租候选节点,当智能合约生成并存储确认后,成为承租节点。需要说明的是,每个承租节点在智能合约的有效期内需要不停的在区块链网络中写入证明数据,证明自己正在线上提供数据存储服务。

具体的,区块生成节点在确定承租节点时,需要依据租赁承诺中的租赁需求,以区块链的事务数据(包括历史区块的事务数据和当前未添加至区块的事务数据)作为数据源进行数据采集。或者,区块生成节点还可以直接从区块链网络的节点进行数据采集。例如,租赁需求中涉及到对承租节点的存储空间以及承租金额的需求,则区块生成节点只要在区块链的事务数据或在其他节点中搜索到包括承租节点的存储空间信息和承租金额的要素数据,即可以将要素数据对应的节点作为承租候选节点。

s430、区块生成节点根据从承租承诺中采集到的承租节点信息进行筛选,从而选择承租节点,其中,所述承租节点信息至少包括:历史租赁承诺的成功完成率,以及押金。

其中,历史租赁承诺的成功完成率指的是承租节点在已经接受租赁承诺后,其按承租承诺规定的任务按期且按时完成的成功率,可以由区块生成节点负责统计和记录。

在本发明实施例中,区块生成节点从区块链的事务数据中或区块链网络的节点中采集要素数据即为从承租承诺中采集要素数据。

s440、租赁节点将待存储文件进行分组,形成多个数据分组。

在本发明实施例中,在对待存储文件进行分布式存储之前,首先需要将待存储文件进行分组,将其划分为多个数据分组。需要说明的是,对待存储文件进行分组可以采用平均划分为n个数据分组的方式,使得每个数据分组包括相同数据量的文件数据。也可以采用随机划分的方式对待存储文件进行分组,使得每个数据分组包括不同数据量的文件数据。当然,本领域技术人员还可以根据实际需求,在本技术方案的技术背景下,建立其他的文件分组的方式,本发明实施例对此并不进行限制。

在本发明的一个可选实施例中,还可以包括:采用密钥对各数据分组进行顺序加密,其中,除第一个数据分组外的其他每个数据分组的密钥根据前一个数据分组的密文产生;记录所述各数据分组的加密顺序。

为了提高数据分组的安全性,对待存储文件进行分组后,需要对各数据分组进行加密。可选的,数据分组的加密方式可以是顺序加密。具体是:对各数据分组采用对称加密算法及分组加密机制进行加密,每次可以对128个比特的数据进行对称加密,加密的密钥最多可以达到256个比特。其中,第一个数据分组可以单独加密并产生对应的密文,后续在对其他的数据分组加密时,需要以前一个数据分组的密文作为一部分输入来对下一个数据分组的输出进行混淆。具体是采用前一个数据分组的密文来计算确定下一个数据分组的密钥。下一个数据分组的密钥可以包括一部分固定密钥,另一部分是通过密文计算确定的。由于传统cpu(中央处理器,centralprocessingunit/processor)未针对分组加密算法进行过指令集优化,因此,对上述依赖前一个数据分组的顺序加密方式进行暴力破解需要付出巨大的攻击代价。此外,即使密钥泄漏也不会导致存储文件内容的泄漏,因为攻击者还需要获取全部数据分组并了解其加密顺序,才有可能破解出存储文件的内容。在采用密钥对各数据分组进行顺序加密后,为了便于后期恢复原始待存储文件,还需要对各数据分组的加密顺序进行记录。

在本发明的一个可选实施例中,记录各数据分组的加密顺序包括:按照数据分组的加密顺序,计算各数据分组的哈希值,形成原始梅克尔树(merkletrees)。

其中,原始梅克尔树是依据数据分组计算所得各个哈希值为基础建立的梅克尔树。示例性的,图4b是本发明实施例四所涉及的原始梅克尔树的结构示意图。如图4b所示,待存储文件可以包括四个数据分组(datablock),分别计算各数据分组的哈希值,按照从左至右的顺序形成梅克尔树的叶节点(hash-leaf),而后两两叶节点组合再计算哈希值作为上层分支(hash-branch),直至计算出梅克尔树的根节点(hash-root)。梅克尔树不仅记录了数据分组的哈希值,还以树状结构记录了数据分组的顺序。在该原始梅克尔树中,以第二个数据分组(datablock2)为例,还记录了其存储于三个数据分片(datashard1、datashard2和datashard3)中。

相应的,可以采用梅克尔树的方式对各数据分组的加密顺序进行记录,进而利用梅克尔树的优势提升分布式网络的运行效率和可扩展性,并可以作为后期恢复数据的校验凭据。

s450、租赁节点将全部数据分组形成至少三个数据分片,其中,每个数据分片中包括部分数据分组,且每个数据分组添加到至少两个数据分片中。

需要说明的是,为了提高数据存储的安全性,租赁节点可以将全部的数据分组形成至少三个数据分片,并且能够保证每个数据分组都可以添加到至少两个数据分片中,即保证每个数据分组至少形成了两个存储副本。在分组成片的处理过程中,数据分组会进行冗余存储,对于m副本存储来说,一个数据分组会在m个数据分片中出现。副本的数量m大于或等于2,可以预先设定,也可以根据实际情况,例如存储文件的重要性等级、存储节点的稳定性情况进行动态调整。

s460、租赁节点将各数据分片在确定的承租节点中进行分布式存储。

在本发明实施例中,可以将根据数据分组形成的数据分片在确定的各承租节点中进行分布式存储,而非直接存储待存储文件形成的数据分组。可选的,每个承租节点可以只存储一个数据分片。

相应的,在将各数据分片在各承租节点中进行分布式存储时,可以采用里德-所罗门冗余算法(reed-solomonredundancy)。这种算法通过多项式运算/纠错码(erasurecode)来纠正错误数据。因此,即使有部分节点掉线或者数据损坏,数据文件仍然可以被成功恢复和访问。示例性的,一份待存储文件被分割为多个数据分组,形成数据分片后散布且m副本冗余存储在n个承租节点上(例如30个节点,3副本存储),每个承租节点存储一部分数据分组。只要有n/m个正常分布式存储节点存活,就可以恢复原始的待存储文件。

在一个具体的例子中,可以采取3副本冗余存储。在使用30个承租节点的情况下,只要同时有10个正常承租节点存活,就可以提供可用的存储服务。假设每个承租节点的可靠性仅为50%,则经过简单的计算,可以得出区块链网络的服务稳定性是f=1-(1-70%)21,即99.99995%。

s470、区块生成节点将选择的承租节点的关联数据,作为要素数据添加至所述租赁承诺,形成存储智能合约。

其中,关联数据可以是承租承诺中满足租赁承诺的租赁需求的相关数据,例如,承租节点的公钥、押金、能提供的存储空间以及承租有效期等。

相应的,在区块生成节点确定承租节点后,可以将承租节点的关联数据作为要素数据添加至租赁承诺中,从而形成一份数据完整的智能合约。

在一个具体的例子中,将生成的智能合约用于分布式的文件存储时,区块生成节点参与租赁节点和承租节点之间生成的智能合约可以包括两种形式。第一,租赁节点发起租赁承诺(包括租赁开始时间、结束时间、可付价格、以及其他租赁需求等,还可以包括承租节点数量和性能等参数),并在区块链网络中进行广播。区块生成节点接收到租赁承诺,并从承租候选节点中确定承租节点,达成智能合约。其中,区块生成节点可以在区块被区块链确认后,再将承租节点告知给租赁节点以便传输待存储数据。第二,租赁节点发起租赁承诺包括租赁开始时间、结束时间、可付价格、以及其他租赁需求等,还可以包括承租节点数量和性能等参数),并在区块链网络中进行广播。接收到租赁承诺的节点,接受此租赁承诺,并向区块生成节点反馈承租承诺,从而成为承租节点。区块生成节点将指定有承租节点以及租赁条件的租赁承诺(相当于智能合约)添加到区块中,并通过区块链网络进行确认存储。

需要说明的是,承租节点还可以在承租承诺的有效期结束后,更新并发布新的承租承诺。

s480、区块生成节点将所述智能合约添加至区块中,并通过所述区块链网络进行确认存储。

需要说明的是,上述依据租赁节点发起的租赁承诺形成智能合约的过程也可以由租赁节点取代区块生成节点完成,智能合约达成后,租赁节点可以将智能合约进行广播或发送至区块生成节点,使得区块生成节点将接收的智能合约添加至区块中,并通过区块链网络进行确认存储。

租赁节点也可以在智能合约生成后,再将数据分片传输给承租节点存储。

s490、租赁节点记录数据分片与数据分组的对应关系,以及承租节点与所存储数据分片的对应关系,并删除租赁节点本地的待存储文件。

其中,数据分片与数据分组的对应关系可以实现通过数据分组查找对应的数据分片,承租节点与所存储数据分片的对应关系可以实现通过所存储的数据分片查找对应的承租节点,以便从承租节点中下载对应的所存储数据分片。同时,两组对应关系还可以实现对数据分组的验证。需要说明的是,两组对应关系可以由区块生成节点记录,也可以由租赁节点进行记录。

在本发明实施例中,根据数据分片与数据分组的对应关系,以及承租节点与所存储数据分片的对应关系,可以实现对数据分组和数据分片的隐私保护。相应的,在完成各数据分片的存储以及各对应关系的记录后,即可以删除租赁节点本地的待存储文件,以防止待存储文件被不法攻击者所获取。

在一个具体的例子中,数据分片与数据分组的对应关系可以是:数据分片1包括编号分别为1、2和3对应的数据分组。存储节点与所存储数据分片的对应关系可以是存储节点5存储的编号为1的数据分片。

在本发明的一个可选实施例中,记录数据分片与数据分组的对应关系,以及承租节点与所存储数据分片的对应关系包括:采用梅克尔树形式记录数据分片中所包括的数据分组的哈希值,作为分片梅克尔树;记录各分片梅克尔树与各所述数据分片所在承租节点的对应关系。

其中,分片梅克尔树是依据数据分片中所包括的数据分组计算所得各个哈希值为基础建立的梅克尔树。

在本发明实施例中,可以使用梅克尔树来进行记录每个数据分片的结构。由于在获取原始梅克尔树时为每个数据分组设置了对应的顺序编号id和对应内容的hash值,所以每个数据分片可以依据其包括的数据分组的哈希值最终计算获取一个对应的分片梅克尔树。在分片梅克尔树中,数据分组的顺序不必与原始加密顺序相同,可以将数据分组任意的两两组合计算梅克尔树的哈希分支。

相应的,在获取到各数据分片对应的分片梅克尔树后,可以将各分片梅克尔树与各数据分片所在的承租节点之间的对应关系进行记录。每个数据分片对应一个分片梅克尔树。

在本发明实施例中,通过对数据分组按顺序加密后依据各数据分组的哈希值形成原始梅克尔树,以及通过数据分片中所包括的数据分组的哈希值形成分片梅克尔树,能够实现对数据分组以及数据分片的数据查找和校验,提高存储文件的私密性和安全性,从而有效避免攻击者恢复原始文件。

相应的,在恢复存储文件时,可以依据产生存储文件查询请求,根据记录的数据分片与数据分组的对应关系,以及承租节点与所存储数据分片的对应关系,分别从承租节点中下载各数据分组;根据各数据分组恢复形成存储文件。

具体的,可以根据本地记录的各数据分组的加密顺序,确定第一个数据分组作为当前数据分组;根据数据分片与数据分组的对应关系,以及承租节点与所存储数据分片的对应关系,确定当前数据分组所在的承租节点,作为当前分组节点。从当前分组节点下载数据分片,并从数据分片中提取当前数据分组。计算提取出的当前数据分组的哈希值,与本地存储当前数据分组的哈希值,并进行匹配,以验证当前数据分组的有效性。验证通过后,采用对应密钥对当前数据分组进行解密,采用当前数据分组的密文确定下一个数据分组的对应密钥;将下一个数据分组更新为当前数据分组。如果当前数据分组存储于已下载数据分片,则返回执行解密操作。如果当前数据分组未存储于已下载数据分片,则返回执行确定当前分组节点的操作,直至所有数据分组下载完成,并根据各数据分组恢复形成存储文件。

s4100、区块生成节点如果识别到区块链中已存储智能合约存在有效性检测需求,则从区块中读取智能合约的内容。

s4200、区块生成节点根据所述智能合约中设定的有效性检测规则进行有效性检测;或识别所述智能合约的生效条件是否结束。

s4300、区块生成节点根据有效性检测结果执行所述智能合约的后续操作。

在一个具体的例子中,以某网盘创建区块链网络并采用本发明实施例所提供的区块链网络的数据处理方法。网盘首先成为区块链网络的创始节点,并为自己选择一个用于非对称加密的公钥/私钥的密钥对。此时,网盘对应的节点就是区块生成节点,同时承担租赁节点和承租节点的角色,并开始生成创世区块。当n个区块生成完成后,最初的创世区块的安全性就可以得到保障(攻击者必须拥有大大超过全网50%总算力的算力,并同时攻击算力强大到可以逆推n个区块,回退到创世区块)。此时可以对外发布区块链网络,允许全网其他节点加入形成区块链网络中的分布式节点。网盘作为创始节点,通过在生成区块的过程中,可以获得一定量的虚拟货币资产,可以用来作为冷启动资金(即保证金和租赁成本),以盘活最初的分布式云存储生态经济。网盘可以把这些虚拟货币奖励给最初加入区块链网络的节点,也可以发布最初的存储任务,把虚拟货币奖励给成功完成这些存储任务的承租节点。当虚拟货币资产分布到区块链网络中各个节点的时候,就可以初步建立分布式云存储生态经济并自适应地运行。

相应的,当区块链网络中存在多个节点时,各个节点开始依据共识机制竞争成为新一轮的区块生成节点。区块生成节点可以获得一定的虚拟货币作为区块生成奖励。当本轮区块生成后,开启下一轮区块生成节点的竞争过程。当一个节点愿意成为一个承租节点时,使用自身的私钥签名自身的承租承诺(包括节点自身的公钥、愿意付出的押金、自身能够提供的可用存储空间、该承租承诺对应的有效期等),然后在区块链网络中进行广播。承租节点可以在该承租承诺有效期结束后,更新并发布新的承租承诺。区块生成节点会将收到的承租承诺记录到一个区块中,发布到区块链网络上。根据整个区块链网络的分布式共识机制,每个节点都会读取区块中所有做出有效的承租承诺的承租节点的信息,并对所有有效的承租节点进行承租信用分计算。当一个节点(例如,代表百度网盘的节点)有租赁需求时,也即该节点需要区块链网络上的其它节点来帮其存储文件时,开始具有租赁需求的租赁承诺的准备过程:为每个承租节点准备好其需要存储的数据分片;使用自己的私钥对租赁承诺(包括节点自身的公钥、愿意付出的保证金、形成的数据分片的数量、数据分片的大小、租赁期限以及愿意付出的租赁成本等)进行签名,并将租赁承诺在区块链网络中进行广播。区块生成节点会将收到的租赁承诺进行处理,调取匹配的承租节点,生成智能合约。其中,智能合约中指定了租赁节点与承租节点,也记录了每个承租节点分别需要存储哪个文件分块;每个承租节点成功完成存储任务后可以获得多少奖励;每个租赁节点和承租节点需要被冻结的押金等。另外还记录了一些惩罚措施,例如,如果承租节点没有成功完成存储任务,则承租节点的押金将被扣除。区块生成节点将生成的智能合约记录到一个区块中,并发布到区块链网络上,此时智能合约的准备阶段生效。

相应的,在智能合约的准备阶段生效后,租赁节点开始根据智能合约,向各个承租节点分别传输数据。数据传输完成后,租赁节点和承租节点分别向全网进行广播。接收到广播消息的区块生成节点将智能合约的状态由准备变为已生效。

在智能合约的执行过程中,区块生成节点会对区块链上尚未到期的智能合约进行检测判断。如果区块生成节点确定没有足够多的存储数据文件分块的承租节点,则通过共识机制选举新的区块生成节点。新的区块生成节点选举成功后,作废旧的智能合约,创建新的智能合约并全网公布。其中,创建新的智能合约的步骤与上述区块生成节点参与生成智能合约的步骤相同,不再累述。

当智能合约到期后,区块生成节点判断智能合约中的各个承租节点是否完成了存储任务,并根据存储任务的完成情况,对承租节点进行奖励或惩罚。

本发明实施例通过区块生成节点参与租赁节点与承租节点之间达成的智能合约后,将租赁节点中本地存的待存储文件以数据分片的方式在确定的承租节点中进行分布式存储,从而实现了数据的分布式存储。通过对数据分组进行顺序加密,极大增加了攻击存储节点来恢复原始存储文件的难度。分布式存储能够解决中心化存储的瓶颈问题,降低带宽成本和存储成本,且采用数据分组的多副本存储,避免由于部分存储节点的故障而导致数据整体的不可恢复。并且,由于每个承租节点中所存储的数据分片都没有包括所有的数据组分,所以不可能通过攻破一个存储节点就能恢复原始存储文件。上述技术方案通过丰富智能合约的功能解决区块链网络中智能合约的局限性问题,以实现文件数据的分布式存储,解决了现有云存储技术产生的存储成本持续增高以及分布式存储技术引发的数据存储不安全的问题,便于用户在区块链网络中进行文件存储以降低存储成本,且能够有效提高存储文件的私密性和安全性,从而避免攻击者恢复原始文件。另外,区块生成节点还可以对区块链中已存储智能合约的有效性进行检测,获取已存储智能合约有效或失效的有效性检测结果;根据有效性检测结果执行智能合约的后续操作,以实现对已存储智能合约的有效性进行持续性检测,并对失效的智能合约进行后续的修改操作,同时解决了现有区块链网络中经存储确认的智能合约不再修改的问题,实现对智能合约的实时监测和修改,能够丰富智能合约的功能。

本领域技术人员可以理解,本发明实施例的技术方案,还可以适用于其他租赁场景,不限于租赁存储空间存储文件的场景。例如,还可以租赁数据计算资源等。

实施例五

图5是本发明实施例五提供的一种区块链网络的数据处理装置的示意图,如图5所示,所述装置包括:有效性检测模块510以操作执行模块520,其中:

有效性检测模块510,用于对区块链中已存储智能合约的有效性进行检测;

操作执行模块520,用于根据有效性检测结果执行所述智能合约的后续操作。

本发明实施例通过对区块链中已存储智能合约的有效性进行检测,获取已存储智能合约有效或失效的有效性检测结果;根据有效性检测结果执行智能合约的后续操作,以实现对已存储智能合约的有效性进行持续性检测,并对失效的智能合约进行后续的修改操作。上述技术方案解决了现有区块链网络中经存储确认的智能合约不再修改的问题,实现对智能合约的实时监测和修改,从而能够丰富智能合约的功能。

可选的,所述智能合约为存储智能合约,用于存储承租节点信息、租赁节点信息、和存储的副本信息。

可选的,有效性检测模块510,还用于如果识别到区块链中已存储智能合约存在有效性检测需求,则从区块中读取智能合约的内容;根据所述智能合约中设定的有效性检测规则进行有效性检测;或识别所述智能合约的生效条件是否结束。

可选的,有效性检测模块510,还用于根据所述智能合约中设定的副本保持验证规则,向存储有数据副本的承租节点发送副本保持验证请求;接收所述承租节点反馈的副本保持验证结果;根据所述副本保持验证结果,验证所述承租节点是否对数据副本进行有效存储。

可选的,所述副本保持验证请求中包括验证片段的存储位置,所述验证片段包括预先在数据副本中确定的数据片段,所述存储位置用于指示所述节点根据所述存储位置提取存储的数据片段,并根据数据片段确定对应的验证标识;所述副本保持验证结果中包括验证片段的验证标识,用于与原始记录的验证标识进行匹配,以验证所述节点是否对数据副本进行有效存储。

可选的,操作执行模块520,还用于如果根据有效性检测结果确定承租节点对副本存储失效,则根据所述智能合约中的要素要求,从区块链的事务数据中或区块链网络的节点中获取承租承诺;根据所述承租承诺确定新的承租节点;以新的承租节点替换旧的承租节点,以形成新的合约发起声明;将所述合约发起声明发送给租赁节点进行确认后,获取新的存储智能合约;将所述新的存储智能合约添加至区块中,并通过所述区块链网络进行确认存储,同时作废旧的存储智能合约。

可选的,有效性检测模块510,还用于识别所述存储智能合约中的租赁期限是否到期。

可选的,操作执行模块520,还用于如果识别到所述存储智能合约中的租赁期限到期,则通知租赁节点结束存储租赁或发起新的合约发起声明。

可选的,所述装置还包括:节点惩奖模块,用于根据所述存储智能合约中设置的奖惩规则,对完成副本存储任务的承租节点进行奖励,对未完成副本存储任务的承租节点进行惩罚。

可选的,有效性检测模块510,还用于在达到预设的绝对时间点、或相对时间间隔、或设定区块高度值时,对区块链中已存储的智能合约进行遍历,以确定存在有效性检测需求的智能合约;或

检测区块链中已存储的智能合约的检测标志,以确定存在有效性检测需求的智能合约。

可选的,操作执行模块520,还用于根据有效性检测结果确定所述智能合约中的待调整要素;从区块链中已存储区块中获取待调整要素的要素内容,或从区块链网络节点中实时采集获取待调整要素的要素内容;根据所述要素内容调整所述智能合约的内容。

上述区块链网络的数据处理装置可执行本发明任意实施例所提供的区块链网络的数据处理方法,具备执行方法相应的功能模块和有益效果。未在本实施例中详尽描述的技术细节,可参见本发明任意实施例提供的区块链网络的数据处理方法。

实施例六

图6为本发明实施例五提供的一种计算机设备的结构示意图。图6示出了适于用来实现本发明实施方式的计算机设备612的框图。图6显示的计算机设备612仅仅是一个示例,不应对本发明实施例的功能和使用范围带来任何限制。计算机设备612典型的是承担区块链系统节点功能的计算设备。

如图6所示,计算机设备612以通用计算设备的形式表现。计算机设备612的组件可以包括但不限于:一个或者多个处理器616,存储装置628,连接不同系统组件(包括存储装置628和处理器616)的总线618。

总线618表示几类总线结构中的一种或多种,包括存储器总线或者存储器控制器,外围总线,图形加速端口,处理器或者使用多种总线结构中的任意总线结构的局域总线。举例来说,这些体系结构包括但不限于工业标准体系结构(industrystandardarchitecture,isa)总线,微通道体系结构(microchannelarchitecture,mca)总线,增强型isa总线、视频电子标准协会(videoelectronicsstandardsassociation,vesa)局域总线以及外围组件互连(peripheralcomponentinterconnect,pci)总线。

计算机设备612典型地包括多种计算机系统可读介质。这些介质可以是任何能够被计算机设备612访问的可用介质,包括易失性和非易失性介质,可移动的和不可移动的介质。

存储装置628可以包括易失性存储器形式的计算机系统可读介质,例如随机存取存储器(randomaccessmemory,ram)630和/或高速缓存存储器632。计算机设备612可以进一步包括其它可移动/不可移动的、易失性/非易失性计算机系统存储介质。仅作为举例,存储系统634可以用于读写不可移动的、非易失性磁介质(图6未显示,通常称为“硬盘驱动器”)。尽管图6中未示出,可以提供用于对可移动非易失性磁盘(例如“软盘”)读写的磁盘驱动器,以及对可移动非易失性光盘(例如只读光盘(compactdisc-readonlymemory,cd-rom)、数字视盘(digitalvideodisc-readonlymemory,dvd-rom)或者其它光介质)读写的光盘驱动器。在这些情况下,每个驱动器可以通过一个或者多个数据介质接口与总线618相连。存储装置628可以包括至少一个程序产品,该程序产品具有一组(例如至少一个)程序模块,这些程序模块被配置以执行本发明各实施例的功能。

具有一组(至少一个)程序模块626的程序636,可以存储在例如存储装置628中,这样的程序模块626包括但不限于操作系统、一个或者多个应用程序、其它程序模块以及程序数据,这些示例中的每一个或某种组合中可能包括网络环境的实现。程序模块626通常执行本发明所描述的实施例中的功能和/或方法。

计算机设备612也可以与一个或多个外部设备614(例如键盘、指向设备、摄像头、显示器624等)通信,还可与一个或者多个使得用户能与该计算机设备612交互的设备通信,和/或与使得该计算机设备612能与一个或多个其它计算设备进行通信的任何设备(例如网卡,调制解调器等等)通信。这种通信可以通过输入/输出(i/o)接口622进行。并且,计算机设备612还可以通过网络适配器620与一个或者多个网络(例如局域网(localareanetwork,lan),广域网wideareanetwork,wan)和/或公共网络,例如因特网)通信。如图所示,网络适配器620通过总线618与计算机设备612的其它模块通信。应当明白,尽管图中未示出,可以结合计算机设备612使用其它硬件和/或软件模块,包括但不限于:微代码、设备驱动器、冗余处理单元、外部磁盘驱动阵列、磁盘阵列(redundantarraysofindependentdisks,raid)系统、磁带驱动器以及数据备份存储系统等。

处理器616通过运行存储在存储装置628中的程序,从而执行各种功能应用以及数据处理,例如实现本发明上述实施例所提供的区块链网络的数据处理方法。

也即,所述处理单元执行所述程序时实现:对区块链中已存储智能合约的有效性进行检测;根据有效性检测结果执行所述智能合约的后续操作。

通过所述计算机设备对区块链中已存储智能合约的有效性进行检测,获取已存储智能合约有效或失效的有效性检测结果;根据有效性检测结果执行智能合约的后续操作,以实现对已存储智能合约的有效性进行持续性检测,并对失效的智能合约进行后续的修改操作。上述技术方案解决了现有区块链网络中经存储确认的智能合约不再修改的问题,实现对智能合约的实时监测和修改,能够丰富智能合约的功能。

实施例七

本发明实施例七还提供一种存储计算机程序的计算机存储介质,所述计算机程序在由计算机处理器执行时用于执行本发明上述实施例任一所述的区块链网络的数据处理方法:对区块链中已存储智能合约的有效性进行检测;根据有效性检测结果执行所述智能合约的后续操作。

本发明实施例的计算机存储介质,可以采用一个或多个计算机可读的介质的任意组合。计算机可读介质可以是计算机可读信号介质或者计算机可读存储介质。计算机可读存储介质例如可以是——但不限于——电、磁、光、电磁、红外线、或半导体的系统、装置或器件,或者任意以上的组合。计算机可读存储介质的更具体的例子(非穷举的列表)包括:具有一个或多个导线的电连接、便携式计算机磁盘、硬盘、随机存取存储器(ram)、只读存储器(readonlymemory,rom)、可擦式可编程只读存储器((erasableprogrammablereadonlymemory,eprom)或闪存)、光纤、便携式紧凑磁盘只读存储器(cd-rom)、光存储器件、磁存储器件、或者上述的任意合适的组合。在本文件中,计算机可读存储介质可以是任何包含或存储程序的有形介质,该程序可以被指令执行系统、装置或者器件使用或者与其结合使用。

计算机可读的信号介质可以包括在基带中或者作为载波一部分传播的数据信号,其中承载了计算机可读的程序代码。这种传播的数据信号可以采用多种形式,包括但不限于电磁信号、光信号或上述的任意合适的组合。计算机可读的信号介质还可以是计算机可读存储介质以外的任何计算机可读介质,该计算机可读介质可以发送、传播或者传输用于由指令执行系统、装置或者器件使用或者与其结合使用的程序。

计算机可读介质上包含的程序代码可以用任何适当的介质传输,包括——但不限于无线、电线、光缆、射频(radiofrequency,rf)等等,或者上述的任意合适的组合。

可以以一种或多种程序设计语言或其组合来编写用于执行本发明操作的计算机程序代码,所述程序设计语言包括面向对象的程序设计语言—诸如java、smalltalk、c++,还包括常规的过程式程序设计语言——诸如“c”语言或类似的程序设计语言。程序代码可以完全地在用户计算机上执行、部分地在用户计算机上执行、作为一个独立的软件包执行、部分在用户计算机上部分在远程计算机上执行、或者完全在远程计算机或服务器上执行。在涉及远程计算机的情形中,远程计算机可以通过任意种类的网络——包括局域网(lan)或广域网(wan)—连接到用户计算机,或者,可以连接到外部计算机(例如利用因特网服务提供商来通过因特网连接)。

注意,上述仅为本发明的较佳实施例及所运用技术原理。本领域技术人员会理解,本发明不限于这里所述的特定实施例,对本领域技术人员来说能够进行各种明显的变化、重新调整和替代而不会脱离本发明的保护范围。因此,虽然通过以上实施例对本发明进行了较为详细的说明,但是本发明不仅仅限于以上实施例,在不脱离本发明构思的情况下,还可以包括更多其他等效实施例,而本发明的范围由所附的权利要求范围决定。

当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1