CN109791542B - 查询优化的分布式分类账系统 - Google Patents

查询优化的分布式分类账系统 Download PDF

Info

Publication number
CN109791542B
CN109791542B CN201780060100.5A CN201780060100A CN109791542B CN 109791542 B CN109791542 B CN 109791542B CN 201780060100 A CN201780060100 A CN 201780060100A CN 109791542 B CN109791542 B CN 109791542B
Authority
CN
China
Prior art keywords
index
snapshot
transaction data
attribute
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.)
Active
Application number
CN201780060100.5A
Other languages
English (en)
Other versions
CN109791542A (zh
Inventor
N.M.史密斯
V.J.齐默
R.普尔纳钱德兰
C.科钦
I.G.马蒂克
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
McAfee LLC
Original Assignee
McAfee LLC
Priority date (The priority date 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 date listed.)
Filing date
Publication date
Application filed by McAfee LLC filed Critical McAfee LLC
Publication of CN109791542A publication Critical patent/CN109791542A/zh
Application granted granted Critical
Publication of CN109791542B publication Critical patent/CN109791542B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/07Responding to the occurrence of a fault, e.g. fault tolerance
    • G06F11/14Error detection or correction of the data by redundancy in operation
    • G06F11/1402Saving, restoring, recovering or retrying
    • G06F11/1474Saving, restoring, recovering or retrying in transactions
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L9/00Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
    • H04L9/32Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols including means for verifying the identity or authority of a user of the system or for message authentication, e.g. authorization, entity authentication, data integrity or data verification, non-repudiation, key authentication or verification of credentials
    • H04L9/3236Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols including means for verifying the identity or authority of a user of the system or for message authentication, e.g. authorization, entity authentication, data integrity or data verification, non-repudiation, key authentication or verification of credentials using cryptographic hash functions
    • H04L9/3239Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols including means for verifying the identity or authority of a user of the system or for message authentication, e.g. authorization, entity authentication, data integrity or data verification, non-repudiation, key authentication or verification of credentials using cryptographic hash functions involving non-keyed hash functions, e.g. modification detection codes [MDCs], MD5, SHA or RIPEMD
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/07Responding to the occurrence of a fault, e.g. fault tolerance
    • G06F11/14Error detection or correction of the data by redundancy in operation
    • G06F11/1402Saving, restoring, recovering or retrying
    • G06F11/1446Point-in-time backing up or restoration of persistent data
    • G06F11/1448Management of the data involved in backup or backup restore
    • G06F11/1451Management of the data involved in backup or backup restore by selection of backup contents
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/07Responding to the occurrence of a fault, e.g. fault tolerance
    • G06F11/14Error detection or correction of the data by redundancy in operation
    • G06F11/1402Saving, restoring, recovering or retrying
    • G06F11/1446Point-in-time backing up or restoration of persistent data
    • G06F11/1458Management of the backup or restore process
    • G06F11/1464Management of the backup or restore process for networked environments
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/10File systems; File servers
    • G06F16/11File system administration, e.g. details of archiving or snapshots
    • G06F16/128Details of file system snapshots on the file-level, e.g. snapshot creation, administration, deletion
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/20Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
    • G06F16/22Indexing; Data structures therefor; Storage structures
    • G06F16/2228Indexing structures
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/20Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
    • G06F16/22Indexing; Data structures therefor; Storage structures
    • G06F16/2228Indexing structures
    • G06F16/2255Hash tables
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/20Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
    • G06F16/23Updating
    • G06F16/2365Ensuring data consistency and integrity
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/20Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
    • G06F16/24Querying
    • G06F16/245Query processing
    • G06F16/2455Query execution
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06QINFORMATION 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/00Payment architectures, schemes or protocols
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L9/00Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
    • H04L9/50Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols using hash chains, e.g. blockchains or hash trees
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06QINFORMATION 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
    • G06Q2220/00Business processing using cryptography

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • Data Mining & Analysis (AREA)
  • Databases & Information Systems (AREA)
  • Computer Security & Cryptography (AREA)
  • Software Systems (AREA)
  • Quality & Reliability (AREA)
  • Business, Economics & Management (AREA)
  • Computational Linguistics (AREA)
  • General Business, Economics & Management (AREA)
  • Strategic Management (AREA)
  • Accounting & Taxation (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Signal Processing (AREA)
  • Information Retrieval, Db Structures And Fs Structures Therefor (AREA)

Abstract

本文公开了用于高效地创建和更新查询优化的分布式分类账的分布式分类账系统和方法。特别地,本公开引入了用于通过使用数据的快照并将新快照表和索引附加到先前的快照表和索引来在将新块添加到分布式分类账时高效地更新索引的方法和装置。

Description

查询优化的分布式分类账系统
相关申请的交叉引用
本申请要求2016年9月28日提交的名称为“QUERY OPTIMIZED DISTRIBUTEDLEDGER SYSTEM”的美国非临时专利申请系列号No.15/279,051的优先权,其全部内容通过引用合并于此。
技术领域
本公开一般地涉及分布式分类账(ledger)系统,并且特别地涉及用于高效地创建和更新查询优化的分布式分类账的方法和装置。
背景技术
分布式分类账(DL)是指用于记录一系列事务并且用于确保那些事务的完整性的非集中式数据库系统。分布式分类账由节点的对等网络维护,其中每个节点都具有分布式分类账的副本并具有相同的权力(authority)以添加到其。事物的系列,可以是任何种类的数据。一旦添加,不能在未检测到的情况下更改或删除数据。这提供了数据的固有可信度。为了有用,必须将数据索引为可搜索的数据库。索引需要大量的存储空间以及停机时间,这阻止每个节点维护单独的搜索索引,但是当依赖另一个节点来维护可搜索的数据库时,分布式分类账中固有的数据完整性可能丢失。
附图说明
为了提供对本公开及其特征和优势的更完整的理解,结合附图参考以下描述,其中相同的附图标记表示相同的部分,其中:
图1是根据各种实施例的查询优化的分布式分类账系统的示例实施例的简化框图。
图2A是示出了根据各种实施例的用于针对事务数据的快照对分布式分类账索引的方法的简化框图。
图2B是示出了三元组索引的简化图。
图3是示出了根据各种实施例的四个事务的集合的Merkle根计算(rootcalculation)的简化框图。
图4是示出了根据各种实施例的核实来自分布式分类账的事务数据的快照的方法的简化框图。
图5是示出了根据各种实施例的用于创建和更新查询优化的分布式分类账的方法的简化框图。
图6A-6C是示出了根据各种实施例的用于创建和更新查询优化的分布式分类账的方法的简化流程图。
附图的图不一定按比例绘制,因为在不脱离本公开的范围的情况下,它们的尺寸可以显著变化。
具体实施方式
本文公开了用于高效地创建和更新查询优化的分布式分类账的分布式分类账系统和方法。分布式分类账(通常称为区块链,超级分类账(hyperledger)或分类账,并且在本文中可互换使用)是分布式数据库,其维护抵抗篡改和修订的数据记录的不断增长列表。特别地,如下面更详细描述的那样,本公开引入了用于通过使用数据的快照并将新的快照表和索引附加到先前的快照表和索引来在将新块添加到分布式分类账时高效地更新索引的方法和装置。
分布式分类账将事务数据记录在“块”中。块随时间被组织成线性序列(即,分布式分类账,分类账或区块链)。新的事务不断进入新的区块中,新的区块被添加到链的末端。每个块包括时间戳和链接信息(通常是散列值),链接信息将当前块链接到之前的块。链接信息虑及核实分布式分类账的完整性。
使用分布式散列算法对分布式分类账事务进行完整性保护,该分布式散列算法要求每个事务处理器(例如,节点或矿机(miner))就分类账中的下一个块达成一致(agreeto)。通过多个节点的共识(consensus)来实现完整性,因为每个节点通常维护分类账的副本,因此多个副本可用于交叉引用和核实事务数据的准确性。如果大多数节点就分类账的内容达成一致,那么那些被一致同意的内容就成为分类账的“真相”;不同意的节点将接受大多数节点的真相。完整性是可证明的,因为攻击者将不得不危害大多数节点并修改其分类账的副本,这将是极端困难的并且很可能是不可能的。因此,即使正在规则地添加块,每个添加的块中的事务数据也是可靠且准确的。
当前的分布式分类账系统主要被优化用于清除和同步事务(即,计算和确认散列值)。对事务数据进行索引和查询需要大量资源,包括处理能力,存储空间和停机时间,这只随着分类账继续添加块而增加。分类账可以在一年内生成几十亿字节(gigabyte)(GB)的数据。例如,比特币,众所周知的区块链,每10分钟生成一个新的块。每个比特币块通常包含大约1MB的事务数据,因此每天生成大约144MB的数据,这相当于每年添加52.5GB。
分布式分类账系统可以是公共的,私有的和/或基于订户的。基于订阅的分布式分类账与订阅(并且通常支付)以接收对分类账的访问的节点共享数据,通常用于事务数据的通用用途,包括分析和决策支持。
在以下详细描述中,参考形成其一部分的附图,并且其中通过图示的方式示出了可以实践的实施例。应当理解,在不脱离本公开的范围的情况下,可以利用其他实施例并且可以进行结构或逻辑改变。因此,以下详细描述不应被视为具有限制意义。
可以以最有助于理解所要求保护的主题的方式将各种操作依次描述为多个离散动作或操作。然而,描述的顺序不应被解释为暗示这些操作必须依赖于顺序。特别是,这些操作可能不按呈现顺序执行。所描述的操作可以以与所描述的实施例不同的顺序执行。可以执行各种附加操作,和/或在另外的实施例中可以省略所描述的操作。
本说明书使用短语“在一个实施例中”或“在实施例中”,其中每个都可指代相同或不同实施例中的一个或多个。此外,关于本公开的实施例使用的术语“包括”,“包含”,“具有”以及诸如此类的术语是同义的。附图不一定按比例绘制。尽管本文已说明和描述了特定实施例,但本领域的普通技术人员将理解,打算实现相同目的的任何布置可替代所示出的特定实施例。许多改编对于本领域普通技术人员来说是清楚的。因此,本申请旨在涵盖任何改编或变化。
图1是查询优化的分布式分类账系统的示例实施例的简化框图。分布式分类账系统100可以包括一个或多个事务节点102,一个或多个数据节点104,以及可选地,经由网络118彼此通信的一个或多个应用程序节点106。在一些实施例中,分布式分类账系统100可以包括数百或数千个节点102,104,106。
事务节点102计算散列值以清除事务,公布块,确认已共布块的散列值,以及同步分类账中的事务。事务节点102可以包括一个或多个处理器108,用于计算和确认散列值,核实事务,向网络中的其他节点广播块,以及执行其他操作。例如,比特币和以太坊(ethereum)是公共分布式分类账,其将工作计算的证明用于矿机的事务共识。一个或多个处理器108可以执行与节点相关联的任何类型的指令,以实现本说明书中详述的操作。一个或多个处理器可以包括但不限于中央处理单元(CPU),数字信号处理器(DSP),精简指令集计算机(RISC),复杂指令集计算机(CISC),微处理器,微控制器,现场可编程门阵列(FPGA)或其任何组合。可以适当地以硬件,软件,固件或其组合来实现处理器。处理器的软件或固件实现可包括以任何合适的编程语言编写的计算机可执行或机器可执行指令,以执行所描述的各种功能。处理器的硬件实现可以被配置为执行计算机可执行或机器可执行指令以执行所描述的各种功能。节点可以包括芯片组(未示出),用于控制一个或多个处理器与节点的一个或多个其他部件之间的通信。处理器还可以包括一个或多个专用集成电路(ASIC)或专用标准产品(ASSP),用于处理特定的数据处理功能或任务。
事务节点102可以包括用于存储信息和数据的一个或多个存储器110,信息和数据具体地是分类账112。一个或多个存储器110可以包括一个或多个易失性和/或非易失性存储器设备,例如,但是不限于磁存储设备,只读存储器(ROM),随机存取存储器(RAM),动态RAM(DRAM),静态RAM(SRAM),同步动态RAM(SDRAM),双倍数据速率(DDR)SDRAM(DDR-SDRAM),RAM-总线DRAM(RDRAM),闪存设备,电可擦除可编程只读存储器(EEPROM),非易失性RAM(NVRAM),通用串行总线(USB)可移动存储器或其组合。存储器110可以存储可在(一个或多个)处理器上加载和执行的程序指令以及在执行这些程序期间生成或接收的数据。存储器110可以在其上存储与节点的其他部件相关联的软件模块和/或指令。存储器110可以包括一个或多个操作系统(O/S)应用软件。在一些实施例中,事务节点102可以包括处理器108和存储器110,用于创建主表并对分类账索引。在一些实施例中,事务节点102可以可选地包括主表和数据索引114,和/或查询处理器116(未示出)。
数据节点104接收分类账中的已公布块,核实事务数据并将事务数据索引到可搜索的数据库中以使能对数据的查询处理。数据节点104,120可以包括一个或多个处理器108,用于核实散列值,构建主表,创建索引以及执行其他操作。数据节点104可以包括用于存储分类账112,主表和数据索引114的一个或多个存储器110。在一些实施例中,数据节点104可以包括用于对可搜索数据库执行查询的查询处理器116(未示出),如下面所描述的那样。
应用节点106可以包括一个或多个处理器108和一个或多个存储器110,用于进行查询请求,或者可以包括查询处理器116,用于对索引的事务数据执行查询。在一些实施例中,应用节点106可以包括处理器108和存储器110,用于维护分类账112的副本以及用于创建主表和索引分类账114(未示出)。
网络118可以包括局域网(LAN),广域网(WAN),或LAN或WAN的组合,例如因特网。所有节点102,104,106可以包括用于经由网络118彼此通信的通信电路。
分布式分类账是需要重构(编索引)以便高效地检索数据的事务数据的数据库。索引是一种数据结构,其改进了数据库表上数据检索操作的速度,但需要停机时间来创建和附加的存储空间以维护索引数据结构。索引用于快速定位数据,而不必在每次访问数据库表时搜索数据库表中的每一行。索引是来自表的选择数据列的副本,可以非常高效地对其搜索,其还包括到复制了其的数据的完整行的引用指针或直接链接。
可以实现若干类型的索引策略,包括但不限于二进制树方法(B-Trees),散列(非加密)树,分布式散列表(DHT),其除其他之外使用加密散列,Bloom过滤器以及稀疏索引等。
当数据被添加到数据库或分布式分类账系统中时,随着事务数据的块被添加到分类账,必须相应地更新稀疏(或主)表和索引。分布式分类账的顺序性质(即,总是在分类账的末尾添加块)虑及快照中对数据索引。快照是已添加到分类账并需要添加到可搜索数据库(即被索引的)的数据事务的集合。在一些实施例中,快照是分类账中的单个块。在一些实施例中,快照是分类账中的多个块。在一些实施例中,快照可以包括分类账中的非顺序块。
图2A是示出了根据各种实施例的用于针对事务数据的快照创建查询优化的分布式分类账的方法的简化框图。分类账202在事务节点102清除时添加块204,206,208,并通过计算散列值来核实事务数据214,230。当索引快照数据时,可以通过从事务数据的块复制属性来创建稀疏表216。如这里所使用的,稀疏表和主表可以互换使用。如图2A中所示,快照S1210包括块204和206。快照S1 220的数据事务属性被复制到稀疏表218并根据属性A1 224,属性A2 226和属性A3 228被索引,如实线所指示的那样。如图2A中所示,当另一个块208被添加到分类账时,可以创建另一个快照,快照S2 212。快照S2 212的数据事务属性232可以被复制到快照S2稀疏表222并且根据属性A1 234,属性A2 236和属性A3 238被索引为单独的索引,如虚线所指示的那样。虚线指示基于快照S2事务数据构建新的稀疏表和新索引。由于分类账按顺序添加块,因此也可以按顺序构造稀疏表和索引。在一些实施例中,可以对为每个快照创建的单独索引执行查询处理,使得对于属性A1,查询处理可以涉及查询索引A1_S1和索引A1_S2等。在一些实施例中,可以对组合索引执行查询处理,其中可以组合为每个快照的属性创建的单独索引,以为所有快照的属性创建单个索引,即使添加了快照也是如此。在一些实施例中,对先前的快照重新索引可能不是必须的,因为数据事务是顺序添加的,所以为新快照创建的索引可以连结或附加到先前快照的索引。附加表和索引可以最小化索引分类账202所需的时间,因为需要仅为新快照数据事务创建表和索引。例如,如图2A中所示,快照S1的稀疏表和索引可以与快照S2的稀疏表和索引连结,以为分类账202创建更新的稀疏表和属性索引。在另一个示例中,可以为快照S1创建稀疏表A和索引A1,并且可以为快照S2创建稀疏表A'和索引A1'。稀疏表A和A'可以组合,并且组合的稀疏表可以被重新分配稀疏表A的符号。新组合的稀疏表A,然后可以与由下一个快照(即,快照S3)创建的稀疏表A'组合。类似地,可以组合索引A1和A1',并且可以为组合的索引重新分配索引A1的符号。新组合的索引A1可以与下一个快照的索引A1'组合。组合表和索引,然后重新分配符号的该序列可以随着数据块被添加到分类账继续。
索引创建可以最少由包含属性和到稀疏表中的引用指针的二元组索引组成。优选地,创建包括散列值的三元组索引,如在图2B中示出。在图2B中,索引记录包括属性数据240,到事务的引用指针242和用于事务的散列值244。属性数据包括标识了事务数据的不同属性,其被标识为A1,A2等。属性An指的是n个属性。散列值244提供与属性相关联的事务数据的高效核实。该属性的所有实例都已编制索引。可以通过将新属性(即,仅在新快照中找到的属性)附加到现有索引条目来对索引进行快照更新。必须坚持严格的排序,使得最旧的属性条目出现在索引的开始并且最新或最近的属性条目出现在索引的末尾。由于索引中的相对位置是基于属性何时出现的,因此索引可用于按发生顺序快速地选择涉及属性的事务。
例如,当为快照S1 210创建索引时,针对属性扫描块204,206,其可以包括所有属性或感兴趣的属性的子集。可以创建索引以引用包含索引中的属性和位置(例如,引用指针)的所有数据事务。索引可以引用分类账中的块和边界(bounding)事务,以便在分类账中轻松添加书签。记录可以包括用于事务数据的简化核实的事务散列值。稀疏表结构218被高效地更新。当拍摄快照S2 212时,可以生成包含属性232的事务数据并将其插入222到备用(spare)表216中,而不重构来自快照S1的先前记录或使其无效。由于在索引更新期间仅扫描新记录以便包括,因此最小化合并快照S2所需的时间。
如上所述,分类账事务数据可以被划分为快照。每个快照可以合并到为查询和数据分析而优化的数据库中,同时通过计算每个快照的Merkle根来维护数据完整性。Merkle树,通常称为二进制散列树,是用于高效地总结和核实数据的大集合的完整性的数据结构。Merkle树是具有分支数据结构并包含加密散列的二叉树。Merkle树用在分布式分类账中以通过产生事务的整个集合的整体数字指纹来总结块中的所有事务。Merkle树是通过递归散列节点的对直到只有一个散列,这被称为Merkle根,而构造的。
图3是示出了针对四个事务的集合的Merkle根计算的简化框图。Merkle树是自下而上构建的,其中事务是叶子并且全部散列是根。在图3中,示出了四个事务:A 304,B 306,C 314和D 316的全部散列值302。事务数据不存储在Merkle树中,而是对数据进行散列并且将得到的散列作为散列A 308,散列B 310,散列C 318和散列D 320存储在每个叶节点中。通过连结两个散列并将它们一起散列而在父节点(例如,分别为312和322)中总结叶节点的连续对(例如,308和310,以及318和320)。两个父节点312和322的散列被连结并散列在一起以创建单个散列节点302,其是Merkle根。如果块由事务A,B,C和D组成,则单个散列值302存储在块头中并总结所有四个事务中的所有数据。
图4是示出了具有Merkle树构造的分布式分类账系统的简化框图。在图4中,分类账402在其链中具有六个块:Block0-Block5。Block0-Block3被划分为快照S1 404。Block4-Block5被划分为快照S2 406。快照S1 408的数据事务和快照S2 410的数据事务包括散列值。每个块具有基于块422内的每个事务的散列值的块散列值。当快照准备好被索引时,找到新的Merkle根并且将其与先前的根进行比较以确定快照中的哪些块应该经历完整性核实。在一些实施例中,可以在为新快照构建稀疏表之前检查Merkle树。在一些实施例中,可以在为新快照构建稀疏表之后检查Merkle树以核实它与分布式分类账匹配。在一些实施例中,可以在构建稀疏表之前和之后核实Merkle树。
可以通过将块的对(即,Block0-Block1和Block2-Block3)散列到中间散列块412,414中直到找到416的根散列块来产生用于快照S1 404的Merkle根。可以通过将散列块的对(即,Block4-Block5)计算为中间具有块418来为快照S2 420构造新的Merkle根,其中快照S1 416中的先前的Merkle根对快照S2 420中的结束散列块做出贡献。当核实事务时在第二快照中时,只需要计算第一快照的Merkle根与第二快照的Merkle根之间的德尔塔(delta)来核实表中的数据与分布式分类账中的数据相同。当准备好对新块进行索引时,找到新的Merkle根并将其与之前的根进行比较,以快速评估哪些块应经历完整性核实。仅先前的快照根SNR和当前的Merkle根(SNR')之间的德尔塔被完整性核实,导致更高效的快照集成处理。
可以使用Merkle树来核实分类账中的任何事务的完整性。如果快照包括块或顺序块,则快照Merkle根应与分类账生成的Merkle根匹配。如果快照包括非顺序块,则快照Merkle根可能与分类账生成的根不同。
同样地,可以使用Merkle树来核实索引的事务。这确保了来自分类账的索引数据的数据完整性,即使在由另一个,例如数据节点,执行时。简化的Merkle根构造使数据核实更快并且更容易。如果数据完整性有问题,则附加应用节点可以执行核实以确认或拒绝其完整性,或者应用节点可以获得分类账的副本并自己构造索引。
图5是示出了根据各种实施例的用于构造查询优化的分类账的示例性方法的简化框图。如图所示,分类账502具有五个块Block0-Block4,并且被划分成三个快照504,506,508。快照S1 504包含Block0-Block1。快照S2 506包含Block2。针对属性扫描快照S1 504。基于从快照S1 504标识的属性A1构造主表M1 510和索引A1_S1 512。针对属性扫描快照S2506。主表M2 514和索引A1_S2516基于从快照S2 506标识的属性构造。索引A1_S1 512和索引A1_S2 516可表示单个属性索引,例如属性A1,或者可表示多个索引,每个索引对单个属性A1,A2等编索引。主表M1 510和主表M2 514通过连结表来组合以创建主表M1_M2 518,其包含来自快照S1 504和快照S2 506的数据。同样,索引A1_S1 512和索引A1_S2 516连结或附加以创建索引A1_S1S2 520。利用来自快照S2的数据更新主表和索引所需的时间大大减少,因为不需要更新来自快照S1的数据。
快照S3 508包含Block3-Block4。针对属性扫描快照S3 508。主表M3 522和索引A1_S3 524基于从快照S3 508标识的属性构造。索引A1_S3 524可表示单个属性索引或可表示多个属性索引。通过连结表来组合先前连结的主表M1_M2 520和主表M3 522以创建主表M1_M2_M3 526,其包含来自快照S1 504,快照S2 506和快照S3 508的数据。连结索引A1_S1S2 520和索引A1_S3 524以创建索引A1_S1S2S3 528。由于仅更新来自快照S3的数据,因此大大减少了使用来自快照S3的数据更新主表和索引所需的时间。通过索引快照中的块并连结表和索引,即使分类账大小增加,也可以最小化索引的时间和处理能力。
图6A-6C是创建查询优化的分布式分类账的说明性方法的流程图。该方法可以由具有能力的分布式分类账系统中的任何节点(例如,事务节点102,数据节点104和/或应用节点106)来执行。尽管以特定顺序示出了操作并且每次操作描绘一次,但是这些操作可以适当地重复或以不同顺序执行。另外,视情况而定,可以省略各种操作。
在图6A中,在602处,接收事务数据的快照S1。快照可以是分类账中的一个或多个块。在一些实施例中,索引过程可以确定快照。在604处,扫描第一快照以标识属性。属性可以包括快照中标识的所有属性,或者可以仅包括那些感兴趣的属性。在606处,优选地,通过使用Merkle树来核实属性的事务数据。可以在块级核实事务数据,或者可以在事务级核实事务数据。在608处,将属性的事务数据复制到第一主表中。如果在事务级别核实,则可以单独核实每个事务,然后将其复制到主表,或者可以首先核实所有事务并且然后将所有事务一起复制到主表M1。在610处,为属性构造第一索引,在这种情况下,是属性A1。在612处,向查询处理器发送通知,用于快照S1,属性A1的第一索引是完整的并且可用于查询。如果标识附加的属性,则可以针对每个附加属性重复操作610和612。
查询可以关于事务数据的任何属性。例如,假设事务数据包括汽车销售,作为汽车经销商的应用节点可以请求关于在八月份期间在特定城市中销售的电动汽车类型的数量的查询。查询处理器将确定执行查询和相应地执行查询的最高效的方式。
当已经构造索引时,用信号通知查询处理器索引可供使用。信令或公布通常采用订阅系统的形式,其中信号被广播并且多个查询处理器订阅具有感兴趣的索引的节点(例如,完成构建首先运行查询所需的索引的节点)。一旦公布通知,索引就可用于处理查询。查询可以由节点处理,或者可以由对索引数据库具有访问的另一个节点处理。查询处理和分析工具可以使用分布式查询处理开始提交使用完整索引集合的查询,即使节点在任何给定的采样间隔期间加入或离开,也可以路由到可用索引。执行查询后,结果返回给请求者。
在图6B中,在620处,接收事务数据的快照S2。在622处,扫描第二快照以标识属性,并且第二快照可以包括与在第一快照中标识的属性不同的新属性。在624处,优选地,通过计算Merkle根来核实属性的事务数据。如上所述,可以在块级核实事务数据,或者可以在事务级核实事务数据。在626处,将属性的事务数据复制到第二主表(M2)中。在628处,为属性构造第二索引,在这种情况下,是属性A1。在630处,发送通知,用于快照2,属性A1的第二索引是完整的且可用于查询。如果标识附加的属性,则可以针对每个附加属性重复操作628和630。
在图6C中,来自第一和第二快照的主表和索引被连结以创建新基线,用于计算Merkle根(如上面在图4中所描述的)以及用于建立将没有利用数据事务的下一个快照索引的先前索引的事务。在650处,连结主表M1和第二主表(M2)。在652处,连结第一索引(A1_S1)和第二索引(A1_S2)。针对每个索引的属性重复连结第一索引和第二索引。在654处,原始主表(即,第一主表)被包含第一和第二快照的组合属性的连结表替换。在一些实施例中,可以附加表以最小化读-复制-写操作。在656处,原始索引(即,第一索引)由包含用于第一和第二快照两者的数据结构的连结索引替换。
本文已经关于单个节点描述了分布式分类账的查询优化的索引,然而,应当理解,可以使用多个节点来更高效地并且连续地索引分类账。如前所述,分类账可能有数千个节点。多个数据节点可以使用分布式和/或并发性来共享索引分类账数据事务,以最小化查询处理器和分析工具的停机时间。并发性涉及使用多个执行线程,其中每个节点构建不同的属性索引。分布式涉及分配每个数据节点以在不同的索引处开始索引,使得每个节点并行地索引不同的属性,并且当作为整体时,创建当前的完整索引集合。在一些实施例中,在存在比属性更多的节点的情况下,可以分配多于一个节点以开始索引相同属性。每个节点可以在本地存储其更新的分配的开始属性索引,或者可以将其存储到中央存储位置。索引分类账是一个连续运行的过程。当更新分配的开始属性索引时,节点移动以索引下一个分配的属性并继续直到更新所有属性,并且通常再次开始。当使用分布式开始索引创建和/或更新时,可以使用传闻(gossip)算法为每个节点分配不同的开始位置以进行索引并跟踪哪个节点具有属性的最当前(current)索引,这对于分布式查询是必需的;参见,例如,http://web.mit.edu/devavrat/www/GossipBook.pdf。例如,传闻方法可以将开始向量用于分布式索引创建或更新。开始向量(SV)计算使构造稀疏表的每个节点能够标识均匀分布的索引开始点,使得每个索引创建或更新中的至少一个将是完整的并以最短的时间量(平均)准备好查询处理请求。
分布式分类账系统作为用于各种技术的分布式计算的部件变得流行,各种技术的分布式计算的部件例如分布式金融事务清算和物联网(IoT)分析应用。IoT分析应用使用分布式分类账数据来更好地通知分析引擎用于决策支持,并跨多个IoT网络进行同步。快速访问分类账系统中的数据对于企业安全监视尤其有用。电子邮件过滤,深度分组检查,NIPS,网关和企业监视可以在异构安全监视节点之间传输消息时多次检查消息,直到最终消息可能退出企业边界。查询优化的分布式分类账系统可以帮助去重(de-duplication),其中找到发起分类账条目的事务可以消除事务节点和/或应用节点对数据块的不必要的复制和存储以及优化查询性能。由于查询优化的分布式分类账系统维护数据完整性并且可以核实完整性,因此取证调查员(forensicsinvestigator)可以在采取有影响的动作之前确信查询结果。
查询优化的分布式分类账系统可以特别适用于符合SAS70的报告的服务组织合规性审计员。参见https://en.wikipedia.org/wiki/Statement_on_Auditing_Standards_ No._70:_Service_Organizations。查询优化的分布式分类账遵循顺序索引,其中最旧的事务条目位于索引的开始,最近的事务条目位于索引的末尾。为所选属性创建索引,并按顺序索引所选属性的所有实例(事务)。所选属性可以是对系统的尝试的黑客攻击,或者属性除其他之外可以用于合规性,审计,取证,分析和异常检测等。基于索引中的相对位置,索引可用于快速标识涉及按照发生序列的(一个或多个)所选属性的事务。这可能对合规审计员(例如SAS70)和其他利益相关者寻求核实涉及(一个或多个)所选属性的事件链特别有用。使用查询优化的分布式分类账,数据可用于相当快速地查询和分析,使得可以更快地发现所选属性中的趋势。在一些实施例中,可以将每个快照的所选属性数据推送或自动发送到SAS70核实器,以在任何给定时间段内在给定网络内通知关于节点的合规的趋势。例如,对于SAS70合规性,可能要求管理员维护应用于安全策略,监视和其他操作尽职调查(duediligence)活动的合规性测试的日志。日志可以作为数据事务提交给分布式分类账,这可以使审计员能够使用分类账作为日志存档系统来审核(review)日志条目。
术语“机器可读存储介质”可以包括能够存储,编码或携带用于由节点执行的指令并且使得节点执行本公开的任何一种或多种技术或者能够存储,编码或携带由此类指令使用的或与此类指令相关联的数据结构的任何介质。非限制性机器可读介质示例可以包括固态存储器,以及光学和磁性介质。因此,机器可读介质不是暂时传播信号。机器可读介质的具体示例可以包括非易失性存储器,诸如半导体存储器设备(例如,电可编程只读存储器(EPROM),电可擦除可编程只读存储器(EEPROM))和闪存设备;磁盘,如内部硬盘和可移动盘;磁光盘;随机存取存储器(RAM);固态驱动器(SSD);以及CD-ROM和DVD-ROM盘。
还可以使用传输介质经由网络接口设备利用多个传输协议(例如,帧中继,因特网协议(IP),传输控制协议(TCP),用户数据报协议(UDP),超文本传输协议(HTTP)等)中的任何一个在通信网络上传输或接收指令。示例通信网络除其他之外可以包括局域网(LAN),广域网(WAN),分组数据网络(例如,因特网),移动电话网络(例如,蜂窝网络),普通老式电话(POTS)网络和无线数据网络(例如,电气和电子工程师协会(IEEE)802.11标准系列,称为IEEE802.16标准系列,称为/>),IEEE 802.15.4标准系列,低能量技术,/>点对点(P2P)网络等。这里已经使用了计算机系统和密码学领域中的常规术语。这些术语在本领域中是已知的,并且出于方便目的而仅作为非限制性示例提供。因此,除非另有说明,否则权利要求中对应术语的解释不限于任何特定定义。
以上详细描述包括对附图的参考,附图形成详细描述的一部分。附图通过图示的方式示出了可以实践的具体实施例。这些实施例在本文中也称为“示例”。此类示例可以包括除了示出或描述的那些之外的元素。然而,本发明人还构思了其中仅提供所示或所述的那些元素的示例。此外,本发明人还构思了使用关于特定示例(或其一个或多个方面)或关于在此示出或描述的其他示例(或其一个或多个方面)示出或描述的那些元素(或其一个或多个方面)的任何组合或排列的示例。
在本文档中,使用术语“一”或“一个”,其在专利文献中是常见的,以包括一个或多于一个,独立于“至少一个”或“一个或多个”的任何其他实例或使用。在本文档中,术语“或”用于表示非排他性,使得“A或B”包括“A但不是B”,“B但不是A”和“A和B”,除非另有说明。此外,在以下权利要求中,术语“第一”,“第二”和“第三”等仅用作标记,并不旨在对其对象施加数字要求。
附加说明和示例实施例
这些非限制性实例中的每一个可以独立存在,或者可以以各种排列或与一个或多个其他示例的组合相组合。
示例1是一种用于对分布式分类账索引的方法,该方法包括:接收事务数据的第一快照;标识第一快照的属性;核实第一快照;将第一快照的属性复制到第一主表;为第一快照的第一属性构造第一索引;并公布用于第一快照的第一属性的第一索引的完成。
示例2可以包括示例1的主题,并且还可以包括:为第一快照的第二属性构造第一索引;并公布第二属性的第一索引的完成。
示例3可以包括示例2的主题,并且还可以包括:针对第一快照的每个标识的属性重复构造第一索引和公布第一索引的完成的操作。
示例4可以包括示例1-3中任一项的主题,并且还可以包括:接收事务数据的第二快照;标识第二快照的属性;核实第二快照;将第二快照的属性复制到第二主表;为第二快照的第一属性构造第二索引;并公布用于第二快照的第一属性的第二索引的完成。
示例5可以包括示例4的主题,并且还可以包括:连结第一主表和第二主表;并连结第一索引和第二索引。
示例6可以包括示例4-5中任一项的主题,并且还可以包括:针对第二快照的每个标识的属性重复构造第二索引和公布第二索引的完成的操作。
示例7可以包括示例6的主题,并且还可以包括:连结第一主表和第二主表;并连结用于每个索引的属性的第一索引和第二索引。
示例8可以包括示例5-7中任一项的主题,并且还可以包括:接收事务数据的第三快照;标识第三快照的属性;核实第三快照;将第三快照的属性复制到第三主表;为第三快照的第一属性构造第三索引;并公布用于第三快照的第一属性的第三索引的完成。
示例9可以包括示例8的主题,并且还可以包括:连结示例5的连结主表和第三主表;并且针对第一属性连结示例5的连结索引和第三索引。
示例10可以包括示例1-9中任一项的主题,并且还可以包括:接收查询分布式分类账事务数据的请求;并处理关于索引的属性的查询。
示例11可以包括示例10的主题,并且还可以指定使用分布式查询处理在多个数据节点上执行对索引的属性执行查询。
示例12可以包括示例1的主题,并且还可以指定通过计算Merkle根来执行核实事务数据。
示例13可以包括示例4的主题,并且还可以指定通过计算第一快照的Merkle根与第二快照的Merkle根之间的德尔塔来执行核实事务数据。
示例14是一种用于对分布式分类账索引的系统,该系统包括:一个或多个事务节点,事务节点被配置为:广播事务数据的块;一个或多个数据节点,数据节点被配置为:接收事务数据的第一快照;标识第一快照的属性;核实第一快照;将第一快照的属性复制到第一主表;为第一快照的第一属性构造第一索引;并公布用于第一快照的第一属性的第一索引的完成;以及用于连接节点的网络。
示例15可以包括示例14的主题,并且还可以包括:一个或多个数据节点还被配置为:针对第一快照的每个标识的属性重复构造第一索引和公布第一索引的完成的操作。
示例16可以包括示例14-15中任一项的主题,并且还可以包括:一个或多个数据节点还被配置为:接收事务数据的第二快照;标识第二快照的属性;核实第二快照;将第二快照的属性复制到第二主表;为第二快照的第一属性构造第二索引;并公布用于第二快照的第一属性的第二索引的完成。
示例17可以包括示例16的主题,并且还可以包括:一个或多个数据节点还被配置为:连结第一主表和第二主表;并连结第一索引和第二索引。
示例18可以包括示例14-17中任一项的主题,并且还可以包括:应用节点,被配置为:接收查询分布式分类账事务数据的请求;并处理关于索引的属性的查询。
示例19可以包括示例14的主题,并且还可以包括:一个或多个数据节点还被配置为:针对第一快照的每个所标识的属性重复构造第一索引和公布第一索引的完成的操作,其中分配每个数据节点以在第一快照的不同标识的属性处开始索引。
示例20可以包括示例16的主题,并且还可以包括:一个或多个数据节点还被配置为:针对第二快照的每个所标识的属性重复构造第二索引和公布第二索引的完成的操作。
示例21可以包括示例16的主题,并且还可以包括:一个或多个数据节点还被配置为:针对第二快照的每个所标识的属性重复构造第二索引和公布第二索引的完成的操作,其中分配每个数据节点以在第二快照的不同标识的属性处开始索引。
示例22是一个或多个机器可读存储介质,包括存储在其上的一个或多个指令,当由至少一个处理器执行时,使得至少一个处理器:从分布式分类账接收事务数据的第一快照;标识第一快照的属性;核实第一快照;将第一快照的属性复制到第一主表;为第一快照的第一属性构造第一索引;并公布用于第一快照的第一属性的第一索引的完成。
示例23可以包括示例22的主题,并且还可以包括一个或多个指令,当由至少一个处理器执行时,使得至少一个处理器:从分布式分类账接收事务数据的第二快照;标识第二快照的属性;核实第二快照;将第二快照的属性复制到第二主表;为第二快照的第一属性构造第二索引;并公布用于第二快照的第一属性的第二索引的完成。
示例24可以包括示例23的主题,并且还可以指定指令还适于使计算设备能够:连结第一主表和第二主表;并连结第一索引和第二索引。
示例25可以包括示例23的主题,并且还可以指定指令还适于使计算设备能够:接收查询分布式分类账事务数据的请求;并处理关于索引的属性的查询。
示例26是一种计算设备,包括:处理器;以及具有多个指令的存储器,所述多个指令当由处理器执行时使得计算设备执行示例1-13中任一项的方法。
示例27是一个或多个机器可读存储介质,包括存储在其上的一个或多个指令,当由至少一个处理器执行时,使得至少一个处理器执行示例1-13中任一项的方法。
示例28是一种计算设备,包括用于执行任何示例1-13的方法的装置。
示例29是一种系统,包括:用于从分布式分类账接收事务数据的第一快照的装置;用于标识第一快照的属性的装置;用于核实第一快照的装置;用于将第一快照的属性复制到第一主表的装置;用于为第一快照的第一属性构造第一索引的装置;和用于公布用于第一快照的第一属性的第一索引的完成的装置。
示例30可以包括示例29的主题,并且还可以包括:用于从分布式分类账接收事务数据的第二快照的装置;用于标识第二快照的属性的装置;用于核实第二快照的装置;用于将第二快照的属性复制到第二主表的装置;用于为第二快照的第一属性构造第二索引的装置;和用于公布用于第二快照的第一属性的第二索引的完成的装置。
示例31可以包括示例30的主题,并且还可以包括:用于连结第一主表和第二主表的装置;和用于连结第一索引和第二索引的装置。
示例32可以包括示例31的主题,并且还可以包括:用于接收查询分布式分类账事务数据的请求的装置;和用于处理关于索引的属性的查询的装置。

Claims (25)

1.一种用于对分布式分类账索引的方法,所述方法包括:
利用硬件处理器接收事务数据的第一快照,其中事务数据的第一快照是尚未被包括在分布式分类账的原始索引中的被添加到分布式分类账的数据;
利用硬件处理器标识第一快照的事务数据的属性;
利用硬件处理器为第一快照的事务数据的第一属性构造第一索引;
利用硬件处理器公布用于第一快照的事务数据的第一属性的第一索引的完成;以及
连结原始索引和第一索引。
2.如权利要求1所述的方法,还包括:
为第一快照的事务数据的第二属性构造第一索引;以及
公布用于第二属性的第一索引的完成。
3.如权利要求2所述的方法,还包括:
针对第一快照的每个标识的属性重复构造第一索引并公布第一索引的完成。
4.如权利要求1所述的方法,还包括:
利用硬件处理器接收事务数据的第二快照,其中事务数据的第二快照是尚未被包括在分布式分类账的原始或第一索引中的被添加到分布式分类账的数据;
利用硬件处理器标识第二快照的事务数据的属性;
利用硬件处理器为第二快照的事务数据的第一属性构造第二索引;
利用硬件处理器公布用于第二快照的事务数据的第一属性的第二索引的完成;以及
将连结的原始索引和第一索引与第二索引连结。
5.如权利要求4所述的方法,还包括:
针对第二快照的每个标识的属性重复构造第二索引并公布第二索引的完成。
6.如权利要求5所述的方法,还包括:
针对每个索引的属性将连结的原始索引、第一索引和第二索引与重复构造的第二索引连结。
7.如权利要求1所述的方法,还包括:
执行关于分布式分类账事务数据的索引的属性的查询。
8.如权利要求7所述的方法,其中,使用分布式查询处理在多个数据节点上执行对索引的属性执行查询。
9.如权利要求1所述的方法,还包括:
核实事务数据的第一快照。
10.如权利要求9所述的方法,其中,通过计算Merkle根来执行核实事务数据。
11.如权利要求4所述的方法,还包括:
核实事务数据的第一快照和第二快照,其中通过计算第一快照的Merkle根与第二快照的Merkle根之间的德尔塔来执行核实事务数据。
12.一种用于对分布式分类账索引的系统,所述系统包括:
事务节点,所述事务节点包括:
存储器;以及
硬件处理器,其中事务节点的硬件处理器被配置为:
广播事务数据的块;以及
数据节点,所述数据节点包括:
存储器;以及
硬件处理器,其中数据节点的硬件处理器被配置为:
接收事务数据的第一快照,其中事务数据的第一快照是尚未被包括在分布式分类账的索引中的被添加到分布式分类账的数据;
标识第一快照的事务数据的属性;
为第一快照的事务数据的第一属性构造第一索引;
公布用于第一快照的事务数据的第一属性的第一索引的完成;以及
连结原始索引和第一索引。
13.如权利要求12所述的系统,其中,硬件处理器还被配置为:
针对第一快照的事务数据的每个标识的属性重复构造第一索引并公布第一索引的完成。
14.如权利要求13所述的系统,其中,分配每个数据节点以在第一快照的不同标识的属性处开始索引。
15.如权利要求12所述的系统,其中,硬件处理器还被配置为:
接收事务数据的第二快照;
标识第二快照的事务数据的属性;
为第二快照的事务数据的第一属性构造第二索引;
公布用于第二快照的第一属性的第二索引的完成;以及
连结第一索引和第二索引。
16.如权利要求15所述的系统,其中,硬件处理器还被配置为:
针对第二快照的每个标识的属性重复构造第二索引并公布第二索引的完成。
17.如权利要求16所述的系统,其中,分配每个数据节点以在第二快照的不同的标识的属性处开始索引。
18.一个或多个机器可读存储介质,包括存储在其上的一个或多个指令,当由硬件处理器执行时,使得处理器:
接收分布式分类账的事务数据的第一快照,其中事务数据的第一快照尚未被包括在分布式分类账的原始索引中;
标识第一快照的事务数据的属性;
为第一快照的事务数据的第一属性构造第一索引;
公布用于第一快照的事务数据的第一属性的第一索引的完成;以及
连结原始索引和第一索引。
19.如权利要求18所述的介质,还包括一个或多个指令,当由处理器执行时,使得处理器:
针对第一快照的每个标识的属性重复构造第一索引并公布第一索引的完成的操作,其中分配每个数据节点以在第一快照的不同的标识的属性处开始索引。
20.如权利要求18所述的介质,还包括一个或多个指令,当由处理器执行时,使得处理器:
核实第一快照。
21.如权利要求18所述的介质,其中,指令还适于使得处理器:
执行关于事务数据的索引的属性的查询。
22.一种用于对分布式分类账索引的系统,所述系统包括:
用于利用硬件处理器接收事务数据的第一快照的装置,其中事务数据的第一快照是尚未被包括在分布式分类账的原始索引中的被添加到分布式分类账的数据;
用于利用硬件处理器标识第一快照的事务数据的属性的装置;
用于利用硬件处理器为第一快照的事务数据的第一属性构造第一索引的装置;
用于利用硬件处理器公布用于第一快照的事务数据的第一属性的第一索引的完成的装置;以及
用于连结原始索引和第一索引的装置。
23.如权利要求22所述的系统,还包括:
用于利用硬件处理器接收事务数据的第二快照的装置,其中事务数据的第二快照是尚未被包括在分布式分类账的原始或第一索引中的被添加到分布式分类账的数据;
用于利用硬件处理器标识第二快照的事务数据的属性的装置;
用于利用硬件处理器为第二快照的事务数据的第一属性构造第二索引的装置;
用于利用硬件处理器公布用于第二快照的事务数据的第一属性的第二索引的完成的装置;以及
用于将连结的原始索引和第一索引与第二索引连结的装置。
24.如权利要求22所述的系统,还包括:
用于核实第一快照的装置。
25.如权利要求22-24中任一项所述的系统,还包括:
用于接收查询分布式分类账事务数据的请求的装置;以及
用于处理关于索引的属性的查询的装置。
CN201780060100.5A 2016-09-28 2017-09-27 查询优化的分布式分类账系统 Active CN109791542B (zh)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
US15/279,051 US10339014B2 (en) 2016-09-28 2016-09-28 Query optimized distributed ledger system
US15/279051 2016-09-28
PCT/US2017/053590 WO2018064093A1 (en) 2016-09-28 2017-09-27 Query optimized distributed ledger system

Publications (2)

Publication Number Publication Date
CN109791542A CN109791542A (zh) 2019-05-21
CN109791542B true CN109791542B (zh) 2023-10-27

Family

ID=60043349

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201780060100.5A Active CN109791542B (zh) 2016-09-28 2017-09-27 查询优化的分布式分类账系统

Country Status (4)

Country Link
US (2) US10339014B2 (zh)
EP (1) EP3519989A1 (zh)
CN (1) CN109791542B (zh)
WO (1) WO2018064093A1 (zh)

Families Citing this family (72)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US8874477B2 (en) 2005-10-04 2014-10-28 Steven Mark Hoffberg Multifactorial optimization system and method
US11367065B1 (en) * 2018-01-19 2022-06-21 Josiah Johnson Umezurike Distributed ledger system for electronic transactions
US11030341B2 (en) 2013-11-01 2021-06-08 Anonos Inc. Systems and methods for enforcing privacy-respectful, trusted communications
US10572684B2 (en) * 2013-11-01 2020-02-25 Anonos Inc. Systems and methods for enforcing centralized privacy controls in de-centralized systems
US10204341B2 (en) * 2016-05-24 2019-02-12 Mastercard International Incorporated Method and system for an efficient consensus mechanism for permissioned blockchains using bloom filters and audit guarantees
US10339014B2 (en) 2016-09-28 2019-07-02 Mcafee, Llc Query optimized distributed ledger system
US10540652B2 (en) * 2016-11-18 2020-01-21 Intel Corporation Technology for secure partitioning and updating of a distributed digital ledger
US11061887B2 (en) * 2016-12-30 2021-07-13 Guardtime Sa Event verification receipt system and methods
CN107040582B (zh) * 2017-02-17 2020-08-14 创新先进技术有限公司 一种数据处理方法及装置
EP3610440A4 (en) * 2017-04-11 2020-12-02 Hewlett-Packard Development Company, L.P. PARTIAL BLOCKCHAIN ACCOUNTS
US10896165B2 (en) * 2017-05-03 2021-01-19 International Business Machines Corporation Management of snapshot in blockchain
US10565192B2 (en) * 2017-08-01 2020-02-18 International Business Machines Corporation Optimizing queries and other retrieve operations in a blockchain
US10877962B2 (en) * 2017-08-11 2020-12-29 International Business Machines Corporation Deferred update of database hashcode in blockchain
US10922304B1 (en) * 2017-10-20 2021-02-16 EMC IP Holding Company LLC Distributed data protection management in multi-cloud computing environment
WO2019106006A1 (en) * 2017-12-01 2019-06-06 Quant Network Ltd. Blockchain communications and ordering
US10831764B2 (en) * 2017-12-02 2020-11-10 International Business Machines Corporation Query processing and access control in a blockchain network
GB201720767D0 (en) * 2017-12-13 2018-01-24 Barker Trevor Computer-implemented system and method
US20190188697A1 (en) * 2017-12-19 2019-06-20 Tbcasoft, Inc. Systems of multiple distributed ledgers using cross-ledger transfers for highly-scalable transaction throughput
US20190258971A1 (en) * 2018-02-20 2019-08-22 Tyson York Winarski Blockchain project management with process feedback control
WO2019213530A1 (en) * 2018-05-03 2019-11-07 SigmaLedger, Inc. Verifying authenticity of products based on proof and transfer of ownership
US11003653B2 (en) * 2018-05-31 2021-05-11 Intuit Inc. Method and system for secure digital documentation of subjects using hash chains
CN109285005A (zh) * 2018-08-16 2019-01-29 北京京东尚科信息技术有限公司 区块链的拆分处理方法、装置、区块链节点及存储介质
CN109308658A (zh) * 2018-09-11 2019-02-05 北京永恒纪元科技有限公司 一种高效安全的去中心化资产托管清算平台系统
CN109361734B (zh) * 2018-09-18 2021-04-20 百度在线网络技术(北京)有限公司 一种区块链的数据处理方法、装置、设备及介质
US20200143372A1 (en) * 2018-11-02 2020-05-07 Vite Labs Limited Methods for decentralized digital asset transfer and smart contract state transition
BR112019007991A2 (pt) * 2018-11-16 2019-09-10 Alibaba Group Holding Ltd método implementado por computador de um relé para interações de cadeia cruzada em uma rede de protocolo de confiança unificada, meio de armazenamento legível por computador, não transitório e sistema
WO2019072272A2 (en) 2018-11-16 2019-04-18 Alibaba Group Holding Limited DOMAIN NAME MANAGEMENT SYSTEM FOR CHAIN INTERACTIONS IN BLOCK CHAIN SYSTEMS
US11196567B2 (en) * 2018-11-26 2021-12-07 Amazon Technologies, Inc. Cryptographic verification of database transactions
US10942910B1 (en) 2018-11-26 2021-03-09 Amazon Technologies, Inc. Journal queries of a ledger-based database
US11119998B1 (en) 2018-11-26 2021-09-14 Amazon Technologies, Inc. Index and view updates in a ledger-based database
US11036708B2 (en) 2018-11-26 2021-06-15 Amazon Technologies, Inc. Indexes on non-materialized views
US20200234375A1 (en) * 2019-01-17 2020-07-23 EMC IP Holding Company LLC Protecting against data loss
US11080144B2 (en) 2019-01-25 2021-08-03 Coinbase, Inc. System and method for managing blockchain nodes
US10839377B2 (en) * 2019-01-25 2020-11-17 Coinbase, Inc. Syncing blockchain nodes with snapshots
CN109857727B (zh) * 2019-03-02 2021-05-11 杭州复杂美科技有限公司 一种本地数据库重构方法、设备和存储介质
KR102544628B1 (ko) * 2019-03-08 2023-06-19 한국전자통신연구원 블록체인 기반의 분산 데이터 공유 환경에서 데이터 공유 플랫폼을 위한 시스템, 상기 시스템에서 데이터 검색 방법 및 상기 시스템에서 검색 인덱스를 제공하는 방법
US11297500B2 (en) * 2019-04-16 2022-04-05 Research Foundation Of The City University Of New York Authenticating digital evidence
US11444776B2 (en) * 2019-05-01 2022-09-13 Kelce S. Wilson Blockchain with daisy chained records, document corral, quarantine, message timestamping, and self-addressing
US11296867B2 (en) * 2019-05-01 2022-04-05 Intuit Inc. Systems and methods for hash chain migration
US11416548B2 (en) 2019-05-02 2022-08-16 International Business Machines Corporation Index management for a database
JP6782331B1 (ja) * 2019-05-16 2020-11-11 株式会社日立製作所 バックアップシステム
US10963453B2 (en) * 2019-06-03 2021-03-30 Advanced New Technologies Co., Ltd. Service identifier-based data indexing
EP3790224A1 (en) * 2019-09-04 2021-03-10 I25S ApS Sparsed merkle tree method and system for processing sets of data for storing and keeping track of the same in a specific network
SG11202002614XA (en) * 2019-09-12 2020-04-29 Alibaba Group Holding Ltd Log-structured storage systems
SG11202002775RA (en) 2019-09-12 2020-04-29 Alibaba Group Holding Ltd Log-structured storage systems
US10942852B1 (en) 2019-09-12 2021-03-09 Advanced New Technologies Co., Ltd. Log-structured storage systems
CN111886591A (zh) 2019-09-12 2020-11-03 创新先进技术有限公司 日志结构存储系统
CN115398874A (zh) * 2019-09-12 2022-11-25 创新先进技术有限公司 日志结构存储系统
SG11202002588RA (en) 2019-09-12 2020-04-29 Alibaba Group Holding Ltd Log-structured storage systems
CN111837113A (zh) 2019-09-12 2020-10-27 创新先进技术有限公司 日志结构存储系统
SG11202002027TA (en) 2019-09-12 2020-04-29 Alibaba Group Holding Ltd Log-structured storage systems
EP3682344A4 (en) 2019-09-12 2020-12-02 Advanced New Technologies Co., Ltd. ENERGY STORAGE SYSTEMS
EP4031990A4 (en) 2019-09-17 2023-10-11 Coinbase, Inc. SYSTEM AND METHOD FOR MANAGING BLOCKCHAIN NODES
US11201728B1 (en) * 2019-09-30 2021-12-14 Mcafee Llc Data leakage mitigation with a blockchain
US11023423B2 (en) * 2019-10-10 2021-06-01 Avery Glasser System and method for information storage using blockchain databases combined with pointer databases
US11593316B2 (en) * 2019-10-16 2023-02-28 International Business Machines Corporation Database snapshot for managing state synchronization
US11240005B2 (en) * 2019-10-28 2022-02-01 EMC IP Holding Company LLC Method and system for querying a secure database located on an untrusted device
EP3769219B1 (en) * 2019-11-29 2023-07-19 Alipay (Hangzhou) Information Technology Co., Ltd. Taking snapshots of blockchain data
EP3834157B1 (en) * 2020-04-22 2023-09-13 Alipay (Hangzhou) Information Technology Co., Ltd. Managing transaction requests in ledger systems
SG11202103074PA (en) 2020-04-22 2021-04-29 Alipay Hangzhou Inf Tech Co Ltd Managing transaction requests in ledger systems
WO2020143855A2 (en) 2020-04-22 2020-07-16 Alipay (Hangzhou) Information Technology Co., Ltd. Managing transaction requests in ledger systems
US11860856B2 (en) 2020-07-20 2024-01-02 International Business Machines Corporation Managing distributed ledger storage space
CN112527793A (zh) * 2020-12-05 2021-03-19 泰州市朗嘉馨网络科技有限公司 水下沉浸时长检测系统
CN112561510A (zh) * 2020-12-21 2021-03-26 北京红枣科技有限公司 缴费系统、方法、装置、设备及存储介质
CN113360940A (zh) * 2021-06-04 2021-09-07 永旗(北京)科技有限公司 一种基于区块链的物联网数据管理方法
US20230008302A1 (en) * 2021-07-09 2023-01-12 Everything Blockchain Technology Corp. Distributed ledger for instantaneous consensus of a digital twin
US11914616B1 (en) 2022-12-16 2024-02-27 Alchemy Insights, Inc. Systems and methods for creating a consistent blockchain including block commitment determinations
US11728976B1 (en) 2022-12-22 2023-08-15 Alchemy Insights, Inc. Systems and methods for efficiently serving blockchain requests using an optimized cache
US11769143B1 (en) 2022-12-22 2023-09-26 Alchemy Insights, Inc. System and method for high performance providing fresh NFT metadata
US11750711B1 (en) 2022-12-22 2023-09-05 Alchemy Insights, Inc. Systems and methods for adaptively rate limiting client service requests at a blockchain service provider platform
US11816021B1 (en) 2022-12-22 2023-11-14 Alchemy Insights, Inc. System and method for intelligent testing of blockchain applications using a shadow system
US11811955B1 (en) * 2022-12-23 2023-11-07 Alchemy Insights, Inc. Systems and methods for improving reliability in blockchain networks using sharding

Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2000339209A (ja) * 1999-05-31 2000-12-08 Ntt Data Corp オンラインシステム、静態元帳作成方法及び記録媒体
CN101064641A (zh) * 2006-04-28 2007-10-31 国际商业机器公司 对Web服务资源的基于属性的索引和/或查询方法及系统
CN101535990A (zh) * 2006-08-23 2009-09-16 创新解决方案公司 高效的搜索结果更新机制
CN101681366A (zh) * 2007-03-02 2010-03-24 E-曼纽尔系统私人有限公司 一种数据存储和管理方法

Family Cites Families (39)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US4864497A (en) * 1988-04-13 1989-09-05 Digital Equipment Corporation Method of integrating software application programs using an attributive data model database
US5613113A (en) * 1993-10-08 1997-03-18 International Business Machines Corporation Consistent recreation of events from activity logs
US5991771A (en) * 1995-07-20 1999-11-23 Novell, Inc. Transaction synchronization in a disconnectable computer and network
US5806065A (en) * 1996-05-06 1998-09-08 Microsoft Corporation Data system with distributed tree indexes and method for maintaining the indexes
US6442533B1 (en) * 1997-10-29 2002-08-27 William H. Hinkle Multi-processing financial transaction processing system
US6874089B2 (en) * 2002-02-25 2005-03-29 Network Resonance, Inc. System, method and computer program product for guaranteeing electronic transactions
US7567991B2 (en) * 2003-06-25 2009-07-28 Emc Corporation Replication of snapshot using a file system copy differential
US8412688B1 (en) * 2009-06-29 2013-04-02 Emc Corporation Delegated reference count base file versioning
US10331658B2 (en) * 2011-06-03 2019-06-25 Gdial Inc. Systems and methods for atomizing and individuating data as data quanta
US20130110767A1 (en) * 2011-10-26 2013-05-02 Nec Laboratories America, Inc. Online Transaction Processing
US20150379510A1 (en) * 2012-07-10 2015-12-31 Stanley Benjamin Smith Method and system to use a block chain infrastructure and Smart Contracts to monetize data transactions involving changes to data included into a data supply chain.
US9262511B2 (en) 2012-07-30 2016-02-16 Red Lambda, Inc. System and method for indexing streams containing unstructured text data
US8768977B2 (en) * 2012-07-31 2014-07-01 Hewlett-Packard Development Company, L.P. Data management using writeable snapshots in multi-versioned distributed B-trees
US9805078B2 (en) * 2012-12-31 2017-10-31 Ebay, Inc. Next generation near real-time indexing
US9576038B1 (en) * 2013-04-17 2017-02-21 Amazon Technologies, Inc. Consistent query of local indexes
US20160110261A1 (en) * 2013-05-07 2016-04-21 Axcient, Inc. Cloud storage using merkle trees
US11841844B2 (en) * 2013-05-20 2023-12-12 Amazon Technologies, Inc. Index update pipeline
US20160307197A1 (en) * 2014-01-15 2016-10-20 Solutio LLC System and method of generating and validating a unique transaction identifier
US9830593B2 (en) * 2014-04-26 2017-11-28 Ss8 Networks, Inc. Cryptographic currency user directory data and enhanced peer-verification ledger synthesis through multi-modal cryptographic key-address mapping
US10340038B2 (en) 2014-05-13 2019-07-02 Nant Holdings Ip, Llc Healthcare transaction validation via blockchain, systems and methods
US9836908B2 (en) 2014-07-25 2017-12-05 Blockchain Technologies Corporation System and method for securely receiving and counting votes in an election
US11023968B2 (en) * 2015-03-05 2021-06-01 Goldman Sachs & Co. LLC Systems and methods for updating a distributed ledger based on partial validations of transactions
US10158480B1 (en) * 2015-03-16 2018-12-18 Winklevoss Ip, Llc Autonomous devices
EP3281163B1 (en) * 2015-04-05 2023-12-13 Digital Asset (Switzerland) GmbH Digital asset intermediary electronic settlement platform
US9298806B1 (en) 2015-07-08 2016-03-29 Coinlab, Inc. System and method for analyzing transactions in a distributed ledger
US10402792B2 (en) * 2015-08-13 2019-09-03 The Toronto-Dominion Bank Systems and method for tracking enterprise events using hybrid public-private blockchain ledgers
US10303887B2 (en) * 2015-09-14 2019-05-28 T0.Com, Inc. Data verification methods and systems using a hash tree, such as a time-centric merkle hash tree
US9875270B1 (en) * 2015-09-18 2018-01-23 Amazon Technologies, Inc. Locking item ranges for creating a secondary index from an online table
US10607442B2 (en) * 2015-09-25 2020-03-31 Bally Gaming, Inc. Unified digital wallet
US20170132615A1 (en) * 2015-11-11 2017-05-11 Bank Of America Corporation Block chain alias for person-to-person payments
US9930021B2 (en) 2016-01-05 2018-03-27 Intel Corporation Secure devices using entropy multiplexing
US9679276B1 (en) * 2016-01-26 2017-06-13 Stampery, Inc. Systems and methods for using a block chain to certify the existence, integrity, and/or ownership of a file or communication
US20170236120A1 (en) * 2016-02-11 2017-08-17 Oracle International Corporation Accountability and Trust in Distributed Ledger Systems
US10856122B2 (en) 2016-05-31 2020-12-01 Intel Corporation System, apparatus and method for scalable internet of things (IoT) device on-boarding with quarantine capabilities
US10796000B2 (en) 2016-06-11 2020-10-06 Intel Corporation Blockchain system with nucleobase sequencing as proof of work
US11144911B2 (en) 2016-06-20 2021-10-12 Intel Corporation Technologies for device commissioning
US10972448B2 (en) 2016-06-20 2021-04-06 Intel Corporation Technologies for data broker assisted transfer of device ownership
US10411905B2 (en) 2016-07-01 2019-09-10 Intel Corporation Public key infrastructure using blockchains
US10339014B2 (en) 2016-09-28 2019-07-02 Mcafee, Llc Query optimized distributed ledger system

Patent Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2000339209A (ja) * 1999-05-31 2000-12-08 Ntt Data Corp オンラインシステム、静態元帳作成方法及び記録媒体
CN101064641A (zh) * 2006-04-28 2007-10-31 国际商业机器公司 对Web服务资源的基于属性的索引和/或查询方法及系统
CN101535990A (zh) * 2006-08-23 2009-09-16 创新解决方案公司 高效的搜索结果更新机制
CN101681366A (zh) * 2007-03-02 2010-03-24 E-曼纽尔系统私人有限公司 一种数据存储和管理方法

Also Published As

Publication number Publication date
US10339014B2 (en) 2019-07-02
US20190303250A1 (en) 2019-10-03
CN109791542A (zh) 2019-05-21
US20180089041A1 (en) 2018-03-29
WO2018064093A1 (en) 2018-04-05
US11288144B2 (en) 2022-03-29
EP3519989A1 (en) 2019-08-07

Similar Documents

Publication Publication Date Title
CN109791542B (zh) 查询优化的分布式分类账系统
US9892151B2 (en) Database system and method
US20190197023A1 (en) Placement of data fragments generated by an erasure code in distributed computational devices based on a deduplication factor
US9766983B2 (en) Proximity and in-memory map based signature searching for duplicate data
US8504528B2 (en) Duplicate backup data identification and consolidation
US20160330180A1 (en) Zero-knowledge databases
US8122008B2 (en) Joining tables in multiple heterogeneous distributed databases
US20200322159A1 (en) Method for index-based and integrity-assured search in a blockchain
US10992676B2 (en) Leveraging blockchain technology for auditing cloud service for data protection compliance
US10824644B2 (en) Aggregate, index based, synchronization of node contents
JP2008515114A (ja) インデックス処理
US11188423B2 (en) Data processing apparatus and method
US20190354716A1 (en) Obfuscation and deletion of personal data in a loosely-coupled distributed system
US20160335259A1 (en) Storing structured information
KR20160050930A (ko) 대용량 분산 파일 시스템에서 데이터의 수정을 포함하는 트랜잭션 처리 장치 및 컴퓨터로 읽을 수 있는 기록매체
US20220245097A1 (en) Hashing with differing hash size and compression size
Adil et al. Performance analysis of duplicate record detection techniques
JP5836423B2 (ja) データ一致確認方法およびシステム
CN113256419B (zh) 一种区块链交易检索方法及系统
US10685003B2 (en) Building and using an atomic key with partial key searching capability
US11995060B2 (en) Hashing a data set with multiple hash engines
US20220245104A1 (en) Hashing for deduplication through skipping selected data
US11138275B1 (en) Systems and methods for filter conversion
WO2023232735A1 (en) Selective data management on verifiable persistent data structures
CN117171272A (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