一种残膜回收机防缠绕挑膜装置的制 一种秧草收获机用电力驱动行走机构

区块链选择性世界状态数据库的制作方法

2022-06-05 20:29:04 来源:中国专利 TAG:

区块链选择性世界状态数据库


背景技术:

1.本公开通常上涉及区块链存储领域,并且更具体地涉及通过最小化所存储的信息的类型来提高区块链网络的效率。
2.随着区块链网络获得普及,也需要缩放这些区块链网络以适应区块链网络使用的增加。当区块链网络使用需要数据库扩展时,区块链操作可能变得高度复杂和低效。照此,在确保区块链网络仍然如预期那样起作用的同时识别与最小化所利用的存储空间相关联的潜在方法是关键的。


技术实现要素:

3.本公开的实施例包括用于选择性地更新区块链网络的一个或多个特定实体的世界状态数据库的方法、系统和计算机程序产品。处理器可以接收智能合同。处理器可以生成实体策略。实体策略可以提供与特定实体相关联的一个或多个世界状态规则。响应于接收智能合同,处理器可以更新特定实体的世界状态数据库。一个或多个世界状态规则可与影响第二实体的世界状态数据库不同地影响特定实体的世界状态数据库。
4.以上概述并不旨在描述本公开的每个说明的实施例或每个实施方式。
附图说明
5.本公开中包括的附图被结合到说明书中并且形成说明书的一部分。它们说明了本公开的实施例,并且与说明书一起用于解释本公开的原理。这些附图仅说明某些实施例并且不限制本公开。
6.图1a示出了根据本公开的实施例的示例区块链架构。
7.图1b说明了根据本公开的实施例的区块链事务流程。
8.图2描绘了根据本公开的实施例的被配置成选择性地更新一个或多个世界状态数据库的示例区块链网络。
9.图3示出了根据本公开的实施例的用于配置区块链网络以选择性地更新世界状态数据库的示例方法的流程图。
10.图4a示出了根据本公开的实施例的云计算环境。
11.图4b示出了根据本公开的实施例的抽象模型层。
12.图5说明了根据本公开的实施例的可以用于实现本文所描述的方法、工具和模块中的一项或多项以及任何相关功能的示例计算机系统的高级框图。
13.虽然本文描述的实施例适于各种修改和替代形式,但是其细节已经通过举例在附图中示出并且将被详细描述。然而,应当理解,所描述的特定实施例不应被视为限制性的。相反,本发明将覆盖落在本公开的精神和范围内的所有修改、等同物和替换。
具体实施方式
14.本公开的各个方面通常涉及区块链存储,尤其涉及优化区块链网络内的存储。优
化区块链网络内的存储可最小化大型数据库的数量和对大型数据库的需求。由于区块链处理繁重事务(例如,与金融部门相关联的事务)并更新各个世界状态数据库以适应那些繁重事务,数据库大小可在一段时间内显著增长。结果,与区块链网络相关联的各个操作可能变得复杂并且导致区块链效率的降低。照此,数据存储管理以及它如何影响效率已经成为区块链网络中感兴趣的关键领域。
15.本文公开的各个系统和方法提供了通过选择性地更新一个或多个实体(例如,组织)的世界状态来减少大型数据库的数量和对大型数据库的需求的实施例。例如,在传统的区块链网络中,实体内的所有节点(例如,背书者节点和提交者节点)存储相同的数据(例如,世界状态数据库数据),而不管存储在每个节点中的信息是否与该实体相关。此外,与实体相关联的一些世界状态数据库传统上存储不必要的数据或很少被实体使用或被实体访问的数据。
16.虽然已经尝试解决上述这些问题,但是这样的尝试已经要求实体以私有状态数据库的形式隐藏某些数据/信息。在一些配置中,私有状态数据库的使用不仅能降低区块链可用性,而且还能侵蚀区块链网络内的信任,因为参与实体必须隐藏某些信息。隐藏区块链网络内的信息可导致多个问题,包括但不限于减少参与区块链网络的实体之间的信任以及存储在区块链内的数据和状态信息的不一致性。这样,在此讨论的实施例可以减少存储在一个或多个实体内的数据/信息(例如,与实体不相关的世界状态数据库数据/信息),同时确保区块链网络内没有数据/信息缺失并且维护信任。
17.容易理解的是,如在本文中的图中一般描述和说明的,本部件可以以各种各样的不同配置被布置和设计。因而,如附图中所表示的方法、装置、非瞬态计算机可读介质和系统中的至少一个的实施例的以下详细描述不旨在限制所要求保护的应用的范围,而仅表示所选实施例。
18.本说明书通篇描述的本特征、结构或特性可以在一个或多个实施例中以任何合适的方式被组合或移除。例如,贯穿本说明书的短语“举例实施例”、“一些实施例”或其他类似语言的使用是指结合实施例描述的具体特征、结构或特性可以被包括在至少一个实施例中的事实。因此,贯穿本说明书的短语“举例实施例”、“在一些实施例中”、“在其他实施例中”或其他类似语言的出现不一定全部指代同一组实施例,并且所描述的特征、结构或特性可以在一个或多个实施例中以任何合适的方式被组合或移除。进一步地,在附图中,元件之间的任何连接可以允许单向和/或双向通信,即使所描绘的连接是单向或双向箭头。而且,附图中描绘的任何设备可以是不同的设备。例如,如果移动设备被示出为发送信息,那么有线设备还可用以发送信息。
19.此外,虽然可能已经在实施例的描述中使用术语“消息”,但是应用可以应用于许多类型的网络和数据。此外,虽然在示例性实施例中可以描绘特定类型的连接、消息和信令,但是应用不限于特定类型的连接、消息和信令。
20.本文详述了方法、系统和计算机程序产品,其利用选择性地更新区块链网络内的一个或多个实体的世界状态数据库,同时维护区块链网络本身中的实体之间的数据完整性和信任。区块链网络中的继续信任是可能的,因为尽管实体潜在地具有不同的世界状态数据库数据/信息配置,但可使用在区块链的区块中维护的信息来重新生成世界状态数据库数据/信息。照此,本文公开的区块链网络可执行各种审计协议以识别可能的不一致性和/
或恶意对等体,同时也最小化实体的世界状态数据库维护的数据/信息的量和类型。
21.在一些实施例中,该方法、系统和/或计算机程序产品利用分散式数据库(诸如区块链),该分散式数据库是分布式存储系统,该分布式存储系统包括彼此通信的多个节点。分散式数据库包括类似于能够在相互不可信方之间维护记录的分布式分类账的仅附加不可变数据结构。不可信方在本文中被称为对等体或对等节点。每个对等体维护数据库记录的副本,并且没有单个对等体能够在没有在分布式对等体之间达到一致性的情况下修改数据库记录。例如,对等体可执行一致性协议以验证区块链存储事务,将存储事务分组成区块,并在区块上构建散列链。该过程通过对存储事务进行排序而形成分类账(如有必要),以便一致。
22.在各个实施例中,可以使用被许可的和/或无许可的区块链。在公共的或无许可的区块链中,任何人都可以在没有特定身份(例如,保留匿名)的情况下参与。公共区块链可涉及本地数字货币并基于各个协议(诸如工作证明)来使用一致性。另一方面,许可的区块链数据库提供共享共同目标、但彼此不完全信任的实体群组(诸如交换资金、货物、(私有)信息等的商家)之间的安全交互。
23.进一步地,在一些实施例中,该方法、系统、和/或计算机程序产品可以利用操作任意的、可编程逻辑的区块链,该区块链是针对分散式存储方案定制的并且被称为“智能合同”或“链码”。在一些情况下,可存在称为系统链码的用于管理功能和参数的专用链码。该方法、系统和/或计算机程序产品可进一步利用作为可信分布式应用的智能合同,该智能合同利用区块链数据库的防篡改属性和节点之间的底层协定,这被称为背书或背书策略。与本应用相关联的区块链事务在被提交给区块链之前可以被“背书”,而未被背书的事务被忽略。
24.背书策略允许链码以背书必需的对等节点集合的形式指定事务的背书者。当客户端向背书策略中指定的对等体发送事务时,该对等体执行该事务,这生成推测事务结果。如果满足背书策略的足够对等体产生相同的执行结果,则事务被视为被背书。在背书之后,事务进入排序阶段,其中使用一致性协议来产生被分组到区块中的被背书的事务的有序序列。传统上使用的一致性协议包括先进先出(fifo)以及前导和跟随器协议(例如,碰撞容错协议)。
25.在一些实施例中,该方法、系统和/或计算机程序产品可以利用作为区块链系统的通信实体的节点。“节点”可以在不同类型的多个节点可以在同一物理服务器上运行的意义上执行逻辑功能。节点被分组在信任域中并且与以各种方式控制它们的逻辑实体相关联。节点可以包括不同类型(诸如向背书者(例如对等体)提交事务调用并且向排序服务(例如排序者节点)广播事务提议的客户端或提交客户端节点)。
26.另一类型的节点是可接收经排序的客户端提交的事务(例如,从排序服务)、提交事务并维护区块链事务的分类账的状态和副本的对等节点。对等体也可以具有背书者的角色,尽管这不是必须的。排序服务节点或排序者是运行排序服务的节点,其从客户端接收背书事务的流并发出排序事务的流。排序服务节点对所有对等节点运行通信服务,并实现交付保障(诸如在提交/确认事务以及修改区块链的世界状态时向系统中的每个对等节点广播,区块链是初始区块链事务的另一名称,其通常包括控制和设置信息)。
27.在一些实施例中,该方法、系统和/或计算机程序产品可以利用分类账,该分类账
是区块链的所有状态转换的排序的、防篡改的记录。状态转换可由参与方(例如,客户端节点、排序节点、背书者节点、对等节点等)提交的链码调用(例如,事务)引起。每个参与方(诸如对等节点)可维护分类账的副本。事务可导致资产键-值对的集合,作为一个或多个操作数(诸如创建、更新、删除等)被提交给分类账。分类账包括区块链(也称为链),其用于在区块中存储不可变的、排序的记录。分类账还包括维护区块链的当前状态的状态数据库。
28.在一些实施例中,本文所述的方法、系统和/或计算机程序产品可利用链,该链是被结构化为散列链接的区块的事务日志,并且每个区块包含n个事务的序列,其中n等于或大于1。区块头部包括区块事务的散列,以及先前区块头部的散列。以此方式,分类账上的所有事务可被排序并加密地链接在一起。因而,不可能在不破坏散列链接的情况下篡改分类账数据。最近添加的区块链区块的散列表示链上在链之前已经进行的每个事务,使得可以确保所有对等节点处于一致和可信状态。链可被存储在对等节点文件系统(例如,本地、附加存储、云等)上,从而有效地支持区块链工作负载的仅附加性质。
29.不可变分类账的当前状态表示包括在链事务日志中的所有键的最新值。由于当前状态表示信道已知的最新键值,因此有时将其称为世界状态。链码调用针对分类账的当前状态数据执行事务。为了使这些链码交互有效,可以在状态数据库中存储键的最新值。状态数据库可以简单地是链的事务日志中的索引视图,因此可以在任何时间从链重新生成状态数据库。状态数据库可在对等节点启动时和在事务被接受之前自动恢复(或如果需要的话生成)。
30.区块链与传统数据库的不同之处在于区块链不是中央存储装置,而是分散式的、不可变的和安全存储装置,其中节点可共享存储装置中的记录的改变。区块链中固有的并且帮助实现区块链的一些特性包括但不限于本文进一步描述的不可变分类账、智能合同、安全性、隐私性、分散性、一致性、背书、可访问性等。根据各个方面,由于对于区块链固有且唯一的不可变的可计量性、安全性、隐私性、许可的分散性、智能合同的可用性、背书和可访问性,实现在此描述的系统。
31.具体地,区块链分类账数据是不可变的并且提供用于选择性地更新区块链网络中的一个或多个世界状态数据库的有效方法。此外,在区块链中使用加密提供安全性并建立信任。智能合同管理资产的状态以完成生命周期。示例区块链是许可分散的。从而,每个终端用户可具有其自己的分类账副本来访问。在区块链网络上,多个组织(和对等体)可以是机载的。密钥组织可以充当背书对等体以验证智能合同执行结果、读取集和写入集。
32.举例实施例的益处之一是通过实现用于选择性地更新区块链网络中的一个或多个世界状态数据库的方法来改进计算系统的功能。通过在此描述的区块链系统,计算系统(或计算系统中的处理器)可执行用于通过提供对诸如分布式分类账、对等体、加密技术、msp、事件处理等能力的访问来选择性地更新从利用区块链网络的一个或多个客户端应用接收到的区块链网络内的一个或多个实体的世界状态数据库的功能。此外,区块链能够创建商业网络并且使任何用户或组织机载参与。这样,该区块链不仅仅是个数据库。区块链具有创建用户和机载/机外组织的网络来以智能合同(其可与一个或多个资产相关联)的形式协作和执行服务过程的能力。
33.示例性实施例提供了优于传统数据库的许多益处。例如,通过区块链,实施例提供对于区块链固有且唯一的不可变的可计量性、安全性、隐私性、允许的分散性、智能合同的
可用性、背书和可访问性。
34.传统的数据库不能用于实现举例实施例,因为它不将所有方带到网络上,它不创建可信协作,并且不提供数字资产的有效存储。传统数据库不提供防篡改存储装置,并且不提供选择性地更新一个或多个世界状态数据库。因此,利用区块链网络的本文描述的所提出的实施例不能在传统数据库中实现。
35.如果传统数据库将被用来实现举例实施例,则举例实施例将遭受不必要的缺点(诸如搜索能力、安全性的缺乏和事务的速度慢)。因而,举例实施例提供对选择性地更新与区块链网络相关联的一个或多个世界状态数据库的技术/领域中的问题的特定解决方案。
36.现在转向图1a,说明了根据本公开的实施例的区块链架构100。在一些实施例中,区块链架构100可以包括某些区块链元件(例如,一组区块链节点102)。区块链节点102可包括一个或多个区块链节点(例如对等体104-110(仅以示例描绘这四个节点))。这些节点参与多个活动(诸如区块链事务添加和验证过程(一致性))。对等体104-110中的一个或多个可基于背书策略背书和/或推荐事务,并且可为区块链架构100中的所有区块链节点102提供排序服务。区块链节点可发起区块链认证并寻求写入存储在区块链层116中的区块链不可变分类账,其副本也可存储在底层物理基础设施114上。区块链配置可以包括链接到应用编程接口(api)122以访问和执行所存储的程序/应用代码120(例如,链码、智能合同等)的一个或多个应用124,所存储的程序/应用代码120可以根据参与者寻求的自定义配置被创建并且可以维护其自己的状态、控制其自己的资产和接收外部信息。这可以被部署为事务并且经由附加到分布式分类账而被安装在所有区块链节点104-110上。
37.区块链基础或平台112可以包括区块链数据、服务(例如,密码信任服务、虚拟执行环境等)和底层物理计算机基础设施的各个层,其可以用于接收和存储新事务并且提供对寻求访问数据条目的审核者的访问。区块链层116可暴露接口,该接口提供对处理程序代码和啮合物理基础设施114所必需的虚拟执行环境的访问。密码信任服务118可以用于核实诸如资产交换事务之类的事务并保持信息私密。
38.图1a的区块链架构100可以经由区块链平台112所暴露的一个或多个接口和所提供的服务来处理和执行程序/应用代码120。代码120可以控制区块链资产。例如,代码120可以存储和转移数据,并且可以由对等体104-110以智能合同和关联链码的形式来执行,带有受其执行的其他代码元素或条件。作为非限制性示例,可以创建智能合同以执行资源的转移、资源的生成等。智能合同本身可以用于识别与分类账的授权和访问要求和使用相关联的规则。例如,组事务信息126可由包括在区块链层116中的一个或多个处理实体(例如,虚拟机)来处理。结果128可包括多个链接的共享文档(例如,每个链接的共享文档记录关于组事务信息126的智能合同的发布等)。物理基础设施114可用于检索本文所述的任何数据或信息。
39.智能合同可以经由高级应用和编程语言被创建,并且然后被写到区块链中的区块。智能合同可以包括利用区块链(例如,区块链对等体的分布式网络)被注册、被存储和/或被复制的可执行代码。事务是智能合同代码的执行,其可以响应于满足与智能合同相关联的条件被执行。智能合同的执行可以触发对数字区块链分类账的状态的可信修改。由智能合同执行引起的对区块链分类账的修改可通过一个或多个一致性协议在区块链对等体的分布式网络中被自动复制。
40.智能合同可以以键-值对的格式将数据写入区块链。此外,智能合同代码可以读取存储在区块链中的值并且在应用操作中使用它们。智能合同代码可以将各种逻辑操作的输出写入到区块链中。该代码可用于在虚拟机或其他计算平台中创建临时数据结构。写入到区块链的数据可以是公共的和/或可以被加密并维护为私有的。由智能合同使用/生成的临时数据由所提供的执行环境保存在存储器中,然后一旦区块链所需的数据被识别临时数据就被删除。
41.链码可以包括具有附加特征的智能合同的代码解释。如本文所述,链码可以是部署在计算网络上的程序代码,其中链码在一致过程期间由链验证器一起执行和验证。链码接收散列并从区块链检索与通过使用先前存储的特征提取器创建的数据模板相关联的散列。如果散列标识符的散列和从所存储的标识符模板数据创建的散列匹配,则链码向所请求的服务发送授权密钥。链码可写入与密码细节相关联的区块链数据(例如,从而确认该组事务、识别该组事务中的一个或多个事务之间的冲突等)。
42.图1b说明根据示例实施例的区块链的节点之间的传统区块链事务流150的示例。参见图1b,该事务流程可以包括由应用客户端节点160向一个或多个背书对等节点181发送的事务提议191(例如,在一些实施例中,事务提议191可以是事务核实请求和/或冲突验证请求)。背书对等体181可核实客户端签名并执行链码函数以发起事务。输出可包括链码结果、在链码(读取集)中读取的一组键/值版本、以及在链码(写入集)中写入的该组键/值。如果被批准,则提议响应192与背书签名一起被发送回客户端160。客户端160将背书整合到事务有效载荷193中,并将其广播给排序服务节点184。排序服务节点184然后在信道上将所排序的事务作为区块递送给所有对等体181-183。在向区块链提交之前,每个对等体181-183可以验证该事务。例如,对等体可以检查背书策略以确保指定对等体的正确分配已经签署结果并针对事务有效载荷193认证签名。
43.再次参见图1b,客户端节点160通过构造并向对等节点181(其为背书者)发送请求来发起事务191。客户端160可以包括利用所支持的软件开发工具包(sdk)的应用,其利用可用的api来生成事务提议191。提议是调用链码函数以使得数据可被读取和/或写入到分类账(例如,写入资产的新键值对)的请求。sdk可以将事务提议191的包减少到适当架构化的格式(例如,远程过程调用(rpc)上的协议缓冲区)并且获取客户端的密码凭证以产生事务提议191的唯一签名。
44.作为响应,背书对等节点181可核实(a)事务提议191形成良好,(b)事务在过去尚未被提交(重放攻击保护),(c)签名有效,以及(d)提交者(在该示例中为客户端160)被适当地授权在该信道上执行所提议的操作。背书对等节点181可将事务提议191输入作为所调用的链码函数的自变量。然后,针对当前状态数据库执行链码,以产生包括响应值、读取集和写入集的事务结果。然而,此时不对分类账进行更新。在一些实施例中,该组值连同背书对等节点181的签名作为提议响应192被传递回客户端160的sdk,该sdk解析有效载荷以供应用消费。
45.作为响应,客户端160的应用检查/核实这些背书对等体的签名,并比较这些提议响应以确定该提议响应是否相同。如果链码仅查询分类账,则应用将检查查询响应并且通常将不向排序节点服务184提交事务。如果客户端应用意图向排序节点服务184提交事务以更新分类账,则应用确定在提交之前指定的背书策略是否已被履行(例如,事务核实请求是
否已被接受)。这里,客户端可仅包括事务的多方之一。在这种情况下,每个客户端可具有它们自己的背书节点,并且每个背书节点将需要背书事务。该架构使得即使应用选择不检查响应或以其他方式转发未背书事务,背书策略仍将由对等体实施并在提交验证阶段被支持。
46.在成功检查之后,在步骤193中,客户端160将背书整合到事务中,并且在事务消息内向排序节点184广播事务提议191和响应。事务可包含读取/写入集、背书对等体的签名和信道id。排序节点184不需要检查事务的全部内容以便执行其操作,而是排序节点184可以简单地从网络中的所有信道接收事务,按照信道对它们进行排序,并且创建每个信道的事务区块。
47.事务的区块从排序节点184被递送到信道上的所有对等节点181-183。区块内的事务194被验证以确保任何背书策略被履行,并且确保自读取集由事务执行生成以来没有读取集变量的分类账状态的改变。块中的事务被标记为有效或无效。此外,在步骤195中,每个对等节点181-183将块附加到信道的链,并且对于每个有效事务,写入集被提交到当前状态数据库。发出事件,以通知客户端应用事务(调用)已经被不可变地附加到链,以及通知事务被验证还是被无效。被验证的事务及其相关联的值更新区块链分类账,而被无效的事务被提交但被无效的事务值不更新区块链分类账。
48.转到图2,说明了用于选择性地更新特定实体的世界状态数据库的示例区块链网络200。如本文所讨论的,通过减少存储在区块链网络200中的一个或多个世界状态数据库上的数据/信息的量可通过最小化/减少大数据库的数量和对大数据库的需求来增加区块链效率。虽然本文公开的实施例经常将区块链网络200称为被许可的区块链联盟(例如,超级分类帐架构区块链网络),但区块链网络200可被配置成在具有对等节点或提供类似角色功能的节点的任何类型的区块链联盟(例如,无许可区块链)内工作。在实施例中,区块链网络200可包括被配置成执行区块链功能和实体策略202的一个或多个实体(例如,特定实体和/或任何其他实体)。在区块链网络200中维护的一个或多个实体中的每个实体可包括一个或多个节点(诸如背书者204、排序服务206、提交者208或其任何组合)。例如,在一些实施例中,实体可以包括背书者204和提交者208,而在其他实施例中,实体可以被配置为仅包括提交者208。
49.在实施例中,区块链网络200内的一个或多个实体可由实体策略202来配置。在实施例中,实体策略202可以包括一个或多个世界状态规则。世界状态规则可定义什么是相关信息,以及相关信息是否应当被包括在与区块链网络200内的每个实体相关联的世界状态数据库中。尽管在一些实施例中,一个或多个世界状态规则定义数据/信息是否应被添加(例如,更新)到特定世界状态数据库(例如,如果数据/信息被认为是相关信息),在其他实施例中,世界状态规则也可定义相关信息何时被更新到特定世界状态数据库。例如,在数据/信息很少被访问的实施例中,实体策略202可以具有一个或多个世界状态规则,这些世界状态规则定义世界状态数据库应该仅在特定持续时间已经发生之后被访问(例如,该值每天被更新一次,或在每第100次事务之后被更新)。此类实施例可以减少被指派以更新世界状态数据库的资源(例如,处理资源和数据库存储资源)的量,同时也维护某种形式的更新的值。
50.在实施例中,取决于设置,相关信息可以具有不同的定义。换言之,所考虑的相关
信息取决于特定实体和/或节点在区块链网络200中所起的作用或功能。通常,与特定实体相关的事物可以或可以不与不同/其他/单独/第二/等实体相关。照此,实体策略202还可包括与特定实体相关联的一个或多个世界状态规则的一个集合和与不同/其他实体相关联的、定义什么被认为是该不同/其他实体的相关信息的世界状态规则的不同集合。在实体和/或节点执行维护区块链网络200所必需的功能的实施例中,实体策略202可包括将对执行该特定区块链功能至关重要的世界状态数据库信息识别为必须被维护的相关信息(例如,执行背书功能的背书者)的世界状态规则。虽然在一些实施例中,实体策略202可用定义每个实体和/或节点应接收保持世界状态数据库当前所必需的所有数据/信息的指示符来标记需要竞争世界状态数据库的实体或节点,但是在其他实施例中,实体策略202仅适用于配置它们相应的世界状态数据库以仅包括相关数据的实体和/或节点。通过仅选择实体和/或节点所需或相关的数据(例如,选择性地更新世界状态数据库以仅包括相关信息),可显著减少实体和/或节点必须存储的数据的量。照此,区块链网络200可不仅通过减少更新操作的数量,而且通过减少特定实体(例如,包括节点)所需的空间的量而变得更高效。
51.在实施例中,区块链网络200中的特定实体可以维护具有与关联于不同/其他实体(例如,具有背书者节点的实体)的一个或多个世界状态数据库的相关信息不同的相关信息的一个或多个世界状态数据库(例如,具有多于一个提交者节点的实体)。在这些实施例中,实体策略202可以允许实体和/或实体内的各个节点定义一个或多个世界状态规则。这样的实施例可允许实体和/或容纳在该实体内的节点定义什么是它认为相关的信息,并且什么应当被包括在世界状态数据库中,而不必也维护和存储与该特定实体无关的信息。照此,与选择性地(例如,经由实体策略202)更新特定实体的世界状态数据库相关联的数据库可利用相关数据库来存储相关信息并且可减少传统上被不相关数据/信息占用的存储空间。由于最小化与这些相关数据库相关联的存储空间,区块链网络200可通过最小化和/或减少复杂操作(特别是与繁重事务或频繁被更新的事务相关联的操作)来提高效率。
52.虽然在一些实施例中,实体策略202可以一般地应用于特定实体并且类似地应用于特定实体内的所有节点(例如提交者),但是在其他实施例中,实体策略202可以包括应用于相同特定实体内的一些节点(例如提交者)而不是其他节点(例如背书者)的世界状态规则。在这些实施例中,实体策略202可以被配置成具有为特定实体内的不同节点定义不同的相关信息的一个或多个世界状态规则。在这些实施例中,实体策略202可以取决于节点的角色(例如,如果节点是背书者或提交者)而不同地应用世界状态规则。例如,如果节点的角色是执行关键区块链功能,则实体策略202可包括一个或多个世界状态规则,其可进一步将对执行该特定区块链功能至关重要的信息识别为必须在节点的本地世界状态数据库内维护的相关信息(例如,执行背书功能的背书者)。在实施例中,实体策略202可以进一步包括关于如何可以在区块链网络200的整个寿命中修改与相关信息组成的数据/信息相关联的定义的世界状态规则。例如,实体策略202可以将与特定实体相关联的相关信息定义为汽车租赁信息,但是如果特定实体演变成销售汽车,则可以更新实体策略202以反映相关信息的这个新定义。
53.在实施例中,一旦实体策略202已经定义与特定实体相关联的应该被包括在实体的世界状态数据库中的相关信息,区块链网络200就可以开始根据需要选择性地更新区块链网络200中的一个或多个世界状态数据库。在实施例中,区块链网络200可以接收一个或
多个智能合同。在一些实施例中,智能合同可以涉及区块链网络200内的一个或多个实体并且可以包括可以用于更新世界状态数据库的信息。在这些实施例中,区块链网络200可处理如由特定区块链配置和智能合同本身规定的智能合同,以至少部分地基于实体策略202选择性地更新区块链网络中的一个或多个世界状态数据库。例如,虽然实体策略202可以将针对不同/其他实体的相关信息定义为a、b和c信息,但是实体策略202可以替代地将针对特定实体的相关信息定义为具有b和c信息而不是a信息(例如,缺失的世界状态组件)。在一些实施例中,被阻止更新的信息(例如,不被认为是相关信息的信息)可被称为缺失的世界状态组件。
54.在一些实施例中,选择性地更新世界状态数据库还可包括区块链网络200使用背书策略202来确定智能合同是否与特定实体相关联。如果确定区块链网络200与特定实体相关联,则区块链网络200可被配置成从实体策略202识别与特定实体相关联的一个或多个世界状态规则。在这些实施例中,一个或多个世界状态规则可被应用于智能合同中包含的数据/信息以确定相关信息。在这些实施例中,一个或多个世界状态规则通过更新(例如,写入)新值(例如,由智能合同定义)到特定实体或节点的世界状态数据库来确保仅相关信息而不是所有信息被添加(例如,更新)到特定实体或节点的世界状态数据库以完成选择性更新以包括相关信息。
55.在实施例中,区块链网络200可被配置成保留与特定实体相关联的区块链密钥和值集的副本,以确保在需要时可重新生成完整的世界状态数据库(例如,如果区块链网络200需要执行审计功能)。这些实施例还可以允许保持关于区块链网络200已经处理了哪些信息的清晰记录,而不需要实体将信息存储在它们各自的本地世界状态数据库中。在实施例中,一些区块链网络200功能(例如,审计功能)可能需要缺失的世界状态组件或未被更新/包括在特定实体和/或节点的本地世界状态数据库中的数据。在这些实施例中,区块链网络200可确定特定实体的世界状态数据库缺失至少一个世界状态组件。尽管在一些实施例中,区块链网络200可被配置成识别哪个世界状态组件缺失,并且随后使用先前提交到区块链中的块中的信息,区块链网络200可填充缺失的世界状态组件,在其他实施例中,区块链网络200可通过审阅所保留的区块链键和值集副本来执行该功能。在区块链网络200内的所有世界状态数据库需要被更新的实施例中,特定功能(例如,updateallworldstate)可由区块链网络200(例如,由区块链网络200的管理员或审核者或取决于区块链配置的其他区块链节点)调用。
56.尽管以下举例实施例将区块链网络200引用为具有传统上与超级分类帐架构配置相关联的一个或多个组件,但如本文中所述,区块链网络200可包括任何区块链联盟。在举例实施例中,区块链网络200可以被配置成包括一个或多个特定实体以及排序服务206,该特定实体包括一个或多个提交者208(例如,提交者节点)和具有一个或多个背书者204(例如,背书者节点)的一个或多个不同/其他实体。如这里所讨论的,由于在背书阶段期间的背书活动,背书者需要完整的本地世界状态数据库以便产生准确的读取集合和写入集合。在实施例中,排序服务206通常不受实体策略202影响。
57.在实施例中,具有至少一个提交者208的实体可以由实体策略202配置成具有一个或多个世界状态规则。一般而言,大多数提交者208负责将事务块提交给区块链,并且不需要在其本地世界状态数据库中与该提交者所属的实体不相关的数据/信息。照此,一个或多
个世界状态规则可应用于特定实体内的所有提交者,或每个提交者可具有应用的不同世界状态规则。这些实施例可以减少特定实体内的相关信息的冗余副本的数量。例如,在一些实施例中,存储在一个节点内的相关信息可以不同于特定实体内的另一节点。在这些实施例中,区块链网络200和/或特定实体可确定具有数据的额外副本是多余的。
58.在一个或多个提交者节点206与由实体策略202管理的特定实体相关联(例如,容纳于其中)的实施例中,应用于与特定实体相关联的一个或多个提交者208的世界状态规则可验证相关信息(例如,来自读取集)的键和版本。尽管在一些实施例中,在提交者208更新事务并将块提交给区块链之前执行此验证,但在其他实施例中,提交者208可在事务和块被提交给区块链之后执行此验证。在实施例中,一旦提交者208验证键和版本集和/或将世界状态规则应用于数据以包括相关信息,提交者208(例如由实体策略202配置的)就选择性地将相关信息写到与提交者208相关联的本地世界状态数据库。
59.现在参见图3,其说明根据本公开的实施例的用于选择性地更新区块链网络中的一个或多个世界状态数据库的示例方法300的流程图。在一些实施例中,方法300可由区块链网络(例如,区块链网络200)内的一个或多个对等节点来执行。在一些实施例中,方法300开始于操作301,其中处理器接收对智能合同的请求。在一些实施例中,方法300进行到操作302,其中处理器生成实体策略。实体策略提供与特定实体相关联的一个或多个世界状态规则。在一些实施例中,方法300进行到操作304,其中处理器响应于接收到智能合同而更新特定实体的世界状态数据库,其中一个或多个世界状态规则影响特定实体的世界状态数据库不同于影响第二实体的世界状态数据库。
60.在一些实施例中,如所描绘的,在操作304之后,方法300可以结束。
61.在以下讨论的一些实施例中,为了简化处理器进一步执行的操作/步骤,方法300的一个或多个操作未被描绘。
62.在实施例中,响应于接收智能合同,处理器可以使用实体策略确定智能合同是否与特定实体相关联。在实施例中,处理器可以识别与特定实体相关联的一个或多个世界状态规则。处理器然后可以将一个或多个世界状态规则和智能合同应用到特定实体的世界状态数据库。
63.在实施例中,处理器可以基于一个或多个世界状态规则确定来自智能合同的相关信息。在这些实施例中,该过程或可以更新特定实体的世界状态数据库以包括相关信息。在实施例中,处理器可保留区块链键和值集的副本,其中特定实体的世界状态数据库和第二实体的世界状态数据库中的每个保留区块链键值集的副本。
64.在实施例中,处理器可以选择相关信息。在这些实施例中,相关信息可由实体策略和一个或多个世界状态规则来规定。在这些实施例中,处理器可识别特定于相关信息的值,并将该值写入特定实体的世界状态数据库。
65.在实施例中,处理器可确定特定实体的世界状态数据库缺失至少一个世界状态组件。在这些实施例中,处理器可识别缺失的至少一个世界状态组件。在这些实施例中,处理器可使用提交给区块链网络的一个或多个块来填充缺失的至少一个世界状态组件。
66.在实施例中,处理器可以确定(例如经由实体策略202)特定实体具有至少一个提交者节点并且另一实体具有至少一个背书者节点。
67.在实施例中,处理器可以配置实体策略以使至少一个背书者节点免于一个或多个
世界状态规则。
68.应当理解,尽管本公开包括关于云计算的详细描述,但是本文所引用的教导的实现不限于云计算环境。相反,本公开的实施例能够结合现在已知或以后开发的任何其他类型的计算环境来实现。
69.云计算是一服务递送模型,用于实现对可配置计算资源(例如,网络、网络带宽、服务器、处理、存储器、存储、应用、虚拟机和服务)的共享池的方便、按需的网络访问,可以用最小的管理努力或与服务提供者的交互来快速配置和释放所述可配置计算资源。该云模型可以包括至少五个特性、至少三个服务模型和至少四个部署模型。
70.特性如下:
71.按需自助服务:云消费者可按需自动地单方面供应计算能力(诸如服务器时间和网络存储),而无需与服务的提供者的人类交互。
72.广泛的网络接入:能力在网络上是可用的并且通过标准机制来访问,所述标准机制促进由异构的瘦或厚客户端平台(例如,移动电话、膝上型计算机和pda)的使用。
73.资源池化:提供者的计算资源被池化以使用多租户模型服务于多个消费者,其中不同的物理和虚拟资源根据需要被动态地指派和重新指派。存在部分独立性的意义,因为消费者一般没有对所提供的资源的确切部分的控制或了解,但可能能够指定较高抽象水平(例如,国家、州或数据中心)处的部分。
74.快速弹性:可以快速且弹性地供应能力(在一些情况下,自动地)以快速缩小并且快速释放以快速放大。对于消费者,可用于供应的能力通常显得不受限制,并且可以在任何时间以任何数量被购买。
75.测量的服务:云系统通过利用适于服务类型(例如,存储、处理、带宽和活动用户账户)的某种抽象水平的计量能力来自动控制和优化资源使用。可监视、控制和报告资源使用,从而为所利用的服务的提供者和消费者两者提供透明度。
76.服务模型如下:
77.软件即服务(saas):提供给消费者的能力是使用在云基础设施上运行的提供者的应用。应用可通过诸如web浏览器(例如,基于web的电子邮件)的瘦客户端接口从各个客户端设备访问。消费者不管理或控制包括网络、服务器、操作系统、存储或甚至个体应用能力的底层云基础设施,可能的例外是有限的用户特定的应用配置设置。
78.平台即服务(paas):向消费者提供的能力是在云基础设施上部署消费者创建或获取的应用,所述应用是使用提供者所支持的编程语言和工具来创建的。消费者不管理或控制包括网络、服务器、操作系统或存储的底层云基础设施,但是具有对所部署的应用以及可能的应用托管环境配置的控制。
79.基础设施即服务(iaas):提供给消费者的能力是供应消费者能够部署和运行可包括操作系统和应用的任意软件的处理、存储、网络和其他基本计算资源。消费者不管理或控制底层云基础设施,而是具有对操作系统、存储、所部署的应用的控制,以及对所选联网组件(例如,主机防火墙)的可能有限的控制。
80.部署模型如下:
81.私有云:云基础设施仅针对实体操作。它可以由实体或第三方管理,并且可以存在于场所内或场所外。
82.社区云:云基础设施由若干实体共享并且支持具有共享的关注(例如,任务、安全要求、策略和合规性考虑)的特定社区。它可以由实体或第三方管理,并且可以存在于场所内或场所外。
83.公共云:使云基础设施对公众或大型产业组可用并且由销售云服务的实体拥有。
84.混合云:云基础架构是两个或更多个云(私有、社区或公共的)的组成,这些云保持唯一实体但通过实现数据和应用便携性的标准化或专有技术(例如,用于云之间的负载均衡的云突发)来绑定在一起。
85.云计算环境是面向服务的,关注于无状态性、低耦合、模块性和语义互操作性。云计算的核心是包括互连节点网络的基础设施。
86.图4a描绘了云计算环境410。如图所示,云计算环境410包括一个或多个云计算节点400,云消费者使用的本地计算设备(诸如例如个人数字助理(pda)或蜂窝电话400a、台式计算机400b、膝上型计算机400c和/或汽车计算机系统400n)可与云计算节点400通信。节点400可以彼此通信。它们可以被物理地或虚拟地分组(未示出)在一个或多个网络中(诸如上文描述的私有云、社区云、公共云或混合云或其组合)。
87.这允许云计算环境410提供基础设施、平台和/或软件作为云消费者不需要维护本地计算设备上的资源的服务。应当理解,图4a中示出的计算设备400a-n的类型仅旨在是说明性的,并且计算节点400和云计算环境410可通过任何类型的网络和/或网络可寻址连接(例如,使用web浏览器)与任何类型的计算机化设备通信。
88.图4b说明了由云计算环境410(图4a)提供的功能抽象层的集合。预先应当理解,图4b中所示的部件、层和功能旨在仅是说明性的,并且本公开的实施例不限于此。如下所述,提供了以下层和对应的功能。
89.硬件和软件层415包括硬件和软件组件。硬件组件的示例包括:主机402;基于risc(精简指令集计算机)架构的服务器404;服务器406;刀片服务器408;存储设备411;以及网络和联网组件412。在一些实施例中,软件组件包括网络应用服务器软件414和数据库软件416。
90.虚拟化层420提供抽象层,从该抽象层可以提供虚拟实体的以下示例:虚拟服务器422;虚拟存储424;虚拟网络426,包括虚拟专用网络;虚拟应用和操作系统428;以及虚拟客户端430。
91.在一个示例中,管理层440可以提供下面描述的功能。资源供应442提供用于执行云计算环境内的任务的计算资源和其他资源的动态获取。计量和定价444在云计算环境内利用资源时提供成本跟踪,并针对这些资源的消费进行计费或开票。在一个示例中,这些资源可以包括应用软件许可证。安全性为云消费者和任务提供身份核实,以及对数据和其他资源的保护。用户门户446为消费者和系统管理员提供对云计算环境的访问。服务水平管理448提供云计算资源分配和管理,使得满足所需的服务水平。服务水平协议(sla)计划和履行450提供云计算资源的预安排和采购,根据sla预期该云计算资源的未来要求。
92.工作负载层460提供可以利用云计算环境的功能的示例。可以从该层提供的工作负载和功能的示例包括:映射和导航462;软件开发和生命周期管理464;虚拟教室教育交付466;数据分析处理468;事务处理470;以及选择性地更新一个或多个世界状态数据库472。
93.图5说明了根据本公开的实施例的示例计算机系统501的高级框图,该计算机系统
可以用于实现在此描述的方法、工具和模块中的一项或多项以及任何相关功能(例如,使用计算机的一个或多个处理器电路或计算机处理器)。在一些实施例中,计算机系统501的主要部件可以包括一个或多个cpu502、存储器子系统504、终端接口512、存储接口516、i/o(输入/输出)设备接口514和网络接口518,所有这些都可以直接地或间接地通信地耦合,用于经由存储器总线503、i/o总线508和i/o总线接口单元510的部件间通信。
94.计算机系统501可包含一个或多个通用可编程中央处理单元(cpu)502a、502b、502c和502d,在此统称为cpu502。在一些实施例中,计算机系统501可以包含相对大的系统的典型的多个处理器;然而,在其他实施例中,计算机系统501可以可替代地是单个cpu系统。每个cpu 502可执行存储在存储器子系统504中的指令,并且可包括一级或多级机载高速缓存。
95.系统存储器504可包括易失性存储器形式的计算机系统可读介质(诸如随机存取存储器(ram)522或高速缓存存储器524)。计算机系统501还可以包括其他可移除/不可移除、易失性/非易失性计算机系统存储介质。仅通过举例,存储系统526可以被提供用于从不可移除、非易失性磁性介质(诸如“硬盘驱动器”)读取和向其写入。尽管未示出,可以提供用于读写可移除非易失性磁盘(例如,“软盘”)的磁盘驱动器,或者用于读写诸如cd-rom、dvd-rom或其他光学介质之类的可移除非易失性光盘的光盘驱动器。此外,存储器504可包括闪存(例如,闪存棒驱动器或闪存驱动器)。存储器设备可通过一个或多个数据介质接口连接到存储器总线503。存储器504可包括具有被配置为执行各个实施例的功能的(例如,至少一个)程序模块的集合的至少一个程序产品。
96.各自具有至少一组程序模块530的一个或多个程序/实用工具528可被存储在存储器504中。程序/实用工具528可包括管理程序(也称为虚拟机监视器)、一个或多个操作系统、一个或多个应用程序、其他程序模块和程序数据。操作系统、一个或多个应用程序、其他程序模块和程序数据中的每一个或其某一组合可包括网络环境的实施方式。程序528和/或程序模块530通常执行不同实施例的功能或方法。
97.尽管存储器总线503在图5中被示出为在cpu 502、存储器子系统504和i/o总线接口510之间提供直接通信路径的单个总线结构,但是在一些实施例中,存储器总线503可以包括多个不同的总线或通信路径,其可以以各种形式中的任何形式(诸如分层、星形或web配置中的点到点链路、多个分层总线、并行和冗余路径或任何其他适当类型的配置)被布置。此外,虽然i/o总线接口510和i/o总线508被示出为单个相应的单元,但是在一些实施例中,计算机系统501可以包含多个i/o总线接口单元510、多个i/o总线508、或两者。进一步,虽然示出了将i/o总线508与运行到各个i/o设备的不同通信路径分开的多个i/o接口单元,但是在其他实施例中,一些或所有i/o设备可以直接被连接到一个或多个系统i/o总线。
98.在一些实施例中,计算机系统501可以是具有很少或没有直接用户接口但从其他计算机系统(客户端)接收请求的多用户大型计算机系统、单用户系统或服务器计算机或类似设备。进一步,在一些实施例中,计算机系统501可被实现为台式计算机、便携式计算机、膝上型或笔记本计算机、平板计算机、袖珍计算机、电话、智能电话、网络交换机或路由器、或任何其他适当类型的电子设备。
99.应注意,图5旨在描绘示例性计算机系统501的代表性主要部件。然而,在一些实施例中,单个组件可具有比图5中表示的更大或更小的复杂性,可存在除了图5中所示的那些
组件之外的组件,且此类组件的数目、类型和配置可改变。
100.如本文中更详细论述,设想本文中所描述的方法的一些实施例的一些或所有操作可按替代次序执行或可根本不执行;此外,多个操作可以同时发生或作为较大过程的内部部分发生。
101.本公开可以是处于任何可能的集成技术细节水平的系统、方法和/或计算机程序产品。所述计算机程序产品可包括其上具有计算机可读程序指令的计算机可读存储介质(或介质),所述计算机可读程序指令用于致使处理器执行本发明的各个方面。
102.计算机可读存储介质可以是可以保留和存储指令以供指令执行设备使用的有形设备。计算机可读存储介质可以是例如但不限于电子存储设备、磁存储设备、光存储设备、电磁存储设备、半导体存储设备或前述各项的任何合适的组合。计算机可读存储介质的更具体示例的非穷举列表包括以下:便携式计算机盘、硬盘、随机存取存储器(ram)、只读存储器(rom)、可擦除可编程只读存储器(eprom或闪存)、静态随机存取存储器(sram)、便携式光盘只读存储器(cd-rom)、数字通用盘(dvd)、记忆棒、软盘、机械编码设备(诸如穿孔卡或具有记录在其上的指令的凹槽中的凸起结构)、以及前述的任意合适组合。如本文中所使用的计算机可读存储介质不应被解释为瞬态信号本身(诸如无线电波或其他自由传播的电磁波、通过波导或其他传输介质传播的电磁波(例如,通过光纤电缆的光脉冲)、或通过导线传输的电信号)。
103.本文所述的计算机可读程序指令可从计算机可读存储介质下载到相应的计算/处理设备,或经由网络(例如,因特网、局域网、广域网和/或无线网络)下载到外部计算机或外部存储设备。网络可以包括铜传输电缆、光传输光纤、无线传输、路由器、防火墙、交换机、网关计算机和/或边缘服务器。每个计算/处理设备中的网络适配器卡或网络接口从网络接收计算机可读程序指令,并将计算机可读程序指令转发用于存储在相应计算/处理设备内的计算机可读存储介质中。
104.用于执行本公开的操作的计算机可读程序指令可以是汇编指令、指令集架构(isa)指令、机器指令、机器相关指令、微代码、固件指令、状态设置数据、集成电路的配置数据、或以一种或多种编程语言的任何组合编写的源代码或目标代码,这些编程语言包括面向对象的编程语言(诸如smalltalk、c 等)和过程式编程语言(诸如“c”编程语言或类似的编程语言)。计算机可读程序指令可完全在用户的计算机上执行、部分在用户的计算机上执行、作为独立软件包执行、部分在用户的计算机上部分在远程计算机上执行、或者完全在远程计算机或服务器上执行。在后一种情形中,远程计算机可以通过任何类型的网络(包括局域网(lan)或广域网(wan))连接到用户的计算机,或者可以连接到外部计算机(例如,通过使用因特网服务提供商的因特网)。在一些实施例中,电子电路(包括例如可编程逻辑电路、现场可编程门阵列(fpga)或可编程逻辑阵列(pla))可以通过利用计算机可读程序指令的状态信息来执行计算机可读程序指令以使电子电路个性化,以便执行本公开的各个方面。
105.本文中参考根据本发明的实施例的方法、装置(系统)和计算机程序产品的流程图说明和/或框图来描述本发明的各个方面。应当理解,流程图和/或框图的每个方框以及流程图和/或框图中各方框的组合,都可以由计算机可读程序指令来实现。
106.这些计算机可读程序指令可以被提供给计算机或其他可编程数据处理装置的处理器以产生机器,使得经由计算机或其他可编程数据处理装置的处理器执行的指令创建用
于实现在流程图和/或框图的一个或多个块中指定的功能/动作的装置。这些计算机可读程序指令也可以被存储在计算机可读存储介质中,所述计算机可读存储介质可以导引计算机、可编程数据处理装置和/或其他设备以特定方式工作,使得具有存储在其中的指令的计算机可读存储介质包括制品,所述制品包括实现流程图和/或框图中的一个或多个方框中指定的功能/动作的各个方面的指令。
107.计算机可读程序指令也可以被加载到计算机、其他可编程数据处理装置或其他设备上,以使得一系列操作步骤在计算机、其他可编程装置或其他设备上执行以产生计算机实现的过程,使得在计算机、其他可编程装置或其他设备上执行的指令实现在流程图和/或框图的一个或多个框中指定的功能/动作。
108.附图中的流程图和框图说明了根据本公开的各个实施例的系统、方法和计算机程序产品的可能实现的架构、功能和操作。对此,流程图或框图中的每个方框可以代表模块、段或指令的一部分,其包括用于实现指定的逻辑功能的一个或多个可执行指令。在一些替代实施例中,框中所标注的功能可以不以图中所标注的次序发生。例如,取决于所涉及的功能,连续示出的两个框实际上可以作为一个步骤完成、同时、基本同时地、以部分或全部时间上重叠的方式执行,或者这些框有时可以以相反的顺序执行。还将注意的是,框图和/或流程图中的每个框、以及框图和/或流程图中的框的组合可以由基于专用硬件的系统来实现,所述基于专用硬件的系统执行指定的功能或动作或执行专用硬件与计算机指令的组合。
109.已经出于说明的目的呈现了本公开的各个实施例的描述,但是并不旨在是详尽的或局限于所公开的实施例。在不脱离所描述的实施例的范围和精神的情况下,许多修改和变化对本领域的普通技术人员而言将是显而易见的。选择在此使用的术语以最佳地解释实施例的原理、实际应用或在市场上找到的技术上的技术改进,或使得本领域普通技术人员能够理解在此公开的实施例。尽管已根据具体实施例描述了本公开,但预期其改变和修改对于本领域技术人员而言将变得显而易见。因此,以下权利要求旨在被解释为覆盖落入本公开的真实精神和范围内的所有此类改变和修改。
再多了解一些

本文用于企业家、创业者技术爱好者查询,结果仅供参考。

发表评论 共有条评论
用户名: 密码:
验证码: 匿名发表

相关文献