用于区块链网络的数据处理、区块生成及同步方法与流程

文档序号:17160714发布日期:2019-03-20 00:40阅读:213来源:国知局
用于区块链网络的数据处理、区块生成及同步方法与流程
本发明涉及区块链
技术领域
,尤其涉及一种用于区块链网络的数据处理、区块生成及同步方法。
背景技术
:区块链(blockchain)是用分布式数据库识别、传播和记载信息的智能化对等网络,也称为价值互联网。区块链技术包括以块结构存储数据,使用密码学保证传输和访问安全等,其能够实现数据一致性存储、反篡改、去中心的技术体系。当前,在部分区块链网络中,每一个节点都拥有全量的账本数据拷贝。随着业务的发展,账本上的数据会持续增长。区块链中的数据被分割为区块的形式进行存储,每个区块都包括有前一个区块的哈希值(hash),本区块的hash和本区块的数据。本区块的hash是基于前一个区块的hash和本区块的数据生成的。所以任何区块的缺失或者数据改变,都会导致无法验证整个区块链的完整性和不可篡改性。技术实现要素:本发明的实施例提供了一种用于区块链网络的数据处理、区块生成、同步方法。本发明实施例提供一种用于区块链网络的数据处理方法,所述区块链网络中的目标区块包括所述目标区块的前一区块的哈希值、所述目标区块的哈希值、与所述目标区块关联的至少一个区块数据中的每个区块数据的哈希值和存储地址,所述目标区块的哈希值是根据所述至少一个区块数据中的每个区块数据的哈希值和存储地址以及所述前一区块的哈希值生成的,每个区块数据的存储地址指示所述区块数据在预设存储空间中的存储位置,所述预设存储空间可被区块链网络中的至少一个区块链节点访问,所述方法包括:a.响应于存储在所述预设存储空间内的区块数据被删除,生成删除标识,所述删除标识指示被删除的区块数据;b.将所述删除标识加入已删除数据列表,所述已删除数据列表存储于所述预设存储空间内。本实施例所述方案中,区块数据与其关联的区块分离存储,通过在区块数据被删除时形成已删除数据列表,能够实现对区块链中各个区块关联的区块数据的删除,从而减小区块链网络中存储数据的数据量,实现区块链网络数据存储的灵活性。本发明实施例还提供一种计算设备包括处理器和存储器,区块链网络中的目标区块包括所述目标区块的前一区块的哈希值、所述目标区块的哈希值、与所述目标区块关联的至少一个区块数据中的每个区块数据的哈希值和存储地址,所述目标区块的哈希值是根据所述至少一个区块数据中的每个区块数据的哈希值和存储地址以及所述前一区块的哈希值生成的,每个区块数据的存储地址指示所述区块数据在预设存储空间中的存储位置,所述预设存储空间可被区块链网络中的至少一个区块链节点访问,所述计算设备包括处理器和存储器,所述存储器上存储有能够在所述处理器上运行的计算机指令,所述处理器运行所述计算机指令时执行以下步骤:a.响应于存储在预设存储空间内的区块数据被删除,生成删除标识,所述删除标识指示被删除的区块数据;b.将所述删除标识加入已删除数据列表,所述已删除数据列表存储于所述预设存储空间内。本发明实施例还提供一种用于区块链网络的区块生成方法,所述区块生成方法包括:a.获取前一区块的哈希值;b.获取已删除数据列表,并生成所述已删除数据列表的哈希值,所述已删除数据列表包括删除标识,所述删除标识指示被删除的区块数据,所述删除标识是响应于存储在预设存储空间内的区块数据被删除生成的,所述已删除数据列表存储于所述预设存储空间,所述预设存储空间可被所述区块链网络中的至少一个区块链节点访问;c.根据所述已删除数据列表的哈希值和存储地址以及所述前一区块的哈希值生成当前区块的哈希值,其中,所述已删除数据列表的存储地址指示所述已删除数据列表在所述预设存储空间中的存储位置;d.至少基于所述前一区块的哈希值、所述当前区块的哈希值、所述已删除数据列表的哈希值和存储地址,生成所述当前区块,其中,所述当前区块连接在所述前一区块之后。本实施例所述方案能够在区块中记录有已删除数据列表的哈希值和存储地址,通过存储地址可以提供已删除数据列表的访问路径,利用已删除数据列表的哈希值可以验证分离存储的已删除数据列表是否被篡改。本发明实施例还提供一种计算设备,包括处理器和存储器,所述存储器上存储有能够在所述处理器上运行的计算机指令,所述处理器运行所述计算机指令时执行以下步骤:a.获取前一区块的哈希值;b.获取已删除数据列表,并生成所述已删除数据列表的哈希值,所述已删除数据列表包括删除标识,所述删除标识指示被删除的区块数据,所述删除标识是响应于存储在预设存储空间内的区块数据被删除生成的,所述已删除数据列表存储于所述预设存储空间,所述预设存储空间可被所述区块链网络中的至少一个区块链节点访问;c.根据所述已删除数据列表的哈希值和存储地址以及所述前一区块的哈希值生成当前区块的哈希值,其中,所述已删除数据列表的存储地址指示所述已删除数据列表在所述预设存储空间中的存储位置;d.至少基于所述前一区块的哈希值、所述当前区块的哈希值、所述已删除数据列表的哈希值和存储地址,生成所述当前区块,其中,所述当前区块连接在所述前一区块之后。本发明实施例还提供一种用于区块链网络的同步方法,所述同步方法包括:a.获取当前区块,所述当前区块包括前一区块的哈希值、当前区块的哈希值、已删除数据列表的哈希值和存储地址,所述已删除数据列表包括已删除数据的标识,所述已删除数据的标识指示被删除的区块数据,所述删除标识是响应于存储在预设存储空间内的区块数据被删除生成的,所述已删除数据列表存储于所述预设存储空间;b.根据所述前一区块的哈希值和当前区块的哈希值对所述当前区块进行验证,并在验证通过时将所述当前区块连接在所述前一区块之后;其中,所述已删除数据列表的存储地址指示所述已删除数据列表在预设存储空间中的存储位置,所述预设存储空间可被所述区块链网络中的至少一部分区块链节点访问。本实施例所述方案中,区块链上的区块可以包括已删除数据列表的存储地址,使得区块链网络中的区块链节点在同步到该区块后可以获得已删除数据列表,从而使得区块链节点能够获知各个区块数据是否被删除。本发明实施例还提供一种计算设备,包括处理器和存储器,所述存储器上存储有能够在所述处理器上运行的计算机指令,所述处理器运行所述计算机指令时执行以下步骤:a.获取当前区块,所述当前区块包括前一区块的哈希值、当前区块的哈希值、已删除数据列表的哈希值和存储地址,所述已删除数据列表包括已删除数据的标识,所述已删除数据的标识指示被删除的区块数据,所述删除标识是响应于存储在预设存储空间内的区块数据被删除生成的,所述已删除数据列表存储于所述预设存储空间;b.根据所述前一区块的哈希值和当前区块的哈希值对所述当前区块进行验证,并在验证通过时将所述当前区块连接在所述前一区块之后;其中,所述已删除数据列表的存储地址指示所述已删除数据列表在预设存储空间中的存储位置,所述预设存储空间可被所述区块链网络中的至少一部分区块链节点访问。本发明实施例还提供一种存储介质,其上存储有计算机指令,所述计算机指令运行时执行上述方法的步骤。附图说明图1是本发明实施例一种用于区块链网络的数据处理方法的流程图;图2是本发明实施例另一种用于区块链网络的数据处理方法的流程图;图3是本发明实施例一种用于区块链网络的区块生成方法的流程图;图4是基于图3所示方法生成的当前区块的结构示意图;图5是本发明实施例一种用于区块链网络的同步方法的流程图。具体实施方式本申请发明人发现,现有的区块链中的区块数据不能被删除,因为删除之后,新加入的节点获取到区块链的数据之后,就无法验证区块数据的正确性。所以面对持续增长的区块链数据,老的数据不能产生业务价值,但是又无法删除,将占用大量的存储资源和计算资源。本发明实施例提供一种用于区块链网络的数据处理方法,所述数据处理方法包括:响应于存储在预设存储空间内的区块数据被删除,生成删除标识,所述删除标识指示被删除的区块数据,所述预设存储空间可被区块链网络中的至少一个区块链节点访问,所述区块数据与目标区块关联;将所述删除标识加入已删除数据列表,所述已删除数据列表存储于所述预设存储空间内;其中,所述目标区块包括所述目标区块的前一区块的哈希值、所述目标区块的哈希值、所述目标区块关联的至少一个区块数据中的每个区块数据的哈希值和存储地址,所述目标区块的哈希值是根据所述至少一个区块数据中的每个区块数据的哈希值和存储地址以及所述前一区块的哈希值生成的,每个区块数据的存储地址指示所述区块数据在所述预设存储空间中的存储位置。本实施例所述方案中,区块数据与其关联的区块头分离存储,通过在区块数据被删除时形成已删除数据列表,能够实现对区块链中各个区块关联的区块数据的删除,从而实现区块链网络数据存储的灵活性。以下参考附图详细描述本公开的各个示例性实施例。附图中的流程图和框图示出了根据本公开的各种实施例的方法和系统的可能实现的体系架构、功能和操作。应当注意,流程图或框图中的每个方框可以代表一个模块、程序段或代码的一部分,所述模块、程序段或代码的一部分可以包括一个或多个用于实现各个实施例中所规定的逻辑功能的可执行指令。也应当注意,在有些作为备选的实现中,方框中所标注的功能也可以按照不同于附图中所标注的顺序发生。例如,两个接连地表示的方框实际上可以基本并行地执行,或者他们有时也可以按照相反的顺序执行,这取决于所涉及的功能。同样应当注意的是,流程图和/或框图中的每个方框、以及流程图和/或框图中的方框的组合,可以使用执行规定的功能或操作的专用的基于硬件的系统来实现,或者可以使用专用硬件与计算机指令的组合来实现。本文所使用的术语“包含”、“包括”及类似术语应该被理解为是开放性的术语,即“包括/包含但不限于”,表示还可以包括其他内容。在本公开内容中,术语“基于”是“至少部分地基于”;术语“一个实施例”表示“至少一个实施例”;术语“另一实施例”表示“至少一个另外的实施例”。本文中出现的“区块数据”包括至少一个事务中的事务数据。进一步地,多个所述区块数据可以关联于同一个区块。更具体而言,通过同步所述区块,可以获取所述多个区块数据中各个区块数据的存储地址。再例如,所述区块数据还可以包括单个业务包含的全部事务中的事务数据,如单个资产转移业务中关联的全部区块链节点在该资产转移业务的全部事务中产生的事务数据,或单个供应链金融业务中关联的上下游区块链节点在该供应链金融业务的全部事务中产生的事务数据等。本文中出现的“事务数据”是指:事务(transaction)进行过程中产生的各种数据。进一步地,事务数据可以包括事务进行过程中产生的各种中间数据,以及事务进行完成后得到的各种结果数据。本文中出现的“预设存储空间”是指:可被区块链网络中的至少一部分区块链节点访问的数据存储空间,尤其而言,可被区块链网络中能够生成区块的区块链节点访问的数据存储空间。例如,所述预设存储空间可以是能够生成区块的区块链节点本地的存储器。又例如,所述预设存储空间还可以是能够生成区块的区块链节点耦合的外部服务器(例如,云端服务器,或云端服务器中的一部分存储空间)。本文中出现的“存储地址”是指:区块数据在所述预设存储空间中的存储位置的标识符(例如字符串或者字符串的组合),根据所述存储地址能够唯一地确定该区块数据在所述预设存储空间中的存储位置。例如,所述存储地址至少可以基于以下一种或多种协议表示:文件协议(如file://...);超文本传输协议(hypertexttransferprotocol,简称http);文件传输协议(filetransferprotocol,简称ftp)。本文中出现的“删除标识”是指:指示被删除的区块数据的标识,如可以被删除的区块数据的存储地址、文件名等或者基于该存储地址、文件名等生成。本文中出现的“已删除数据列表”是指记录有被删除的区块数据的删除标识的列表。进一步地,已删除数据列表可以作为区块数据中的一种与区块相关联。也即,通过同步所述区块,可以获取已删除数据列表的存储地址。在一个非限制性的实施例中,被删除的区块数据被恢复后,可以在已删除数据列表移除所述被删除区块数据的删除标识。本文中出现的“标志位”是指:为将所述已删除数据列表区别于所述区块数据的指示符的字符。该标识位例如可以是单个字符或者多个字符形成的字符串。应当理解,给出这些示例性实施例仅是为了使本领域技术人员能够更好地理解进而实现本公开的实施例,而并非以任何方式限制发明的范围。为使本发明的上述目的、特征和优点能够更为明显易懂,下面结合附图对本发明的具体实施例做详细的说明。图1是本发明实施例一种用于区块链网络的数据处理方法的流程图。其中,所述区块链网络可以包括多个彼此之间可通信的区块链节点,该区块链节点可以是各种适当的计算设备,例如个人计算机(pc)、服务器、智能手机等。本实施例的方法可以在所述区块链节点侧执行。例如,区块链节点1所生成的区块1关联的区块数据被删除,所述区块链节点1可以执行所述方法的各个步骤。在一个非限制性实施例中,区块链节点可以通过调用删除智能合约执行本实施例的方法。具体地,在本实施例中,所述用于区块链网络的数据处理方法可以包括以下步骤:步骤101.响应于存储在预设存储空间内的区块数据被删除,生成删除标识,所述删除标识指示被删除的区块数据,所述预设存储空间可被区块链网络中的至少一个区块链节点访问,所述区块数据与目标区块关联;步骤102.将所述删除标识加入已删除数据列表,所述已删除数据列表存储于所述预设存储空间内;其中,所述目标区块包括所述目标区块的前一区块的哈希值、所述目标区块的哈希值、所述目标区块关联的至少一个区块数据中的每个区块数据的哈希值和存储地址,所述目标区块的哈希值是根据所述至少一个区块数据中的每个区块数据的哈希值和存储地址以及所述前一区块的哈希值生成的,每个区块数据的存储地址指示所述区块数据在所述预设存储空间中的存储位置。需要指出的是,本实施例中各个步骤的序号并不代表对各个步骤的执行顺序的限定。在一个非限制性实施例中,所述存储地址可以采用各种适当的方式来表示。例如,至少可以基于如下协议表示:文件协议(如file://...);超文本传输协议(hypertexttransferprotocol,简称http);文件传输协议(filetransferprotocol,简称ftp)。在一个非限制性实施例中,哈希值可以是对需要处理的数据选用以下一种或多种算法计算得到的:消息摘要算法第五版(messagedigestalgorithmmd5,简称md5)、密码杂凑算法(seniormiddle3,简称sm3)、安全哈希算法(securehashalgorithm,简称sha)1、sha256、sha384、sha128、sha2567等算法(以下统称为哈希算法)等。例如,可以采用sha256算法对区块数据进行哈希计算,以生成所述区块数据的哈希值。又例如,可以采用md5算法对所述区块数据的哈希值、存储地址以及前一区块的哈希值一并进行哈希计算,以生成所述目标区块的哈希值。本实施例中,删除标识是在区块数据被删除时生成的。删除标识与所述被删除的区块数据具备对应关系,换句话说,所述删除标识指示被删除的区块数据。具体实施中,如果多个区块数据同时被删除,则可以逐个对被删除的区块数据生成对应的删除标识。在步骤102的具体实施中,可以将所述删除标识加入已删除数据列表。已删除数据列表存储于预设存储空间中。也就是说,预设存储空间可以同时存储有区块数据和已删除数据列表。本实施例中,区块数据与其关联的区块分离存储,对区块的验证和对区块数据的验证也是分离的。本领域技术人员应当理解的是,对被删除的区块数据关联的目标区块进行验证时,是根据目标区块的前一区块的哈希值和目标区块的哈希值进行验证的。而目标区块的哈希值是根据所述被删除的区块数据的哈希值和存储地址以及所述前一区块的哈希值生成的。也就是说,所述区块数据被删除后,不会影响目标区块中被删除的区块数据的哈希值,也就不会影响目标区块在区块同步过程中的验证过程,从而能够实现在不影响区块链的基础上对所述区块数据的删除。在一个非限制性实施例中,所述步骤s101可以包括以下一个步骤:根据所述被删除的区块数据的存储地址生成所述删除标识;根据所述被删除的区块数据的存储地址以及哈希值生成所述删除标识;或者,根据所述被删除的区块数据的标识生成所述删除标识。在一个非限制性实施例中,请参照表1。表1示出了一种已删除数据列表。所述已删除数据列表包括被删除的区块数据的标识,如区块数据1、区块数据2和区块数据3。表1中区块数据的标识也可以替换为被删除的区块数据的存储地址,例如,存储地址1、存储地址2、存储地址3;表1中区块数据的标识还可以替换为被删除的区块数据的存储地址以及被删除的区块数据的哈希值,例如,存储地址1+哈希值1、存储地址2+哈希值2、存储地址3+哈希值3。表1删除标识区块数据1区块数据2区块数据3在一个非限制性实施例中,请参照图2。图1所示数据处理方法还可以包括以下步骤:步骤201:响应于针对所述被删除的区块数据的数据恢复请求,检测备份存储空间中是否保留有所述被删除的区块数据;步骤202:如果所述备份存储空间中保留有所述被删除的区块数据,则从所述备份存储空间中将所述被删除的区块数据移动至所述预设存储空间中所述存储地址指示的存储位置;步骤203:更新所述已删除数据列表,以移除所述被删除的区块数据的删除标识。需要说明的是,步骤201是在图1所示的步骤102之后执行的。本实施例中,在区块数据被删除后,区块链节点还可以将被删除的数据进行恢复。区块数据被删除是指将所述区块数据从所述区块数据的存储地址移动至备份存储空间。所述备份存储空间可以是删除所述区块数据的区块链节点的本地的存储器;所述备份存储空间也可以是删除所述区块数据的区块链节点合的外部服务器(例如,云端服务器,或云端服务器中的一部分存储空间)。恢复被删除的区块数据是指:从所述备份存储空间中将所述被删除的区块数据移动至所述预设存储空间中所述被删除的区块数据的存储地址指示的存储位置。如前所述,所述已删除数据列表包括指示被删除的区块数据的删除标识,如果被删除的区块数据被恢复,则更新所述已删除数据列表,也即移除所述被删除的区块数据的删除标识。通过本实施例的方案,在区块数据删除之后还可以实现对所述区块数据的恢复,进一步实现了区块链网络中数据存储的灵活性。在一个非限制性实施例中,图1所示步骤101之前还可以包括以下步骤:遍历所述预设存储空间中的所有区块数据,选取存储时长超过预设时长阈值的区块数据,或者,选取占用存储空间超过预设空间阈值的区块数据;删除选取的区块数据。由于存储时长超过预设时长阈值的区块数据,也即历史数据可能无法产生价值,并占用区块链网络中的存储资源,因此本实施例的方案能够实现自动遍历预设存储空间中的所有区块数据,并筛选出存储时长超过预设时长阈值的区块数据,以进行删除。或者,为了充分利用区块链网络中存储资源,也可以选取占用存储空间超过预设空间阈值的区块数据,以进行删除。本发明实施例还公开了一种计算设备。本领域技术人员理解,本实施例的计算设备用于实施上述图1或图2所示实施例中所述的方法技术方案。具体地,在本实施例中,所述计算设备可以包括处理器和存储器,所述存储器上存储有能够在所述处理器上运行的计算机指令,所述处理器运行所述计算机指令时执行以下步骤:响应于存储在预设存储空间内的区块数据被删除,生成删除标识,所述删除标识指示被删除的区块数据,所述预设存储空间可被区块链网络中的至少一个区块链节点访问,所述区块数据与目标区块关联;将所述删除标识加入已删除数据列表,所述已删除数据列表存储于所述预设存储空间内;其中,所述目标区块包括所述目标区块的前一区块的哈希值、所述目标区块的哈希值、所述目标区块关联的至少一个区块数据中的每个区块数据的哈希值和存储地址,所述目标区块的哈希值是根据所述至少一个区块数据中的每个区块数据的哈希值和存储地址以及所述前一区块的哈希值生成的,每个区块数据的存储地址指示所述区块数据在所述预设存储空间中的存储位置。在一个非限制性实施例中,所述处理器运行所述计算机指令时还执行以下步骤:根据所述被删除的区块数据的存储地址生成所述删除标识;或者,根据所述被删除的区块数据的存储地址以及哈希值生成所述删除标识;或者,根据所述被删除的区块数据的标识生成所述删除标识。在一个非限制性实施例中,所述处理器运行所述计算机指令时还执行以下步骤:响应于针对所述被删除的区块数据的数据恢复请求,检测备份存储空间中是否保留有所述被删除的区块数据;如果所述备份存储空间中保留有所述被删除的区块数据,则从所述备份存储空间中将所述被删除的区块数据移动至所述预设存储空间中所述存储地址指示的存储位置;更新所述已删除数据列表,以移除所述被删除的区块数据的删除标识。在一个非限制性实施例中,所述被删除的区块数据是通过所述处理器运行所述计算机指令时执行以下步骤确定的:遍历所述预设存储空间中的所有区块数据,选取存储时长超过预设时长阈值的区块数据,或者,选取占用存储空间超过预设空间阈值的区块数据关于所述计算设备的工作原理、工作方式的更多内容,可以参照上述图1或图2中的相关描述,这里不再赘述。图3是本发明实施例一种用于区块链网络的区块生成方法的流程图。本实施例的方案可以由生成区块的区块链节点执行。具体地,在本实施例中,所述用于区块链网络的区块生成方法可以包括如下步骤:步骤301:获取前一区块的哈希值;步骤302:获取已删除数据列表,并生成所述已删除数据列表的哈希值,所述已删除数据列表包括删除标识,所述删除标识指示被删除的区块数据,所述删除标识是响应于存储在预设存储空间内的区块数据被删除生成的,所述已删除数据列表存储于所述预设存储空间,所述预设存储空间可被所述区块链网络中的至少一个区块链节点访问;步骤303:根据所述已删除数据列表的哈希值和存储地址以及所述前一区块的哈希值生成当前区块的哈希值,其中,所述已删除数据列表的存储地址指示所述已删除数据列表在所述预设存储空间中的存储位置;步骤304:至少基于所述前一区块的哈希值、所述当前区块的哈希值、所述已删除数据列表的哈希值和存储地址,生成所述当前区块,其中,所述当前区块连接在所述前一区块之后。可以理解的是,执行上述步骤的时机是在生成已删除数据列表或更新已删除数据列表时。更新已删除数据列表可以是指在已删除数据列表中新增删除标识或移除删除标识。本实施例中,步骤304生成的当前区块可以包括所述前一区块的哈希值、所述当前区块的哈希值、所述已删除数据列表的哈希值和存储地址。本实施例是以仅生成已删除数据列表或更新已删除数据列表时为例说明区块的生成过程,不应构成对本实施例的限制。如果同时生成(或更新)已删除数据列表以及产生新的区块数据,则在生成当前区块时,步骤302还可以一并生成所述区块数据的哈希值;步骤303可以根据所述已删除数据列表的哈希值和存储地址、所述区块数据的哈希值和存储地址以及所述前一区块的哈希值生成当前区块的哈希值;步骤304可以基于所述前一区块的哈希值、所述当前区块的哈希值、所述已删除数据列表的哈希值和存储地址以及所述区块数据的哈希值和存储地址,生成所述当前区块。在一个非限制性实施例中,所述步骤304可以进一步包括:基于所述前一区块的哈希值、所述当前区块的哈希值、所述已删除数据列表的哈希值、存储地址和标志位,生成所述当前区块,所述标志位为将所述已删除数据列表区别于所述区块数据的指示符。与前述实施例生成的当前区块的不同之处在于,本实施例中生成的当前区块的数据还包括标志位。所述标志位与所述已删除数据列表的存储地址具备对应关系。换言之,通过区块中的标志位可以确定其对应的已删除数据列表的存储地址。在一个非限制性实施例中,参考图4,在所述当前区块的区块头信息40中,可以包含如下信息:前一区块的哈希值41、当前区块的哈希值42、已删除数据列表的哈希值43以及存储地址44,所述存储地址44指示存储有所述已删除数据列表在预设存储空间中的存储位置。需要说明的是,在所述当前区块的区块头信息40中,还可以包括区块数据的哈希值以及区块数据的存储地址。本领域技术人员理解,实际上,基于本实施例的方案,所述当前区块与所述区块头信息40实质上可以是等同的,也即,基于本实施例所述方案生成的当前区块仅包含所述区块头信息,而所述区块头信息关联的已删除数据列表则分离地存储于所述预设存储空间。本发明实施例还公开了一种计算设备。本领域技术人员理解,本实施例的计算设备用于实施上述图3所示实施例中所述的方法技术方案。具体地,在本实施例中,所述计算设备可以包括处理器和存储器,所述存储器上存储有能够在所述处理器上运行的计算机指令,所述处理器运行所述计算机指令时执行以下步骤:获取前一区块的哈希值;获取已删除数据列表,并生成所述已删除数据列表的哈希值,所述已删除数据列表包括删除标识,所述删除标识指示被删除的区块数据,所述删除标识是响应于存储在预设存储空间内的区块数据被删除生成的,所述已删除数据列表存储于所述预设存储空间,所述预设存储空间可被所述区块链网络中的至少一个区块链节点访问;根据所述已删除数据列表的哈希值和存储地址以及所述前一区块的哈希值生成当前区块的哈希值,其中,所述已删除数据列表的存储地址指示所述已删除数据列表在所述预设存储空间中的存储位置;至少基于所述前一区块的哈希值、所述当前区块的哈希值、所述已删除数据列表的哈希值和存储地址,生成所述当前区块,其中,所述当前区块连接在所述前一区块之后。在一个非限制性实施例中,所述处理器运行所述计算机指令以执行所述步骤至少基于所述前一区块的哈希值、所述当前区块的哈希值、所述已删除数据列表的哈希值和存储地址,生成所述当前区块时,进一步执行以下步骤:基于所述前一区块的哈希值、所述当前区块的哈希值、所述已删除数据列表的哈希值、存储地址和标志位,生成所述当前区块,所述标志位为将所述已删除数据列表区别于所述区块数据的指示符。关于所述计算设备的工作原理、工作方式的更多内容,可以参照上述图3以及图4中的相关描述,这里不再赘述。请参照图5,图5是本发明实施例一种用于区块链网络的同步方法的流程图。本实施例的方案可以由生成区块的区块链节点之外的区块链节点(如区块链网络中的已有区块链节点或新加入的区块链节点)执行。具体地,在本实施例中,所述用于区块链网络的区块生成方法可以包括如下步骤:步骤501:获取当前区块,所述当前区块包括前一区块的哈希值、当前区块的哈希值、已删除数据列表的哈希值和存储地址,所述已删除数据列表包括已删除数据的标识,所述已删除数据的标识指示被删除的区块数据,所述删除标识是响应于存储在预设存储空间内的区块数据被删除生成的,所述已删除数据列表存储于所述预设存储空间;步骤502:根据所述前一区块的哈希值和当前区块的哈希值对所述当前区块进行验证,并在验证通过时将所述当前区块连接在所述前一区块之后;其中,所述已删除数据列表的存储地址指示所述已删除数据列表在预设存储空间中的存储位置,所述预设存储空间可被所述区块链网络中的至少一部分区块链节点访问。通过上述步骤501和502,可以实现对当前区块的同步,从而可以获得当前区块所包括的数据,如前一区块的哈希值、当前区块的哈希值、已删除数据列表的哈希值和存储地址。在一个非限制性实施例中,图5所示的同步方法还可以包括以下步骤:根据所述删除数据列表的存储地址获取所述已删除数据列表;根据所述已删除数据列表对本地存储的区块数据的存储状态进行调整。可以理解的是,上述步骤可以是由区块链网络中已有区块链节点执行的。具体实施中,已有区块链节点同步到当前区块后,可以确定删除数据列表的存储地址,从而可以直接从所述存储地址指示的预设存储空间中的存储位置获取所述已删除数据列表。此外,由于已删除数据列表包括被删除区块数据的删除标识,因此已有区块链节点可以根据已删除数据列表中的删除标识对本地存储的区块数据的存储状态进行调整。例如,已删除数据列表中新增删除标识的情况下,已有区块链节点可以将存储在本地的新增的删除标识指示的区块数据进行删除。又例如,已删除数据列表中移除删除标识的情况下,已有区块链节点可以将备份存储空间中与删除标识指示的区块数据不同的区块数据进行恢复。在一个非限制性实施例中,图5所示的同步方法还可以包括以下步骤:根据所述已删除数据列表的存储地址获取所述已删除数据列表;根据所述已删除数据列表复制所述预设存储空间中的至少一部分区块数据。可以理解的是,上述步骤可以是由区块链网络中新加入的区块链节点执行的。具体实施中,新加入的区块链节点同步到当前区块后,可以确定删除数据列表的存储地址,从而可以直接从所述存储地址指示的预设存储空间中的存储位置获取所述已删除数据列表。此外,由于已删除数据列表包括被删除区块数据的删除标识,因此新加入的区块链节点可以按照删除标识来复制至少一部分区块数据。例如,已删除数据列表包括被删除的区块数据的删除标识,新加入的区块链节点在复制区块数据时,可以不必复制已删除数据列表中删除标识指示的区块数据,仅复制已删除数据列表中删除标识指示的区块数据之外的其他区块数据。需要说明的是,新加入的区块链节点也可以不必根据所述已删除数据列表复制区块数据。在这种情况下,新加入的区块链节点可以复制所有的区块数据。在一个非限制性实施例中,根据所述删除数据列表的存储地址获取所述已删除数据列表的步骤是在所述当前区块包含所述已删除数据列表的标志位时执行的。本实施例中,当前区块可以包括标志位。区块链节点可以通过同步区块获取标志位。如前所述,所述标志位与已删除数据列表的存储地址相对应。由此,区块链节点一旦在当前区块中获取到所述标志位,就可以从所述标志位对应的存储地址指示的存储位置获取已删除数据列表。在一个变化例中,区块链节点在复制数据时,可以先向生成区块的区块链节点或指定的区块链节点发送数据复制请求,并由生成区块的区块链节点或指定的区块链节点发送数据。例如,已有区块链节点发送数据复制请求,生成区块的区块链节点或指定的区块链节点发送新生成的区块数据或已删除数据列表至已有区块链节点。又例如,新加入的区块链节点发送数据复制请求,生成区块的区块链节点或指定的区块链节点发送全部的区块数据和已删除数据列表至新加入的区块链节点。或者,新加入的区块链节点发送数据复制请求,生成区块的区块链节点或指定的区块链节点先根据已删除数据列表确定被删除的区块数据,并将被删除的区块数据之外的其他区块数据发送至新加入的区块链节点。再例如,已有区块链节点或新加入的区块链节点通过同步当前区块获取其中的标志位后,发送获取已删除数据列表的请求,生成区块的区块链节点或指定的区块链节点将已删除数据列表发送至已有区块链节点或新加入的区块链节点。本发明实施例还公开了一种计算设备。本领域技术人员理解,本实施例的计算设备用于实施上述图5所示实施例中所述的方法技术方案。具体地,在本实施例中,所述计算设备可以包括处理器和存储器,所述存储器上存储有能够在所述处理器上运行的计算机指令,所述处理器运行所述计算机指令时执行以下步骤:获取当前区块,所述当前区块包括前一区块的哈希值、当前区块的哈希值、已删除数据列表的哈希值和存储地址,所述已删除数据列表包括已删除数据的标识,所述已删除数据的标识指示被删除的区块数据,所述删除标识是响应于存储在预设存储空间内的区块数据被删除生成的,所述已删除数据列表存储于所述预设存储空间;根据所述前一区块的哈希值和当前区块的哈希值对所述当前区块进行验证,并在验证通过时将所述当前区块连接在所述前一区块之后;其中,所述已删除数据列表的存储地址指示所述已删除数据列表在预设存储空间中的存储位置,所述预设存储空间可被所述区块链网络中的至少一部分区块链节点访问。在一个非限制性实施例中,所述处理器运行所述计算机指令时还执行以下步骤:根据所述删除数据列表的存储地址获取所述已删除数据列表;根据所述已删除数据列表对本地存储的区块数据的存储状态进行调整。在一个非限制性实施例中,所述处理器运行所述计算机指令时还执行以下步骤:根据所述已删除数据列表的存储地址获取所述已删除数据列表;根据所述已删除数据列表复制所述预设存储空间中的至少一部分区块数据。在一个非限制性实施例中,根据所述删除数据列表的存储地址获取所述已删除数据列表的步骤是在所述当前区块包含所述已删除数据列表的标志位时执行的。关于所述计算设备的工作原理、工作方式的更多内容,可以参照上述图5中的相关描述,这里不再赘述。在具体的应用场景中,在一个利用区块链技术实现通讯、博客等的系统中,大量消息可能会被打包(也即形成区块数据)存储在与区块分离的预设存储空间中。对于存储时长超过预设时长阈值的区块数据(也即历史消息,无法再产生价值),区块链节点可以删除所述区块数据,以实现对历史数据的归档。在另一个具体应用场景中,在一个利用区块链技术实现的交易系统中,在将交易数据(也即区块数据)从区块中分离出来后,如果当前区块中关联的交易数据及其之前区块关联的交易数据中的全部未被使用的交易输出(unspenttransactionoutput,utxo)已经全部被消费过,那么该区块及其之前的区块关联的交易数据,可以进行删除。也即可以从预设存储空间归档存储到备份存储空间。需要说明的是,本发明所述的实施例不限于应用于上述应用场景,可以应用于任意使用区块链技术的场景中。本发明实施例还公开了一种存储介质,其上存储有计算机指令,所述计算机指令运行时可以执行图1、图2、图3或图5中所示方法的步骤。所述存储介质可以包括rom、ram、磁盘或光盘等。所述存储介质还可以包括非挥发性存储器(non-volatile)或者非瞬态(non-transitory)存储器等。虽然本发明披露如上,但本发明并非限定于此。任何本领域技术人员,在不脱离本发明的精神和范围内,均可作各种更动与修改,因此本发明的保护范围应当以权利要求所限定的范围为准。当前第1页12
当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1