CN116529723A - Dlt网络的自动合并 - Google Patents
Dlt网络的自动合并 Download PDFInfo
- Publication number
- CN116529723A CN116529723A CN202180080550.7A CN202180080550A CN116529723A CN 116529723 A CN116529723 A CN 116529723A CN 202180080550 A CN202180080550 A CN 202180080550A CN 116529723 A CN116529723 A CN 116529723A
- Authority
- CN
- China
- Prior art keywords
- blockchain
- blockchain network
- chain code
- merging
- merged
- 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.)
- Pending
Links
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/20—Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
- G06F16/23—Updating
- G06F16/2308—Concurrency control
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/20—Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
- G06F16/24—Querying
- G06F16/245—Query processing
- G06F16/2455—Query execution
- G06F16/24553—Query execution of query operations
- G06F16/24558—Binary matching operations
- G06F16/2456—Join operations
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/20—Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
- G06F16/23—Updating
- G06F16/2379—Updates performed during online database operations; commit processing
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/20—Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
- G06F16/24—Querying
- G06F16/245—Query processing
- G06F16/2455—Query execution
- G06F16/24553—Query execution of query operations
- G06F16/24554—Unary operations; Data partitioning operations
- G06F16/24556—Aggregation; Duplicate elimination
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/20—Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
- G06F16/27—Replication, distribution or synchronisation of data between databases or within a distributed database system; Distributed database system architectures therefor
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Databases & Information Systems (AREA)
- Data Mining & Analysis (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Computational Linguistics (AREA)
- Computing Systems (AREA)
- Financial Or Insurance-Related Operations Such As Payment And Settlement (AREA)
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
- Management, Administration, Business Operations System, And Electronic Commerce (AREA)
Abstract
示例操作可以包括以下中的一个或多个:接收合并第一区块链网络和第二区块链网络的请求,请求包括指定网络结构的脚本;将脚本与第一区块链网络和第二区块链网络的配置数据合成以生成多个合并操作;以及基于多个合并操作将第一区块链网络与第二区块链网络合并以创建合并的区块链网络,其中所述合并包括将来自第一区块链网络和第二区块链网络的链码和通道合并成合并的链码和合并的通道。
Description
背景技术
集中式平台在单个位置中存储和维护数据。该位置通常是中央计算机,例如,云计算环境、web服务器、大型计算机等。存储在集中式平台上的信息典型地可从多个不同点访问。多个用户或客户端工作站可例如基于客户端/服务器配置在集中式平台上同时工作。集中式平台由于其单个位置而易于管理、维护和控制,尤其是出于安全的目的。在集中式平台内,数据冗余被最小化,因为所有数据的单个存储位置也意味着给定数据集仅具有一个主要记录。
发明内容
一个示例实施例提供一种装置,该装置包括处理器,该处理器被配置成进行以下操作中的一个或多个:接收合并第一区块链网络和第二区块链网络的请求,所述请求包括指定网络结构的脚本,将所述脚本与所述第一区块链网络和所述第二区块链网络的配置数据合成以生成多个合并操作,以及基于所述多个合并操作,将所述第一区块链网络与所述第二区块链网络合并,以创建合并的区块链网络,其中,所述处理器将来自所述第一区块链网络和所述第二区块链网络的链码和通道合并成合并的链码和合并的通道。
另一示例实施例提供一种方法,该方法包括以下操作中的一个或多个:接收合并第一区块链网络和第二区块链网络的请求,该请求包括指定网络结构的脚本,将所述脚本与所述第一区块链网络和所述第二区块链网络的配置数据合成以生成多个合并操作,以及基于所述多个合并操作将所述第一区块链网络与所述第二区块链网络合并以创建合并的区块链网络,其中,所述合并包括将来自所述第一区块链网络和所述第二区块链网络的链码和通道合并成合并的链码和合并的通道。
又一示例实施例提供一种包括指令的非暂时性计算机可读介质,所述指令在由处理器读取时使所述处理器执行以下操作中的一个或多个:接收合并第一区块链网络和第二区块链网络的请求,所述请求包括指定网络结构的脚本,将所述脚本与所述第一区块链网络和所述第二区块链网络的配置数据合成以生成多个合并操作,以及基于所述多个合并操作,将所述第一区块链网络与所述第二区块链网络合并,以创建合并的区块链网络,其中,所述合并包括将来自所述第一区块链网络和所述第二区块链网络的链码和通道合并成合并的链码和合并的通道。
附图说明
图1A是示出根据示例实施例的合并多个区块链网络的过程的示图。
图1B是示出根据示例实施例的输入用于执行合并操作的数据的过程的示图。
图1C是示出根据示例实施例的合并多个区块链网络的元素的过程的示图。
图1D是示出根据示例实施例的将脚本转换为合并操作的过程的示图。
图2A是示出根据示例实施例的示例区块链架构配置的示图。
图2B是示出根据示例实施例的在节点之间的区块链事务流程的示图。
图3A是示出根据示例实施例的许可网络的示图。
图3B是示出根据示例实施例的另一个许可网络的示图。
图3C是示出根据示例实施例的无许可网络的示图。
图4A-图4C是示出根据示例实施例的合并链码的过程的示图。
图5是示出根据示例实施例的合并多个区块链网络的方法的示图。
图6A是示出根据示例实施例的被配置为执行本文描述的一个或多个操作的示例系统的示图。
图6B是示出根据示例实施例的被配置为执行本文描述的一个或多个操作的另一示例系统的示图。
图6C是示出根据示例实施例的被配置为利用智能合同的又一示例系统的示图。
图6D是示出根据示例实施例的被配置为利用区块链的再一示例系统的示图。
图7A是示出根据示例实施例的新块被添加到分布式分类账的过程的示图。
图7B是示出根据示例实施例的新数据块的数据内容的示图。
图7C是示出根据示例实施例的用于数字内容的区块链的示图。
图7D是示出根据示例实施例的可表示区块链中的块的结构的块的示图。
图8A是示出根据示例实施例的存储机器学习(人工智能)数据的示例区块链的示图。
图8B是示出根据示例实施例的示例量子安全区块链的示图。
图9是示出支持一个或多个示例实施例的示例系统的示图。
具体实施方式
将容易理解的是,如在本文的附图中大体描述和图示的,本发明的部件可以以各种不同的配置布置和设计。因此,如附图中表示的方法、装置、非暂时性计算机可读介质和系统中的至少一个的实施例的以下详细描述并不旨在限制所要求保护的应用的范围,而是仅仅表示所选择的实施例。
在一个或多个实施例中,如贯穿本说明书所描述的本发明的特征、结构或特性可以以任何适合的方式被组合或移除。例如,贯穿本说明书的短语“示例实施例”、“一些实施例”或其他类似语言的使用是指以下事实:结合实施例所描述的特定特征、结构或特性可以包括在至少一个实施例中。因此,贯穿本说明书出现的短语“示例实施例”、“在一些实施例中”、“在其它实施例中”或其它类似语言不一定都指同一组实施例,并且在一个或多个实施例中,可以任何合适的方式组合或去除所描述的特征、结构或特性。另外,在示图中,元素之间的任何连接可以允许单向和/或双向通信,即使所描绘的连接是单向或双向箭头。还有,在附图中描绘的任何设备可以是不同的设备。例如,如果移动设备被示为发送信息,则有线设备也可被用于发送该信息。
此外,尽管在实施例的描述中可以使用术语“消息”,但是应用可以被应用于许多类型的网络和数据。此外,尽管在示例性实施例中可以描绘特定类型的连接、消息和信令,但是本申请不限于特定类型的连接、消息和信令。
示例实施例提供方法、系统、组件、非暂时性计算机可读介质、设备和/或网络,其被引导到基于脚本来自动合并分布式分类账网络(例如,区块链等)。
根据各个方面,可以将多个区块链网络合并在一起以形成包括合并的区块链分类账、合并的链码、合并的通道等的组合网络。可以向不同区块链中的每一个中包括的组织提供增加的数据访问和事务能力。例如,拥有合并的区块链网络中的区块链对等方的组织将具有比先前网络中的更大的可见性,保留他们在先前网络中具有的相同访问控制,包括访问更多事务和事务对等方的扩展的区块链分类账,等等。结果,被合并在一起的区块链对等方可以在新的/不同的区块链对等方之间进行事务处理。此外,合并过程可以基于来自每个区块链网络的脚本和配置数据来被自动化。
在一个实施例中,本申请利用作为分布式存储系统的分散式数据库(诸如区块链),该分布式存储系统包括彼此通信的多个节点。分散式数据库包括类似于能够在互不信任方之间维护记录的分布式分类账的仅附加不可变数据结构。不可信任方在本文中称为对等方或对等节点。每个对等方维护数据库记录的副本,并且没有单个对等方可以修改数据库记录,而在分布式对等方之间没有达成一致。例如,对等方可执行一致协议以验证区块链存储事务,将存储事务分组成区块,并在区块上构建散列链。为了一致性,该过程根据需要通过对存储事务进行排序来形成分类账。在各个实施例中,可以使用许可和/或非许可区块链。在公共区块链或非许可区块链中,任何人都可以在没有特定身份的情况下参与。公共区块链可以涉及本地加密货币并且使用基于不同协议(诸如工作证明(PoW))的共识。另一方面,许可区块链数据库提供共享共同目标但不完全相互信任的一组实体之间的安全交互,诸如交换资金、商品、信息等的企业。
本申请可以利用操作任意、可编程逻辑的区块链,其被定制为分散式存储方案并且被称为“智能合同”或“链码”。在一些情况下,可存在被称为系统链码的管理功能和参数的专用链码。应用还可以利用智能合同,智能合同是可信的分布式应用,其利用区块链数据库的防篡改性质和节点之间的基础协议,这被称为背书(endorsement)或背书策略。与本申请相关联的区块链事务在被提交至区块链之前可以被“背书”,而未被背书的事务被忽略。背书策略允许链码以对于背书所必需的对等节点集合的形式指定用于事务的背书者。当客户端将事务发送给背书策略中指定的对等方时,执行该事务以验证事务。在验证之后,事务进入排序阶段,其中使用共识协议产生被分组为块的背书事务的有序序列。
本申请可以利用作为区块链系统的通信实体的节点。在不同类型的多个节点可在同一物理服务器上运行的意义上,“节点”可执行逻辑功能。节点被分组在信任域中并且与以不同方式控制它们的逻辑实体相关联。节点可以包括不同类型,诸如向背书者(例如,对等方)提交事务调用并且向排序服务(例如,订购节点)广播事务建议的客户端或提交-客户端节点。另一类型的节点是对等节点,其可接收客户端提交的事务、提交事务并维持区块链事务的分类账的状态和副本。对等方也可以具有背书者的角色,尽管它不是必需的。排序-服务-节点或排序方是为所有节点运行通信服务的节点,并且其实现递送保证,诸如在提交事务和修改区块链的世界状态时向系统中的每个对等节点广播,该世界状态是初始区块链事务的另一名称,其通常包括控制和设置信息。
该应用能够利用分类账,该分类账是区块链的所有状态转换的排序、防篡改记录。状态转换可以由参与方(例如,客户端节点、排序节点、背书者节点、对等节点等)提交的链码调用(即,事务)引起。每个参与方(诸如对等节点)可维护分类账的副本。事务可以导致一组资产关键值对作为一个或多个操作数被提交到分类账,诸如创建、更新、删除等。分类账包括用于在块中存储不可变的排序记录的区块链(也称为链)。分类账还包括维护区块链的当前状态的状态数据库。
本申请可以利用作为事务日志的链,所述事务日志被构造为散列链接的块,并且每个区块包含N个事务的序列,其中N等于或大于一。区块头部包括区块的事务的散列以及先前区块的头部的散列。以这种方式,分类账上的所有事务可被排序和加密地链接在一起。因而,不可能篡改分类账数据而不破坏散列链接。最近添加的区块链区块的散列表示在链之前已经出现的每个事务,从而使得可以确保所有对等节点都处于一致且可信的状态。链可存储在对等节点文件系统(即,本地的、附加的存储、云等)上,有效地支持区块链工作负载的仅附加性质。
不可变分类账的当前状态表示包括在链事务日志中的所有键的最新值。因为当前状态表示通道已知的最新键值,所以有时将其称为世界状态。链码调用执行针对分类账的当前状态数据的事务。为了使这些链码交互有效,键的最新值可以存储在状态数据库中。状态数据库可以简单地是到链的事务日志中的索引视图,因此可以在任何时间从链中重新生成它。在对等节点启动时并且在接受事务之前,可以自动恢复(或者如果需要的话生成)状态数据库。
组织的业务需求可演进。为了解决这个问题,该组织可以将它们所依赖的网络和应用与其他组织链接。存在执行这种链接的不同技术,包括激活链接机制或依赖于成员来充当用于经由代理或进程链接的资产和数据交换的管道。然而,这两种技术都产生了显著的工程开销。
当两个网络具有高度共性(例如,公共商业目的、活动、用户等)时,合并网络可以向涉及的组织提供增加的机会,而不增加开销。在示例实施例中,主机平台可以将多个区块链网络合并在一起,从而为在任何网络中拥有区块链对等方的组织开辟新的机会。例如,执行类似功能的两个区块链网络(例如,金融服务、出口商/进口商、物流、供应链参与者等)可被组合到提供对数据的增加的访问和增加的事务处理能力的单个网络中。
作为非限制性示例,在两个单独的区块链网络上的两个不相交的银行组可以一起合并到一个统一的区块链网络中。由此,两组银行可以经由单个区块链分类账一起事务处理。在该示例中,先前的区块链分类账可以一起合并成一个较大的区块链分类账。同样地,可以将彼此相同或相关的不同区块链上的链码合并在一起。此外,由这些链码操作的数据可以被重新配置/重新命名以与新的合并的链码一起工作。合并过程可以是自动的。因此,不同区块链网络的管理员和开发者不需要通过手动执行合并操作来花费时间和风险错误。
在一些实施例中,被合并的不同区块链网络可被构建在相同的区块链框架(诸如超分类账结构)上。链码(部署的智能合同)可水平或垂直合并。在水平合并中,两个区块链网络可各自具有使用相同键值执行相同功能或使用相似键值执行相同功能的链码。这里,可以通过保持一个链码和删除另一个来合并两个链码,同时重新配置由删除的链码创建的分类账数据(例如,键值对)以与剩余的链码一起工作。例如,重新配置可以包括键值的重命名键名以防止重复键、映射键值等。
在垂直合并中,主机可以将第一区块链网络的第一链码链接在一起,第一区块链网络的第一链码触发第二区块链网络上的第二链码的执行。在这种情况下,包括在第二链码中的代码可以被聚合在一起以形成具有第一链码和第二链码两者的功能的一个更大的链码。此外,当第一链码和第二链码的分类账数据(键值)指代相同的数据项目时,它们可以被组合并且映射到一起。
图1A示出了根据示例实施例的合并多个区块链网络110和120的过程100A。参照图1A,诸如云平台、网络服务器、用户设备等的主机平台140可用于将多个区块链网络合并在一起。在图1A的示例中,两个区块链网络110和120合并在一起以创建合并网络130。然而,还应当理解,多于两个的区块链网络可以合并在一起。还应当理解,示例实施例不限于区块链,而是可以将任何种类的分布式分类账网络合并在一起。
在图1A的示例中,区块链网络110包括三个区块链对等方,其基于来自区块链网络110的区块链的区块数据,使用在其上运行的链码进行事务处理。同样地,区块链网络120包括五个区块链对等方(其与区块链网络110的三个对等方不相交),其基于来自区块链网络120的区块链的区块数据使用在其上运行的链码进行事务处理。如关于图1B、图1C和图1D中的示例进一步描述的,主机平台140可以合并两个区块链网络110和120以创建合并的区块链网络130。在合并期间,主机平台140可以合并链码、区块链、对等成员、一致协议等。
图1B示出了根据示例实施例的输入用于执行合并操作的数据的过程100B。参照图1B,主机平台140包括合成器141、组织合并模块142、链码合并模块143、分类账合并模块144、以及也可以执行共识协议合并的排序者合并模块145。这里,合成器141可从合并两个区块链网络110和120接收脚本161,该脚本161包括用户定义的指令。脚本可以包括具有关于两个区块链网络110和120将如何合并的指令的声明性语句。脚本可以是机器可读的格式,诸如JavaScript对象表示法(JSON)、可扩展标记语言(XML)、又一标记语言(YML)、数据逻辑等。在一些实施例中,用户可经由用户设备150上的开发环境来开发脚本。作为另一示例,主机平台140可以在用户设备150的屏幕152上输出用户界面。这里,用户界面可包括从用户接收输入文本的预定义字段。在这种情况下,输入可被反馈到主机平台140,其中使用预定义的模板等将其转换为脚本161。
合成器141还可接收分别包括区块链网络110和120的配置数据的配置数据文件162和163。可以包括在配置数据文件162和163中的配置数据的示例包括通道信息、对等ID、证书权限信息、链码信息、访问策略信息、共识协议信息、排序服务信息、区块链分类账信息等。配置数据文件162和163还可以包括连接配置文件。如下文关于图1D中的示例进一步描述,合成器141可合成脚本161内的指令和配置文件162和163内的配置数据以产生可由处理设备执行以将两个区块链网络110和120自动合并到合并网络130中的一系列操作。
图1C示出了根据示例实施例的合并两个区块链网络110和120的元素的过程。参见图1B和图1C,组织合并模块142可基于由主机平台创建的一系列合并操作(例如,图1D中所示的合并操作170)将来自两个区块链网络110和120的组织数据合并在一起以创建合并网络130的合并组织数据131。这里,合并的组织数据131可包括对等方成员信息、不同对等方的访问权限、唯一对等方标识符(例如,URL等)等。组织数据131还可以包括新合并的区块链网络130的通道信息。这里,组织合并模块142可以创建通道,将来自两个区块链网络110和120的对等方加入创建的通道,基于网络配置来更新通道的配置,向组织添加成员服务提供商(MSP),将认证机构与对等方相关联,等等。
组织合并模块142可以基于合并操作170选择组织及其对等方以包括在合并的区块链网络130中。认证机构可以保持不变或者它们可以被组织合并模块142改变。组织合并模块142可以基于合并操作170重命名基本组织、将组织合并到基本组织中、标识要添加到基本组织的认证机构、更新通道信息、加入对等方等。在一些实施例中,组织合并模块142还可以执行优化过程,其根据优化算法选择对等方并在对等方之间重新分配对等方和认证机构。
链码合并模块143被配置为将两个区块链网络110和120上的链码合并在一起,以基于合并操作170来生成合并的链码132。如在图4A-4C的示例中进一步描述的,链码合并模块143可以执行水平合并(其消除重复的或类似的链码)和垂直合并(其将来自两个不同的链接的链码的代码组合在一起)。在一些实施例中,链码合并模块143可以解析原始链码,识别其中的特征,修改任何代码,将代码合并在一起,修改由链码生成的底层键值以便与新的/合并的链码一起工作,等等。在合并之后,合并的链码132能够执行来自第一区块链网络110和第二区块链网络120的区块链分类账数据的事务。
分类账合并模块144被配置为将两个区块链网络110和120中的两个不相交的区块链合并在一起以基于合并操作170创建合并的区块链分类账133,该合并的区块链分类账133可以包括合并的链和合并的状态数据库(世界状态)。例如,分类账合并模块144可以创建具有第一区块链上的最终区块的散列和第二区块链的最终区块的散列的合并块,以将新的区块链链接到第一区块链和第二区块链。合并块合并两个区块链的历史并且使得两个区块链的先前事务能够被验证(即,经由先前散列)。分类账合并模块144还可以被配置为在合并的区块链对等方上安装和实例化链码(包括合并的链码)。
合并的块可以是合并的区块链分类账133上的合并的区块链的第一区块。分类账合并模块144还可以在合并之前将区块链的先前区块传播到其他相应网络的对等方。因此,区块链网络110的区块链对等方可以接收区块链网络120的区块链对等方的先前区块,反之亦然。在合并的区块链网络130上的新添加的事务可以被添加到合并的区块链。
排序合并模块145被配置成基于合并操作170将两个区块链网络110和120的排序服务(排序节点)合并在一起以生成合并的排序134。排序合并模块145可以从网络110和120排序节点二者创建节点的排序群集,并且实现期望的共识协议。在一些情况下,两个区块链网络110和120可以包括两个不同的共识协议(例如,法定个数要求、对等方的角色、背书者对等方等)。排序合并模块145可合并不同的共识协议,从而在两个区块链网络110和120之间产生单个共识协议。
图1D示出了根据示例实施例的将脚本转换成合并操作170的过程100D。参考图1D,主机平台140的合成器141可以接收脚本161(其包括用户定义的指令)以及表示区块链网络110和120的网络信息的配置文件162和163,并且生成合并操作序列170。合并操作序列170可由处理设备执行以自动执行区块链网络110和120的合并以创建合并网络130。
脚本161可在高级别捕获合并的网络的期望的最终状态的用户意图。这里,用户脚本可识别将被合并的两个区块链网络的初始状态和包括两个区块链网络的合并的区块链网络的最终状态。脚本161可包括主题(组织、通道、链码等)并指定合并网络的目标。脚本161可识别要重新命名的导入、数据、对等方、通道和链码、要合并的主题、所遵循的策略(例如,背书、共识等)等。脚本161可以用诸如JSON、YAML、XML、Datalog等的预定义的语言来编写。脚本161可通过向导或通过用户接口生成。配置文件162和163可以是任何期望的文件,例如,JSON、XML等。
操作序列170可包括将由处理设备执行和包括计算机可读指令的命令(例如,导入、生成、执行、循环等)。例如,命令可以包括导入命令以便从配置文件162和163输入数据,生成命令以生成对等方标识符、新配置文件、更新的通道信息等,“用于”循环,以用于针对网络中的每个对等方处理指令,诸如添加对等方、重命名对等方、将认证机构关联到对等方等。执行操作序列170的结果是如图1A所示的组合网络130。
图2A示出了根据示例实施例的区块链架构配置200。参照图2A,区块链架构200可包括某些区块链元素,例如,一组区块链节点202。区块链节点202可以包括一个或多个节点204-210(这四个节点仅通过示例来描绘)。这些节点参与许多活动,诸如区块链事务添加和确认过程(共识)。区块链节点204-210中的一个或多个可以基于背书策略对事务进行背书,并且可以为架构200中的所有区块链节点提供排序服务。区块链节点可发起区块链认证并试图写入存储在区块链层216中的区块链不可变分类账,其副本也可存储在支撑物理基础设施214上。区块链配置可以包括被链接到应用编程接口(API)222以访问和执行所存储的程序/应用代码220(例如,链码、智能合同等)的一个或多个应用224,所存储的程序/应用代码220可以根据参与者寻求的定制配置来创建并且可以维护其自己的状态、控制其自己的资产和接收外部信息。这可以被部署为事务并且经由附加到分布式分类账而被安装在所有区块链节点204-210上。
区块链基础或平台212可包括不同层的区块链数据、服务(例如,加密信任服务、虚拟执行环境等)和支撑物理计算机基础设施,所述基础设施可用于接收和存储新事务并提供对试图访问数据条目的审核者的访问。区块链层216可以暴露接口,该接口提供对处理程序代码和参与物理基础设施214所必需的虚拟执行环境的访问。加密信任服务218可用于验证事务(诸如资产交换事务)并保持信息私有。
图2A的区块链架构配置可经由由区块链平台212暴露的一个或多个接口和提供的服务来处理和执行程序/应用代码220。代码220可以控制区块链资产。例如,代码220可以存储和转移数据,并且可以由节点204-210以智能合同和相关联的链码的形式来执行,该链码具有经受其执行的条件或其他代码元素。作为非限制性示例,可以创建智能合同以执行提醒、更新和/或受到改变、更新等的其他通知。智能合同本身可用于识别与分类账的授权和访问要求和使用相关联的规则。例如,智能合同(或执行智能合同的逻辑的链码)可以读取区块链数据226,区块链数据226可以由包括在区块链层216中的一个或多个处理实体(例如,虚拟机)处理,以在复杂服务场景内生成包括警报、确定责任等的结果228。物理基础设施214可用于检索本文所述的任何数据或信息。
智能合同可以经由高级应用和编程语言创建,并且然后被写到区块链中的区块。智能合同可以包括利用区块链(例如,区块链对等方的分布式网络)注册、存储和/或复制的可执行代码。事务是智能合同逻辑的执行,其可以响应于与智能合同相关联的条件被满足而执行。智能合同的执行可以触发对数字区块链分类账的状态的可信任修改。由智能合同执行引起的对区块链分类账的修改可以通过一个或多个共识协议遍及区块链对等方的分布式网络被自动复制。
智能合同可以以键值对的格式向区块链写入数据。此外,智能合同代码可以读取存储在区块链中的值,并在应用操作中使用它们。智能合同代码可以将不同逻辑操作的输出写入区块链内的一个或多个区块中。代码可以用于在虚拟机或其他计算平台中创建临时数据结构。写入区块链的数据可以是公共的和/或可以被加密并维持为私有的。由智能合同使用/生成的临时数据由供应的执行环境保存在存储器中,然后一旦识别了区块链需要的数据就删除。
链码可以包括智能合同的代码解释(例如,逻辑)。例如,链码可以包括智能合同内的逻辑的打包和可部署版本。如本文所描述的,链码可以是部署在计算网络上的程序代码,其中链码在共识过程期间由链验证者一起执行和验证。链码可以接收散列并且从区块链中检索与通过使用先前存储的特征提取器创建的数据模板相关联的散列。如果散列标识符的散列和从所存储的标识符模板数据创建的散列匹配,则链码向所请求的服务发送授权密钥。链码可以向区块链写入与加密细节相关联的数据。
图2B示出了根据示例实施例的区块链的节点之间的区块链事务流250的示例。参考图2B,事务流可包括将事务建议291传输至背书对等节点281的客户端节点260。背书对等方281可验证客户端签名并且执行链码功能以发起事务。输出可以包括链码结果、在链码中读取的键/值版本的集合(读取集合)、以及在链码中写入的键/值的集合(写入集合)。这里,背书对等方281可以确定是否背书事务提议。如果被批准,提议响应292连同背书签名一起被发送回客户端260。客户端260将背书组装成事务有效载荷293并将其广播至排序服务节点284。排序服务节点284然后将排序事务作为区块递送到通道上的所有对等方281-283。在提交到区块链之前,每个对等方281-283可以验证事务。例如,对等方可检查背书策略以确保指定对等方的正确分配已对结果签名并对事务有效载荷293验证签名。
再次参考图2B,客户端节点通过构建请求并将请求发送至作为背书者的对等节点281来发起事务291。客户端260可以包括利用所支持的软件开发工具包(SDK)的应用,所述SDK利用可用的API来生成事务提议。提议是调用链码功能以使得数据可以被读取和/或写入到分类账(即,为资产写入新的键值对)的请求。SDK可以充当垫片以将事务提议封装成合适的架构化格式(例如,远程过程调用(RPC)上的协议缓冲器)并采用客户端的加密证书来产生事务提议的唯一签名。
作为响应,背书对等节点281可验证(a)事务提议形成良好,(b)事务在过去尚未被提交(重放攻击保护),(c)签名有效,以及(d)提交者(在该示例中,客户端260)被适当地授权以在该通道上执行所提议的操作。背书对等节点281可以将事务提议输入作为对所调用的链码函数的自变量。然后,对照当前状态数据库执行链码以产生包括响应值、读取集合和写入集合的事务结果。然而,此时没有对分类账进行更新。在292中,该值集合连同背书对等节点281的签名作为提议响应292被传递回客户端260的SDK,SDK解析应用消费的有效载荷。
作为响应,客户端260的应用检查/验证背书对等方的签名,并且比较提议响应以确定提议响应是否相同。如果链码仅查询分类账,则应用将检查查询响应并且通常将不向排序节点服务284提交事务。如果客户端应用意图将事务提交给排序节点服务284以更新分类账,则应用确定在提交之前指定的背书策略是否已被满足(即,所有对等节点对事务是否背书该事务)。这里,客户端可仅包括事务的多方中的一个。在这种情况下,每个客户端可具有其自身的背书节点,并且每个背书节点将需要背书事务。该架构使得即使应用选择不检查响应或以其他方式转发未背书事务,背书策略仍将由对等方强制执行并在提交验证阶段得到保持。
在成功检查之后,在步骤293,客户端260将背书组装成事务提议,并在事务消息内向排序节点284广播该事务建议和响应。事务可包含读取/写入集合、背书对等方签名和通道ID。排序节点284不需要检查事务的全部内容以便执行其操作,相反,排序节点284可以简单地从网络中的所有通道接收事务,按通道对它们按时间顺序进行排序,并且每通道创建事务区块。
这些区块被从排序节点284递送到通道上的所有对等节点281-283。区块内的数据部分可被验证以确保背书策略被满足并确保读取集合变量的分类账状态没有改变,因为读取集合由事务执行生成。此外,在步骤295,每个对等节点281-283将块附加到通道的链,并且对于每个有效事务,写入集合被提交至当前状态数据库。可以发出事件以通知客户端应用事务(调用)已经被不可变性地附加到链,以及通知事务被验证还是被无效。
图3A示出了以分布式、分散式对等架构为特征的许可的区块链网络300的示例。在该示例中,区块链用户302可以向许可的区块链304发起事务。在该示例中,事务可以是部署、调用或查询,并且可以通过利用SDK的客户端侧应用、直接通过API等来发布。网络可以提供对诸如审核者之类的监管者306的访问。区块链网络运营商308管理成员许可,诸如将监管者306登记为“审核者”并且将区块链用户302登记为“客户端”。审核者可以仅限于查询分类账,而客户端可以被授权部署、调用和查询某些类型的链码。
区块链开发者310可写入链码和客户端侧应用。区块链开发者310可以通过接口将链码直接部署到网络。为了在链码中包括来自传统数据源312的凭证,开发者310可使用带外连接来访问数据。在该示例中,区块链用户302通过对等节点314连接到许可的区块链304。在进行任何事务之前,对等节点314从管理用户角色和许可的认证机构316检索用户的注册和事务证书。在一些情况下,区块链用户必须拥有这些数字证书以便在许可的区块链304上进行事务处理。同时,尝试利用链码的用户可能被要求在传统数据源312上验证他们的凭证。为了确认用户的授权,链码可以使用通过传统处理平台318到该数据的带外连接。
图3B示出了以分布式、分散式对等架构为特征的许可的区块链网络320的另一示例。在该示例中,区块链用户322可以向许可的区块链324提交事务。在该示例中,事务可以是部署、调用或查询,并且可以通过利用SDK的客户端侧应用、直接通过API等来发布。网络可以提供对诸如审核者之类的监管者326的访问。区块链网络运营商328管理成员许可,诸如将监管者326注册为“审核者”并且将区块链用户322注册为“客户端”。审核者可以仅限于查询分类账,而客户端可以被授权部署、调用和查询某些类型的链码。
区块链开发者330写入链码和客户端侧应用。区块链开发者330可以通过接口将链码直接部署到网络。为了在链码中包括来自传统数据源332的凭证,开发者330可以使用带外连接来访问数据。在该示例中,区块链用户322通过对等节点334连接到网络。在进行任何事务之前,对等节点334从认证机构336检索用户的注册和事务证书。在一些情况下,区块链用户必须拥有这些数字证书以便在许可的区块链324上进行事务处理。同时,尝试利用链码的用户可能被要求在传统数据源332上验证他们的凭证。为了确认用户的授权,链码可以使用通过传统处理平台338到该数据的带外连接。
在一些实施例中,本文中的区块链可以是非许可的区块链。与要求允许加入的许可的区块链相反,任何人都可以加入非许可的区块链。例如,为了加入非许可的区块链,用户可通过提交事务并因此将条目添加到分类账来创建个人地址并开始与网络交互。此外,所有方具有在系统上运行节点以及采用挖掘协议来帮助验证事务的选择。
图3C示出了由包括多个节点354的非许可的区块链352处理的事务的过程350。发送者356希望经由非许可的区块链352向接收者358发送支付或某一其他形式的价值(例如,契约、医疗记录、合同、商品、服务或可被封装在数字记录中的任何其他资产)。在一个实施例中,发送者设备356和接收者设备358中的每一个可具有提供用户界面控制和事务参数的显示的数字钱包(与区块链352相关联)。作为响应,事务贯穿区块链352被广播至节点354。取决于区块链352的网络参数,节点基于非许可的区块链352创建者建立的规则(其可以是预定义的或动态分配的)来验证360事务。例如,这可以包括验证所涉及的各方的身份等。可以立即验证事务,或者可以将其与其他事务放置在队列中,并且节点354基于网络规则集确定事务是否有效。
在结构362中,将有效事务形成为块并且用锁(散列)密封。该过程可以通过挖掘节点354中的节点来执行。挖掘节点可以利用另外的软件,其特别地用于针对非许可的区块链352挖掘和创建区块。每个区块可由使用由网络商定的算法创建的散列(例如,256比特数等)来标识。每个区块可包括头部、指向链中的先前区块的头部的散列的指针或引用、以及一组有效事务。对先前区块的散列的引用与区块的安全独立链的创建相关联。
在区块可以被添加到区块链之前,区块必须被验证。对非许可的区块链352的验证可包括工作证明(PoW),其是从区块的头部导出的谜题的解。虽然在图3C的示例中未示出,但是用于验证区块的另一过程是权益证明(proof-of-stake)。与工作证明不同,其中,算法用权益证明来奖励解决数学问题的挖掘者,新区块的创建者以确定性方式被选择,取决于其财富,也被定义为“权益(stake)”。然后,由选定的/选择的节点执行类似的证明。
利用挖掘364,节点尝试通过对一个变量进行增量改变直到解满足全网络目标来解决区块。这创建PoW,从而确保正确答案。换言之,潜在的解决方案必须证明在解决该问题时耗尽计算资源。在一些类型的非许可的区块链中,可以为挖掘者奖励用于正确挖掘区块的价值(例如,硬币等)。
这里,PoW过程在区块的链接旁边使得区块链的修改极其困难,因为攻击者必须修改所有后续区块以便接受一个区块的修改。此外,随着新区块被挖掘,修改区块的难度增加,并且后续区块的数量增加。通过分发366,成功验证的区块被分发通过非许可的区块链352,并且所有节点354将该块添加到作为非许可的区块链352的可审计的分类账的多数链中。此外,将由发送者356提交的事务中的值存入或以其他方式传送到接收者设备358的数字钱包。
图4A-图4C示出了根据示例实施例的合并链码的过程。例如,图4A示出了具有相同代码的水平合并的过程410,图4B示出了具有相同功能代码的水平合并的过程420,并且图4C示出了将两个不同的链码链接在一起的垂直合并的过程430(例如,其中,第一链码触发第二链码)。
参照图4A,第一区块链网络的链码411和第二区块链网络的链码412被合并以创建合并的链码413。在该示例中,链码411和链码412包括相同的程序代码(例如,具有可能的模空白空间差异)。这里,主机平台可以删除链码411和412中的一个,并为合并的链码413选择剩余的链码。因此,合并的链码413是相同的链码411和412中的一个的选择。由合并的链码413执行的业务逻辑与链码411和链码412的相应逻辑相同。可以基于预定义模板执行合并,预定义模板指定使用哪个代码、丢弃/删除哪个代码、如何合并由链码411和412使用的底层数据(例如,存储在状态数据库414和415中)等。
例如,模板可以指根据特定映射函数将某些代码特征修改为不同的代码特征。解析器可解析原始源代码,并且每当任何部分与模板中存在的代码特征匹配时,可应用映射函数以产生不同的源代码。
除了合并链码411和412之外,主机平台还可以分别合并链码411和412的数据集414和415。此处,数据集414包括由链码411创建、更新、存储等的键值对,并且数据集415包括由链码412创建、更新、存储等的键值对。在合并期间,数据集414和415两者都可被传送到存储在合并的区块链网络上的键值的所得数据集416。这里,主机平台可将数据集414和415之一导入所得数据集416中,并基于预定义函数来修改另一剩余数据集以防止重复键名。例如,主机平台可将数据集414导入数据集416并修改数据集415,使得每个键包括附加标识符(例如,第二区块链网络的网络ID等)以辨别数据集414的重复值。
在一些实施例中,为了避免与已存在于数据集414(或已导入数据集416中的另一数据集)中的键名冲突,数据集415的键可基于模板中的指令来修改,例如经由模式生成器等。例如,键‘abc123’可存储在数据集414和415中。在该示例中,数据集415中的键‘abc123’可用存储在模板中的第二区块链网络的网络标识符‘Network2’来修改以生成修改/重命名的键标识符‘Network2.abc123’。这确保合并不会重写数据。
参照图4B,第一区块链网络的链码421和第二区块链网络的链码422被合并以创建合并的链码423。在该示例中,链码421和链码422包括执行相同功能的程序代码,然而,所使用的键的标识符是不同的。这里,主机平台可以删除链码421和422中的一个,并为合并的链码423选择剩余的链码。因此,合并的链码423是相同的链码421和422之一的选择。由合并的链码423执行的业务逻辑与链码421和链码422的相应逻辑相同。
类似于图4A的示例,主机平台可以将由链码421创建的键值对的数据集424与由链码422生成的键值对的数据集425合并,以生成合并的数据集426,该合并的数据集426被存储在合并的区块链网络的状态数据库中。在该示例中,合并可用网络标识符和用户提供的功能来修改数据集之一的键名。用户提供的函数可以用于映射数据集424和数据集425之间的键名,从而将合并的分类账中的数据值链接在一起。
参照图4C,第一区块链网络的链码431和第二区块链网络的链码432被合并以创建合并的链码433。在该示例中,链码431和链码432包括已经链接执行的不同程序代码。例如,来自链码431中的功能的输出可以是到链码432的功能的输入。这里,主机平台可以从链码431和432中的每一个提取程序代码,并且在合并的链码433内组合所提取的程序代码。因此,两个程序代码可以被加在一起以创建包括链码431和432两者的功能的更大的程序代码。即,由合并的链码433执行的业务逻辑与结合链码432的相应逻辑的链码431的相应逻辑相同。
合并两个不同合同程序类似于通过从一个图中的节点(表示状态)向另一图中的节点添加箭头来链接两个不同的图。这产生表示单个程序的单个图。在代码方面,在合并的链码433中的最终合同代码将包含来自链码431和432两者的代码,其中在两个代码之间的函数调用被插入在合并的链码433中的正确位置处。
这种合并的链码433的示例可以在物流合作伙伴与贸易金融合作伙伴合并的场景中表示。在这个示例中,物流网络可以执行以下步骤:(a1)进口方提交购买订单以从出口方购买某些货物,(a2)出口方提交发票,(a3)装运发送到海洋运输商,(a4)海洋运输商创建提单,以及(a5)海洋运输商将装运交付到进口方。同时,贸易金融伙伴可能需要发票触发付款过程,包括以下步骤:(b1)出口方提交发票,(b2)银行验证发票和其他装运细节,和(b3)从进口方向出口方发起付款。
这两个过程(a)和(b)可通过在第一网络中完成步骤(a2)之后自动地在第二网络中调用步骤(bl)来合并。可在图1B和图1D的示例中描述的脚本161中指定这种类型的链接。利用这两个过程如何被链接的信息,主机平台可以在(a2)完成时添加调用以调用(b1)。
除了合并链接的链码431和432之外,主机平台可以将由链码431创建的键值对的数据集434与由链码432生成的键值对的数据集435合并,以生成合并的数据集436,该合并的数据集436被存储在合并的区块链网络的状态数据库中。在该示例中,合并可以识别数据集434和435两者中的指代相同资产的键,并且在最终数据集436中仅保留该键值的一个副本。
图5示出了根据示例实施例的合并多个区块链网络的方法500。作为非限制性示例,方法500可以由诸如云平台、web服务器、数据库等的主机平台区块链网络执行。参考图5,在510中,所述方法可以包括接收合并第一区块链网络和第二区块链网络的请求,其中所述请求包括指定网络结构的脚本。作为示例,脚本可以是由开发者使用预定义格式(例如,JSON、XML、YAML、Datalog等)创建的文档或文件。在一些实施例中,系统可以提供具有用于由用户输入的字段的用户界面。在该示例中,系统可以取得输入并基于预定义的模板将它们转换成脚本。脚本可以包括声明性语句,其表达用户关于应当如何组合不同的区块链网络的意图。
在520中,该方法可包括将脚本与第一区块链网络和第二区块链网络的配置数据合成以生成多个合并操作。这里,配置数据可以包括网络拓扑、智能合同(链码)信息、对等成员信息、区块链分类账信息、组织信息等。配置数据可以与脚本合并以生成可以由处理器执行的多个操作(或命令),以将第一区块链网络和第二区块链网络自动合并在一起。在一些实施例中,合成可以包括解析脚本以在合并之前生成第一区块链网络和第二区块链网络的初始状态并且在合并之后生成合并的区块链网络的最终状态,以及确定要执行的操作序列以将初始状态转换成最终状态。
在530中,方法可以包括基于多个合并操作将第一区块链网络与第二区块链网络合并以创建合并的区块链网络,其中合并包括将来自第一区块链网络和第二区块链网络的链码和通道合并成合并的链码和合并的通道。在一些实施例中,合并链码可以包括将来自第一区块链网络的第一链码与第二区块链网络的第二链码合并,并且将第一链码和第二链码的键值对组合到合并的链码的状态数据库中。
在一些实施例中,合并可以包括:检测包括与第二区块链网络的第二链码相同的代码的第一区块链网络的第一链码;删除第二链码;以及将第一链码配置为在由第二链码创建的键值对上操作。在一些实施例中,合并可以包括:检测第一区块链网络的第一链码的输出被链接到第二区块链网络的第二链码的输入;将第一链码添加到第二链码以生成合并的链码;以及将合并的链码配置成在由第一链码和第二链码创建的键值对上操作。在一些实施例中,合并可包括将来自第一区块链网络的区块链对等方和来自第二区块链网络的区块链对等方合并到合并的区块链网络中的公共通道上。在一些实施例中,所述合并可以包括经由合并块在合并的区块链网络的合并的通道上合并第一区块链网络的第一区块链与第二区块链网络的第二区块链。
在一些实施例中,所述合并可以包括合并至少三个包括第一区块链网络和第二区块链网络的区块链网络,以及至少一个以上的区块链网络,以产生一个更大的组合的区块链网络。这里,系统可以同时合并三个或更多个区块链网络或者顺序地合并三个或更多个区块链网络,例如,一次一个,以生成更大的组合的区块链网络。
图6A示出了包括被配置为执行根据示例实施例的各种操作的物理基础设施610的示例系统600。参考图6A,物理基础设施610包括模块612和模块614。模块614包括区块链620和智能合同630(其可以驻留在区块链620上),智能合同630可以执行包括在任何示例实施例中的任何操作步骤608(在模块612中)。步骤/操作608可以包括所描述或描绘的实施例中的一个或多个,并且可以表示从一个或多个智能合同630和/或区块链620写入或读取的输出或写入信息。物理基础设施610、模块612和模块614可以包括一个或多个计算机、服务器、处理器、存储器和/或无线通信设备。此外,模块612和模块614可以是相同的模块。
图6B示出了根据示例实施例的被配置为执行各种操作的另一示例系统640。参考图6B,系统640包括模块612和模块614。模块614包括区块链620和智能合同630(其可以驻留在区块链620上),智能合同630可以执行包括在任何示例实施例中的任何操作步骤608(在模块612中)。步骤/操作608可以包括所描述或描绘的实施例中的一个或多个,并且可以表示从一个或多个智能合同630和/或区块链620写入或读取的输出或写入信息。物理基础设施610、模块612和模块614可以包括一个或多个计算机、服务器、处理器、存储器和/或无线通信设备。此外,模块612和模块614可以是相同的模块。
图6C示出了根据示例实施例的被配置为在订约方之间利用智能合同配置的示例系统和被配置为在区块链上强制执行智能合同条款的调解服务器。参考图6C,配置650可以表示由明确识别一个或多个用户设备652和/或656的智能合同630驱动的通信会话、资产传输会话或过程或程序。智能合同执行的执行、操作和结果可以由服务器654管理。智能合同630的内容可能需要作为智能合同事务的各方的实体652和656中的一个或多个的数字签名。智能合同执行的结果可以作为区块链事务被写到区块链620。智能合同630驻留在可以驻留在一个或多个计算机、服务器、处理器、存储器和/或无线通信设备上的区块链620上。
图6D示出了根据示例实施例的包括区块链的系统660。参考图6D的示例,应用编程接口(API)网关662提供用于访问区块链逻辑(例如,智能合同630或其他链码)和数据(例如,分布式分类账等)的公共接口。在该示例中,API网关662是用于通过将一个或多个实体652和656连接至区块链对等方(即,服务器654)来对区块链执行事务(调用、查询等)的公共接口。这里,服务器654是区块链网络对等组件,其持有世界状态和分布式分类账的副本,允许客户端652和656查询关于世界状态的数据以及将事务提交到区块链网络中,其中,根据智能合同630和背书策略,背书对等方将运行智能合同630。
以上实施例能够以硬件、由处理器执行的计算机程序、固件或以上的组合来实现。计算机程序可实施于计算机可读介质上,例如存储介质。例如,计算机程序可以驻留在随机存取存储器(“RAM”)、闪存、只读存储器(“ROM”)、可擦除可编程只读存储器(“EPROM”)、电可擦除可编程只读存储器(“EEPROM”)、寄存器、硬盘、可移动盘、致密盘只读存储器(“CD-ROM”)、或本领域已知的任何其他形式的存储介质中。
示例性存储介质可耦合到处理器,使得处理器可从存储介质读取信息和将信息写入到存储介质。在替代方案中,存储介质可与处理器成一体。处理器和存储介质可驻留在专用集成电路(“ASIC”)中。在替代方案中,处理器和存储介质可作为离散组件驻留。
图7A示出了根据示例实施例的新块被添加到分布式分类账720的过程700,图7B示出了根据示例实施例的用于区块链的新数据区块结构730的内容。参考图7A,客户端(未示出)可向区块链节点711、712和/或713提交事务。客户端可以是从任何源接收的指令以制定在区块链720上的活动。作为示例,客户端可以是代表请求者(诸如设备、个人或实体)行动的应用,以提议针对区块链的事务。多个区块链对等方(例如,区块链节点711、712和713)可以维护区块链网络的状态和分布式分类账720的副本。在区块链网络中可存在不同类型的区块链节点/对等方,包括背书模拟并背书由客户端提出的事务的对等方和提交验证背书、验证事务和提交事务的对等方到分布式分类账720。在此示例中,区块链节点711、712和713可执行背书者节点、提交者节点或两者的角色。
分布式分类账720包括在块中存储不可变的排序记录的区块链和维护区块链722的当前状态的状态数据库724(当前世界状态)。每通道可以存在分布式分类账720,并且每个对等方维护它们作为其成员的每个通道的分布式分类账720的其自己的副本。区块链722是事务日志,被构造为散列链接的区块,其中每个区块包含N个事务的序列。区块可包括诸如图7B中所示的各种组成部分。区块的链接(由图7A中的箭头示出)可以通过在当前区块的区块头部内添加先前区块的头部的散列来生成。以此方式,将区块链722上的所有事务排序并加密地链接在一起,从而防止篡改区块链数据而不破坏散列链接。此外,由于链接,区块链722中的最新区块代表在它之前出现的每个事务。区块链722可以存储在对等文件系统(本地或附加存储)上,所述对等文件系统支持仅附加的区块链工作负载。
区块链722和分布式分类账722的当前状态可以存储在状态数据库724中。此处,当前状态数据表示曾经包括在区块链722的链事务日志中的所有键的最新值。链调用对照状态数据库724中的当前状态执行事务。为了使这些链码交互极其有效,所有键的最新值被存储在状态数据库724中。状态数据库724可以包括进入区块链722的事务日志的索引视图,因此可以在任何时间从链中重新生成它。在事务被接受之前,在对等方启动时,状态数据库724可自动被恢复(或者如果需要的话被生成)。
背书节点从客户端接收事务,并基于模拟结果对事务进行背书。背书节点持有模拟事务建议的智能合同。当背书节点对事务进行背书时,背书节点创建事务背书,该事务背书是指示模拟事务的背书的从背书节点到客户端应用的签名响应。对事务进行背书的方法取决于可以在链码中指定的背书策略。背书策略的示例是“多数背书对等方必须对事务进行背书”。不同的通道可具有不同的背书策略。客户端应用将经背书的事务转发至排序服务710。
排序服务710接受经背书的事务,将它们排序到区块中,并且向提交对等方递送所述区块。例如,当已经达到事务阈值、定时器超时或另一条件时,排序服务710可以发起新区块。在图7A的示例中,区块链节点712是提交对等方,其已接收到新数据区块730以供存储在区块链720上。区块链中的第一区块可以称为创世区块,其包括关于区块链、其成员、存储在其中的数据等的信息。
排序服务710可以由排序方群集构成。排序服务710不处理事务、智能合同或维护共享分类账。相反,排序服务710可以接受经背书的事务并且指定那些事务被提交到分布式分类账720的顺序。可以设计区块链网络的架构,使得‘排序’的具体实现方式(例如,Solo、Kafka、BFT等)变成可插拔组件。
事务以一致的顺序被写到分布式分类账720。事务的顺序被建立以确保对状态数据库724的更新在它们被提交至网络时是有效的。与其中通过解决密码谜题或挖掘发生排序的加密货币区块链系统(例如,Bitcoin等)不同,在该示例中,分布式分类账720的各方可以选择最适合该网络的排序机制。
当排序服务710初始化新数据区块730时,新数据区块730可以被广播到提交对等方(例如,区块链节点711、712和713)。作为响应,每个提交对等方通过检查以确保读取集合和写入集合仍匹配状态数据库724中的当前世界状态来验证新数据区块730内的事务。具体地,提交对等方可以确定当背书者模拟事务时存在的读取数据是否与状态数据库724中的当前世界状态相同。当提交对等方验证事务时,事务被写到分布式分类账720上的区块链722,并且状态数据库724用来自读写集合的写入数据来更新。如果事务失败,即,如果提交对等方发现读写集合与状态数据库724中的当前世界状态不匹配,则排序到区块中的事务将仍然被包括在该区块中,但它将被标记为无效,并且状态数据库724将不被更新。
参考图7B,被存储在分布式分类账720的区块链722上的新数据区块730(也被称为数据区块)可以包括多个数据段,诸如区块头部740、区块数据750(区块数据区段)和区块元数据760。应当理解,图7B中示出的各种描述的区块及其内容(例如,新数据区块730及其内容)仅仅是示例,并非旨在限制示例实施例的范围。在常规区块中,数据部分可以将N个事务(例如,1、10、100、500、1000、2000、3000等)的事务信息存储在区块数据750内。
新数据区块730可以包括到区块头部740内的先前区块(例如,图7A中的区块链722上)的链接。具体来说,区块头部740可包含先前区块的头部741的散列。根据不同实施例,如果新数据区块730是用于将多个区块链合并在一起的合并块,则区块头部740还可以包括第二先前区块的头部742的散列(或更多取决于多少区块链被合并在一起)。区块头部740还可包括唯一区块号码、新数据区块730的区块数据750的散列等。新数据区块730的区块号码可以是唯一的并且以不同顺序分配,诸如从零开始的递增/连续顺序。
区块元数据760可存储元数据的多个字段(例如,作为字节阵列等)。元数据字段可以包括关于区块创建的签名、对最后配置区块的引用、标识区块内的有效和无效事务的事务过滤器、对区块进行排序的排序服务的存留的最后偏移等。签名、最后配置区块和排序方元数据可以由排序服务710添加。同时,区块(诸如区块链节点712)的提交者可以基于背书策略、读取/写入集合的验证等来添加有效/无效信息。事务过滤器可包括大小等于包括在区块数据750中的事务的数量的字节阵列和标识事务是否有效/无效的验证码。
图7C示出了根据本文描述的实施例的用于数字内容的区块链770的实施例。数字内容可包括一个或多个文件和相关联的信息。所述文件可包括介质、图像、视频、音频、文本、链接、图形、动画、网页、文档或其他形式的数字内容。区块链的不可变的、仅附加的方面充当保护措施来保护数字内容的完整性、有效性和真实性,从而使其适合用于法律程序中,其中可接受性规则适用,或在其中考虑证据或其中数字信息的呈现和使用以其他方式感兴趣的其他设置中。在这种情况下,数字内容可以被称为数字证据。
区块链可以各种方式形成。在一个实施例中,数字内容可以包括在区块链本身中并且从区块链本身访问。例如,区块链的每个区块可以沿着相关联的数字内容存储参考信息的散列值(例如,头部、值等)。然后可以一起加密散列值和相关联的数字内容。因此,每个块的数字内容可以通过解密区块链中的每个区块来访问,并且每个区块的散列值可以用作引用先前块的基础。这可以说明如下:
在一个实施例中,数字内容可以不包括在区块链中。例如,区块链可在没有任何数字内容的情况下存储每个区块的内容的经加密的散列。数字内容可以被存储在与原始文件的散列值相关联的另一存储区域或存储器地址中。其他存储区域可以是用于存储区块链的相同存储设备,或者可以是不同的存储区域或者甚至是单独的关系数据库。通过获得或查询感兴趣块的散列值,然后在存储区域中查找与该实际数字内容对应存储的值,可以引用或访问每个区块的数字内容。这个操作可以被执行,例如,数据库网守。这可以说明如下:
在图7C的示例实施例中,区块链770包括以有序序列加密链接的多个区块7781、7782、……、778N,其中N≥1。用于链接区块7781、7782、……、778N的加密可以是多个键控或非键控散列函数中的任何函数。在一个实施例中,区块7781、7782、……、778N经受散列函数,该散列函数从基于区块中的信息的输入产生n比特字母数字输出(其中,n是256或另一个数)。这样的散列函数的示例包括但不限于SHA类型(SHA代表安全散列算法)算法、Merkle-Damgard算法、HAIFA算法、Merkle-tree算法、基于现时的算法和非防冲突的PRF算法。在另一实施例中,区块7781、7782、……、778N可通过不同于散列函数的函数加密链接。为了说明的目的,参考散列函数(例如,SHA-2)进行以下描述。
在区块链中的区块7781、7782、……、778N中的每一个包括头部、文件的版本、以及值。由于区块链中的散列,头部和值对于每个块是不同的。在一个实施例中,该值可被包括在头部中。如下文更详细描述的,文件的版本可以是原始文件或原始文件的不同版本。
区块链中的第一块7781被称为创世区块,并且包括头部7721、原始文件7741和初始值7761。用于创世区块以及实际上在所有后续块中的散列方案可以变化。例如,第一块7781中的所有信息可被一起散列并且一次散列,或者第一块7781中的信息的每一个或一部分可被分开散列,然后可执行分开散列的部分的散列。
头部7721可以包括一个或多个初始参数,其例如可以包括版本号、时间戳、随机数、根信息、难度级、共识协议、持续时间、介质格式、源、描述性关键字和/或与原始文件7741和/或区块链相关联的其他信息。头部7721可以自动地(例如,通过区块链网络管理软件)或由区块链参与者手动地生成。与区块链中的其他区块7782至778N中的头不同,起源区块中的头部7721不参考先前的区块,仅仅因为不存在先前的区块。
创世区块中的原始文件7741可以是例如在被包括在区块链中之前在有或没有处理的情况下由设备捕获的数据。通过系统的接口从设备、介质源或节点接收原始文件7741。原始文件7741与元数据相关联,所述元数据例如可以由用户、设备和/或系统处理器手动地或自动地生成。元数据可以被包括在与原文件7741相关联的第一区块7781中。
创世区块中的值7761是基于原始文件7741的一个或多个唯一属性生成的初始值。在一个实施例中,一个或多个唯一属性可以包括原始文件7741的散列值、原始文件7741的元数据和与文件相关联的其他信息。在一个实施例中,初始值7761可基于以下唯一属性:
1)原始文件的SHA-2计算的散列值
2)始发设备ID
3)原始文件的开始时间戳
4)原始文件的初始存储位置
5)软件当前控制原始文件和关联元数据的区块链网络成员ID
在区块链中的其他区块7782至778N也具有头部、文件和值。然而,与第一区块7721不同,其他区块中的头部7722至772N中的每包括紧接在前面的区块的散列值。前一个区块的散列值可以仅是前一个区块的头部的散列或者可以是整个前一个区块的散列值。通过在剩余区块的每中包括前一块的散列值,可以在逐区块的基础上执行从第N个区块返回到创世区块(和相关联的原始文件)的跟踪,如箭头780所指示的,以建立可审计的和不可变的监管链。
其他区块中的头部7722至772N中的每一个还可以包括其他信息,例如,版本号、时间戳、随机数、根信息、难度级、共识协议和/或其他参数或与对应的文件和/或区块链相关联的信息。
在其他区块中的文件7742至774N可以等于原始文件或者可以是创世区块中的原始文件的修改版本,这取决于例如执行的处理的类型。所执行的处理的类型可从区块到区块变化。该处理可以涉及,例如,对在前区块中的文件的任何修改,如编辑信息或以其他方式改变文件的内容、将信息从这些文件带走、或将信息添加或附加到这些文件上。
另外或可替代地,处理可以涉及仅从在前块复制文件、改变文件的存储位置、分析来自一个或多个在前区块的文件、将文件从一个存储或存储器位置移动到另一个、或执行相对于区块链的文件和/或其相关联的元数据的动作。涉及分析文件的处理可以包括例如附加、包括或以其他方式将不同分析、统计或与该文件相关联的其他信息相关联。
其他区块中的其他区块7762至776N中的每一个中的值是唯一的值,并且作为所执行的处理的结果都是不同的。例如,任何一个区块中的值对应于先前区块中的值的更新版本。该更新反映在被赋值的区块的散列中。区块的值因此提供在区块中执行什么处理的指示,并且还允许通过区块链返回到原始文件的跟踪。该跟踪确认文件在整个区块链中的监管链。
例如,考虑先前区块中的文件的部分被编辑、阻挡或像素化以便保护在文件中示出的人的身份的情况。在这种情况下,包括编辑文件的块将包括与编辑文件相关联的元数据,例如,如何执行编辑、谁执行编辑、编辑发生的时间戳等。元数据可被散列以形成值。因为区块的元数据不同于经散列以在先前区块中形成值的信息,所以所述值彼此不同,且可在解密时恢复。
在一个实施例中,当发生以下任何一个或多个时,可以更新先前区块的值(例如,计算新的散列值)以形成当前区块的值。在这个示例实施例中,可以通过对以下指出的信息的全部或一部分进行散列来计算新的散列值。
a)如果文件已经以任何方式处理(例如,如果文件被编辑、复制、更改、访问或采取一些其他动作),则新SHA-2计算的散列值
b)文件的新存储位置
c)所识别的与所述文件相关联的新元数据
d)将所述文件的访问或控制从一个区块链参与者传输至另一个区块链参与者
图7D示出了根据一种实施例的可表示区块链790中的区块结构的区块的实施例。所述区块区块i包括头部772i、文件774i和值776i。
头部772i包括先前区块i-1的散列值和附加参考信息,所述附加参考信息例如可以是本文所讨论的任意类型的信息(例如,包括参考、特性、参数等的头部信息)。所有区块参考前一区块的散列,当然除了产生区块。前一区块的散列值可以仅是前一区块中的头部的散列或前一区块中的信息的全部或部分(包括文件和元数据)的散列。
文件774i包括多个数据,诸如按顺序的数据1、数据2、……、数据N。使用描述与数据相关联的内容和/或特性的元数据1、元数据2、……、元数据N对数据加标签。例如,每个数据的元数据可以包括用于指示数据的时间戳、处理数据、指示人员或数据中描绘的其他内容的关键词、和/或可以有助于作为整体建立文件的有效性和内容、并且特别是其使用数字证据的其他特征的信息,例如,如结合以下讨论的实施例所描述的。除了元数据之外,每个数据可以标记有对先前数据的参考参考1、参考2、…、参考N以防止篡改、文件中的间隙、以及通过文件的顺序引用。
一旦元数据被分配给数据(例如,通过智能合同),在没有散列改变的情况下不能更改元数据,这可以容易地被识别用于无效。因此,元数据创建可被访问以供区块链中的参与者使用的信息的数据记录。
值776i是散列值或基于先前讨论的任何类型的信息计算的其他值。例如,对于任何给定的区块i,该区块的值可被更新以反映为该块执行的处理,例如,新的散列值、新的存储位置、相关联的文件的新的元数据、控制或访问的传输、标识符、或将被添加的其他动作或信息。尽管每个区块中的值被示出为与文件的数据的元数据和头部分离,但是在另一实施例中,该值可以部分地或整体地基于该元数据。
一旦形成区块链770,在任何时间点,可以通过查询区块链以获得跨区块的值的事务历史来获得文件的不可变托管链。该查询或跟踪过程可开始于解密最当前包括的区块(例如,最后(第N)块)的值,然后继续解密其他区块的值,直到到达生成区块并恢复原始文件为止。解密还可包括在每个块解密头部和文件以及相关联的元数据。
解密是基于在每个区块中发生的加密的类型来执行的。这可涉及使用私钥、公钥或公钥-私钥对。例如,当使用非对称加密时,网络中的区块链参与者或处理器可使用预定算法生成公钥和私钥对。公钥和私钥通过某种数学关系相互关联。公钥可公开分发以用作从其他用户接收消息的地址,例如,IP地址或家庭地址。私钥被保密并且用于对发送到其他区块链参与者的消息进行数字签名。签名被包括在消息中,使得接收者可以使用发送者的公钥来验证。这样,接收者可以确信只有发送者可能已经发送该消息。
产生密钥对可类似于在区块链上创建账户,但不必实际上在任何地方注册。此外,在区块链上执行的每个事务由发送者使用其私钥进行数字签名。此签名确保仅账户的所有者能够跟踪和处理(如果在由智能合同确定的许可的范围内)区块链的文件。
图8A和图8B示出了可以合并和使用在本文中的区块链的使用情况的另外的示例。具体地,图8A示出了存储机器学习(人工智能)数据的区块链810的示例800。机器学习依赖于大量历史数据(或训练数据)来构建预测模型以便对新数据进行准确预测。机器学习软件(例如,神经网络等)经常可以筛选数百万个记录以挖掘非直观模式。
在图8A的示例中,主机平台820构建并部署用于资产830的预测监视的机器学习模型。这里,主机平台820可以是云平台、工业服务器、web服务器、个人计算机、用户设备等。资产830可以是任何类型的资产(例如,机器或设备等),诸如飞机、机车、涡轮机、医疗机器和设备、油气设备、船、船、交通工具等。作为另一示例,资产830可以是非有形资产,诸如股票、货币、数字硬币、保险等。
可以使用区块链810来显著地改进机器学习模型的训练过程802和基于经训练的机器学习模型的预测过程804两者。例如,在802中,不是要求数据科学家/工程师或其他用户收集数据,而是历史数据可由资产830本身(或通过中间物,未示出)存储在区块链810上。这可显著地减少主机平台820在执行预测模型训练时所需的收集时间。例如,使用智能合同,数据可以直接地并且可靠地从其起始位置直接传输到区块链810。通过使用区块链810来确保所收集的数据的安全性和所有权,智能合同可以直接将数据从资产发送到使用该数据来建立机器学习模型的个体。这允许在资产830之间共享数据。
可以基于共识机制将所收集的数据存储在区块链810中。一致机制拉入(允许节点)以确保正在记录的数据被验证并准确。所记录的数据被加时间戳、密码签名和不变。因此,它是可审计的、透明的、并且安全的。在某些情况下(即,向区块链添加直接写入的IoT设备)可以。供应链、医疗保健、物流等)增加了被记录的数据的频率和准确度。
此外,对收集的数据的机器学习模型的训练可采取由主机平台820进行的细化和测试的轮次。每个回合可以基于附加数据或先前未被考虑来帮助扩展机器学习模型的知识的数据。在802中,不同的训练和测试步骤(以及与其相关联的数据)可以由主机平台820存储在区块链810上。机器学习模型的每个细化(例如,变量、权重等的变化)可以存储在区块链810上。这提供了如何训练模型以及使用什么数据来训练模型的可验证证明。此外,当主机平台820已经实现最终训练的模型时,所得到的模型可以被存储在区块链810上。
在已经训练了模型之后,可以将其部署到现场环境,其中,其可以基于最终训练的机器学习模型的执行做出预测/决定。例如,在804中,机器学习模型可以用于诸如飞机、风力涡轮机、保健机器等资产的基于条件的维护(CBM)。在该示例中,从资产830反馈的数据可以被输入到机器学习模型并且用于进行事件预测,诸如故障事件、错误代码等。通过在主机平台820处执行机器学习模型而做出的判定可以存储在区块链810上以提供可审核/可验证的证明。作为一个非限制性示例,机器学习模型可以预测资产830的一部分的未来崩溃/失败,并且创建替换该部分的警报或通知。此决策后面的数据可由主机平台820存储在区块链810上。在一个实施例中,本文描述和/或描绘的特征和/或动作可以在区块链810上或相对于区块链810发生。
区块链的新事务可被一起聚集成新块并被添加到现有散列值。然后将其加密以创建新区块的新散列。当事务被加密时,其被添加到下一事务列表,等等。结果是各自包含所有先前区块的散列值的区块链。存储这些块的计算机定期比较它们的散列值以确保它们全部一致。任何不同意的计算机丢弃引起该问题的记录。这种方法对于确保该阻挡链的抗篡改性是良好的,但它不是完美的。
游戏该系统的一种方式是不诚实的用户以他们的偏好改变事务列表,但是以保持散列不变的方式。这可以通过强力完成,换言之,通过改变记录、加密结果以及查看散列值是否相同。并且如果不是,则反复地尝试,直到它找到匹配的散列为止。区块链的安全性基于这样的信念:普通计算机仅能够在完全不切实际的时间尺度(诸如宇宙的年龄)上执行这种暴力攻击。相比之下,量子计算机要快得多(快1000s倍)并且因此造成更大的威胁。
图8B示出了实现量子键分配(QKD)以防止量子计算攻击的量子安全区块链852的示例850。在该示例中,区块链用户可以使用QKD来验证彼此的身份。这利用诸如光子的量子粒子发送信息,在不破坏光子的情况下窃听器无法复制该信息。这样,发送者和接收者通过该区块链可以确定彼此的身份。
在图8B的示例中,存在四个用户854、856、858和860。每对用户均可在它们之间共享键862(即,QKD)。由于在该示例中存在四个节点,因此存在六对节点,因此使用六个不同的秘密键862,包括QKDAB、QKDAC、QKDAD、QKDBC、QKDBD和QKDCD。每对可以通过使用量子粒子(诸如光子)发送信息来创建QKD,该量子粒子不能被窃听者复制而不破坏它们。这样,一对用户可以确定彼此的身份。
区块链852的操作基于以下两个过程:(i)事务的创建,以及(ii)聚集新事务的区块的构造。可以类似于传统的区块链网络来创建新事务。每个事务可以包含关于发送者、接收者、创建时间、待转移的金额(或值)、证明发送者拥有用于操作的资金的参考事务的列表等的信息。该事务记录然后被发送到所有其他节点,在那里其被输入到未确认事务池中。这里,两方(即,854-860中的一对用户)通过提供其共享键862(QKD)来认证事务。该量子签名可附接至每个事务,使得其非常难以篡改。每个节点相对于区块链852的本地副本检查它们的条目以验证每个事务具有足够的资金。然而,事务尚未确认。
可以使用广播协议以分散方式创建块,而不是对块执行传统的挖掘过程。在预定时间段(例如,秒、分钟、小时等),网络可将广播协议应用于任何未确认的事务,从而实现关于事务的正确版本的拜占庭协议(共识)。例如,每个节点可以拥有私有值(该特定节点的事务数据)。在第一轮中,节点将它们的私有值传送给彼此。在随后的轮次中,节点传送它们在前一轮次从其他节点接收的信息。这里,诚实节点能够在新块内创建完整的一组事务。这个新的嵌段可以被添加到区块链852中。在一个实施例中,本文描述和/或描绘的特征和/或动作可在阻挡链852上或相对于阻挡链852发生。
图9示出了支持本文中描述和/或描绘的一个或多个示例实施例的示例系统900。系统900包括计算机系统/服务器902,其可与许多其他通用或专用计算系统环境或配置一起操作。适于与计算机系统/服务器902一起使用的众所周知的计算系统、环境和/或配置的示例包括但不限于个人计算机系统、服务器计算机系统、瘦客户机、厚客户机、手持式或膝上型设备、多处理器系统、基于微处理器的系统、机顶盒、可编程消费电子产品、网络PC、小型计算机系统、大型计算机系统和包括以上系统或设备中的任一个的分布式云计算环境等。
计算机系统/服务器902可以在由计算机系统执行的诸如程序模块之类的计算机系统可执行指令的一般上下文中描述。一般而言,程序模块可包括执行特定任务或实现特定抽象数据类型的例程、程序、对象、组件、逻辑、数据结构等。计算机系统/服务器902可以在分布式云计算环境中实践,其中任务由通过通信网络链接的远程处理设备执行。在分布式云计算环境中,程序模块可以位于包括存储器存储设备的本地和远程计算机系统存储媒质中。
如图9所示,云计算节点900中的计算机系统/服务器902以通用计算设备的形式示出。计算机系统/服务器902的组件可以包括但不限于一个或多个处理器或处理单元904、系统存储器906、以及将包括系统存储器906的不同系统组件耦合至处理器904的总线。
总线表示若干类型的总线结构中的任何一种或多种,包括存储器总线或存储器控制器、外围总线、加速图形端口、以及使用各种总线架构中的任一种的处理器或局部总线。作为示例而非限制,此类体系结构包括工业标准体系结构(ISA)总线、微通道体系结构(MCA)总线、增强型ISA(EISA)总线、视频电子标准协会(VESA)局部总线以及外围组件互连(PCI)总线。
计算机系统/服务器902通常包括各种计算机系统可读介质。这样的介质可以是可由计算机系统/服务器902访问的任何可用介质,并且其包括易失性和非易失性介质、可移动和不可移动介质。在一个实施例中,系统存储器906实现其他附图的流程图。系统存储器906可包括易失性存储器形式的计算机系统可读介质,诸如随机存取存储器(RAM)910和/或高速缓存存储器912。计算机系统/服务器902还可以包括其他可移动/不可移动、易失性/非易失性计算机系统存储媒质。仅通过示例的方式,存储系统914可以被提供用于从不可移除的非易失性磁性介质(未示出,并且通常被称为“硬盘驱动器”)进行读取和写入。尽管未示出,可以提供用于从可移动非易失性磁盘(例如,“软盘”)读取或向其写入的磁盘驱动器,以及用于从可移动非易失性光盘(如CD-ROM、DVD-ROM或其他光学介质)读取或向其写入的光盘驱动器。在这样的情况下,每一个可以通过一个或多个数据介质接口连接到总线。如以下将进一步描绘和描述的,存储器906可以包括具有被配置成用于执行该应用的不同实施例的功能的一组(例如,至少一个)程序模块的至少一个程序产品。
具有一组(至少一个)程序模块918的程序/实用程序916,以及操作系统、一个或多个应用程序、其他程序模块和程序数据,可以通过示例而非限制的方式存储在存储器906中。操作系统、一个或多个应用程序、其他程序模块和程序数据中的每一个或它们的一些组合可以包括网络环境的实现方式。程序模块918通常执行如本文所述的应用的不同实施例的功能和/或方法。
如本领域技术人员将理解的,本申请的方面可以体现为系统、方法或计算机程序产品。因此,本申请的方面可以采取完全硬件实施例、完全软件实施例(包括固件、驻留软件、微代码等)或者结合软件和硬件方面的实施例的形式,在本文中可以统称为“电路”、“模块”或“系统”。此外,本申请的方面可以采取体现在一个或多个计算机可读介质中的计算机程序产品的形式,该计算机可读介质具有体现在其上的计算机可读程序代码。
计算机系统/服务器902还可与一个或一个以上外部装置920(例如,键盘、指向装置、显示器922等)通信;和/或使计算机系统/服务器902能够与一个或多个其他计算设备通信的任何设备(例如,网卡、调制解调器等)。这样的通信可经由I/O接口924发生。此外,计算机系统/服务器902可以经由网络适配器926与诸如局域网(LAN)、通用广域网(WAN)和/或公共网络(例如,互联网)的一个或多个网络通信。如所描绘的,网络适配器926经由总线与计算机系统/服务器902的其他部件通信。应当理解,虽然未示出,但是其他硬件和/或软件组件可以与计算机系统/服务器902结合使用。示例包括但不限于:微代码、设备驱动器、冗余处理单元、外部磁盘驱动阵列、RAID系统、磁带驱动器和数据归档存储系统等。
虽然系统、方法和非暂态计算机可读介质中的至少一个的示例性实施例已经在附图中示出并且在前面的详细描述中描述,但是将理解的是,本申请不限于所公开的实施例,而是能够具有由以下权利要求阐述和定义的许多重排、修改和替换。例如,不同附图的系统的能力可由本文描述的或分布式架构中的一个或多个模块或组件来执行,并且可包括发射器、接收器或两者对。例如,由单独模块执行的功能的全部或一部分可由这些模块中的一个或多个执行。进一步,本文描述的功能可以在不同时间和关于模块或组件内部或外部的不同事件来执行。此外,在各个模块之间发送的信息可以经由数据网络、互联网、语音网络、互联网协议网络、无线设备、有线设备和/或经由多个协议中的至少一个在模块之间发送。而且,由任何模块发送或接收的消息可直接和/或经由一个或多个其他模块发送或接收。
本领域技术人员将理解,“系统”可以体现为个人计算机、服务器、控制台、个人数字助理(PDA)、蜂窝电话、平板计算设备、智能电话或任何其他合适的计算设备或设备的组合。将上述功能呈现为由“系统”执行并不旨在以任何方式限制本申请的范围,而是旨在提供许多实施例的一个实例。实际上,本文公开的方法、系统和装置可以以与计算技术一致的局部和分布式形式来实现。
应注意,本说明书中所描述的系统特征中的一些已经被呈现为模块,以便更具体地强调其实现独立性。例如,模块可以被实现为硬件电路,所述硬件电路包括定制超大规模集成(VLSI)电路或门阵列、诸如逻辑芯片、晶体管之类的现成半导体、或其他分立组件。模块也可以在可编程硬件设备(诸如现场可编程门阵列、可编程阵列逻辑、可编程逻辑设备、图形处理单元等)中实现。
模块也可以至少部分地在软件中实现,用于由不同类型的处理器执行。所标识的可执行代码单元可以例如包括可以例如被组织为对象、过程或函数的计算机指令的一个或多个物理或逻辑块。然而,所识别的模块的可执行文件不需要在物理上位于一起,而是可以包括存储在不同位置的不同指令,当逻辑地结合在一起时,所述不同指令包括模块并且实现模块的所述目的。进一步,模块可存储在计算机可读介质上,所述计算机可读介质可为(例如)硬盘驱动器、快闪装置、随机存取存储器(RAM)、磁带或用于存储数据的任何其他此类介质。
实际上,可执行代码的模块可以是单个指令或许多指令,并且甚至可以分布在几个不同的代码段上、在不同的程序之间、以及跨几个存储器设备。类似地,操作数据可以在本文中在模块内被识别和示出,并且可以以任何合适的形式体现和组织在任何合适类型的数据结构内。操作数据可以作为单个数据集来收集,或者可以分布在不同位置上,包括在不同的存储设备上,并且可以至少部分地仅仅作为电子信号存在于系统或网络上。
将容易理解的是,如在此的附图中总体上描述和展示的,本申请的这些部件可以按多种多样的不同构型来安排和设计。因此,实施例的详细描述不旨在限制所要求的应用的范围,而仅代表本申请的所选实施例。
本领域普通技术人员将容易理解,可以用不同顺序的步骤和/或用与所公开的配置不同的配置的硬件元件来实践以上内容。因此,虽然已经基于这些优选实施例描述了本申请,但是对于本领域技术人员而言显而易见的是,某些修改、变化和替代构造将是显而易见的。
虽然已经描述了本申请的优选实施例,但是应当理解的是,所描述的实施例仅是说明性的,并且当考虑对其的全范围的等效物和修改(例如,协议、硬件设备、软件平台等)时,本申请的范围将仅由所附权利要求书限定。
Claims (20)
1.一种装置,包括:
处理器,被配置为
接收合并第一区块链网络和第二区块链网络的请求,所述请求包括指定网络结构的脚本,
将所述脚本与所述第一区块链网络和所述第二区块链网络的所述配置数据合成,以生成多个合并操作,以及
基于所述多个合并操作,将所述第一区块链网络与所述第二区块链网络合并,以创建合并的区块链网络,其中,所述处理器将来自所述第一区块链网络和所述第二区块链网络的链码和通道合并成合并的链码和合并的通道。
2.根据权利要求1所述的装置,其中,所述处理器还被配置为基于经由用户界面接收的用户输入来构建所述脚本。
3.根据权利要求1所述的装置,其中,所述处理器被配置为解析所述脚本以在所述合并之前生成所述第一区块链网络和所述第二区块链网络的初始状态以及在所述合并之后生成所述合并的区块链网络的最终状态,并且确定要执行的操作序列以将所述初始状态转换成所述最终状态。
4.根据权利要求1所述的装置,其中,所述处理器被配置为将来自所述第一区块链网络的第一链码与所述第二区块链网络的第二链码合并,并且将所述第一链码和所述第二链码的键值对组合到所述合并的链码的状态数据库中。
5.根据权利要求1所述的装置,其中,所述处理器被配置为检测所述第一区块链网络的第一链码包括与所述第二区块链网络的第二链码相同的代码,删除所述第二链码,并且将所述第一链码配置为在由所述第二链码创建的键值对上进行操作。
6.根据权利要求1所述的装置,其中,所述处理器被配置为检测所述第一区块链网络的第一链码的输出被链接至所述第二区块链网络的第二链码的输入,将所述第一链码添加到所述第二链码以生成合并的链码,并且将所述合并的链码配置为在由所述第一链码和所述第二链码创建的键值对上进行操作。
7.根据权利要求1所述的装置,其中,所述处理器被配置为将来自所述第一区块链网络的区块链对等方和来自所述第二区块链网络的区块链对等方合并到所述合并的区块链网络中的公共通道上。
8.根据权利要求1所述的装置,其中,所述处理器被配置为在所述合并的区块链网络的合并的通道上经由合并块将所述第一区块链网络的第一区块链与所述第二区块链网络的第二区块链合并。
9.根据权利要求1所述的装置,其中,所述处理器被配置为合并包括所述第一区块链网络和所述第二区块链网络的三个或更多个区块链网络以生成一个组合的区块链网络。
10.一种方法,包括:
接收合并第一区块链网络和第二区块链网络的请求,所述请求包括指定网络结构的脚本;
将所述脚本与所述第一区块链网络和所述第二区块链网络的配置数据合成以生成多个合并操作;以及
基于所述多个合并操作,将所述第一区块链网络与所述第二区块链网络合并,以创建合并的区块链网络,其中,所述合并包括将来自所述第一区块链网络和所述第二区块链网络的链码和通道合并成合并的链码和合并的通道。
11.根据权利要求10所述的方法,还包括基于经由用户界面接收的用户输入来构建所述脚本。
12.根据权利要求10所述的方法,其中,所述合成包括解析所述脚本以在所述合并之前生成所述第一区块链网络和所述第二区块链网络的初始状态以及在所述合并之后生成所述合并的区块链网络的最终状态,以及确定要执行的操作序列以将所述初始状态转换成所述最终状态。
13.根据权利要求10所述的方法,其中,所述合并链码包括将来自所述第一区块链网络的第一链码与所述第二区块链网络的第二链码合并,并且将所述第一链码和所述第二链码的键值对组合到所述合并的链码的状态数据库中。
14.根据权利要求10所述的方法,其中,所述合并包括:
检测所述第一区块链网络的第一链码,所述第一链码包括与所述第二区块链网络的第二链码相同的代码,删除所述第二链码,并且将所述第一链码配置为在由所述第二链码创建的键值对上进行操作。
15.根据权利要求10所述的方法,其中,所述合并包括:
检测所述第一区块链网络的第一链码的输出被链接至所述第二区块链网络的第二链码的输入,将所述第一链码添加至所述第二链码以生成合并的链码,并且将所述合并的链码配置为在由所述第一链码和所述第二链码创建的键值对上进行操作。
16.根据权利要求10所述的方法,其中,所述合并包括将来自所述第一区块链网络的区块链对等方和来自所述第二区块链网络的区块链对等方合并到所述合并的区块链网络中的公共通道上。
17.根据权利要求10所述的方法,其中,所述合并包括在所述合并的区块链网络的合并的通道上经由合并块合并所述第一区块链网络的第一区块链与所述第二区块链网络的第二区块链。
18.根据权利要求10所述的方法,其中,所述合并包括:合并包括所述第一区块链网络和所述第二区块链网络的三个或更多个区块链网络,以生成一个组合的区块链网络。
19.一种包括指令的非暂时性计算机可读介质,所述指令在由处理器读取时使所述处理器执行一种方法,所述方法包括:
接收合并第一区块链网络和第二区块链网络的请求,所述请求包括指定网络结构的脚本;
将所述脚本与所述第一区块链网络和所述第二区块链网络的配置数据合成以生成多个合并操作;以及
基于所述多个合并操作,将所述第一区块链网络与所述第二区块链网络合并,以创建合并的区块链网络,其中,所述合并包括将来自所述第一区块链网络和所述第二区块链网络的链码和通道合并成合并的链码和合并的通道。
20.根据权利要求19所述的非暂时性计算机可读介质,其中,所述方法还包括基于经由用户界面接收的用户输入来构建所述脚本。
Applications Claiming Priority (3)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US17/108,115 US11321298B1 (en) | 2020-12-01 | 2020-12-01 | Automated merge of DLT networks |
US17/108,115 | 2020-12-01 | ||
PCT/CN2021/127013 WO2022116753A1 (en) | 2020-12-01 | 2021-10-28 | Automated merge of dlt networks |
Publications (1)
Publication Number | Publication Date |
---|---|
CN116529723A true CN116529723A (zh) | 2023-08-01 |
Family
ID=81385258
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202180080550.7A Pending CN116529723A (zh) | 2020-12-01 | 2021-10-28 | Dlt网络的自动合并 |
Country Status (6)
Country | Link |
---|---|
US (1) | US11321298B1 (zh) |
JP (1) | JP2023551160A (zh) |
CN (1) | CN116529723A (zh) |
DE (1) | DE112021005625T5 (zh) |
GB (1) | GB2615965A (zh) |
WO (1) | WO2022116753A1 (zh) |
Families Citing this family (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN117892684B (zh) * | 2024-03-18 | 2024-05-24 | 上海合见工业软件集团有限公司 | Eda软件的导线合并计算方法、装置、设备及介质 |
Family Cites Families (8)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US11347878B2 (en) * | 2015-06-02 | 2022-05-31 | ALTR Solutions, Inc. | Replacing distinct data in a relational database with a distinct reference to that data and distinct de-referencing of database data |
US10719498B2 (en) * | 2015-12-10 | 2020-07-21 | Microsoft Technology Licensing, Llc | Enhanced management capabilities for collectable data structures |
CN107045518A (zh) | 2016-10-18 | 2017-08-15 | 北京天德科技有限公司 | 一种区块链的扩展设计方法 |
TWI659373B (zh) | 2018-02-14 | 2019-05-11 | 財團法人工業技術研究院 | 區塊鏈系統及應用其的方法 |
CN108932348B (zh) | 2018-08-16 | 2020-06-30 | 北京京东尚科信息技术有限公司 | 区块链的合并处理方法、装置、区块链节点及存储介质 |
US11288280B2 (en) * | 2018-10-31 | 2022-03-29 | Salesforce.Com, Inc. | Systems, methods, and apparatuses for implementing consumer data validation, matching, and merging across tenants with optional verification prompts utilizing blockchain |
JP6867481B2 (ja) * | 2018-11-30 | 2021-04-28 | アドバンスド ニュー テクノロジーズ カンパニー リミテッド | ブロックチェーンネットワーク内のスマートアセットの原子移動のためのプラットフォーム |
US11194770B2 (en) | 2019-05-02 | 2021-12-07 | International Business Machines Corporation | Database mergeable ledgers |
-
2020
- 2020-12-01 US US17/108,115 patent/US11321298B1/en active Active
-
2021
- 2021-10-28 WO PCT/CN2021/127013 patent/WO2022116753A1/en active Application Filing
- 2021-10-28 JP JP2023530216A patent/JP2023551160A/ja active Pending
- 2021-10-28 CN CN202180080550.7A patent/CN116529723A/zh active Pending
- 2021-10-28 GB GB2308232.4A patent/GB2615965A/en not_active Withdrawn
- 2021-10-28 DE DE112021005625.5T patent/DE112021005625T5/de active Granted
Also Published As
Publication number | Publication date |
---|---|
GB2615965A (en) | 2023-08-23 |
GB202308232D0 (en) | 2023-07-19 |
WO2022116753A1 (en) | 2022-06-09 |
JP2023551160A (ja) | 2023-12-07 |
US11321298B1 (en) | 2022-05-03 |
DE112021005625T5 (de) | 2023-09-14 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US11694110B2 (en) | Aggregated machine learning verification for database | |
CN112084257B (zh) | 有效的数据库机器学习验证 | |
CN115210741B (zh) | 部分有序的区块链 | |
CN112084255B (zh) | 机器学习应用的有效验证 | |
CN111881206B (zh) | 用于数据块的多层图像编码 | |
US11362826B2 (en) | Endorsement process for non-deterministic application | |
AU2021210206B2 (en) | Index structure for blockchain ledger | |
US11489663B2 (en) | Correlation-based hash tree verification | |
US11251938B2 (en) | Blockchain verification using non-consecutive blocks | |
US11379472B2 (en) | Schema-based pruning of blockchain data | |
CA3171999A1 (en) | Faster view change for blockchain | |
CN115211093A (zh) | 数据对象的有效阈值存储 | |
US11664973B2 (en) | Trust-varied relationship between blockchain networks | |
CN114450708A (zh) | 基于现有链码的链码推荐 | |
US11580098B2 (en) | Multi-client transaction validation | |
CN111881109B (zh) | 数据库可合并分类账 | |
CN116941265A (zh) | 区块链网络身份管理使用ssi | |
CN117999566A (zh) | 隐私保护状态引用 | |
US11416474B2 (en) | Blockchain-based software library access and usage management | |
WO2022116753A1 (en) | Automated merge of dlt networks | |
US20230091686A1 (en) | Digital asset platform with hsm verification | |
US11973857B2 (en) | Data archive | |
US20210349854A1 (en) | Batch processing | |
US20210248271A1 (en) | Document verification | |
US11556517B2 (en) | Blockchain maintenance |
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 |