CN116319943A - 跨链交互方法和区块链节点 - Google Patents

跨链交互方法和区块链节点 Download PDF

Info

Publication number
CN116319943A
CN116319943A CN202310342727.7A CN202310342727A CN116319943A CN 116319943 A CN116319943 A CN 116319943A CN 202310342727 A CN202310342727 A CN 202310342727A CN 116319943 A CN116319943 A CN 116319943A
Authority
CN
China
Prior art keywords
blockchain
cross
node
chain
event
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
Application number
CN202310342727.7A
Other languages
English (en)
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 CN202310342727.7A priority Critical patent/CN116319943A/zh
Publication of CN116319943A publication Critical patent/CN116319943A/zh
Pending legal-status Critical Current

Links

Images

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/14Session management
    • H04L67/141Setup of application sessions
    • 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

Landscapes

  • Engineering & Computer Science (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Signal Processing (AREA)
  • Information Retrieval, Db Structures And Fs Structures Therefor (AREA)

Abstract

一种跨链交互方法和区块链节点,该方法由第一区块链系统所包括的多个区块链节点中任意的第一区块链节点执行,该多个区块链节点对跨链事件配置有不同的处理延时。该方法可以包括:根据第一区块链节点自身配置的处理延时,确定是否需要处理其获得的目标跨链事件;如果是则根据目标跨链事件生成跨链请求;并向第一区块链系统中的其余区块链节点发送与目标跨链事件对应的指示信息,用于指示接收到指示信息的区块链节点无需处理目标跨链事件;以及向第二区块链系统发送跨链请求。

Description

跨链交互方法和区块链节点
技术领域
本说明书实施例属于区块链领域,尤其涉及一种跨链交互方法和区块链节点。
背景技术
区块链技术构建在传输网络(例如点对点网络)之上。区块链系统中的区块链节点利用链式数据结构来验证与存储数据,并采用分布式节点共识算法来生成和更新数据。可组建不同的区块链系统来支持不同类型业务的实现。在该技术场景下,不同的区块链系统之间存在交互的需求,从而通过跨链交互来实现一些复杂的业务。
发明内容
本发明的目的在于提供一种跨链交互方法和区块链节点。
第一方面,提供了一种跨链交互方法,由第一区块链系统所包括的多个区块链节点中任意的第一区块链节点执行,所述多个区块链节点对跨链事件配置有不同的处理延时。所述方法包括:根据所述第一区块链节点配置的处理延时,确定是否需要处理其获得的目标跨链事件;如果是,根据所述目标跨链事件生成跨链请求;向所述第一区块链系统中的其余区块链节点发送与所述目标跨链事件对应的指示信息,用于指示接收到所述指示信息的区块链节点无需处理所述目标跨链事件;向第二区块链系统发送所述跨链请求。
第二方面,提供了一种第一区块链节点,所述第一区块链节点属于第一区块链系统所包括的多个区块链节点,所述多个区块链节点对跨链事件配置有不同的处理延时。其中,所述第一区块链节点包括:事务确定单元,用于根据所述第一区块链节点配置的处理延时,确定是否需要处理其获得的目标跨链事件;事务处理单元,用于在需要处理所述目标跨链事件的情况下,根据所述目标跨链事件生成跨链请求;通信处理单元,用于向所述第一区块链系统中的其余区块链节点发送与所述目标跨链事件对应的指示信息,用于指示接收到所述指示信息的区块链节点无需处理所述目标跨链事件;所述通信处理单元,还用于向第二区块链系统发送所述跨链请求。
第三方面,提供了一种计算机可读存储介质,其上存储有计算机程序/指令,当所述计算机程序/指令在计算设备中执行时,计算设备执行第一方面中所述的方法。
第四方面,提供了一种计算设备,包括存储器和处理器,所述存储器中存储有可执行代码/指令,所述处理器执行所述可执行代码/指令时,实现第一方面中所述的方法。
在本说明书实施例的方案中,第一区块链系统中的多个区块链节点对跨链事件配置有不同的处理延时,对于该多个区块链节点中任意的第一区块链节点而言,其可以根据自身配置的处理延时确定是否需要处理其获得的目标跨链事件,如果是则根据目标跨链事件生成跨链请求,并向第一区块链系统中的其余区块链节点发送与目标跨链事件对应的指示信息,以指示接收到指示信息的区块链节点无需处理该目标跨链事件,以及向第二区块链系统发送该跨链请求。如此,第一区块链节点中的多个区块链节点并不需要分别处理其获得的相同跨链事件,而且并不依赖第一区块链系统中的主节点来负责与第二区块链系统进行跨链交互,有利于第一区块链系统更加高效的完成对跨链事件的处理。
附图说明
为了更清楚地说明本说明书实施例的技术方案,下面将对实施例描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本说明书中记载的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动性的前提下,还可以根据这些附图获得其他的附图。
图1为本说明书实施例中提供的一种区块链系统的架构图;
图2为本说明书实施例中提供的一种跨链交互方法的流程图;
图3为示例性提供的一种基于区块链主网组建区块链子网的示意图;
图4为示例性提供的一种跨链请求的结构示意图;
图5为本说明书实施例中提供的一种区块链节点更新其配置的处理延时的流程图;
图6为本说明书实施例中提供的一种区块链节点的结构示意图。
具体实施方式
为了使本技术领域的人员更好地理解本说明书中的技术方案,下面将结合本说明书实施例中的附图,对本说明书实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本说明书一部分实施例,而不是全部的实施例。基于本说明书中的实施例,本领域普通技术人员在没有作出创造性劳动前提下所获得的所有其他实施例,都应当属于本说明书保护的范围。
图1为本说明书实施例中示例性提供的一种区块链系统的架构图。在图1所示的区块链系统的架构图中,区块链系统100中例如可以包括N个区块链节点,其中图1中示例性的示出了节点1-节点8等8个区块链节点。节点之间的连线示意性的表示P2P(Peer to Peer,点对点)连接,前述连接例如可以为传输控制协议(transmission control trotocol,TCP)连接。
区块链系统中的交易可以指在区块链系统中执行并记录在区块链系统中的任务单元。交易中通常包括发送字段(From)、接收字段(To)和数据字段(Data)。其中,在交易为转账交易的情况中,From字段表示发起该交易(即发起对另一个账户的转账任务)的账户地址,To字段表示接收该交易(即接收转账)的账户地址,Data字段中包括转账金额。
区块链系统中可提供智能合约的功能。区块链系统上的智能合约是在区块链系统上可以被交易触发执行的合约。智能合约可以通过代码的形式定义。在区块链系统中调用智能合约,是发起一笔指向智能合约地址的交易,使得区块链系统中的节点分布式地运行智能合约代码。
在部署合约的场景中,例如,Bob将一个包含创建智能合约信息(即部署合约)的交易发送到如图1所示的区块链中,该交易的data字段包括待创建的合约的代码(如字节码或者机器码),交易的to字段为空,以表示该交易用于部署合约。节点间通过共识机制达成相同后,确定合约的合约地址“0x6f8ae93…”,各个节点在状态数据库中添加与该智能合约的合约地址对应的合约账户,分配与该合约账户对应的状态存储,并存储合约代码,将合约代码的哈希值保存在该合约的状态存储中,从而合约创建成功。
在调用合约的场景中,例如,Bob将一个用于调用智能合约的交易发送到如图1所示的区块链中,该交易的from字段是交易发起方(即Bob)的账户的地址,to字段例如为上述“0x6f8ae93…”,即被调用的智能合约的地址,交易的data字段包括调用智能合约的方法和参数。在区块链中对该交易进行共识之后,区块链中的各个节点可分别执行该交易,从而分别执行该合约,基于该合约的执行更新状态数据库。
需要说明的是,除了可以由用户创建智能合约外,还可以在创世块中由系统设置智能合约。这类合约一般称为创世合约。一般的,创世合约中可以设置一些区块链系统的数据结构、参数、属性和方法。此外,具有系统管理员权限的账户可以创建系统级的合约,或者修改系统级的合约(简称为系统合约)。另外除了以太坊中的EVM外,不同的区块链网络还可能采用各种的虚拟机,这里并不限定。
区块链系统中的区块链节点在完成执行用于调用智能合约的交易后,会生成相应的收据(receipt),以用于记录与执行该智能合约相关的信息。区块链节点可以通过查询交易的收据来获得合约执行结果的相关信息。合约执行结果可以表现为收据中的事件(event),可以通过消息机制来实现对收据中的事件进行消息传递,触发区块链节点基于收据中的事件来执行相应的处理。其中除用于调用智能合约的交易以外,其它交易例如转账交易也可能产生收据。
单个收据中可以包括一个或多个事件。单个事件可以包括主题(topic)和数据(data)等多个字段。区块链节点可以通过监听事件的topic,从而在监听到预定义的topic的情况下,执行预设处理,或者从相应事件的data字段读取相关内容并基于读取的内容执行预设处理。
两个不同的区块链系统之间可能存在进行跨链交互的需求。比如,第一区块链系统在执行业务时,需要使用第二区块链系统维护的业务数据;那么第一区块链系统作为源区块链系统,第二区块链系统作为目的区块链系统,可以由第一区块链系统向第二区块链系统发起跨链请求,以从第二区块链系统取相关业务数据来完成相关业务的执行。
图2为本说明书实施例中提供的一种跨链交互方法的流程图。该方法示例性描述了第一区块链系统与第二区块链系统进行跨链交互的过程,该方法可以由第一区块链系统所包括的多个区块链节点中任意的第一区块链节点执行。第一区块链系统所包括的多个区块链节点可以通过执行相同的交易来获得相同的跨链事件。举例来说,部署于第一区块链系统中的对应业务层的智能合约C用于为用户注册相关业务的业务账户,注册业务账户需要使用到用户的身份信息,而用户的身份信息存证于第二区块链系统中;用户可向第一区块链系统发起用于调用智能合约C的跨链交易TxA1,跨链交易TxA1中包含智能合约C的合约地址和第二区块链系统的标识等信息,第一区块链系统中的多个区块链节点可以根据跨链交易TxA1执行智能合约C,获得交易TxA1的收据,进而通过监听跨链事件对应的topic来实现从收据中获得相同的目标跨链事件event AB,其data字段可以包括但不限于如下示例的各个子字段:
biz_id:业务id;
request_id:请求id/事件标识;
src_id:源区块链系统的标识,即产生跨链事件的第一区块链系统的标识;
dest_id:目的区块链系统的标识,即用于接收跨链事件的第二区块链系统的标识;
method:目的区块链系统中请求调用的方法;
args:调用的参数;
timestamp:时间戳。
第一区块链系统中的多个区块链节点获得目标跨链事件event AB的时刻,理论上应当相同或者相差极小。在此基础上,第一区块链系统中的多个区块链节点可以对跨链事件配置不同的处理延时;例如该多个区块链节点各自配置的处理延时,可以按照该多个区块链节点的排列顺序以预定时长T递增,其中排列在首位的区块链节点所配置的处理延时例如可以为0秒,以利尽可能的保证通过单个区块链节点来负责处理目标跨链事件。
参见图2所示,该方法可以包括但不限于如下步骤S201~步骤S215中的部分或全部。
首先,在步骤S201,根据第一区块链节点自身配置的处理延时,确定是否需要处理其获得的目标跨链事件。
对于第一区块链系统中的任意第i个区块链节点(即第一区块链节点)Node i,其在时刻t0获得目标跨链事件event AB之后,可以确定是否在其自身配置的处理延时ti内接收到与目标跨链事件event AB对应的指示信息,如果否则确定需要处理目标跨链事件event AB。更具体地说,Node i在时刻t0获得目标跨链事件event AB后,可以将目标跨链事件event AB加入跨链事件列表:如果Node i在时刻t0~时刻t1之间的时间间隔(即处理延时ti)内从第一区块链系统中的其余区块链节点接收到与目标跨链事件event AB对应的指示信息,例如接收到包含目标跨链事件event AB的事件标识(即request_id)的指示信息,则Node i可以从其存储的跨链事件列表中删除目标跨链事件event AB;如果Node i未能在时刻t0~时刻t1之间的时间间隔内,从第一区块链系统中的其余区块链节点接收到与目标跨链事件event AB对应的指示信息,则Node i可以在达到时刻t1时,确定其自身需要处理目标跨链事件event AB。
在第一区块链节点确定其自身需要处理处理目标跨链事件的情况下,执行步骤S203,根据目标跨链事件生成跨链请求。该跨链请求中例如可以包括或者指示目标跨链事件event AB。
接着,在步骤S205,向第一区块链系统中的其余区块链节点发送与目标跨链事件对应的指示信息,用于指示接收到指示信息的区块链节点无需处理目标跨链事件。
需要说明的是,第一区块链节点可以在完成根据目标跨链事件event AB生成跨链请求后立即执行步骤S205,或者可以在完成对目标跨链事件event AB的处理后执行步骤S205。
与目标跨链事件event AB对应的指示信息可以包括目标跨链事件event AB的request_id。
以及,在步骤S207,向第二区块链系统发送跨链请求。
当第一区块链系统和第二区块链系统满足强信任关系时,并不需要关注第一区块链系统和第二区块链系统中的区块链节点是否作恶,仅需要关注第一区块链系统和第二区块链系统中的区块链节点是否发生故障。在此基础上,第一区块链节点可以向第二区块链系统中的至少F+1个区块链节点发送跨链请求,F是第二区块链系统允许的最大故障节点数。如此,即可确保第二区块链系统中,存在一个或多个未发生故障的区块链节点能够准确接收到来自第一区块链系统的跨链请求。
典型的满足强信任关系的技术场景例如,第一区块链系统和第二区块链系统均是由目标区块链系统管理/创建/组建的区块链子网。部署有属于第一区块链系统的区块链节点的节点设备上,部署有属于目标区块链系统的区块链节点;与之相应的是,部署有属于第二区块链系统的区块链节点的节点设备上,部署有属于目标区块链系统的区块链节点。其中,前述的目标区块链系统例如可以是涉及多个参与方/节点成员的联盟链。
参见图3所示,目标区块链系统(也称为区块链主网)例如是subnet0,该subnet0包含的区块链节点为nodeA、nodeB、nodeC、nodeD和nodeE等。假定分别对应nodeA、nodeB、nodeC和nodeD的节点成员希望组建区块链子网subnet1,分别对应nodeA、nodeB、nodeC和nodeE的节点成员希望组建区块链子网subnet2。如果nodeA为管理员且仅允许管理员发起组建区块链子网的交易,那么可由nodeA向subnet0发起组建区块链子网subnet1、subnet2的两个组网交易,subnet0可以通过执行组网交易来触发相应的节点设备创建区块链子网subnet1和subnet2。例如,创建包括nodeA1、nodeB1、nodeC1、nodeD1等区块链节点的subnet1,以及创建包括nodeA2、nodeB2、nodeC2、nodeE2等区块链节点的subnet2。
在组建区块链子网时,并非由属于subnet0的区块链节点直接参与组建区块链子网,而是需要由用于部署属于subnet0的区块链节点的节点设备生成属于区块链子网的区块链节点,并由属于区块链子网的区块链节点参与组建区块链子网。其中,属于区块链子网的区块链节点和某个属于subnet0的区块链节点对应于相同的节点成员,比如在联盟链场景下对应于相同的联盟链成员,使得该节点成员可以分别参与到subnet0和区块链子网的交易中;除此之外,由于subnet0和区块链子网属于相互独立的两个区块链系统,使得属于subnet0的区块链节点生成的区块与属于区块链子网的区块链节点各自生成的区块分别存入所属节点设备上的不同存储(采用的存储譬如可以为数据库),实现了属于subnet0的区块链节点与属于区块链子网的区块链节点分别使用的存储之间的相互隔离,因而区块链子网所产生的数据仅会在区块链子网中的各个区块链节点之间同步,使得仅参与了区块链主网的节点成员无法获得区块链子网上产生的数据,实现了区块链主网与区块链子网之间的数据隔离,满足部分节点成员(即参与区块链子网的节点成员)之间的交易需求。由此,subnet1和subnet2可以对应为前述的第一区块链系统和第二区块链系统;subnet1中的区块链节点和subnet2中的区块链节点各自所属的节点成员/节点设备,均是区块链主网subnet0中的区块链节点所属的节点成员/节点设备,因此subnet1和subnet2满足强信任关系,subnet1和subnet2跨链交互的过程中无需关注subnet1和subnet2中是否存在恶意节点,只需要关注subnet1和subnet2中是否存在故障节点即可。
下面示例性描述subnet1获得并向subnet2发送跨链请求的过程。
参见图4所示,第一区块链节点可以在Signature Message层(消息签名层)通过调用AM消息组件对目标跨链事件event AB进行签名,以认证第一区块链节点的身份。其中,node_id字段用于存放第一区块链节点的节点标识,msg字段用于存放或指示监听到的目标跨链事件event AB,sign字段用于存放第一区块链节点采用自身的节点私钥对msg字段的签名数据。
第一区块链节点可以在Envelope Message层(消息信封层)通过调用Envelope消息组件对Signature Message层得到的数据采用数字信封的方式进行加密。具体而言,第一区块链节点可随机生成自身使用的对称密钥K,然后采用对称密钥K对上述node_id字段、msg字段和sign字段的内容进行加密后存放至encry_data字段。与此同时,在区块链主网subnet0部署的Subnet系统合约中,维护有各个区块链子网内区块链节点的节点公钥。因此,第一区块链节点可通过subnet2的标识查询Subnet系统合约中维护的subnet2内至少F+1个区块链节点的节点公钥,然后分别采用至少F+1个节点公钥加密自身使用的对称密钥K,得到至少F+1个密文形式的对称密钥en_key1、en_key2、en_key3等等,并存放于encryped_key字段中。
第一区块链节点可以在P2P Message层(通讯层)通过调用P2P消息组件将Envelope Message层得到的数据封装成跨链请求。具体而言,将encryped_key字段和encry_data字段的内容存放至data字段中。同时,跨链请求还包含以下字段:
src_id:subnet1的标识;
dest_id:subnet2的标识;
msg_type:跨链请求的请求类型标识。
与此同时,在区块链主网subnet0部署的Subnet系统合约中,维护有各个区块链子网内子网节点的IP地址、端口号等地址信息。因此,第一区块链节点可通过subnet2的标识查询Subnet系统合约中维护的subnet2内的前述至少F+1个区块链节点的地址信息,从而在生成跨链请求后,根据地址信息向subnet2内的前述至少F+1个区块链节点发送跨链请求。
对于第二区块链系统中接收到跨链请求的任意区块链节点Node j,其会对跨链请求进行响应。例如Node j可以从跨链请求所包括或指示的目标跨链事件event AB中,提取参数字段args和方法字段method所包括的相关信息,基于参数字段args字段所包括的信息对应的执行方法字段method所指示的方法,进而获得与目标跨链事件event AB/跨链请求对应的响应结果,该响应结果例如包括期望查询的并且用于支持第一区块链系统执行相关业务的业务数据。
举例来说,subnet2内的Node j同样依次在上述各层对接收到的跨链请求进行处理。其中Node j采用自身的节点私钥分别对encryped_key字段存放的各个密文形式的对称密钥进行解密,可对采用Node j的节点公钥加密的对称密钥成功解密,然后再通过解密成功的对称密钥对encry_data字段存放的数据进行解密,得到node_id字段、msg字段和sign字段的相关内容。此时,可校验第一区块链节点的有效性和签名的有效性。比如,可根据跨链请求的src_id查询Subnet系统合约中维护的subnet1内各区块链节点的节点标识和节点公钥。然后,判断查询到的节点标识是否包含node_id字段存放的节点标识,当查询到的节点标识包含node_id字段存放的节点标识时,判定第一区块链节点的有效性校验通过。然后,采用与node_id字段存放的节点标识对应的节点公钥对sign字段存放的签名进行验签,以在验签通过的情况下判定第一区块链节点的签名校验通过。在校验第一区块链节点的有效性和签名的有效性通过之后,可读取msg字段存放的内容以进行响应。比如,按照method字段和args字段存放内容的指示执行相应的操作,读取将要执行的智能合约C所需的业务数据,然后向第一区块链节点返回包含业务数据的响应结果。其中Node j向第一区块链节点返回响应结果的过程相似于第一区块链节点向Node j发送跨链请求的过程,在此不再赘述。
与之相应的是,第一区块链系统中发出跨链请求的第一区块链节点,可以对应的执行步骤S209,从第二区块链系统中的第二区块链节点接收与跨链请求对应的响应结果。
第二区块链节点是指第二区块链系统中接收并响应跨链请求的任一区块链节点。
响应结果中除用于支持第一区块链系统执行相关业务的业务数据外,还可以包括其它辅助信息,例如包括目标跨链事件event AB中的部分或全部信息。此外参照前文,第一区块链节点还可能从第二区块链节点接收到第二区块链节点对响应结果的签名,第一区块链节点可以在该签名通过验证的情况下,才继续使用来自第二区块链节点的响应结果执行后续处理。
接着,在步骤S211,根据响应结果生成与目标跨链事件对应的回调交易,回调交易用于调用部署在第一区块链系统中的智能合约。其中,对于第一区块链节点所生成的回调交易(记为TxA2),其请求调用的智能合约例如是前文所述的智能合约C。
第一区块链节点生成与目标跨链事件enent AB对应的回调交易TxA2后,意味着第一区块链节点完成对目标跨链事件enent AB的处理。即,对照前文可以理解,前述步骤S205也可以在第一区块链节点完成执行步骤S211之后再执行。
第一区块链系统获得调用智能合约C的回调交易TxA2后,需要通过对回调交易TxA2进行共识并执行才能完成相关业务。然而,如果第一区块链系统中存在处理延时较小的区块链节点未能及时开始处理目标跨链事件event AB,或者说存在处理延时较小的区块链节点未能及时完成处理目标跨链事件event AB,则可能导致第一区块链系统中存在至少两个区块链节点会分别执行前述步骤S201~步骤S211所示的过程,从而导致第一区块链系统中可能在不同的时刻产生至少两个相同的回调交易TxA2。鉴于以上问题,为了避免第一区块链系统重复处理与目标跨链事件event AB对应的相同回调交易,第一区块链节点还可以在第一区块链系统开始处理其生成的回调交易TxA2之前,执行如下步骤S213和步骤S215。
在步骤S213,在对回调交易进行共识之前,根据事件标识列表和回调交易中所包括的事件标识,确定是否已处理过回调交易。
如果否,则执行步骤S215,在事件标识列表中新增回调交易中所包括的事件标识。
在处理第一区块链节点生成的回调交易TxA2,例如在第一区块链系统对回调交易进行共识之前,第一区块链节点可以查询事件标识列表中,是否包括其生成的回调交易TxA2所包括的目标跨链事件event AB的事件标识,如果是则说明已经存在其它区块链节点完成处理目标跨链事件event AB,同时说明第一区块链系统可能已经处理过回调交易TxA2,第一区块链节点可以直接丢弃其生成的回调交易TxA2。与之相反的是,如果事件标识列表中并不包括目标跨链事件event AB的事件标识,说明第一区块链系统未处理过回调交易TxA2,第一区块链节点可以在事件标识列表中新增回调交易TxA2中所包括的目标跨链事件event AB的事件标识,并允许第一区块链系统继续处理回调交易TxA2,例如允许对回调交易TxA2进行共识。
当处理延时较小的区块链节点发生故障或其它问题,导致其未能及时开始处理或及时完成处理跨链事件时,将会导致整个第一区块链系统需要花费较长的时间才能完成处理单个跨链事件,影响第一区块链系统的性能。为了确保第一区块链系统能够较为快速的完成对各个跨链事件的处理,在第一区块链系统所包括的多个区块链节点配置的处理延时,按照该多个区块链节点的排列顺序以预定时长T递增的情况下,第一区块链系统所包括多个区块链节点中任意的未排列在首位的第一区块链节点,还可以按照相应的策略来更新其配置的处理延时。
图5为本说明书实施例中提供的一种区块链节点更新其配置的处理延时的流程图。该方法可以由第一区块链系统所包括多个区块链节点中未排列在首位的任意第一区块链节点执行。
参照图5所示,该方法可以包括但不限于如下步骤S501~步骤S503中的部分或全部。
在步骤S501,在第一区块链节点获得目标跨链事件之后,确定其自身是否在预定时长内接收到与目标跨链事件对应的指示信息。
如果否,则继续执行如下步骤S503,确定排列在第一区块链节点之前的若干区块链节点对目标跨链事件的处理发生异常。
接着,在步骤S505,在若干区块链节点对第一区块链节点连续获得的预设数量个跨链事件的处理均发生异常的情况下,根据预定时长递减第一区块链节点中配置的处理延时。
与前述方法实施例基于相同的构思,本说明书实施例中还第一区块链节点,所述第一区块链节点属于第一区块链系统所包括的多个区块链节点600,所述多个区块链节点600对跨链事件配置有不同的处理延时。参见图6所示,所述第一区块链节点包括:事务确定单元601,用于根据所述第一区块链节点配置的处理延时,确定是否需要处理其获得的目标跨链事件;事务处理单元603,用于在需要处理所述目标跨链事件的情况下,根据所述目标跨链事件生成跨链请求;通信处理单元605,用于向所述第一区块链系统中的其余区块链节点发送与所述目标跨链事件对应的指示信息,用于指示接收到所述指示信息的区块链节点无需处理所述目标跨链事件;所述通信处理单元605,还用于向第二区块链系统发送所述跨链请求。
在一种可能的实施方式中,所述通信处理单元605,用于向第二区块链系统中的至少F+1个区块链节点发送所述跨链请求,F是所述第二区块链系统允许的最大故障节点数。
在一种可能的实施方式中,所述通信处理单元605,还用于从所述第二区块链系统中的第二区块链节点接收与所述跨链请求对应的响应结果;所述第一区块链节点还包括交易生成单元607,用于根据所述响应结果生成回调交易,所述回调交易用于调用部署在所述第一区块链系统中的智能合约。
在一种可能的实施方式中,所述回调交易中包括所述目标跨链事件的事件标识;所述第一区块链节点还包括交易过滤单元609,用于在对所述回调交易进行共识之前,根据事件标识列表和所述回调交易中所包括的所述事件标识,确定是否已处理过所述回调交易。
在一种可能的实施方式中,所述多个区块链节点配置的处理延时,按照所述多个区块链节点的排列顺序以预定时长递增;其中,所述事务确定单元603,具体用于在所述第一区块链节点获得目标跨链事件之后,确定是否在其配置的处理延时内接收到与所述目标跨链事件对应的指示信息,如果否则确定需要处理所述目标跨链事件。
在一种可能的实施方式中,所述第一区块链节点还包括:异常处理单元611,用于在所述第一区块链节点获得目标跨链事件之后,确定是否在所述预定时长内接收到与所述目标跨链事件对应的指示信息,如果否则确定排列在所述第一区块链节点之前的若干区块链节点对所述目标跨链事件的处理发生异常;延时更新单元613,用于在所述若干区块链节点对所述第一区块链节点连续获得的预设数量个跨链事件的处理均发生异常的情况下,根据所述预定时长递减所述第一区块链节点中配置的处理延时。
在一种可能的实施方式中,所述第一区块链系统是由目标区块链系统管理的第一子网,部署有属于所述第一区块链系统的区块链节点的节点设备上,部署有属于所述目标区块链系统的区块链节点。
在一种可能的实施方式中,所述第二区块链系统是由目标区块链系统管理的第二子网,部署有属于所述第二区块链系统的区块链节点的节点设备上,部署有属于所述目标区块链系统的区块链节点。
本说明书实施例中还提供了一种计算机可读存储介质,其上存储有计算机程序/指令,当所述计算机程序/指令在计算机中执行时,令计算机执行前述各个实施例中所述的方法。
本说明书实施例中还提供了一种计算设备,包括存储器和处理器,所述存储器中存储有可执行代码,所述处理器执行所述可执行代码时,实现前述各个实施例中所述的方法。
在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 (16)

1.一种跨链交互方法,由第一区块链系统所包括的多个区块链节点中任意的第一区块链节点执行,所述多个区块链节点对跨链事件配置有不同的处理延时,所述方法包括:
根据所述第一区块链节点配置的处理延时,确定是否需要处理其获得的目标跨链事件;
如果是,根据所述目标跨链事件生成跨链请求;
向所述第一区块链系统中的其余区块链节点发送与所述目标跨链事件对应的指示信息,用于指示接收到所述指示信息的区块链节点无需处理所述目标跨链事件;
向第二区块链系统发送所述跨链请求。
2.根据权利要求1所述的方法,所述向第二区块链系统发送所述跨链请求,包括:向第二区块链系统中的至少F+1个区块链节点发送所述跨链请求,其中F是所述第二区块链系统允许的最大故障节点数。
3.根据权利要求1所述的方法,所述方法还包括:从所述第二区块链系统中的第二区块链节点接收与所述跨链请求对应的响应结果,并根据所述响应结果生成回调交易,所述回调交易用于调用部署在所述第一区块链系统中的智能合约。
4.根据权利要求3所述的方法,所述回调交易中包括所述目标跨链事件的事件标识;其中,所述方法还包括:在对所述回调交易进行共识之前,根据事件标识列表和所述回调交易中所包括的所述事件标识,确定是否已处理过所述回调交易。
5.根据权利要求1所述的方法,所述多个区块链节点配置的处理延时,按照所述多个区块链节点的排列顺序以预定时长递增;其中,
所述根据所述第一区块链节点配置的处理延时,确定是否需要处理其获得的目标跨链事件,包括:在所述第一区块链节点获得目标跨链事件之后,确定是否在其配置的处理延时内接收到与所述目标跨链事件对应的指示信息,如果否则确定需要处理所述目标跨链事件。
6.根据权利要求5所述的方法,所述方法还包括:
在所述第一区块链节点获得目标跨链事件之后,确定是否在所述预定时长内接收到与所述目标跨链事件对应的指示信息,如果否则确定排列在所述第一区块链节点之前的若干区块链节点对所述目标跨链事件的处理发生异常;
在所述若干区块链节点对所述第一区块链节点连续获得的预设数量个跨链事件的处理均发生异常的情况下,根据所述预定时长递减所述第一区块链节点中配置的处理延时。
7.根据权利要求1所述的方法,其中,
所述第一区块链系统是由目标区块链系统管理的第一子网,部署有属于所述第一区块链系统的区块链节点的节点设备上,部署有属于所述目标区块链系统的区块链节点;
和/或,所述第二区块链系统是由目标区块链系统管理的第二子网,部署有属于所述第二区块链系统的区块链节点的节点设备上,部署有属于所述目标区块链系统的区块链节点。
8.一种第一区块链节点,所述第一区块链节点属于第一区块链系统所包括的多个区块链节点,所述多个区块链节点对跨链事件配置有不同的处理延时,所述第一区块链节点包括:
事务确定单元,用于根据所述第一区块链节点配置的处理延时,确定是否需要处理其获得的目标跨链事件;
事务处理单元,用于在需要处理所述目标跨链事件的情况下,根据所述目标跨链事件生成跨链请求;
通信处理单元,用于向所述第一区块链系统中的其余区块链节点发送与所述目标跨链事件对应的指示信息,用于指示接收到所述指示信息的区块链节点无需处理所述目标跨链事件;
所述通信处理单元,还用于向第二区块链系统发送所述跨链请求。
9.根据权利要求8所述的区块链节点,所述通信处理单元,用于向第二区块链系统中的至少F+1个区块链节点发送所述跨链请求,F是所述第二区块链系统允许的最大故障节点数。
10.根据权利要求8所述的区块链节点,所述通信处理单元,还用于从所述第二区块链系统中的第二区块链节点接收与所述跨链请求对应的响应结果;
所述第一区块链节点还包括交易生成单元,用于根据所述响应结果生成回调交易,所述回调交易用于调用部署在所述第一区块链系统中的智能合约。
11.根据权利要求10所述的区块链节点,所述回调交易中包括所述目标跨链事件的事件标识;所述区块链节点还包括交易过滤单元,用于在对所述回调交易进行共识之前,根据事件标识列表和所述回调交易中所包括的所述事件标识,确定是否已处理过所述回调交易。
12.根据权利要求8所述的区块链节点,所述多个区块链节点配置的处理延时,按照所述多个区块链节点的排列顺序以预定时长递增;其中,所述事务确定单元,具体用于在所述第一区块链节点获得目标跨链事件之后,确定是否在其配置的处理延时内接收到与所述目标跨链事件对应的指示信息,如果否则确定需要处理所述目标跨链事件。
13.根据权利要求12所述的区块链节点,所述第一区块链节点还包括:
异常处理单元,用于在所述第一区块链节点获得目标跨链事件之后,确定是否在所述预定时长内接收到与所述目标跨链事件对应的指示信息,如果否则确定排列在所述第一区块链节点之前的若干区块链节点对所述目标跨链事件的处理发生异常;
延时更新单元,用于在所述若干区块链节点对所述第一区块链节点连续获得的预设数量个跨链事件的处理均发生异常的情况下,根据所述预定时长递减所述第一区块链节点中配置的处理延时。
14.根据权利要求8所述的区块链节点,其中,
所述第一区块链系统是由目标区块链系统管理的第一子网,部署有属于所述第一区块链系统的区块链节点的节点设备上,部署有属于所述目标区块链系统的区块链节点;
和/或,所述第二区块链系统是由目标区块链系统管理的第二子网,部署有属于所述第二区块链系统的区块链节点的节点设备上,部署有属于所述目标区块链系统的区块链节点。
15.一种计算机可读存储介质,其上存储有计算机程序,当所述计算机程序在计算设备中执行时,计算设备执行权利要求1-7中任一项所述的方法。
16.一种计算设备,包括存储器和处理器,所述存储器中存储有可执行代码,所述处理器执行所述可执行代码时,实现权利要求1-7中任一项所述的方法。
CN202310342727.7A 2023-03-31 2023-03-31 跨链交互方法和区块链节点 Pending CN116319943A (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN202310342727.7A CN116319943A (zh) 2023-03-31 2023-03-31 跨链交互方法和区块链节点

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN202310342727.7A CN116319943A (zh) 2023-03-31 2023-03-31 跨链交互方法和区块链节点

Publications (1)

Publication Number Publication Date
CN116319943A true CN116319943A (zh) 2023-06-23

Family

ID=86813164

Family Applications (1)

Application Number Title Priority Date Filing Date
CN202310342727.7A Pending CN116319943A (zh) 2023-03-31 2023-03-31 跨链交互方法和区块链节点

Country Status (1)

Country Link
CN (1) CN116319943A (zh)

Similar Documents

Publication Publication Date Title
CN114679457B (zh) 一种区块链中的节点分组方法及区块链节点
CN113067897B (zh) 跨链交互方法及装置
CN109167819A (zh) 数据同步系统、方法、装置及存储介质
WO2024001022A1 (zh) 跨子网调用
CN113259460A (zh) 跨链交互方法及装置
CN114374699B (zh) 跨链交互方法和跨链交互的审计方法
CN114363335B (zh) 跨链交互方法及装置
CN111669434A (zh) 一种通信群组的建立方法、系统、装置及设备
CN113259119B (zh) 区块链消息的分发方法及装置
CN113259118B (zh) 同步节点信息列表的方法
CN113259464B (zh) 组建区块链子网的方法和区块链系统
CN113935737A (zh) 基于区块链的随机数生成方法及装置
CN114785800B (zh) 跨链通信方法、装置、存储介质及计算设备
CN113259117A (zh) 同步节点信息列表的方法
CN116996208A (zh) 区块链系统中的区块编辑方法和区块链节点
CN115118486B (zh) 物联网系统、基于区块链获取数据的方法和装置、存储介质以及计算设备
CN116366666A (zh) 区块链系统中的链状态更新方法和区块链节点
CN116032756A (zh) 基于区块链更新应用程序的配置信息的方法和区块链节点
CN113259462B (zh) 区块链消息的分发方法及装置
CN114095507B (zh) 跨链交互方法和区块链系统
CN116319943A (zh) 跨链交互方法和区块链节点
CN113259461B (zh) 跨链交互方法和区块链系统
CN115941262A (zh) 区块链系统中的交易执行方法和节点
CN113067772B (zh) 区块链网络间的交易转发方法
CN115277022A (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