数字交易系统、及用于其的账户信息查询方法

文档序号:10687095阅读:283来源:国知局
数字交易系统、及用于其的账户信息查询方法
【专利摘要】公开了数字交易系统、及用于其的账户信息查询方法。该数字交易系统包括:验证节点,被配置为存储最新账户信息、和区块链中的包含最新交易信息和最新账户指示信息的最新区块,并基于最新账户信息对来自交易节点的账户信息查询请求进行响应,其中,最新账户信息是验证节点基于最新交易信息对已有账户信息进行更新生成的,最新账户指示信息是验证节点基于最新账户信息生成的,最新区块是验证节点根据共识算法与数字交易系统中的其他验证节点之间达成共识的基准;以及交易节点,被配置为向验证节点发送账户信息查询请求,并接收验证节点对于账户信息查询请求的响应。
【专利说明】
数字交易系统、及用于其的账户信息查询方法
技术领域
[0001]本发明涉及计算机领域,更具体地涉及数字交易系统、及用于其的账户信息查询方法。
【背景技术】
[0002]在现有的分布式总账系统中,每个节点都需要利用区块链保存全部的交易记录,并通过对等(Peer to Peer,简称P2P)网络交换信息来达成所保存的交易记录的一致性(即,达成共识);每个节点只能通过区块链中保存的交易记录来推算账户余额之类的账户
?目息O
[0003]现有的分布式总账系统至少存在以下两个问题:I)因为每个节点都需要保存全部的交易记录,所以随着交易量的增加,这些节点的存储压力将越来越大;2)因为每次查询账户信息的过程都涉及所有的相关交易记录,所以查询账户信息的效率低。

【发明内容】

[0004]鉴于以上所述的一个或多个问题,本发明提供了一种新颖的数字交易系统、及用于其的账户信息查询方法。
[0005]根据本发明实施例的数字交易系统,包括:验证节点,被配置为存储最新账户信息、和区块链中的包含最新交易信息和最新账户指示信息的最新区块,并基于最新账户信息对来自交易节点的账户信息查询请求进行响应,其中,最新账户信息是验证节点基于最新交易信息对已有账户信息进行更新生成的,最新账户指示信息是验证节点基于最新账户信息生成的,最新区块是验证节点根据共识算法与数字交易系统中的其他验证节点之间达成共识的基准;以及交易节点,被配置为向验证节点发送账户信息查询请求,并接收验证节点对于账户信息查询请求的响应。
[0006]根据本发明实施例的用于数字交易系统的账户信息查询方法,该数字交易系统包括验证节点和交易节点,该账户信息查询方法包括:交易节点向所述节点发送账户信息查询请求;验证节点基于其存储的最新账户信息对账户信息查询请求进行响应,其中验证节点还存储有区块链中的包含最新交易信息和最新账户指示信息的最新区块,最新账户信息是验证节点基于最新交易信息对已有账户信息进行更新生成的,最新账户指示信息是验证节点基于最新账户信息生成的,最新区块是验证节点根据共识算法与数字交易系统中的其他验证节点之间达成共识的基准。
[0007]在根据本发明实施例的数字交易系统、及用于其的账户信息查询方法中,由于验证节点仅存储最新账户信息、和区块链中的包含有最新交易信息和最新账户指示信息的最新区块,所以验证节点的存储压力不会随着交易量的增加而越来越大;由于验证节点基于其存储的最新账户信息对账户信息查询请求进行响应,而无需基于交易信息来推算账户信息,所以提高了账户信息查询的效率。
【附图说明】
[0008]通过阅读以下参照附图对非限制性实施例所作的详细描述,本发明的其它特征、目的和优点将会变得更明显,其中,相同或相似的附图标记表示相同或相似的特征。
[0009]图1示出了根据本发明实施例的数字交易系统的框图;
[0010]图2示出了用于图1所示的数字交易系统的账户信息查询方法的流程图;
[0011]图3示出了用于图1所示的数字交易系统的区块链的示例结构示意图;以及
[0012]图4A和4B分别示出了图3所示的账户树的内部节点和叶子节点的示例结构图。
【具体实施方式】
[0013]下面将详细描述本发明的各个方面的特征和示例性实施例。在下面的详细描述中,提出了许多具体细节,以便提供对本发明的全面理解。但是,对于本领域技术人员来说很明显的是,本发明可以在不需要这些具体细节中的一些细节的情况下实施。下面对实施例的描述仅仅是为了通过示出本发明的示例来提供对本发明的更好的理解。本发明决不限于下面所提出的任何具体配置和算法,而是在不脱离本发明的精神的前提下覆盖了元素、部件和算法的任何修改、替换和改进。在附图和下面的描述中,没有示出公知的结构和技术,以便避免对本发明造成不必要的模糊。
[0014]鉴于以上所述的一个或多个问题,本发明提出了一种新颖的数字交易系统、及用于其的账户信息查询方法。图1示出了根据本发明实施例的数字交易系统的框图。图2示出了用于图1所示的数字交易系统的账户信息查询方法的流程图。下面,结合附图详细描述根据本发明实施例的数字交易系统、及用于其的账户信息查询方法。
[0015]如图1所示,根据本发明实施例的数字交易系统100包括一个或多个验证节点102-1至102-N(下面统称为验证节点102)、以及一个或多个交易节点104-1至104-M(下面统称为交易节点104),其中N和M均为大于O的整数,N和M可以相等也可以不相等,并且通常情况下N小于M(当然,并不排除N大于或者等于M的情况)。
[0016]这里,基于以下前提进一步描述根据本发明实施例的数字交易系统、及用于其的账户信息查询方法:数字交易系统中已经存在若干账户地址及其相应的账户信息;验证节点102可以利用预定的数据存储结构存储这些账户地址和它们的账户信息;验证节点102可以利用区块链存储全部的交易信息和账户指示信息;随着这些账户地址之间的交易的执行,区块链不断增长;验证节点102每当生成一个最新区块时,基于最新区块中包含的最新交易信息对已有账户信息进行更新以生成最新交易信息,并基于最新账户信息生成最新账户指示信息,其中最新账户指示信息唯一地指示最新账户信息并且被包含在最新区块中。
[0017]在一些实施例中,每个验证节点102可以存储最新账户信息、和包含全部的交易信息和账户指示信息的区块链,也可以仅存储最新账户信息、和区块链中的包含最新交易信息和最新账户指示信息的最新区块;或者,一些验证节点102可以存储最新账户信息、和包含全部的交易信息和账户指示信息的区块链,另一些验证节点102可以仅存储最新账户信息和区块链中的包含最新交易信息和最新账户指示信息的最新区块。验证节点102可以以最新区块为基准,根据共识算法与数字交易系统100中的其他验证节点102之间达成共识。
[0018]在一些实施例中,交易节点104可以向与其有对应关系的、固定的一个或多个验证节点102发送账户信息查询请求,也可以向其信任的任意一个或多个验证节点102发送账户信息查询请求(S卩,执行步骤S202);验证节点102可以基于其存储的最新账户信息对来自交易节点104的账户信息查询请求进行响应(S卩,执行步骤S204)。
[0019]在结合图1和图2描述的数字交易系统、及用于其的账户信息查询方法中,由于验证节点可以基于其存储的最新账户信息对账户信息查询请求进行响应,而无需基于交易信息来推算账户信息,所以可以提高账户信息查询的效率;对于仅存储最新账户信息和区块链中的包含最新交易信息和最新账户指示信息的最新区块的验证节点,其存储压力不会随着交易量的增加而越来越大。
[0020]在实际应用中,随着图1所示的数字交易系统100被越来越多的人使用,可以向该数字交易系统100添加更多的验证节点。新添加的验证节点需要从数字交易系统100中的老验证节点(即,已有的验证节点)同步最新账户信息才能对账户信息查询进行响应。
[0021]在一些实施例中,新添加的验证节点可以从数字交易系统中的任意一个老验证节点同步该老验证节点存储的当前最新账户信息。然而,如果当前最新账户信息包含的数据量较大,则在当前最新账户信息的同步开始至完成的时间段期间会有一个或多个新区块被生成。因此,新添加的验证节点还需要从老验证节点同步在当前最新账户信息的同步开始至完成的时间段期间生成的一个或多个新区块,并利用包含在该一个或多个新区块中的交易信息对当前最新账户信息进行更新以生成最新账户信息。
[0022]在一些实施例中,新添加的验证节点也可以通过以下处理从数字交易系统中的任意一个老验证节点同步最新账户信息:从老验证节点同步该老验证节点存储的当前最新账户信息;判断其自身存储的账户信息与所同步的当前最新账户信息是否一致;以及如果不一致,则重复以上处理,否则将所同步的当前最新账户信息作为最新账户信息。
[0023]在一些实施例中,用于图1所示的数字交易系统的区块链中的每个区块可以包括区块首部、和交易信息两部分,其中区块首部包含唯一地指示前一区块的区块指示信息、本区块的生成时间、唯一地指示本区块包含的交易信息的交易指示信息、以及唯一地指示基于本区块的交易信息进行更新后的账户信息的账户指示信息。
[0024]在一些实施例中,每个区块中的交易信息可以被组织为交易树的形式;每个验证节点102存储的账户信息可以被组织为账户树的形式(S卩,上述的数据存储结构可以为账户树),其中账户树将账户地址作为叶子节点;每个验证节点102可以随着区块链的增长而不断地基于区块链中的最新区块包含的最新交易信息对账户树进行更新,更新后的账户树即为最新账户信息。
[0025]在一些实施例中,考虑到采用哈希树的形式保存信息具有很强的扩展性,只需要更改叶子节点的结构就可以适用于保存其它的信息,交易树和账户树可以被组织为哈希树的形式。
[0026]在一些实施例中,在新添加的验证节点从数字交易系统中的任意一个老验证节点同步完最新账户信息后,该老验证节点会同时向该新添加的验证节点发送最新区块,作为新添加的验证节点后续与数字交易系统中的其他验证节点达成共识的基准。
[0027]图3示出了用于图1所示的数字交易系统的区块链的示例结构示意图。如图3所示,用于图1所示的数字交易系统的区块链中的每个区块包括区块首部、和交易树两部分。
[0028]在图3所示的实施例中,区块首部包括前一块哈希域、时间戳域、交易树哈希域、以及账户树哈希域,其中:前一块哈希域保存前一区块的哈希值(即,唯一地指示前一区块的信息),以保证交易历史不会被改变;时间戳域保存本区块的生成时间,以保证区块的时间有序性;交易树哈希域保存本区块的交易树的根节点哈希值;账户树哈希域保存与本区块对应的账户树的根节点哈希值。
[0029]在图3所示的实施例中,交易树保存包含在本区块中的所有交易信息,并且是由本区块中包含的所有交易信息自底向上构建的一棵哈希树。随着交易树中包含的所有交易信息所表示的交易的执行,验证节点102可以对账户树进行更新,并且可以生成更新后的账户树的根节点哈希值。这里,更新后的账户树即是与本区块对应的账户树。
[0030]在一些实施例中,账户树可以采用K叉树的形态,K的具体数目可根据实际需要指定,比如K = 16;账户树还支持回退功能,将本区块中包含的所有交易信息所表示的交易反向执行一遍,就可以将与本区块对应的账户树回退为与上一区块对应的账户树,这为系统故障恢复提供了可能。
[0031]图4A和4B分别示出了图3所示的账户树的内部节点和叶子节点的示例结构图。下面,分别说明账户树的内部节点和叶子节点的各字段的含义(账户树为K叉树结构)。
[0032]如图4A所示,账户树的内部节点包括以下字段:
[0033 ]节点的哈希值:该节点保存的所有数据的哈希值,采用哈希算法(例如,sha256)生成。例如,可以采用如下哈希算法:哈希(节点的数据库索引+孩子节点存在掩码+节点的快照编号+K个孩子的哈希值)。
[0034]节点的数据库索引:该节点的所有数据被保存在键值(Key-Value)数据库中时所用的索引,由该节点在账户树中的前缀路径表示。由于账户树的每个内部节点最多有K个孩子,因此用log2K比特来表示一层路径。
[0035]孩子节点存在掩码:表示该节点是否有孩子的1g2K比特的2进制数。例如,掩码0000,1000,0100,0000表示该节点的第6个分支和第11个分支有孩子节点(分支从0开始,且右边表示第O分支)。
[0036]节点的快照编号:如果节点的快照编号小于当前账户树的当前快照编号,则表示该节点为账户树快照和当前账户树公用的节点;如果需要改变当前账户树的该节点,则需要复制一个节点,并将所复制的新节点的快照编号修改为当前账户树的当前快照编号。如果节点的快照编号大于当前账户树的当前快照编号,则表示该节点为当前账户树所私有,可以直接改变。节点的快照编号的初始值为O。
[0037]孩子指针:分别指向该节点所拥有的孩子节点的K个指针。将孩子为空的指针赋值成空指针(NULL)。只有孩子节点存在掩码中为I的比特位上有孩子,其他的位所对应的指针均为空指针。
[0038]如图4B所示,账户树的叶子节点包括以下字段:
[0039 ]节点的哈希值:该节点保存的所有数据的哈希值,采用哈希算法(例如,sha256)生成。例如,可以采用如下哈希算法:哈希(节点的数据库索引+孩子节点存在掩码+节点的快照编号+K个孩子的哈希值)。
[0040]节点的数据库索引:该节点的所有数据被保存在键值数据库中时所用的索引,由该节点在账户树中的前缀路径表示。
[0041]孩子节点存在掩码:表示该节点是否有孩子的1g2K比特的2进制数。对于叶子结点而言,其掩码比特位全为O。
[0042]节点的快照编号:如果节点的快照编号小于当前账户树的当前快照编号,则表示该节点为账户树快照和当前账户树公用的节点;如果当前账户树需要改变该节点,则需要复制一个节点,并将所复制的新节点的快照编号修改为当前账户树的当前快照编号。如果节点的快照编号大于当前账户树的当前快照编号,则表示该节点为当前账户树所私有,可以直接改变。节点的快照编号的初始值为O。
[0043]叶子节点全索引:该节点保存的账户地址经过哈希运算得出的结果(S卩,该节点保存的账户地址的哈希值),主要有两个作用:I)作为该节点的序列化数据被保存在键值数据库中时所用的索引;2)在账户树中检索账户信息的时候,最终判断账户地址是否一致的依据。
[0044]序列化数据:该节点保存的具体数据。例如,将一个包含账户地址和诸如账户余额的账户信息类经过例如,Encode函数调用之后就会得到一个字符串,该字符串包含了账户地址和账户余额的信息,该字符串即为序列化数据;将该字符串经过decode函数调用之后,就可以恢复出账户信息类。该序列化数据只在账户信息发生变化时保存,并在账户信息存入数据库之后删除,因此是暂时存储的。
[0045]当采用图4A和4B所示的账户树结构时,数字交易系统中的新添加的验证节点可以通过下面两种方法中的任意一种从数字交易系统中的任意一个老验证节点同步最新账户
?目息O
[0046]这里,假设数字交易系统100包括验证节点A、验证节点B、和验证节点C三个验证节点,其中验证节点A和验证节点B是数字交易系统100中的已有验证节点(即,老验证节点),验证节点C是数字交易系统100中的新验证节点。
[0047]快照+回放法
[0048]验证节点A和验证节点B定时(例如,每12小时一次)创建账户树快照,其中每个验证节点保存两份账户树快照。账户树快照的创建采用树的“写时拷贝”进行,即:对于没有修改操作的树节点,账户树快照和当前账户树公用;对于要修改的树节点,重新复制一个节点并在新复制的节点上做账户树的修改。创建账户树快照后,利用最新创建的账户树快照来替换创建时间较早的账户树快照。针对来自验证节点C的同步请求,向验证节点C同步最新创建的账户树快照。
[0049]验证节点C被添加到数字交易系统100后,会选择一个自己信赖的老验证节点(例如,验证节点Α)去同步账户树。验证节点A在收到同步请求后,对最新创建的账户树快照进行前序遍历,将该账户树快照的叶子节点逐一响应给验证节点C。验证节点A在将最新创建的账户树快照的所有叶子节点都响应给验证节点C后,将创建该账户树快照时对应的区块的序号也发送给验证节点C,这一序号在回放时使用。
[0050]在同步快照的过程中,又有新区块生成,因此在快照同步完成之后,还需要同步新生成的区块。由于新生成的区块数量较少,因此可以采用回放法的方式来进行同步。
[0051]回放法的主要过程是:验证节点C收到一个新生成的区块后,通过比较本地区块的序号(local_seq)和新生成的区块的序号(net_seq)来判断是否需要回放同步。如果local_seq+l<net_seq,则进行同步。由于区块保存有上一个区块的哈希值,因此同步的方向是net_seq-l到local_seq+l,并将同步收到的数据缓存起来。等到所有的区块都缓存完成之后,按照local_seq+l到net_seq-l的顺序确认区块。在确认区块的时候同时更新账户树的
?目息O
[0052]具体地,上述同步过程可以通过以下步骤完成:验证节点C选择验证节点A进行数据同步;验证节点C向验证节点A发送快照同步请求;验证节点A收到快照同步请求后,对最新创建的账户树快照进行前序遍历,将该账户树快照的叶子节点响应给验证节点C;验证节点C每次收到一个响应之后,就将该叶子节点加入到自己的账户树中;验证节点A将所有叶子节点都发送给验证节点C后,将该账户树快照对应的区块序号发送给验证节点C;验证节点C收到账户树快照对应的区块序号后,快照同步完成并进入到回放同步中,等待下一个新生成的区块的到来;验证节点C收到一个新生成的区块后,通过比较账户树快照对应的区块序号和新生成的区块的区块序号确定需要回放同步的序号区间,并发送相应的区块回放同步请求给验证节点Α;验证节点A收到回放同步请求后,将相应区块序号的区块响应给验证节点C;验证节点C收到回放请求响应后,将收到的区块按照区块序号从小到大的顺序确认,并将这些区块中包含的交易信息所表示的交易应用到交易树上,从而对账户树进行更新。
[0053]这里,验证节点C从验证节点A同步完最新账户信息后,验证节点A同时会向验证节点C发送最新区块,作为验证节点C参与后续共识的基准。
[0054]迭代法
[0055]由于账户树为哈希树,通过比较两棵哈希树的根节点哈希值就可以判断两棵哈希树是否一致,因此可以利用这一性质进行账户树的同步,直到两棵账户树一致,也就说明同步完成了。
[0056]具体地,上述同步过程可以通过以下步骤完成:验证节点C选择验证节点A进行数据同步;验证节点C给验证节点A发送一个请求“根节点哈希和N个孩子哈希值”的请求;验证节点A收到验证节点C的请求后,将自己的最新账户树的根节点哈希和N个孩子哈希值响应给验证节点C;验证节点C收到响应后,比较接收到的根节点哈希值是否和自己的当前账户树的根节点哈希值一致,如果一致则同步完成;如果不一致,则比较N个孩子哈希值和当前N个孩子的哈希值,并递归同步哈希值不一样的孩子子树。
[0057]由于在递归同步子树的过程中,该账户树的根节点仍然有可能发生变化,因此需要多轮迭代此过程。该过程结束后,验证节点C的账户树和数字交易系统100中的其他验证节点的账户树达成一致。
[0058]这里,验证节点C从验证节点A同步完最新账户信息后,验证节点A同时会向验证节点C发送最新区块,作为验证节点C参与后续共识的基准。相应地,验证节点102在接收到来自交易节点104的账户信息查询请求后,将账户信息查询请求中包含的账户地址进行哈希,从而获得该账户地址对应的账户树索引值,然后从账户树的根节点开始按照索引值进行账户树遍历,直至遍历到相对应的叶子节点,或者遍历到空节点。如果遍历到叶子节点,贝1J比较叶子节点中保存的全索引和账户地址哈希得到的索引是否一致,如一致则将保存在叶子节点中的账户信息响应给交易节点104,否则返回一个错误信息。
[0059]需要明确的是,本发明并不局限于上文所描述并在图中示出的特定配置和处理。并且,为了简明起见,这里省略了对已知方法技术的详细描述。在上述实施例中,描述和示出了若干具体的步骤作为示例。但是,本发明的方法过程并不限于所描述和示出的具体步骤,本领域的技术人员可以在领会本发明的精神之后,作出各种改变、修改和添加,或者改变步骤之间的顺序。
[0060]以上所述的结构框图中所示的功能块可以实现为硬件、软件、固件或者它们的组合。当以硬件方式实现时,其可以例如是电子电路、专用集成电路(ASIC)、适当的固件、插件、功能卡等等。当以软件方式实现时,本发明的元素是被用于执行所需任务的程序或者代码段。程序或者代码段可以存储在机器可读介质中,或者通过载波中携带的数据信号在传输介质或者通信链路上传送。“机器可读介质”可以包括能够存储或传输信息的任何介质。机器可读介质的例子包括电子电路、半导体存储器设备、R0M、闪存、可擦除ROM(EROM)、软盘、CD-ROM、光盘、硬盘、光纤介质、射频(RF)链路,等等。代码段可以经由诸如因特网、内联网等的计算机网络被下载。
[0061]本发明可以以其他的具体形式实现,而不脱离其精神和本质特征。例如,特定实施例中所描述的算法可以被修改,而系统体系结构并不脱离本发明的基本精神。因此,当前的实施例在所有方面都被看作是示例性的而非限定性的,本发明的范围由所附权利要求而非上述描述定义,并且,落入权利要求的含义和等同物的范围内的全部改变从而都被包括在本发明的范围之中。
【主权项】
1.一种数字交易系统,包括: 验证节点,被配置为存储最新账户信息、和区块链中的包含最新交易信息和最新账户指示信息的最新区块,并基于所述最新账户信息对来自交易节点的账户信息查询请求进行响应,其中,所述最新账户信息是所述验证节点基于所述最新交易信息对已有账户信息进行更新生成的,所述最新账户指示信息是所述验证节点基于所述最新账户信息生成的,所述最新区块是所述验证节点根据共识算法与所述数字交易系统中的其他验证节点之间达成共识的基准;以及 所述交易节点,被配置为向所述验证节点发送所述账户信息查询请求,并接收所述验证节点对于所述账户信息查询请求的响应。2.如权利要求1所述的数字交易系统,其中,所述已有账户信息被组织为账户树的形式,所述最新账户信息是所述验证节点基于所述最新交易信息对所述账户树进行更新生成的。3.如权利要求2所述的数字交易系统,其中,所述账户树为哈希树。4.如权利要求3所述的数字交易系统,其中,所述账户树为K叉树结构,并且所述账户树的任意一个内部节点存储以下字段:该节点保存的所有数据的哈希值、该节点的数据库索弓1、指示该节点是否有孩子节点的孩子节点存在掩码、该节点的快照编号、以及指向该节点的孩子节点的孩子指针。5.如权利要求4所述的数字交易系统,其中,所述账户树的任意一个叶子节点存储以下字段:该节点保存的所有数据的哈希值、该节点的数据库索引、指示该节点是否有孩子节点的孩子节点存在掩码、该节点的快照编号、该节点保存的账户地址的哈希值、以及该节点保存的序列化数据。6.如权利要求1所述的数字交易系统,其中,当所述验证节点作为新验证节点被添加到所述数字交易系统中时,所述验证节点从所述数字交易系统中的任意一个老验证节点同步所述老验证节点存储的当前最新账户信息。7.如权利要求6所述的数字交易系统,其中,所述验证节点还从所述老验证节点同步在所述当前最新账户信息的同步开始至完成的时间段期间生成的一个或多个新区块,并利用包含在所述一个或多个新区块中的交易信息对所述当前最新账户信息进行更新以生成所述最新账户信息。8.如权利要求1所述的数字交易系统,其中,当所述验证节点作为新验证节点被添加到所述数字交易系统中时,所述验证节点通过以下处理从所述数字交易系统中的任意一个老验证节点同步所述最新账户信息: 从所述老验证节点同步所述老验证节点存储的当前最新账户信息; 判断所述验证节点自身存储的账户信息与所述当前最新账户信息是否一致;以及 如果不一致,则重复以上处理,否则将所述当前最新账户信息作为所述最新账户信息。9.如权利要求1所述的数字交易系统,其中,所述验证节点还被配置为利用所述区块链存储全部的交易信息和账户指示信息。10.—种用于数字交易系统的账户信息查询方法,该数字交易系统包括验证节点和交易节点,该账户信息查询方法包括: 所述交易节点向所述验证节点发送账户信息查询请求; 所述验证节点基于其存储的最新账户信息对所述账户信息查询请求进行响应,其中 所述验证节点还存储有区块链中的包含最新交易信息和最新账户指示信息的最新区块,所述最新账户信息是所述验证节点基于所述最新交易信息对已有账户信息进行更新生成的,所述最新账户指示信息是所述验证节点基于所述最新账户信息生成的,所述最新区块是所述验证节点根据共识算法与所述数字交易系统中的其他验证节点之间达成共识的基准。11.如权利要求10所述的账户信息查询方法,其中,所述已有账户信息被组织为账户树的形式,所述最新账户信息是所述验证节点基于所述最新交易信息对所述账户树进行更新生成的。12.如权利要求10所述的账户信息查询方法,其中,所述账户树为哈希树。13.如权利要求12所述的账户信息查询方法,其中,所述账户树为K叉树结构,并且所述账户树的任意一个内部节点存储以下字段:该节点保存的所有数据的哈希值、该节点的数据库索引、指示该节点是否有孩子节点的孩子节点存在掩码、该节点的快照编号、以及指向该节点的孩子节点的孩子指针。14.如权利要求13所述的账户信息查询方法,其中,所述账户树的任意一个叶子节点存储以下字段:该节点保存的所有数据的哈希值、该节点的数据库索引、指示该节点是否有孩子节点的孩子节点存在掩码、该节点的快照编号、该节点保存的账户地址的哈希值、以及该节点保存的序列化数据。15.如权利要求10所述的账户信息查询方法,其中,当所述验证节点作为新验证节点被添加到所述数字交易系统中时,所述账户信息查询方法还包括: 所述验证节点从所述数字交易系统中的任意一个老验证节点同步所述老验证节点存储的当前最新账户信息。16.如权利要求15所述的账户信息查询方法,还包括: 所述验证节点从所述老验证节点同步在所述当前最新账户信息的同步开始至完成的时间段期间生成的一个或多个新区块,并利用包含在所述一个或多个新区块中的交易信息对所述当前最新账户信息进行更新以生成所述最新账户信息。17.如权利要求10所述的账户信息查询方法,其中,当所述验证节点作为新验证节点被添加到所述数字交易系统中时,所述账户信息查询方法还包括: 所述验证节点从所述数字交易系统中的任意一个老验证节点同步所述老验证节点存储的当前最新账户信息; 所述验证节点判断其自身存储的账户信息与所述当前最新账户信息是否一致;以及 如果不一致,则所述验证节点重复以上处理,否则所述验证节点将所述当前最新账户信息作为所述最新账户信息。18.如权利要求10所述的账户信息查询方法,其中,所述验证节点还利用所述区块链存储全部的交易信息和账户指示信息。
【文档编号】G06F17/30GK106055597SQ201610347324
【公开日】2016年10月26日
【申请日】2016年5月24日
【发明人】蒋海, 张建军, 翟海滨, 王璟, 赵正涌, 胡楠, 乔肖瑞
【申请人】布比(北京)网络技术有限公司
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1