CN110213368B - 数据处理方法、数据处理装置和计算机系统 - Google Patents
数据处理方法、数据处理装置和计算机系统 Download PDFInfo
- Publication number
- CN110213368B CN110213368B CN201910475538.0A CN201910475538A CN110213368B CN 110213368 B CN110213368 B CN 110213368B CN 201910475538 A CN201910475538 A CN 201910475538A CN 110213368 B CN110213368 B CN 110213368B
- Authority
- CN
- China
- Prior art keywords
- node
- block chain
- deletion range
- nodes
- deletion
- 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.)
- Active
Links
Images
Classifications
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L67/00—Network arrangements or protocols for supporting network services or applications
- H04L67/01—Protocols
- H04L67/10—Protocols in which an application is distributed across nodes in the network
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L67/00—Network arrangements or protocols for supporting network services or applications
- H04L67/01—Protocols
- H04L67/10—Protocols in which an application is distributed across nodes in the network
- H04L67/1097—Protocols in which an application is distributed across nodes in the network for distributed storage of data in networks, e.g. transport arrangements for network file system [NFS], storage area networks [SAN] or network attached storage [NAS]
Landscapes
- Engineering & Computer Science (AREA)
- Computer Networks & Wireless Communication (AREA)
- Signal Processing (AREA)
- Information Transfer Between Computers (AREA)
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
Abstract
本公开提供了一种数据处理方法,应用于包括多个节点的区块链网络中的一个节点,所述方法包括:响应于发生第一预定事件,确定区块链中与所述一个节点对应的第一删除范围;将所述第一删除范围广播至所述区块链网络进行共识验证;确定通过共识验证的最终删除范围;以及与所述区块链网络中的其他节点共同更新所述区块链,使得所述区块链中与所述最终删除范围对应的第一数据被删除。本公开还提供了一种数据处理装置和计算机系统。
Description
技术领域
本公开涉及一种数据处理方法、数据处理装置和计算机系统。
背景技术
区块链技术的目标是实现数据的分布式可靠存储。区块链一般可以分为公有链(Public Chain)和许可链(Permissioned Chain),其中许可链又可以根据数据维护方是否为单一个体(Entity)分成联盟链(Consortium)和私有链(Private chain)。
为保证安全,现有技术中,区块链中已存储的数据不可篡改。然而,随着数据的不断写入,区块链中存有大量无效、冗余数据,占据着大量的计算资源和存储空间。
发明内容
本公开的一个方面提供了一种数据处理方法,应用于包括多个节点的区块链网络中的一个节点。上述方法包括:响应于发生第一预定事件,确定区块链中与所述一个节点对应的第一删除范围;将所述第一删除范围广播至所述区块链网络进行共识验证;确定通过共识验证的最终删除范围;以及,与所述区块链网络中的其他节点共同更新所述区块链,使得所述区块链中与所述最终删除范围对应的第一数据被删除。
可选地,上述第一预定事件包括:第一指令被广播至所述区块链网络;或者,接收到所述区块链网络中的一个或多个第一指定节点发出的第二指令;或者,预定时间周期届满。
可选地,上述确定通过共识验证的最终删除范围包括:如果接收到关于所述第一删除范围的确认消息的数量超过第一预定阈值,则确定所述第一删除范围为所述最终删除范围;或者,如果接收到所述区块链网络中的一个或多个第二指定节点关于所述第一删除范围的确认消息,则确定所述第一删除范围为所述最终删除范围。
可选地,上述与所述区块链网络中的其他节点共同更新所述区块链包括:如果所述一个节点为主动更新节点,在与所述一个节点对应的区块链中删除所述第一数据并更新区块连接关系;将第一更新消息广播至所述区块链网络,使得所述其他节点分别对各自对应的区块链进行一致性更新;以及,如果所述一个节点为被动更新节点,接收所述区块链网络中的其他节点发送的第一更新消息,在与所述一个节点对应的区块链中删除所述第一数据并更新区块连接关系。
可选地,上述在与所述一个节点对应的区块链中删除所述第一数据并更新区块连接关系包括:如果所述第一数据包含一个或多个区块的完整内容,删除所述一个或多个区块;如果所述第一数据包含一个或多个区块的部分内容,删除所述部分内容,得到一个或多个被修改区块;以及,基于删除之前的区块连接顺序,重新构建被修改区块和/或剩余区块之间的连接关系,使得任一区块的摘要信息保存在后一区块中。
可选地,上述方法还包括:如果所述一个节点为主动更新节点,将关于所述第一数据的删除记录广播至所述区块链网络;如果所述一个节点为被动更新节点,接收所述区块链网络中的其他节点发送的所述删除记录;以及,与所述区块链网络中的其他节点共同将所述删除记录存入所述区块链中。
可选地,上述方法还包括:响应于发生第二预定事件,确定所述区块链中与所述一个节点对应的第一运算范围;将所述第一运算范围广播至所述区块链网络进行共识验证;确定通过共识验证的最终运算范围;以及,基于所述最终运算范围,与所述其他节点共同更新所述区块链,使得所述区块链中存入第一结果,且所述区块链中与所述最终运算范围对应的第二数据被删除,其中,基于预定算法对所述第二数据进行运算得到所述第一结果。
可选地,上述方法还包括:如果所述一个节点为主动更新节点,将关于所述第二数据的运算记录广播至所述区块链网络;如果所述一个节点为被动更新节点,接收所述区块链网络中的其他节点发送的所述运算记录;以及,与所述区块链网络中的其他节点共同将所述运算记录存入所述区块链中。
本公开的另一方面提供了一种数据处理装置,应用于包括多个节点的区块链网络中的一个节点。所述装置包括:第一确定模块、第一验证模块、第二确定模块、以及第一更新模块。第一确定模块用于响应于发生第一预定事件,确定区块链中与所述一个节点对应的第一删除范围。第一验证模块用于将所述第一删除范围广播至所述区块链网络进行共识验证。第二确定模块用于确定通过共识验证的最终删除范围。以及,第一更新模块用于与所述区块链网络中的其他节点共同更新所述区块链,使得所述区块链中与所述最终删除范围对应的第一数据被删除。
本公开的另一方面提供了一种计算机系统,应用于包括多个节点的区块链网络中的一个节点,包括:存储器、处理器及存储在存储器上并可在处理器上运行的计算机程序,所述处理器执行所述程序时用于实现如上所述的方法。
本公开的另一方面提供了一种计算机可读存储介质,存储有计算机可执行指令,所述指令在被执行时用于实现如上所述的方法。
本公开的另一方面提供了一种计算机程序,所述计算机程序包括计算机可执行指令,所述指令在被执行时用于实现如上所述的方法。
附图说明
为了更完整地理解本公开及其优势,现在将参考结合附图的以下描述,其中:
图1示意性示出了根据本公开实施例的数据处理方法、装置和计算机系统的应用场景;
图2示意性示出了根据本公开实施例的数据处理方法的流程图;
图3A示意性示出了根据本公开实施例的区块链的示意图;
图3B示意性示出了根据本公开实施例的更新后的区块链的示意图;
图3C示意性示出了根据本公开另一实施例的更新后的区块链的示意图;
图4示意性示出了根据本公开实施例的数据处理装置的框图;
图5示意性示出了根据本公开另一实施例的数据处理装置的框图;以及
图6示意性示出了根据本公开的实施例的计算机系统的框图。
具体实施方式
以下,将参照附图来描述本公开的实施例。但是应该理解,这些描述只是示例性的,而并非要限制本公开的范围。在下面的详细描述中,为便于解释,阐述了许多具体的细节以提供对本公开实施例的全面理解。然而,明显地,一个或多个实施例在没有这些具体细节的情况下也可以被实施。此外,在以下说明中,省略了对公知结构和技术的描述,以避免不必要地混淆本公开的概念。
在此使用的术语仅仅是为了描述具体实施例,而并非意在限制本公开。在此使用的术语“包括”、“包含”等表明了所述特征、步骤、操作和/或部件的存在,但是并不排除存在或添加一个或多个其他特征、步骤、操作或部件。
在此使用的所有术语(包括技术和科学术语)具有本领域技术人员通常所理解的含义,除非另外定义。应注意,这里使用的术语应解释为具有与本说明书的上下文相一致的含义,而不应以理想化或过于刻板的方式来解释。
在使用类似于“A、B和C等中至少一个”这样的表述的情况下,一般来说应该按照本领域技术人员通常理解该表述的含义来予以解释(例如,“具有A、B和C中至少一个的系统”应包括但不限于单独具有A、单独具有B、单独具有C、具有A和B、具有A和C、具有B和C、和/或具有A、B、C的系统等)。在使用类似于“A、B或C等中至少一个”这样的表述的情况下,一般来说应该按照本领域技术人员通常理解该表述的含义来予以解释(例如,“具有A、B或C中至少一个的系统”应包括但不限于单独具有A、单独具有B、单独具有C、具有A和B、具有A和C、具有B和C、和/或具有A、B、C的系统等)。
附图中示出了一些方框图和/或流程图。应理解,方框图和/或流程图中的一些方框或其组合可以由计算机程序指令来实现。这些计算机程序指令可以提供给通用计算机、专用计算机或其他可编程数据处理装置的处理器,从而这些指令在由该处理器执行时可以创建用于实现这些方框图和/或流程图中所说明的功能/操作的装置。本公开的技术可以硬件和/或软件(包括固件、微代码等)的形式来实现。另外,本公开的技术可以采取存储有指令的计算机可读存储介质上的计算机程序产品的形式,该计算机程序产品可供指令执行系统使用或者结合指令执行系统使用。
本公开的实施例提供了一种数据处理方法、装置以及能够应用该方法的计算机系统。该方法包括删除范围初步确定阶段、共识验证阶段、删除范围最终确定阶段和区块链更新阶段。在删除范围初步确定阶段,任一节点响应于发生第一预定事件,确定区块链中与自身对应的第一删除范围。在各节点均确定与各自对应的第一删除范围后,进入共识验证阶段,各节点将所确定的第一删除范围广播至区块链网络进行共识验证。根据共识验证结果确定出通过共识验证的最终删除范围,即完成删除范围最终确定阶段。最后进入区块链更新阶段,区块链网络中的各节点共同完成区块链的更新,使得区块链中与最终删除范围对应的第一数据被删除。
图1示意性示出了根据本公开实施例的数据处理方法、装置和计算机系统的应用场景。需要注意的是,图1所示仅为可以应用本公开实施例的场景的示例,以帮助本领域技术人员理解本公开的技术内容,但并不意味着本公开实施例不可以用于其他设备、系统、环境或场景。
如图1所示,该应用场景示出了区块链网络(Blockchain Network)100,该区块链网络100可以包括节点(Node)101~106,节点101~106共同维护区块链(Blockchain)110。
节点101~106可以是具有相同或不同计算能力的各种计算节点,例如可以是个人计算机、网络服务器、数据库服务器、智能手机等等,在此不做限定。节点101~106中任意两个节点之间都可进行点对点通信。
区块链110是通过散列指针按时间顺序链接的区块(Block)的分布式数据库。区块链的区块是按照时间顺序加入的,当满足预定条件时,区块链网络中的各节点允许当前节点创建区块并将该区块加入到区块链中,加入的区块作为该区块链上当前最新区块。在某一特定时刻,维护同一区块链的节点从区块链上获取的当前最新区块是相同的。
应该理解,图1中的区块链网络的规模和类型、节点的数量、区块链的长度、区块的数量等仅仅是示意性的。根据实际需要,可以具有任意规模和类型的区块链网络、任意数量的节点、任意长度的区块链、任意数量的区块等,在此不做限制。
图2示意性示出了根据本公开实施例的数据处理方法的流程图。该方法应用于包括多个节点的区块链网络中的一个节点。
如图2所示,该方法包括操作S201~S204。
在操作S201,响应于发生第一预定事件,确定区块链中与所述一个节点对应的第一删除范围。
其中,对于区块链网络中的任一节点,确定区块链与该节点对应的第一删除范围的过程是:该节点从区块链当前已记录的数据中查找到对自身来说需要删除的范围的过程。
在操作S202,将所述第一删除范围广播至所述区块链网络进行共识验证。
其中,区块链网络中的任一节点在确定与自身对应的第一删除范围后,都可以通过本操作S202将与自身对应的第一删除范围广播至区块链网络,由区块链网络中的其他节点对该第一删除范围进行共识验证,得到验证结果。根据区块链网络中的各节点对于该第一删除范围的验证结果,可以确定该第一删除范围是否通过共识验证。
在操作S203,确定通过共识验证的最终删除范围。
本操作将通过共识验证的第一删除范围确定为最终删除范围,该最终删除范围表征区块链网络中各节点协商得到的删除范围。
在操作S204,与所述区块链网络中的其他节点共同更新所述区块链,使得所述区块链中与所述最终删除范围对应的第一数据被删除。
可见,图2所示的方法通过区块链网络中各节点的共识验证过程确定最终删除范围,再基于该最终删除范围对区块链进行删除更新,保持了删除更新后的区块链相对于区块链网络中的各节点的一致性,并在保证安全的前提下实现了区块链的删除机制,可以将区块链中已经无用的数据删除,节省容量资源。提高后续计算处理效率。
在本公开的一个实施例中,上述第一预定事件可以包括如下几种情况:
(1)第一预定事件为本节点将第一指令广播至区块链网络的事件。其中,第一指令是用于发起删除操作的指令,当本节点发出该第一指令时,本节点可以开始执行确定与本节点对应的第一删除范围的操作,而其他节点在接收到该第一指令时,可以开始执行确定与自身对应的第一删除范围的操作。
(2)第一预定事件为本节点接收到区块链网络中的一个或多个第一指定节点发出的第二指令的事件。其中,第一指定节点是具有发起删除操作权限的节点,第二指令是用于发起删除操作的指令,对于区块链网络中的任一节点,当接收到来自具有发起删除操作权限的节点的第二指令时,可以开始执行确定与自身对应的第一删除范围的操作。
(3)第一预定事件为预定时间周期届满的事件。例如,可以为本节点设置一定时器,该定时器的定时事件为该预定时间,当该定时器到达该预定时间时,触发删除操作,本节点可以开始执行确定与自身对应的第一删除范围的操作。
可以看出,区块链的删除操作可以借助定时器触发,也可以由区块链网络中的部分节点主动触发,可以根据需要进行设置,在此不做限制。
在本公开的一个实施例中,根据本公开实施例的数据处理方法可以通过如下方式之一来确定通过共识验证的最终删除范围:
(1)如果接收到关于第一删除范围的确认消息的数量超过第一预定阈值,则确定该第一删除范围为最终删除范围。例如,区块链网络包括节点1~5,节点1通过检测区块链当前已记录的数据,确定与节点1对应的第一删除范围1,节点1将该第一删除范围1发送至节点2~4,节点2~4中的每一个节点在接收到该第一删除范围1后判断自身是否认同该第一删除范围1,如果是则向节点1返回确认消息。节点1如果接收到关于第一删除范围1的确定消息的数量超过第一预定阈值(例如第一预定阈值可以等于区块链网络中的节点数量的70%),则确定该第一删除范围1是大部分节点希望删除的范围,可以将该第一删除范围1作为最终删除范围。
(2)如果接收到区块链网络中的一个或多个第二指定节点关于第一删除范围的确认消息,则确定该第一删除范围为最终删除范围。沿用上文节点1将该第一删除范围1发送至节点2~4的例子,第二指定节点是指区块链网络中具有高级权限的节点(例如EOS(Enterprise Operating System,企业操作系统)网络中的超级节点),本例中假设节点3为第二指定节点。节点1如果接收到来自节点3的关于第一删除范围1的确认消息,则确定区块链网络中具有高级权限的节点认同该第一删除范围1,其他普通权限的节点需要服从该结果,因此将第一删除范围1作为最终删除范围。
在本公开的一个实施例中,上述与区块链网络中的其他节点共同更新区块链包括:对于任一节点来说,如果该节点为主动更新节点,在与该节点对应的区块链中删除第一数据并更新区块连接关系;将第一更新消息广播至区块链网络,使得区块链网络中的其他节点分别对各自对应的区块链进行一致性更新;以及,如果该节点为被动更新节点,接收区块链网络中的其他节点发送的第一更新消息,在与该节点对应的区块链中删除第一数据并更新区块连接关系。其中,第一数据为与最终删除范围对应的数据内容。可以看出,在进行区块链的删除更新时,每个节点都需要对与自身对应的区块链进行删除第一数据并更新区块连接关系的操作。
具体地,作为一个可选的实施例,上述每个节点在与自身对应的区块链中删除第一数据并更新区块连接关系包括:如果第一数据包含一个或多个区块的完整内容,删除所述一个或多个区块;如果第一数据包含一个或多个区块的部分内容,删除所述部分内容,得到一个或多个被修改区块;以及,基于删除之前的区块连接顺序,重新构建被修改区块和/或剩余区块之间的连接关系,使得任一区块的摘要信息保存在后一区块中。
下面参考图3A~3C,进一步说明上述区块链更新过程。其中,图3A示意性示出了根据本公开实施例的区块链的示意图。图3B示意性示出了根据本公开实施例的更新后的区块链的示意图。图3C示意性示出了根据本公开另一实施例的更新后的区块链的示意图。
如图3A所示,当前区块链包括区块1~区块4,区块1为初始区块,区块1所存储数据的摘要信息(例如可以是哈希值(Hash))为4D9G,由于区块1之前不存在其他区块,因此区块1中没有在前区块的摘要信息。区块2所存储数据的摘要信息为1D2A,区块2中还存储有在前区块即区块1的摘要信息4D9G。区块3所存储数据的摘要信息为8F3P,区块3中还存储有在前区块即区块2的摘要信息1D2A。区块4所存储数据的摘要信息为5P3J,区块4中还存储有在前区块即区块3的摘要信息8F3P。
在确定最终删除范围后,进一步确定与该最终删除范围对应的第一数据。区块链网络中的每个节点在与自身对应的区块链上执行第一数据的删除以及区块连接关系的更新,具体地,可以从初始区块开始,逐区块地遍历,查找需要删除的第一数据。例如,当第一数据为区块3的完整内容时,删除图3A所示的区块链中的区块3,此时区块4的在前区块不再是区块3,而变成了区块2,区块4变为更新后的区块链的区块3,为了使得区块4能够正确连接在区块2之后,需要将区块4所存储的摘要信息更改为区块2的摘要信息1D2A,得到如图3B所示的更新后的区块链。当第一数据为区块3的部分内容时,在图3A所示的区块链的区块3中删除第一数据,此时区块3的摘要信息发生了变化,从原来的8F3P变为例如9F3H,此时为了使得区块4能够正确连接在更新的区块3之后,需要将区块4所存储的摘要信息更改为更新后的区块3的摘要信息9F3H,得到如图3C所示的更新后的区块链。
在本公开的一个实施例中,为了进一步确保区块链的删除机制的安全性,根据本公开实施例的数据处理方法还可以包括:将经过区块链网络中的各节点共识验证的关于上述第一数据的删除记录存入区块链中,以使得区块链中的数据删除操作由全体节点共同见证。具体地,如果一个节点为主动更新节点,该节点将关于该第一数据的删除记录广播至区块链网络,由区块链网络中的各节点对该删除记录进行共识验证。在通过共识验证后,由区块链网络中的各节点将删除记录存入区块链中,以表明区块链中曾进行过与该删除记录对应的数据删除操作。如果一个节点为被动更新节点,该节点接收区块链网络中的其他节点发送的删除记录,对该删除记录进行共识验证。当该删除记录通过区块链网络的共识验证后,该节点与区块链网络中的其他节点共同将该删除记录存入区块链中,以表明区块链中曾进行过与该删除记录对应的数据删除操作。
进一步地,在本公开的一个实施例中,不仅可以支持区块链中的数据删除操作,还可以支持区块链中的其他数据运算操作。具体地,根据本公开实施例的数据处理方法还可以包括:对于区块链网络中的任一节点,响应于发生第二预定事件,确定当前区块链中与本节点对应的第一运算范围;将该第一运算范围广播至区块链网络中的各节点进行共识验证;确定通过共识验证的最终运算范围;以及,基于该最终运算范围,与区块链网络中的其他各节点共同更新区块链,使得区块链中存入第一结果,且区块链中与该最终运算范围对应的第二数据被删除,其中,基于预定算法对该第二数据进行运算得到上述第一结果。
其中,当前区块链中与本节点对应的第一运算范围是指对于本节点来说具有运算需求的数据范围。第二预定事件可以是由区块链网络中的一个或多个节点发起的,也可以是由定时器定时触发的,在此不做限制。预定算法是与第一运算对应的算法,第一运算可以是合并运算、压缩运算、编码运算、解码运算等等各种运算形式,在此不做限制。下面以第一运算为合并运算为例对本实施例进行说明。
响应于发生第二预定事件,区块链网络中的每个节点检测当前区块链,确定与各自对应的需要进行合并的第一运算范围,将该第一运算范围广播至区块链网络中的一个或多个节点进行共识验证。当收到超过第二预定阈值的关于该第一运算范围的确认消息时,或者,当收到一个或多个具有高级权限的节点返回的关于该第一运算范围的确认消息时,确定该第一运算范围为最终运算范围。本例中,假设与最终运算范围对应的第二数据包括数据A和数据B,则区块链网络中的各节点更新区块链,使得数据A和数据B进行合并得到的第一结果A+B被存入区块链中,且与数据A和数据B被删除。其中,数据A和数据B的删除过程也可以按照上文中的数据删除过程进行。可以看出,依据本实施例,可以将区块链中已记录的冗余数据进行合并,以提高区块链的利用效率。
在上述对区块链中的数据进行各种形式的运算的基础上,根据本公开实施例的数据处理方法还可以包括:将与上述运算过程对应的运算记录经过共识验证并存入区块链,以表明区块链中曾进行过与该运算记录对应的数据运算操作。具体地,如果所述一个节点为主动更新节点,将关于所述第二数据的运算记录广播至所述区块链网络;如果所述一个节点为被动更新节点,接收所述区块链网络中的其他节点发送的所述运算记录;以及,与所述区块链网络中的其他节点共同将所述运算记录存入所述区块链中。
在本公开的一个实施例中,对于一些基于挖矿机制或交易支持佣金机制的区块链网络,在上述进行区块链中的数据删除后,可以根据预设规则进行挖矿记录的整理和佣金的统一清算,例如可以根据区块链网络中各节点的共识验证结果,确认区块链中已存储的一个或多个挖矿记录无效或者有效,或者,根据区块链网络中各节点的共识验证结果,确认佣金无效、有效、或需要重新进行转账等,上述确认结果均可以作为新的交易数据存入区块链由多方共同见证,保证了在数据删除操作后的区块链网络中的秩序。
图4示意性示出了根据本公开实施例的数据处理装置的框图。该数据处理装置400应用于包括多个节点的区块链网络中的一个节点。
如图4所示,数据处理装置400包括:第一确定模块401、第一验证模块402、第二确定模块403、以及第一更新模块404。
第一确定模块401用于响应于发生第一预定事件,确定区块链中与所述一个节点对应的第一删除范围。
第一验证模块402用于将所述第一删除范围广播至所述区块链网络进行共识验证。
第二确定模块403用于确定通过共识验证的最终删除范围。
第一更新模块404用于与所述区块链网络中的其他节点共同更新所述区块链,使得所述区块链中与所述最终删除范围对应的第一数据被删除。
图5示意性示出了根据本公开另一实施例的数据处理装置的框图。该数据处理装置500应用于包括多个节点的区块链网络中的一个节点。
如图5所示,数据处理装置500包括:第一确定模块501、第一验证模块502、第二确定模块503、以及第一更新模块504。其中,第一确定模块501、第一验证模块502、第二确定模块503、以及第一更新模块504分别具有与第一确定模块401、第一验证模块402、第二确定模块403、以及第一更新模块404对应相同的功能,重复的部分不再赘述。
在本公开的一个实施例中,上述第一预定事件包括:第一指令被广播至所述区块链网络;或者,接收到所述区块链网络中的一个或多个第一指定节点发出的第二指令;或者,预定时间周期届满。
在本公开的一个实施例中,第二确定模块503包括:第一确定子模块5031和第二确定子模块5032,通过二者中的任一来确定最终删除范围。
第一确定子模块5031用于在接收到关于所述第一删除范围的确认消息的数量超过第一预定阈值时,确定所述第一删除范围为所述最终删除范围。第二确定子模块5032用于在接收到所述区块链网络中的一个或多个第二指定节点关于所述第一删除范围的确认消息时,确定所述第一删除范围为所述最终删除范围。
在本公开的一个实施例中,第一更新模块504包括:第一删除子模块5041、第一广播子模块5042、以及第二删除子模块5043。
第一删除子模块5041用于在所述一个节点为主动更新节点时,在与所述一个节点对应的区块链中删除所述第一数据并更新区块连接关系。第一广播子模块5042用于将第一更新消息广播至所述区块链网络,使得所述其他节点分别对各自对应的区块链进行一致性更新。第二删除子模块5043用于在所述一个节点为被动更新节点时,接收所述区块链网络中的其他节点发送的第一更新消息,在与所述一个节点对应的区块链中删除所述第一数据并更新区块连接关系。
其中,作为一个可选的实施例,上述第一删除子模块5041或第二删除子模块5043在与所述一个节点对应的区块链中删除所述第一数据并更新区块连接关系具体包括:如果所述第一数据包含一个或多个区块的完整内容,删除所述一个或多个区块;如果所述第一数据包含一个或多个区块的部分内容,删除所述部分内容,得到一个或多个被修改区块;以及,基于删除之前的区块连接顺序,重新构建被修改区块和/或剩余区块之间的连接关系,使得任一区块的摘要信息保存在后一区块中。
在本公开的一个实施例中,数据处理装置500还包括:第一广播模块505、第一接收模块506、以及第一记录模块507。
第一广播模块505用于在所述一个节点为主动更新节点时,将关于所述第一数据的删除记录广播至所述区块链网络。第一接收模块506用于在所述一个节点为被动更新节点时,接收所述区块链网络中的其他节点发送的所述删除记录。第一记录模块507用于与所述区块链网络中的其他节点共同将所述删除记录存入所述区块链中。
在本公开的一个实施例中,数据处理装置500还包括:第三确定模块508、第二验证模块509、第四确定模块510、以及第二更新模块511。
第三确定模块508用于响应于发生第二预定事件,确定所述区块链中与所述一个节点对应的第一运算范围。第二验证模块509用于将所述第一运算范围广播至所述区块链网络进行共识验证。第四确定模块510用于确定通过共识验证的最终运算范围。第二更新模块511用于基于所述最终运算范围,与所述其他节点共同更新所述区块链,使得所述区块链中存入第一结果,且所述区块链中与所述最终运算范围对应的第二数据被删除,其中,基于预定算法对所述第二数据进行运算得到所述第一结果。
在本公开的一个实施例中,数据处理装置500还包括:第二广播模块512、第二接收模块513、以及第二记录模块514。
第二广播模块512用于在所述一个节点为主动更新节点时,将关于所述第二数据的运算记录广播至所述区块链网络。第二接收模块513用于在所述一个节点为被动更新节点时,接收所述区块链网络中的其他节点发送的所述运算记录。以及第二记录模块514用于与所述区块链网络中的其他节点共同将所述运算记录存入所述区块链中。
需要说明的是,装置部分实施例中各模块/单元/子单元等的实施方式、解决的技术问题、实现的功能、以及达到的技术效果分别与方法部分实施例中各对应的步骤的实施方式、解决的技术问题、实现的功能、以及达到的技术效果相同或类似,在此不再赘述。
根据本公开的实施例的模块、子模块、单元、子单元中的任意多个、或其中任意多个的至少部分功能可以在一个模块中实现。根据本公开实施例的模块、子模块、单元、子单元中的任意一个或多个可以被拆分成多个模块来实现。根据本公开实施例的模块、子模块、单元、子单元中的任意一个或多个可以至少被部分地实现为硬件电路,例如现场可编程门阵列(FPGA)、可编程逻辑阵列(PLA)、片上系统、基板上的系统、封装上的系统、专用集成电路(ASIC),或可以通过对电路进行集成或封装的任何其他的合理方式的硬件或固件来实现,或以软件、硬件以及固件三种实现方式中任意一种或以其中任意几种的适当组合来实现。或者,根据本公开实施例的模块、子模块、单元、子单元中的一个或多个可以至少被部分地实现为计算机程序模块,当该计算机程序模块被运行时,可以执行相应的功能。
例如,第一确定模块501、第一验证模块502、第二确定模块503、第一更新模块504、第一广播模块505、第一接收模块506、第一记录模块507、第三确定模块508、第二验证模块509、第四确定模块510、第二更新模块511、第二广播模块512、第二接收模块513、以及第二记录模块514中的任意多个可以合并在一个模块中实现,或者其中的任意一个模块可以被拆分成多个模块。或者,这些模块中的一个或多个模块的至少部分功能可以与其他模块的至少部分功能相结合,并在一个模块中实现。根据本公开的实施例,第一确定模块501、第一验证模块502、第二确定模块503、第一更新模块504、第一广播模块505、第一接收模块506、第一记录模块507、第三确定模块508、第二验证模块509、第四确定模块510、第二更新模块511、第二广播模块512、第二接收模块513、以及第二记录模块514中的至少一个可以至少被部分地实现为硬件电路,例如现场可编程门阵列(FPGA)、可编程逻辑阵列(PLA)、片上系统、基板上的系统、封装上的系统、专用集成电路(ASIC),或可以通过对电路进行集成或封装的任何其他的合理方式等硬件或固件来实现,或以软件、硬件以及固件三种实现方式中任意一种或以其中任意几种的适当组合来实现。或者,第一确定模块501、第一验证模块502、第二确定模块503、第一更新模块504、第一广播模块505、第一接收模块506、第一记录模块507、第三确定模块508、第二验证模块509、第四确定模块510、第二更新模块511、第二广播模块512、第二接收模块513、以及第二记录模块514中的至少一个可以至少被部分地实现为计算机程序模块,当该计算机程序模块被运行时,可以执行相应的功能。
图6示意性示出了根据本公开实施例的适于实现上文描述的方法的计算机系统的框图。图6示出的计算机系统仅仅是一个示例,不应对本公开实施例的功能和使用范围带来任何限制。
如图6所示,计算机系统600包括处理器610和计算机可读存储介质620。该计算机系统600可以执行根据本公开实施例的方法。
具体地,处理器610例如可以包括通用微处理器、指令集处理器和/或相关芯片组和/或专用微处理器(例如,专用集成电路(ASIC)),等等。处理器610还可以包括用于缓存用途的板载存储器。处理器610可以是用于执行根据本公开实施例的方法流程的不同动作的单一处理单元或者是多个处理单元。
计算机可读存储介质620,例如可以是非易失性的计算机可读存储介质,具体示例包括但不限于:磁存储装置,如磁带或硬盘(HDD);光存储装置,如光盘(CD-ROM);存储器,如随机存取存储器(RAM)或闪存;等等。
计算机可读存储介质620可以包括计算机程序621,该计算机程序621可以包括代码/计算机可执行指令,其在由处理器610执行时使得处理器610执行根据本公开实施例的方法或其任何变形。
计算机程序621可被配置为具有例如包括计算机程序模块的计算机程序代码。例如,在示例实施例中,计算机程序621中的代码可以包括一个或多个程序模块,例如包括621A、模块621B、……。应当注意,模块的划分方式和个数并不是固定的,本领域技术人员可以根据实际情况使用合适的程序模块或程序模块组合,当这些程序模块组合被处理器610执行时,使得处理器610可以执行根据本公开实施例的方法或其任何变形。
根据本发明的实施例,第一确定模块501、第一验证模块502、第二确定模块503、第一更新模块504、第一广播模块505、第一接收模块506、第一记录模块507、第三确定模块508、第二验证模块509、第四确定模块510、第二更新模块511、第二广播模块512、第二接收模块513、以及第二记录模块514中的至少一个可以实现为参考图6描述的计算机程序模块,其在被处理器610执行时,可以实现上文所述的数据处理方法。
本公开还提供了一种计算机可读存储介质,该计算机可读存储介质可以是上述实施例中描述的设备/装置/系统中所包含的;也可以是单独存在,而未装配入该设备/装置/系统中。上述计算机可读存储介质承载有一个或者多个程序,当上述一个或者多个程序被执行时,实现根据本公开实施例的方法。
根据本公开的实施例,计算机可读存储介质可以是非易失性的计算机可读存储介质,例如可以包括但不限于:便携式计算机磁盘、硬盘、随机访问存储器(RAM)、只读存储器(ROM)、可擦式可编程只读存储器(EPROM或闪存)、便携式紧凑磁盘只读存储器(CD-ROM)、光存储器件、磁存储器件、或者上述的任意合适的组合。在本公开中,计算机可读存储介质可以是任何包含或存储程序的有形介质,该程序可以被指令执行系统、装置或者器件使用或者与其结合使用。
附图中的流程图和框图,图示了按照本公开各种实施例的系统、方法和计算机程序产品的可能实现的体系架构、功能和操作。在这点上,流程图或框图中的每个方框可以代表一个模块、程序段、或代码的一部分,上述模块、程序段、或代码的一部分包含一个或多个用于实现规定的逻辑功能的可执行指令。也应当注意,在有些作为替换的实现中,方框中所标注的功能也可以以不同于附图中所标注的顺序发生。例如,两个接连地表示的方框实际上可以基本并行地执行,它们有时也可以按相反的顺序执行,这依所涉及的功能而定。也要注意的是,框图或流程图中的每个方框、以及框图或流程图中的方框的组合,可以用执行规定的功能或操作的专用的基于硬件的系统来实现,或者可以用专用硬件与计算机指令的组合来实现。
本领域技术人员可以理解,本公开的各个实施例和/或权利要求中记载的特征可以进行多种组合和/或结合,即使这样的组合或结合没有明确记载于本公开中。特别地,在不脱离本公开精神和教导的情况下,本公开的各个实施例和/或权利要求中记载的特征可以进行多种组合和/或结合。所有这些组合和/或结合均落入本公开的范围。
尽管已经参照本公开的特定示例性实施例示出并描述了本公开,但是本领域技术人员应该理解,在不背离所附权利要求及其等同物限定的本公开的精神和范围的情况下,可以对本公开进行形式和细节上的多种改变。因此,本公开的范围不应该限于上述实施例,而是应该不仅由所附权利要求来进行确定,还由所附权利要求的等同物来进行限定。
Claims (9)
1.一种数据处理方法,应用于包括多个节点的区块链网络中的一个节点,所述方法包括:
响应于发生第一预定事件,确定区块链中与所述一个节点对应的第一删除范围;
将所述第一删除范围广播至所述区块链网络进行共识验证;
确定通过共识验证的最终删除范围;以及
与所述区块链网络中的其他节点共同更新所述区块链,使得所述区块链中与所述最终删除范围对应的第一数据被删除;
其中,所述确定通过共识验证的最终删除范围包括:
如果接收到关于所述第一删除范围的确认消息的数量超过第一预定阈值,则确定所述第一删除范围为所述最终删除范围;或者
如果接收到所述区块链网络中的一个或多个第二指定节点关于所述第一删除范围的确认消息,则确定所述第一删除范围为所述最终删除范围。
2.根据权利要求1所述的方法,其中,所述第一预定事件包括:
第一指令被广播至所述区块链网络;或者
接收到所述区块链网络中的一个或多个第一指定节点发出的第二指令;或者
预定时间周期届满。
3.根据权利要求1所述的方法,其中,所述与所述区块链网络中的其他节点共同更新所述区块链包括:
如果所述一个节点为主动更新节点,在与所述一个节点对应的区块链中删除所述第一数据并更新区块连接关系;
将第一更新消息广播至所述区块链网络,使得所述其他节点分别对各自对应的区块链进行一致性更新;以及
如果所述一个节点为被动更新节点,接收所述区块链网络中的其他节点发送的第一更新消息,在与所述一个节点对应的区块链中删除所述第一数据并更新区块连接关系。
4.根据权利要求3所述的方法,其中,所述在与所述一个节点对应的区块链中删除所述第一数据并更新区块连接关系包括:
如果所述第一数据包含一个或多个区块的完整内容,删除所述一个或多个区块;
如果所述第一数据包含一个或多个区块的部分内容,删除所述部分内容,得到一个或多个被修改区块;以及
基于删除之前的区块连接顺序,重新构建被修改区块和/或剩余区块之间的连接关系,使得任一区块的摘要信息保存在后一区块中。
5.根据权利要求1所述的方法,还包括:
如果所述一个节点为主动更新节点,将关于所述第一数据的删除记录广播至所述区块链网络;
如果所述一个节点为被动更新节点,接收所述区块链网络中的其他节点发送的所述删除记录;以及
与所述区块链网络中的其他节点共同将所述删除记录存入所述区块链中。
6.根据权利要求1所述的方法,还包括:
响应于发生第二预定事件,确定所述区块链中与所述一个节点对应的第一运算范围;
将所述第一运算范围广播至所述区块链网络进行共识验证;
确定通过共识验证的最终运算范围;以及
基于所述最终运算范围,与所述其他节点共同更新所述区块链,使得所述区块链中存入第一结果,且所述区块链中与所述最终运算范围对应的第二数据被删除,其中,基于预定算法对所述第二数据进行运算得到所述第一结果。
7.根据权利要求6所述的方法,还包括:
如果所述一个节点为主动更新节点,将关于所述第二数据的运算记录广播至所述区块链网络;
如果所述一个节点为被动更新节点,接收所述区块链网络中的其他节点发送的所述运算记录;以及
与所述区块链网络中的其他节点共同将所述运算记录存入所述区块链中。
8.一种数据处理装置,应用于包括多个节点的区块链网络中的一个节点,所述装置包括:
第一确定模块,用于响应于发生第一预定事件,确定区块链中与所述一个节点对应的第一删除范围;
第一验证模块,用于将所述第一删除范围广播至所述区块链网络进行共识验证;
第二确定模块,用于确定通过共识验证的最终删除范围;以及
第一更新模块,用于与所述区块链网络中的其他节点共同更新所述区块链,使得所述区块链中与所述最终删除范围对应的第一数据被删除;
其中,所述确定通过共识验证的最终删除范围包括:
如果接收到关于所述第一删除范围的确认消息的数量超过第一预定阈值,则确定所述第一删除范围为所述最终删除范围;或者
如果接收到所述区块链网络中的一个或多个第二指定节点关于所述第一删除范围的确认消息,则确定所述第一删除范围为所述最终删除范围。
9.一种计算机系统,应用于包括多个节点的区块链网络中的一个节点,包括:存储器、处理器及存储在存储器上并可在处理器上运行的计算机程序,所述处理器执行所述程序时用于实现:
响应于发生第一预定事件,确定区块链中与所述一个节点对应的第一删除范围;
将所述第一删除范围广播至所述区块链网络进行共识验证;
确定通过共识验证的最终删除范围;以及
与所述区块链网络中的其他节点共同更新所述区块链,使得所述区块链中与所述最终删除范围对应的第一数据被删除;
其中,所述确定通过共识验证的最终删除范围包括:
如果接收到关于所述第一删除范围的确认消息的数量超过第一预定阈值,则确定所述第一删除范围为所述最终删除范围;或者
如果接收到所述区块链网络中的一个或多个第二指定节点关于所述第一删除范围的确认消息,则确定所述第一删除范围为所述最终删除范围。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201910475538.0A CN110213368B (zh) | 2019-05-31 | 2019-05-31 | 数据处理方法、数据处理装置和计算机系统 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201910475538.0A CN110213368B (zh) | 2019-05-31 | 2019-05-31 | 数据处理方法、数据处理装置和计算机系统 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN110213368A CN110213368A (zh) | 2019-09-06 |
CN110213368B true CN110213368B (zh) | 2021-07-16 |
Family
ID=67790310
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201910475538.0A Active CN110213368B (zh) | 2019-05-31 | 2019-05-31 | 数据处理方法、数据处理装置和计算机系统 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN110213368B (zh) |
Families Citing this family (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN112286928B (zh) * | 2019-09-16 | 2023-11-28 | 重庆傲雄在线信息技术有限公司 | 一种链式存储系统 |
CN111801904B (zh) * | 2020-03-06 | 2023-03-21 | 支付宝(杭州)信息技术有限公司 | 验证和广播事件的方法和设备 |
CN111382166A (zh) * | 2020-03-16 | 2020-07-07 | 联想(北京)有限公司 | 一种基于区块链的信息处理方法及电子设备 |
CN111611319A (zh) * | 2020-06-08 | 2020-09-01 | 杭州复杂美科技有限公司 | 分布式数据存储方法、设备和存储介质 |
Family Cites Families (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN105976231A (zh) * | 2016-06-24 | 2016-09-28 | 深圳前海微众银行股份有限公司 | 基于区块链智能合约的资产管理方法及节点 |
CN107332876B (zh) * | 2017-05-31 | 2020-05-08 | 深圳前海微众银行股份有限公司 | 区块链状态的同步方法及装置 |
KR102094497B1 (ko) * | 2017-08-16 | 2020-04-23 | 주식회사 케이티 | 블록체인 기반의 스토리지 서비스 제공 시스템 및 방법 |
CN107944887A (zh) * | 2017-12-14 | 2018-04-20 | 法信公证云(厦门)科技有限公司 | 一种基于区块链的民间借贷风险预控方法 |
CN108848080A (zh) * | 2018-06-01 | 2018-11-20 | 深圳崀途科技有限公司 | 基于联盟链存储校验的数据共享系统 |
CN109034813B (zh) * | 2018-09-07 | 2020-04-21 | 腾讯科技(深圳)有限公司 | 代表节点设备选举方法、装置、计算机设备及存储介质 |
-
2019
- 2019-05-31 CN CN201910475538.0A patent/CN110213368B/zh active Active
Also Published As
Publication number | Publication date |
---|---|
CN110213368A (zh) | 2019-09-06 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN110213368B (zh) | 数据处理方法、数据处理装置和计算机系统 | |
US20200142864A1 (en) | Shared document editing in the blockchain | |
US11074139B2 (en) | Dynamic block chain system using metadata for backing up data based on digest rules | |
CN107710215B (zh) | 在测试设施中的移动计算装置安全的方法和设备 | |
CN111259078B (zh) | 区块链共识方法、装置、计算机设备和存储介质 | |
US9417972B2 (en) | Cascade ordering | |
CN111526218B (zh) | 联盟链中的共识方法和系统 | |
CN109934712B (zh) | 应用于分布式系统的对账方法、对账装置和电子设备 | |
US11210003B2 (en) | Method, device and computer program product for restoring data based on replacing child node identifiers with parent node identifier | |
US20170230285A1 (en) | Regulation based switching system for electronic message routing | |
CN112214519B (zh) | 一种数据查询方法、装置、设备及可读介质 | |
CN111681011B (zh) | 数据处理方法、区块链系统、计算机系统和介质 | |
CN111245897B (zh) | 数据处理方法、装置、系统、存储介质及处理器 | |
CN108573049B (zh) | 数据处理方法和分布式存储装置 | |
CN112988470B (zh) | 联盟链中的共识方法、共识节点和系统 | |
US20120084499A1 (en) | Systems and methods for managing a virtual tape library domain | |
US11805407B2 (en) | Apparatus and method for securely updating binary data in vehicle | |
US20200364273A1 (en) | Apparatus for guaranteeing integrity of state database in blockchain-based environment and method thereof | |
CN113014650B (zh) | 针对数据请求的处理方法、装置、计算设备和介质 | |
CN117376364A (zh) | 一种数据处理方法及相关设备 | |
US20210390198A1 (en) | Method and system for protecting file using class distribution and sequential memory loading | |
US20210099492A1 (en) | System and method for regulated message routing and global policy enforcement | |
CN109189442B (zh) | 更新方法、系统和电子设备 | |
US9697576B2 (en) | Mitigating unauthorized content claims | |
CN110659264B (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 |