CN114785800B - 跨链通信方法、装置、存储介质及计算设备 - Google Patents

跨链通信方法、装置、存储介质及计算设备 Download PDF

Info

Publication number
CN114785800B
CN114785800B CN202210335217.2A CN202210335217A CN114785800B CN 114785800 B CN114785800 B CN 114785800B CN 202210335217 A CN202210335217 A CN 202210335217A CN 114785800 B CN114785800 B CN 114785800B
Authority
CN
China
Prior art keywords
data
cross
sent
message
blockchain
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.)
Active
Application number
CN202210335217.2A
Other languages
English (en)
Other versions
CN114785800A (zh
Inventor
石杰
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Ant Blockchain Technology Shanghai Co Ltd
Original Assignee
Ant Blockchain Technology Shanghai Co Ltd
Priority date (The priority date 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 date listed.)
Filing date
Publication date
Application filed by Ant Blockchain Technology Shanghai Co Ltd filed Critical Ant Blockchain Technology Shanghai Co Ltd
Priority to CN202210335217.2A priority Critical patent/CN114785800B/zh
Publication of CN114785800A publication Critical patent/CN114785800A/zh
Application granted granted Critical
Publication of CN114785800B publication Critical patent/CN114785800B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L67/00Network arrangements or protocols for supporting network services or applications
    • H04L67/01Protocols
    • H04L67/10Protocols in which an application is distributed across nodes in the network
    • H04L67/104Peer-to-peer [P2P] networks
    • H04L67/1059Inter-group management mechanisms, e.g. splitting, merging or interconnection of groups
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L9/00Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
    • H04L9/32Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols including means for verifying the identity or authority of a user of the system or for message authentication, e.g. authorization, entity authentication, data integrity or data verification, non-repudiation, key authentication or verification of credentials
    • H04L9/3247Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols including means for verifying the identity or authority of a user of the system or for message authentication, e.g. authorization, entity authentication, data integrity or data verification, non-repudiation, key authentication or verification of credentials involving digital signatures

Landscapes

  • Engineering & Computer Science (AREA)
  • Computer Security & Cryptography (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Signal Processing (AREA)
  • Computer And Data Communications (AREA)

Abstract

本说明书提供一种跨链通信方法及装置,所述方法由中继设备执行;所述方法包括:接收第一区块链中第一节点发送的跨链消息和所述第一节点对所述跨链消息的第一签名;确定是否预先存储有与所述跨链消息关联的第一待发数据;所述第一待发数据包括所述跨链消息和所述第一区块链中一个或多个节点对所述跨链消息的签名;若确定存储有所述第一待发数据,将所述第一签名添加到所述第一待发数据中;在满足预设的时间条件时,将所述第一待发数据发送给第二区块链的各个节点;使得所述第二区块链的各个节点基于所述第一待发数据中的签名对所述跨链消息进行验证。

Description

跨链通信方法、装置、存储介质及计算设备
技术领域
本说明书一个或多个实施例涉及区块链技术领域,特别涉及一种跨链通信方法及装置。
背景技术
区块链(Blockchain)是分布式数据存储、点对点传输、共识机制、加密算法等计算机技术的新型应用模式。在区块链中按照时间顺序将数据区块以顺序相连的方式组合成链式数据结构,并以密码学方式保证数据区块不可篡改和不可伪造。由于区块链具有去中心化、信息不可篡改、自治性等特性,区块链也受到人们越来越多的重视和应用。
目前来说,需要一种在两个不同区块链之间进行高效通信的方法。
发明内容
本说明书一个或多个实施例提供一种跨链通信方法及装置。
根据第一方面,提供一种跨链通信方法,所述方法由中继设备执行;所述方法包括:
接收第一区块链中第一节点发送的跨链消息和所述第一节点对所述跨链消息的第一签名;
确定是否预先存储有与所述跨链消息关联的第一待发数据;所述第一待发数据包括所述跨链消息和所述第一区块链中一个或多个节点对所述跨链消息的签名;
若确定存储有所述第一待发数据,将所述第一签名添加到所述第一待发数据中;
在满足预设的时间条件时,将所述第一待发数据发送给第二区块链的各个节点;使得所述第二区块链的各个节点基于所述第一待发数据中的签名对所述跨链消息进行验证。
根据第二方面,提供一种跨链通信装置,所述装置部署于中继设备;所述装置包括:
接收模块,用于接收第一区块链中第一节点发送的跨链消息和所述第一节点对所述跨链消息的第一签名;
确定模块,用于确定是否预先存储有与所述跨链消息关联的第一待发数据;所述第一待发数据包括所述跨链消息和所述第一区块链中一个或多个节点对所述跨链消息的签名;
添加模块,用于在确定存储有所述第一待发数据时,将所述第一签名添加到所述第一待发数据中;
发送模块,用于在满足预设的时间条件时,将所述第一待发数据发送给第二区块链的各个节点;使得所述第二区块链的各个节点基于所述第一待发数据中的签名对所述跨链消息进行验证。
根据第三方面,提供一种计算机可读存储介质,所述存储介质存储有计算机程序,所述计算机程序被处理器执行时实现上述第一方面中任一项所述的方法。
根据第四方面,提供一种计算设备,包括存储器、处理器及存储在存储器上并可在处理器上运行的计算机程序,所述处理器执行所述程序时实现上述第一方面中任一项所述的方法。
本说明书的实施例提供的技术方案可以包括以下有益效果:
本说明书的实施例提供的跨链通信方法和装置,通过设置于相互通信的区块链之间的中继设备对接收到的内容相同的跨链消息进行合并处理,得到包括各个发送节点签名的待发数据,并在满足预设的时间条件时,将待发数据发送给目标节点,从而提高了不同区块链之间的通信效率。
应当理解的是,以上的一般描述和后文的细节描述仅是示例性和解释性的,并不能限制本申请。
附图说明
为了更清楚地说明本说明书实施例的技术方案,下面将对实施例描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本说明书中记载的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动性的前提下,还可以根据这些附图获得其他的附图。
图1是本说明书实施例所应用的区块链架构图;
图2是本说明书根据一示例性实施例示出的一种跨链通信的场景示意图;
图3是本说明书根据一示例性实施例示出的一种跨链通信方法流程图;
图4A是本说明书根据一示例性实施例示出的一种待发数据的结构示意图;
图4B是本说明书根据一示例性实施例示出的另一种待发数据的结构示意图;
图4C是本说明书根据一示例性实施例示出的另一种待发数据的结构示意图;
图4D是本说明书根据一示例性实施例示出的另一种待发数据的结构示意图;
图5是本说明书根据一示例性实施例示出的一种跨链通信装置的框图。
具体实施方式
为了使本技术领域的人员更好地理解本说明书中的技术方案,下面将结合本说明书实施例中的附图,对本说明书实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本说明书一部分实施例,而不是全部的实施例。基于本说明书中的实施例,本领域普通技术人员在没有作出创造性劳动前提下所获得的所有其他实施例,都应当属于本说明书保护的范围。
如图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所示,图2是一种跨链通信的场景示意图。其中,区块链1和区块链2的区块链构架均如图1所示。在区块链1和区块链2之间设置一个或多个中继设备(需要说明的是,图2仅示例性的画出了一个中继设备,但中继设备的数目可以是一个,也可以是多个,本说明书实施例不限于此),该中继设备可以用于整合并转发跨链消息。在区块链1和区块链2进行跨链通信时,各个发送跨链消息的发送节点可以先将跨链消息发送给中继设备,中继设备通过对接收到的内容相同的跨链消息进行合并处理,得到包括各个发送节点签名的待发数据,并在满足预设的时间条件时,将待发数据发送给目标节点,从而提高了不同区块链之间的通信效率。
下面将结合具体的实施例对本说明书提供的方案进行详细描述。
如图3所示,图3是根据一示例性实施例示出的一种跨链通信方法的流程图,该方法可以由中继设备执行,该中继设备可以实现为任何具有计算、处理能力的设备、平台、服务器或设备集群。该方法描述了由区块链1向区块链2发送跨链消息的过程,包括以下步骤:
在步骤301中,中继设备接收到区块链1中任一节点发送的跨链消息和该节点对跨链消息的签名。其中,跨链消息可以是跨链查询数据的消息,也可以是跨链同步数据的消息等,本实施例对此方面不限定。该跨链消息中可以包括区块链2的地址信息以及跨链消息的消息体。其中,区块链2的地址信息例如可以包括区块链2中各个节点的地址列表等。
在步骤303中,中继设备从预先存储的待发数据中进行查找,确定其中是否存储有与该跨链消息关联的待发数据。其中,与该跨链消息关联的待发数据中包括该跨链消息和区块链1中一个或多个节点对该跨链消息的签名。
具体来说,可以基于该跨链消息生成该跨链消息对应的标识码,例如,利用预设的哈希算法对该跨链消息进行计算,将计算结果作为该跨链消息对应的标识码。可以理解,也可以通过其它任意合理的算法生成该跨链消息对应的标识码,该标识码的生成取决于该跨链消息,使得跨链消息与标识码一一对应。然后,从预先存储的待发数据中查找与该标识码关联的待发数据。其中,预先存储的每个待发数据均关联于一个标识码,待发数据与标识码以键值的方式存储,标识码为键,待发数据为值。可以遍历各个待发数据关联的标识码,若查找到和该跨链消息对应的标识码关联的待发数据,则可以将该待发数据确定为与该跨链消息关联的待发数据。
可选地,预先存储的待发数据可以包括用于记录目标区块链地址的地址字段,用于记录消息体的内容字段,用于记录签名的签名字段,以及用于记录消息接收时间的时间字段。其中,在一种实现方式中,该时间字段可以用于记录跨链消息的初始接收时间。在另一种实现方式中,该时间字段也可以用于记录跨链消息的最近接收时间。
在步骤305中,若中继设备确定存储有与该跨链消息关联的待发数据,则可以将该节点对跨链消息的签名添加到与该跨链消息关联的待发数据中。具体来说,可以在与该跨链消息关联的待发数据的签名字段下添加该签名。可选地,如果时间字段用于记录跨链消息的最近接收时间,则还可以用接收该跨链消息的时间更新该待发数据的时间字段下的接收时间。
若中继设备确定未存储有与该跨链消息关联的待发数据,则可以基于该跨链消息生成并存储关联的待发数据。具体来说,可以将上述生成的标识码、该跨链消息以及上述节点对跨链消息的签名关联地存储为待发数据。例如,可以将上述生成的标识码作为键,该跨链消息、上述节点对跨链消息的签名以及接收该跨链消息的时间作为值,以键值的方式关联地存储为待发数据。
在步骤307中,在满足预设的时间条件时,将与该跨链消息关联的待发数据发送给区块链2的各个节点,使得区块链2的各个节点基于该待发数据中的签名对该跨链消息进行验证。
例如,可以获取待发数据的时间字段记录的接收时间,计算当前时刻与初始接收时间的差值,如果该差值大于预设值,则可以将该待发数据发送给区块链2的各个节点。需要说明的是,在一种实现方式中,待发数据的时间字段用于记录跨链消息的初始接收时间,在另一种实现方式中,待发数据的时间字段用于记录跨链消息的最近接收时间。这两种情况下的预设值是不同的,该预设值的具体取值可以根据经验进行设定。
在本实施例中,区块链2的各个节点接收到该待发数据之后,可以基于该待发数据中的签名对该跨链消息进行验证。具体地,区块链2的各个节点验证该待发数据包括的每个签名,对于区块链2的任一节点,如果对该待发数据中超过n个签名验证成功,则该节点确定该待发数据可信。其中,n可以是根据区块链采用的共识机制确定的个数,以实用拜占庭容错算法的共识机制为例,n可以是f1+1,f1为区块链1的拜占庭节点个数。如果区块链2中超过m个节点确定该待发数据可信,则该待发数据包括的跨链消息为有效消息(例如,m可以是f2+1,f2为区块链2的拜占庭节点个数)。
需要说明的是,区块链1和区块链2可以是两个相互独立的区块链,也是可以区块链组网中的两个子网,本实施例对此方面不限定。
本说明书的上述实施例提供的跨链通信方法,通过设置于相互通信的区块链之间的中继设备对接收到的内容相同的跨链消息进行合并处理,得到包括各个发送节点签名的待发数据,并在满足预设的时间条件时,将待发数据发送给目标节点,从而提高了不同区块链之间的通信效率。
应当注意,尽管在上述实施例中,以特定顺序描述了本说明书实施例的方法的操作,但是,这并非要求或者暗示必须按照该特定顺序来执行这些操作,或是必须执行全部所示的操作才能实现期望的结果。相反,流程图中描绘的步骤可以改变执行顺序。附加地或备选地,可以省略某些步骤,将多个步骤合并为一个步骤执行,和/或将一个步骤分解为多个步骤执行。
下面结合一个完整的应用实例,对本说明书一个或多个实施例的方案进行示意性说明。
应用场景可以为:区块链1从区块链2查询跨链数据的过程。其中,区块链1可以包括节点a,节点b,节点c和节点d。
具体来说,首先,区块链1中的各个节点确定跨链的查询消息Q,并利用各自的私钥对查询消息Q进行签名,得到节点a的签名Sa,节点b的签名Sb,节点c的签名Sc和节点d的签名Sd。其中,查询消息Q包括消息体B1和区块链2中各个节点的IP列表L1。然后,区块链1中的各个节点将查询消息Q以及各自的签名发送给中继设备。
中继设备首先在Ta时刻接收到节点a发送的查询消息Q和签名Sa,中继设备先利用预设的哈希算法对查询消息Q进行处理,得到标识码M1。然后,从预先存储的待发数据中查找是否存储有与标识码M1关联的待发数据D1。图4A为Ta时刻之前中继设备存储的待发数据的结构示意图,如图4A所示,预存的待发数据中未存储有标识码M1关联的待发数据D1。因此,可以在待发数据中添加查询消息Q对应的待发数据。具体来说,以标识码M1为键(key),以查询消息Q、签名Sa和Ta时刻为值(value),以键值的方式在待发数据中添加待发数据D1。如图4B所示,图4B为添加待发数据D1之后待发数据的结构示意图。
接着,中继设备在Tc时刻接收到节点c发送的查询消息Q和签名Sc,中继设备对查询消息Q进行处理,得到标识码M1。然后,从待发数据中查找是否存储有与标识码M1关联的待发数据D1。由图4B可知,预存的待发数据中存储有与标识码M1关联的待发数据D1。因此,可以将签名Sc和Tc时刻添加到待发数据D1中,以更新待发数据D1。如图4C所示,图4C为待发数据D1更新之后待发数据的结构示意图。
然后,中继设备陆续在Td时刻和Tb时刻(Tb时刻在后),分别接收到节点d和节点b发送的查询消息Q和各自的签名Sd和签名Sb,并对待发数据D1进行更新。在Tz时刻,中继设备确定Tz-Tb的差值大于等于预设差值T,因此,中继设备将待发数据D1发送给区块链2的各个节点,并删除存储的待发数据D1。如图4D所示,图4D为发送待发数据D1之前待发数据的结构示意图。
区块链2的各个节点接收到待发数据D1之后,对其中包括的各个签名进行验签,根据验签的结果,确定查询消息Q为有效消息。然后,区块链2的各个节点基于查询消息Q进行查询操作,各自得到目标数据。并分别将各自得到的目标数据发送给中继设备,由中继设备将目标数据返回给区块链1中的各个节点。其中,将目标数据返回给区块链1中的各个节点的步骤与上述发送查询消息Q的过程类似,在此不再赘述。
本说明书的上述实施例提供的跨链通信方法,通过在相互通信的区块链之间设置中继设备,由中继设备对接收到的内容相同的跨链消息进行合并处理,得到包括各个发送节点签名的待发数据,并在满足预设的时间条件时,将待发数据发送给目标节点,从而提高了不同区块链之间的通信效率。
可见,应用上述方案,在相互通信的两个不同的区块链之间设置中继设备,由中继设备对接收到的内容相同的跨链消息进行合并处理,得到包括各个发送节点签名的待发数据,并在满足预设的时间条件时,将待发数据发送给目标节点,从而提高了不同区块链之间的通信效率。
与前述跨链通信方法实施例相对应,本说明书还提供了跨链通信装置的实施例。
如图5所示,图5是本说明书根据一示例性实施例示出的一种跨链通信装置框图,该装置部署于中继设备,该装置可以包括:接收模块501,确定模块502,添加模块503和发送模块504。
其中,接收模块501,用于接收第一区块链中第一节点发送的跨链消息和第一节点对跨链消息的第一签名。
确定模块502,用于确定是否预先存储有与该跨链消息关联的第一待发数据,该第一待发数据包括该跨链消息和第一区块链中一个或多个节点对该跨链消息的签名。
添加模块503,用于在确定存储有第一待发数据时,将第一签名添加到第一待发数据中。
发送模块504,用于在满足预设的时间条件时,将第一待发数据发送给第二区块链的各个节点,使得第二区块链的各个节点基于第一待发数据中的签名对该跨链消息进行验证。
在一些实施方式中,该跨链消息包括第二区块链的地址信息以及该跨链消息的消息体。
在另一些实施方式中,确定模块502可以包括:生成子模块和查找子模块(图中未示出)。
其中,生成子模块,用于基于该跨链消息生成标识码。
查找子模块,用于从预先存储的待发数据中查找与该标识码关联的第一待发数据。
在另一些实施方式中,生成子模块被配置用于:利用预设的哈希算法对该跨链消息进行计算,得到该标识码。
在一些实施方式中,该装置还可以包括:存储模块(图中未示出)。
其中,存储模块,用于在确定未存储有第一待发数据时,基于该跨链消息生成并存储第一待发数据。
在另一些实施方式中,该存储模块被配置用于:将上述标识码、该跨链消息以及第一签名关联地存储为第一待发数据。
在另一些实施方式中,该存储模块通过如下方式将上述标识码、跨链消息以及第一签名关联地存储为第一待发数据:将上述标识码作为键,将该跨链消息以及第一签名作为值,以键值的方式存储为第一待发数据。
在另一些实施方式中,第一待发数据还可以包括最近消息接收时间。
其中,该装置还包括:更新模块,用于在确定存储有第一待发数据之后,利用接收跨链消息的时间更新第一待发数据包括的最近消息接收时间。
在另一些实施方式中,发送模块被配置用于:计算当前时刻与最近消息接收时间的第一差值,在第一差值大于第一预设值时,将第一待发数据发送给第二区块链的各个节点。
在另一些实施方式中,第一待发数据还包括第一待发数据对应的首条跨链消息的初始消息接收时间。其中,发送模块被配置用于:计算当前时刻与初始消息接收时间的第二差值,若第二差值大于第二预设值,将第一待发数据发送给第二区块链的各个节点。
在另一些实施方式中,第一区块链和第二区块链为基于第三区块链的子网,第一节点与第三区块链中的第三节点部署于相同的计算设备中,第二区块链中的第二节点与第三区块链中的第四节点部署于相同的计算设备中。
应当理解,上述装置可以预先设置在中继设备中,也可以通过下载等方式而加载到中继设备中。上述装置中的相应模块可以与中继设备中的模块相互配合以实现跨链通信方案。
对于装置实施例而言,由于其基本对应于方法实施例,所以相关之处参见方法实施例的部分说明即可。以上所描述的装置实施例仅仅是示意性的,其中所述作为分离部件说明的单元可以是或者也可以不是物理上分开的,作为单元显示的部件可以是或者也可以不是物理单元,即可以位于一个地方,或者也可以分布到多个网络单元上。可以根据实际的需要选择其中的部分或者全部模块来实现本说明书一个或多个实施例方案的目的。本领域普通技术人员在不付出创造性劳动的情况下,即可以理解并实施。
本说明书一个或多个实施例还提供了一种计算机可读存储介质,该存储介质存储有计算机程序,计算机程序可用于执行上述图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、光学存储器等)上实施的计算机程序产品的形式。
本说明书一个或多个实施例可以在由计算机执行的计算机可执行指令的一般上下文中描述,例如程序模块。一般地,程序模块包括执行特定任务或实现特定抽象数据类型的例程、程序、对象、组件、数据结构等等。也可以在分布式计算环境中实践本本说明书一个或多个实施例,在这些分布式计算环境中,由通过通信网络而被连接的远程处理设备来执行任务。在分布式计算环境中,程序模块可以位于包括存储设备在内的本地和远程计算机存储介质中。
本说明书中的各个实施例均采用递进的方式描述,各个实施例之间相同相似的部分互相参见即可,每个实施例重点说明的都是与其他实施例的不同之处。尤其,对于***实施例而言,由于其基本相似于方法实施例,所以描述的比较简单,相关之处参见方法实施例的部分说明即可。在本说明书的描述中,参考术语“一个实施例”、“一些实施例”、“示例”、“具体示例”、或“一些示例”等的描述意指结合该实施例或示例描述的具体特征、结构、材料或者特点包含于本说明书的至少一个实施例或示例中。在本说明书中,对上述术语的示意性表述不必须针对的是相同的实施例或示例。而且,描述的具体特征、结构、材料或者特点可以在任一个或多个实施例或示例中以合适的方式结合。此外,在不相互矛盾的情况下,本领域的技术人员可以将本说明书中描述的不同实施例或示例以及不同实施例或示例的特征进行结合和组合。
以上所述仅为本说明书一个或多个实施例的实施例而已,并不用于限制本本说明书一个或多个实施例。对于本领域技术人员来说,本说明书一个或多个实施例可以有各种更改和变化。凡在本说明书的精神和原理之内所作的任何修改、等同替换、改进等,均应包含在权利要求范围之内。

Claims (24)

1.一种跨链通信方法,所述方法由中继设备执行;所述方法包括:
接收第一区块链中第一节点发送的跨链消息和所述第一节点对所述跨链消息的第一签名;
确定是否预先存储有与所述跨链消息关联的第一待发数据;所述第一待发数据包括所述跨链消息和所述第一区块链中一个或多个节点对所述跨链消息的签名;其中,所述第一待发数据包括用于记录签名的签名字段;
若确定存储有所述第一待发数据,将所述第一签名添加到所述第一待发数据中;
在满足预设的时间条件时,将所述第一待发数据发送给第二区块链的各个节点;使得所述第二区块链的各个节点基于所述第一待发数据中的签名对所述跨链消息进行验证。
2.根据权利要求1所述的方法,其中,所述跨链消息包括所述第二区块链的地址信息以及所述跨链消息的消息体。
3.根据权利要求1所述的方法,所述确定是否预先存储有与所述跨链消息关联的第一待发数据,包括:
基于所述跨链消息生成标识码;
从预先存储的待发数据中查找与所述标识码关联的第一待发数据。
4.根据权利要求3所述的方法,其中,所述基于所述跨链消息生成标识码,包括:
利用预设的哈希算法对所述跨链消息进行计算,得到所述标识码。
5.根据权利要求3所述的方法,其中,所述方法还包括:
若确定未存储有所述第一待发数据,基于所述跨链消息生成并存储所述第一待发数据。
6.根据权利要求5所述的方法,其中,所述基于所述跨链消息生成并存储所述第一待发数据,包括:
将所述标识码、所述跨链消息以及所述第一签名关联地存储为所述第一待发数据。
7.根据权利要求6所述的方法,其中,所述将所述标识码、所述跨链消息以及所述第一签名关联地存储为所述第一待发数据,包括:
将所述标识码作为键,将所述跨链消息以及所述第一签名作为值,以键值的方式存储为所述第一待发数据。
8.根据权利要求1所述的方法,其中,所述第一待发数据还包括最近消息接收时间;
其中,在确定存储有所述第一待发数据之后,还包括:
利用接收所述跨链消息的时间更新所述第一待发数据包括的最近消息接收时间。
9.根据权利要求8所述的方法,其中,所述在满足预设的时间条件时,将所述第一待发数据发送给第二区块链的各个节点,包括:
计算当前时刻与所述最近消息接收时间的第一差值;
若所述第一差值大于第一预设值,将所述第一待发数据发送给第二区块链的各个节点。
10.根据权利要求1所述的方法,其中,所述第一待发数据还包括所述第一待发数据对应的首条跨链消息的初始消息接收时间;
其中,所述在满足预设的时间条件时,将所述第一待发数据发送给第二区块链的各个节点,包括:
计算当前时刻与所述初始消息接收时间的第二差值;
若所述第二差值大于第二预设值,将所述第一待发数据发送给第二区块链的各个节点。
11.根据权利要求1所述的方法,所述第一区块链和所述第二区块链为基于第三区块链的子网,所述第一节点与所述第三区块链中的第三节点部署于相同的计算设备中,所述第二区块链中的第二节点与所述第三区块链中的第四节点部署于相同的计算设备中。
12.一种跨链通信装置,所述装置部署于中继设备;所述装置包括:
接收模块,用于接收第一区块链中第一节点发送的跨链消息和所述第一节点对所述跨链消息的第一签名;
确定模块,用于确定是否预先存储有与所述跨链消息关联的第一待发数据;所述第一待发数据包括所述跨链消息和所述第一区块链中一个或多个节点对所述跨链消息的签名;
添加模块,用于在确定存储有所述第一待发数据时,将所述第一签名添加到所述第一待发数据中;
发送模块,用于在满足预设的时间条件时,将所述第一待发数据发送给第二区块链的各个节点;使得所述第二区块链的各个节点基于所述第一待发数据中的签名对所述跨链消息进行验证。
13.根据权利要求12所述的装置,其中,所述跨链消息包括所述第二区块链的地址信息以及所述跨链消息的消息体。
14.根据权利要求12所述的装置,所述确定模块包括:
生成子模块,用于基于所述跨链消息生成标识码;
查找子模块,用于从预先存储的待发数据中查找与所述标识码关联的第一待发数据。
15.根据权利要求14所述的装置,其中,所述生成子模块被配置用于:利用预设的哈希算法对所述跨链消息进行计算,得到所述标识码。
16.根据权利要求14所述的装置,其中,所述装置还包括:
存储模块,用于在确定未存储有所述第一待发数据时,基于所述跨链消息生成并存储所述第一待发数据。
17.根据权利要求16所述的装置,其中,所述存储模块被配置用于:将所述标识码、所述跨链消息以及所述第一签名关联地存储为所述第一待发数据。
18.根据权利要求17所述的装置,其中,所述存储模块通过如下方式将所述标识码、所述跨链消息以及所述第一签名关联地存储为所述第一待发数据:将所述标识码作为键,将所述跨链消息以及所述第一签名作为值,以键值的方式存储为所述第一待发数据。
19.根据权利要求12所述的装置,其中,所述第一待发数据还包括最近消息接收时间;
其中,所述装置还包括:更新模块,用于在确定存储有所述第一待发数据之后,利用接收所述跨链消息的时间更新所述第一待发数据包括的最近消息接收时间。
20.根据权利要求19所述的装置,其中,所述发送模块被配置用于:
计算子模块,用于计算当前时刻与所述最近消息接收时间的第一差值;
发送子模块,用于在所述第一差值大于第一预设值时,将所述第一待发数据发送给第二区块链的各个节点。
21.根据权利要求12所述的装置,其中,所述第一待发数据还包括所述第一待发数据对应的首条跨链消息的初始消息接收时间;
其中,所述发送模块被配置用于:
计算当前时刻与所述初始消息接收时间的第二差值;
若所述第二差值大于第二预设值,将所述第一待发数据发送给第二区块链的各个节点。
22.根据权利要求12所述的装置,所述第一区块链和所述第二区块链为基于第三区块链的子网,所述第一节点与所述第三区块链中的第三节点部署于相同的计算设备中,所述第二区块链中的第二节点与所述第三区块链中的第四节点部署于相同的计算设备中。
23.一种计算机可读存储介质,其上存储有计算机程序,当所述计算机程序在计算机中执行时,令所述计算机执行权利要求1-11中任一项所述的方法。
24.一种计算设备,包括存储器和处理器,所述存储器中存储有可执行代码,所述处理器执行所述可执行代码时,实现权利要求1-11中任一项所述的方法。
CN202210335217.2A 2022-03-31 2022-03-31 跨链通信方法、装置、存储介质及计算设备 Active CN114785800B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN202210335217.2A CN114785800B (zh) 2022-03-31 2022-03-31 跨链通信方法、装置、存储介质及计算设备

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN202210335217.2A CN114785800B (zh) 2022-03-31 2022-03-31 跨链通信方法、装置、存储介质及计算设备

Publications (2)

Publication Number Publication Date
CN114785800A CN114785800A (zh) 2022-07-22
CN114785800B true CN114785800B (zh) 2024-06-11

Family

ID=82426347

Family Applications (1)

Application Number Title Priority Date Filing Date
CN202210335217.2A Active CN114785800B (zh) 2022-03-31 2022-03-31 跨链通信方法、装置、存储介质及计算设备

Country Status (1)

Country Link
CN (1) CN114785800B (zh)

Families Citing this family (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN116701410B (zh) * 2023-08-07 2023-11-14 北京大学 数联网数据语用内存状态数据的存储方法及***

Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN112272114A (zh) * 2020-10-28 2021-01-26 成都质数斯达克科技有限公司 跨区块链网络发送信息的方法、装置、设备及存储介质
CN112417046A (zh) * 2020-11-23 2021-02-26 宙通科技(南京)有限公司 一种应用于区块链共识机制的并行化拜占庭容错方法
CN112633885A (zh) * 2020-12-31 2021-04-09 深圳前海益链网络科技有限公司 一种多签名交易实现方法及相关装置

Family Cites Families (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
MY192336A (en) * 2019-07-23 2022-08-17 Advanced New Technologies Co Ltd Managing transactions on blockchain networks
CN113191900A (zh) * 2021-05-11 2021-07-30 预言机(重庆)科技有限公司 一种基于中继链的跨区块链链上权益转让方法及***

Patent Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN112272114A (zh) * 2020-10-28 2021-01-26 成都质数斯达克科技有限公司 跨区块链网络发送信息的方法、装置、设备及存储介质
CN112417046A (zh) * 2020-11-23 2021-02-26 宙通科技(南京)有限公司 一种应用于区块链共识机制的并行化拜占庭容错方法
CN112633885A (zh) * 2020-12-31 2021-04-09 深圳前海益链网络科技有限公司 一种多签名交易实现方法及相关装置

Also Published As

Publication number Publication date
CN114785800A (zh) 2022-07-22

Similar Documents

Publication Publication Date Title
CN114679457B (zh) 一种区块链中的节点分组方法及区块链节点
CN114785800B (zh) 跨链通信方法、装置、存储介质及计算设备
CN114281893A (zh) 一种区块链交易的处理方法、装置及设备
CN114936092A (zh) 在区块链中执行交易的方法及区块链的主节点
CN115150409B (zh) 在区块链***中执行交易的方法、区块链***、节点及计算机可读存储介质
CN116366666A (zh) 区块链***中的链状态更新方法和区块链节点
CN116032756A (zh) 基于区块链更新应用程序的配置信息的方法和区块链节点
CN115941262A (zh) 区块链***中的交易执行方法和节点
CN114785853B (zh) 在区块链的***中跨链通信的方法、装置、存储介质及计算设备
CN114968422A (zh) 基于变量状态自动执行合约的方法和装置
CN116319943A (zh) 跨链交互方法和区块链节点
CN116226277A (zh) 一种nft资源转移方法和区块链节点
CN115174573B (zh) 区块链***中的数据广播方法、节点和区块链***
CN114780973A (zh) 在区块链***中管理账户的方法及装置
CN115174572B (zh) 区块链中的数据组播方法、区块链节点和存储介质
WO2024066014A1 (zh) 区块链***中的交易执行方法和节点
CN116126966A (zh) 在区块链***中查询数据的方法、装置和区块链节点
CN116366706A (zh) 跨链交互方法和区块链节点
CN116346878A (zh) 访问区块链***的方法、服务节点和业务***
CN116305311A (zh) 区块链***中验证读写集的方法和装置
CN116633626A (zh) 基于区块链的文件共享方法、区块链节点和计算节点
CN116049170A (zh) 区块链状态的存储、验证方法及区块链节点
CN115576709A (zh) 基于区块链的通信处理方法及装置
CN116644452A (zh) 基于区块链***的文件读写方法、装置及节点
CN116993502A (zh) 基于区块链***的提示词管理方法及装置

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
GR01 Patent grant
GR01 Patent grant