CN116743765A - 区块链系统、跨链交互方法和装置 - Google Patents

区块链系统、跨链交互方法和装置 Download PDF

Info

Publication number
CN116743765A
CN116743765A CN202310486691.XA CN202310486691A CN116743765A CN 116743765 A CN116743765 A CN 116743765A CN 202310486691 A CN202310486691 A CN 202310486691A CN 116743765 A CN116743765 A CN 116743765A
Authority
CN
China
Prior art keywords
blockchain
node
network
destination
cross
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
CN202310486691.XA
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 CN202310486691.XA priority Critical patent/CN116743765A/zh
Publication of CN116743765A publication Critical patent/CN116743765A/zh
Pending legal-status Critical Current

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
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06QINFORMATION AND COMMUNICATION TECHNOLOGY [ICT] SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES; SYSTEMS OR METHODS SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES, NOT OTHERWISE PROVIDED FOR
    • G06Q40/00Finance; Insurance; Tax strategies; Processing of corporate or income taxes
    • G06Q40/04Trading; Exchange, e.g. stocks, commodities, derivatives or currency exchange
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L63/00Network architectures or network communication protocols for network security
    • H04L63/04Network architectures or network communication protocols for network security for providing a confidential data exchange among entities communicating through data packet networks
    • H04L63/0428Network architectures or network communication protocols for network security for providing a confidential data exchange among entities communicating through data packet networks wherein the data content is protected, e.g. by encrypting or encapsulating the payload
    • H04L63/045Network architectures or network communication protocols for network security for providing a confidential data exchange among entities communicating through data packet networks wherein the data content is protected, e.g. by encrypting or encapsulating the payload wherein the sending and receiving network entities apply hybrid encryption, i.e. combination of symmetric and asymmetric encryption
    • 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/1095Replication or mirroring of data, e.g. scheduling or transport for data synchronisation between network nodes
    • 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
    • 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/40Network security protocols

Landscapes

  • Engineering & Computer Science (AREA)
  • Computer Security & Cryptography (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Signal Processing (AREA)
  • Business, Economics & Management (AREA)
  • Finance (AREA)
  • Accounting & Taxation (AREA)
  • Development Economics (AREA)
  • General Engineering & Computer Science (AREA)
  • Computing Systems (AREA)
  • Computer Hardware Design (AREA)
  • Economics (AREA)
  • Marketing (AREA)
  • Strategic Management (AREA)
  • Technology Law (AREA)
  • Physics & Mathematics (AREA)
  • General Business, Economics & Management (AREA)
  • General Physics & Mathematics (AREA)
  • Theoretical Computer Science (AREA)
  • Information Retrieval, Db Structures And Fs Structures Therefor (AREA)

Abstract

本说明书一个或多个实施例提供一种区块链系统、跨链交互方法和装置。所述跨链交互方法应用于源区块链网络中的接口源节点,包括:向目的区块链网络发起跨链请求,并接收所述目的区块链网络返回的响应消息,其中,所述接口源节点从所述源区块链网络包含的多个源节点中选取得到;对接收到的响应消息进行校验,并将通过校验的响应消息同步至所述源区块链网络中的其他源节点。

Description

区块链系统、跨链交互方法和装置
技术领域
本说明书一个或多个实施例涉及区块链技术领域,尤其涉及一种区块链系统、跨链交互方法和装置。
背景技术
区块链技术构建在传输网络(例如点对点网络)之上。区块链网络中的节点利用链式数据结构来验证与存储数据,并采用分布式节点共识算法来生成和更新数据。可组建不同的区块链网络来存证不同类型的业务数据。在该场景下,不同的区块链网络之间存在交互的需求,从而通过跨链交互来实现一些复杂的业务。例如,区块链系统中分别对应不同用户的多个区块链节点,可以基于同态加密、零知识证明等隐私技术针对某一节点的私有数据进行安全多方计算(Secure Multi-Party Computation,SMPC)等。
在相关技术中,不同区块链网络之间的跨链交互过程往往需要双方的多个区块链节点参与,如源区块链网络中的各个节点分别向目的区块链网络中的各个节点发起跨链请求,并接收后者分别返回的响应消息等。上述跨链交互方式在不同区块链网络之间跨链传输的请求和消息数量较多,网络之间的跨链负载较大,导致跨链交互的效率较低。
发明内容
有鉴于此,本说明书一个或多个实施例提供一种区块链系统、跨链交互方法和装置。
为实现上述目的,本说明书一个或多个实施例提供技术方案如下:
根据本说明书一个或多个实施例的第一方面,提出了一种跨链交互方法,应用于源区块链网络中的接口源节点,所述方法包括:
向目的区块链网络发起跨链请求,并接收所述目的区块链网络返回的响应消息,其中,所述接口源节点从所述源区块链网络包含的多个源节点中选取得到;
对接收到的响应消息进行校验,并将通过校验的响应消息同步至所述源区块链网络中的其他源节点。
根据本说明书一个或多个实施例的第二方面,提出了一种跨链交互装置,应用于源区块链网络中的接口源节点,所述装置包括:
消息获取单元,用于向目的区块链网络发起跨链请求,并接收所述目的区块链网络返回的响应消息,其中,所述接口源节点从所述源区块链网络包含的多个源节点中选取得到;
消息处理单元,用于对接收到的响应消息进行校验,并将通过校验的响应消息同步至所述源区块链网络中的其他源节点。
根据本说明书一个或多个实施例的第三方面,提出了一种区块链系统,包括:
源区块链网络,所述源区块链网络中的接口源节点向目的区块链网络发起跨链请求,并接收所述目的区块链网络返回的响应消息,所述接口源节点从所述源区块链网络包含的多个源节点中选取得到;以及,对接收到的响应消息进行校验,并将通过校验的响应消息同步至所述源区块链网络中的其他源节点;
目的区块链网络,响应于所述跨链请求向所述源区块链网络返回所述响应消息。
在本说明书实施例中,从源区块链网络包含的多个源节点中选取得到的接口源节点向目的区块链网络发起跨链请求,并接收所述目的区块链网络返回的响应消息;然后对接收到的响应消息进行校验,并将通过校验的响应消息同步至所述源区块链网络中的其他源节点。
可以理解的是,接口源节点是从源区块链网络所包含全部源节点中选取的部分节点,在源区块链网络与目的区块链网络的跨链交互过程中,只需要源区块链网络中的接口源节点与目的区块链网络进行交互即可,其他源节点可以等待接口源节点同步响应消息而无需与目的区块链网络进行交互。可见,本方案将接口源节点作为源区块链网络的统一接口与目的区块链网络进行跨链交互(发起跨链请求并接收响应消息),从而避免源区块链网络中的各个节点分别与目的区块链网络进行交互,有效减少了不同区块链网络之间跨链请求和响应消息的数量,一定程度上减轻了区块链网络之间的跨链负载,有助于提升跨链交互的效率。
附图说明
图1是一示例性实施例提供的一种创建智能合约的示意图。
图2是一示例性实施例提供的一种调用智能合约的示意图。
图3是一示例性实施例提供的一种创建和调用智能合约的示意图。
图4是一示例性实施例提供的一种基于区块链主网组建区块链子网的示意图。
图5是一示例性实施例提供的一种跨链交互过程的示意图。
图6是一示例性实施例提供的一种跨链交互方法的流程图。
图7是一示例性实施例提供的一种区块链系统的结构示意图。
图8是一示例性实施例提供的一种设备的结构示意图。
图9是一示例性实施例提供的一种跨链交互装置的框图。
具体实施方式
这里将详细地对示例性实施例进行说明,其示例表示在附图中。下面的描述涉及附图时,除非另有表示,不同附图中的相同数字表示相同或相似的要素。以下示例性实施例中所描述的实施方式并不代表与本说明书一个或多个实施例相一致的所有实施方式。相反,它们仅是与如所附权利要求书中所详述的、本说明书一个或多个实施例的一些方面相一致的装置和方法的例子。
需要说明的是:在其他实施例中并不一定按照本说明书示出和描述的顺序来执行相应方法的步骤。在一些其他实施例中,其方法所包括的步骤可以比本说明书所描述的更多或更少。此外,本说明书中所描述的单个步骤,在其他实施例中可能被分解为多个步骤进行描述;而本说明书中所描述的多个步骤,在其他实施例中也可能被合并为单个步骤进行描述。
区块链一般被划分为三种类型:公有链(Public Blockchain),私有链(PrivateBlockchain)和联盟链(Consortium Blockchain)。此外,还有多种类型的结合,比如私有链+联盟链、联盟链+公有链等不同组合形式。其中去中心化程度最高的是公有链。以公有链为例,加入公有链的参与者可以读取链上的数据记录、参与交易以及竞争新区块的记账权等。而且,各参与者(即节点)可自由加入以及退出网络,并进行相关操作。私有链则相反,该网络的写入权限由某个组织或者机构控制,数据读取权限受组织规定。简单来说,私有链可以为一个弱中心化系统,参与节点具有严格限制且少。这种类型的区块链更适合于特定机构内部使用。联盟链则是介于公有链以及私有链之间的区块链,可实现“部分去中心化”。联盟链中各个节点通常有与之相对应的实体机构或者组织;参与者通过授权加入网络并组成利益相关联盟,共同维护区块链运行。
不论是公有链、私有链还是联盟链,都可能提供智能合约的功能。区块链上的智能合约是在区块链系统上可以被交易触发执行的合约。智能合约可以通过代码的形式定义。
以以太坊为例,支持用户在以太坊网络中创建并调用一些复杂的逻辑。以太坊作为一个可编程区块链的核心是以太坊虚拟机(EVM),每个以太坊节点都可以运行EVM。EVM是一个图灵完备的虚拟机,这意味着可以通过它实现各种复杂的逻辑。用户在以太坊中发布和调用智能合约就是在EVM上运行的。实际上,虚拟机直接运行的是虚拟机代码(虚拟机字节码,下简称“字节码”)。部署在区块链上的智能合约可以是字节码的形式。
例如图1所示,Bob将一个包含创建智能合约信息的交易发送到以太坊网络后,节点1的EVM可以执行这个交易并生成对应的合约实例。图1中的“0x6f8ae93…”代表了这个合约的地址,交易的data字段保存的可以是字节码,交易的to字段为空。节点间通过共识机制达成一致后,这个合约成功创建,并且可以在后续过程中被调用。合约创建后,区块链上出现一个与该智能合约对应的合约账户,并拥有一个特定的地址,合约代码将保存在该合约账户中。智能合约的行为由合约代码控制。换句话说,智能合约使得区块链上产生包含合约代码和账户存储(Storage)的虚拟账户。
如图2所示,仍以以太坊为例,Bob将一个用于调用智能合约的交易发送到以太坊网络后,某一节点的EVM可以执行这个交易并生成对应的合约实例。图2中交易的from字段是交易发起方(即Bob)的账户的地址,to字段中的“0x6f8ae93…”代表了被调用的智能合约的地址,value字段在以太坊中是用于表征数字货币的数值,交易的data字段保存的调用智能合约的方法和参数。调用智能合约后,balance的值可能改变。后续,某个客户端可以通过某一区块链节点(例如图2中的节点6)查看balance的当前值。智能合约以规定的方式在区块链网络中每个节点独立地执行,所有执行记录和数据都保存在区块链上,所以当交易完成后,区块链上就保存了无法篡改、不会丢失的交易凭证。
创建智能合约和调用智能合约的示意图如图3所示。以太坊中要创建一个智能合约,需要经过编写智能合约、编译成字节码、部署到区块链等过程。以太坊中调用智能合约,是发起一笔指向智能合约地址的交易,智能合约代码分布式地运行在以太坊网络中每个节点的虚拟机中。
需要说明的是,除了可以由用户创建智能合约,也可以在创世块中由系统设置智能合约。这类合约一般称为创世合约。一般的,创世合约中可以设置一些区块链网络的数据结构、参数、属性和方法。此外,具有系统管理员权限的账户可以创建系统级的合约,或者修改系统级的合约(简称为系统合约)。另外除了以太坊中的EVM外,不同的区块链网络还可能采用各种的虚拟机,这里并不限定。
区块链网络中的节点在执行调用智能合约的交易后,会生成相应的收据(receipt),以用于记录与执行该智能合约相关的信息。这样,可以通过查询交易的收据来获得合约执行结果的相关信息。合约执行结果可以表现为收据中的事件(event)。消息机制可以通过收据中的事件实现消息传递,以触发区块链节点执行相应的处理。事件的结构譬如可以为:
Event:
[topic][data]
[topic][data]
......
在上述示例中,事件的数量可以为一个或多个;其中,每个事件分别包括主题(topic)和数据(data)等字段。区块链节点可以通过监听事件的topic,从而在监听到预定义的topic的情况下,执行预设处理,或者从相应事件的data字段读取相关内容,以及可以基于读取的内容执行预设处理。
上述的事件机制中,相当于在监听方(比如存在监听需求的用户)处存在具有监听功能的客户端,譬如该客户端上运行了用于实现监听功能的SDK等,由该客户端对区块链节点产生的事件进行监听,而区块链节点只需要正常生成收据即可。除了上述的事件机制之外,还可以通过其他方式实现交易信息的透出。例如,可以通过在区块链节点运行的区块链平台代码中嵌入监听代码,使得该监听代码可以监听区块链交易的交易内容、智能合约的合约状态、合约产生的收据等其中的一种或多种数据,并将监听到的数据发送至预定义的监听方。由于监听代码部署于区块链平台代码中,而非监听方的客户端处,因而相比于事件机制而言,这种基于监听代码的实现方式相对更加的主动。其中,上述的监听代码可以由区块链平台的开发人员在开发过程中加入区块链平台代码,也可以由监听方基于自身的需求而嵌入,本说明书并不对此进行限制。
区块链技术区别于传统技术的去中心化特点之一,就是在各个节点上进行记账,或者称为分布式记账,而不是传统的集中式记账。区块链系统要成为一个难以攻破的、公开的、不可篡改数据记录的去中心化诚实可信系统,需要在尽可能短的时间内做到分布式数据记录的安全、明确及不可逆。不同类型的区块链网络中,为了在各个记录账本的节点中保持账本的一致,通常采用共识算法来保证,即前述提到的共识机制。例如,区块链节点之间可以实现区块粒度的共识机制,比如在节点(例如某个独特的节点)产生一个区块后,如果产生的这个区块得到其它节点的认可,其它节点记录相同的区块。再例如,区块链节点之间可以实现交易粒度的共识机制,比如在节点(例如某个独特的节点)获取一笔区块链交易后,如果这笔区块链交易得到其他节点的认可,认可该区块链交易的各个节点可以分别将该区块链交易添加至自身维护的最新区块中,并且最终能够确保各个节点产生相同的最新区块。共识机制是区块链节点就区块信息(或称区块数据)达成全网一致共识的机制,可以保证最新区块被准确添加至区块链。当前主流的共识机制包括:工作量证明(Proof ofWork,POW)、股权证明(Proof of Stake,POS)、委任权益证明(Delegated Proof of Stake,DPOS)、实用拜占庭容错(Practical Byzantine Fault Tolerance,PBFT)算法,HoneyBadgerBFT算法等。
由于区块链网络的去中心化特性,使得区块链网络中的所有区块链节点均会维护相同的区块数据,无法满足部分节点的特殊需求。以联盟链为例,所有联盟成员(即联盟内的节点成员)可以组成一区块链网络,所有联盟成员在该区块链网络中分别存在对应的区块链节点,并可以通过对应的区块链节点获得该区块链网络上发生的所有交易和相关数据。但在一些情况下,可能存在部分联盟成员希望完成一些具有保密需求的交易,这些联盟成员既希望这些交易能够在区块链上存证或借助于区块链技术的其他优势,又能够避免其他联盟成员查看到这些交易和相关数据。虽然这些联盟成员可以额外组建一新的区块链网络,其建立方式与上述包含所有联盟成员的区块链网络类似,但是从头开始建立一条新的区块链网络需要消耗大量的资源,且无论是该区块链网络的建立过程或是建成后的配置过程都非常耗时。联盟成员之间的需求往往是临时的或者具有一定的时效性,使得新建的区块链网络很快就会由于需求消失而失去存在的意义,从而进一步增加了上述区块链网络的建链成本。而联盟成员之间的需求经常会变化,而每一需求所对应的联盟成员也往往不同,因而每当联盟成员发生变化时就可能需要组建一新的区块链网络,从而造成资源和时间的大量浪费。
为此,可以将已组建的区块链网络作为区块链主网,并在该区块链主网的基础上组建区块链子网。那么,在诸如上述的联盟链场景下,联盟成员可以在已经参与区块链主网的情况下,基于自身需求而在区块链主网的基础上组建所需的区块链子网。由于区块链子网是在区块链主网的基础上所建立,使得区块链子网的组建过程相比于完全独立地组建一条区块链网络,所消耗的资源和所需的耗时等都极大地降低,灵活性极高。
基于区块链主网快捷组建区块链子网的过程如下:区块链主网中的各主网节点分别获取组建区块链子网的交易,所述交易包含所述区块链子网的配置信息,所述配置信息包括节点成员的身份信息。然后,所述区块链主网中的各主网节点分别执行所述交易;其中,当第一主网节点属于所述配置信息所指示的节点成员时,部署第一主网节点的节点设备基于所述交易生成包含所述配置信息的创世块并启动属于所述区块链子网的第一子网节点。
组建区块链子网的交易可由区块链主网的管理员发起,即仅允许管理员在区块链主网的基础上组建区块链子网,而避免将区块链子网的组建权限开放给普通用户,以防止由此导致的安全性问题。在一些情况下,也可以允许区块链主网的普通用户发起上述组建区块链子网的交易,以满足普通用户的组网需求,使得普通用户能够在管理员不便于发起交易的情况下依然能够快捷地组建区块链子网。
以图4所示为例,区块链主网为mainnet0,该mainnet0包含的区块链节点为nodeA、nodeB、nodeC、nodeD和nodeE等。假定nodeA、nodeB、nodeC和nodeD希望组建一区块链子网:如果nodeA为管理员且仅允许管理员发起组建区块链子网的交易,那么可由nodeA向mainnet0发起上述组建区块链子网的交易;如果nodeE为管理员且仅允许管理员发起组建区块链子网的交易,那么nodeA~nodeD需要向nodeE进行请求,使得nodeE向mainnet0发起上述组建区块链子网的交易;如果nodeE为管理员但允许普通用户发起组建区块链子网的交易,那么nodeA~nodeE均可以向mainnet0发起上述组建区块链子网的交易。当然,不论是管理员或者普通用户,发起组建区块链子网的交易的区块链节点并不一定参与所组建的区块链子网,比如虽然最终由nodeA、nodeB、nodeC和nodeD组建区块链子网,但可由nodeE向mainnet0发起上述组建区块链子网的交易,而并不一定由nodeA~nodeD来发起该组建区块链子网的交易。
在区块链主网的基础上组建区块链子网时,容易理解的是,会使得该区块链子网与区块链主网之间存在逻辑上的层次关系。比如在图4所示的mainnet0上组建区块链子网subnet1时,可以认为mainnet0处于第一层、subnet1处于第二层,mainnet0为subnet1的父网,subnet1为mainnet0的子网。并且区块链子网也可以组建对应的区块链子网,例如可以在图4中subnet1的基础上进一步组建另一区块链子网subnet3,此时可以认为subnet处于第三层,subnet1为subnet3对应的父网,subnet3为subnet1的子网,而subnet3则为mainnet0的孙子网,同样的,subnet3仍然可以在其基础上新的组建区块链子网,使得各区块链网络之间构成这种多层次树形结构,而在本说明书中,任一区块链网络是由其对应的父网所管理,也即由组建该任一区块链网络的区块链网络所管理,因此在如图4这种由以区块链主网为根结点(根结点的层级最低)、各个区块链子网分别为其他结点的区块链网络树形系统中,任一结点代表的区块链子网由其父结点对应的区块链网络所管理,而作为特例,区块链主网为底层区块链网络时,区块链主网由区块链主网自身进行管理。本说明书中的区块链主网可以为底层区块链网络,底层区块链网络是指并非在其他区块链网络的基础上组建的区块链子网,因此除该区块链主网以外不存在其他区块链网络能够对区块链主网进行管理,比如图4中的mainnet0可以认为属于底层区块链网络类型的区块链主网,mainnet0管理mainnet0自身,当然,区块链主网也可以为其他区块链网络的子网,本说明书对此不作任何限制。上述区块链网络树形系统通过父结点管理对应子结点的方式,实现了逐层管理,降低了区块链主网的管理压力,同时避免向下层网络暴露上层网络的子网信息,从而实现各级网络的隐秘管理。
上述组建区块链子网的交易在被发送至区块链主网后,由区块链主网内的共识节点进行共识,并在通过共识后由各主网节点执行该交易,以完成区块链子网的组建。共识过程取决于所采用的共识机制,譬如上文所述的任一共识机制,本说明书并不对此进行限制。
通过在上述组建区块链子网的交易中包含配置信息,该配置信息可以用于对所组建的区块链子网进行配置,使得组建的区块链子网符合组网需求。例如,通过在配置信息中包含节点成员的身份信息,可以指定组建的区块链子网包含哪些区块链节点。
节点成员的身份信息可以包括节点的公钥,或者采用节点ID等其他能够表征节点身份的信息,本说明书并不对此进行限制。以公钥为例,每个区块链节点都存在对应的一组或多组公私钥对,由区块链节点持有私钥而公钥被公开且唯一对应于该私钥,因而可以通过公钥来表征相应区块链节点的身份。因此,对于希望作为区块链子网的节点成员的区块链节点,可以将这些区块链节点的公钥添加至上述组建区块链子网的交易中,以作为上述节点成员的身份信息。
第一主网节点可以为区块链主网上属于配置信息所指示的节点成员的区块链节点。在组建区块链子网时,并非由第一主网节点直接加入区块链子网、成为其节点成员,而是需要由用于部署该第一主网节点的节点设备生成第一子网节点,并由第一子网节点成为区块链子网中的节点成员。第一主网节点和第一子网节点对应于同一个区块链成员,比如在联盟链场景下对应于同一联盟链成员,但第一主网节点属于区块链主网、第一子网节点属于区块链子网,使得该区块链成员可以分别参与到区块链主网和区块链子网的交易中;并且,由于区块链主网和区块链子网属于相互独立的两个区块链网络,使得第一主网节点生成的区块与第一子网节点生成的区块分别存入所述节点设备上的不同存储(采用的存储譬如可以为数据库),实现了第一主网节点与第一子网节点分别使用的存储之间的相互隔离,因而区块链子网所产生的数据仅会在区块链子网的节点成员之间同步,使得仅参与了区块链主网的区块链成员无法获得区块链子网上产生的数据,实现了区块链主网与区块链子网之间的数据隔离,满足了部分区块链成员(即参与区块链子网的区块链成员)之间的交易需求。
可见,第一主网节点和第一子网节点是在逻辑上划分出来的区块链节点,而从物理设备的角度来说,相当于上述部署了第一主网节点和第一子网节点的节点设备同时参与了区块链主网和区块链子网。由于区块链主网与区块链子网之间相互独立,使得这两个区块链网络的身份体系也相互独立,因而即便第一主网节点和第一子网节点可以采用完全相同的公钥,仍然应当将两者视为不同的区块链节点。譬如在图4中,mainnet0中的nodeA相当于第一主网节点,而部署该nodeA的节点设备生成了属于subnet1的nodeA1,该nodeA1相当于第一子网节点。可见,由于身份体系相互独立,所以即便第一子网节点所采用的公钥区别于第一主网节点,也不影响本说明书方案的实施。
当然,区块链子网的节点成员并不一定只是区块链主网的部分节点成员。在一些情况下,区块链子网的节点成员可以与区块链主网的节点成员完全一致,此时所有的区块链成员都可以获得区块链主网和区块链子网上的数据,但是区块链主网与区块链子网所产生的数据依然可以相互隔离,比如可以通过在区块链主网上实现一类业务、在区块链子网上实现另一类业务,从而可以使得这两类业务分别产生的业务数据之间相互隔离。
除了上述的节点成员的身份信息之外,配置信息还可以包括下述至少之一:所述区块链子网的网络标识、所述区块链子网的管理员的身份信息、针对区块链平台代码的属性配置等,本说明书并不对此进行限制。网络标识用于唯一表征该区块链子网,因而该区块链子网的网络标识应当区别于区块链主网和该区块链主网上组建的其他区块链子网。区块链子网的管理员的身份信息,譬如可以为作为管理员的节点成员的公钥;其中,区块链主网与区块链子网的管理员可以相同,也可以不同。
通过区块链主网来组建区块链子网的优势之一,就是由于生成第一子网节点的节点设备上已经部署了第一主网节点,因而可以将第一主网节点所使用的区块链平台代码复用在第一子网节点上,免去了区块链平台代码的重复部署,极大地提高了区块链子网的组建效率。那么,如果配置信息中未包含针对区块链平台代码的属性配置,第一子网节点可以复用第一主网节点上采用的属性配置;如果配置信息中包含了针对区块链平台代码的属性配置,第一子网节点可以采用该属性配置,使得第一子网节点所采用的属性配置不受限于第一主网节点的属性配置、与第一主网节点无关。针对区块链平台代码的属性配置可以包括下述至少之一:代码版本号、是否需要共识、共识算法类型、区块大小等,本说明书并不对此进行限制。
组建区块链子网的交易包括调用合约的交易。该交易中可以指明被调用的智能合约的地址、调用的方法和传入的参数。例如,调用的合约可以为前述的创世合约或系统合约,调用的方法可以为组建区块链子网的方法,传入的参数可以包括上述的配置信息。在一实施例中,该交易可以包含如下信息:
from:Administrator
to:Subnet
method:AddSubnet(string)
string:genesis
其中,from字段为该交易的发起方的信息,譬如Administrator表明该发起方为管理员;to字段为被调用的智能合约的地址,譬如该智能合约可以为Subnet合约,则to字段具体为该Subnet合约的地址;method字段为调用的方法,譬如在Subnet合约中用于组建区块链子网的方法可以为AddSubnet(string),而string为AddSubnet()方法中的参数,上述示例中通过genesis表征该参数的取值,该genesis具体为前述的配置信息。
以mainnet0上的节点nodeA~nodeE执行调用Subnet合约中AddSubnet()方法的交易为例。在交易通过共识后,nodeA~nodeE分别执行AddSubnet()方法并传入配置信息,得到相应的执行结果。
合约的执行结果可以包括所述配置信息,该执行结果可以处于前文所述的收据中,该收据中可以包含与执行AddSubnet()方法相关的event,即组网事件。组网事件的topic可以包含预定义的组网事件标识,以区别于其他的事件。譬如在与执行AddSubnet()方法相关的event中,topic的内容为关键词subnet,且该关键词区别于其他方法所产生event中的topic。那么,nodeA~nodeE通过监听生成的收据中各个event所含的topic,可以在监听到包含关键词subnet的topic的情况下,确定监听到与执行AddSubnet()方法相关的event,即组网事件。例如,收据中的event如下:
Event:
[topic:other][data]
[topic:subnet][data]
......
那么,nodeA~nodeE在监听到第1条event时,由于所含topic的内容为other,确定该event与AddSubnet()方法无关;以及,nodeA~nodeE在监听到第2条event时,由于所含topic的内容为subnet,确定该event与AddSubnet()方法相关,并进而读取该event对应的data字段,该data字段包含上述的配置信息。以配置信息包括区块链子网的节点成员的公钥为例,data字段的内容例如可以包括:
{subnet1;
nodeA的公钥,nodeA的IP、nodeA的端口号…;
nodeB的公钥,nodeB的IP、nodeB的端口号…;
nodeC的公钥,nodeC的IP、nodeC的端口号…;
nodeD的公钥,nodeD的IP、nodeD的端口号…;
}
其中,subnet1为希望创建的区块链子网的网络标识。区块链主网中的各个区块链节点可以记录该区块链主网上已创建的所有区块链子网的网络标识,或者与这些区块链子网相关的其他信息,这些信息譬如可以维护在上述的Subnet合约中,具体可以对应于该Subnet合约所含的一个或多个合约状态的取值。那么,nodeA~nodeE可以根据记录的已创建的所有区块链子网的网络标识,确定上述的subnet1是否已经存在;如果不存在,说明subnet1是当前需要创建的新区块链子网,如果存在则说明subnet1已经存在。
除了采用希望创建的新的区块链子网的网络标识之外,还可以采用预定义的新建网络标识,该新建网络标识表明相应的组网事件用于组建新的区块链子网。例如,可以将上述的subnet1替换为newsubnet,该newsubnet为预定义的新建网络标识,nodeA~nodeE在识别到data字段包含newsubnet时,即可确定包含该newsubnet的event为组网事件,需要创建新的区块链子网。
除了网络标识subnet1之外,上述data字段中还包含各个节点成员的身份信息等内容。部署第一主网节点的节点设备可以监听生成的收据,并在监听到所述组网事件且所述组网事件的内容表明第一主网节点属于所述节点成员的情况下,由部署第一主网节点的节点设备获取所述组网事件包含的配置信息或创世块。例如,nodeA~nodeE在确定subnet1是需要新组建的区块链子网的情况下,会进一步识别data字段中包含的节点成员的身份信息,以确定自身的处理方式。比如,nodeA~nodeD会发现在data字段包含自身的公钥、IP地址和端口号等身份信息,假定nodeA~nodeD分别部署在节点设备1~4上,以nodeA和节点设备1为例:nodeA会触发节点设备1,使得节点设备1基于上述的消息机制从data字段获得配置信息并生成包含该配置信息的创世块,且节点设备1会在本地部署nodeA1,该nodeA1加载生成的创世块,从而成为subnet1的子网节点;类似地,nodeB会触发节点设备2生成nodeB1、nodeC会触发节点设备3生成nodeC1、nodeD会触发节点设备4生成nodeD1。以及,nodeE会发现data字段包含的身份信息与自身均不匹配,假定nodeE部署在节点设备5上,那么该节点设备5不会根据data字段中的配置信息生成创世块,也不会生成subnet1中的节点。
如前所述,第一主网节点与第一子网节点并不一定采用相同的身份信息。因此,在上述实施例中,data字段中可以包含预先为nodeA1~nodeD1生成的身份信息,且区别于nodeA~nodeD的身份信息。仍以nodeA为例,nodeA如果在data字段中发现了nodeA1的身份信息,那么nodeA会触发节点设备1生成创世块、部署nodeA1,并由nodeA1加载该创世块;nodeB~nodeD的处理方式类似,此处不再一一赘述。
除了配置信息之外,合约的执行结果可以包括创世块。换言之,除了可以在data字段中包含配置信息,还可以直接在执行合约调用的过程中生成包含配置信息的创世块,从而将创世块包含于data字段中,那么对于上述的nodeA~nodeD而言,相应的节点设备1~4可以通过消息机制直接从data字段获得创世块,而无需自行生成,可以提升对nodeA1~nodeD1的部署效率。
在本说明书中,组建区块链子网的交易可以并非是调用智能合约的交易,使得不支持智能合约的区块链网络也可以实现本说明书的技术方案,从而在区块链主网的基础上快捷地创建出区块链子网。例如,可以预先定义一组网交易类型标识,当交易包含该组网交易类型标识时,就表明该交易用于组建新的区块链子网,即该交易为组建区块链子网的交易。区块链平台代码可以包含相关的用于组建区块链子网的处理逻辑,使得运行该区块链平台代码的第一主网节点在执行交易时,如果发现该交易中包含上述的组网交易类型标识,且第一主网节点属于该交易中的配置信息所指示的节点成员,可以基于上述处理逻辑来触发部署第一主网节点的节点设备生成包含该配置信息的创世块并启动第一子网节点,由第一子网节点加载该创世块,以形成为区块链子网中的区块链节点。
节点设备通过拉起一进程,并在该进程中创建一个实例,由该实例运行区块链平台代码,相当于在该节点设备上部署一区块链节点。对于第一主网节点而言,由节点设备在上述进程中创建第一实例,并由该第一实例运行区块链平台代码而形成。类似地,对于第一子网节点而言,由节点设备在上述进程中创建区别于第一实例的第二实例,并由该第二实例运行区块链平台代码而形成。当第一实例与第二实例位于同一进程时,由于不涉及跨进程交互,可以降低对第一子网节点的部署难度、提高部署效率;当然,第二实例也可能与第一实例分别处于节点设备上的不同进程中,本说明书并不对此进行限制。事实上,本说明书实施例中涉及的任一节点设备上部署的各区块链节点均为运行在所述任一节点设备上的不同的区块链实例,任一节点设备上部署的各区块链节点生成的区块分别存入所述任一节点设备上的不同存储(例如数据库),且任一节点设备部署的各区块链节点分别使用的存储之间相互隔离。
通过上述方式,可以在区块链主网上创建出区块链子网。以图4为例,mainnet0原本包含nodeA~nodeE,而在mainnet0的基础上可以组建出subnet1,该subnet1包含nodeA1~nodeD1,且nodeA与nodeA1、nodeB与nodeB1、nodeC与nodeC1、nodeD与nodeD1分别部署在同一节点设备上。类似地,还可以在mainnet0上组建出subnet2或更多的区块链子网,其中subnet2包含nodeA2、nodeB2、nodeC2和nodeE2,且nodeA与nodeA1、nodeA2,nodeB与nodeB1、nodeB2,nodeC与nodeC1,nodeD与nodeD1,nodeE与nodeE2分别部署在同一节点设备上。进一步的,还可以将subnet1、subnet2等作为新的区块链主网,并在此基础上进一步组建出下一级的区块链子网,例如在subnet1的基础上组建出区块链子网subnet1.1,其组建过程与subnet1或subnet2的组建过程相似,仅仅是将区块链主网替换为区块链子网subnet1,此处不再赘述。
无论在不同区块链主网之间,还是在通过上述方式建立的不同区块链子网之间,亦或任意两个区块链网络之间均可能存在跨链交互需求。对于存在跨链需求的任意两个区块链网络,本说明书将其中发起跨链请求的区块链网络称为源区块链网络、接收到跨链请求的区块链网络称为目的区块链网络,并将源区块链网络中包含的区块链节点称为源节点、将目的区块链网络中包含的区块链节点称为目的节点。
如前所述,相关技术中的跨链交互方式在不同区块链网络之间跨链传输的请求和消息数量较多,网络之间的跨链负载较大,导致跨链交互的效率较低。为解决上述问题,本说明书提出一种跨链交互方案,由源区块链网络中选取的接口源节点作为该网络的同一接口与目的区块链网络进行跨链交互(由接口源节点向目的区块链网络统一发起跨链请求并接收其返回的响应消息),从而减少跨链请求和响应消息的数量。
结合对应于图4的图5,以基于同一主网创建的不同子网之间的跨链交互为例,对本说明书所述的跨链交互方案进行简要说明。请参见图5,图5是一示例性实施例提供的一种跨链交互过程的示意图。如图4所示,在区块链主网mainnet0的基础上创建区块链子网subnet1和区块链子网subnet2,图5所示即为subnet1和subnet2基于mainnet0实现跨链交互过程的示意图。
如图5所示,subnet1和subnet2中的任一节点所属的节点设备可以部署有相应的数据库和虚拟机,以图5为例,subnet1中的nodeD1具体为所属的节点设备4在本地部署的虚拟机中运行预先部署的区块链平台代码所形成的区块链节点实例(下称区块链节点),而nodeD1作为区块链节点在运行过程中的相关数据保存在nodeD1对应的数据库中。其中,节点设备中部署的区块链节点所归属的区块链网络,可以为通过前述方式建立的区块链主网或区块链子网,当然,本方案也可以应用于独立区块链网络(即该区块链网络并非基于其他区块链网络而建立,也不存在其他区块链网络基于该区块链网络而建立)。换言之,本说明书所述的跨链交互方法,可以应用于任意两个区块链网络,本说明书对于该区块链网络与其他区块链网络之间的相互关系并不进行限制。另外,节点设备中可以部署有区块链共识代码,节点设备可以运行该共识代码以在本地形成共识插件实例;以及,节点设备中还可以部署有以插件形式管理的P2P(Peer to Peer,点对点)插件代码,节点设备可以运行该P2P插件代码以在本地形成P2P插件实例,也即P2P插件。节点设备中还部署有区块链业务代码,节点设备可以运行该区块链业务代码以在本地形成业务实例,其中,任一节点设备中可以实现至少一个业务实例,如用于实现数据读/写功能的存储实例、用于实现隐私计算等计算功能的计算实例、用于实现数据加密功能的加密实例等,不再赘述。
特别的,在本说明书所述的跨链交互方法应用于区块链主网管理下的两个区块链子网的情况下,对应源区块链网络中源节点或目的区块链网络中的目的节点所属的节点设备上均部署有区块链主网中的主网节点,结合图4和图5,subnet1中nodeD1所属的节点设备4上还部署有主网节点nodeD,subnet2中nodeE2所属的节点设备5上还部署有主网节点nodeE,由于节点设备上的P2P插件可以被该节点设备上各个区块链节点所共享,因此虽然subnet1和subnet2之间不存在直接的网络连接链路,但由于节点设备4上部署的nodeD和节点设备5上部署的nodeE已经预先通过形成mainnet0时所实现的网络连接链路建立有基于P2P插件的网络连接,所以subnet1中的nodeD1可以通过调用节点设备4本地运行的P2P插件,借助形成mainnet0时所实现的网络连接链路,建立与subnet2中各目的节点(例如nodeE2)所属节点设备(例如节点设备5)上运行的P2P插件之间的网络连接,由此进一步实现与目的节点之间的网络通讯,使得源区块链网络与目的区块链网络之间无需建立新的网络连接链路,而是通过底层区块链主网预先建立的网络连接链路,源区块链网络中源节点与目的区块链网络中目的节点之间的网络通讯。
subnet1中的各节点在实现业务功能的过程中可能需要使用subnet2中各节点保存的数据,从而subnet1可以向subnet2请求获取该数据,在通过本说明书所述的跨链交互方案获取数据的过程中,上述subnet1即为源区块链网络、subnet2即为目的区块链网络。如subnet1可以向subnet2发送跨链请求,以期获取subnet2的节点数据库中保存的特定合约中特定字段的合约状态。可以理解的是,“subnet1向subnet2发送跨链请求”即为“subnet1中的子网节点(即源节点)向subnet2中的子网节点(即目的节点)发送跨链请求”。
具体的,在本说明书所述的跨链交互方法应用于同一区块链主网管理的两个区块链子网的情况下,subnet1中的任一节点可以在跨链请求中封装目的区块链网络subnet2的网络标识,通过调用节点设备本地部署且与mainnet0中主网节点共享的P2P插件,将所述跨链请求通过mainnet0的网络连接链路广播至部署有主网节点的各节点设备上运行的P2P插件。在一实施例中,若subnet1中的nodeA1通过节点设备1上的P2P插件发出跨链请求,那么其他部署有主网节点的节点设备2~5均将收到该跨链请求,例如,节点设备5上的P2P插件在接收到该跨链请求后,将根据所述跨链请求携带的所述网络标识判断节点设备5本地是否部署有该网络标识对应区块链网络中的区块链节点,显然,节点设备5上部署有subnet2中的nodeE2,因此,节点设备5上的P2P插件将基于该网络标识,进一步将跨链请求转发至nodeE2,而节点设备4上的P2P插件在接收到该跨链请求后,同样会基于其所携带的网络标识进行转发,但由于节点设备4本地并未部署有subnet2中的区块链节点,因此,节点设备4将不会保留该跨链请求,而是进一步将该跨链请求转发至其他部署有主网节点的节点设备。另外,subnet1中的任一节点除了可以在跨链请求中封装网络标识外,还可以在跨链请求中封装目的区块链网络中任意节点的身份信息,如节点ID、节点公钥,从而可以在调用P2P插件实现跨链传输跨链请求的过程中,不需要以广播的形式发送给各主网节点所属的节点设备,而是直接使得P2P插件以点对点通讯的方式发送给所述跨领请求中携带的各节点身份信息所指定的节点设备,例如,subnet1中的nodeD1可以在跨链请求中封装nodeE2的身份信息并调用节点设备4本地运行的P2P插件,使P2P插件可以根据该nodeE2的身份信息,将该跨链请求以单播形式发送至同时部署有subnet2中的nodeE2以及mainnet0中的nodeE的节点设备5,节点设备5上的P2P插件在接收到该跨链请求后,除了可以通过跨链请求携带的网络标识将该跨链请求转发至nodeE2,也可以直接通过跨链请求携带的nodeE2的身份信息,将跨链请求转发至nodeE2。
以上过程描述的是源区块链网络通过区块链主网建立的网络连接链路向目的区块链网络发送消息请求的过程,类似的,目的区块链网络也可以通过调用本地P2P插件的方式实现向源区块链网络的消息传输,例如将上述源区块链网络发送的区块请求对应的跨链数据返回给源区块链网络,由此通过形成的源区块链网络与目的区块链网络之间的双向通讯信道,实现源区块链网络中源节点与目的区块链网络中目的节点之间的网络通讯。
可以向mainnet0中的主网节点发送数据获取请求,并由主网节点将该请求转发至相应的subnet2,其中,subnet2中的目的节点为保证被响应的数据获取请求的合法性,可以对接收到的数据获取请求进行验证,并在验证通过的情况下进行响应。目的节点响应上述数据获取请求的过程,即为确定接收到的数据获取请求执行的数据(即subnet1需要的数据),并将基于该数据生成跨链消息并通过mainnet0中的主网节点返回至subnet1的过程。类似的,subnet1中的源节点也可以对接收到的跨链消息进行合法性验证,并在验证通过的情况下使用跨链消息中包含的数据继续实现相关业务功能。
图5仅是结合图4以区块链子网subnet1和subnet2为例进行的示例性说明。实际上,图4中的任意两个区块链网络之间均可以通过本说明书所述跨链交互方案实现跨链交互,本说明书对于跨链交互的区块链网络之间的关系并不进行限制。例如,除了上述区块链子网subnet1和subnet2之间可以实现跨链交互,区块链主网mainnet0和区块链子网subnet1(或subnet2)之间、区块链主网mainnet0和另一独立区块链网络mainnet1之间、区块链子网subnet1(或subnet2)和另一独立区块链网络mainnet1之间、区块链子网subnet1与基于该子网创建的下一级区块链子网subnet1.1之间、区块链主网mainnet0与区块链子网subnet1.1(即mainnet0的孙子网)之间等,均可以通过本说明书所述跨链交互方案实现跨链交互,不再赘述。
下面结合图6对本说明书的跨链交互方案进行详细说明。请参见图6,图6是一示例性实施例提供的一种跨链交互方法的示意图。如图6所示,该方法应用于源区块链网络中的接口源节点,可以包括下述步骤602-604。
步骤602,向目的区块链网络发起跨链请求,并接收所述目的区块链网络返回的响应消息,其中,所述接口源节点从所述源区块链网络包含的多个源节点中选取得到。
在源区块链网络存在针对目的区块链网络的跨链交互需求的情况下,源区块链网络中的接口源节点会向目的区块链网络发起跨链请求。其中,本说明书所述的接口源节点可以为源区块链网络所包含全部源节点中的部分节点,如可以为其中任一节点,或者也可以为其中多个节点。其中,所述接口源节点可以包括由源区块链网络所采用的共识算法选取出的主节点。
在一实施例中,所述接口源节点可以在源区块链网络产生跨链交互需求之前预先指定,并由该节点在确定源区块链网络产生跨链交互需求时,自行发起所述跨链请求。通过该方式,可以提升对所述跨链交互需求的响应速度,有助于源区块链网络高效实现跨链交互。
在另一实施例中,接口源节点可以在执行区块链交易的过程中发起所述跨链请求,其中,所述接口源节点可以对应于该区块链交易。例如,源区块链网络中的各个源节点可以分别执行同一区块链交易,其中,任一源节点在根据该交易的执行过程若确定源区块链网络存在跨链交互需求,则可以进一步确定自身是否为接口源节点:若确定自身为接口源节点,则该节点可以向目的区块链网络发起相应的跨链请求;反之,若确定自身不为接口源节点,则可以等待源区块链网络中的接口源节点同步相应的响应消息(此时接口源节点为源区块链网络中除所述任一源节点之外的其他源节点,同步来的所述响应消息即为所述接口源节点向目的区块链网络发起跨链请求后获取并通过验证的响应消息)。通过该方式,源区块链网络中的各个节点可以在执行区块链交易的过程中分别确定自身是否为接口源节点,可以理解的是,各个源节点分别确定自身是否为接口源节点的过程即可视为在源区块链网络中选取接口源节点的过程。在确定自身为接口源节点的情况下,接口源节点可以主动向目的区块链网络发起所述跨链请求,以便尽快获取相应的响应消息。
其中,可以通过多种方式选取所述接口源节点。例如,可以根据所述区块链交易包含的入参选取所述接口源节点,如所述区块链交易的发起方可以通过该交易的入参指定源区块链网络中的至少一个源节点作为该交易执行过程的接口源节点,以用于实现该交易对应的跨链交互。所述入参可以包括所述至少一个源节点的身份标识(节点公钥、节点编号、网络地址等),该身份标识所表征的源节点将被确定为所述接口源节点。如在各个源节点分别执行区块链交易的情况下,所述各个源节点中的任一源节点可以在所述入参包含自身的身份标识的情况下,将自身确定为接口源节点。通过该方式,可以由区块链交易的发起方主动指定特定的源节点作为接口源节点,从而有助于满足发起方对于接口源节点的个性化需求。
再例如,也可以按照所述区块链交易所调用智能合约中定义的合约逻辑选取所述接口源节点,其中,所述合约逻辑可以包括:根据该合约中写明的节点身份信息确定接口源节点,此时所述智能合约中可以直接写明至少一个源节点的节点身份信息,从而可以将这些节点身份信息表征的源节点确定为接口源节点;或者,所述合约逻辑也可以包括:针对接口源节点的选取逻辑,如随机选取、按预设条件选取等。其中,所述预设条件可以包括当前负载情况,如可以将当前负载最小的源节点确定为接口源节点;或者,所述预设条件也可以包括当前时刻之前的接口源节点选取情况,如可以在当前时刻之前的预设时长内未被选取作为接口源节点的源节点中选取任一源节点作为(本次跨链交互的)接口源节点等。另外,所述智能合约可以为组件所述源区块链网络时部署的系统合约,或者也可以为该网络组建完成后部署的普通合约,本说明书对此并不进行限制。
可见,通过合理设置上述区块链交易的入参或者智能合约的合约逻辑,可以控制对接口源节点的合理选取,如可以控制选取当前时刻源区块链网络中负载较小的源节点作为接口源节点,以便实现跨链过程的负载均衡;或者,也可以控制某一源节点始终作为接口源节点,以便由该节点专职实现源区块链网络与其他区块链网络的跨链交互。在方案实践中,可以根据实际需求合理选取接口源节点,以满足相应的跨链交互需求,不再赘述。
在一实施例中,所述源区块链网络中可以部署有跨链服务合约,该合约用于实现源区块链网络与其他区块链网络之间的跨链交互。此时,所述接口源节点可以调用该跨链服务合约向目的区块链网络发起所述跨链请求。其中,所述接口源节点可以向所述跨链服务合约传递相应的数据,以作为所述该合约的入参,例如,在所述跨链请求需要向目的区块链网络发送第二数据的情况下,此时接口源节点将所述第二数据传递至所述跨链服务合约,以便该合约所述第一合约包含在所述跨链请求中发送至目的区块链网络;或者,在所述跨链请求需要从目的区块链网络获取第一数据的情况下,所述接口源节点可以将所述第一数据的描述信息传递至所述跨链服务合约,以便该合约所述第一合约包含在所述跨链请求中发送至目的区块链网络,便于目的节点根据该描述信息确定所述第一数据,并将其包含在响应消息返回至所述接口源节点。
接口源节点向目的区块链网络发起的所述跨链请求中包含区块链消息,即所述跨链请求用于传输区块链消息。在一实施例中,为了保证跨链交互过程中的数据隐私,可以对区块链消息进行加密,并将加密后的消息密文包含在跨链请求发送至目的区块链网络。其中,可以使用对称密钥或者非对称密钥(如目的节点的身份公钥)加密所述区块链消息。通过该方式,可以提升跨链请求被恶意方截获后的破解难度,避免区块链消息明文泄露,从而提升跨链交互过程的数据安全性。
其中,考虑到区块链消息可能通常数据量较大,而非对称密钥相对于对称密钥其加密速度往往较慢,所以可以采用数字信封的方式对区块链消息进行加密。其中,数字信封加密的方式结合了对称加密算法和非对称加密算法。具体而言,接口源节点可以采用对称密钥对待传输的区块链消息进行加密,并将加密后的消息密文添加至跨链请求中。另外,再采用目的区块链网络中的目的节点的节点公钥对该对称密钥进行加密,并将加密后的对称密钥密文也添加至跨链请求中。通过该方式,使用对称密钥加密区块链消息,可以在确保区块链消息传输安全性的基础上提升其加密速度。
其中,接口源节点可以使用一个目的节点的节点公钥加密所述对称密钥,并将加密得到的对称密钥密文包含在所述跨链请求中发送至该目的节点;相应的,该目的节点可以使用自身的节点私钥解密跨链请求中的对称密钥密文,并使用解密得到的对称密钥解密所述消息密文得到区块链消息。或者,接口源节点也可以使用多个目的节点的节点公钥分别加密所述对称密钥,并将加密得到的各个对称密钥密文均包含在所述跨链请求中发送至所述多个目的节点;相应的,任一目的节点可以使用自身的节点私钥解密跨链请求中的对称密钥密文,并使用解密得到的对称密钥解密所述消息密文得到区块链消息。可以理解的是,在向多个目的节点发起所述跨链请求的情况下,通过上述分别采用每个目的节点的节点公钥加密对称密钥的方式,可保证针对跨链请求的统一创建方式,简化创建跨链请求的操作,避免接口源节点在创建跨链请求的过程中分别针对每个目的节点进行差异化处理(如分别仅采用每个目的节点的节点公钥加密对称密钥,并添加至跨链请求中分别发送至相应的目的节点),提升跨链请求的生成和发起效率。
可以理解的是,接口源节点向目的区块链网络发起的跨链请求,实际上是向目的区块链网络中的目的节点发起的请求;而接收到的目的区块链网络返回的响应消息,实际上是目的区块链网络中的目的节点返回的消息。其中,接口源节点可以向目的区块链网络中的一个或多个目的节点发起所述跨链请求;相应的,可以接收一个或多个目的节点返回的对应于该请求的响应消息。例如,在仅向一个目的节点发起跨链请求的情况下,可以接收该目的节点返回的响应消息;而在向多个目的节点发起跨链请求的情况下,可以接收所述多个目的节点分别返回的响应消息。当然,接口源节点在向一个目的节点发起跨链请求的情况下,也可以接收多个目的节点分别返回的响应消息;而在向多个目的节点发起跨链请求的情况下,也可以接收一个目的节点返回的响应消息。换言之,所述接口源节点向目的区块链网络发起的跨链请求的数量与接收到的响应消息的数量可以相同或不同,而且目的区块链网络中直接接收到跨链请求的目的节点与向接口源节点返回响应消息的目的节点也可以相同或不同。但需要说明的是,在本说明书实施例中,源区块链网络与目的区块链网络中任意节点之间进行的跨链交互,都是通过接口源节点进行的,而并非源区块链网络中的全部节点都与目的区块链网络交互,而这也正是本方案能够有效减少跨链请求和响应消息数量的原因。另外,接口源节点可以根据所执行区块链交易的执行过程确定自身应当向哪些目的节点发起跨链请求,或者也可以根据预设的连接关系确定自身应当向哪些目的节点发起跨链请求(如可以向与自身建立有网络连接的目的节点发起跨链请求,或者向自身所处节点设备中部署的发起跨链请求)等。
在一实施例中,接口源节点可以向目的区块链网络中的至少部分目的节点发起跨链请求,并接收所述至少部分目的节点返回的响应消息。其中,向目的区块链网络中的至少部分目的节点发起跨链请求,可以包括:向目的区块链网络中的各个目的节点分别发起跨链请求,此时,目的区块链网络包含的各个目的节点均参与针对源区块链网络的跨链交互过程。或者,也可以在所述目的区块链网络中确定所述接口源节点对应的接口目的节点,并向所述接口目的节点发起跨链请求,以由所述接口目的节点将所述跨链请求转发至所述目的区块链网络中的其他目的节点,此时,目的区块链网络包含的各个目的节点中,只有所述接口目的节点参与针对源区块链网络的跨链交互过程,而其他目的节点则不参与该跨链交互过程。其中,所述接口目的节点的数量至少为一个且小于目的区块链网络所包含目的节点的总量,所述接口目的节点即被作为目的区块链网络作为统一接口与源区块链网络进行跨链交互,有助于进一步减少交互过程所涉及跨链请求和响应消息的数量。
对于目的区块链网络中的任一目的节点而言,其在接收到接口源节点发起的跨链请求后,可以响应于该请求确定相应的消息内容,并生成包含所述消息内容的响应消息。其中,可以按照跨链请求指示的处理方式对该请求包含的第二数据进行预设处理,并将相应的处理结果作为消息内容;或者,也可以按照跨链请求包含的描述信息查询相应的第一数据并将其作为消息内容。此后,可以将自身生成的响应消息返回至接口源节点,或者,也可以将自身生成的响应消息发送至目的区块链网络的接口目的节点,以由该节点将该消息返回至接口源节点。若所述任一目的节点即为接口目的节点,则该节点可以接收其他目的节点(响应于所述跨链请求)生成并发送的响应消息,并将这些响应消息返回至所述接口源节点。
在一实施例中,所述接口源节点可以接收任一目的节点返回的一条响应消息,该条响应消息可以包含至少一份消息内容。其中,在该条响应消息包含多份消息内容的情况下,各份消息内容可以分别由不同的目的节点生成。例如,在所述任一目的节点为目的区块链网络中的接口目的节点的情况下,其他目的节点可以分别将自身确定的消息内容发送至该接口目的节点,后者可以根据接收到的各个消息内容和自身确定的消息内容生成相应的响应消息,并将该消息返回至所述接口源节点。
承接于图4所述实施例,不妨假设源区块链网络和目的区块链网络分别为subnet1和subnet2,此时nodeA1、nodeB1、nodeC1和nodeD1为源节点,nodeA2、nodeB2、nodeC2和nodeE2为目的节点。在该场景下,若nodeB1被确定为接口源节点,则nodeB1可以向subnet2中的各个目的节点分别发起跨链请求,并接收各个目的节点分别(生成并)返回的响应消息。
或者,nodeB1也可以从subnet2中确定接口目的节点:若确定出nodeC2为唯一的接口目的节点,则可以向nodeC2发起跨链请求;此时,nodeC2一方面可以响应于该请求自行确定消息内容contentc2;另一方面可以将该跨链请求同步至nodeA2、nodeB2和nodeE2,并在接收到nodeA2、nodeB2和nodeE2分别返回的消息内容(即contenta2、contentb2和contente2)后,根据contenta2、contentb2、contentc2和contente2生成响应消息,进而将该消息返回至nodeB1;或者nodeC2一方面可以响应于该请求自行确定消息内容contentc2并生成包含该内容的响应消息messagec2;另一方面可以将该跨链请求同步至nodeA2、nodeB2和nodeE2,并在接收到nodeA2、nodeB2和nodeE2分别返回的响应消息(即messagea2、messageb2和messagee2)后,将messagea2、messageb2、messagec2和messagee2逐一返回至nodeB1或者打包后一次性返回至nodeB1。
在一实施例中,任一目的节点在响应于跨链请求确定消息内容后,若自身生成包含该消息内容的响应消息(如该目的节点为所述nodeC2),则可以使用自身的节点私钥对该响应消息进行签名,以便将该响应消息和该签名一并返回至接口源节点;若将所述消息内容发送至其他目的节点生成响应消息(如所述任一目的节点为nodeB2,其将自身确定的消息内容发送至nodeC2生成响应消息),则所述任一目的节点可以使用自身的节点私钥对所述消息内容进行签名,以便将该消息内容和该签名包含在响应消息中一并返回至接口源节点。其中,接口源节点可以使用所述任一目的节点的节点公钥对上述签名进行验签,从而验证自身接收到的响应消息或者消息是否被篡改。
步骤604,对接收到的响应消息进行校验,并将通过校验的响应消息同步至所述源区块链网络中的其他源节点。
在接收到目的区块链网络返回的各个响应消息后,接口源节点可以对接收到的响应消息进行校验,其中,通过校验的响应消息即可视为目的区块链网络针对跨链请求的响应结果,此时接口源节点可以将这部分响应消息同步至源区块链网络中的其他源节点,以便源区块链网络中的各个源节点分别针对所述响应消息进行相应的后续处理。至此,接口源节点完成了针对源区块链网络的跨链交互需求的响应过程。
在本说明书实施例中,从源区块链网络包含的多个源节点中选取得到的接口源节点向目的区块链网络发起跨链请求,并接收所述目的区块链网络返回的响应消息;然后对接收到的响应消息进行校验,并将通过校验的响应消息同步至所述源区块链网络中的其他源节点。
可以理解的是,接口源节点是从源区块链网络所包含全部源节点中选取的部分节点,在源区块链网络与目的区块链网络的跨链交互过程中,只需要源区块链网络中的接口源节点与目的区块链网络进行交互即可,其他源节点可以等待接口源节点同步响应消息而无需与目的区块链网络进行交互。可见,本方案将接口源节点作为源区块链网络的统一接口与目的区块链网络进行跨链交互(发起跨链请求并接收响应消息),从而避免源区块链网络中的各个节点分别与目的区块链网络进行交互,有效减少了不同区块链网络之间跨链请求和响应消息的数量,一定程度上减轻了区块链网络之间的跨链负载,有助于提升跨链交互的效率。
其中,针对接收到的响应消息,接口源节点可以通过多种方式进行验证,以实现相应的验证目的。
在一实施例中,如前所述,目的节点可以使用自身的节点私钥针对消息内容进行签名,并将该签名包含在响应消息中返回至接口源节点;或者使用自身的节点私钥针对响应消息进行签名,并将该响应消息和签名一并返回至所述接口源节点。所以,接口源节点在接收到响应消息的同时,还可能接收到相应的签名;基于此,接口源节点可以对所述签名进行验签。例如,接口源节点接收到的任一目的节点生成的任一响应消息中可能包含所述任一目标节点使用自身的节点私钥生成的签名,此时接口源节点可以使用所述任一目的节点的节点公钥对所述签名进行验签。可以理解的是,若任一响应消息通过验证,即表明该响应消息的消息内容在目的区块链网络内部传输和跨链传输过程中并未遭到篡改,或者表明该消息本身在跨链传输过程中并未遭到篡改,因此该响应消息及其包含的消息内容是可信的。反之,若未通过验证,即表明该响应消息及其包含的消息内容不可信。
在另一实施例中,所述目的区块链网络可以包括由区块链主网所管理的区块链子网,所述区块链主网维护有所述目的区块链网络中各目的节点的节点身份信息。例如,所述区块链子网可以基于所述区块链主网所组建,和/或,所述区块链子网也可以被注册至所述区块链主网。接口源节点接收到的任一目的节点生成的任一响应消息包含用于表征所述任一目的节点的节点身份的身份证明信息。基于此,接口源节点可以向所述区块链主网查询所述任一目的节点的节点身份信息,并基于查询到的节点身份信息对所述身份证明信息进行校验。其中,所述节点身份信息或所述身份证明信息,可以为所述任一节点的节点公钥,或者也可以为其在目的区块链网络中的唯一节点编号或者其网络地址(IP地址和/或端口号)等,本说明书对此并不进行限制。
另外,部署所述区块链主网中主网节点的节点设备还可以用于部署区块链子网的子网节点(即子网节点可以与主网节点部署于同一节点设备),而部署于任一节点设备的主网节点和子网节点可以共享该节点设备的区块链插件。基于此,所述接口源节点向所述区块链主网查询所述任一目的节点的节点身份信息,可以包括:通过部署所述任一目的节点的节点设备中的区块链插件,读取该节点设备部署的主网节点所维护的所述任一目的节点的节点身份信息。具体而言,所述接口源节点可以向所述区块链主网提交查询交易,该查询交易用于指示所述区块链主网查询所述任一目的节点的节点身份信息,从而区块链主网的主网节点即可通过执行该交易向接口源节点返回查询到的所述任一目的节点的节点身份信息。
其中,所述区块链主网上可以部署有子网管理合约,该合约可以用于维护所述区块链主网对应的各个区块链子网中子网节点的节点身份信息。基于此,所述接口源节点向所述区块链主网查询所述任一目的节点的节点身份信息,可以包括:读取所述子网管理合约维护的所述源区块链节点的节点身份信息。通过该方式,可以由子网管理合约统一管理该主网所管理的各个子网,提升子网管理效率。
承接于图4对应的前述实施例,接口源节点nodeB1在接收到目的节点subnet2中的nodeC2返回的任一响应消息的情况下,可以向mainnet0查询nodeC2的节点身份信息,并将查询到的节点身份信息与该响应消息中包含的身份证明信息进行比较:若二者一致,即表明该响应消息确实由nodeC2所发送,故可信;否则即表明该响应消息可能并非由nodeC2所发送,故不可信。
在又一实施例中,目的区块链网络中的目的节点可能存在作恶或故障的情况,比如作恶的目的节点返回错误的响应消息,故障的目的节点不返回响应消息等。对于作恶的情况,接口源节点将接收到针对同一跨链请求的不同响应消息(实际上是包含不同消息内容的响应消息),进而可能导致接口源节点对于返回的响应消息的处理不一致。对于故障的情况,接口源节点将接收到少于目的区块链网络中目的节点总量的响应消息。对于上述情况,需要响应消息从中筛选出合理的响应消息作为目的区块链网络针对跨链请求的响应结果。
针对上述目的节点作恶及故障的情况,接口源节点可以对接收到的所有响应消息进行拜占庭容错校验,从而保证接口源节点对于目的区块链网络返回的响应消息的处理达成一致,进而确保各个源节点对该响应消息的处理达成一致。示例性的,接口源节点可以根据所述目的区块链网络中的目的节点的节点总量和接收到的所述响应消息的消息数量,对接收到的所述响应消息进行拜占庭容错校验。另外,由于响应于同一跨链请求返回的各个响应消息中通常包含该请求的请求标识,所以可以根据请求标识对接收到的各个响应消息进行去冗余,如可以将所包含请求标识相同且消息内容相同的多个响应消息视为一个消息。具体而言,根据PBFT算法的“3f+1<=n”结论,该算法支持的最大容错节点数量f=(n-1)/3,n为目的区块链网络中的目的节点的节点总量。那么,对于去冗余后的所有响应消息,只要存在不少于f+1个相同请求标识的响应消息,即可判定容错校验通过。
当然,PBFT算法同时支持容错故障节点和容错作恶节点。若仅考虑容错故障节点,则可采用RAFT算法,此时f=(n-1)/2,n为目的区块链网络中的目的节点的节点总量,容错校验的过程与上述类似,此处不再赘述。
通过前述方式验证后,通过验证的接口源节点即可视为目的区块链网络针对跨链请求的响应结果,此时接口源节点可以将这部分响应消息同步至源区块链网络中的其他源节点,以便这些源节点分别针对所述响应消息进行相应的后续处理。当然,作为源区块链网络中的节点,接口源节点也可以针对所述响应消息进行相应的后续处理。
如前所述,接口源节点可以在执行区块链交易的过程中发起所述跨链请求,且接口源节点即对应于该交易。例如,接口源节点可以从所述通过校验的响应消息中提取目标数据,并基于所述目标数据继续执行所述区块链交易。可见,此时接口源节点是将所述目标数据作为参数执行该区块链交易。可见,源区块链网络可以在执行区块链交易的过程中以跨链方式从目的区块链网络获取目标数据,并将该数据作为该交易的参数继续执行该交易,从而实现了区块链交易执行过程的跨链交互。其中,所述目标数据可以包括所述目的区块链网络维护的第一原始数据(如前述第一数据);和/或,所述目的区块链网络中目的节点处理第二原始数据得到的处理结果,所述第二原始数据(如前述第二数据)可以包含在所述跨链请求中。
其中,所述区块链交易可以用于调用所述源区块链网络中部署的业务合约,基于此,接口源节点可以根据所述业务合约的接口信息回调所述业务合约的回调接口,以将所述目标数据传入所述业务合约。假设所述业务合约用于实现用户账号的自动登录功能,但是接口源节点本地未保存用户账号和登录密码,此时接口源节点可以向目的区块链网络发起用于获取当前用户的用户账号和登录密码的跨链请求,并接收目的区块链网络返回的响应消息,进而接口源节点(各个源节点)可以根据跨链消息中包含的当前用户的用户账号和登录密码实现对该用户账号的自动登录。此时,上述用户账号和登录密码即为目标,接口源节点可以将上述用户账号和登录密码返回至所述业务合约用于实现自动登录。
图7为一示例性实施例提供的一种区块链系统的示意结构图。如图7所示,该区块链系统包括:
源区块链网络71,所述源区块链网络71中的接口源节点711向目的区块链网络72发起跨链请求,并接收所述目的区块链网络72返回的响应消息,所述接口源节点711从所述源区块链网络71包含的多个源节点中选取得到;以及,对接收到的响应消息进行校验,并将通过校验的响应消息同步至所述源区块链网络71中的其他源节点;
目的区块链网络72,响应于所述跨链请求向所述源区块链网络71返回所述响应消息。
图8是一示例性实施例提供的一种设备的结构示意图。请参考图8,在硬件层面,该设备包括处理器802、内部总线804、网络接口806、内存808以及非易失性存储器810,当然还可能包括其他功能所需要的硬件。本说明书一个或多个实施例可以基于软件方式来实现,比如由处理器802从非易失性存储器810中读取对应的计算机程序到内存808中然后运行。当然,除了软件实现方式之外,本说明书一个或多个实施例并不排除其他实现方式,比如逻辑器件抑或软硬件结合的方式等等,也就是说以下处理流程的执行主体并不限定于各个逻辑单元,也可以是硬件或逻辑器件。
图9是一示例性实施例提供的一种跨链交互装置的框图。请参考图9,该装置可以应用于如图8所示的设备中,以实现本说明书的技术方案。其中,该跨链交互装置可以应用于源区块链网络中的接口源节点,所述装置包括:
消息获取单元901,用于向目的区块链网络发起跨链请求,并接收所述目的区块链网络返回的响应消息,其中,所述接口源节点从所述源区块链网络包含的多个源节点中选取得到;
消息处理单元902,用于对接收到的响应消息进行校验,并将通过校验的响应消息同步至所述源区块链网络中的其他源节点。
可选的,所述消息获取单元901具体用于:
在执行区块链交易的过程中发起所述跨链请求,其中,所述接口源节点对应于所述区块链交易。
可选的,所述接口源节点根据所述区块链交易包含的入参选取得到;或者,
所述接口源节点按照所述区块链交易所调用智能合约中定义的合约逻辑选取得到。
可选的,还包括:
交易执行单元903,用于从所述通过校验的响应消息中提取目标数据,并基于所述目标数据继续执行所述区块链交易。
可选的,所述区块链交易用于调用所述源区块链网络中部署的业务合约,所述交易执行单元903具体用于:
根据所述业务合约的接口信息回调所述业务合约的回调接口,以将所述目标数据传入所述业务合约。
可选的,所述目标数据包括:
所述目的区块链网络维护的第一原始数据;和/或,
所述目的区块链网络中目的节点处理第二原始数据得到的处理结果,所述第二原始数据包含在所述跨链请求中。
可选的,所述消息获取单元901具体用于:
调用所述源区块链网络中部署的跨链服务合约向目的区块链网络发起跨链请求。
可选的,所述消息获取单元901具体用于:
向目的区块链网络中的至少部分目的节点发起跨链请求,并接收所述至少部分目的节点返回的响应消息。
可选的,所述消息获取单元901具体用于:
向目的区块链网络中的各个目的节点分别发起跨链请求;或者,
在所述目的区块链网络中确定所述接口源节点对应的接口目的节点,并向所述接口目的节点发起跨链请求,以由所述接口目的节点将所述跨链请求转发至所述目的区块链网络中的其他目的节点。
可选的,所述消息获取单元901具体用于:
接收所述任一目的节点返回的包含至少一份消息内容的一条响应消息,其中,在该条响应消息包含多份消息内容的情况下,各份消息内容分别由不同的目的节点生成。
可选的,所述目的区块链网络包括由区块链主网所管理的区块链子网,所述区块链主网维护有所述目的区块链网络中各目的节点的节点身份信息,接收到的任一目的节点生成的任一响应消息包含用于表征所述任一目的节点的节点身份的身份证明信息;所述消息处理单元902具体用于:
向所述区块链主网查询所述任一目的节点的节点身份信息对所述身份证明信息进行校验。
可选的,接收到的任一目的节点生成的任一响应消息中包含所述任一目标节点使用自身的节点私钥生成的签名,所述消息处理单元902具体用于:
使用所述任一目的节点的节点公钥对所述签名进行验签。
可选的,所述消息处理单元902具体用于:
根据所述目的区块链网络中的目的节点的节点总量和接收到的所述响应消息的消息数量,对接收到的所述响应消息进行拜占庭容错校验。
可选的,还包括:
对称加密单元904,用于采用对称密钥对待传输的区块链消息进行加密,并将加密后的区块链消息添加至所述跨链请求中;
非对称加密单元905,用于采用所述目的区块链网络中的目的节点的节点公钥对所述对称密钥加密,并将加密得到的对称密钥密文添加至所述跨链请求中。
上述实施例阐明的系统、装置、模块或单元,具体可以由计算机芯片或实体实现,或者由具有某种功能的产品来实现。一种典型的实现设备为计算机,计算机的具体形式可以是个人计算机、膝上型计算机、蜂窝电话、相机电话、智能电话、个人数字助理、媒体播放器、导航设备、电子邮件收发设备、游戏控制台、平板计算机、可穿戴设备或者这些设备中的任意几种设备的组合。
在一个典型的配置中,计算机包括一个或多个处理器(CPU)、输入/输出接口、网络接口和内存。
内存可能包括计算机可读介质中的非永久性存储器,随机存取存储器(RAM)和/或非易失性内存等形式,如只读存储器(ROM)或闪存(flash RAM)。内存是计算机可读介质的示例。
计算机可读介质包括永久性和非永久性、可移动和非可移动媒体可以由任何方法或技术来实现信息存储。信息可以是计算机可读指令、数据结构、程序的模块或其他数据。计算机的存储介质的例子包括,但不限于相变内存(PRAM)、静态随机存取存储器(SRAM)、动态随机存取存储器(DRAM)、其他类型的随机存取存储器(RAM)、只读存储器(ROM)、电可擦除可编程只读存储器(EEPROM)、快闪记忆体或其他内存技术、只读光盘只读存储器(CD-ROM)、数字多功能光盘(DVD)或其他光学存储、磁盒式磁带、磁盘存储、量子存储器、基于石墨烯的存储介质或其他磁性存储设备或任何其他非传输介质,可用于存储可以被计算设备访问的信息。按照本文中的界定,计算机可读介质不包括暂存电脑可读媒体(transitory media),如调制的数据信号和载波。
还需要说明的是,术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法、商品或者设备不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、方法、商品或者设备所固有的要素。在没有更多限制的情况下,由语句“包括一个……”限定的要素,并不排除在包括所述要素的过程、方法、商品或者设备中还存在另外的相同要素。
上述对本说明书特定实施例进行了描述。其它实施例在所附权利要求书的范围内。在一些情况下,在权利要求书中记载的动作或步骤可以按照不同于实施例中的顺序来执行并且仍然可以实现期望的结果。另外,在附图中描绘的过程不一定要求示出的特定顺序或者连续顺序才能实现期望的结果。在某些实施方式中,多任务处理和并行处理也是可以的或者可能是有利的。
在本说明书一个或多个实施例使用的术语是仅仅出于描述特定实施例的目的,而非旨在限制本说明书一个或多个实施例。在本说明书一个或多个实施例和所附权利要求书中所使用的单数形式的“一种”、“所述”和“该”也旨在包括多数形式,除非上下文清楚地表示其他含义。还应当理解,本文中使用的术语“和/或”是指并包含一个或多个相关联的列出项目的任何或所有可能组合。
应当理解,尽管在本说明书一个或多个实施例可能采用术语第一、第二、第三等来描述各种信息,但这些信息不应限于这些术语。这些术语仅用来将同一类型的信息彼此区分开。例如,在不脱离本说明书一个或多个实施例范围的情况下,第一信息也可以被称为第二信息,类似地,第二信息也可以被称为第一信息。取决于语境,如在此所使用的词语“如果”可以被解释成为“在……时”或“当……时”或“响应于确定”。
以上所述仅为本说明书一个或多个实施例的较佳实施例而已,并不用以限制本说明书一个或多个实施例,凡在本说明书一个或多个实施例的精神和原则之内,所做的任何修改、等同替换、改进等,均应包含在本说明书一个或多个实施例保护的范围之内。

Claims (18)

1.一种跨链交互方法,应用于源区块链网络中的接口源节点,所述方法包括:
向目的区块链网络发起跨链请求,并接收所述目的区块链网络返回的响应消息,其中,所述接口源节点从所述源区块链网络包含的多个源节点中选取得到;
对接收到的响应消息进行校验,并将通过校验的响应消息同步至所述源区块链网络中的其他源节点。
2.根据权利要求1所述的方法,所述发起跨链请求,包括:
在执行区块链交易的过程中发起所述跨链请求,其中,所述接口源节点对应于所述区块链交易。
3.根据权利要求2所述的方法,
所述接口源节点根据所述区块链交易包含的入参选取得到;或者,
所述接口源节点按照所述区块链交易所调用智能合约中定义的合约逻辑选取得到。
4.根据权利要求2所述的方法,还包括:
从所述通过校验的响应消息中提取目标数据,并基于所述目标数据继续执行所述区块链交易。
5.根据权利要求4所述的方法,所述区块链交易用于调用所述源区块链网络中部署的业务合约,所述基于所述目标数据继续执行所述区块链交易,包括:
根据所述业务合约的接口信息回调所述业务合约的回调接口,以将所述目标数据传入所述业务合约。
6.根据权利要求4所述的方法,所述目标数据包括:
所述目的区块链网络维护的第一原始数据;和/或,
所述目的区块链网络中目的节点处理第二原始数据得到的处理结果,所述第二原始数据包含在所述跨链请求中。
7.根据权利要求1所述的方法,所述向目的区块链网络发起跨链请求,包括:
调用所述源区块链网络中部署的跨链服务合约向目的区块链网络发起跨链请求。
8.根据权利要求1所述的方法,所述向目的区块链网络发起跨链请求,并接收所述目的区块链网络返回的响应消息,包括:
向目的区块链网络中的至少部分目的节点发起跨链请求,并接收所述至少部分目的节点返回的响应消息。
9.根据权利要求8所述的方法,所述向目的区块链网络中的至少部分目的节点发起跨链请求,包括:
向目的区块链网络中的各个目的节点分别发起跨链请求;或者,
在所述目的区块链网络中确定所述接口源节点对应的接口目的节点,并向所述接口目的节点发起跨链请求,以由所述接口目的节点将所述跨链请求转发至所述目的区块链网络中的其他目的节点。
10.根据权利要求8所述的方法,接收任一目的节点返回的响应消息,包括:
接收所述任一目的节点返回的包含至少一份消息内容的一条响应消息,其中,在该条响应消息包含多份消息内容的情况下,各份消息内容分别由不同的目的节点生成。
11.根据权利要求1所述的方法,所述目的区块链网络包括由区块链主网所管理的区块链子网,所述区块链主网维护有所述目的区块链网络中各目的节点的节点身份信息,接收到的任一目的节点生成的任一响应消息包含用于表征所述任一目的节点的节点身份的身份证明信息;对所述任一响应消息进行校验,包括:
向所述区块链主网查询所述任一目的节点的节点身份信息对所述身份证明信息进行校验。
12.根据权利要求1所述的方法,接收到的任一目的节点生成的任一响应消息中包含所述任一目标节点使用自身的节点私钥生成的签名,对所述任一响应消息进行校验,包括:
使用所述任一目的节点的节点公钥对所述签名进行验签。
13.根据权利要求1所述的方法,所述对接收到的响应消息进行校验,包括:
根据所述目的区块链网络中的目的节点的节点总量和接收到的所述响应消息的消息数量,对接收到的所述响应消息进行拜占庭容错校验。
14.根据权利要求1所述的方法,还包括:
采用对称密钥对待传输的区块链消息进行加密,并将加密后的区块链消息添加至所述跨链请求中;
采用所述目的区块链网络中的目的节点的节点公钥对所述对称密钥加密,并将加密得到的对称密钥密文添加至所述跨链请求中。
15.一种跨链交互装置,应用于源区块链网络中的接口源节点,所述装置包括:
消息获取单元,用于向目的区块链网络发起跨链请求,并接收所述目的区块链网络返回的响应消息,其中,所述接口源节点从所述源区块链网络包含的多个源节点中选取得到;
消息处理单元,用于对接收到的响应消息进行校验,并将通过校验的响应消息同步至所述源区块链网络中的其他源节点。
16.一种区块链系统,包括:
源区块链网络,所述源区块链网络中的接口源节点向目的区块链网络发起跨链请求,并接收所述目的区块链网络返回的响应消息,所述接口源节点从所述源区块链网络包含的多个源节点中选取得到;以及,对接收到的响应消息进行校验,并将通过校验的响应消息同步至所述源区块链网络中的其他源节点;
目的区块链网络,响应于所述跨链请求向所述源区块链网络返回所述响应消息。
17.一种电子设备,包括:
处理器;
用于存储处理器可执行指令的存储器;
其中,所述处理器通过运行所述可执行指令以实现如权利要求1-14中任一项所述的方法。
18.一种计算机可读存储介质,其上存储有计算机指令,该指令被处理器执行时实现如权利要求1-14中任一项所述方法的步骤。
CN202310486691.XA 2023-04-28 2023-04-28 区块链系统、跨链交互方法和装置 Pending CN116743765A (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN202310486691.XA CN116743765A (zh) 2023-04-28 2023-04-28 区块链系统、跨链交互方法和装置

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN202310486691.XA CN116743765A (zh) 2023-04-28 2023-04-28 区块链系统、跨链交互方法和装置

Publications (1)

Publication Number Publication Date
CN116743765A true CN116743765A (zh) 2023-09-12

Family

ID=87908695

Family Applications (1)

Application Number Title Priority Date Filing Date
CN202310486691.XA Pending CN116743765A (zh) 2023-04-28 2023-04-28 区块链系统、跨链交互方法和装置

Country Status (1)

Country Link
CN (1) CN116743765A (zh)

Similar Documents

Publication Publication Date Title
CN113259455B (zh) 跨子网交互方法及装置
CN113259460B (zh) 跨链交互方法及装置
CN113259456B (zh) 跨链交互方法及装置
CN113067904B (zh) 组建区块链子网的方法和区块链系统
CN113923232B (zh) 区块链子网的信息同步方法及装置
CN113067897B (zh) 跨链交互方法及装置
CN113259453B (zh) 跨链交互方法及装置
CN113098982B (zh) 区块链消息的传输方法及装置
WO2023124746A1 (zh) 跨子网交互的权限控制
CN113067902A (zh) 区块链消息的传输方法及装置
CN113259454B (zh) 跨链交互方法及装置
CN113259461B (zh) 跨链交互方法和区块链系统
CN115134075A (zh) 跨子网调用方法、装置、电子设备和存储介质
CN113067896B (zh) 区块链子网中加入节点的方法和区块链系统
CN113259464B (zh) 组建区块链子网的方法和区块链系统
CN113259120B (zh) 同步节点信息列表的方法
CN113259117B (zh) 同步节点信息列表的方法
CN114363162A (zh) 区块链日志的生成方法及装置、电子设备、存储介质
CN114095507B (zh) 跨链交互方法和区块链系统
CN113067838B (zh) 跨链交互方法及装置
CN113259459B (zh) 区块链子网运行状态的控制方法和区块链系统
CN116743765A (zh) 区块链系统、跨链交互方法和装置
CN114363349B (zh) 区块链子网的启动方法及装置
CN114268634B (zh) 基于链外的计算服务的业务执行方法
CN116032924A (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