CN112084201A - 分布式账本处理方法和装置、存储介质和电子设备 - Google Patents
分布式账本处理方法和装置、存储介质和电子设备 Download PDFInfo
- Publication number
- CN112084201A CN112084201A CN202010880016.1A CN202010880016A CN112084201A CN 112084201 A CN112084201 A CN 112084201A CN 202010880016 A CN202010880016 A CN 202010880016A CN 112084201 A CN112084201 A CN 112084201A
- Authority
- CN
- China
- Prior art keywords
- ledger
- account book
- target
- node
- data
- 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
- 238000003672 processing method Methods 0.000 title claims abstract description 21
- 238000012795 verification Methods 0.000 claims abstract description 51
- 238000000034 method Methods 0.000 claims abstract description 47
- 238000004364 calculation method Methods 0.000 claims abstract description 9
- 238000012545 processing Methods 0.000 claims description 131
- 238000004590 computer program Methods 0.000 claims description 18
- 230000004044 response Effects 0.000 claims description 4
- 238000013500 data storage Methods 0.000 abstract description 7
- 230000008569 process Effects 0.000 description 13
- 238000010586 diagram Methods 0.000 description 9
- 230000000694 effects Effects 0.000 description 8
- 238000007726 management method Methods 0.000 description 6
- 238000012986 modification Methods 0.000 description 4
- 230000004048 modification Effects 0.000 description 4
- 230000002411 adverse Effects 0.000 description 3
- 238000004891 communication Methods 0.000 description 3
- 238000012217 deletion Methods 0.000 description 3
- 230000037430 deletion Effects 0.000 description 3
- 238000005516 engineering process Methods 0.000 description 3
- 230000002159 abnormal effect Effects 0.000 description 2
- 238000012423 maintenance Methods 0.000 description 2
- 230000005540 biological transmission Effects 0.000 description 1
- 238000004422 calculation algorithm Methods 0.000 description 1
- 238000011161 development Methods 0.000 description 1
- 230000000977 initiatory effect Effects 0.000 description 1
- 230000007246 mechanism Effects 0.000 description 1
- 230000000717 retained effect Effects 0.000 description 1
- 238000012546 transfer Methods 0.000 description 1
- 239000002699 waste material Substances 0.000 description 1
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/20—Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
- G06F16/23—Updating
- G06F16/2365—Ensuring data consistency and integrity
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/20—Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
- G06F16/22—Indexing; Data structures therefor; Storage structures
- G06F16/2228—Indexing structures
- G06F16/2255—Hash tables
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/20—Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
- G06F16/27—Replication, distribution or synchronisation of data between databases or within a distributed database system; Distributed database system architectures therefor
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06Q—INFORMATION AND COMMUNICATION TECHNOLOGY [ICT] SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES; SYSTEMS OR METHODS SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES, NOT OTHERWISE PROVIDED FOR
- G06Q20/00—Payment architectures, schemes or protocols
- G06Q20/38—Payment protocols; Details thereof
- G06Q20/389—Keeping log of transactions for guaranteeing non-repudiation of a transaction
Abstract
本公开涉及一种分布式账本处理方法和装置、存储介质和电子设备,所述方法包括:遍历本账本节点中目标账本对应的目标账本数据,其中,所述目标账本数据包括账本中间数据和账本结果数据;计算所述目标账本数据的账本结果数据的第一哈希值;广播所述第一哈希值,并接收区块链网络中其他的账本节点发送的第二哈希值,其中,所述第二哈希值是所述其他的账本节点根据该账本节点中的所述目标账本对应的账本结果数据计算得到的;基于所述第一哈希值和所述第二哈希值对所述目标结果数据进行一致性验证;在一致性验证通过的情况下,删除本账本节点中所述目标账本对应的账本中间数据。本公开可以节省数据存储空间,提升节点的读写效率。
Description
技术领域
本公开涉及区块链领域,具体地,涉及一种分布式账本处理方法和装置、存储介质和电子设备。
背景技术
分布式账本是随着区块链技术发展而得以实现的技术,涵盖了分布式数据存储、点对点传输、共识机制、加密算法等计算机技术。在分布式记账系统中,用户提交交易达成共识后会记录到分布式账本的各个参与节点上,账本以链式结构存储并不断增长,参与该账本交易的所有记账节点会各自保存一份完整的账本数据。
然而,随着交易的不断进行,账本数据会越来越大,每个记账节点都会占用大量的存储空间,在很多场景下,交易的持续进行使得历史账本的数据越来越多,而历史账本过大,会占用大量的存储资源,为节点的使用造成负担。
发明内容
本公开的目的是提供一种分布式账本处理方法和装置、存储介质和电子设备,以解决上述的问题。
为了实现上述目的,本公开的第一方面,提供一种分布式账本处理方法,应用于区块链网络中的账本节点,所述方法包括:遍历本账本节点中目标账本对应的目标账本数据,其中,所述目标账本数据包括账本中间数据和账本结果数据;计算所述目标账本数据的账本结果数据的第一哈希值;广播所述第一哈希值,并接收所述区块链网络中其他的账本节点发送的第二哈希值,其中,所述第二哈希值是所述其他的账本节点根据该账本节点中的所述目标账本对应的账本结果数据计算得到的;基于所述第一哈希值和所述第二哈希值对所述目标结果数据进行一致性验证;在一致性验证通过的情况下,删除本账本节点中所述目标账本对应的账本中间数据。
可选地,在获取到所述区块链网络中的多个账本节点发送的第二哈希值的情况下,所述基于所述第一哈希值和所述第二哈希值对所述账本结果数据进行一致性验证,包括:确定与所述第一哈希值相同的第二哈希值的数量占所有第二哈希值总量的比例值;当所述比例值超过比例值阈值时,确定所述一致性验证通过;当所述比例值未超过所述比例值阈值时,确定所述一致性验证不通过。
可选地,所述方法还包括:在一致性验证不通过的情况下,基于本账本节点中所述目标账本数据的账本结果数据生成第一默克尔树结果;获取目标账本节点发送的第二默克尔树结果;将所述第一默克尔树结果与所述第二默克尔树结果进行对比,确定不一致数据项;获取所述目标账本节点中的所述目标账本对应的账本结果数据,并基于该账本结果数据更新所述不一致数据项;删除本账本节点中所述目标账本对应的账本中间数据。
可选地,所述删除本账本节点中所述目标账本对应的账本中间数据,包括:清空本账本节点中所述目标账本对应的存储区域;将所述目标账本对应的账本结果数据写入本节点中所述目标账本对应的存储区域。
可选地,在所述删除本账本节点中所述目标账本对应的账本中间数据之前,所述方法还包括:将所述本账本节点中所述目标账本对应的账本中间数据备份到物理硬盘中。
本公开的第二方面,提供一种分布式账本处理方法,所述方法应用于区块链网络中的分布式记账系统,所述分布式记账系统包括多个账本节点,所述方法包括:响应于任意账本节点发起的针对目标账本的账本处理请求,确定用于记录所述目标账本的多个目标账本节点;向多个所述目标账本节点转发所述账本处理请求,并获取多个所述目标账本节点的执行签名,其中,所述执行签名包括用于表征支持账本处理的正执行签名,和用于表征反对账本处理的负执行签名;基于多个所述执行签名,确定是否进行账本处理;在确定进行账本处理的情况下,通知所述目标账本节点进行账本处理,其中,所述目标账本节点用于执行本公开第一方面中任一项所述的方法的步骤。
可选地,所述方法还包括:确定与所述目标账本节点关联的关联账本节点,其中,所述关联账本节点用于记录关联账本,所述关联账本为所述目标账本节点中记录的与所述目标账本不同的账本;在确定进行账本处理的情况下,通知所述目标账本节点和所述关联账本节点停止账本业务。
可选地,所述方法还包括:向多个所述关联账本节点转发所述账本处理请求,并获取多个所述关联账本节点的执行签名;获取各个目标账本节点和各个关联账本节点针对所述目标账本的处理权重值;所述基于多个所述执行签名,确定是否进行账本处理,包括:基于各账本节点的执行签名类型和该账本节点的处理权重值,计算各账本节点的处理参数,并将各处理参数的和作为总处理参数,将各处理权重值的和作为总处理权重值;判断所述总处理参数与总处理权重值是否满足参数条件,在满足参数条件的情况下,确定进行账本处理。
本公开的第三方面,提供一种分布式账本处理装置,所述装置应用于区块链网络中的账本节点,所述装置包括:查找模块,用于遍历本账本节点中目标账本对应的目标账本数据,其中,所述目标账本数据包括账本中间数据和账本结果数据;计算模块,用于计算所述目标账本数据的账本结果数据的第一哈希值;广播模块,用于广播所述第一哈希值,并接收所述区块链网络中其他的账本节点发送的第二哈希值,其中,所述第二哈希值是所述其他的账本节点根据该账本节点中的所述目标账本对应的账本结果数据计算得到的;验证模块,用于基于所述第一哈希值和所述第二哈希值对所述目标结果数据进行一致性验证;删除模块,用于在一致性验证通过的情况下,删除本账本节点中所述目标账本对应的账本中间数据。
可选地,所述验证模块,用于在获取到所述区块链网络中的多个账本节点发送的第二哈希值的情况下,确定与所述第一哈希值相同的第二哈希值的数量占所有第二哈希值总量的比例值;当所述比例值超过比例值阈值时,确定所述一致性验证通过;当所述比例值未超过所述比例值阈值时,确定所述一致性验证不通过。
可选地,所述装置还包括修正模块,用于在一致性验证不通过的情况下,基于本账本节点中所述目标账本数据的账本结果数据生成第一默克尔树结果;获取目标账本节点发送的第二默克尔树结果;将所述第一默克尔树结果与所述第二默克尔树结果进行对比,确定不一致数据项;获取所述目标账本节点中的所述目标账本对应的账本结果数据,并基于该账本结果数据更新所述不一致数据项;删除本账本节点中所述目标账本对应的账本中间数据。
可选地,所述删除模块,用于清空本账本节点中所述目标账本对应的存储区域;将所述目标账本对应的账本结果数据写入本节点中所述目标账本对应的存储区域。
可选地,所述装置还包括备份模块,用于将所述目标账本对应的账本结果数据写入本节点中所述目标账本对应的存储区域。
本公开的第四方面,提供一种分布式账本处理装置,所述装置应用于区块链网络中的分布式记账系统,所述分布式记账系统包括多个账本节点,所述装置包括:确定模块,用于响应于任意账本节点发起的针对目标账本的账本处理请求,确定用于记录所述目标账本的多个目标账本节点;获取模块,用于向多个所述目标账本节点转发所述账本处理请求,并获取多个所述目标账本节点的执行签名,其中,所述执行签名包括用于表征支持账本处理的正执行签名,和用于表征反对账本处理的负执行签名;判断模块,用于基于多个所述执行签名,确定是否进行账本处理;通知模块,用于在确定进行账本处理的情况下,通知所述目标账本节点进行账本处理,其中,所述目标账本节点用于执行本公开第一方面中任一项所述的方法的步骤。
可选地,所述装置还包括,维护模块,用于确定与所述目标账本节点关联的关联账本节点,其中,所述关联账本节点用于记录关联账本,所述关联账本为所述目标账本节点中记录的与所述目标账本不同的账本;在确定进行账本处理的情况下,通知所述目标账本节点和所述关联账本节点停止账本业务。
可选地,所述装置还包括投票模块,用于向多个所述关联账本节点转发所述账本处理请求,并获取多个所述关联账本节点的执行签名;获取各个目标账本节点和各个关联账本节点针对所述目标账本的处理权重值;所述判断模块,用于基于各账本节点的执行签名类型和该账本节点的处理权重值,计算各账本节点的处理参数,并将各处理参数的和作为总处理参数,将各处理权重值的和作为总处理权重值;判断所述总处理参数与总处理权重值是否满足参数条件,在满足参数条件的情况下,确定进行账本处理。
本公开的第五方面,提供一种计算机可读存储介质,其上存储有计算机程序,该程序被处理器执行时实现本公开第一方面中任一项所述方法的步骤。
本公开的第六方面,提供一种提供一种计算机可读存储介质,其上存储有计算机程序,该程序被处理器执行时实现本公开第二方面中任一项所述方法的步骤。
本公开的第七方面,提供一种电子设备,包括存储器和处理器,其中,存储器上存储有计算机程序,处理器用于执行所述存储器中的所述计算机程序,以实现本公开第一方面中任一项所述方法的步骤。
本公开的第八方面,提供一种电子设备,包括存储器和处理器,其中,存储器上存储有计算机程序,处理器用于执行所述存储器中的所述计算机程序,以实现本公开第二方面中任一项所述方法的步骤。
通过上述的技术方案,至少可以达到以下的技术效果:
通过将其他记录了目标账本的账本节点中记录的账本结果数据与自身的账本结果数据进行对比验证,在通过验证的情况下将账本中间数据从账本节点中删除,从而可以在保证数据可靠性的基础上减少账本节点上存储的数据量,节省数据存储空间,提升节点的读写效率。
本公开的其他特征和优点将在随后的具体实施方式部分予以详细说明。
附图说明
附图是用来提供对本公开的进一步理解,并且构成说明书的一部分,与下面的具体实施方式一起用于解释本公开,但并不构成对本公开的限制。在附图中:
图1是根据一示例性公开实施例示出的一种分布式账本处理方法的流程图。
图2是根据一示例性公开实施例示出的一种分布式账本处理方法的流程图。
图3是根据一示例性公开实施例示出的一种分布式账本处理方法的流程示意图。
图4是根据一示例性公开实施例示出的一种分布式账本处理装置的框图。
图5是根据一示例性公开实施例示出的一种分布式账本处理装置的框图。
图6是根据一示例性公开实施例示出的一种电子设备的框图。
具体实施方式
以下结合附图对本公开的具体实施方式进行详细说明。应当理解的是,此处所描述的具体实施方式仅用于说明和解释本公开,并不用于限制本公开。
首先,对本公开的场景进行说明。本公开应用于区块链网络中的账本节点,每个账本节点会记录与自身相关的业务的账本数据,每个业务的账本数据会作为一个账本,存储在与该业务对应的存储区域中。在实际场景下,由于每个节点承载的业务通常多于一个,所以每个节点中会存在多于一个账本,且由于一个业务通常涉及多个节点,所以同一个账本也会被多个节点所记录。本公开中的目标账本账本数据是与目标账本对应的账本数据,针对每个记录了目标账本的账本节点,都存在该账本节点自身存储的目标账本数据。
图1是根据一示例性公开实施例示出的一种分布式账本处理方法的流程图,所述方法应用于区块链网络中的账本节点,如图1所示,所述方法包括以下步骤:
S11、遍历本账本节点中目标账本对应的目标账本数据,其中,所述目标账本数据包括账本中间数据和账本结果数据。
其中,目标账本可以是基于账本系统发送的账本处理通知所确定的,也可以是由本账本节点自身指定的,在由本账本节点自身指定对目标账本进行处理的情况下,可以将处理请求发送给其他记录了目标账本的账本节点,以使其他账本节点基于该处理请求发送后续处理需要的数据。
账本中间结果包括该目标账本中记录的业务的中间值,账本结果数据包括该目标账本中记录的业务的结果值,例如,当该目标账本记录的业务为用户的存款业务时,则该账本中间值可以记录为用户存入、转出业务的交易金额以及交易结果、交易方信息等数据,该账本结果值可以记录为用户当前余额以及最后一笔交易的交易信息等。值得说明的是,上述的账本中间数据和账本结果数据仅是为了举例使本领域技术人员更容易理解,不应作为对本公开中的账本数据的内容的限定。
S12、计算所述目标账本数据的账本结果数据的第一哈希值。
其中,可以对账本结果数据的总和求哈希值并作为第一哈希值,也可以分别对各项账本结果数据求哈希值,并对各项账本结果数据对应的哈希值再求哈希值,并作为第一哈希值。
例如,在账本数据结果的集合为{d0,d1,...,di,...dn}的情况下,集合中的每一项为一项账本结果数据,第一哈希值Hd的计算方式如下:Hd=hash(hash(d0)+hash(d1)+…+hash(dn))。
S13、广播所述第一哈希值,并接收所述区块链网络中其他的账本节点发送的第二哈希值。
其中,所述第二哈希值是所述其他的账本节点根据该账本节点中的所述目标账本对应的账本结果数据计算得到的。
在广播该第一哈希值之前,对该第一哈希值结果进行签名,并且,由于所有记录有目标账本的账本节点均会进行上述第一哈希值的计算、签名和广播的步骤,因此,本账本节点会接收到其他账本节点发送的第一哈希值以及对该第一哈希值进行的签名。
S14、基于所述第一哈希值和所述第二哈希值对所述账本结果数据进行一致性验证。
在进行一致性验证前,可以对各个第一哈希值的签名进行验证,以确定该第一哈希值来源的正当性。
通过对比第一哈希值和第二哈希值,可以确定本账本节点中记录的账本结果数据与其他账本节点中记录的账本结果数据是否一致。
在一种可能的实施方式中,在获取到所述区块链网络中的多个账本节点发送的第二哈希值的情况下,可以确定与所述第一哈希值相同的第二哈希值的数量占所有第二哈希值总量的比例值,当所述比例值超过比例值阈值时,确定所述一致性验证通过;当所述比例值未超过所述比例值阈值时,确定所述一致性验证不通过。
在区块链网络的应用场景下,该比例阈值通常被设置为51%,即超过51%的第一哈希值相同时,则该第一哈希值对应的账本结果数据通过一致性验证,其他不同的第一哈希值对应的账本结果数据不通过一致性验证。但是,本领域技术人员应当知悉,该比例阈值可以根据应用场景进行适应性的修改,例如,修改为50%、60%、45%等值,以提高或降低一致性验证的通过难度。
S15、在一致性验证通过的情况下,删除本账本节点中所述目标账本对应的账本中间数据。
在一致性验证通过的情况下,即可认为本节点中记录的账本结果数据是正确且可利用的,由于在后续业务中不会对账本中间数据进行利用,而是在账本结果数据的基础上进行记录,因此,可以删除账本中间数据,以减少本节点中用于记录账本中间数据所需的空间。
在一种可能的实施方式中,还可以将账本中间数据备份至本账本节点中的冷数据区域之后,删除热数据区域内的账本中间数据,将账本结果数据保留在本账本节点的热数据区域,其中,热数据区域是账本节点中读写速度较高的区域,存储在热数据区域中的数据在读取时的响应速度高,在存储时的存储效率也更高,而冷存储区域是账本节点中读写速度较低的区域,存储介质的成本较热数据区域更低,这样,可以将较少使用或不使用的账本中间数据存入读写速度较低的冷数据区域,将需要及时读取的账本结果数据存入读写速度较高的热数据区域,使本账本节点中的读写速度高的数据区域得到充分利用,减少账本中间数据对计算资源的浪费。
考虑到账本数据的记录过程可能产生既不属于账本数据的不必要文件,这些文件仍然可能占用数据存储空间,在一种可能的实施方式中,可以清空本账本节点中目标账本对应的存储区域,并将目标账本对应的账本结果数据写入该存储区域。该用于写入被清空的存储区域的账本结果数据可以是作为临时文件保存在本账本节点中其他存储区域中的,也可以是从其他账本节点获取到的已通过一致性验证的账本结果数据。
在一种可能的实施方式中,在删除本账本节点中目标账本对应的账本中间数据之前,还可以将本账本节点中目标账本对应的账本中间数据备份到物理硬盘中,以便后续归档或查找。
在验证不通过的情况下,可以对该未通过一致性验证的账本结果数据进行校准,并在校准后进行数据删除等操作;还可以结束本次账本数据删除的操作,并且可以通知其他节点结束账本数据删除的操作;还可以确定未通过一致性验证的账本节点,并发送警报信息等,以提醒用户该目标账本的数据异常,以便用户对异常数据进行处理。
在一种可能的实施方式中,可以在一致性验证不通过的情况下,基于本账本节点中所述目标账本数据的账本结果数据生成第一默克尔树结果,并获取目标账本节点发送的第二默克尔树结果,将所述第一默克尔树结果与所述第二默克尔树结果进行对比,确定不一致数据项,并获取所述目标账本节点中的所述目标账本对应的账本结果数据,并基于该账本结果数据更新所述不一致数据项。在完成了上述对不一致数据项的校准之后,再进行删除本账本节点中目标账本对应的账本中间数据的操作。
其中,该第一默克尔树方式为:将账本结果数据的数据项一一计算哈希值结果,并将计算出的哈希值结果两两进行哈希值计算,得到下一级的哈希值结果,并将下一级的哈希值结果两两进行哈希值计算,直至得到最终的一个哈希值结果,这样,可以寻找不同层级中的不同的哈希值结果,可以快速定位不一致数据项。
通过上述的技术方案,至少可以达到以下的技术效果:
通过将其他记录了目标账本的账本节点中记录的账本结果数据与自身的账本结果数据进行对比验证,在通过验证的情况下将账本中间数据从账本节点中删除,从而可以在保证数据可靠性的基础上减少账本节点上存储的数据量,节省数据存储空间,提升节点的读写效率。
图2是根据一示例性公开实施例示出的一种分布式账本处理方法的流程示意图,该方法应用于区块链网络中的分布式记账系统,该分布式记账系统包括多个账本节点。本方法可以应用于分布式记账系统中的管理节点,也可以应用于指定的任意节点,或者应用于分布式账务系统的管理服务器,本公开对此不做限制。如图2所示,本方法包括以下步骤:
S21、响应于任意账本节点发起的针对目标账本的账本处理请求,确定用于记录所述目标账本的多个目标账本节点。
其中,该账本处理请求中可以包括该账本节点的签名信息以及目标账本的账本标识,其中,该签名信息用于验证发起账本处理请求的账本节点的正当性,账本标识用于区分需要进行处理的账本。
在一种可能的实施方式中,还可以对发起账本处理请求的账本节点的身份进行验证,在身份验证通过的情况下执行后续的步骤。可以通过身份验证的身份可以是记录了目标账本的账本节点、与记录了目标账本的账本节点有业务往来关系的关联节点、管理者节点等预设的身份,本公开对此不做限制。
S22、向多个所述目标账本节点转发所述账本处理请求,并获取多个所述目标账本节点的执行签名,其中,所述执行签名包括用于表征支持账本处理的正执行签名,和用于表征反对账本处理的负执行签名。
S23、基于多个所述执行签名,确定是否进行账本处理。
其中,可以基于正执行签名与负执行签名的比值,来确定是否进行账本处理,还可以基于预设的数量要求来确定是否进行账本处理,例如,在预设有一个账本节点不同意进行账本处理时则不进行账本处理的情况下,该预设数量要求为负执行签名等于0,若统计得到负执行签名,则不进行账本处理。
在一种可能的实施方式中,还可以向多个关联账本节点转发账本处理请求,并获取多个关联账本节点的执行签名,获取各个目标账本节点和各个关联账本节点针对所述目标账本的处理权重值,基于各账本节点的执行签名类型和该账本节点的处理权重值,计算各账本节点的处理参数,并将各处理参数的和作为总处理参数,将各处理权重值的和作为总处理权重值;判断所述总处理参数与总处理权重值是否满足参数条件,在满足参数条件的情况下,确定进行账本处理。
其中,关联账本节点用于记录关联账本,所述关联账本为所述目标账本节点中记录的与所述目标账本不同的账本。例如,账本节点1用于记录账本A和账本B,账本节点2用于记录账本B和账本C,账本节点3用于记录账本C和账本D,则当目标账本为账本A时,记录了账本A的账本节点1为目标节点,未记录账本A但记录了账本B的账本节点2为关联节点,既不记录账本A也不记录账本B的账本节点3则既不是目标节点,也不是关联节点。
将Fi记为执行签名的类型,用于表征各节点的执行意愿,当收到正执行签名时Fi记为1,当收到负执行签名时Fi记为-1,在未收到执行签名(即节点未应答)的情况下Fi记为0,任意节点Pi的处理权重值为Wi,则总处理参数为∑FiWi,总处理权重值为∑Wi,可以确定总处理参数与总处理权重值的比值则当G大于预设阈值的情况下,可以认为总处理参数与总处理权重值满足参数条件。
在区块链网络的应用场景下,该预设阈值通常被设置为51%。但是,本领域技术人员应当知悉,该比例阈值可以根据应用场景进行适应性的修改,例如,修改为50%、60%、45%等值,以提高或降低处理意愿投票的通过难度。
S24、在确定进行账本处理的情况下,通知所述目标账本节点进行账本处理。
其中,所述目标账本节点用于执行步骤S11至S15,以实现对账本的处理。
在一种可能的实施方式中,可以确定与所述目标账本节点关联的关联账本节点,在确定进行账本处理的情况下,通知所述目标账本节点和所述关联账本节点停止账本业务,以减少进行账本处理对各账本节点的业务进行的影响。
基于上述的技术方案,至少可以实现以下技术效果:
可以基于任意账本节点发起的账本处理请求,对是否进行账本处理的操作进行投票统计,在投票统计通过的情况下通知记录了目标账本的账本节点对目标账本的账本数据进行处理,从而减少单个节点不经其他节点的许可而自行删除数据对分布式账本系统带来不良影响的可能性,提高分布式账本系统的数据安全性。
图3是根据一示例性公开实施例示出的一种分布式账本处理方法的流程示意图,如图所示,该方法包括以下步骤:
S31、分布式记账系统响应于任意账本节点发起的针对目标账本的账本处理请求,确定用于记录所述目标账本的多个目标账本节点。
S32、分布式记账系统向多个所述目标账本节点转发所述账本处理请求,并获取多个所述目标账本节点的执行签名,其中,所述执行签名包括用于表征支持账本处理的正执行签名,和用于表征反对账本处理的负执行签名。
S33、分布式记账系统基于多个所述执行签名,确定是否进行账本处理。
S34、分布式记账系统在确定进行账本处理的情况下,通知所述目标账本节点进行账本处理。
S35、各个目标账本节点遍历本账本节点中目标账本对应的目标账本数据,其中,所述目标账本数据包括账本中间数据和账本结果数据。
S36、各个目标账本节点计算所述目标账本数据的账本结果数据的第一哈希值。
S37、各个目标账本节点广播所述第一哈希值,并接收所述区块链网络中其他的目标账本节点发送的第二哈希值。
S38、各个目标账本节点基于所述第一哈希值和所述第二哈希值对所述账本结果数据进行一致性验证。
S39、各个目标账本节点在一致性验证通过的情况下,删除本账本节点中所述目标账本对应的账本中间数据。
关于上述实施例,其中各个步骤执行的具体方式已经在前述的实施例中进行了详细描述,此处将不做详细阐述说明。
值得说明的是,上述的“分布式记账系统”可以是指系统中用于管理各节点的管理节点,或者用于进行上述操作的指定节点。
基于上述的技术方案,至少可以实现以下技术效果:
分布式账务系统可以基于任意账本节点发起的账本处理请求,对是否进行账本处理的操作进行投票统计,在投票统计通过的情况下通知记录了目标账本的账本节点对目标账本的账本数据进行处理,从而减少单个节点不经其他节点的许可而自行删除数据对分布式账本系统带来不良影响的可能性,提高分布式账本系统的数据安全性,并且,各个目标账本节点通过将其他记录了目标账本的账本节点中记录的账本结果数据与自身的账本结果数据进行对比验证,在通过验证的情况下将账本中间数据从账本节点中删除,从而可以在保证数据可靠性的基础上减少账本节点上存储的数据量,节省数据存储空间,提升节点的读写效率。
图4是根据一示例性公开实施例示出的一种分布式账本处理装置的框图。所述装置应用于区块链网络中的账本节点,如图4所示,所述装置400包括:
查找模块410,用于遍历本账本节点中目标账本对应的目标账本数据,其中,所述目标账本数据包括账本中间数据和账本结果数据.
计算模块420,用于计算所述目标账本数据的账本结果数据的第一哈希值。
广播模块430,用于广播所述第一哈希值,并接收所述区块链网络中其他的账本节点发送的第二哈希值,其中,所述第二哈希值是所述其他的账本节点根据该账本节点中的所述目标账本对应的账本结果数据计算得到的。
验证模块440,用于基于所述第一哈希值和所述第二哈希值对所述目标结果数据进行一致性验证。
删除模块450,用于在一致性验证通过的情况下,删除本账本节点中所述目标账本对应的账本中间数据。
可选地,所述验证模块440,用于在获取到所述区块链网络中的多个账本节点发送的第二哈希值的情况下,确定与所述第一哈希值相同的第二哈希值的数量占所有第二哈希值总量的比例值;当所述比例值超过比例值阈值时,确定所述一致性验证通过;当所述比例值未超过所述比例值阈值时,确定所述一致性验证不通过。
可选地,所述装置还包括修正模块,用于在一致性验证不通过的情况下,基于本账本节点中所述目标账本数据的账本结果数据生成第一默克尔树结果;获取目标账本节点发送的第二默克尔树结果;将所述第一默克尔树结果与所述第二默克尔树结果进行对比,确定不一致数据项;获取所述目标账本节点中的所述目标账本对应的账本结果数据,并基于该账本结果数据更新所述不一致数据项;删除本账本节点中所述目标账本对应的账本中间数据。
可选地,所述删除模块450,用于清空本账本节点中所述目标账本对应的存储区域;将所述目标账本对应的账本结果数据写入本节点中所述目标账本对应的存储区域。
可选地,所述装置还包括备份模块,用于将所述目标账本对应的账本结果数据写入本节点中所述目标账本对应的存储区域。
关于上述实施例中的装置,其中各个模块执行操作的具体方式已经在有关该方法的实施例中进行了详细描述,此处将不做详细阐述说明。
通过将其他记录了目标账本的账本节点中记录的账本结果数据与自身的账本结果数据进行对比验证,在通过验证的情况下将账本中间数据从账本节点中删除,从而可以在保证数据可靠性的基础上减少账本节点上存储的数据量,节省数据存储空间,提升节点的读写效率。
图5是根据一示例性公开实施例示出的一种分布式账本处理装置的框图。所述装置应用于区块链网络中的分布式记账系统,所述分布式记账系统包括多个账本节点,如图5所示,所述装置500包括:
确定模块510,用于响应于任意账本节点发起的针对目标账本的账本处理请求,确定用于记录所述目标账本的多个目标账本节点。
获取模块520,用于向多个所述目标账本节点转发所述账本处理请求,并获取多个所述目标账本节点的执行签名,其中,所述执行签名包括用于表征支持账本处理的正执行签名,和用于表征反对账本处理的负执行签名。
判断模块530,用于基于多个所述执行签名,确定是否进行账本处理。
通知模块540,用于在确定进行账本处理的情况下,通知所述目标账本节点进行账本处理,其中,所述目标账本节点用于执行S11至S15所述的方法的步骤。
可选地,所述装置还包括,维护模块,用于确定与所述目标账本节点关联的关联账本节点,其中,所述关联账本节点用于记录关联账本,所述关联账本为所述目标账本节点中记录的与所述目标账本不同的账本;在确定进行账本处理的情况下,通知所述目标账本节点和所述关联账本节点停止账本业务。
可选地,所述装置还包括投票模块,用于向多个所述关联账本节点转发所述账本处理请求,并获取多个所述关联账本节点的执行签名;获取各个目标账本节点和各个关联账本节点针对所述目标账本的处理权重值;所述判断模块,用于基于各账本节点的执行签名类型和该账本节点的处理权重值,计算各账本节点的处理参数,并将各处理参数的和作为总处理参数,将各处理权重值的和作为总处理权重值;判断所述总处理参数与总处理权重值是否满足参数条件,在满足参数条件的情况下,确定进行账本处理。
关于上述实施例中的装置,其中各个模块执行操作的具体方式已经在有关该方法的实施例中进行了详细描述,此处将不做详细阐述说明。
基于上述的技术方案,至少可以实现以下技术效果:
可以基于任意账本节点发起的账本处理请求,对是否进行账本处理的操作进行投票统计,在投票统计通过的情况下通知记录了目标账本的账本节点对目标账本的账本数据进行处理,从而减少单个节点不经其他节点的许可而自行删除数据对分布式账本系统带来不良影响的可能性,提高分布式账本系统的数据安全性。
图6是根据一示例性实施例示出的一种电子设备600的框图。例如,电子设备600可以被提供为区块链网络中的任意账本节点,或者作为分布式账务系统中的管理节点或管理服务器。参照图6,电子设备600包括处理器622,其数量可以为一个或多个,以及存储器632,用于存储可由处理器622执行的计算机程序。存储器632中存储的计算机程序可以包括一个或一个以上的每一个对应于一组指令的模块。此外,处理器622可以被配置为执行该计算机程序,以执行上述的分布式账本处理方法。
另外,电子设备600还可以包括电源组件626和通信组件650,该电源组件626可以被配置为执行电子设备600的电源管理,该通信组件650可以被配置为实现电子设备600的通信,例如,有线或无线通信。此外,该电子设备600还可以包括输入/输出(I/O)接口658。电子设备600可以操作基于存储在存储器632的操作系统,例如Windows ServerTM,Mac OSXTM,UnixTM,LinuxTM等等。
在另一示例性实施例中,还提供了一种包括程序指令的计算机可读存储介质,该程序指令被处理器执行时实现上述的分布式账本处理方法的步骤。例如,该计算机可读存储介质可以为上述包括程序指令的存储器632,上述程序指令可由电子设备600的处理器622执行以完成上述的分布式账本处理方法。
在另一示例性实施例中,还提供一种计算机程序产品,该计算机程序产品包含能够由可编程的装置执行的计算机程序,该计算机程序具有当由该可编程的装置执行时用于执行上述的分布式账本处理方法的代码部分。
以上结合附图详细描述了本公开的优选实施方式,但是,本公开并不限于上述实施方式中的具体细节,在本公开的技术构思范围内,可以对本公开的技术方案进行多种简单变型,这些简单变型均属于本公开的保护范围。
另外需要说明的是,在上述具体实施方式中所描述的各个具体技术特征,在不矛盾的情况下,可以通过任何合适的方式进行组合,为了避免不必要的重复,本公开对各种可能的组合方式不再另行说明。
此外,本公开的各种不同的实施方式之间也可以进行任意组合,只要其不违背本公开的思想,其同样应当视为本公开所公开的内容。
Claims (10)
1.一种分布式账本处理方法,其特征在于,应用于区块链网络中的账本节点,所述方法包括:
遍历本账本节点中目标账本对应的目标账本数据,其中,所述目标账本数据包括账本中间数据和账本结果数据;
计算所述目标账本数据的账本结果数据的第一哈希值;
广播所述第一哈希值,并接收所述区块链网络中其他的账本节点发送的第二哈希值,其中,所述第二哈希值是所述其他的账本节点根据该账本节点中的所述目标账本对应的账本结果数据计算得到的;
基于所述第一哈希值和所述第二哈希值对所述目标结果数据进行一致性验证;
在一致性验证通过的情况下,删除本账本节点中所述目标账本对应的账本中间数据。
2.根据权利要求1所述的方法,其特征在于,在获取到所述区块链网络中的多个账本节点发送的第二哈希值的情况下,所述基于所述第一哈希值和所述第二哈希值对所述账本结果数据进行一致性验证,包括:
确定与所述第一哈希值相同的第二哈希值的数量占所有第二哈希值总量的比例值;
当所述比例值超过比例值阈值时,确定所述一致性验证通过;
当所述比例值未超过所述比例值阈值时,确定所述一致性验证不通过。
3.根据权利要求2所述的方法,其特征在于,所述方法还包括:
在一致性验证不通过的情况下,基于本账本节点中所述目标账本数据的账本结果数据生成第一默克尔树结果;
获取目标账本节点发送的第二默克尔树结果;
将所述第一默克尔树结果与所述第二默克尔树结果进行对比,确定不一致数据项;
获取所述目标账本节点中的所述目标账本对应的账本结果数据,并基于该账本结果数据更新所述不一致数据项;
删除本账本节点中所述目标账本对应的账本中间数据。
4.一种分布式账本处理方法,其特征在于,所述方法应用于区块链网络中的分布式记账系统,所述分布式记账系统包括多个账本节点,所述方法包括:
响应于任意账本节点发起的针对目标账本的账本处理请求,确定用于记录所述目标账本的多个目标账本节点;
向多个所述目标账本节点转发所述账本处理请求,并获取多个所述目标账本节点的执行签名,其中,所述执行签名包括用于表征支持账本处理的正执行签名,和用于表征反对账本处理的负执行签名;
基于多个所述执行签名,确定是否进行账本处理;
在确定进行账本处理的情况下,通知所述目标账本节点进行账本处理,其中,所述目标账本节点用于执行权利要求1-3中任一项所述的方法的步骤。
5.一种分布式账本处理装置,其特征在于,所述装置应用于区块链网络中的账本节点,所述装置包括:
查找模块,用于遍历本账本节点中目标账本对应的目标账本数据,其中,所述目标账本数据包括账本中间数据和账本结果数据;
计算模块,用于计算所述目标账本数据的账本结果数据的第一哈希值;
广播模块,用于广播所述第一哈希值,并接收所述区块链网络中其他的账本节点发送的第二哈希值,其中,所述第二哈希值是所述其他的账本节点根据该账本节点中的所述目标账本对应的账本结果数据计算得到的;
验证模块,用于基于所述第一哈希值和所述第二哈希值对所述目标结果数据进行一致性验证;
删除模块,用于在一致性验证通过的情况下,删除本账本节点中所述目标账本对应的账本中间数据。
6.一种分布式账本处理装置,其特征在于,所述装置应用于区块链网络中的分布式记账系统,所述分布式记账系统包括多个账本节点,所述装置包括:
确定模块,用于响应于任意账本节点发起的针对目标账本的账本处理请求,确定用于记录所述目标账本的多个目标账本节点;
获取模块,用于向多个所述目标账本节点转发所述账本处理请求,并获取多个所述目标账本节点的执行签名,其中,所述执行签名包括用于表征支持账本处理的正执行签名,和用于表征反对账本处理的负执行签名;
判断模块,用于基于多个所述执行签名,确定是否进行账本处理;
通知模块,用于在确定进行账本处理的情况下,通知所述目标账本节点进行账本处理,其中,所述目标账本节点用于执行权利要求1-3中任一项所述的方法的步骤。
7.一种计算机可读存储介质,其上存储有计算机程序,其特征在于,该程序被处理器执行时实现权利要求1-3中任一项所述方法的步骤。
8.一种计算机可读存储介质,其上存储有计算机程序,其特征在于,该程序被处理器执行时实现权利要求4所述方法的步骤。
9.一种电子设备,其特征在于,包括:
存储器,其上存储有计算机程序;
处理器,用于执行所述存储器中的所述计算机程序,以实现权利要求1-3中任一项所述方法的步骤。
10.一种电子设备,其特征在于,包括:
存储器,其上存储有计算机程序;
处理器,用于执行所述存储器中的所述计算机程序,以实现权利要求4所述方法的步骤。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202010880016.1A CN112084201B (zh) | 2020-08-27 | 2020-08-27 | 分布式账本处理方法和装置、存储介质和电子设备 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202010880016.1A CN112084201B (zh) | 2020-08-27 | 2020-08-27 | 分布式账本处理方法和装置、存储介质和电子设备 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN112084201A true CN112084201A (zh) | 2020-12-15 |
CN112084201B CN112084201B (zh) | 2024-04-09 |
Family
ID=73728788
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202010880016.1A Active CN112084201B (zh) | 2020-08-27 | 2020-08-27 | 分布式账本处理方法和装置、存储介质和电子设备 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN112084201B (zh) |
Cited By (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN112948350A (zh) * | 2021-02-02 | 2021-06-11 | 中央财经大学 | 一种基于mpt验证的分布式账本模型冷数据归档及迁移存储方法 |
CN115185972A (zh) * | 2022-09-13 | 2022-10-14 | 北京大学 | 一种数字对象的存证副本的管理方法与装置 |
Citations (8)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN106411503A (zh) * | 2016-11-28 | 2017-02-15 | 中国银行股份有限公司 | 区块链投票记账模式的记账方法及系统、投票及记账节点 |
WO2018012872A1 (ko) * | 2016-07-14 | 2018-01-18 | 주식회사 코인플러그 | 메신저 서비스를 통하여 송수신되는 데이터에 대한 기록 및 검증 서비스를 제공하는 방법, 및 이를 이용한 서버 |
CN109102287A (zh) * | 2018-08-13 | 2018-12-28 | 中国联合网络通信集团有限公司 | 区块链记账方法、装置、设备及存储介质 |
WO2019072136A1 (zh) * | 2017-10-13 | 2019-04-18 | 中国银联股份有限公司 | 区块链网络及其交易方法 |
CN110322352A (zh) * | 2019-07-09 | 2019-10-11 | 深圳市炳德区块链技术有限公司 | 一种基于区块链的账本建立及查询方法、电子设备 |
CN110889729A (zh) * | 2019-11-29 | 2020-03-17 | 腾讯科技(深圳)有限公司 | 一种基于区块链网络的数据验证方法和装置 |
KR20200062100A (ko) * | 2020-05-19 | 2020-06-03 | 주식회사 코인플러그 | 블록체인 기반의 통합 로그인 방법, 단말 및 이를 이용한 서버 |
KR20200090369A (ko) * | 2019-01-21 | 2020-07-29 | 주식회사 머니브레인 | 블록체인에 기반하여 규격화된 패턴을 머클 트리 구조로 인증하는 방법 및 장치 |
-
2020
- 2020-08-27 CN CN202010880016.1A patent/CN112084201B/zh active Active
Patent Citations (8)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
WO2018012872A1 (ko) * | 2016-07-14 | 2018-01-18 | 주식회사 코인플러그 | 메신저 서비스를 통하여 송수신되는 데이터에 대한 기록 및 검증 서비스를 제공하는 방법, 및 이를 이용한 서버 |
CN106411503A (zh) * | 2016-11-28 | 2017-02-15 | 中国银行股份有限公司 | 区块链投票记账模式的记账方法及系统、投票及记账节点 |
WO2019072136A1 (zh) * | 2017-10-13 | 2019-04-18 | 中国银联股份有限公司 | 区块链网络及其交易方法 |
CN109102287A (zh) * | 2018-08-13 | 2018-12-28 | 中国联合网络通信集团有限公司 | 区块链记账方法、装置、设备及存储介质 |
KR20200090369A (ko) * | 2019-01-21 | 2020-07-29 | 주식회사 머니브레인 | 블록체인에 기반하여 규격화된 패턴을 머클 트리 구조로 인증하는 방법 및 장치 |
CN110322352A (zh) * | 2019-07-09 | 2019-10-11 | 深圳市炳德区块链技术有限公司 | 一种基于区块链的账本建立及查询方法、电子设备 |
CN110889729A (zh) * | 2019-11-29 | 2020-03-17 | 腾讯科技(深圳)有限公司 | 一种基于区块链网络的数据验证方法和装置 |
KR20200062100A (ko) * | 2020-05-19 | 2020-06-03 | 주식회사 코인플러그 | 블록체인 기반의 통합 로그인 방법, 단말 및 이를 이용한 서버 |
Non-Patent Citations (2)
Title |
---|
张亮;刘百祥;张如意;江斌鑫;刘一江;: "区块链技术综述", 计算机工程, no. 05 * |
王文庆;: "区块链技术及在金融业的应用", 商场现代化, no. 08 * |
Cited By (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN112948350A (zh) * | 2021-02-02 | 2021-06-11 | 中央财经大学 | 一种基于mpt验证的分布式账本模型冷数据归档及迁移存储方法 |
CN112948350B (zh) * | 2021-02-02 | 2023-08-01 | 中央财经大学 | 一种基于mpt验证的分布式账本模型冷数据归档及迁移存储方法 |
CN115185972A (zh) * | 2022-09-13 | 2022-10-14 | 北京大学 | 一种数字对象的存证副本的管理方法与装置 |
Also Published As
Publication number | Publication date |
---|---|
CN112084201B (zh) | 2024-04-09 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN110417775B (zh) | 基于区块链的虚拟物品交易方法、装置及服务器 | |
CN110494877B (zh) | 用于在分布式网络节点内发布和追踪数字令牌的系统和方法 | |
CN109426949B (zh) | 一种跨链交易方法及装置 | |
CN106789095B (zh) | 分布式系统及消息处理方法 | |
WO2020048440A1 (zh) | 代表节点设备选举方法、装置、计算机设备及存储介质 | |
US11940971B2 (en) | Blockchain implementing reliability database | |
EP3726774A1 (en) | Transparent blockchain sidechains to support blockchain processing heterogeneity | |
CN109522314B (zh) | 基于区块链的数据归档方法及终端设备 | |
EP3709568A1 (en) | Deleting user data from a blockchain | |
CN112084201A (zh) | 分布式账本处理方法和装置、存储介质和电子设备 | |
CN103942252A (zh) | 一种恢复数据的方法及系统 | |
WO2022206454A1 (zh) | 提供跨链消息的方法和装置 | |
CN112671908B (zh) | 网络管理方法、装置、电子设备及可读存储介质 | |
CN103067363A (zh) | 一种用于公开数据完整性校验的索引转换方法 | |
CN113850600A (zh) | 基于区块链的交易共识方法、装置、设备及存储介质 | |
CN112671881A (zh) | 节点组织管理方法、装置、电子设备及可读存储介质 | |
JP7447127B2 (ja) | 分散型台帳システムへのデータの記録の誤ったコピーの送信を防止する | |
CN111026711A (zh) | 基于区块链数据存储方法、装置、计算机设备及存储介质 | |
CN111368311A (zh) | 一种基于区块链的积分管理方法及相关装置 | |
CN110738502A (zh) | 一种票据处理方法、装置及存储介质装置 | |
CN112988470B (zh) | 联盟链中的共识方法、共识节点和系统 | |
CN111209542B (zh) | 一种权限管理方法、装置、存储介质及电子设备 | |
CN111291002B (zh) | 文件对账方法、装置、计算机设备及存储介质 | |
CN111599422B (zh) | 一种基于区块链技术的电子医疗记录取证方法 | |
US20240004930A1 (en) | System and method for pre-indexing filtering and correction of documents in search systems |
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 |