CN109542888A - 区块链的数据修改和同步方法、装置、设备及存储介质 - Google Patents
区块链的数据修改和同步方法、装置、设备及存储介质 Download PDFInfo
- Publication number
- CN109542888A CN109542888A CN201811465308.8A CN201811465308A CN109542888A CN 109542888 A CN109542888 A CN 109542888A CN 201811465308 A CN201811465308 A CN 201811465308A CN 109542888 A CN109542888 A CN 109542888A
- Authority
- CN
- China
- Prior art keywords
- block
- data
- node
- inspection
- point identification
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Granted
Links
Abstract
本发明实施例公开了一种区块链的数据修改和同步方法、装置、设备及存储介质。区块链的数据修改方法应用于检查区块链网络中的检查节点,该方法包括:检查节点从普通节点获取至少一个同步区块,同步区块为普通区块;检查节点对同步区块的数据,按照设定修改规则进行检查,以确定目标修改数据;检查节点对目标修改数据进行修改;检查节点根据同步区块生成检查点,根据同步区块的数据计算生成检查点标识;检查节点将检查点标识与同步区块进行关联记录;检查节点将检查点标识经检查区块链网络中的检查节点确认,以存储到检查区块中;同步区块用于供普通节点同步下载。通过本发明实施例提供的技术方案,能够实现从区块链中清除有害数据。
Description
技术领域
本发明实施例涉及区块链技术,尤其涉及一种区块链的数据修改和同步方法、装置、设备和存储介质。
背景技术
区块链是分布式数据存储、点对点传输、共识机制、加密算法等计算机技术的新型应用模式。
区块链网络的数据通常是链式结构存储,每个区块都指向上一个区块,每个区块的区块标识都是由本区块内所有事务数据通过密码学的方式生成。这样就使得传统的区块链网络,如比特币/以太坊/Fabric等很难清除已经发布到区块链网络上的任何数据。对于新产生的区块,尚且可以通过软分叉的方案予以修正,但是对于已经得到较多区块链节点确认的旧区块,根本无法清除其上的数据。
若有些不法分子借助区块链难以篡改的特性,在区块链网络上传播一些有害的信息,如色情、恐暴等内容,且这些信息一旦存储到区块中,区块链信息服务商也不能随意的去清除,否则就会有损于区块链难以篡改的特性。但是这些有害信息是需要从区块链中清除出去的,而现有技术没有提供有效的解决方案。
发明内容
本发明实施例提供一种区块链的数据修改和同步方法、装置、设备及存储介质,能够实现从区块链中清除有害数据。
第一方面,本发明实施例提供了一种区块链的数据修改方法,应用于检查区块链网络中的检查节点,该方法包括:
检查节点从普通节点获取至少一个同步区块,其中,所述同步区块为普通区块;
所述检查节点对所述同步区块的数据,按照设定修改规则进行检查,以确定目标修改数据;
所述检查节点对目标修改数据进行修改;
所述检查节点根据所述同步区块生成检查点,根据所述同步区块的数据计算所述检查点的检查点标识;
所述检查节点将检查点标识与所述同步区块进行关联记录;
所述检查节点将所述检查点标识经检查区块链网络中的检查节点确认,以存储到检查区块中;
其中,所述同步区块用于供普通节点同步下载。
第二方面,本发明实施例还提供了一种区块链的数据同步方法,应用于普通区块链网络中的普通节点,该方法包括:
所述普通节点监测检查区块链中的检查点标识,其中,所述检查点标识根据第一方面中任一所述的区块链的数据修改方法生成;
所述普通节点根据普通区块链中的数据计算检查点标识,与监测到的检查点标识进行比较;
如果比较结果不一致,则所述普通节点向检查节点发起区块同步请求,并接收检查节点反馈的同步区块的数据和检查点标识,其中,所述检查点标识为检查节点根据同步区块的数据计算确定;
所述普通节点根据所述检查点标识验证所述同步区块的数据真实性;
所述同步区块的数据真实性验证通过,则所述普通节点存储所述同步区块的数据。
第三方面,本发明实施例还提供了一种区块链的数据修改装置,配置于检查区块链网络中的检查节点中,该装置包括:
待检查区块获取模块,用于检查节点从普通节点获取至少一个同步区块,其中,所述同步区块为普通区块;
修改数据确定模块,用于所述检查节点对所述同步区块的数据,按照设定修改规则进行检查,以确定目标修改数据;
修改数据修改模块,用于所述检查节点对目标修改数据进行修改;
检查点标识生成模块,用于在确定满足检查点生成规则时,所述检查节点根据所述同步区块生成检查点;
标识计算模块,用于根据所述同步区块的数据计算所述检查点的检查点标识;
记录模块,用于所述检查节点将检查点标识与所述待检查区块进行关联记录;
确认存储模块,用于所述检查节点将所述检查点标识经检查区块链网络中的检查节点确认,以存储到检查区块中;
其中,所述待检查区块用于供普通节点同步下载。
第四方面,本发明实施例还提供了一种区块链的数据同步装置,配置于普通区块链网络中的普通节点中,该装置包括:
标识监测模块,用于所述普通节点监测检查区块链中的检查点标识,其中,所述检查点标识根据第一方面中任一所述的区块链的数据修改方法生成;
标识比对模块,用于所述普通节点根据普通区块链中的数据计算检查点标识,与监测到的检查点标识进行比较;
通信模块,用于如果比较结果不一致,则所述普通节点向检查节点发起区块同步请求,并接收检查节点反馈的同步区块的数据和检查点标识,其中,所述检查点标识为检查节点根据同步区块的数据计算确定;
数据验证模块,用于所述普通节点根据所述检查点标识验证所述同步区块的数据真实性;
数据存储模块,用于所述同步区块的数据真实性验证通过,则所述普通节点存储所述同步区块的数据。
第五方面,本发明实施例还提供了一种设备,该设备包括:
一个或多个处理器;
存储装置,用于存储一个或多个程序;
当所述一个或多个程序被所述一个或多个处理器执行,使得所述一个或多个处理器实现第一方面中任意所述的区块链的数据修改方法,或者实现第二方面中任意所述的区块链的数据同步方法。
第六方面,本发明实施例还提供了一种存储介质,其上存储有计算机程序,该程序被处理器执行时实现第一方面中任意所述的区块链的数据修改方法,或者实现第二方面中任意所述的区块链的数据同步方法。
本发明实施例提供的区块链的数据修改和同步方法、装置、设备及存储介质,检查节点对从普通节点获取的同步区块的数据,按照设定修改规则进行检查,可确定同步区块的数据中需要进行修改的目标修改数据,并对该目标修改数据进行修改,能够实现从区块链中删除有害数据;而后为了便于普通节点对同步区块进行下载,检查节点在确定满足检查点生成规则时,依据同步区块及同步区块的数据分别生成检查点及检查点标识,并建立检查点标识与同步区块的关联关系;为了进一步提高检查点标识的可信度,检查节点之后将该检查点标识传输至检查区块链网络中,由其他检查节点确认后,存储到检查区块中。本方案,相比于现有的区块链数据处理方案,不仅可以修改区块链中的数据,而且通过建立检查点,便于普通节点以检查点为单位,直接将修改的同步区块的数据导入节点本地,不需要再重复执行校验,能够加速数据同步。
附图说明
图1是本发明实施例一中提供的一种区块链的数据修改方法的流程图;
图2是本发明实施例二中提供的一种区块链的数据修改方法的流程图;
图3是本发明实施例三中提供的一种区块链的数据修改方法的流程图;
图4是本发明实施例四中提供的一种区块链的数据同步方法的流程图;
图5是本发明实施例五中提供的一种区块链的数据同步方法的流程图;
图6是本发明实施例六中提供的一种区块链的数据修改装置的结构示意图;
图7是本发明实施例七中提供的一种区块链的数据同步装置的结构示意图;
图8是本发明实施例八中提供的一种设备的结构示意图。
具体实施方式
下面结合附图和实施例对本发明作进一步的详细说明。可以理解的是,此处所描述的具体实施例仅仅用于解释本发明,而非对本发明的限定。另外还需要说明的是,为了便于描述,附图中仅示出了与本发明相关的部分而非全部结构。
在介绍本发明各实施例之前,先对本发明实施例的应用场景进行说明。为实现对区块链的数据修改,本发明实施例基于区块链技术,构建了两个平行的区块链网络,分别为由至少两个普通节点构成的普通区块链网络,以及由至少两个检查节点构成的检查区块链网络。其中,普通区块链网络按照现有技术执行常规区块链的操作,普通区块链由多个普通区块构成;检查区块链网络专用于检查普通区块的数据并进行清除有害数据的操作。检查节点可以处于多个第三方权威机构的控制下,或者处于政府监管机构的控制下,相对来说可靠性和权威性更高。基于此对本发明实施例的技术方案进行介绍。
实施例一
图1为本发明实施例一提供的一种区块链的数据修改方法的流程图,本实施例可适用于对区块链中的数据进行修改的情况,尤其是检查区块链网络中的检查节点对从普通区块链网络中的普通节点获取的同步区块的数据进行修改以清除有害数据的场景。本发明实施例的方案应用于检查区块链网络中的检查节点,该方法可以由区块链的数据修改装置来执行,该装置可采用硬件和/或软件的方式实现,并可集成于承载检查节点的计算设备中。参见图1,该具体包括:
S110,检查节点从普通节点获取至少一个同步区块,其中,同步区块为普通区块。
本实施例中,检查节点可以处于多个第三方权威机构的控制下,或者处于政府监管机构的控制下等,具备高可靠性及较强的公信力,能够对获取的同步区块的数据进行检查且清除其中的有害数据等。可选的,本实施例中该检查节点所在的检查区块链网络包括至少两个检查节点。
普通节点可通过对普通区块链网络中的事务请求进行处理形成普通区块;同步区块为检查节点从普通节点中获取的普通区块。可选的,普通区块的个数与同步区块的个数相对应,检查节点可以获取普通节点的整条区块链或设定数量的同步区块,还可以获取存储特定事务数据所在的同步区块等。此外,检查节点所获取的同步区块的区块标识可以是连续的,也可以是不连续的;可选的,本实施例中,检查节点所获取的同步区块的区块标识是连续的。
检查节点可以定期或检测到普通区块链中区块个数达到设定数量等,从普通节点中获取至少一个同步区块。例如依据区块生成周期从普通节点获取同步区块。示例性的,检查区块链的区块生成周期与普通区块链的区块生成周期不同。检查区块链的区块生成周期为普通区块链的区块生成周期的N倍,检查节点从普通节点获取的同步区块的数量为N,N为大于等于2的自然数。例如,检查区块链的区块生成周期为普通区块链的区块生成周期的300倍,则检查节点在执行一次检查区块的生成过程中,一次性从普通节点中获取300个同步区块,也就是说检查节点可以在普通节点每生成300个区块,从普通节点中获取一次同步区块。
S120,检查节点对同步区块的数据,按照设定修改规则进行检查,以确定目标修改数据。
本实施例中,同步区块的数据是指同步区块所对应的所有数据,可以包括存储于区块中的区块数据,以及独立于区块链存储在普通节点本地的数据等。设定修改规则是指预先设定的对同步区块的数据进行处理的规则,可以包括内容修改规则,用于去除、更改或替换不符合规定的内容等。例如,设定修改规则中规定同步区块的数据中包含色情、恐暴等内容时,将此内容删除。
为了保证检查区块链网络能够稳定运行,示例性的,参与到检查区块链网络中的检查节点所部署的设定修改规则相同,且为了降低检查节点作假的概率,提高数据修改的可信度,可以将设定修改规则存储在检查区块链中,使设定修改规则透明化,如可以将该设定修改规则部署在检查区块链的创世区块中或更新配置检查区块的部署数据中等。
本实施例中,目标修改数据为同步区块的数据中满足设定修改规则所规定的数据。具体的,检查节点可以按照设定修改规则对同步区块的数据进行检查,若同步区块中存在需要修改的数据,则可以将该数据作为目标修改数据即执行步骤S130的操作。若同步区块中不存在需要修改的数据,则可以直接执行步骤S140的操作。
S130,检查节点对目标修改数据进行修改。
具体的,检查节点在执行步骤S120确定目标修改数据后,可以按照设定修改规则的规定对目标修改数据中的某些内容进行修改,或者直接删除;还可以是采用其他内容替换目标修改数据等。
需要说明的是,由于本实施例中的检查节点处于多个第三方权威机构的控制下,或者处于政府监管机构的控制下,在实现能够从区块链中删除有害数据的同时,可靠保证修改操作的权威性。
S140,在确定满足检查点生成规则时,检查节点根据同步区块生成检查点,根据同步区块的数据计算检查点的检查点标识。
本实施例中,检查点生成规则是指预先设定的检查区块链网络中的检查节点创建检查点时所要满足的规则;为了保证检查区块链网络能够稳定运行以及对检查点创建权限的限定,示例性的,参与到检查区块链网络中的检查节点所部署的检查点生成规则相同,且为了降低检查节点作假的概率,可以将检查点生成规则存储在检查区块链中,使设定修改规则透明化。如该检查点生成规则可以在检查区块链创建时预先约定,存储于检查区块链的创世区块中,即检查区块链的第0个检查区块中;还可以在检查区块链创建过程中基于投票选择机制,添加到检查区块链的某个检查区块中,如可以以智能合约的形式,或其他检查区块链网络认可的形式提交到检查区块链网络中,并存储在某个检查区块里面等。示例性的,检查点生成规则可以配置于检查区块链的创世区块中或更新配置检查区块的部署数据中。
可选的,满足检查点生成规则可以包括但不限于:1)检查节点检查到所获取的同步区块高度满足预设区块高度间隔,同步区块高度是指同步区块的个数如100;2)检查节点检测到当时时间满足预设检查点创建时间间隔;3)检测节点确定所获取的同步区块中存在目标修改数据等。也可以是其他的触发通知机制,用于通知检查节点创建检查点等,本实施例中对此不做限定。
此处及步骤S140之后的,同步区块均为经由检查节点修改后的区块;所谓检查点也可成为存档点,用于指示对某一区间如预设区块高度间隔内的同步区块进行存档处理。且,检查点一般可以指同步区块的结束位置,而同步区块的起始位置默认为检查节点上一次所创建的检查点的位置,此外,同步区块的起始位置还可以根据实际需求进行设置。
同步区块的数据是指同步区块所对应的所有数据,可以包括存储于同步区块中的区块数据,以及独立于普通区块链存储在普通节点本地的数据等。检查点标识是指用于唯一识别某一检查点的标志,可以用于代表检查点所对应的同步区块的信息等。可选的,检查点标识的计算方式可以存储于检查区块链的创世区块中或更新配置检查区块的部署数据中,检查节点需按照检查区块链的创世区块中或更新配置检查区块的部署数据中规定的方式计算检查点标识;此外,检查节点还可以采用本地设定的计算方式如自身的公钥、私钥或签名算法如SHA256等计算检查点标识。
具体的,检查节点在对目标修改数据进行修改之后,若检查到同步区块高度满足预设区块高度间隔,或者检查节点当前时间满足预设检查点创建时间间隔等,则根据同步区块生成检查节点;而后可以对同步区块的数据采用哈希算法如SHA256进行哈希运算,进而得到检查点的检查点标识。
可选的,若检查点生成规则为检查节点所获取的同步区块高度满足预设区块高度间隔,当检查节点检测到同步区块的高度不满足预设区块高度间隔时,则可返回执行步骤S110至S130的操作,直至满足该检查点生成规则。若检查点生成规则为检测节点确定所获取的同步区块中存在目标修改数据,因此当检查节点对目标修改数据进行修改之后,自动基于同步区块创建检查点。
S150,检查节点将检查点标识与同步区块进行关联记录。
本实施例中,同步区块用于供普通节点同步下载。
具体的,为了便于后续普通节点进行同步下载,检查节点可以本地建立同步区块及检查点标识之间的关联关系,并存储于本地预先存储的检查点索引表或存储于当前检查区块中。
S160,检查节点将检查点标识经检查区块链网络中的检查节点确认,以存储到检查区块中。
具体的,检查节点可以将检查点标识作为事务请求传输至检查区块链网络中,以请求当前检查区块节点对该检查点标识进行处理,生成事务数据存储在检查区块中。还可以将检查点标识或以智能合约的形式传输至检查区块链网络中,以请求其他检查节点对该检查点标识进行验证并反馈,而后依据反馈结果确定该检查点标识是否有效,若有效则存储在检查区块中;若无效,则丢弃等。此外,若检查节点为当前检查区块生成节点,则可以直接将检查点标识作为事务数据存储在当前检查区块中,而后将当前检查区块传输至检查区块链网络,以便其他检查节点进行验证存储。
本发明实施例提供的技术方案,检查节点对从普通节点获取的同步区块的数据,按照设定修改规则进行检查,可确定同步区块的数据中需要进行修改的目标修改数据,并对该目标修改数据进行修改,能够实现从区块链中删除有害数据;而后为了便于普通节点对同步区块进行下载,检查节点在确定满足检查点生成规则时,依据同步区块及同步区块的数据分别生成检查点及检查点标识,并建立检查点标识与同步区块的关联关系;为了进一步提高检查点标识的可信度,检查节点之后将该检查点标识传输至检查区块链网络中,由其他检查节点确认后,存储到检查区块中。本方案,相比于现有的区块链数据处理方案,不仅可以修改区块链中的数据,而且通过建立检查点,便于普通节点以检查点为单位,直接将修改的同步区块的数据导入节点本地,不需要再重复执行校验,能够加速数据同步。
实施例二
图2为本发明实施例二提供的一种区块链的数据修改方法的流程图,本实施例在上述实施例的基础上,进一步的对检查节点将检查点标识经检查区块链网络中的检查节点确认进行解释说明。提供了一种确定检查点标识有效的方案,参见图2,该方法具体包括:
S210,检查节点从普通节点获取至少一个同步区块,其中,同步区块为普通区块。
S220,检查节点对同步区块的数据,按照设定修改规则进行检查,以确定目标修改数据。
S230,检查节点对目标修改数据进行修改。
S240,在确定满足检查点生成规则时,检查节点根据同步区块生成检查点,根据同步区块的数据计算检查点的检查点标识。
S250,检查节点将检查点标识与同步区块进行关联记录。
S260,检查节点将检查点标识在检查区块链网络中传输,以请求其他检查节点进行验证,并反馈认可签名。
本实施例中,认可签名是其他检查节点对检查点标识进行验证并采用密钥,如私钥对该检查点标识进行签名后反馈给该检查节点的。可选的,认可签名中可以包括经由其他检查节点密钥,如私钥签名的检查点标识、其他检查节点的密钥如公钥,以及节点标识等。其中,节点标识是指用于唯一识别某一检查节点身份的标志,可以是节点ID或网络IP地址等。
具体的,检查节点在根据同步区块的数据计算得到检查点的检查点标识后,可以将该检查点标识在检查区块链网络中传输,以请求其他检查节点对该检查点标识进行验证并反馈认可签名。其他检查节点接收到该检查节点发送的检查点标识后,可以采用与该检查节点相同的计算方式计算检查点的检查点标识,并将计算得到的检查点标识与接收的检查点标识进行比对,若不一致,则可以向检查区块链网络发送检查点标识验证失败信息或不进行任何操作等;若一致,则采用密钥如私钥对检查点标识进行签名,而后将经由私钥签名的检查点标识以及节点公钥等一起作为认可签名,反馈至该检查节点;该检查节点接收其他检查节点反馈的认可签名。
S270,如果接收到的认可签名符合生效条件,则检查节点确定检查点标识生效。
本实施例中,生效条件是指认可签名的反馈情况符合预设要求,即其他检查节点对此检查点的认可满足预设要求。具体的,可以是预先设定的认可签名的数量所需达到的相对比例或绝对数量等,如认可签名的数量大于检查区块链网络总检查节点数量的一半。为了进一步对检查点创建的权限进行管控,可选的,生效条件也可以配置于检查区块链的创世区块中或更新配置检查区块的部署数据中,以保证该生效条件难以被篡改及公开透明性。
具体的,若检查节点接收到其他检查节点反馈的认可签名后,可以向CA认证中心发送查询通信证书有效的检查节点数量,以获取参与检查区块链网络的检查节点数量,或从本地维护的节点身份标识的表中查询获取参与检查区块链网络的检查节点数量;而后从检查区块链的创世区块中获取生效条件,或从当前检查区块向前遍历以获取生效条件,基于该生效条件,确定接收到的认可签名是否符合生效条件;若认可签名符合生效条件,则该检查节点确定检查点标识生效;若认可签名不符合生效条件,则说明检查点标识无效,该检查节点可放弃本次检查点的创建。
示例性的,如果接收到的认可签名符合生效条件,则检查节点确定检查点标识生效可以包括下述步骤:
A、检查节点从接收到的认可签名中获取经其他检查节点私钥签名的检查点标识,以及获取其他检查节点的公钥。
具体的,在接收到其他检查节点反馈的认可签名后,针对每个认可签名,检查节点可以从该认可签名中获取经由任一其他检查节点私钥签名的检查点标识,以及该其他检查节点的公钥,而后采用该其他检查节点的公钥对采用该其他检查节点私钥签名的检查点标识进行识别,得到检查点标识;将得到的检查点标识与本地计算的检查点标识进行比对,若一致,则说明经由该其他检查节点私钥签名的检查点标识有效;若不一致,则说明经由该其他检查节点私钥签名的检查点标识无效。
B、如果通过公钥验证签名的检查点标识有效,则检查节点确定认可签名有效。
具体的,对于每个经由其他检查节点私钥签名的检查点标识,检查节点若通过任一其他检查节点的公钥验证经由该其他检查节点私钥签名的检查点标识有效,则确定该其他检查节点所反馈的认可签名有效;否则,确定该其他检查节点所反馈的认可签名无效。
C、如果有效的认可签名的数量符合生效条件,则检查节点确定检查点标识生效。
具体的,检查节点可以先确定参与检查区块链网络的检查节点数量,而后从检查区块链的创世区块中获取生效条件,或从当前检查区块向前遍历以获取生效条件,基于该生效条件,确定有效的认可签名的数量是否符合生效条件中规定的相对比例或绝对数量;若符合,则该检查节点确定检查点标识生效;若不符合,则说明检查点标识无效,该检查节点可放弃本次检查点的创建。
S280,检查节点将认可签名与检查点标识一并存储到检查区块中。
具体的,检查节点在确定检查点标识生效之后,可以本地建立同步区块、检查点标识及认可签名三者之间的关联关系,并存储于本地预先构建的检查点索引表或存储于当前检查区块中等。
需要说明的是,本实施例中的检查节点为当前检查区块生成节点;若检查节点为其他检查节点,则在确定检查点标识生效之后,可以将检查点标识及认可签名作为事务请求发送给当前检查区块生成节点,以请求当前加检查区块生成节点将该认可签名与检查点标识关联存储在当前检查区块中,并反馈当前检查区块。
本发明实施例提供的技术方案,检查节点对从普通节点获取的同步区块的数据,按照设定修改规则进行检查,可确定同步区块的数据中需要进行修改的目标修改数据,并对该目标修改数据进行修改,能够实现从区块链中删除有害数据;而后为了便于普通节点对同步区块进行下载,检查节点在确定满足检查点生成规则时,依据同步区块及同步区块的数据分别生成检查点及检查点标识,且为了进一步提高检查点标识的可信度以及对检查点创建的权限进行管控,以确保检查区块链中检查区块数据具备高安全性,检查节点可以将该检查点标识传输至检查区块链网络中,以请求其他检查节点对检查点标识进行验证并反馈认可签名;之后对接收到的认可签名的有效性进行确定,并在有效的认可签名符合生效条件的情况下,建立检查点标识与同步区块的关联关系并存储到检查区块中。本方案,相比于现有的区块链数据处理方案,不仅可以修改区块链中的数据,而且通过建立检查点,便于普通节点以检查点为单位,直接将修改的同步区块的数据导入节点本地,不需要再重复执行校验,能够加速数据同步。
实施例三
图3为本发明实施例三提供的一种区块链的数据修改方法的流程图,本实施例在上述实施例的基础上,进一步对检查节点根据同步区块的数据计算检查点的检查点标识进行解释说明。参见图3,该方法具体包括:
S310,检查节点从普通节点获取至少一个同步区块,其中,同步区块为普通区块。
S320,检查节点对同步区块的数据,按照设定修改规则进行检查,以确定目标修改数据。
S330,检查节点对目标修改数据进行修改。
S340,在确定满足检查点生成规则时,检查节点根据同步区块生成检查点。
S350,检查节点将同步区块的区块数据和本地表数据导出,形成同步区块文件。
本实施例中,区块数据是指存储于同步区块中的数据,本地表数据是指独立于普通区块链存储在普通节点本地的数据。示例性的,区块数据可以包括区块体和区块头,区块头用于存储前一区块标识、区块创建的时间戳、随机数、目标哈希及该区块内的事务数据所建立的梅克尔树根等;区块体用于存储事务数据本身。由于智能合约的运行函数、执行结果以及交易历史数据等数据量相对较庞大,而未花费交易输出数据数据量相对较小。因此,优选在本实施例中,区块体用于存储未花费交易输出数据;本地表数据用于存储智能合约的运行函数和执行结果,以及用于存储交易历史数据等。
其中,未花费交易输出数据即UTXO(Unspent Transaction Output)数据,是数字货币交易的基本单位,是一个包含交易数据和执行代码的数据结构,也可以说是,某地址如账户B已经收到的但是尚未花费出去的加密数字货币。基于UTXO数据,通过交易的输入和输出,可以将资金变化成一段数字结构(也可以称为Transaction,或者交易订单)。对应的,交易历史数据即为已花费出去的数字货币。运行函数是指运行智能合约所对应的代码段的过程中涉及的函数,具体包括该智能合约本身所写入的函数及存在动态绑定关系、在运行中调用的函数等。执行结果即为运行智能合约对应的代码段后,输出的结果。
具体的,检查节点可以将同步区块的区块数据和本地表数据导出,并进行序列化处理,形成同步区块文件。同步区块文件用于代表检查点所对应的同步区块的数据信息,可选的,同步区块文件可以为一个或多个。
示例性的,检查节点将同步区块的区块数据和本地表数据导出,形成同步区块文件可以包括:检查节点将同步区块的区块数据和本地表数据导出,形成一个同步区块文件;或者检查节点将同步区块的区块数据和本地表数据,按照数据类型表分别导出,形成多个同步区块文件。
本实施例中,数据类型是指同步区块的数据所涉及的种类;可以包括UTXO数据、智能合约数据(智能合约的运行函数和执行结果所对应的数据),以及交易历史数据三种类型。为了便于管理,普通节点可以按照数据类型进行分类存储,同一类型的数据存储于同一数据表中,也就是说一个数据类型表中存储一类数据,数据类型表的个数代表了数据的种类数。因此,检查节点可以直接将区块链中同步区块的区块数据和本地表数据导出,进行处理后生成一个同步区块文件;还可以按照数据类型表,将一个数据类型表中的数据导出形成一个同步区块文件,进而形成多个同步区块文件。
可选的,本实施例中的同步区块的数据可以基于Level DB形式的数据库存储数据。因此,若检查节点将区块链中的同步区块的区块数据和本地表数据,按照数据类型表分别导出,形成多个同步区块文件,则可依据Level DB表名、普通区块链名称或检查区块链名称,以及数据类型等确定各同步区块文件的名称。例如,同步区块文件名称为:普通区块链名称/检查区块链名称+数据类型(UTXO数据/智能合约数据/交易历史数据)+Level DB表名。若检查节点将同步区块的区块数据和本地表数据导出,形成一个同步区块文件,该同步区块文件的名称则可以直接依据普通区块链名称或检查区块链名称,及Level DB表名确定。
综上所述,本发明实施例中用于计算检查点标识的数据,不限于只有普通区块链即同步区块上本身存储的数据,还可以包括与普通区块链关联的本地表数据。本地表数据的存储分类也不限于上述三类,可以是基于存储架构需要而确定的各个存储表。
S360,检查节点根据同步区块文件中的数据,计算检查点的检查点标识。
具体的,检查节点可以按照检查区块链的创世区块中或更新配置检查区块的部署数据中规定的方式,或者检查节点本地设定的计算方式等,根据同步区块文件中的数据计算检查点标识。例如,可以采用哈希算法对同步区块文件中的数据进行哈希运算,得到哈希值,将该哈希值作为检查点的检查点标识。
本实施例中,同步区块文件的数量不同,基于同步区块文件确定检查点标识的方式不同。示例性的,检查节点根据同步区块文件中的数据,计算检查点的检查点标识可以包括:检查节点根据同步区块文件中的数据计算哈希值,作为检查点标识。具体的,检查节点可以采用哈希算法对同步区块文件中的数据计算哈希值,将该哈希值作为检查点标识。
还可以是:检查节点将各个同步区块文件分别计算文件哈希值,根据各个文件哈希值建立梅克尔树,将梅克尔树的根作为检查点标识。本实施例中,文件哈希值是基于一个同步区块文件中的数据计算哈希值得到的。具体的,检查节点在可以采用哈希算法对各同步区块文件分别计算文件哈希值,而后依据各个文件哈希值,采用梅克尔树算法生成梅克尔树,将梅克尔树的根作为检查点标识。
此外,检查节点还可以根据同步区块的区块头数据计算哈希值,作为检查点标识。具体的,检查节点可以从每个同步区块的区块头中获取该同步区块的区块标识,而后将各个同步区块的区块标识按照各个同步区块的编号顺序连接在一起作为一个整体标识,并对该整体标识计算哈希值,得到检查点标识;还可以对每个同步区块的区块头数据计算哈希值,而后依据各哈希值,采用梅克尔树算法生成梅克尔树,将梅克尔树的根作为检查点标识。本实施例中,基于同步区块的区块头数据计算检查点标识的方式,更适用于普通节点本地不存储普通区块链的轻量级节点进行后续同步区块的数据验证。
S370,检查节点将检查点标识与同步区块进行关联记录。
S380,检查节点将检查点标识经检查区块链网络中的检查节点确认,以存储到检查区块中。
本发明实施例提供的技术方案,检查节点对从普通节点获取的同步区块的数据,按照设定修改规则进行检查,可确定同步区块的数据中需要进行修改的目标修改数据,并对该目标修改数据进行修改,能够实现从区块链中删除有害数据;而后为了便于普通节点对同步区块进行下载,检查节点在确定满足检查点生成规则时,依据同步区块生成检查点,将同步区块的区块数据和本地表数据导出,并进行序列化处理,形成同步区块文件;并基于同步区块文件的数据计算检查点的检查点标识,且为了进一步提高检查点标识的可信度以及对检查点创建的权限进行管控,以确保检查区块链中检查区块数据具备高安全性,检查节点之后将该检查点标识传输至检查区块链网络中,由其他检查节点确认后,存储到检查区块中。本方案,相比于现有的区块链数据处理方案,不仅可以修改区块链中的数据,而且通过建立检查点,便于普通节点以检查点为单位,直接将修改的同步区块的数据导入节点本地,不需要再重复执行校验,能够加速数据同步。
实施例四
图4为本发明实施例四提供的一种区块链的数据同步方法的流程图,本实施例可适用于普通区块链网络中的普通节点进行区块同步的情况,尤其适用于普通节点在监测到检查区块链中存在检查点标识,且确认该检查点标识与基于普通区块链中的数据计算得到的检查点标识不一致的情况下,基于检查点进行区块同步的场景。本实施例中的检查点可以采用上述实施例中的方案进行创建。本发明实施例的方案应用于普通区块链网络中的普通节点,该方法可以由区块链的数据同步装置来执行,该装置可采用软件和/或硬件的方式实现,并可集成于承载普通节点的计算设备中。参见图4,该方法具体包括:
S410,普通节点监测检查区块链中的检查点标识。
其中,检查点标识可以由检查区块链中的检查节点根据上述任一实施例提供的区块链的数据修改方法生成。本实施例中,普通节点可以是当前普通区块生成节点,也可以是具有监控权限的中心普通节点,还可以是任一普通节点等。优选是任一普通节点分别检测检查区块链中的检查点标识,从而使本地数据能够保持与检查链认可的区块数据一致。
可选的,普通节点可以通过监听检查区块链中有检查点标识存储事务请求,来监测检查区块链中的检查点标识;也可以监听检查区块链中有检查点标识生成或存储行为,来检查监测检查区块链中的检查点标识;还可以定时如周期性向检查区块链发送检查点标识获取请求,进而监测检查区块链中的检查点标识;此外,还可以是在检查节点从普通节点中获取普通区块之后,监测检查区块链中的检查点标识等。本实施例中,优选为普通节点在检查节点从普通节点中获取普通区块之后,监测检查区块链中的检查点标识。
S420,普通节点根据普通区块链中的数据计算检查点标识,与监测到的检查点标识进行比较。
具体的,当普通节点监测到检查区块链中有检查点标识生成,则可以先确定检查节点从普通区块链中获取的普通区块,而后依据普通区块链中普通区块的数据计算检查点标识;将计算得到的检查点标识与检测到的检查点标识进行比对,若不一致,则向检查节点发起区块同步请求即执行步骤S430的操作。若一致,则向普通区块链网络发送标标识校验一致信息,以便其他普通节点确认检查节点未对普通区块中的数据进行修改,也就是说该普通区块中的数据不包含有害数据等。或者,也可以是每个普通节点分别与检查节点进行检查点标识的检测,而无需将自己的检查结果通报给其他普通节点。
S430,如果比较结果不一致,则普通节点向检查节点发起区块同步请求,并接收检查节点反馈的同步区块的数据和检查点标识,其中,检查点标识为检查节点根据同步区块的数据计算确定。
本实施例中,区块同步请求是指普通节点在确定检查节点对获取的普通区块的数据修改的情况下,需更新修改的普通区块时,向检查节点所发送的请求。可选的,区块同步请求中可以包括监测到的检查点标识以及普通节点标识等。
同步区块为检查节点对从普通节点获取的普通区块按照设定修改规则修改后的区块,本实施例为将普通区块中的有害数据清除后得到的。同步区块的数据是指同步区块所对应的所有数据,可以包括存储于区块中的区块数据,以及独立于普通区块链存储在普通节点本地的数据等。示例性的,同步区块的数据可以包括:由同步区块的区块数据和本地表数据导出的一个同步区块文件;或由同步区块的区块数据和本地表数据,按照数据类型表分别导出的多个同步区块文件。区块数据包括区块体和区块头,区块体用于存储未花费交易输出数据;本地表数据用于存储智能合约的运行函数和执行结果,以及用于存储交易历史数据。检查点标识为检查节点根据同步区块的数据计算确定。
具体的,普通节点在确定根据普通区块链中的数据计算的检查点标识,与监测到的检查点标识不一致时,可向检查节点发起区块同步请求;检查节点接收到该区块同步请求后,可依据区块同步请求中包括的监测到的检查点标识,从预先存储的检查点索引表中获取该检查点标识关联的同步区块,而后向该普通节点反馈同步区块和检查点标识。其中,检查点索引表用于存储同步区块及检查点标识之间的关联关系。
S440,普通节点根据检查点标识验证同步区块的数据真实性。
具体的,普通节点根据检查点标识验证同步区块的数据真实性的具体操作过程如下:依据检查节点所反馈的同步区块的数据,采用与检查节点相同的计算方式计算检查点标识,并将计算得到的检查点标识与检查节点反馈的检查点标识进行比对,若一致,则说明同步区块的数据是真实的,也就是说检查节点未作假或任意篡改同步区块的数据等;若不一致,则可以向普通区块链网络或检查区块链网络发送包括同步区块的数据的验证请求,以请求其他普通节点或其他检查节点依据同步区块的数据计算检查点标识并反馈,依据反馈的结果确认是普通节点计算不正确还是检查节点所反馈的同步区块的数据有误等。或者,也可以是每个普通节点分别与检查节点进行同步区块的数据的检测,而无需将自己的检查结果通报给其他普通节点。
示例性的,普通节点根据检查点标识验证同步区块的数据真实性可以是:普通节点根据同步区块文件中的数据计算哈希值,作为检查点标识,与接收到的检查点标识进行比较,以验证数据真实性;或者是普通节点将各个同步区块文件分别计算文件哈希值,根据各个文件哈希值建立梅克尔树,将梅克尔树的根作为检查点标识,与接收到的检查点标识进行比较,以验证数据真实性。若普通节点为轻量级节点,还可以是根据同步区块的区块头数据计算哈希值,作为检查点标识,与接收到的检查点标识进行比较,以验证数据真实性等。
S450,同步区块的数据真实性验证通过,则普通节点存储同步区块的数据。
具体的,若普通节点根据检查点标识验证同步区块的数据是真实的,则可以直接将该检查点标识关联的同步区块的数据导入节点本地。此外,若区块同步请求是当前普通区块生成节点所发起的,则当前普通区块生成节点在同步区块的数据真实性验证通过后,可以将同步区块的数据直接反馈给普通区块链网络的其他普通节点,以使该普通节点将同步区块的数据导入节点本地,进行完成区块数据的同步,以及清除普通区块链中有害数据。也可以是每个普通节点各自独立完成同步区块的数据验证及同步,无需向其他普通节点通报验证及同步情况。
本发明实施例提供的技术方案,普通节点将根据普通区块链中的数据计算的检查点标识与监测检查区块链得到的检查点标识进行比对,在不一致的情况下,向检查节点发起同步请求,以请求检查节点反馈同步区块的数据及检查点标识;而后依据检查节点反馈的检查表示验证同步区块的数据真实性,在同步区块的数据真实性验证通过时,存储同步区块的数据。本方案,普通节点通过直接将检查节点反馈的同步区块数据导入节点本地,在能够清除普通区块数据中的有害数据同时,加快了数据同步速度。
实施例五
图5为本发明实施例五提供的一种区块链的数据同步方法的流程图,本实施例在上述实施例的基础上进一步的优化,提供了一种普通节点先验证检查点标识真实性,在确定检查点标识真实的情况下,依据检查点标识验证同步区块的数据真实性的方案。参见图5,该方法具体包括:
S510,普通节点监测检查区块链中的检查点标识。
S520,普通节点根据普通区块链中的数据计算检查点标识,与监测到的检查点标识进行比较。
S530,如果比较结果不一致,则普通节点向检查节点发起区块同步请求,并接收检查节点反馈的同步区块的数据和检查点标识,其中,检查点标识为检查节点根据同步区块的数据计算确定。
S540,普通节点从检查区块链的区块中,获取检查点标识,则确定检查点标识真实;或普通节点根据检查点标识以及对应的认可签名,确定检查点标识真实。
为了保证所验证的同步区块的数据的权威性,普通节点先对检查点标识进行验证,在检查点标识验证通过的情况下,依据检查点标识验证同步区块的数据真实性。
由于检查节点处于多个第三方权威机构的控制下,或者处于政府监管机构的控制下等,具备高可靠性及权威性。因此,普通节点可默认接收到的检查点标识是真实的,也就是说普通节点获取检查点标识,并确定检查点标识真实;而后直接依据检查点标识验证所接收到的同步区块的数据真实性。
还可以先验证检查点标识真实性,在确定检查点标识真实的情况下,依据检查点标识验证同步区块的数据真实性。由于检查节点在创建检查点时,需将检查点标识在检查区块链网络中传输,以请求其他检查节点对该检查点标识进行验证,并反馈认可签名。因此,普通节点可以先从检查区块链中获取检查点标识对应的认可签名,而后可依据认可签名的数量来验证检查点标识的真实性。具体的,普通节点确定认可签名的数量,以及参与检查区块链网络的检查节点数量;而后依据认可签名数据及检查区块链网络的检查节点数量,确定认可签名的数量与参与检查区块链网络的检查节点数量的之间的比例是否大于设定比例值,或者认可签名的数量与参与检查区块链网络的检查节点数量的之间绝对差值是否大于设定数量;若满足上述任一种情况,则确定检查点标识是真实的;若均不满足上述任一种情况,则确定检查节点所反馈的检查点标识无效即不是真实的。
S550,普通节点根据检查点标识验证同步区块的数据真实性。
S560,同步区块的数据真实性验证通过,则普通节点存储同步区块的数据。
本发明实施例提供的技术方案,普通节点将根据普通区块链中的数据计算的检查点标识与监测检查区块链得到的检查点标识进行比对,在不一致的情况下,向检查节点发起同步请求,以请求检查节点反馈同步区块的数据及检查点标识;而后依据检查节点反馈的检查表示验证同步区块的数据真实性,在同步区块的数据真实性验证通过时,存储同步区块的数据。本方案,普通节点通过直接将检查节点反馈的同步区块数据导入节点本地,在能够清除普通区块数据中的有害数据同时,加快了数据同步速度。
实施例六
图6为本发明实施例六提供的一种区块链的数据修改装置的结构示意图,该装置可配置于检查区块链网络中的检查节点中,可执行本发明实施例一、二和三所提供的区块链的数据处理方法,具备执行方法相应的功能模块和有益效果。如图6所示,该装置包括:
待检查区块获取模块610,用于检查节点从普通节点获取至少一个同步区块,其中,同步区块为普通区块;
修改数据确定模块620,用于检查节点对同步区块的数据,按照设定修改规则进行检查,以确定目标修改数据;
修改数据修改模块630,用于检查节点对目标修改数据进行修改;
检查点生成模块640,用于在确定满足检查点生成规则时,检查节点根据同步区块生成检查点;
标识计算模块650,用于根据同步区块的数据计算检查点的检查点标识;
记录模块660,用于检查节点将检查点标识与待检查区块进行关联记录;
确认存储模块670,用于检查节点将检查点标识经检查区块链网络中的检查节点确认,以存储到检查区块中;
其中,待检查区块用于供普通节点同步下载。
本发明实施例提供的技术方案,检查节点对从普通节点获取的同步区块的数据,按照设定修改规则进行检查,可确定同步区块的数据中需要进行修改的目标修改数据,并对该目标修改数据进行修改,能够实现从区块链中删除有害数据;而后为了便于普通节点对同步区块进行下载,检查节点在确定满足检查点生成规则时,依据同步区块及同步区块的数据分别生成检查点及检查点标识,并建立检查点标识与同步区块的关联关系;为了进一步提高检查点标识的可信度,检查节点之后将该检查点标识传输至检查区块链网络中,由其他检查节点确认后,存储到检查区块中。本方案,相比于现有的区块链数据处理方案,不仅可以修改区块链中的数据,而且通过建立检查点,便于普通节点以检查点为单位,直接将修改的同步区块的数据导入节点本地,不需要再重复执行校验,能够加速数据同步。
示例性的,检查区块链的区块生成周期与普通区块链的区块生成周期不同。检查区块链的区块生成周期为普通区块链的区块生成周期的N倍,检查节点从普通节点获取的同步区块的数量为N,N为大于等于2的自然数。
示例性的,检查节点所在的检查区块链网络包括至少两个检查节点,至少两个检查节点所部署的设定修改规则和检查点生成规则相同。
示例性的,确认存储模块670具体可以用于:
检查节点将检查点标识在检查区块链网络中传输,以请求其他检查节点进行验证,并反馈认可签名;
如果接收到的认可签名符合生效条件,则检查节点确定检查点标识生效;
其中,认可签名用于与检查点标识一并存储到检查区块中。
示例性的,标识计算模块650可以包括:
文件形成单元,用于检查节点将同步区块的区块数据和本地表数据导出,形成同步区块文件;
标识计算单元,用于检查节点根据同步区块文件中的数据,计算检查点的检查点标识。
示例性的,文件形成单元具体可以用于:
检查节点将同步区块的区块数据和本地表数据导出,形成一个同步区块文件;或检查节点将同步区块的区块数据和本地表数据,按照数据类型表分别导出,形成多个同步区块文件。
示例性的,区块数据包括区块体和区块头,区块体用于存储未花费交易输出数据;本地表数据用于存储智能合约的运行函数和执行结果,以及用于存储交易历史数据。
示例性的,标识计算单元具体可以用于:
检查节点根据同步区块文件中的数据计算哈希值,作为检查点标识;或
检查节点将各个同步区块文件分别计算文件哈希值,根据各个文件哈希值建立梅克尔树,将梅克尔树的根作为检查点标识。
实施例七
图7为本发明实施例七提供的一种区块链的数据同步装置的结构示意图,该装置可配置于普通区块链网络中的普通节点中,可执行本发明实施例四和五所提供的区块链的数据同步方法,具备执行方法相应的功能模块和有益效果。如图7所示,该装置包括:
标识监测模块710,用于普通节点监测检查区块链中的检查点标识,其中,检查点标识根据上述任一实施例提供的区块链的数据修改方法生成;
标识比对模块720,用于普通节点根据普通区块链中的数据计算检查点标识,与监测到的检查点标识进行比较;
通信模块730,用于如果比较结果不一致,则普通节点向检查节点发起区块同步请求,并接收检查节点反馈的同步区块的数据和检查点标识,其中,检查点标识为检查节点根据同步区块的数据计算确定;
数据验证模块740,用于普通节点根据检查点标识验证所述同步区块的数据真实性;
数据存储模块750,用于同步区块的数据真实性验证通过,则普通节点存储同步区块的数据。
本发明实施例提供的技术方案,普通节点将根据普通区块链中的数据计算的检查点标识与监测检查区块链得到的检查点标识进行比对,在不一致的情况下,向检查节点发起同步请求,以请求检查节点反馈同步区块的数据及检查点标识;而后依据检查节点反馈的检查表示验证同步区块的数据真实性,在同步区块的数据真实性验证通过时,存储同步区块的数据。本方案,普通节点通过直接将检查节点反馈的同步区块数据导入节点本地,在能够清除普通区块数据中的有害数据同时,加快了数据同步速度。
示例性的,同步区块的数据可以包括:由同步区块的区块数据和本地表数据导出的一个同步区块文件;或由同步区块的区块数据和本地表数据,按照数据类型表分别导出的多个同步区块文件。
示例性的,区块数据包括区块体和区块头,区块体用于存储未花费交易输出数据;本地表数据用于存储智能合约的运行函数和执行结果,以及用于存储交易历史数据。
示例性的,数据验证模块740具体可以用于:
普通节点根据同步区块文件中的数据计算哈希值,作为检查点标识,与接收到的检查点标识进行比较,以验证数据真实性;或
普通节点将各个同步区块文件分别计算文件哈希值,根据各个文件哈希值建立梅克尔树,将梅克尔树的根作为检查点标识,与接收到的检查点标识进行比较,以验证数据真实性。
示例性的,上述装置还可以包括:
标识验证模块,用于在普通节点根据检查点标识验证同步区块的数据真实性之前,普通节点从检查区块链的区块中,获取检查点标识,则确定检查点标识真实;或普通节点根据检查点标识以及对应的认可签名,确定检查点标识真实。
实施例八
图8为本发明实施例八提供的一种设备的结构示意图。图8示出了适于用来实现本发明实施方式的示例性设备12的框图。图8显示的设备12仅仅是一个示例,不应对本发明实施例的功能和使用范围带来任何限制。设备12典型的是承担检查区块链网络和/或普通区块链网络节点节点功能的计算设备。
如图8所示,设备12以通用计算设备的形式表现。设12的组件可以包括但不限于:一个或者多个处理器或者处理单元16,系统存储器28,连接不同系统组件(包括系统存储器28和处理单元16)的总线18。
总线18表示几类总线结构中的一种或多种,包括存储器总线或者存储器控制器,外围总线,图形加速端口,处理器或者使用多种总线结构中的任意总线结构的局域总线。举例来说,这些体系结构包括但不限于工业标准体系结构(ISA)总线,微通道体系结构(MAC)总线,增强型ISA总线、视频电子标准协会(VESA)局域总线以及外围组件互连(PCI)总线。
设备12典型地包括多种计算机系统可读介质。这些介质可以是任何能够被设备12访问的可用介质,包括易失性和非易失性介质,可移动的和不可移动的介质。
系统存储器28可以包括易失性存储器形式的计算机系统可读介质,例如随机存取存储器(RAM)30和/或高速缓存存储器32。设备12可以进一步包括其它可移动/不可移动的、易失性/非易失性计算机系统存储介质。仅作为举例,存储系统34可以用于读写不可移动的、非易失性磁介质(图8未显示,通常称为“硬盘驱动器”)。尽管图8中未示出,可以提供用于对可移动非易失性磁盘(例如“软盘”)读写的磁盘驱动器,以及对可移动非易失性光盘(例如CD-ROM,DVD-ROM或者其它光介质)读写的光盘驱动器。在这些情况下,每个驱动器可以通过一个或者多个数据介质接口与总线18相连。系统存储器28可以包括至少一个程序产品,该程序产品具有一组(例如至少一个)程序模块,这些程序模块被配置以执行本发明各实施例的功能。
具有一组(至少一个)程序模块42的程序/实用工具40,可以存储在例如系统存储器28中,这样的程序模块42包括但不限于操作系统、一个或者多个应用程序、其它程序模块以及程序数据,这些示例中的每一个或某种组合中可能包括网络环境的实现。程序模块42通常执行本发明所描述的实施例中的功能和/或方法。
设备12也可以与一个或多个外部设备14(例如键盘、指向设备、显示器24等)通信,还可与一个或者多个使得用户能与该设备12交互的设备通信,和/或与使得该设备12能与一个或多个其它计算设备进行通信的任何设备(例如网卡,调制解调器等等)通信。这种通信可以通过输入/输出(I/O)接口22进行。并且,设备12还可以通过网络适配器20与一个或者多个网络(例如局域网(LAN),广域网(WAN)和/或公共网络,例如因特网)通信。如图所示,网络适配器20通过总线18与设备12的其它模块通信。应当明白,尽管图中未示出,可以结合设备12使用其它硬件和/或软件模块,包括但不限于:微代码、设备驱动器、冗余处理单元、外部磁盘驱动阵列、RAID系统、磁带驱动器以及数据备份存储系统等。
处理单元16通过运行存储在系统存储器28中的程序,从而执行各种功能应用以及数据处理,例如实现本发明实施例所提供的区块链的数据修改和/或区块链的数据同步方法。
实施例九
本发明实施例九还提供了一种计算机可读存储介质,其上存储有计算机程序,该程序被处理器执行时可实现上述实施例所述的区块链的数据修改和/或区块链的数据同步。该计算机可读存储介质,可以配置于检查节点和/或普通节点上。
本发明实施例的计算机存储介质,可以采用一个或多个计算机可读的介质的任意组合。计算机可读介质可以是计算机可读信号介质或者计算机可读存储介质。计算机可读存储介质例如可以是——但不限于——电、磁、光、电磁、红外线、或半导体的系统、装置或器件,或者任意以上的组合。计算机可读存储介质的更具体的例子(非穷举的列表)包括:具有一个或多个导线的电连接、便携式计算机磁盘、硬盘、随机存取存储器(RAM)、只读存储器(ROM)、可擦式可编程只读存储器(EPROM或闪存)、光纤、便携式紧凑磁盘只读存储器(CD-ROM)、光存储器件、磁存储器件、或者上述的任意合适的组合。在本文件中,计算机可读存储介质可以是任何包含或存储程序的有形介质,该程序可以被指令执行系统、装置或者器件使用或者与其结合使用。
计算机可读的信号介质可以包括在基带中或者作为载波一部分传播的数据信号,其中承载了计算机可读的程序代码。这种传播的数据信号可以采用多种形式,包括但不限于电磁信号、光信号或上述的任意合适的组合。计算机可读的信号介质还可以是计算机可读存储介质以外的任何计算机可读介质,该计算机可读介质可以发送、传播或者传输用于由指令执行系统、装置或者器件使用或者与其结合使用的程序。
计算机可读介质上包含的程序代码可以用任何适当的介质传输,包括——但不限于无线、电线、光缆、RF等等,或者上述的任意合适的组合。
可以以一种或多种程序设计语言或其组合来编写用于执行本发明操作的计算机程序代码,所述程序设计语言包括面向对象的程序设计语言—诸如Java、Smalltalk、C++,还包括常规的过程式程序设计语言—诸如”C”语言或类似的程序设计语言。程序代码可以完全地在用户计算机上执行、部分地在用户计算机上执行、作为一个独立的软件包执行、部分在用户计算机上部分在远程计算机上执行、或者完全在远程计算机或服务器上执行。在涉及远程计算机的情形中,远程计算机可以通过任意种类的网络——包括局域网(LAN)或广域网(WAN)—连接到用户计算机,或者,可以连接到外部计算机(例如利用因特网服务提供商来通过因特网连接)。
注意,上述仅为本发明的较佳实施例及所运用技术原理。本领域技术人员会理解,本发明不限于这里所述的特定实施例,对本领域技术人员来说能够进行各种明显的变化、重新调整和替代而不会脱离本发明的保护范围。因此,虽然通过以上实施例对本发明进行了较为详细的说明,但是本发明不仅仅限于以上实施例,在不脱离本发明构思的情况下,还可以包括更多其他等效实施例,而本发明的范围由所附的权利要求范围决定。
Claims (18)
1.一种区块链的数据修改方法,其特征在于,应用于检查区块链网络中的检查节点,所述方法包括:
检查节点从普通节点获取至少一个同步区块,其中,所述同步区块为普通区块;
所述检查节点对所述同步区块的数据,按照设定修改规则进行检查,以确定目标修改数据;
所述检查节点对目标修改数据进行修改;
在确定满足检查点生成规则时,所述检查节点根据所述同步区块生成检查点,根据所述同步区块的数据计算所述检查点的检查点标识;
所述检查节点将检查点标识与所述同步区块进行关联记录;
所述检查节点将所述检查点标识经检查区块链网络中的检查节点确认,以存储到检查区块中;
其中,所述同步区块用于供普通节点同步下载。
2.根据权利要求1所述的方法,其特征在于,所述检查区块链的区块生成周期与普通区块链的区块生成周期不同。
3.根据权利要求2所述的方法,其特征在于,所述检查区块链的区块生成周期为普通区块链的区块生成周期的N倍,所述检查节点从普通节点获取的同步区块的数量为N,N为大于等于2的自然数。
4.根据权利要求1所述的方法,其特征在于,所述检查节点所在的检查区块链网络包括至少两个检查节点,所述至少两个检查节点所部署的设定修改规则和检查点生成规则相同。
5.根据权利要求1-4任一所述的方法,其特征在于,所述检查节点将所述检查点标识经检查区块链网络中的检查节点确认,包括:
所述检查节点将所述检查点标识在检查区块链网络中传输,以请求其他检查节点进行验证,并反馈认可签名;
如果接收到的认可签名符合生效条件,则所述检查节点确定所述检查点标识生效;
其中,所述认可签名用于与所述检查点标识一并存储到检查区块中。
6.根据权利要求1所述的方法,其特征在于,所述检查节点根据所述同步区块的数据计算所述检查点的检查点标识,包括:
所述检查节点将所述同步区块的区块数据和本地表数据导出,形成同步区块文件;
所述检查节点根据所述同步区块文件中的数据,计算所述检查点的检查点标识。
7.根据权利要求6所述的方法,其特征在于,所述检查节点将所述同步区块的区块数据和本地表数据导出,形成同步区块文件,包括:
所述检查节点将所述同步区块的区块数据和本地表数据导出,形成一个同步区块文件;或
所述检查节点将所述同步区块的区块数据和本地表数据,按照数据类型表分别导出,形成多个同步区块文件。
8.根据权利要求6所述的方法,其特征在于:
所述区块数据包括区块体和区块头,所述区块体用于存储未花费交易输出数据;
所述本地表数据用于存储智能合约的运行函数和执行结果,以及用于存储交易历史数据。
9.根据权利要求7所述的方法,其特征在于,所述检查节点根据所述同步区块文件中的数据,计算所述检查点的检查点标识,包括:
所述检查节点根据所述同步区块文件中的数据计算哈希值,作为所述检查点标识;或
所述检查节点将各个同步区块文件分别计算文件哈希值,根据各个文件哈希值建立梅克尔树,将梅克尔树的根作为所述检查点标识。
10.一种区块链的数据同步方法,其特征在于,应用于普通区块链网络中的普通节点,所述方法包括:
所述普通节点监测检查区块链中的检查点标识,其中,所述检查点标识根据权利要求1-9任一所述的区块链的数据修改方法生成;
所述普通节点根据普通区块链中的数据计算检查点标识,与监测到的检查点标识进行比较;
如果比较结果不一致,则所述普通节点向检查节点发起区块同步请求,并接收检查节点反馈的同步区块的数据和检查点标识,其中,所述检查点标识为检查节点根据同步区块的数据计算确定;
所述普通节点根据所述检查点标识验证所述同步区块的数据真实性;
所述同步区块的数据真实性验证通过,则所述普通节点存储所述同步区块的数据。
11.根据权利要求10所述的方法,其特征在于,所述同步区块的数据包括:
由同步区块的区块数据和本地表数据导出的一个同步区块文件;或
由同步区块的区块数据和本地表数据,按照数据类型表分别导出的多个同步区块文件。
12.根据权利要求11所述的方法,其特征在于:
所述区块数据包括区块体和区块头,所述区块体用于存储未花费交易输出数据;
所述本地表数据用于存储智能合约的运行函数和执行结果,以及用于存储交易历史数据。
13.根据权利要求11所述的方法,其特征在于,所述普通节点根据所述检查点标识验证所述同步区块的数据真实性,包括:
所述普通节点根据所述同步区块文件中的数据计算哈希值,作为检查点标识,与接收到的检查点标识进行比较,以验证数据真实性;或
所述普通节点将各个同步区块文件分别计算文件哈希值,根据各个文件哈希值建立梅克尔树,将梅克尔树的根作为检查点标识,与接收到的检查点标识进行比较,以验证数据真实性。
14.根据权利要求10所述的方法,其特征在于,所述普通节点根据所述检查点标识验证所述同步区块的数据真实性之前,还包括:
所述普通节点从检查区块链的区块中,获取所述检查点标识,则确定所述检查点标识真实;或
所述普通节点根据所述检查点标识以及对应的认可签名,确定所述检查点标识真实。
15.一种区块链的数据修改装置,其特征在于,配置于检查区块链网络中的检查节点中,所述装置包括:
待检查区块获取模块,用于检查节点从普通节点获取至少一个同步区块,其中,所述同步区块为普通区块;
修改数据确定模块,用于所述检查节点对所述同步区块的数据,按照设定修改规则进行检查,以确定目标修改数据;
修改数据修改模块,用于所述检查节点对目标修改数据进行修改;
检查点生成模块,用于在确定满足检查点生成规则时,所述检查节点根据所述同步区块生成检查点;
标识计算模块,用于根据所述同步区块的数据计算所述检查点的检查点标识;
记录模块,用于所述检查节点将检查点标识与所述待检查区块进行关联记录;
确认存储模块,用于所述检查节点将所述检查点标识经检查区块链网络中的检查节点确认,以存储到检查区块中;
其中,所述待检查区块用于供普通节点同步下载。
16.一种区块链的数据同步装置,其特征在于,配置于普通区块链网络中的普通节点中,所述装置包括:
标识监测模块,用于所述普通节点监测检查区块链中的检查点标识,其中,所述检查点标识根据权利要求1-9任一所述的区块链的数据修改方法生成;
标识比对模块,用于所述普通节点根据普通区块链中的数据计算检查点标识,与监测到的检查点标识进行比较;
通信模块,用于如果比较结果不一致,则所述普通节点向检查节点发起区块同步请求,并接收检查节点反馈的同步区块的数据和检查点标识,其中,所述检查点标识为检查节点根据同步区块的数据计算确定;
数据验证模块,用于所述普通节点根据所述检查点标识验证所述同步区块的数据真实性;
数据存储模块,用于所述同步区块的数据真实性验证通过,则所述普通节点存储所述同步区块的数据。
17.一种设备,其特征在于,所述设备包括:
一个或多个处理器;
存储装置,用于存储一个或多个程序;
当所述一个或多个程序被所述一个或多个处理器执行,使得所述一个或多个处理器实现如权利要求1-9中任一所述的区块链的数据修改方法,或者实现如权利要求10-14中任一所述的区块链的数据同步方法。
18.一种存储介质,其上存储有计算机程序,其特征在于,该程序被处理器执行时实现如权利要求1-9中任一所述的区块链的数据修改方法,或者实现如权利要求10-14中任一所述的区块链的数据同步方法。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201811465308.8A CN109542888B (zh) | 2018-12-03 | 2018-12-03 | 区块链的数据修改和同步方法、装置、设备及存储介质 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201811465308.8A CN109542888B (zh) | 2018-12-03 | 2018-12-03 | 区块链的数据修改和同步方法、装置、设备及存储介质 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN109542888A true CN109542888A (zh) | 2019-03-29 |
CN109542888B CN109542888B (zh) | 2020-12-01 |
Family
ID=65852672
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201811465308.8A Active CN109542888B (zh) | 2018-12-03 | 2018-12-03 | 区块链的数据修改和同步方法、装置、设备及存储介质 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN109542888B (zh) |
Cited By (15)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN110047168A (zh) * | 2019-04-15 | 2019-07-23 | 优信拍(北京)信息科技有限公司 | 车辆信息的管理方法、装置、设备及系统 |
CN110059089A (zh) * | 2019-03-27 | 2019-07-26 | 深圳前海达闼云端智能科技有限公司 | 数据同步方法、装置、存储介质及电子设备 |
CN110322346A (zh) * | 2019-04-02 | 2019-10-11 | 武汉天喻信息产业股份有限公司 | 一种支持uxto模型的条件可设定支付方法及系统 |
CN111211876A (zh) * | 2020-01-02 | 2020-05-29 | 支付宝(杭州)信息技术有限公司 | 发送针对数据请求的应答消息的方法及装置、区块链系统 |
CN111274318A (zh) * | 2020-01-16 | 2020-06-12 | 杭州趣链科技有限公司 | 一种区块链状态数据的存储、回滚方法、设备和存储介质 |
CN111400403A (zh) * | 2020-03-14 | 2020-07-10 | 北京工业大学 | 一种基于区块链技术的物联网数据真实性分布式验证的方法 |
CN111400106A (zh) * | 2020-03-27 | 2020-07-10 | 百度国际科技(深圳)有限公司 | 一种区块链账本同步方法、装置以及电子设备 |
CN112037057A (zh) * | 2020-04-10 | 2020-12-04 | 支付宝(杭州)信息技术有限公司 | 区块链数据的订正方法及装置 |
CN112215600A (zh) * | 2019-06-25 | 2021-01-12 | 华为技术有限公司 | 数据浏览、存储方法、装置、计算机设备以及存储介质 |
WO2021012562A1 (zh) * | 2019-07-25 | 2021-01-28 | 深圳壹账通智能科技有限公司 | 区块链数据清理方法、装置、计算机设备和存储介质 |
CN112636984A (zh) * | 2020-12-28 | 2021-04-09 | 杭州趣链科技有限公司 | 联盟链配置更新方法、设备及计算机介质 |
CN113127516A (zh) * | 2020-07-31 | 2021-07-16 | 支付宝(杭州)信息技术有限公司 | 一种区块链数据的处理方法、装置及设备 |
CN113938381A (zh) * | 2021-10-15 | 2022-01-14 | 牙木科技股份有限公司 | 一种通用简单的网管和网元配置同步的方法和系统 |
CN114153827A (zh) * | 2021-10-11 | 2022-03-08 | 北京天德科技有限公司 | 一种基于区块链系统的交易数据移除方法 |
CN115687527A (zh) * | 2022-11-09 | 2023-02-03 | 呼和浩特市大旗网络有限公司 | 一种基于区块链大数据的存储系统 |
Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
WO2018112945A1 (zh) * | 2016-12-23 | 2018-06-28 | 深圳前海达闼云端智能科技有限公司 | 查询电子票的状态信息的方法、装置及区块链节点 |
CN108566275A (zh) * | 2018-04-20 | 2018-09-21 | 中国联合网络通信集团有限公司 | 身份认证方法、装置及区块链节点 |
CN108648084A (zh) * | 2018-05-18 | 2018-10-12 | 百度在线网络技术(北京)有限公司 | 一种区块链网络的数据处理方法、装置、设备及存储介质 |
-
2018
- 2018-12-03 CN CN201811465308.8A patent/CN109542888B/zh active Active
Patent Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
WO2018112945A1 (zh) * | 2016-12-23 | 2018-06-28 | 深圳前海达闼云端智能科技有限公司 | 查询电子票的状态信息的方法、装置及区块链节点 |
CN108566275A (zh) * | 2018-04-20 | 2018-09-21 | 中国联合网络通信集团有限公司 | 身份认证方法、装置及区块链节点 |
CN108648084A (zh) * | 2018-05-18 | 2018-10-12 | 百度在线网络技术(北京)有限公司 | 一种区块链网络的数据处理方法、装置、设备及存储介质 |
Cited By (25)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN110059089A (zh) * | 2019-03-27 | 2019-07-26 | 深圳前海达闼云端智能科技有限公司 | 数据同步方法、装置、存储介质及电子设备 |
CN110059089B (zh) * | 2019-03-27 | 2021-01-22 | 深圳前海达闼云端智能科技有限公司 | 数据同步方法、装置、存储介质及电子设备 |
CN110322346A (zh) * | 2019-04-02 | 2019-10-11 | 武汉天喻信息产业股份有限公司 | 一种支持uxto模型的条件可设定支付方法及系统 |
CN110322346B (zh) * | 2019-04-02 | 2022-02-15 | 武汉天喻信息产业股份有限公司 | 一种支持utxo模型的条件可设定支付方法及系统 |
CN110047168A (zh) * | 2019-04-15 | 2019-07-23 | 优信拍(北京)信息科技有限公司 | 车辆信息的管理方法、装置、设备及系统 |
CN112215600A (zh) * | 2019-06-25 | 2021-01-12 | 华为技术有限公司 | 数据浏览、存储方法、装置、计算机设备以及存储介质 |
WO2021012562A1 (zh) * | 2019-07-25 | 2021-01-28 | 深圳壹账通智能科技有限公司 | 区块链数据清理方法、装置、计算机设备和存储介质 |
CN111211876A (zh) * | 2020-01-02 | 2020-05-29 | 支付宝(杭州)信息技术有限公司 | 发送针对数据请求的应答消息的方法及装置、区块链系统 |
CN111274318A (zh) * | 2020-01-16 | 2020-06-12 | 杭州趣链科技有限公司 | 一种区块链状态数据的存储、回滚方法、设备和存储介质 |
CN111274318B (zh) * | 2020-01-16 | 2023-04-25 | 杭州趣链科技有限公司 | 一种区块链状态数据的存储、回滚方法、设备和存储介质 |
CN111400403B (zh) * | 2020-03-14 | 2021-04-23 | 北京工业大学 | 一种基于区块链技术的物联网数据真实性分布式验证的方法 |
CN111400403A (zh) * | 2020-03-14 | 2020-07-10 | 北京工业大学 | 一种基于区块链技术的物联网数据真实性分布式验证的方法 |
CN111400106A (zh) * | 2020-03-27 | 2020-07-10 | 百度国际科技(深圳)有限公司 | 一种区块链账本同步方法、装置以及电子设备 |
CN111400106B (zh) * | 2020-03-27 | 2023-07-28 | 百度国际科技(深圳)有限公司 | 一种区块链账本同步方法、装置以及电子设备 |
CN112037057B (zh) * | 2020-04-10 | 2022-03-01 | 支付宝(杭州)信息技术有限公司 | 区块链数据的订正方法及装置 |
CN112037057A (zh) * | 2020-04-10 | 2020-12-04 | 支付宝(杭州)信息技术有限公司 | 区块链数据的订正方法及装置 |
CN113127516A (zh) * | 2020-07-31 | 2021-07-16 | 支付宝(杭州)信息技术有限公司 | 一种区块链数据的处理方法、装置及设备 |
CN113127516B (zh) * | 2020-07-31 | 2023-12-12 | 支付宝(杭州)信息技术有限公司 | 一种区块链数据的处理方法、装置及设备 |
CN112636984A (zh) * | 2020-12-28 | 2021-04-09 | 杭州趣链科技有限公司 | 联盟链配置更新方法、设备及计算机介质 |
CN112636984B (zh) * | 2020-12-28 | 2023-04-11 | 杭州趣链科技有限公司 | 联盟链配置更新方法、设备及计算机介质 |
CN114153827A (zh) * | 2021-10-11 | 2022-03-08 | 北京天德科技有限公司 | 一种基于区块链系统的交易数据移除方法 |
CN114153827B (zh) * | 2021-10-11 | 2023-01-10 | 北京天德科技有限公司 | 一种基于区块链系统的交易数据移除方法 |
CN113938381A (zh) * | 2021-10-15 | 2022-01-14 | 牙木科技股份有限公司 | 一种通用简单的网管和网元配置同步的方法和系统 |
CN115687527A (zh) * | 2022-11-09 | 2023-02-03 | 呼和浩特市大旗网络有限公司 | 一种基于区块链大数据的存储系统 |
CN115687527B (zh) * | 2022-11-09 | 2023-10-10 | 北京北纬三十度网络科技有限公司 | 一种基于区块链大数据的存储系统 |
Also Published As
Publication number | Publication date |
---|---|
CN109542888B (zh) | 2020-12-01 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN109542888A (zh) | 区块链的数据修改和同步方法、装置、设备及存储介质 | |
CN109587238A (zh) | 区块链的数据处理和同步方法、装置、设备及存储介质 | |
US11336455B2 (en) | Consensus protocol for blockchain DAG structure | |
JP6689946B2 (ja) | ネットワークを介して互いに通信する複数のノードのいずれか1つで資源を運営する方法、および、ネットワークを介して互いに通信する複数のノードのいずれか1つとして動作するコンピュータ装置 | |
KR20210003234A (ko) | 분할된 블록체인 네트워크에서 블록체인의 블록을 유지하는 것 | |
CN110633323A (zh) | 业务数据存储方法、装置、存储介质和计算机设备 | |
US20180053182A1 (en) | Dynamic cryptocurrency aliasing | |
CN108921556A (zh) | 一种区块链的验证方法、装置、设备及存储介质 | |
US20180323964A1 (en) | Blockchain Generation Apparatus, Blockchain Generation Method, Blockchain Verification Apparatus, Blockchain Verification Method, and Program | |
KR101937220B1 (ko) | 키 관리가 필요없는 블록체인을 기반한 전자서명 또는 메시지 인증 코드를 생성 및 검증 방법 | |
CN108961052A (zh) | 区块链数据的验证方法、存储方法、装置、设备和介质 | |
JP2019505150A (ja) | デジタル署名を用いた変形ブロックチェーンについての方法及びシステム | |
CN107396360A (zh) | 区块验证方法及装置 | |
CN107438002A (zh) | 基于区块链的系统以及系统中的电子设备和方法 | |
CN109241192A (zh) | 区块链的数据修改及区块验证方法、装置、设备和介质 | |
US20230037932A1 (en) | Data processing method and apparatus based on blockchain network, and computer device | |
KR101798119B1 (ko) | 주주명부를 등록하고 주식 소유권 이전을 기록하고 등록된 주주명부 파일을 검증하는 방법 및 서버 | |
CN109344631A (zh) | 区块链的数据修改及区块验证方法、装置、设备和介质 | |
CN109754267A (zh) | 基于区块链的品牌授权方法、装置、设备及介质 | |
CN110177124A (zh) | 基于区块链的身份认证方法及相关设备 | |
CN109194651A (zh) | 一种身份认证方法、装置、设备及存储介质 | |
US20190385183A1 (en) | Method for automatically providing cryptocurrency to recommender using propagation on sns | |
CN110460445A (zh) | 一种基于信息安全行业产益的漏洞处理链网络架构 | |
JP7447127B2 (ja) | 分散型台帳システムへのデータの記録の誤ったコピーの送信を防止する | |
CN109347803A (zh) | 一种区块链的数据处理方法、装置、设备及介质 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PB01 | Publication | ||
PB01 | Publication | ||
SE01 | Entry into force of request for substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
GR01 | Patent grant | ||
GR01 | Patent grant |