首页 / 专利库 / 电脑零配件 / 接口 / 在区块链网络之间建立通信的方法和设备

链网络之间建立通信的方法和设备

阅读:14发布:2022-11-29

专利汇可以提供链网络之间建立通信的方法和设备专利检索,专利查询,专利分析的服务。并且本文公开了用于在第一 区 块 链 网络与第二区块链网络之间建立通信的方法、设备和装置,包括存储在计算机可读介质上的 计算机程序 。所述方法之一包括:将第一库嵌入 进程 中;执行所述第一库以在所述进程内创建第一边界 节点 ,其中,所述第一边界节点在所述第一区块链网络中操作;将第二库嵌入所述进程中;执行所述第二库以在所述进程内创建第二边界节点,其中,所述第二边界节点在所述第二区块链网络中操作;以及在所述进程内建立通信 接口 ,以允许所述第一边界节点与所述第二边界节点彼此通信。,下面是链网络之间建立通信的方法和设备专利的具体信息内容。

1.一种计算机实现的用于在第一链网络与第二区块链网络之间建立通信的方法,包括:
将第一库嵌入进程中;
执行所述第一库以在所述进程内创建第一边界节点,其中,所述第一边界节点在所述第一区块链网络中操作;
将第二库嵌入所述进程中;
执行所述第二库以在所述进程内创建第二边界节点,其中,所述第二边界节点在所述第二区块链网络中操作;以及
在所述进程内建立通信接口,以允许所述第一边界节点与所述第二边界节点彼此通信。
2.如权利要求1所述的方法,还包括:
获得所述第一库和所述第二库,所述第一库包括所述第一边界节点的二进制代码,所述第二库包括所述第二边界节点的二进制代码。
3.如前述任一权利要求所述的方法,其中,所述第一库还包括表示第一区块链将由所述第一边界节点管理的数据。
4.如前述任一权利要求所述的方法,其中,所述第二库还包括表示第二区块链将由所述第二边界节点管理的数据。
5.如前述任一权利要求所述的方法,其中,所述进程被实现为Java进程。
6.如权利要求5所述的方法,其中,所述Java进程利用Java本机接口JNI来嵌入和执行所述第一库和所述第二库。
7.如前述任一权利要求所述的方法,其中,所述第一边界节点和所述第二边界节点利用一个或多个函数调用彼此通信。
8.如前述任一权利要求所述的方法,其中,所述进程使处理器使用硬件级处理单元指令将单独的存储区域分配给所述第一边界节点和所述第二边界节点中的每个节点。
9.如前述任一权利要求所述的方法,其中,所述进程使处理器将可信执行环境分配给所述通信接口
10.如权利要求9所述的方法,其中,所述处理器使用密码术为分配给所述通信接口的所述可信执行环境提供硬件强制保护。
11.如前述任一权利要求所述的方法,还包括:
将第三库嵌入所述进程中;
执行所述第三库以在所述进程内创建第三边界节点,其中,所述第三边界节点在第三区块链网络中操作;以及
在所述进程内建立通信接口,以允许所述第一边界节点、所述第二边界节点和所述第三边界节点彼此通信。
12.一种用于在第一区块链网络与第二区块链网络之间建立通信的设备,包括:
一个或多个处理器;以及
耦接到所述一个或多个处理器并在其上存储有指令的一个或多个计算机可读存储器,所述指令能够由所述一个或多个处理器执行,以执行权利要求1至11中任一项所述的方法。
13.一种用于在第一区块链网络与第二区块链网络之间建立通信的装置,所述装置包括用于执行权利要求1至11中任一项所述的方法的多个模块。
14.一种其中存储有指令的非暂态计算机可读介质,当所述指令由设备的处理器执行时,使所述设备执行权利要求1至11中任一项所述的方法。

说明书全文

链网络之间建立通信的方法和设备

技术领域

[0001] 本文总体上涉及计算机技术,更具体地,涉及在区块链网络之间建立通信的方法和设备。

背景技术

[0002] 区块链系统,还被称为分布式账本系统(DLS)或共识系统,可以使参与的实体安全地且不可篡改地存储数据。在不引用任何特定用例的情况下,区块链系统可以包括任何DLS,并且可以被用于公有、私有和联盟区块链网络。公有区块链网络对所有实体开放使用该系统并参与共识处理。私有区块链网络为特定实体提供,该特定实体集中控制读写权限。联盟区块链网络为选择的实体组群提供,该实体组群控制共识处理,并包括访问控制层。
[0003] 区块链系统维护一个或多个区块链。区块链是用于存储诸如交易之类的数据的数据结构,其可以防止数据被恶意方篡改和操纵。
[0004] 使用点对点(peer-to-peer,P2P)网络实现区块链系统,其中,节点例如在不需要固定的中央服务器的情况下与彼此直接通信。P2P网络中的每个节点可以发起与P2P网络中的另一节点的通信。
[0005] 虽然节点可以与同一区块链网络中的其他节点通信,但是节点与不同区块链网络中的节点通信的能可能有限。随着区块链网络数量的增加,在区块链网络之间提供跨链通信的需求也在增加。发明内容
[0006] 在一个实施例中,一种计算机实现的用于在第一区块链网络与第二区块链网络之间建立通信的方法,包括:将第一库嵌入进程中;执行所述第一库以在所述进程内创建第一边界节点,其中,所述第一边界节点在所述第一区块链网络中操作;将第二库嵌入所述进程中;执行所述第二库以在所述进程内创建第二边界节点,其中,所述第二边界节点在所述第二区块链网络中操作;以及在所述进程内建立通信接口,以允许所述第一边界节点与所述第二边界节点彼此通信。
[0007] 在另一实施例中,一种用于在第一区块链网络与第二区块链网络之间建立通信的设备,包括:一个或多个处理器;以及耦接到所述一个或多个处理器并其上存储有指令的一个或多个计算机可读存储器,其中,所述指令能够由所述一个或多个处理器执行以:将第一库嵌入进程中;执行所述第一库以在所述进程内创建第一边界节点,其中,所述第一边界节点在所述第一区块链网络中操作;将第二库嵌入所述进程中;执行所述第二库以在所述进程内创建第二边界节点,其中,所述第二边界节点在所述第二区块链网络中操作;以及在所述进程内建立通信接口,以允许所述第一边界节点与所述第二边界节点彼此通信。
[0008] 在另一实施例中,一种其中存储有指令的非暂态计算机可读介质,当所述指令由设备的处理器执行时,使所述设备执行用于在第一区块链网络与第二区块链网络之间建立通信的方法。所述方法包括:将第一库嵌入进程中;执行所述第一库以在所述进程内创建第一边界节点,其中,所述第一边界节点在所述第一区块链网络中操作;将第二库嵌入所述进程中;执行所述第二库以在所述进程内创建第二边界节点,其中,所述第二边界节点在所述第二区块链网络中操作;以及在所述进程内建立通信接口,以允许所述第一边界节点与所述第二边界节点彼此通信。附图说明
[0009] 包含在本文中并构成其一部分的附图示出了实施例。在参考附图的以下描述中,除非另有说明,否则不同附图中的相同附图标记表示相同或相似的元件。
[0010] 图1是根据实施例的区块链系统的示意图。
[0011] 图2是根据实施例的用于在区块链网络中实现节点的计算设备的示意图。
[0012] 图3是根据实施例的支持第一区块链网络和第二区块链网络之间的跨链通信的区块链系统的示意图。
[0013] 图4是根据实施例的支持第一区块链网络、第二区块链网络和第三区块链网络之间的跨链通信的区块链系统的示意图。
[0014] 图5是根据实施例的支持第一区块链网络、第二区块链网络和第三区块链网络之间的跨链通信的区块链系统的示意图。
[0015] 图6是根据实施例的用于在不同区块链网络之间建立跨链通信的方法的流程图
[0016] 图7是根据实施例的用于在不同区块链网络之间建立跨链通信的装置的框图

具体实施方式

[0017] 本文的实施例提供了用于在区块链网络之间建立通信的方法和设备。所述方法和设备提供了建立边界节点的区块链网络能力。每个建立的边界节点可嵌入计算设备上执行的、例如单个Java进程的进程中。当两个或更多个区块链网络将他们各自的边界节点嵌入同一进程中时,各个边界节点被允许使用函数调用来彼此通信,并在他们各自的区块链网络之间建立跨链通信。
[0018] 本文中公开的实施例具有一种或多种技术效果。在一些实施例中,所述方法和设备为一个区块链网络中的节点提供与不同的区块链网络中的节点进行通信的能力。这允许多个区块链网络建立跨链通信。在其他实施例中,所述方法和设备仅需要利用在单个计算设备上执行的单个进程(例如,单个Java进程)来在两个区块链网络之间建立通信。这使得区块链网络无需建立侧链,从而降低了实现跨链通信的硬件成本。在其他实施例中,所述方法和设备允许区块链网络将他们各自的边界节点嵌入同一单个进程中,并还允许各个边界节点使用函数调用来彼此通信,从而提高了通信灵活性并提供了支持两个或更多个区块链网络之间的跨链通信的能力。在其他实施例中,所述方法和设备利用硬件级处理单元指令来将单独的私有存储区域分配给边界节点,从而为边界节点提供额外的安全性和保护。
[0019] 以下描述提供了实施例的细节。在实施例中,区块链是以交易不可篡改并随后被验证的方式存储数据(例如,交易)的数据结构。区块链包括一个或多个区块。每个区块通过包括区块链中紧邻其之前的前一区块的加密哈希值(cryptographic hash)链接到该前一区块。每个区块还可以包括时间戳、其自身的加密哈希值以及一个或多个交易。通常已经被区块链系统的节点验证的交易可以经哈希处理并被编入例如Merkle树的数据结构中。在Merkle树中,树的叶节点处的数据经哈希处理,并且在该树的每个分支中的所有哈希值在该分支的根处级联(concatenated)。沿着树持续该处理一直到整个树的根,在整个树的根处存储了代表树中所有数据的哈希值。声称是存储在树中的交易的哈希值可以通过确定该哈希值是否与树的结构一致而而被快速验证。
[0020] 区块链系统包括用于管理、更新和维护一个或多个区块链的计算节点的网络。网络可以是公有区块链网络、私有区块链网络或联盟区块链网络。例如,诸如数百、数千或甚至数百万个实体的许多实体可以在公有区块链网络中操作,并且每个实体操作该公有区块链网络中的至少一个节点。因此,公有区块链网络可以被认为是关于参与实体的公有网络。有时,大多数实体(节点)必须对每个区块签名才能使该区块有效并被添加到区块链网络的区块链中。公有区块链网络的示例包括利用分布式账本(称为区块链)的特定点对点支付网络。
[0021] 通常,公有区块链网络可以支持公开交易。公开交易为公有区块链网络内的所有节点共享,并存储在全局区块链中。全局区块链是跨所有节点复制的区块链,并且所有节点相对于全局区块链处于完全共识状态。为了达成共识(例如,同意向区块链添加区块),在公有区块链网络内实施共识协议。共识协议的示例包括工作量证明(POW)(例如,在一些加密货币网络中实施)、权益证明(POS)和权限证明(POA)。
[0022] 通常,可以为特定实体提供私有区块链网络,该特定实体集中控制读写权限。该实体控制哪些节点能够参与到区块链网络中。因此,私有区块链网络通常被称为许可网络,其限制允许谁参与网络以及它们的参与级别(例如,仅在某些交易中)。可以使用各种类型的访问控制机制(例如,现有参与者投票添加新实体,监管机构可以控制许可)。
[0023] 通常,联盟区块链网络在参与的实体之间可以是私有的。在联盟区块链网络中,共识处理由授权的节点集控制,一个或多个节点由相应的实体(例如,金融机构、保险公司)操作。例如,由十(10)个实体(例如,金融机构、保险公司)组成的联盟可以操作联盟区块链网络,每个实体可以操作联盟区块链网络中的至少一个节点。因此,联盟区块链网络可以被认为是关于参与实体的私有网络。在一些示例中,每个区块必须经每个实体(节点)签名才能被验证并被添加到区块链中。在一些示例中,每个区块必须经至少实体(节点)的子集(例如,至少7个实体)签名才能被验证并被添加到区块链中。
[0024] 图1示出了根据实施例的区块链系统100的示意图。参考图1,区块链系统100可以包括被配置为在区块链120上操作的多个节点,例如,节点102-110。节点102-110可以形成例如点对点(P2P)网络的网络112。节点102-110中的每个可以是被配置为存储区块链120的副本的计算设备,例如计算机或计算机系统;或者可以是在计算设备上运行的软件,诸如处理或应用。节点102-110中的每个可以具有唯一标识符。
[0025] 区块链120可以包括为例如图1中的区块B1-B5的数据块形式的记录的增长列表。区块B1-B5中的每个可以包括时间戳、前一区块的加密哈希值,以及本区块的数据,该数据可以是诸如货币交易之类的交易。例如,如图1所示,区块B5可以包括时间戳、区块B4的加密哈希值和区块B5的交易数据。而且,例如,可以对前一区块执行哈希操作以生成前一区块的加密哈希值。哈希操作可以通过诸如SHA-256的哈希算法将各种长度的输入转换为固定长度的加密输出。
[0026] 节点102-110可以被配置为对区块链120执行操作。例如,当节点(例如,节点102)想要将新数据存储到区块链120上时,该节点可以生成要被添加到区块链120的新区块,并将该新区块广播到网络112中的例如节点104-110的其他节点。基于新区块的合法性,例如,其签名和交易的有效性,其他节点可以确定接受该新区块,使得节点102和其他节点可以将该新区块添加到它们各自的区块链120的副本中。重复该处理,可以将越来越多的数据的区块添加到区块链120。
[0027] 图2示出了根据实施例的用于在区块链系统中实现节点(例如,节点102(图1))的计算设备200的示意图。参考图2,计算设备200可以包括通信接口202、处理器204和存储器206。
[0028] 通信接口202可以促进计算设备200与实现为网络中的其他节点(例如,节点104-110(图1))的设备之间的通信。在一些实施例中,通信接口202可支持一个或多个通信标准,例如互联网标准或协议、综合业务数字网(ISDN)标准,等等。在一些实施例中,通信接口202可以包括以下中的一个或多个:局域网(LAN)卡、电缆调制解调器、卫星调制解调器、数据总线、电缆、无线通信信道、基于无线电的通信信道、蜂窝通信信道、基于互联网协议(IP)的通信设备、或用于有线和/或无线通信的其他通信设备。在一些实施例中,通信接口202可以基于公有基础设施、私有云基础设施、混合公有/私有云基础设施。
[0029] 处理器204可以包括一个或多个专用处理单元、专用集成电路(ASIC)、现场可编程阵列(FPGA)或各种其他类型的处理器或处理单元。处理器204与存储器206耦接,并且可执行存储在存储器206中的指令。
[0030] 存储器206可以存储可由处理器执行的指令和数据,例如区块链120(图1)的副本。存储器206可以包括任何类型的易失性或非易失性存储器设备或其组合,例如静态随机存取存储器(SRAM)、电可擦除可编程只读存储器(EEPROM)、可擦除可编程只读存储器(EPROM)、可编程只读存储器(PROM)、只读存储器(ROM)、磁存储器、闪存或磁盘或光盘。当存储器206中的指令由处理器204执行时,计算设备200可以对区块链120执行操作。
[0031] 图3示出了根据实施例的区块链系统300的示意图。参考图3,系统300可以包括多个区块链网络,诸如第一区块链网络310和第二区块链网络320。第一区块链网络310可以包括例如节点312-318的多个节点,以对诸如第一区块链330的一个或多个区块链进行操作。第二区块链网络320可以包括例如节点322-328的多个节点,以对诸如与第一区块链330分离的第二区块链340的一个或多个区块链进行操作。
[0032] 第一区块链网络310还可以包括边界节点350。类似地,第二区块链网络320还可以包括边界节点360。边界节点350和360与他们各自的对等节点312-318和322-328的不同之处在于:边界节点350和360被嵌入诸如单个进程(process)370的进程中。例如,进程370可以是在单个计算设备上执行的、诸如Java进程等的单个进程。在一些实施例中,可被称为边界节点进程370的进程370可以在第一区块链网络310和第二区块链网络320之间通过它们各自的边界节点350和360建立跨链通信。
[0033] 在一些实施例中,仅当第一区块链网络310中的节点312-318中的所有或大多数节点同意创建边界节点350时,其才可被创建。同样地,在一些实施例中,仅当第二区块链网络320中的节点322-328中的所有或大多数节点同意创建边界节点360时,其才可被创建。
[0034] 在一些实施例中,进程370可以通过执行由第一区块链网络310提供(例如,发布)的第一库来创建边界节点350。第一库可以包括边界节点350的二进制代码或可执行代码。在一个实施例中,第一库还可以包括第一区块链330的副本。类似地,进程370可以通过执行由第二区块链网络320提供(例如,发布)的第二库来创建边界节点360。第二库可以包括边界节点360的二进制代码或可执行代码。在一个实施例中,第二库还可以包括第二区块链
340的副本。
[0035] 在一些实施例中,库可以包括动态链接库(DLL)。例如,DLL可以是计算机代码的模块,其包含可以由诸如应用或另一DLL的另一模块使用的函数和数据。在一些实施例中,库可以包括静态库。例如,静态库可以是一组例程、外部函数和变量,他们在编译时在调用者中解析并由编译器复制到目标应用中,从而生成目标文件和独立的可执行文件。与DLL相比,静态库可能具有更大的规模。
[0036] 在一些实施例中,进程370可以在进程内建立通信接口,以允许边界节点350与边界节点360彼此通信。例如,进程370可以包括Java进程,Java进程利用Java本机接口(JNI)来支持以包括C、C++和汇编的不同语言编写的库的执行。以这种方式,即使区块链网络310和320提供不同语言的库,进程370也能够执行库。然而,应该理解,这样的实施方式仅仅是示例,并不意味着进行限制。可以预期,在不脱离本文的精神和范围的情况下,可以使用诸如 .Net等的其他框架
[0037] 在一些实施例中,进程370可以在逻辑上分离的执行空间中创建边界节点350和360。在一个实施例中,进程370在包括处理器和存储器的计算设备上执行,并且进程370使处理器使用例如英特 软件保护扩展(SGX)的硬件级处理单元指令380为边界节点350和
360分配单独的私有存储区域。因此,进程370可以利用处理单元指令380来建立和维持边界节点350和360之间的逻辑分离。在一个实施例中,处理器具有为处理器执行的指令提供加密和隐私保护的能力。因此,进程370可以利用这些能力并为边界节点350和360提供加密和隐私保护。
[0038] 应当理解,基于诸如英特尔 的扩展实现的硬件级处理单元指令380的使用仅作为示例呈现,并不意味着进行限制。预期进程370可以利用能够提供可信执行环境(TEE)的各种类型的硬件级处理单元指令380,包括但不限于英特尔 等。一般而言,TEE可以是处理单元的、内部加载有代码和数据的安全区域。一旦创建了TEE,处理器就可以例如使用密码术为TEE提供硬件强制保护,以确保存储在TEE中的内容受到保护,而不会被该TEE之外的进程读取或写入。因此,可以在硬件级上建立TEE的机密性和完整性。在一些实施例中,进程370可以使处理单元将TEE分配给进程内的通信接口,以允许边界节点350与边界节点360彼此通信。
[0039] 在一些实施例中,一旦被创建,进程370就可以继续执行库,使得边界节点350和360可以在它们各自的区块链网络中与它们各自的对等节点一起操作。例如,边界节点350可以在第一区块链网络310中与其他节点312-318一起操作。边界节点350可以与其他节点
312-318通信并管理第一区块链330,就好像边界节点350是在第一区块链网络310中操作的常规节点一样。在一个实施例中,当新区块要被添加到第一区块链330时,边界节点350可被通知并且可确定是否接受新区块。如果接受新区块,则边界节点350可以将新区块添加到其第一区块链330的本地副本。
[0040] 类似地,边界节点360可以在第二区块链网络320中与其他节点322-328一起操作。例如,边界节点360可以与其他节点322-328通信并管理第二区块链340,就好像边界节点
360是在第二区块链网络320中操作的常规节点一样。在一个实施例中,当新区块要被添加到第二区块链340时,边界节点360可被通知并且可确定是否接受新区块。如果接受新区块,则边界节点360可以将新区块添加到其第二区块链340的本地副本。
[0041] 除了在他们各自的区块链网络中操作之外,边界节点350和360还可以在他们各自的区块链之间共同建立跨链通信。在一些实施例中,例如,第一区块链网络310可以提供将由在其他区块链网络中操作的节点调用的某些函数(或方法)。可以通过边界节点350使这些函数可用于第二区块链网络320。例如,如果需要第二区块链网络320与第一区块链网络310通信例如以进行跨链交易,则第二区块链网络320可以利用边界节点360来对边界节点
350提供的适当函数进行调用。如果适当地进行了调用,例如,具有适当的许可和正确的参数,则边界节点350可以处理该调用。如果调用是不适当的,例如,具有错误的参数等,则边界节点350可以拒绝该调用。此外,在一些实施例中,边界节点350和360正在其上执行的处理器可以利用例如英特尔 的处理单元指令380或支持TEE的其他指令,来确保调用节点(该示例中的边界节点360)被允许对被调用的节点(该示例中的边界节点350)进行调用。
[0042] 类似地,第二区块链网络320可以提供可由在其他区块链网络中操作的节点调用的某些函数(或方法),并通过边界节点360使这样的函数可用。例如,如果第一区块链网络310需要与第二区块链网络320通信,则第一区块链网络310可以利用边界节点350来调用边界节点360提供的适当函数。如果调用进行适当,则边界节点360可以处理该调用,或者如果调用不适当,则边界节点360可以拒绝该调用。在一些实施例中,例如英特尔 的处理单元指令380或支持TEE的其他指令还可用于确保调用节点(该示例中的边界节点350)被允许对被调用的节点(该示例中的边界节点360)进行调用。
[0043] 应该理解,上面呈现的说明仅仅是示例,并不意味着进行限制。例如,虽然图3中描绘的区块链网络310和320各自包括四个节点和边界节点,这样的描述仅呈现为说明性目的。应理解,区块链网络310和320可包括不同数量的节点。在不脱离本文的精神和范围的情况下,还可以添加节点或从区块链网络310和320移除节点。
[0044] 边界节点350和360还可以从它们各自的区块链网络310和320中被移除。在一些实施例中,仅在第一区块链网络310中的所有或大多数节点同意移除边界节点350的情况下,才可以将其移除。类似地,仅在第二区块链网络320中的所有或大多数节点同意移除边界节点360的情况下,才可以将其移除。
[0045] 在一些实施例中,第一区块链网络310可使用其用于移除例如节点312-318的其他节点的相同移除过程来移除边界节点350。类似地,区块链网络320可以使用其用于移除诸如节点322-328的其他节点的相同移除过程来移除边界节点360。移除边界节点350和360中的任一个节点可以产生如下效果:禁用在第一区块链网络310与第二区块链网络320之间建立的跨链通信。
[0046] 在一个实施例中,仅需要单个计算设备上执行的单个进程(例如,单个Java进程)来在两个区块链网络之间建立通信。结果,可以降低硬件成本。另外,因为区块链网络之间的通信可以使用函数调用来执行,所以与使用侧链相比,可以提高通信效率。还应注意,使用诸如英特尔 的硬件级处理单元指令或支持TEE的其他指令等来将单独的私有存储区域分配给边界节点可以为边界节点提供额外的安全性和保护。
[0047] 此外,应注意,可以利用上述进程来促进三个或更多个区块链网络之间的通信。图4示出了根据实施例的区块链系统400的示意图,该区块链系统400利用进程402来促进三个区块链网络之间的通信。进程402还可支持附加的区块链网络。
[0048] 如图4中所示,在一些实施例中,进程402可以以与进程370(图3)类似的方式操作,以在第一区块链网络(未示出)与第二区块链网络(未示出)之间建立通信。进程402可以执行第一区块链网络提供的第一库以创建边界节点404。进程402还可以执行第二区块链网络提供的第二库以创建边界节点406。进程402还可以执行第三区块链网络(未示出)提供的第三库以创建边界节点408。进程402可以进一步利用诸如英特尔 的处理单元指令410或支持TEE的其他指令等,来将单独的私有存储区域分配给边界节点404-408。然后,边界节点404-408可以利用函数调用来彼此通信,并在它们各自的区块链网络之间建立跨链通信。
[0049] 在一些实施例中,进程402可以在进程内建立通信接口以允许边界节点404-408彼此通信。例如,进程402可以包括Java进程,Java进程利用Java本机接口(JNI)来支持以包括C、C++和汇编的不同语言编写的库的执行。以这种方式,即使区块链网络提供不同语言的库,进程402也能够执行库。
[0050] 图5示出了区块链系统500的示意图,区块链系统500利用三个进程502、504和506来为三个区块链网络之间的跨链通信提供替代解决方案。
[0051] 参考图5,以类似于进程370(图3)的方式操作的进程502可用于促进第一区块链网络(未示出)与第二区块链网络(未示出)之间的通信。例如,进程502可以执行第一区块链网络提供的第一库以创建边界节点510。进程502还可以执行第二区块链网络提供的第二库以创建边界节点520。然后,边界节点510和520可用于促进第一区块链网络与第二区块链网络之间的通信。
[0052] 在一些实施例中,与进程502分离的进程504可用于促进第一区块链网络与第三区块链网络(未示出)之间的通信。例如,进程504可以执行第一区块链网络提供的第一库以创建边界节点530。进程504还可以执行第三区块链网络提供的第三库以创建边界节点540。边界节点530和540可用于促进第一区块链网络与第三区块链网络之间的通信。
[0053] 在一些实施例中,与进程502和504分离的进程506可用于促进第二区块链网络与第三区块链网络之间的通信。例如,进程506可以执行第二区块链网络提供的第二库以创建边界节点550。进程506还可以执行第三区块链网络提供的第三库以创建边界节点560。边界节点550和560可用于促进第二区块链网络与第三区块链网络之间的通信。
[0054] 在一些实施例中,所有三个进程502、504和506可以在同一计算设备上执行。然而,应该理解,这种配置仅仅是示例,并不意味着进行限制。在一些实施例中,例如,进程502、504和506可以在不同的计算设备上执行。在一些实施例中,以与进程502、504和506类似的方式配置的附加进程还可用于建立与附加区块链网络的通信。
[0055] 图6示出了根据实施例的用于在第一区块链网络与第二区块链网络之间建立跨链通信的方法600的流程图。例如,第一区块链网络和第二区块链网络可以各自实现包括多个节点的P2P网络。此外,例如,方法600可以由在类似于上述计算设备200的计算设备上执行的进程370(图3)执行。
[0056] 参考图3和图6,在步骤602,进程370可以获得第一区块链网络提供(例如,发布)的第一库,并将该第一库嵌入其自己的执行中。在步骤604,进程370可以执行第一库以创建第一边界节点,例如图3中描绘的边界节点350。在一些实施例中,进程370可以实现为Java进程,Java进程利用JNI来嵌入和执行以包括C、C++和汇编的不同语言编写的库。然而,应该理解,这样的实施方式仅仅是示例,并不意味着进行限制。
[0057] 在步骤606,进程370可以获得第二区块链网络提供(例如,发布)的第二库,并将该第二库嵌入其自己的执行中。在步骤608,进程370可以执行第二库以创建第二边界节点,例如图3中描绘的边界节点360。一旦被创建,进程370就可以继续执行包含在边界节点350和360提供的库中的二进制代码,使得边界节点350和360可以在他们各自的区块链网络310和
320中与它们各自的对等节点312-318和322-328一起操作,如图3所示。
[0058] 在步骤610,进程370可以允许第一边界节点和第二边界节点彼此通信并为他们各自的区块链网络建立跨链通信接口。在一些实施例中,进程370可以通过允许第一边界节点和第二边界节点如上所述地彼此进行授权的函数调用来建立跨链通信接口。此外,在一些实施例中,进程370可以在支持诸如英特尔 的处理单元指令或支持TEE的其他指令等的处理器上执行,所述指令可以用于向第一边界节点和第二边界节点分配单独的私有存储器空间,以提供额外的安全性。
[0059] 步骤602和604可以重复不止一次以嵌入附加库并创建附加边界节点,例如,图4中描绘的第三区块链网络的第三边界节点。另外,方法600可以重复不止一次以创建进程370的不止一个实例,例如,如图5所述的可以创建三个进程502-506,以在三个或更多区块链网络之间提供跨链通信。
[0060] 方法600还可用于为各种类型的区块链网络提供跨链通信。例如,区块链网络310和320各自可以实现为公有区块链网络、私有区块链网络或联盟区块链网络。预期在不脱离本文的精神和范围的情况下,根据本文的实施例的方法可应用于公有区块链网络、私有区块链网络和联盟区块链网络,以用于各种类型的应用,例如记账、加密货币、基于区块链的分布式账本等。
[0061] 图7示出了根据实施例的用于在第一区块链网络与第二区块链网络之间建立通信的装置700的框图。例如,装置700可以是软件进程的实现,并且可以对应于方法600(图6)。参考图7,装置700可以包括嵌入模块702、执行模块704和建立模块706。
[0062] 嵌入模块702可以将第一库嵌入进程中。执行模块704可以执行第一库以在进程内创建第一边界节点,并且第一边界节点在第一区块链网络中操作。嵌入模块702可以将第二库嵌入该进程中。执行模块704可以执行第二库以在进程内创建第二边界节点,并且第二边界节点在第二区块链网络中操作。建立模块706可以在进程内建立通信接口,以允许第一边界节点与第二边界节点彼此通信。
[0063] 上述模块中的每一个可以被实现为软件或硬件,或者软件和硬件的组合。例如,可以使用处理器执行存储在存储器中的指令来实现上述模块中的每一个。而且,例如,每个上述模块可以用一个或多个专用集成电路(ASIC)、数字信号处理器(DSP)、数字信号处理设备(DSPD)、可编程逻辑器件(PLD)、现场可编程门阵列(FPGA)、控制器微控制器微处理器或其他电子组件执行所描述的方法来实现。进一步地,例如,上述模块中的每一个可以通过使用计算机芯片或实体来实现,或者通过使用具有特定功能的产品来实现。在一个实施例中,装置700可以是计算机,并且计算机可以是个人计算机、膝上型计算机、蜂窝电话、照相手机、智能手机、个人数字助理、媒体播放器、导航设备、电子邮件接收和发送设备、游戏台、平板电脑、可穿戴设备或这些设备的任何组合。
[0064] 对于装置700中每个模块的功能和色的实现过程,可以参考上述方法中的相应步骤。为简单起见,这里省略了细节。
[0065] 在一些实施例中,计算机程序产品可以包括非暂态计算机可读存储介质,其上存储有计算机可读程序指令,用于使处理器执行上述方法。
[0066] 计算机可读存储介质可以是有形设备,其可以存储供指令执行设备使用的指令。计算机可读存储介质可以是例如(但不限于)电存储设备、磁存储设备、光存储设备、电磁存储设备、半导体存储设备或前述的任何合适的组合。计算机可读存储介质的更具体示例的非详尽列表包括以下内容:便携式计算机磁盘、硬盘、随机存取存储器(RAM)、只读存储器(ROM)、可擦除可编程只读存储器(EPROM)、静态随机存取存储器(SRAM)、便携式光盘只读存储器(CD-ROM)、数字通用光盘(DVD)、记忆棒、软盘、例如在其上记录有指令的凹槽中的打孔卡或凸起结构的机械编码设备,以及前述的任何合适的组合。
[0067] 用于执行上述方法的计算机可读程序指令可以是汇编指令、指令集架构(ISA)指令、机器指令、机器相关指令、微代码、固件指令、状态设置数据或者以一种或多种编程语言的任意组合编写的源代码或目标代码,该编程语言包括面向对象的编程语言和传统的程序性编程语言。计算机可读程序指令可以全部在计算设备上作为独立软件包执行,或者部分在第一计算设备上执行、部分在远离第一计算设备的第二计算设备上执行。在后一种情况下,第二远程计算设备可以通过包括局域网(LAN)或广域网(WAN)的任何类型的网络连接到第一计算设备。
[0068] 计算机可读程序指令可以被提供给通用或专用计算机的处理器或其他可编程数据处理装置以产生机器,使得经由计算机的处理器或其他可编程数据处理装置执行的指令创建用于实施上述方法的装置。
[0069] 附图中的流程图和示图示出了根据本文各种实施例的设备、方法和计算机程序产品的可能实施方式的架构、功能和操作。在这方面,流程图或示图中的框可以表示软件程序、代码段或代码的一部分,其包括用于实现特定功能的一个或多个可执行指令。还应注意,在一些替代实施方式中,框中提到的功能可以不按图中所示的顺序发生。例如,连续示出的两个框实际上可以基本上同时执行,或者这些框有时可以以相反的顺序执行,这取决于所涉及的功能。还应注意,示图和/或流程图的每个框以及示图和流程图中的框的组合可以由执行特定功能或动作的专用目的的基于硬件的系统、或者专用目的的硬件和计算机指令的组合来实施。
[0070] 应当理解,为了清楚起见,在单独的实施例的上下文中描述的本文的某些特征也可以在单个实施例中组合提供。相反,为了简洁起见,在单个实施例的上下文中描述的本文的各种特征也可以单独提供或者以任何合适的子组合提供,或者在本文的任何其他所描述的实施例中合适地提供。除非另有说明,否则在各种实施例的上下文中描述的某些特征不是那些实施例的必要特征。
[0071] 尽管已经结合具体实施例描述了本文,但是许多替换、修改和变体对于本领域技术人员而言将是显而易见的。因此,以下权利要求包含落入权利要求的范围内的所有这些替换、修改和变体。
高效检索全球专利

专利汇是专利免费检索,专利查询,专利分析-国家发明专利查询检索分析平台,是提供专利分析,专利查询,专利检索等数据服务功能的知识产权数据服务商。

我们的产品包含105个国家的1.26亿组数据,免费查、免费专利分析。

申请试用

分析报告

专利汇分析报告产品可以对行业情报数据进行梳理分析,涉及维度包括行业专利基本状况分析、地域分析、技术分析、发明人分析、申请人分析、专利权人分析、失效分析、核心专利分析、法律分析、研发重点分析、企业专利处境分析、技术处境分析、专利寿命分析、企业定位分析、引证分析等超过60个分析角度,系统通过AI智能系统对图表进行解读,只需1分钟,一键生成行业专利分析报告。

申请试用

QQ群二维码
意见反馈