CN110727644B - 一种区块链数据裁剪的方法、系统及存储介质 - Google Patents
一种区块链数据裁剪的方法、系统及存储介质 Download PDFInfo
- Publication number
- CN110727644B CN110727644B CN201910936657.1A CN201910936657A CN110727644B CN 110727644 B CN110727644 B CN 110727644B CN 201910936657 A CN201910936657 A CN 201910936657A CN 110727644 B CN110727644 B CN 110727644B
- Authority
- CN
- China
- Prior art keywords
- state database
- check point
- database file
- transaction
- hash value
- 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
- 238000000034 method Methods 0.000 title claims abstract description 44
- 238000004806 packaging method and process Methods 0.000 claims abstract description 12
- 238000004364 calculation method Methods 0.000 claims description 8
- 230000008569 process Effects 0.000 claims description 6
- 238000013138 pruning Methods 0.000 claims 1
- 230000006870 function Effects 0.000 description 7
- 230000001360 synchronised effect Effects 0.000 description 5
- 238000010586 diagram Methods 0.000 description 4
- 238000005516 engineering process Methods 0.000 description 3
- 239000000463 material Substances 0.000 description 2
- 230000003287 optical effect Effects 0.000 description 2
- 230000004075 alteration Effects 0.000 description 1
- 230000004048 modification Effects 0.000 description 1
- 238000012986 modification Methods 0.000 description 1
- 239000013307 optical fiber Substances 0.000 description 1
- 238000006467 substitution reaction Methods 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/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/10—File systems; File servers
- G06F16/16—File or folder operations, e.g. details of user interfaces specifically adapted to file systems
- G06F16/162—Delete operations
-
- 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/382—Payment protocols; Details thereof insuring higher security of transaction
- G06Q20/3827—Use of message hashing
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Business, Economics & Management (AREA)
- Physics & Mathematics (AREA)
- General Physics & Mathematics (AREA)
- Accounting & Taxation (AREA)
- Data Mining & Analysis (AREA)
- Databases & Information Systems (AREA)
- General Engineering & Computer Science (AREA)
- Human Computer Interaction (AREA)
- Computer Security & Cryptography (AREA)
- Software Systems (AREA)
- Finance (AREA)
- Strategic Management (AREA)
- General Business, Economics & Management (AREA)
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
Abstract
本发明公开了一种区块链数据裁剪的方法、系统及存储介质,方法包括以下步骤:根据区块链中各个节点的投票结果,确定检查点;生成检查点的状态数据库及该状态数据库的哈希值;将所述哈希值加入交易信息,并将该交易信息打包进预指定的区块;通过区块链节点对所述预指定的区块形成共识后,将检查点之前的区块删除。本发明通过区块链共识,将指定的区块交易历史数据用状态数据库文件来替代,既保证了区块链系统状态数据的一致性,又能减少节点需要存储的数据量,能够提高数据量庞大的交易效率,可广泛应用于区块链技术领域。
Description
技术领域
本发明涉及区块链技术领域,尤其是一种区块链数据裁剪的方法、系统及存储介质。
背景技术
在区块链中,一般情况下,每一个区块链节点需要保存全部的历史数据,因为区块链数据是节点获取当前系统状态数据的一个重要的途径,即通过遍历执行所有区块历史数据来生成当前系统的状态数据库;在比特币区块链中,部分节点可以采用裁剪模式来直接删减被称作检查点的区块之前的所有数据,但是必须要有保存所有区块数据的全节点存在。
在一个高并发的区块链系统中,交易的数据量是非常庞大的,导致区块的历史数据量也是非常大,这对于所有的区块链节点的存储能力都要很高的要求。但是在实际的应用中,区块链节点更关心的是整个区块链系统当前的状态数据,而不是所有的历史交易数据。在这种情况下,节点保存全部的区块交易数据的做法是不合理的,也是低效的。
发明内容
有鉴于此,本发明实施例提供一种高效的区块链数据裁剪的方法、系统及存储介质。
第一方面,本发明实施例提供了一种区块链数据裁剪的方法,包括以下步骤:
根据区块链中各个节点的投票结果,确定检查点;
生成检查点的状态数据库及该状态数据库的哈希值;
将所述哈希值加入交易信息,并将该交易信息打包进预指定的区块;
通过区块链节点对所述预指定的区块形成共识后,将检查点之前的区块删除。
进一步,还包括初始化新加入节点数据的步骤。
进一步,所述初始化新加入节点数据这一步骤,包括以下步骤:
基于确定的检查点,同步处于检查点之后且包括检查点所在位置的所有区块数据;
同步得到检查点的状态数据库文件;
计算状态数据库文件的哈希值;
根据计算得到的哈希值确定状态数据库文件的合法性;
根据合法的状态数据库文件初始化状态数据库;
根据确定的检查点遍历处于检查点之后的所有区块的交易数据,得到最新的状态数据库。
进一步,所述根据计算得到的哈希值确定状态数据库文件的合法性这一步骤,在新加入的节点的初始化过程中,包括以下步骤:
节点首先从其他节点-同步处于最新的检查点及最新的检查点后的所有区块;
节点从其他节点中同步得到针对最新的检查点的状态数据库文件;
节点检查最新的检查点区块中的裁剪请求交易中的字段和该交易中指定的区块高度中的状态数据库文件共识交易中的字段是否一致;
节点计算状态数据库文件的哈希值,并和最新的检查点对应的状态数据库文件共识交易中的状态数据库文件哈希值比较,如果比较结果一致则表示合法,否则不合法;
具体的,所述节点检查最新的检查点区块中的裁剪请求交易中的字段和该交易中指定的区块高度中的状态数据库文件共识交易中的字段是否一致这一步骤,具体包括如下步骤:
确定裁剪请求交易与状态数据库文件共识交易中的检查点区块高度相等;
确定裁剪请求交易与状态数据库文件共识交易中的状态数据库文件共识区块高度相等;
确定裁剪请求交易的哈希值与状态数据库文件共识交易中的裁剪请求交易哈希值相同。
进一步,所述通过区块链节点对所述预指定的区块形成共识这一步骤,包括以下步骤;
检查对裁剪请求交易与相应的状态数据库文件共识交易中的字段是否相对一致;
检查节点本地的针对同一个检查点的状态数据库文件的哈希值是否和状态数据库文件共识交易中指定的状态数据库文件哈希值相同。
进一步,所述生成检查点的状态数据库及该状态数据库的哈希值这一步骤,包括以下步骤:
执行检查点及检查点之前的区块,得到状态数据库;
生成该状态数据库的标准格式数据库文件;
计算标准格式数据库文件的哈希值。
第二方面,本发明实施例还提供了一种区块链数据裁剪的系统,包括:
票选模块,用于根据区块链中各个节点的投票结果,确定检查点;
生成模块,用于生成检查点的状态数据库及该状态数据库的哈希值;
打包模块,用于将所述哈希值加入交易信息,并将该交易信息打包进预指定的区块;
裁剪模块,用于通过区块链节点对所述预指定的区块形成共识后,将检查点之前的区块删除。
进一步,还包括:
初始化模块,用于初始化新加入节点数据;
所述初始化模块包括:
第一同步单元,用于基于确定的检查点,同步处于检查点之后且包括检查点所在位置的所有区块数据;
第二同步单元,用于同步得到检查点的状态数据库文件;
计算单元,用于计算状态数据库文件的哈希值;
合法性判断单元,用于根据计算得到的哈希值确定状态数据库文件的合法性;
初始化单元,用于根据合法的状态数据库文件初始化状态数据库;
遍历单元,用于根据确定的检查点遍历处于检查点之后的所有区块的交易数据,得到最新的状态数据库。
第三方面,本发明实施例还提供了一种区块链数据裁剪的系统,包括:
至少一个处理器;
至少一个存储器,用于存储至少一个程序;
当所述至少一个程序被所述至少一个处理器执行,使得所述至少一个处理器实现所述的区块链数据裁剪的方法。
第四方面,本发明实施例还提供了一种存储介质,其中存储有处理器可执行的指令,所述处理器可执行的指令在由处理器执行时用于执行所述的区块链数据裁剪的方法。
上述本发明实施例中的一个或多个技术方案具有如下优点:本发明首先根据区块链中各个节点的投票结果,确定检查点;接着生成检查点的状态数据库及该状态数据库的哈希值;然后将所述哈希值加入交易信息,并将该交易信息打包进预指定的区块;最后通过区块链节点对所述预指定的区块形成共识后,将检查点之前的区块删除;本发明通过区块链共识,将指定的区块交易历史数据用状态数据库文件来替代,既保证了区块链系统状态数据的一致性,又能减少节点需要存储的数据量,能够提高数据量庞大的交易效率。
附图说明
图1为本发明实施例的区块数据裁剪示意图;
图2为本发明实施例的裁剪请求交易与状态数据库文件共识交易示意图;
图3为本发明实施例的区块裁剪流程示意图;
图4为本发明实施例的新加入节点数据初始化流程示意图。
具体实施方式
下面结合说明书附图和具体实施例对本发明作进一步解释和说明。对于本发明实施例中的步骤编号,其仅为了便于阐述说明而设置,对步骤之间的顺序不做任何限定,实施例中的各步骤的执行顺序均可根据本领域技术人员的理解来进行适应性调整。
本发明实施例提供了一种区块链数据裁剪的方法,包括以下步骤:
根据区块链中各个节点的投票结果,确定检查点;
生成检查点的状态数据库及该状态数据库的哈希值;
将所述哈希值加入交易信息,并将该交易信息打包进预指定的区块;
通过区块链节点对所述预指定的区块形成共识后,将检查点之前的区块删除。
进一步作为优选的实施方式,还包括初始化新加入节点数据的步骤。
具体的,本实施例中的区块链裁剪方法包括以下的步骤:
s1:区块链节点通过投票选出一个当前最新的检查点,所述检查点是一个特定高度的区块,所有在该区块之前的区块数据都将被裁剪成状态数据库文件;
s2:所有的节点都将检查点区块被执行完之后的状态数据库生成统一的标准格式数据库文件另存起来,并计算该数据库文件的哈希值;
s3:在检查点之后的指定高度的区块中,区块链节点在打包该区块时,必须将自己在s2中生成的数据库文件哈希放在一个交易中,并将所述的交易打包进所述检查点之后的指定高度的区块中;
s4:区块链节点针对s3中包含所述数据库文件哈希的交易的区块形成共识,并将s1中所述的检查点之前的区块删除,本轮裁剪完成,等待下一轮的裁剪;
s5:新加入的节点首先同步从最新的检查点开始的所有区块数据,然后向区块链网络中的节点同步最新的状态数据库文件,通过计算接收到的状态数据库文件的哈希值和所述最新的检查点之后指定高度的区块中包含的状态数据库文件哈希值的一致性来判断接收到的数据库文件合法性;
s6:根据s5中同步得到的合法的状态数据文件,初始化状态数据库,并根据s5中同步的从最新的检查点开始的所有区块数据,遍历其中区块交易,得到最新的状态数据库。
进一步作为优选的实施方式,所述初始化新加入节点数据这一步骤,包括以下步骤:
基于确定的检查点,同步处于检查点之后且包括检查点所在位置的所有区块数据;
同步得到检查点的状态数据库文件;
计算状态数据库文件的哈希值;
根据计算得到的哈希值确定状态数据库文件的合法性;
根据合法的状态数据库文件初始化状态数据库;
根据确定的检查点遍历处于检查点之后的所有区块的交易数据,得到最新的状态数据库。
进一步作为优选的实施方式,所述根据计算得到的哈希值确定状态数据库文件的合法性这一步骤,在新加入的节点的初始化过程中,包括以下步骤:
节点首先从其他节点同步处于最新的检查点及最新的检查点后的所有区块;
节点从其他节点中同步得到针对最新的检查点的状态数据库文件;
节点检查最新的检查点区块中的裁剪请求交易中的字段和该交易中指定的区块高度中的状态数据库文件共识交易中的字段是否一致;
节点计算状态数据库文件的哈希值,并和最新的检查点对应的状态数据库文件共识交易中的状态数据库文件哈希值比较,如果比较结果一致则表示合法,否则不合法;
具体的,所述节点检查最新的检查点区块中的裁剪请求交易中的字段和该交易中指定的区块高度中的状态数据库文件共识交易中的字段是否一致这一步骤,具体包括如下步骤:
确定裁剪请求交易与状态数据库文件共识交易中的检查点区块高度相等;
确定裁剪请求交易与状态数据库文件共识交易中的状态数据库文件共识区块高度相等;
确定裁剪请求交易的哈希值与状态数据库文件共识交易中的裁剪请求交易哈希值相同。
进一步作为优选的实施方式,所述通过区块链节点对所述预指定的区块形成共识这一步骤,包括以下步骤;
检查对裁剪请求交易与相应的状态数据库文件共识交易中的字段是否相对一致;
检查节点本地的针对同一个检查点的状态数据库文件的哈希值是否和状态数据库文件共识交易中指定的状态数据库文件哈希值相同。
本实施例中,对于新加入节点,它在初始化时需要同步其他节点发送过来的基于一个确定的检查点的状态数据文件,然后计算该状态数据文件的哈希值是否和从其他节点出同步过来的区块数据中被正在运行节点共识过的针对该确定检查点的状态数据文件的哈希值一致,如果一致则表示同步到的状态数据库文件是合法的;
而对于正在运行的节点,其通过区块链节点对所述预指定的区块形成共识,共识的过程中需要对状态数据库文件共识交易中的字段进行检查,检查的规则就是判断裁剪请求交易与相应的状态数据库文件共识交易中的字段是否相对一致;以及,判断状态数据库文件共识交易中的状态数据库文件哈希值的节点本地计算出来的是否一样,一样的话,则判断状态数据库文件共识交易合法,最终对交易形成共识。
进一步作为优选的实施方式,所述生成检查点的状态数据库及该状态数据库的哈希值这一步骤,包括以下步骤:
执行检查点及检查点之前的区块,得到状态数据库;
生成该状态数据库的标准格式数据库文件;
计算标准格式数据库文件的哈希值。
下面结合说明书附图,详细描述本发明的区块链数据裁剪的方法的具体实施步骤:
s1:如图2所示,节点发送一个裁剪请求交易,交易中指定检查点对应的区块高度,状态数据库文件共识交易所在区块高度;
s2:所有节点针对s1中的裁剪请求交易形成共识之后,计算s1中所述裁剪请求交易中指定的检查点对应的状态数据库文件另存起来,并计算其哈希值;
s3:节点在打包s1中所述裁剪请求交易中指定的状态数据库文件共识区块高度对应的区块时,生成并打包一个状态数据库文件共识交易,如图2所示,交易中指定了对应的裁剪请求交易的哈希值,检查点区块高度,状态数据库文件共识区块高度以及s2中生成的状态数据库文件哈希。
s4:所有节点针对s3中的状态数据库文件共识交易形成共识,具体的检查合法性步骤包括:1)状态数据库文件共识交易中的检查点区块高度,该共识得到的区块高度要和裁剪请求交易哈希指定的裁剪请求交易中对应的字段相同(如图2所示,本实施例中对应的字段为n+1);2)状态数据库文件共识交易所在区块高度必须与该交易中指定的状态数据库文件共识区块高度相等(如图2所示,本实施例中对应的字段为n+k);3)状态数据库文件共识交易中指定的状态数据库文件哈希必须与节点本地在s2中计算的状态数据库文件哈希一致;
s5:节点将s1中所述裁剪请求交易中指定的检查点之前的区块数据删除;
本实施例中提及的裁剪共识都是通过状态数据库文件共识交易的方式在区块链网络中形成共识,状态数据库文件相当于被裁剪掉的区块的“替代品”;本实施例在从区块链网络中的任意一个节点中同步了针对某一个检查点的状态数据库文件之后,需要计算该状态数据库文件的哈希值,看是否和“状态数据库文件共识交易”中制定的“状态文件哈希值”一致,若一致,则可以裁剪掉。
如图1所示,本实施例中:经过裁剪,区块1到区块n之间的数据被删除,节点只需要保存由区块1到检查点区块中的交易生成的状态数据库文件即可。因为一般情况下交易历史数据量往往比对应的状态数据库文件数据量大得多,所以被发明公布的区块链数据裁剪方法能够明显减少存储数据量,同时因为整个裁剪的过程是共识形成且没有丢失状态数据,因此又可以保证状态数据的完整性。
如图3所示,本实施例中:裁剪的区块的数量可以是动态决定,即通过对裁剪请求交易共识来决定最新的裁剪的检查点高度,同时也通过对状态数据库文件哈希的共识来保证被裁剪部分的区块生成的状态数据库的一致性,因此,本发明公布的方法不会破坏区块链数据的安全性。
如图4所示,本实施例中:新加入的区块链节点首先同步当前最新检查点及其后的所有区块数据,从中获取到状态数据库文件哈希,然后通过区块链对等网络来获取状态数据库文件,通过计算所述状态数据库文件的哈希并和区块数据上形成共识的状态数据库文件哈希对比即可判断所获取到的状态数据库文件的合法性,在合法的情况下,利用状态数据库文件进行初始化状态数据库,并遍历除检查点以外的区块交易数据,得到全网的区块链状态数据,同步完成,因此,本发明提出的区块链数据裁剪方法不会影响新加入节点的数据同步,具备可行性。
本发明实施例还提供了一种区块链数据裁剪的系统,包括:
票选模块,用于根据区块链中各个节点的投票结果,确定检查点;
生成模块,用于生成检查点的状态数据库及该状态数据库的哈希值;
打包模块,用于将所述哈希值加入交易信息,并将该交易信息打包进预指定的区块;
裁剪模块,用于通过区块链节点对所述预指定的区块形成共识后,将检查点之前的区块删除。
进一步作为优选的实施方式,还包括:
初始化模块,用于初始化新加入节点数据。
进一步作为优选的实施方式,所述初始化模块包括:
第一同步单元,用于基于确定的检查点,同步处于检查点之后且包括检查点所在位置的所有区块数据;
第二同步单元,用于同步得到检查点的状态数据库文件;
计算单元,用于计算状态数据库文件的哈希值;
合法性判断单元,用于根据计算得到的哈希值确定状态数据库文件的合法性;
初始化单元,用于根据合法的状态数据库文件初始化状态数据库;
遍历单元,用于根据确定的检查点遍历处于检查点之后的所有区块的交易数据,得到最新的状态数据库。
本发明实施例还提供了一种区块链数据裁剪的系统,包括:
至少一个处理器;
至少一个存储器,用于存储至少一个程序;
当所述至少一个程序被所述至少一个处理器执行,使得所述至少一个处理器实现所述的区块链数据裁剪的方法。
本发明实施例还提供了一种存储介质,其中存储有处理器可执行的指令,所述处理器可执行的指令在由处理器执行时用于执行所述的区块链数据裁剪的方法。
综上所述,相较于现有技术,本发明一种区块链数据裁剪的方法、系统及存储介质具有以下优点:
本发明通过区块链共识,将指定的区块交易历史数据用状态数据库文件来替代,既保证了区块链系统状态数据的一致性,又能减少节点需要存储的数据量,能够提高数据量庞大的交易效率。
在一些可选择的实施例中,在方框图中提到的功能/操作可以不按照操作示图提到的顺序发生。例如,取决于所涉及的功能/操作,连续示出的两个方框实际上可以被大体上同时地执行或所述方框有时能以相反顺序被执行。此外,在本发明的流程图中所呈现和描述的实施例以示例的方式被提供,目的在于提供对技术更全面的理解。所公开的方法不限于本文所呈现的操作和逻辑流程。可选择的实施例是可预期的,其中各种操作的顺序被改变以及其中被描述为较大操作的一部分的子操作被独立地执行。
此外,虽然在功能性模块的背景下描述了本发明,但应当理解的是,除非另有相反说明,所述的功能和/或特征中的一个或多个可以被集成在单个物理装置和/或软件模块中,或者一个或多个功能和/或特征可以在单独的物理装置或软件模块中被实现。还可以理解的是,有关每个模块的实际实现的详细讨论对于理解本发明是不必要的。更确切地说,考虑到在本文中公开的装置中各种功能模块的属性、功能和内部关系的情况下,在工程师的常规技术内将会了解该模块的实际实现。因此,本领域技术人员运用普通技术就能够在无需过度试验的情况下实现在权利要求书中所阐明的本发明。还可以理解的是,所公开的特定概念仅仅是说明性的,并不意在限制本发明的范围,本发明的范围由所附权利要求书及其等同方案的全部范围来决定。
所述功能如果以软件功能单元的形式实现并作为独立的产品销售或使用时,可以存储在一个计算机可读取存储介质中。基于这样的理解,本发明的技术方案本质上或者说对现有技术做出贡献的部分或者该技术方案的部分可以以软件产品的形式体现出来,该计算机软件产品存储在一个存储介质中,包括若干指令用以使得一台计算机设备(可以是个人计算机,服务器,或者网络设备等)执行本发明各个实施例所述方法的全部或部分步骤。而前述的存储介质包括:U盘、移动硬盘、只读存储器(ROM,Read-Only Memory)、随机存取存储器(RAM,Random Access Memory)、磁碟或者光盘等各种可以存储程序代码的介质。
在流程图中表示或在此以其他方式描述的逻辑和/或步骤,例如,可以被认为是用于实现逻辑功能的可执行指令的定序列表,可以具体实现在任何计算机可读介质中,以供指令执行系统、装置或设备(如基于计算机的系统、包括处理器的系统或其他可以从指令执行系统、装置或设备取指令并执行指令的系统)使用,或结合这些指令执行系统、装置或设备而使用。就本说明书而言,“计算机可读介质”可以是任何可以包含、存储、通信、传播或传输程序以供指令执行系统、装置或设备或结合这些指令执行系统、装置或设备而使用的装置。
计算机可读介质的更具体的示例(非穷尽性列表)包括以下:具有一个或多个布线的电连接部(电子装置),便携式计算机盘盒(磁装置),随机存取存储器(RAM),只读存储器(ROM),可擦除可编辑只读存储器(EPROM或闪速存储器),光纤装置,以及便携式光盘只读存储器(CDROM)。另外,计算机可读介质甚至可以是可在其上打印所述程序的纸或其他合适的介质,因为可以例如通过对纸或其他介质进行光学扫描,接着进行编辑、解译或必要时以其他合适方式进行处理来以电子方式获得所述程序,然后将其存储在计算机存储器中。
应当理解,本发明的各部分可以用硬件、软件、固件或它们的组合来实现。在上述实施方式中,多个步骤或方法可以用存储在存储器中且由合适的指令执行系统执行的软件或固件来实现。例如,如果用硬件来实现,和在另一实施方式中一样,可用本领域公知的下列技术中的任一项或他们的组合来实现:具有用于对数据信号实现逻辑功能的逻辑门电路的离散逻辑电路,具有合适的组合逻辑门电路的专用集成电路,可编程门阵列(PGA),现场可编程门阵列(FPGA)等。
在本说明书的描述中,参考术语“一个实施例”、“一些实施例”、“示例”、“具体示例”、或“一些示例”等的描述意指结合该实施例或示例描述的具体特征、结构、材料或者特点包含于本发明的至少一个实施例或示例中。在本说明书中,对上述术语的示意性表述不一定指的是相同的实施例或示例。而且,描述的具体特征、结构、材料或者特点可以在任何的一个或多个实施例或示例中以合适的方式结合。
尽管已经示出和描述了本发明的实施例,本领域的普通技术人员可以理解:在不脱离本发明的原理和宗旨的情况下可以对这些实施例进行多种变化、修改、替换和变型,本发明的范围由权利要求及其等同物限定。
以上是对本发明的较佳实施进行了具体说明,但本发明并不限于所述实施例,熟悉本领域的技术人员在不违背本发明精神的前提下还可做作出种种的等同变形或替换,这些等同的变形或替换均包含在本申请权利要求所限定的范围内。
Claims (7)
1.一种区块链数据裁剪的方法,其特征在于:包括以下步骤:
根据区块链中各个节点的投票结果,确定检查点;
生成检查点的状态数据库及该状态数据库的哈希值;
将所述哈希值加入交易信息,并将该交易信息打包进预指定的区块;
通过区块链节点对所述预指定的区块形成共识后,将检查点之前的区块删除;
所述方法还包括初始化新加入节点数据的步骤;
所述初始化新加入节点数据这一步骤,包括以下步骤:
基于确定的检查点,同步处于检查点之后且包括检查点所在位置的所有区块数据;
同步得到检查点的状态数据库文件;
计算状态数据库文件的哈希值;
根据计算得到的哈希值确定状态数据库文件的合法性;
根据合法的状态数据库文件初始化状态数据库;
根据确定的检查点遍历处于检查点之后的所有区块的交易数据,得到最新的状态数据库;
所述根据计算得到的哈希值确定状态数据库文件的合法性这一步骤,在新加入的节点的初始化过程中,包括以下步骤:
节点首先从其他节点同步处于最新的检查点及最新的检查点后的所有区块;
节点从其他节点中同步得到针对最新的检查点的状态数据库文件;
节点检查最新的检查点区块中的裁剪请求交易中的字段和该交易中指定的区块高度中的状态数据库文件共识交易中的字段是否一致;
节点计算状态数据库文件的哈希值,并和最新的检查点对应的状态数据库文件共识交易中的状态数据库文件哈希值比较,如果比较结果一致则表示合法,否则不合法。
2.根据权利要求1所述的一种区块链数据裁剪的方法,其特征在于:
具体的,所述节点检查最新的检查点区块中的裁剪请求交易中的字段和该交易中指定的区块高度中的状态数据库文件共识交易中的字段是否一致这一步骤,具体包括如下步骤:
确定裁剪请求交易与状态数据库文件共识交易中的检查点区块高度相等;
确定裁剪请求交易与状态数据库文件共识交易中的状态数据库文件共识区块高度相等;
确定裁剪请求交易的哈希值与状态数据库文件共识交易中的裁剪请求交易哈希值相同。
3.根据权利要求2所述的一种区块链数据裁剪的方法,其特征在于:所述通过区块链节点对所述预指定的区块形成共识这一步骤,包括以下步骤;
检查对裁剪请求交易与相应的状态数据库文件共识交易中的字段是否相对一致;
检查节点本地的针对同一个检查点的状态数据库文件的哈希值是否和状态数据库文件共识交易中指定的状态数据库文件哈希值相同。
4.根据权利要求1所述的一种区块链数据裁剪的方法,其特征在于:所述生成检查点的状态数据库及该状态数据库的哈希值这一步骤,包括以下步骤:
执行检查点及检查点之前的区块,得到状态数据库;
生成该状态数据库的标准格式数据库文件;
计算标准格式数据库文件的哈希值。
5.一种区块链数据裁剪的系统,其特征在于:包括:
票选模块,用于根据区块链中各个节点的投票结果,确定检查点;
生成模块,用于生成检查点的状态数据库及该状态数据库的哈希值;
打包模块,用于将所述哈希值加入交易信息,并将该交易信息打包进预指定的区块;
裁剪模块,用于通过区块链节点对所述预指定的区块形成共识后,将检查点之前的区块删除;
所述区块链数据裁剪的系统还包括:
初始化模块,用于初始化新加入节点数据;
所述初始化模块包括:
第一同步单元,用于基于确定的检查点,同步处于检查点之后且包括检查点所在位置的所有区块数据;
第二同步单元,用于同步得到检查点的状态数据库文件;
计算单元,用于计算状态数据库文件的哈希值;
合法性判断单元,用于根据计算得到的哈希值确定状态数据库文件的合法性;
初始化单元,用于根据合法的状态数据库文件初始化状态数据库;
遍历单元,用于根据确定的检查点遍历处于检查点之后的所有区块的交易数据,得到最新的状态数据库;
其中,所述合法性判断单元中所述根据计算得到的哈希值确定状态数据库文件的合法性,包括:
节点首先从其他节点出同处于最新的检查点及最新的检查点后的所有区块;
节点从其他节点中同步得到针对最新的检查点的状态数据库文件;
节点检查最新的检查点区块中的裁剪请求交易中的字段和该交易中指定的区块高度中的状态数据库文件共识交易中的字段是否一致;
节点计算状态数据库文件的哈希值,并和最新的检查点对应的状态数据库文件共识交易中的状态数据库文件哈希值比较,如果比较结果一致则表示合法,否则不合法。
6.一种区块链数据裁剪的系统,其特征在于:包括:
至少一个处理器;
至少一个存储器,用于存储至少一个程序;
当所述至少一个程序被所述至少一个处理器执行,使得所述至少一个处理器实现如权利要求1-4中任一项所述的区块链数据裁剪的方法。
7.一种存储介质,其中存储有处理器可执行的指令,其特征在于:所述处理器可执行的指令在由处理器执行时用于执行如权利要求1-4中任一项所述的区块链数据裁剪的方法。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201910936657.1A CN110727644B (zh) | 2019-09-29 | 2019-09-29 | 一种区块链数据裁剪的方法、系统及存储介质 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201910936657.1A CN110727644B (zh) | 2019-09-29 | 2019-09-29 | 一种区块链数据裁剪的方法、系统及存储介质 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN110727644A CN110727644A (zh) | 2020-01-24 |
CN110727644B true CN110727644B (zh) | 2022-06-24 |
Family
ID=69219708
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201910936657.1A Active CN110727644B (zh) | 2019-09-29 | 2019-09-29 | 一种区块链数据裁剪的方法、系统及存储介质 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN110727644B (zh) |
Families Citing this family (7)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN111611310A (zh) * | 2020-04-28 | 2020-09-01 | 深圳壹账通智能科技有限公司 | 区块链数据裁剪方法、节点恢复方法、装置、设备及介质 |
CN111797086B (zh) * | 2020-07-03 | 2024-07-05 | 南京鼐威欣信息技术有限公司 | 数据裁剪方法、设备和存储介质 |
CN112669149B (zh) * | 2020-12-24 | 2024-06-04 | 杭州趣链科技有限公司 | 一种区块链的共识方法、装置、服务器及存储介质 |
CN113360578B (zh) * | 2021-06-18 | 2023-04-07 | 中国科学技术大学 | 一种分层裁剪区块链交易内数据的方法、系统和存储介质 |
CN114331443B (zh) * | 2022-03-10 | 2022-06-21 | 南京金宁汇科技有限公司 | 一种删除区块链数据的方法及装置 |
CN114900529B (zh) * | 2022-06-09 | 2024-08-23 | 上海万向区块链股份公司 | 区块敲定方法及系统 |
CN115618426B (zh) * | 2022-11-17 | 2023-04-28 | 山东区块链研究院 | 基于检查点的区块链数据防篡改方法及系统 |
Citations (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN106899412A (zh) * | 2017-03-30 | 2017-06-27 | 北京链银博科技有限责任公司 | 一种区块链隐私保护方法、装置及系统 |
CN107341660A (zh) * | 2017-05-27 | 2017-11-10 | 唐盛(北京)物联技术有限公司 | 一种区块链底层共识机制以及基于该共识机制的区块链系统 |
CN109118230A (zh) * | 2018-08-29 | 2019-01-01 | 众安信息技术服务有限公司 | 基于区块链的信息处理方法和装置 |
CN109587238A (zh) * | 2018-12-03 | 2019-04-05 | 百度在线网络技术(北京)有限公司 | 区块链的数据处理和同步方法、装置、设备及存储介质 |
CN109784916A (zh) * | 2018-12-12 | 2019-05-21 | 广东工业大学 | 一种改进pbft的以太坊共识机制应用于联盟链的方法 |
CN109871669A (zh) * | 2019-03-14 | 2019-06-11 | 哈尔滨工程大学 | 一种基于区块链技术的数据共享解决方法 |
Family Cites Families (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US10628491B2 (en) * | 2016-11-09 | 2020-04-21 | Cognitive Scale, Inc. | Cognitive session graphs including blockchains |
US10726343B2 (en) * | 2016-11-09 | 2020-07-28 | Cognitive Scale, Inc. | Performing compliance operations using cognitive blockchains |
CN106776894B (zh) * | 2016-11-29 | 2018-03-16 | 北京众享比特科技有限公司 | 日志数据库系统和同步方法 |
US10762079B2 (en) * | 2017-09-29 | 2020-09-01 | Oracle International Corporation | System and method for managing a blockchain cloud service |
CN108108967B (zh) * | 2017-12-29 | 2020-10-16 | 山大地纬软件股份有限公司 | 面向复杂数字资产的多阶段pbft共识系统及方法 |
-
2019
- 2019-09-29 CN CN201910936657.1A patent/CN110727644B/zh active Active
Patent Citations (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN106899412A (zh) * | 2017-03-30 | 2017-06-27 | 北京链银博科技有限责任公司 | 一种区块链隐私保护方法、装置及系统 |
CN107341660A (zh) * | 2017-05-27 | 2017-11-10 | 唐盛(北京)物联技术有限公司 | 一种区块链底层共识机制以及基于该共识机制的区块链系统 |
CN109118230A (zh) * | 2018-08-29 | 2019-01-01 | 众安信息技术服务有限公司 | 基于区块链的信息处理方法和装置 |
CN109587238A (zh) * | 2018-12-03 | 2019-04-05 | 百度在线网络技术(北京)有限公司 | 区块链的数据处理和同步方法、装置、设备及存储介质 |
CN109784916A (zh) * | 2018-12-12 | 2019-05-21 | 广东工业大学 | 一种改进pbft的以太坊共识机制应用于联盟链的方法 |
CN109871669A (zh) * | 2019-03-14 | 2019-06-11 | 哈尔滨工程大学 | 一种基于区块链技术的数据共享解决方法 |
Non-Patent Citations (1)
Title |
---|
"区块链解读33-PBFT算法";东斜西堵;《https://mp.weixin.qq.com/s/f4oOq2YXNtyR75ZQqIUomw》;20170908;第1-4页 * |
Also Published As
Publication number | Publication date |
---|---|
CN110727644A (zh) | 2020-01-24 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN110727644B (zh) | 一种区块链数据裁剪的方法、系统及存储介质 | |
CN109345388B (zh) | 区块链智能合约验证方法、装置及存储介质 | |
CN113329031B (zh) | 一种区块的状态树的生成方法及装置 | |
CN110737664B (zh) | 一种区块链节点同步的方法及装置 | |
CN108108127B (zh) | 一种文件读取方法及系统 | |
CN107679863B (zh) | 一种区块链系统及快速验证区块的方法 | |
KR20200089749A (ko) | 블록체인-기반 데이터 검증 방법 및 장치, 및 전자 디바이스 | |
CN110413621B (zh) | 基于区块链的离线归档系统及方法 | |
CN112286939B (zh) | 块链式账本中全局状态的哈希的生成方法、装置及设备 | |
CN105989044A (zh) | 一种数据库校验方法及系统 | |
CN110187831B (zh) | 区块链联盟链的区块数据存储系统及方法 | |
CN109543455A (zh) | 一种区块链的数据归档方法及装置 | |
CN111046069B (zh) | 一种块链式账本中的聚合计算方法、装置及设备 | |
CN108874678A (zh) | 一种智能程序的自动测试方法及装置 | |
CN110765205A (zh) | 基于区块链的元数据管理方法、系统和计算机存储介质 | |
CN109189859B (zh) | 区块链网络中的节点初始化方法和装置 | |
CN111432009B (zh) | 一种区块链数据的同步方法、装置及电子设备、存储介质 | |
CN114266665B (zh) | 合约多主链跨链方法、设备和存储介质 | |
CN112579591A (zh) | 数据校验方法、装置、电子设备及计算机可读存储介质 | |
CN114529415A (zh) | 基于区块链的交易验证方法及装置、电子设备 | |
CN111026711A (zh) | 基于区块链数据存储方法、装置、计算机设备及存储介质 | |
CN113505138A (zh) | 区块链系统中状态证明及执行区块的方法及装置 | |
CN113326332A (zh) | 一种区块链的快照同步方法及装置 | |
CN117539925A (zh) | 一种数据处理方法、装置、介质和设备 | |
CN112000671B (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 | ||
TR01 | Transfer of patent right | ||
TR01 | Transfer of patent right |
Effective date of registration: 20240112 Address after: Room 911, Building C, Entrepreneurship Outsourcing Service Center, No. 188 Tongsheng Avenue, Development Zone, Nantong City, Jiangsu Province, 226000 Patentee after: Jinning Hui Technology (Nantong) Co.,Ltd. Address before: Room 1567, hatching Eagle building, No. 99, Tuanjie Road, yanchuang Park, Jiangbei new district, Nanjing, Jiangsu 211800 Patentee before: Nanjing jinninghui Technology Co.,Ltd. |