【技术实现步骤摘要】
【国外来华专利技术】区块链高速缓存系统
相关申请的交叉引用
[0001]本申请要求于2019年5月14日提交的美国临时专利申请第62/847,591号的优先权,该申请通过引用整体并入本文。
技术介绍
[0002]区块链是使用密码学链接的数据块的列表。每个区块可能包含列表中前一个区块的哈希值、时间戳和交易数据。为了更改特定块中的数据,可能需要更改区块链中的所有后续块,这可能需要此后续块的共识。出于这个原因,区块链可能是安全存储数据的理想媒介。但是,区块链可能未针对查询进行优化。虽然区块链软件可能包含内置查询机制,例如JavaScript Objection Notation
‑
RPC(“JSON
‑
RPC”),但此类机制可能是原始的,并且仅提供有限的方式来查询区块链。例如,可能无法聚合或过滤区块链交易。此外,虽然这种原始查询机制可能允许人们检索由区块链自己的数据结构支持的立即可用的数据集,但可能无法查询从区块链计算或派生的数据集作为第二层状态机。可用查询机制提供的吞吐量水平也可能较低,有时可能会导致区块链软件崩溃,这可能会导致区块链节点离线重新索引。取决于主机和崩溃的严重程度,重新索引可能需要数小时、数天或数周。在此期间,区块链不能用于生产。
技术实现思路
[0003]本公开提供用于从区块链获得数据的系统、方法和计算机程序产品。此处描述的系统可能具有区块链查询服务和单独的高速缓存引擎(cache engine)。高速缓存引擎可以通过抓取区块链并以索引格式将这些数据写入存储,从而直接从区块链获得数据 ...
【技术保护点】
【技术特征摘要】
【国外来华专利技术】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.一种从区块链获得数据的系统,包括:种子高速缓存引擎,所述种子高速缓存引擎包括种子高速缓存存储和区块链爬取器,其中所述区块链爬取器被配置为从所述区块链获得区块链数据并将所述区块链数据的子集写入所述种子高速缓存存储或基于所述区块链数据的所述子集更新所述高速缓存存储的状态,其中所述区块链数据的所述子集满足由所述种子高速缓存引擎生成的查询;多个高速缓存引擎,所述多个高速缓存引擎通信耦合到所述种子高速缓存引擎,其中所述多个高速缓存引擎中的高速缓存引擎包括高速缓存存储和高速缓存爬取器,其中所述高速缓存爬取器被配置为从所述种子高速缓存存储获得高速缓存数据并将所述高速缓存数据写入所述高速缓存存储;和多个区块链查询服务,所述多个区块链查询服务通信耦合到所述多个高速缓存引擎,其中所述多...
还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。