掌桥专利:专业的专利平台
掌桥专利
首页

在区块链的系统中跨链通信的方法及装置

文献发布时间:2023-06-19 16:04:54



技术领域

本说明书一个或多个实施例涉及区块链技术领域,特别涉及一种在区块链的系统中跨链通信的方法及装置。

背景技术

区块链(Blockchain)是分布式数据存储、点对点传输、共识机制、加密算法等计算机技术的新型应用模式。在区块链中按照时间顺序将数据区块以顺序相连的方式组合成链式数据结构,并以密码学方式保证数据区块不可篡改和不可伪造。由于区块链具有去中心化、信息不可篡改、自治性等特性,区块链也受到人们越来越多的重视和应用。

目前来说,需要一种在两个不同区块链之间进行通信的方法。

发明内容

本说明书一个或多个实施例提供一种在区块链的系统中跨链通信的方法及装置。

根据第一方面,提供一种在区块链的系统中跨链通信的方法,所述系统包括第一区块链,第二区块链和包括多个中继设备的中继设备集群;所述方法包括:

所述第一区块链中的第一节点将多个跨链消息通过所述中继设备集群并行发送给所述第二区块链中的第二节点;其中,所述跨链消息中包括序号;

所述第二节点在接收到至少一个跨链消息之后,通过所述中继设备集群向所述第一节点返回确认信息;所述确认信息用于指示当前未接收到的跨链消息中顺序最靠前的序号。

根据第二方面,提供一种在区块链的系统中跨链通信的方法,所述区块链的系统包括第一区块链,第二区块链和包括多个中继设备的中继设备集群;所述方法由所述第一区块链中的第一节点执行,所述方法包括:

将多个跨链消息通过所述中继设备集群并行发送给所述第二区块链中的第二节点;其中,所述跨链消息中包括序号;

接收所述第二节点通过所述中继设备集群返回的确认信息;所述确认信息为所述第二节点在接收到至少一个跨链消息之后返回的;所述确认信息用于指示当前所述第二节点未接收到的跨链消息中顺序最靠前的序号。

根据第三方面,提供一种在区块链的系统中跨链通信的方法,所述区块链的系统包括第一区块链,第二区块链和包括多个中继设备的中继设备集群;所述方法由所述第二区块链中的第二节点执行,所述方法包括:

接收所述第一区块链中的第一节点通过所述中继设备集群发送的至少一个跨链消息;所述跨链消息中包括序号;

通过所述中继设备集群向所述第一节点返回确认信息;所述确认信息用于指示当前未接收到的跨链消息中顺序最靠前的序号。

根据第四方面,提供一种在区块链的系统中跨链通信的装置,所述区块链的系统包括第一区块链,第二区块链和包括多个中继设备的中继设备集群;所述装置部署于所述第一区块链中的第一节点,所述装置包括:

发送模块,用于将多个跨链消息通过所述中继设备集群并行发送给所述第二区块链中的第二节点;其中,所述跨链消息中包括序号;

接收模块,用于接收所述第二节点通过所述中继设备集群返回的确认信息;所述确认信息为所述第二节点在接收到至少一个跨链消息之后返回的;所述确认信息用于指示当前所述第二节点未接收到的跨链消息中顺序最靠前的序号。

根据第五方面,提供一种在区块链的系统中跨链通信的装置,所述区块链的系统包括第一区块链,第二区块链和包括多个中继设备的中继设备集群;所述装置部署于所述第二区块链中的第二节点,所述装置包括:

接收模块,用于接收所述第一区块链中的第一节点通过所述中继设备集群发送的至少一个跨链消息;所述跨链消息中包括序号;

返回模块,用于通过所述中继设备集群向所述第一节点返回确认信息;所述确认信息用于指示当前未接收到的跨链消息中顺序最靠前的序号。

根据第六方面,提供一种计算机可读存储介质,所述存储介质存储有计算机程序,所述计算机程序被处理器执行时实现上述第一方面或第二方面或第三方面中任一项所述的方法。

根据第七方面,提供一种计算设备,包括存储器、处理器及存储在存储器上并可在处理器上运行的计算机程序,所述处理器执行所述程序时实现上述第一方面或第二方面或第三方面中任一项所述的方法。

本说明书的实施例提供的技术方案可以包括以下有益效果:

本说明书的实施例提供的在区块链的系统中跨链通信的方法和装置,在两个区块链进行跨链通信时,各个发送跨链消息的发送节点可以先将跨链消息通过中继设备集群并行发送给接收跨链消息的接收节点,跨链消息中包括序号。接收节点接收到至少一个跨链消息之后,通过中继设备集群向发送节点返回用于指示当前未接收到的跨链消息中顺序最靠前的序号的确认信息。从而使得两个进行通信的区块链能够互通跨链消息的序号,以保持跨链消息的顺序一致。解决了跨链消息在处理过程中的出错率较高的问题。

应当理解的是,以上的一般描述和后文的细节描述仅是示例性和解释性的,并不能限制本申请。

附图说明

为了更清楚地说明本说明书实施例的技术方案,下面将对实施例描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本说明书中记载的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动性的前提下,还可以根据这些附图获得其他的附图。

图1是本说明书实施例所应用的区块链架构图;

图2是本说明书根据一示例性实施例示出的一种区块链组网系统的示意图;

图3是本说明书根据一示例性实施例示出的一种跨链通信的场景示意图;

图4是本说明书根据一示例性实施例示出的一种在区块链的系统中跨链通信的方法的交互流程图;

图5是本说明书根据一示例性实施例示出的一种队列的场景示意图;

图6是本说明书根据一示例性实施例示出的另一种队列的场景示意图;

图7是本说明书根据一示例性实施例示出的一种在区块链的系统中跨链通信的装置框图;

图8是本说明书根据一示例性实施例示出的另一种在区块链的系统中跨链通信的装置框图。

具体实施方式

为了使本技术领域的人员更好地理解本说明书中的技术方案,下面将结合本说明书实施例中的附图,对本说明书实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本说明书一部分实施例,而不是全部的实施例。基于本说明书中的实施例,本领域普通技术人员在没有作出创造性劳动前提下所获得的所有其他实施例,都应当属于本说明书保护的范围。

如图1所示,是本说明书实施例所应用的区块链架构图。

图1中,区块链中例如包含节点1~节点6共6个节点。每个节点可以实现为任何具有计算、处理能力的装置、服务器或设备集群等。节点之间的连线示意性的表示P2P(Peerto Peer,点对点)连接。这些节点上都存储全量的账本,即存储全部区块和全部账户的状态。其中,区块链中的每个节点通过执行相同的交易而产生区块链中的相同的状态,区块链中的每个节点存储相同的状态数据库。各个节点可负责从客户端接收交易,并向各个从节点发起共识提议,该共识提议中例如包括将要成块的区块(例如区块H1)中的多个交易及各个交易的提交顺序等信息。在区块链中的节点对共识提议共识成功之后,各个节点可根据共识提议中的提交顺序执行该多个交易,从而生成区块H1。

可以理解,图1所示的区块链仅仅是示例性的,本说明书实施例不限于应用于图1所示的区块链。另外,图1中虽然示出了区块链101中包括6个节点,本说明书实施例不限于此,而是可以包括其他数目的节点。具体是,区块链中包含的节点可以满足拜占庭容错(Byzantine Fault Tolerance,BFT)要求。所述的拜占庭容错要求可以理解为在区块链内部可以存在拜占庭节点,而区块链对外不体现拜占庭行为。一般的,一些拜占庭容错算法中要求节点个数大于3f+1,f为拜占庭节点个数,例如实用拜占庭容错算法PBFT(PracticalByzantine Fault Tolerance)。

区块链领域中的交易可以指在区块链中执行并记录在区块链中的任务单元。交易中通常包括发送字段(From)、接收字段(To)和数据字段(Data)。其中,在交易为转账交易的情况中,From字段表示发起该交易(即发起对另一个账户的转账任务)的账户地址,To字段表示接收该交易(即接收转账)的账户地址,Data字段中包括转账金额。在交易调用区块链中的智能合约的情况中,From字段表示发起该交易的账户地址,To字段表示交易所调用的合约的账户地址,Data字段中包括调用合约中的函数名、及对该函数的传入参数等数据,以用于在交易执行时从区块链中获取该函数的代码并执行该函数的代码。

区块链中可提供智能合约的功能。区块链上的智能合约是在区块链系统上可以被交易触发执行的合约。智能合约可以通过代码的形式定义。在以太坊中调用智能合约,是发起一笔指向智能合约地址的交易,使得以太坊网络中每个节点分布式地运行智能合约代码。需要说明的是,除了可以由用户创建智能合约,也可以在创世块中由系统设置智能合约。这类合约一般称为创世合约。一般的,创世合约中可以设置一些区块链的数据结构、参数、属性和方法。此外,具有系统管理员权限的账户可以创建系统级的合约,或者修改系统级的合约(简称为系统合约)。其中,所述系统合约可用于在区块链中增加不同业务的数据的数据结构。

在部署合约的场景中,例如,Bob将一个包含创建智能合约信息(即部署合约)的交易发送到如图1所示的区块链中,该交易的data字段包括待创建的合约的代码(如字节码或者机器码),交易的to字段为空,以表示该交易用于部署合约。节点间通过共识机制达成一致后,确定合约的合约地址“0x6f8ae93…”,各个节点在状态数据库中添加与该智能合约的合约地址对应的合约账户,分配与该合约账户对应的状态存储,并将合约代码保存在该合约的状态存储中,从而合约创建成功。

在调用合约的场景中,例如,Bob将一个用于调用智能合约的交易发送到如图1所示的区块链中,该交易的from字段是交易发起方(即Bob)的账户的地址,to字段中的“0x6f8ae93…”代表了被调用的智能合约的地址,交易的data字段包括调用智能合约的方法和参数。在区块链中对该交易进行共识之后,区块链中的各个节点可分别执行该交易,从而分别执行该合约,基于该合约的执行更新状态数据库。

目前来说,由于区块链的去中心化特性,使得区块链中的所有节点均会维护相同的区块数据,无法满足部分节点的特殊需求。以现有的联盟链为例,所有联盟成员(即联盟内的节点成员)的节点设备上都部署有该联盟链的节点,可以组成一区块链,即所有联盟成员在该区块链中分别存在对应的区块链节点,并可以通过对应的区块链节点获得该区块链上发生的所有交易和相关数据。但在一些情况下,可能存在部分联盟成员希望小范围内完成一些具有保密需求的交易,这些联盟成员既希望这些交易能够在区块链上存证或借助于区块链技术的其他优势,又能够避免其他联盟成员查看到这些交易和相关数据。

为此,在相关技术中,出现一种由多个成员参与的区块链组网系统,该区块链组网系统在硬件层面包括每个成员的节点设备,每个成员的节点设备上部署至少一个节点,同一成员的节点设备上部署的不同节点属于不同区块链。同时,该区块链组网系统在软件层面具有以区块链主网为根结点、各个区块链子网分别为其他结点的树形结构(本文所述的节点与结点是不同概念,节点是区块链意义上的概念,是指区块链中的节点;而结点是树形结构中的概念,在本文中代指树形结构中的一个区块链网络)。通过这样的区块链组网系统,个别成员可以自行组建区块链子网进行小范围交易,系统中的各区块链网络(不论是主网还是子网)是相互数据隔离的。

以图2所示为例,区块链主网为subnet0,该subnet0包含的区块链节点为nodeA、nodeB、nodeC、nodeD和nodeE等。而在subnet0的基础上可以组建出subnet1,该subnet1包含nodeA1~nodeD1,且nodeA与nodeA1、nodeB与nodeB1、nodeC与nodeC1、nodeD与nodeD1分别部署在同一节点设备上。类似地,还可以在subnet0上组建出subnet2或更多的区块链子网,其中subnet2包含nodeA2、nodeB2、nodeC2和nodeE2,且nodeA与nodeA1、nodeA2,nodeB与nodeB1、nodeB2,nodeC与nodeC1、nodeC2,nodeD与nodeD1,nodeE与nodeE2分别部署在同一节点设备上。

在区块链主网的基础上组建区块链子网时,会使得该区块链子网与区块链主网之间存在逻辑上的层次关系。比如在图2所示的subnet0上组建区块链子网subnet1时,可以认为subnet0处于第一层、subnet1处于第二层。一种情况下,区块链主网可以为底层区块链网络,即区块链主网并非在其他区块链网络的基础上组建的区块链子网,比如图2中的subnet0可以认为属于底层区块链网络类型的区块链主网。另一种情况下,区块链主网可以为其他区块链的子网,比如可以在图2中subnet1的基础上进一步组建另一区块链子网,此时可以认为subnet1为该区块链子网对应的区块链主网,而这并不影响该subnet1同时属于subnet0上创建的区块链子网。可见,区块链主网与区块链子网实际上是相对概念,同一区块链网络在一些情况下可以为区块链主网、另一些情况下可以为区块链子网。因此,还可以将subnet1、subnet2等作为新的区块链主网,并在此基础上进一步组建出区块链子网。

由于区块链组网系统的出现,使得不同区块链之间(例如不同子网之间)的跨链通信大幅增加。目前来说,有时需要在相互通信的区块链之间设置多个中继设备,通过多个中继设备在区块链之间转发跨链消息,以提高跨链通信的效率。但是,由于多个中继设备之间相互独立,消息的转发量不同,通信速度不同等原因,使得中继设备转发跨链消息的顺序可能与跨链消息的初始顺序不一致,从而导致跨链消息在处理过程中的出错率大幅增加。

本说明书实施例提供了一种在两个不同区块链之间进行通信的方法。如图3所示,图3是一种跨链通信的场景示意图。其中,区块链A和区块链B的区块链构架均如图1所示。在区块链A和区块链B之间设置包括多个中继设备的中继设备集群,该中继设备集群可以在区块链A和区块链B之间转发跨链消息。在区块链A和区块链B进行跨链通信时,各个发送跨链消息的发送节点可以先将跨链消息通过中继设备集群并行发送给接收跨链消息的接收节点,跨链消息中包括序号。接收节点接收到至少一个跨链消息之后,通过中继设备集群向发送节点返回用于指示当前未接收到的跨链消息中顺序最靠前的序号的确认信息。从而使得两个进行通信的区块链能够互通跨链消息的序号,以保持跨链消息的顺序一致。解决了跨链消息在处理过程中的出错率较高的问题。

下面将结合具体的实施例对本说明书提供的方案进行详细描述。

如图4所示,图4是根据一示例性实施例示出的一种在区块链的系统中跨链通信的方法的交互流程图,该系统包括区块链A,区块链B和中继设备集群(中继设备集群包括多个中继设备)。其中,节点a为区块链A中的节点,节点b为区块链B中的节点。需要说明的是,区块链A和区块链B可以是两个相互独立的区块链,也可以是区块链组网系统中的两个子网,本实施例对此方面不限定。如果区块链A和区块链B是区块链组网中的两个子网,那么节点a和节点b在硬件层面,可以属于相同的设备,也可以属于不同的设备。该方法包括以下步骤:

首先,在步骤401中,节点a生成多个跨链消息,跨链消息可以是跨链查询数据的消息,也可以是跨链同步数据的消息等,本实施例对此方面不限定。其中,任一跨链消息中可以包括该跨链消息的消息体以及该跨链消息的序号,该序号对应于该跨链消息的发送顺序。具体地,跨链消息的序号可以是任意能够表示该跨链消息的发送顺序的编号,例如该序号可以是依次递增的数字编号等。可以理解,本实施例对跨链消息的序号的具体形式方面不限定。

接着,在步骤403中,节点a将生成的多个跨链消息发送给中继设备集群。由中继设备集群将该多个跨链消息并行转发至节点b。具体地,节点a可以确定该多个跨链消息中各个跨链消息各自对应的中继设备。在一种情况下,节点a可以按照各个跨链消息各自的序号所对应的发送顺序,依次将各个跨链消息发送给各自对应的中继设备。在另一种情况下,节点a还可以将该多个跨链消息同时发送给各个跨链消息各自对应的中继设备。再由各个跨链消息各自对应的中继设备将各个跨链消息并行转发给节点b。

在本实施例中,可以通过如下方式确定任一跨链消息对应的中继设备:利用预设的哈希算法对该跨链消息进行处理,得到该跨链消息对应的编号,并根据该跨链消息对应的编号确定该跨链消息对应的中继设备。例如,中继设备集群包括编号分别为1、2、3的中继设备,可以利用预设的哈希算法对跨链消息q或者对跨链消息q包括的序号进行哈希计算,将计算的结果取模。如果取模结果的值为1,则可以将该编号为1的中继设备作为跨链消息q对应的中继设备。如果取模结果的值为2,则可以将该编号为2的中继设备作为跨链消息q对应的中继设备。

同时,节点a还可以将发送给中继设备集群的跨链消息存储为已发消息。可选地,节点a可以预先创建包括n个存储位置的队列1,可以按照跨链消息包括的序号的顺序将该跨链消息存入队列1中相应的存储位置。例如,如图5所示,队列1包括6个存储位置,跨链消息Q4,跨链消息Q5和跨链消息Q6分别对应于序号4、5和6。节点a将跨链消息Q4,跨链消息Q5和跨链消息Q6发送给中继设备集群之后,分别将跨链消息Q4,跨链消息Q5和跨链消息Q6存储到队列1中相应的存储位置。具体地,由于存储上述跨链消息之前,队列1的首位存储有对应于序号3的跨链消息Q3,因此,可以确定跨链消息Q4对应的存储位置在第二位,将跨链消息Q4存储到第二位上。可以确定跨链消息Q5对应的存储位置在第三位,将跨链消息Q5存储到第三位上。可以确定跨链消息Q6对应的存储位置在第四位,将跨链消息Q4存储到第四位上。可以理解,还可以采用其它的存储方式,例如采用环形队列和指针的方式存储跨链消息,本实施例对存储跨链消息的具体方式方面不限定。

接着,在步骤405中,节点b在接收到至少一个跨链消息之后,通过中继设备集群向节点a返回确认信息。该确认信息用于指示当前未接收到的跨链消息中顺序最靠前的序号。

具体来说,节点b在接收到中继设备集群转发的各个跨链消息之后,可以将接收到的跨链消息进行存储,可选地,节点b可以预先创建包括n个存储位置的队列2,可以按照跨链消息包括的序号的顺序将接收到的跨链消息存入队列2中相应的存储位置。例如,如图6所示,队列2包括6个存储位置,跨链消息Q4,跨链消息Q5和跨链消息Q6分别对应于序号4、5和6。节点b接收到跨链消息Q5和跨链消息Q6之后,将跨链消息Q5和跨链消息Q6存储到队列2中相应的存储位置。具体地,由于存储上述跨链消息之前,队列2的首位存储有对应于序号3的跨链消息Q3,因此,存储位置的第二位对应于跨链消息Q4。但跨链消息Q4还未被接收到,所以存储位置的第二位为空。存储位置的第三位对应于跨链消息Q5,存储位置的第四位对应于跨链消息Q6,可以将跨链消息Q5和跨链消息Q6分别存储在队列2的第三位和第四位上。

节点b在接收到一个或多个跨链消息之后,可以向节点a返回确认信息。以上述图6为例,节点b可以在接收到跨链消息Q5和跨链消息Q6之后,将跨链消息Q5和跨链消息Q6存入队列2,并向节点a返回一个确认信息,该确认信息携带一个返回值,该返回值为当前未接收到的跨链消息中顺序最靠前的序号。由上述实例可知,当前未接收到的跨链消息中顺序最靠前的序号为跨链消息Q4对应的序号4,因此该返回值为4。

接着,在步骤407中,节点a在接收到确认信息之后,根据确认信息处理存储的已发消息。可选地,节点a可以根据确认信息中携带的返回值处理存储的已发消息。例如,以图5为例,如果确认信息中携带的返回值为3,则可以确定存储在队列1中的已发消息中,跨链消息Q3的序号3和返回值相同,并且不存在序号小于返回值3的跨链消息。因此,重发跨链消息Q3。如果确认信息中携带的返回值为4,则可以确定存储在队列1中的已发消息中,跨链消息Q3的序号3在返回值4之前,因此,删除跨链消息Q3。需要说明的是,在队列1中删除一个跨链消息,需要将其它消息前移一位(如果采用指针和环形队列,则在删除一个跨链消息之后,将指针向后移动一位即可)。

最后,在步骤409中,节点b可以按照跨链消息包括的序号的顺序依次处理已存储的跨链消息,并删除处理完成的跨链消息。例如,以图6为例,队列2存储有跨链消息Q3,跨链消息Q5和跨链消息Q6,而跨链消息Q4的位置暂时空缺。节点b可以先处理跨链消息Q3,处理完成之后,可以将跨链消息Q3删除,并将其它消息前移一位。如果跨链消息Q4被接收到并被存入队列2,则可以接着处理跨链消息Q4。如果跨链消息Q4仍未被存入队列2,则需要等待跨链消息Q4被存入队列2之后,再继续往下处理。

本说明书的上述实施例提供的在区块链的系统中跨链通信的方法,在两个区块链进行跨链通信时,各个发送跨链消息的发送节点可以先将跨链消息通过中继设备集群并行发送给接收跨链消息的接收节点,跨链消息中包括序号。接收节点接收到至少一个跨链消息之后,通过中继设备集群向发送节点返回用于指示当前未接收到的跨链消息中顺序最靠前的序号的确认信息。从而使得两个进行通信的区块链能够互通跨链消息的序号,以保持跨链消息的顺序一致。解决了跨链消息在处理过程中的出错率较高的问题。

应当注意,尽管在上述实施例中,以特定顺序描述了本说明书实施例的方法的操作,但是,这并非要求或者暗示必须按照该特定顺序来执行这些操作,或是必须执行全部所示的操作才能实现期望的结果。相反,流程图中描绘的步骤可以改变执行顺序。附加地或备选地,可以省略某些步骤,将多个步骤合并为一个步骤执行,和/或将一个步骤分解为多个步骤执行。

与前述在区块链的系统中跨链通信的方法实施例相对应,本说明书还提供了在区块链的系统中跨链通信的装置的实施例。

如图7所示,图7是本说明书根据一示例性实施例示出的一种在区块链的系统中跨链通信的装置框图,该区块链的系统包括第一区块链,第二区块链和包括多个中继设备的中继设备集群。该装置部署于第一区块链中的第一节点,该装置可以包括:发送模块701和接收模块702。

其中,发送模块701,用于将多个跨链消息通过中继设备集群并行发送给第二区块链中的第二节点,其中,该跨链消息中包括序号。

接收模块702,用于接收第二节点通过中继设备集群返回的确认信息,该确认信息为第二节点在接收到至少一个跨链消息之后返回的,该确认信息用于指示当前第二节点未接收到的跨链消息中顺序最靠前的序号。

在一些实施方式中,任一跨链消息包括的序号对应于该跨链消息的发送顺序。

在另一些实施方式中,发送模块701被配置用于:确定各个跨链消息各自对应的中继设备。按照各个跨链消息各自的序号所对应的发送顺序,将各个跨链消息发送给各自对应的中继设备,使各个跨链消息各自对应的中继设备将各个跨链消息并行转发至第二节点。

在另一些实施方式中,发送模块701通过如下方式确定任一跨链消息对应的中继设备:利用预设的哈希算法对该跨链消息进行处理,得到该跨链消息对应的编号,并根据该跨链消息对应的编号确定该跨链消息对应的中继设备。

在另一些实施方式中,该装置还可以包括:存储模块和处理模块(图中未示出)。

其中,存储模块,用于将发送给中继设备集群的多个跨链消息存储为已发消息。

处理模块,用于在接收到确认信息之后,根据确认信息处理存储的已发消息。

在另一些实施方式中,处理模块被配置用于:若存储的已发消息中存在第一消息,删除第一消息,该第一消息包括的序号在确认信息指示的序号之前。若存储的已发消息中存在第二消息,且不存在第一消息,重发第二消息。该第二消息包括的序号与确认信息指示的序号相同。

如图8所示,图8是本说明书根据一示例性实施例示出的一种在区块链的系统中跨链通信的装置框图,该区块链的系统包括第一区块链,第二区块链和包括多个中继设备的中继设备集群。该装置部署于第二区块链中的第二节点,该装置可以包括:接收模块801和返回模块802。

其中,接收模块801,用于接收第一区块链中的第一节点通过中继设备集群发送的至少一个跨链消息,该跨链消息中包括序号。

返回模块802,用于通过中继设备集群向第一节点返回确认信息,该确认信息用于指示当前未接收到的跨链消息中顺序最靠前的序号。

在一些实施方式中,任一跨链消息包括的序号对应于该跨链消息的发送顺序。

在另一些实施方式中,该装置还可以包括:存储模块(图中未示出)。

其中,存储模块,用于将接收到的至少一个跨链消息进行存储。

在另一些实施方式中,该装置还可以包括:处理模块(图中未示出)。

其中,处理模块,用于根据已存储的跨链消息包括的序号所对应的顺序,依次处理已存储的跨链消息,并删除处理完成的跨链消息。

对于装置实施例而言,由于其基本对应于方法实施例,所以相关之处参见方法实施例的部分说明即可。以上所描述的装置实施例仅仅是示意性的,其中所述作为分离部件说明的单元可以是或者也可以不是物理上分开的,作为单元显示的部件可以是或者也可以不是物理单元,即可以位于一个地方,或者也可以分布到多个网络单元上。可以根据实际的需要选择其中的部分或者全部模块来实现本说明书一个或多个实施例方案的目的。本领域普通技术人员在不付出创造性劳动的情况下,即可以理解并实施。

本说明书一个或多个实施例还提供了一种计算机可读存储介质,该存储介质存储有计算机程序,计算机程序可用于执行上述图3任一实施例提供的在区块链的系统中跨链通信的方法。

本说明书一个或多个实施例还提供了一种计算设备,包括存储器和处理器,所述存储器中存储有可执行代码,所述处理器执行所述可执行代码时,实现上述图3任一实施例提供的在区块链的系统中跨链通信的方法。

在20世纪90年代,对于一个技术的改进可以很明显地区分是硬件上的改进(例如,对二极管、晶体管、开关等电路结构的改进)还是软件上的改进(对于方法流程的改进)。然而,随着技术的发展,当今的很多方法流程的改进已经可以视为硬件电路结构的直接改进。设计人员几乎都通过将改进的方法流程编程到硬件电路中来得到相应的硬件电路结构。因此,不能说一个方法流程的改进就不能用硬件实体模块来实现。例如,可编程逻辑器件(Programmable Logic Device,PLD)(例如现场可编程门阵列(Field Programmable GateArray,FPGA))就是这样一种集成电路,其逻辑功能由用户对器件编程来确定。由设计人员自行编程来把一个数字系统“集成”在一片PLD上,而不需要请芯片制造厂商来设计和制作专用的集成电路芯片。而且,如今,取代手工地制作集成电路芯片,这种编程也多半改用“逻辑编译器(logic compiler)”软件来实现,它与程序开发撰写时所用的软件编译器相类似,而要编译之前的原始代码也得用特定的编程语言来撰写,此称之为硬件描述语言(Hardware Description Language,HDL),而HDL也并非仅有一种,而是有许多种,如ABEL(Advanced Boolean Expression Language)、AHDL(Altera Hardware DescriptionLanguage)、Confluence、CUPL(Cornell University Programming Language)、HDCal、JHDL(Java Hardware Description Language)、Lava、Lola、MyHDL、PALASM、RHDL(RubyHardware Description Language)等,目前最普遍使用的是VHDL(Very-High-SpeedIntegrated Circuit Hardware Description Language)与Verilog。本领域技术人员也应该清楚,只需要将方法流程用上述几种硬件描述语言稍作逻辑编程并编程到集成电路中,就可以很容易得到实现该逻辑方法流程的硬件电路。

控制器可以按任何适当的方式实现,例如,控制器可以采取例如微处理器或处理器以及存储可由该(微)处理器执行的计算机可读程序代码(例如软件或固件)的计算机可读介质、逻辑门、开关、专用集成电路(Application Specific Integrated Circuit,ASIC)、可编程逻辑控制器和嵌入微控制器的形式,控制器的例子包括但不限于以下微控制器:ARC 625D、Atmel AT91SAM、Microchip PIC18F26K20以及Silicone Labs C8051F320,存储器控制器还可以被实现为存储器的控制逻辑的一部分。本领域技术人员也知道,除了以纯计算机可读程序代码方式实现控制器以外,完全可以通过将方法步骤进行逻辑编程来使得控制器以逻辑门、开关、专用集成电路、可编程逻辑控制器和嵌入微控制器等的形式来实现相同功能。因此这种控制器可以被认为是一种硬件部件,而对其内包括的用于实现各种功能的装置也可以视为硬件部件内的结构。或者甚至,可以将用于实现各种功能的装置视为既可以是实现方法的软件模块又可以是硬件部件内的结构。

上述实施例阐明的系统、装置、模块或单元,具体可以由计算机芯片或实体实现,或者由具有某种功能的产品来实现。一种典型的实现设备为服务器系统。当然,本申请不排除随着未来计算机技术的发展,实现上述实施例功能的计算机例如可以为个人计算机、膝上型计算机、车载人机交互设备、蜂窝电话、相机电话、智能电话、个人数字助理、媒体播放器、导航设备、电子邮件设备、游戏控制台、平板计算机、可穿戴设备或者这些设备中的任何设备的组合。

虽然本说明书一个或多个实施例提供了如实施例或流程图所述的方法操作步骤,但基于常规或者无创造性的手段可以包括更多或者更少的操作步骤。实施例中列举的步骤顺序仅仅为众多步骤执行顺序中的一种方式,不代表唯一的执行顺序。在实际中的装置或终端产品执行时,可以按照实施例或者附图所示的方法顺序执行或者并行执行(例如并行处理器或者多线程处理的环境,甚至为分布式数据处理环境)。术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法、产品或者设备不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、方法、产品或者设备所固有的要素。在没有更多限制的情况下,并不排除在包括所述要素的过程、方法、产品或者设备中还存在另外的相同或等同要素。例如若使用到第一,第二等词语用来表示名称,而并不表示任何特定的顺序。

为了描述的方便,描述以上装置时以功能分为各种模块分别描述。当然,在实施本说明书一个或多个时可以把各模块的功能在同一个或多个软件和/或硬件中实现,也可以将实现同一功能的模块由多个子模块或子单元的组合实现等。以上所描述的装置实施例仅仅是示意性的,例如,所述单元的划分,仅仅为一种逻辑功能划分,实际实现时可以有另外的划分方式,例如多个单元或组件可以结合或者可以集成到另一个系统,或一些特征可以忽略,或不执行。另一点,所显示或讨论的相互之间的耦合或直接耦合或通信连接可以是通过一些接口,装置或单元的间接耦合或通信连接,可以是电性,机械或其它的形式。

本发明是参照根据本发明实施例的方法、装置(系统)、和计算机程序产品的流程图和/或方框图来描述的。应理解可由计算机程序指令实现流程图和/或方框图中的每一流程和/或方框、以及流程图和/或方框图中的流程和/或方框的结合。可提供这些计算机程序指令到通用计算机、专用计算机、嵌入式处理机或其他可编程数据处理设备的处理器以产生一个机器,使得通过计算机或其他可编程数据处理设备的处理器执行的指令产生用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的装置。

这些计算机程序指令也可存储在能引导计算机或其他可编程数据处理设备以特定方式工作的计算机可读存储器中,使得存储在该计算机可读存储器中的指令产生包括指令装置的制造品,该指令装置实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能。

这些计算机程序指令也可装载到计算机或其他可编程数据处理设备上,使得在计算机或其他可编程设备上执行一系列操作步骤以产生计算机实现的处理,从而在计算机或其他可编程设备上执行的指令提供用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的步骤。

在一个典型的配置中,计算设备包括一个或多个处理器(CPU)、输入/输出接口、网络接口和内存。

内存可能包括计算机可读介质中的非永久性存储器,随机存取存储器(RAM)和/或非易失性内存等形式,如只读存储器(ROM)或闪存(flash RAM)。内存是计算机可读介质的示例。

计算机可读介质包括永久性和非永久性、可移动和非可移动媒体可以由任何方法或技术来实现信息存储。信息可以是计算机可读指令、数据结构、程序的模块或其他数据。计算机的存储介质的例子包括,但不限于相变内存(PRAM)、静态随机存取存储器(SRAM)、动态随机存取存储器(DRAM)、其他类型的随机存取存储器(RAM)、只读存储器(ROM)、电可擦除可编程只读存储器(EEPROM)、快闪记忆体或其他内存技术、只读光盘只读存储器(CD-ROM)、数字多功能光盘(DVD)或其他光学存储、磁盒式磁带,磁带磁磁盘存储、石墨烯存储或其他磁性存储设备或任何其他非传输介质,可用于存储可以被计算设备访问的信息。按照本文中的界定,计算机可读介质不包括暂存电脑可读媒体(transitory media),如调制的数据信号和载波。

本领域技术人员应明白,本说明书一个或多个实施例可提供为方法、系统或计算机程序产品。因此,本说明书一个或多个实施例可采用完全硬件实施例、完全软件实施例或结合软件和硬件方面的实施例的形式。而且,本说明书一个或多个实施例可采用在一个或多个其中包含有计算机可用程序代码的计算机可用存储介质(包括但不限于磁盘存储器、CD-ROM、光学存储器等)上实施的计算机程序产品的形式。

本说明书一个或多个实施例可以在由计算机执行的计算机可执行指令的一般上下文中描述,例如程序模块。一般地,程序模块包括执行特定任务或实现特定抽象数据类型的例程、程序、对象、组件、数据结构等等。也可以在分布式计算环境中实践本本说明书一个或多个实施例,在这些分布式计算环境中,由通过通信网络而被连接的远程处理设备来执行任务。在分布式计算环境中,程序模块可以位于包括存储设备在内的本地和远程计算机存储介质中。

本说明书中的各个实施例均采用递进的方式描述,各个实施例之间相同相似的部分互相参见即可,每个实施例重点说明的都是与其他实施例的不同之处。尤其,对于系统实施例而言,由于其基本相似于方法实施例,所以描述的比较简单,相关之处参见方法实施例的部分说明即可。在本说明书的描述中,参考术语“一个实施例”、“一些实施例”、“示例”、“具体示例”、或“一些示例”等的描述意指结合该实施例或示例描述的具体特征、结构、材料或者特点包含于本说明书的至少一个实施例或示例中。在本说明书中,对上述术语的示意性表述不必须针对的是相同的实施例或示例。而且,描述的具体特征、结构、材料或者特点可以在任一个或多个实施例或示例中以合适的方式结合。此外,在不相互矛盾的情况下,本领域的技术人员可以将本说明书中描述的不同实施例或示例以及不同实施例或示例的特征进行结合和组合。

以上所述仅为本说明书一个或多个实施例的实施例而已,并不用于限制本本说明书一个或多个实施例。对于本领域技术人员来说,本说明书一个或多个实施例可以有各种更改和变化。凡在本说明书的精神和原理之内所作的任何修改、等同替换、改进等,均应包含在权利要求范围之内。

技术分类

06120114694844