区块链高速缓存系统技术方案

技术编号:32454063 阅读:15 留言:0更新日期:2022-02-26 08:28
本公开提供用于从区块链获得数据的系统、方法和计算机程序产品。示例系统可以包括高速缓存引擎,该高速缓存引擎包括高速缓存存储和区块链爬取器。区块链爬取器可以被配置为从区块链获得区块链数据并将区块链数据的子集写入高速缓存存储。区块链数据的子集可以满足高速缓存引擎生成的查询。该系统还可以包括与高速缓存引擎通信耦合的区块链查询服务。区块链查询服务可以包括状态存储和高速缓存爬取器。高速缓存爬取器可以被配置为从高速缓存存储获得高速缓存数据并且至少基于高速缓存数据更新状态存储的状态。更新状态存储的状态。更新状态存储的状态。

【技术实现步骤摘要】
【国外来华专利技术】区块链高速缓存系统
相关申请的交叉引用
[0001]本申请要求于2019年5月14日提交的美国临时专利申请第62/847,591号的优先权,该申请通过引用整体并入本文。

技术介绍

[0002]区块链是使用密码学链接的数据块的列表。每个区块可能包含列表中前一个区块的哈希值、时间戳和交易数据。为了更改特定块中的数据,可能需要更改区块链中的所有后续块,这可能需要此后续块的共识。出于这个原因,区块链可能是安全存储数据的理想媒介。但是,区块链可能未针对查询进行优化。虽然区块链软件可能包含内置查询机制,例如JavaScript Objection Notation

RPC(“JSON

RPC”),但此类机制可能是原始的,并且仅提供有限的方式来查询区块链。例如,可能无法聚合或过滤区块链交易。此外,虽然这种原始查询机制可能允许人们检索由区块链自己的数据结构支持的立即可用的数据集,但可能无法查询从区块链计算或派生的数据集作为第二层状态机。可用查询机制提供的吞吐量水平也可能较低,有时可能会导致区块链软件崩溃,这可能会导致区块链节点离线重新索引。取决于主机和崩溃的严重程度,重新索引可能需要数小时、数天或数周。在此期间,区块链不能用于生产。

技术实现思路

[0003]本公开提供用于从区块链获得数据的系统、方法和计算机程序产品。此处描述的系统可能具有区块链查询服务和单独的高速缓存引擎(cache engine)。高速缓存引擎可以通过抓取区块链并以索引格式将这些数据写入存储,从而直接从区块链获得数据。此后,高速缓存引擎可以复制数据或将数据广播到其他高速缓存引擎。高速缓存引擎还可以将数据提供给区块链查询服务。
[0004]分别实现区块链查询服务和高速缓存引擎可以带来许多优势。将这两个组件分开可以最小化对区块链的直接查询数量,这可以降低网络带宽要求和区块链崩溃的可能性。将这两个组件分开还可以减少区块链查询的延迟。现有的区块链查询服务可能需要直接抓取整个区块链以更新其状态并响应来自应用的请求,即使实际上只需要区块链数据的小子集来满足这些请求。此过程可能会引入不必要的延迟。相比之下,这里描述的高速缓存引擎可以以有利于查询的索引格式存储区块链数据。通过索引区块链数据,高速缓存引擎可以使区块链数据更快速、更容易地提供给许多不同类型的区块链查询服务。
[0005]一方面,本公开提供了一种获得区块链数据的方法。该方法可以包括提供区块链系统,该区块链系统包括(i)包括高速缓存存储和区块链爬取器(blockchain crawler)的高速缓存引擎和(ii)通信地耦合到高速缓存引擎的区块链查询服务。区块链查询服务可以包括状态存储和高速缓存爬取器。该方法还可以包括使用区块链爬取器从区块链获得区块链数据并将区块链数据的子集写入高速缓存存储或基于区块链数据的子集更新高速缓存存储的状态。区块链数据的子集可以满足由高速缓存引擎生成的查询。该方法还可以包括
使用高速缓存爬取器从高速缓存存储中获得高速缓存数据并至少基于高速缓存数据更新状态存储的状态。
[0006]在一些实施方式中,区块链数据的子集包括所有区块链数据。在一些实施方式中,区块链查询服务包括服务器,并且该方法还包括使用服务器将状态存储的状态传送到一个或多个应用。在一些实施方式中,区块链查询服务未直接从区块链获得数据。在一些实施方式中,(c)包括通过向高速缓存引擎发送查询请求或订阅请求来从高速缓存存储获得高速缓存数据。在一些实施方式中,查询至少部分地基于来自区块链查询服务的查询请求或订阅请求。在一些实施方式中,查询至少部分地基于高速缓存存储的当前状态。在一些实施方式中,查询指定要获得的区块链中的多个区块。在一些实施方式中,该方法还包括在将区块链数据的子集写入高速缓存存储时使用高速缓存引擎来发送高速缓存更新事件。在一些实施方式中,查询是一次性查询。在一些实施方式中,查询是订阅。在一些实施方式中,订阅包括在满足时使区块链爬取器从区块链获得数据的条件。在一些实施方式中,条件包括时间或频率。在一些实施方式中,条件包括区块链上的事件。在一些实施方式中,(b)包括以索引格式将区块链数据的子集写入高速缓存存储。在一些实施方式中,索引格式是文件系统、数据库或内存存储。在一些实施方式中,区块链爬取器包括状态转换引擎,其中状态转换引擎将区块链数据的子集写入高速缓存存储。在一些实施方式中,(b)包括使用状态转换引擎来对区块链数据进行规范化、编码、解码、序列化、反序列化、变换或过滤以生成区块链数据的子集。在一些实施方式中,高速缓存存储被配置为最多存储区块链的全部内容的子集。在一些实施方式中,该方法还包括从高速缓存存储中删减与在指定时间范围之外发生的交易相对应的区块链数据。在一些实施方式中,区块链查询服务是多个区块链查询服务中的一个,并且其中多个区块链查询服务中的每一个通信耦合到高速缓存。在一些实施方式中,多个区块链查询服务未直接从区块链获得数据。在一些实施方式中,该方法还包括提供多个附加高速缓存引擎,其中该多个附加高速缓存引擎不包括区块链爬取器;并且使用高速缓存引擎的区块链爬取器将区块链数据的子集写入多个附加高速缓存引擎。在一些实施方式中,多个附加高速缓存引擎中的每一个通信耦合到至少一个附加区块链查询服务。在一些实施方式中,该方法还包括提供附加高速缓存引擎,其中区块链查询服务通信耦合到附加高速缓存引擎。在一些实施方式中,附加高速缓存引擎包括附加高速缓存存储,并且其中高速缓存存储和附加高速缓存存储空间存储相同的数据。在一些实施方式中,附加高速缓存引擎包括附加高速缓存存储,并且其中高速缓存存储和附加高速缓存存储空间存储不同的数据。在一些实施方式中,该方法还包括提供高速缓存注册表,其中高速缓存注册表通信耦合到高速缓存引擎;在高速缓存注册表中存储关于高速缓存引擎的元数据,其中关于高速缓存引擎的元数据可以由包括区块链查询服务的多个区块链查询服务访问。在一些实施方式中,元数据包括高速缓存引擎的唯一标识符。在一些实施方式中,元数据定义由高速缓存引擎提供的服务类型。
[0007]本公开的另一方面提供了一种包括机器可执行代码的非暂时性计算机可读介质,所述机器可执行代码在由一个或多个计算机处理器执行时实现上述或本文其他地方的任何方法。
[0008]本公开的另一方面提供了一种系统,该系统包括一个或多个计算机处理器和与其耦合的计算机存储器。计算机存储器包括机器可执行代码,其在由一个或多个计算机处理
器执行时实现上述或本文其他地方的任何方法。
[0009]根据以下详细描述,本公开的其他方面和优点对本领域技术人员来说将变得显而易见,其中仅示出和描述了本公开的说明性实施方式。应当理解,本公开可以有其他不同的实施方式,并且在不脱离本公开的情况下,可以在各种明显的方面对其若干细节进行修改。因此,附图和描述本质上被认为是说明性的,而不是限制性的。援引加入
[0010]本说明书中提及的所有出版物、专利和专利申请均以引用方式并入本文,其程度就如同每个单独的出版物、专利或专利申请被具体地和单独地指示本文档来自技高网
...

【技术保护点】

【技术特征摘要】
【国外来华专利技术】1.一种用于从区块链中获得数据的系统,包括:高速缓存引擎,所述高速缓存引擎包括高速缓存存储和区块链爬取器,其中所述区块链爬取器被配置为从所述区块链获得区块链数据并将所述区块链数据的子集写入所述高速缓存存储或基于所述区块链数据的所述子集更新所述高速缓存存储的状态,其中所述区块链数据的所述子集满足由所述高速缓存引擎生成的查询;和区块链查询服务,所述区块链查询服务通信耦合到所述高速缓存引擎,其中所述区块链查询服务包括状态存储和高速缓存爬取器,其中所述高速缓存爬行器被配置为从所述高速缓存存储获得高速缓存数据并至少基于所述高速缓存数据更新所述状态存储的状态。2.根据权利要求1所述的系统,其中所述区块链数据的所述子集包括所有所述区块链数据。3.根据权利要求1所述的系统,其中所述区块链查询服务包括服务器,所述服务器被配置为将所述状态存储的所述状态传送到一个或多个应用。4.根据权利要求1所述的系统,其中所述区块链查询服务未被配置为直接从所述区块链获得数据。5.根据权利要求1所述的系统,其中所述高速缓存爬取器被配置为通过向所述高速缓存引擎发送查询请求或订阅请求来从所述高速缓存存储获得所述高速缓存数据。6.根据权利要求1所述的系统,其中所述查询至少部分地基于来自所述区块链查询服务的所述查询请求或所述订阅请求。7.根据权利要求6所述的系统,其中所述查询至少部分地基于所述高速缓存存储的当前状态。8.根据权利要求1所述的系统,其中所述查询指定要获得的所述区块链中的多个区块。9.根据权利要求1所述的系统,其中所述高速缓存引擎被配置为在将所述区块链数据的所述子集写入所述高速缓存存储时发送高速缓存更新事件。10.根据权利要求1所述的系统,其中所述查询是一次性查询。11.根据权利要求1所述的系统,其中所述查询是订阅。12.根据权利要求11所述的系统,其中所述订阅包括在满足时使所述区块链爬取器从所述区块链获得数据的条件。13.根据权利要求11所述的系统,其中所述条件包括时间或频率。14.根据权利要求11所述的系统,其中所述条件包括所述区块链上的事件。15.根据权利要求1所述的系统,其中所述区块链爬取器被配置为以索引格式将所述区块链数据的所述子集写入所述高速缓存存储。16.根据权利要求15所述的系统,其中所述索引格式是文件系统、数据库或内存存储。17.根据权利要求1所述的系统,其中所述区块链爬取器包括状态转换引擎,所述状态转换引擎被配置为将所述区块链数据的所述子集写入所述高速缓存存储。18.根据权利要求17所述的系统,其中所述状态转换引擎被配置为对所述区块链数据进行规范化、编码、解码、序列化、反序列化、变换或过滤以生成所述区块链数据的所述子集。19.根据权利要求1所述的系统,其中所述高速缓存存储被配置为最多存储所述区块链的全部内容的子集。
20.根据权利要求19所述的系统,其中所述高速缓存引擎被配置为从所述高速缓存存储中删减与在指定时间范围之外发生的交易相对应的区块链数据。21.根据权利要求1所述的系统,其中所述区块链查询服务是多个区块链查询服务之一,并且其中所述多个区块链查询服务中的每一个通信耦合到所述高速缓存。22.根据权利要求21所述的系统,其中所述多个区块链查询服务未被配置为直接从所述区块链获得数据。23.根据权利要求1所述的系统,还包括多个附加高速缓存引擎,其中所述多个附加高速缓存引擎不包括区块链爬取器,并且其中所述高速缓存引擎的所述区块链爬取器被配置为将所述区块链数据的所述子集写入所述多个附加高速缓存引擎。24.根据权利要求23所述的系统,其中所述多个附加高速缓存引擎中的每一个通信耦合到至少一个附加区块链查询服务。25.根据权利要求1所述的系统,还包括附加高速缓存引擎,其中所述区块链查询服务通信耦合到所述附加高速缓存引擎。26.根据权利要求25所述的系统,其中所述附加高速缓存引擎包括附加高速缓存存储,并且其中所述高速缓存存储和所述附加高速缓存存储空间存储相同的数据。27.根据权利要求25所述的系统,其中所述附加高速缓存引擎包括附加高速缓存存储,并且其中所述高速缓存存储和所述附加高速缓存存储空间存储不同的数据。28.根据权利要求1所述的系统,还包括与所述高速缓存引擎通信耦合并被配置为存储关于所述高速缓存引擎的元数据的高速缓存注册表,其中关于所述高速缓存引擎的所述元数据可由包括所述区块链查询服务的多个区块链查询服务访问。29.根据权利要求28所述的系统,其中所述元数据包括所述高速缓存引擎的唯一标识符。30.根据权利要求28所述的系统,其中所述元数据定义由所述高速缓存引擎提供的服务类型。31.一种从区块链获得数据的系统,包括:种子高速缓存引擎,所述种子高速缓存引擎包括种子高速缓存存储和区块链爬取器,其中所述区块链爬取器被配置为从所述区块链获得区块链数据并将所述区块链数据的子集写入所述种子高速缓存存储或基于所述区块链数据的所述子集更新所述高速缓存存储的状态,其中所述区块链数据的所述子集满足由所述种子高速缓存引擎生成的查询;多个高速缓存引擎,所述多个高速缓存引擎通信耦合到所述种子高速缓存引擎,其中所述多个高速缓存引擎中的高速缓存引擎包括高速缓存存储和高速缓存爬取器,其中所述高速缓存爬取器被配置为从所述种子高速缓存存储获得高速缓存数据并将所述高速缓存数据写入所述高速缓存存储;和多个区块链查询服务,所述多个区块链查询服务通信耦合到所述多个高速缓存引擎,其中所述多...

【专利技术属性】
技术研发人员:姜爘求
申请(专利权)人:普勒纳瑞亚公司
类型:发明
国别省市:

相关技术
    暂无相关专利
网友询问留言 已有0条评论
  • 还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。

1