CN113395354A - 基于区块链的合约调用方法和合约调用系统 - Google Patents

基于区块链的合约调用方法和合约调用系统 Download PDF

Info

Publication number
CN113395354A
CN113395354A CN202110743862.3A CN202110743862A CN113395354A CN 113395354 A CN113395354 A CN 113395354A CN 202110743862 A CN202110743862 A CN 202110743862A CN 113395354 A CN113395354 A CN 113395354A
Authority
CN
China
Prior art keywords
chain
relay
cross
service node
node
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.)
Granted
Application number
CN202110743862.3A
Other languages
English (en)
Other versions
CN113395354B (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.)
Agricultural Bank of China
Original Assignee
Agricultural Bank of China
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 Agricultural Bank of China filed Critical Agricultural Bank of China
Priority to CN202110743862.3A priority Critical patent/CN113395354B/zh
Publication of CN113395354A publication Critical patent/CN113395354A/zh
Application granted granted Critical
Publication of CN113395354B publication Critical patent/CN113395354B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

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/01Protocols
    • H04L67/10Protocols in which an application is distributed across nodes in the network

Landscapes

  • Engineering & Computer Science (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Signal Processing (AREA)
  • Management, Administration, Business Operations System, And Electronic Commerce (AREA)

Abstract

本申请提供了基于区块链的合约调用方法和合约调用系统,可以有效地提高机构接入的成功率。该方法应用于包括由至少两个第一业务节点组成的第一区块链、由至少两个第二业务节点组成的第二区块链和由至少两个中继节点组成的中继链的系统,第一区块链和第二区块链通过中继链对接。该方法包括:第一业务节点在确定待调用的目标合约方法的调用为跨链调用的情况下,根据目标合约方法,构建跨合约调用方法体,并发送跨链事件信息;第一中继节点监听到该事件信息后,将该事件信息通过第二中继节点发送至第二业务节点;第二业务节点根据跨链事件信息,调用目标合约方法,得到调用结果,并将该结果通过中继链发送至第一业务节点。

Description

基于区块链的合约调用方法和合约调用系统
技术领域
本申请涉及数据处理领域,尤其涉及一种基于区块链的合约调用方法和合约调用系统。
背景技术
全球区块链市场规模迎来爆发,区块链已在金融、医疗、溯源存证、智能制造等领域快速延伸。其中,金融领域是我国区块链技术应用最为活跃的领域,在数字货币、跨境支付、资产管理、供应链金融等方面已经形成了一批能够承担实际业务的新产品,市场推广正逐步展开。同时,多个企业共同推动建设基于区块链的企业年金个人转移接续平台,实现了年金跨机构转移接续业务流程在区块链内的信息共享。
现有的区块链技术平台之间的跨链交易是将所有业务参与机构同时接入两个区块链平台,根据业务对接的对象和业务类型,由各机构自己的业务系统判断将信息提交到那个链上;或者,是通过集中式的区块链平台对接技术,实现两个区块链平台之间消息的互通。但上述实现方式会存在以下缺点:机构接入率较低。
发明内容
本申请提供一种基于区块链的合约调用方法和合约调用系统,可以有效地提高机构接入的成功率。
第一方面,提供了一种基于区块链的合约调用方法,该方法应用于包括第一区块链、第二区块链和中继链的系统,所述第一区块链由至少两个第一业务节点组成,所述第二区块链由至少两个第二业务节点组成,所述中继链由至少两个中继节点组成,所述第一区块链和所述第二区块链之间通过所述中继链对接,所述方法包括:所述第一业务节点在确定待调用的目标合约方法的调用为跨链调用的情况下,根据所述目标合约方法,构建跨合约调用方法体;所述第一业务节点发送跨链事件信息,所述跨链事件信息用于表示所述第一业务节点需跨链调用所述目标合约方法,所述跨链事件信息携带所述跨合约调用方法体;所述至少两个中继节点中的第一中继节点监听到所述跨链事件信息,将所述跨链事件信息传递至所述至少两个中继节点中的第二中继节点;所述第二中继节点将所述跨链事件信息发送至所述第二业务节点;所述第二业务节点根据所述跨链事件信息,调用所述目标合约方法,得到调用结果;所述第二业务节点将所述调用结果通过所述中继链发送至所述第一业务节点;所述第一业务节点接收所述调用结果。
本申请实施例,第一区块链中的至少两个第一业务节点目标合约方法,构建跨合约调用方法体,并向中继链发送跨链事件消息,中继链至少两个中继节点中的第一中继节点监听到上述跨链事件信息,将该跨链事件信息传递至上述至少两个中继节点中的第二中继节点,第二中继节点将跨链事件信息发送至上述第二业务节点,第二业务节点根据该跨链事件信息,调用上述目标合约方法,得到调用结果,并将该调用结果通过中继链发送至第一业务节点。该方法有效地提高了各业务节点接入成功率。
结合第一方面,在第一方面的某些实现方式中,在所述将所述跨链事件信息传递至所述至少两个中继节点中的第二中继节点之前,所述方法还包括:所述第一中继节点对接收到所述跨链事件信息进行解析,并将所述跨合约调用方法体转换成可识别消息体;所述第一中继节点对所述可识别消息体签名,并在所述中继链中对签名后的所述可识别消息体进行共识处理。
结合第一方面,在第一方面的某些实现方式中,所述第二业务节点将所述调用结果通过所述中继链发送至所述第一业务节点,包括:所述第二业务节点将所述调用结果发送至所述第二中继节点;所述第二中继节点对接收到的所述调用结果进行解析和成批转移协议(bulk transfer protocol,BTP)转换,得到转换后的所述调用结果;所述第二中继节点在所述中继链中对转换后的所述调用结果进行共识处理;所述第二中继节点将转换后的所述调用结果传递至所述第一中继节点;所述第一中继节点将转换后的所述调用结果发送至所述第一业务节点。
结合第一方面,在第一方面的某些实现方式中,在所述第二中继节点将所述跨链事件信息发送至所述第二业务节点之前,所述方法还包括:所述第二中继节点对所述跨链事件信息进行安全性验证。
结合第一方面,在第一方面的某些实现方式中,在所述根据所述目标合约方法,构建跨合约调用方法体之前,所述方法还包括:所述第一业务节点向所述第一中继节点发送区块链注册信息;所述第一中继节点接收所述区块链注册信息,并存储所述区块链注册信息。
结合第一方面,在第一方面的某些实现方式中,所述方法还包括:所述第一中继节点根据所述区块链注册信息,向所述第一业务节点发送跨链合约库;所述第一业务节点接收所述跨链合约库,并基于所述区块链注册信息和所述跨链合约库,编写所述第一业务节点的跨链合约。
结合第一方面,在第一方面的某些实现方式中,所述区块链注册信息包括下列至少一个:所述第一业务节点的标识、所述第一业务节点的认证信息、所述第一业务节点的配置信息、所述第一业务节点的公钥信息、所述第一业务节点的最小安全节点数或所述第一业务节点的跨链业务的合约地址。
结合第一方面,在第一方面的某些实现方式中,所述中继链中还包括跨链网关,所述跨链网关作为交互接口连接所述第一区块链和所述中继链、并连接所述第二区块链和所述中继链。
第二方面,提供了一种基于区块链的合约调用方法,该方法应用于包括第一区块链、第二区块链和中继链的系统,所述第一区块链由至少两个第一业务节点组成,所述第二区块链由至少两个第二业务节点组成,所述中继链由至少两个中继节点组成,所述第一区块链和所述第二区块链之间通过所述中继链对接,所述方法包括:所述第一业务节点在确定待调用的目标合约方法的调用为跨链调用的情况下,根据所述目标合约方法,构建跨合约调用方法体;所述第一业务节点发送跨链事件信息,所述跨链事件信息用于表示所述第一业务节点需跨链调用所述目标合约方法,所述跨链事件信息携带所述跨合约调用方法体;所述第一业务节点接收来自所述第二业务节点的调用结果。
第三方面,提供了一种基于区块链的合约调用系统,包括:第一区块链、第二区块链和中继链,所述第一区块链和所述第二区块链之间通过所述中继链对接,其中,所述第一区块链由至少两个第一业务节点组成,所述第二区块链由至少两个第二业务节点组成,所述中继链由至少两个中继节点组成;所述第一业务节点用于:在确定待调用的目标合约方法的调用为跨链调用的情况下,根据所述目标合约方法,构建跨合约调用方法体;以及发送跨链事件信息,所述跨链事件信息用于表示所述第一业务节点需跨链调用所述目标合约方法,所述跨链事件信息携带所述跨合约调用方法体;所述至少两个中继节点中的第一中继节点用于:监听到所述跨链事件信息,将所述跨链事件信息传递至所述至少两个中继节点中的第二中继节点;所述第二中继节点用于:将所述跨链事件信息发送至所述第二业务节点;所述第二业务节点用于:根据所述跨链事件信息,调用所述目标合约方法,得到调用结果;以及,将所述调用结果通过所述中继链发送至所述第一业务节点。
结合第三方面,在第三方面的某些实现方式中,所述第一中继节点还用于:对接收到所述跨链事件信息进行解析,并将所述跨合约调用方法体转换成可识别消息体;以及对所述可识别消息体签名,并在所述中继链中对签名后的所述可识别消息体进行共识处理。
结合第三方面,在第三方面的某些实现方式中,所述第二业务节点还用于:将所述调用结果发送至所述第二中继节点;所述第二中继节点还用于:对接收到的所述调用结果进行解析和BTP转换,得到转换后的所述调用结果;在所述中继链中对转换后的所述调用结果进行共识处理;以及,将转换后的所述调用结果传递至所述第一中继节点;所述第一中继节点还用于:将转换后的所述调用结果发送至所述第一业务节点。
结合第三方面,在第三方面的某些实现方式中,所述第二中继节点还用于:对所述跨链事件信息进行安全性验证。
结合第三方面,在第三方面的某些实现方式中,所述第一业务节点还用于:向所述第一中继节点发送区块链注册信息;所述第一中继节点还用于:接收所述区块链注册信息,并存储所述区块链注册信息。
结合第三方面,在第三方面的某些实现方式中,所述第一中继节点还用于:根据所述区块链注册信息,向所述第一业务节点发送跨链合约库;所述第一业务节点还用于:接收所述跨链合约库,并基于所述区块链注册信息和所述跨链合约库,编写所述第一业务节点的跨链合约。
结合第三方面,在第三方面的某些实现方式中,所述区块链注册信息包括下列至少一个:所述第一业务节点的标识、所述第一业务节点的认证信息、所述第一业务节点的配置信息、所述第一业务节点的公钥信息、所述第一业务节点的最小安全节点数或所述第一业务节点的跨链业务的合约地址。
结合第三方面,在第三方面的某些实现方式中,所述中继链中还包括跨链网关;所述跨链网关用于:作为交互接口连接所述第一区块链和所述中继链、并连接所述第二区块链和所述中继链。
第四方面,提供了一种基于区块链的合约调用装置,包括:处理模块,用于在确定待调用的目标合约方法的调用为跨链调用的情况下,根据所述目标合约方法,构建跨合约调用方法体;收发模块,用于发送跨链事件信息,所述跨链事件信息用于表示所述第一业务节点需跨链调用所述目标合约方法,所述跨链事件信息携带所述跨合约调用方法体;以及,接收来自第二业务节点的调用结果。
上述基于区块链的合约调用装置可以用于执行上述第一方面中任一种可能的实现方式中第一业务节点对应的方法。
第五方面,提供了另一种基于区块链的合约调用装置,包括:收发模块,用于监听到所述跨链事件信息,将所述跨链事件信息传递至所述至少两个中继节点中的第二中继节点;以及,接收来自第二中继节点的调用结果。
上述基于区块链的合约调用装置可以用于执行上述第一方面中任一种可能的实现方式中至少两个中继节点中的第一中继节点对应的方法。
第六方面,提供了另一种基于区块链的合约调用装置,包括:收发模块,用于将所述跨链事件信息发送至所述第二业务节点;以及,接收来自第二业务节点的调用结果。
所述基于区块链的合约调用装置可以用于执行上述第一方面中任一种可能的实现方式中第二中继节点对应的方法。
第七方面,提供了另一种基于区块链的合约调用装置,包括:处理模块,用于:根据所述跨链事件信息,调用所述目标合约方法,得到调用结果;收发模块,用于将所述调用结果通过所述中继链发送至所述第一业务节点;以及,接收来自第一业务节点的跨链事件消息。
所述基于区块链的合约调用装置可以用于执行上述第一方面中任一种可能的实现方式中第二业务节点对应的方法。
第八方面,提供了一种基于区块链的合约调用装置,包括处理器,该处理器与存储器耦合,可用于执行存储器中的指令,以实现上述第一方面中任一种可能实现方式中第一业务节点对应的方法,或者上述第一方面中任一种可能的实现方式中至少两个中继节点中的第一中继节点对应的方法,或者上述第一方面中任一种可能的实现方式中至少两个中继节点中的第二中继节点对应的方法,或者上述第一方面中任一种可能的实现方式中第二业务节点对对应的方法。
第九方面,提供了一种处理器,包括:输入电路、输出电路和处理电路。处理电路用于通过输入电路接收信号,并通过输出电路发射信号,使得处理器执行上述第一方面中任一种可能实现方式中的方法。
在具体实现过程中,上述处理器可以为芯片,输入电路可以为输入管脚,输出电路可以为输出管脚,处理电路可以为晶体管、门电路、触发器和各种逻辑电路等。输入电路所接收的输入的信号可以是由例如但不限于接收器接收并输入的,输出电路所输出的信号可以是例如但不限于输出给发射器并由发射器发射的,且输入电路和输出电路可以是同一电路,该电路在不同的时刻分别用作输入电路和输出电路。本申请实施例对处理器及各种电路的具体实现方式不做限定。
第十方面,提供了一种处理装置,包括处理器和存储器。该处理器用于读取存储器中存储的指令,并可通过接收器接收信号,通过发射器发射信号,以执行上述第一方面中任一种可能实现方式中第一业务节点对应的方法,或者上述第一方面中任一种可能的实现方式中至少两个中继节点中的第一中继节点对应的方法,或者上述第一方面中任一种可能的实现方式中至少两个中继节点中的第二中继节点对应的方法,或者上述第一方面中任一种可能的实现方式中第二业务节点对应的方法。
可选地,处理器为一个或多个,存储器为一个或多个。
可选地,存储器可以与处理器集成在一起,或者存储器与处理器分离设置。
在具体实现过程中,存储器可以为非瞬时性(non-transitory)存储器,例如只读存储器(read only memory,ROM),其可以与处理器集成在同一块芯片上,也可以分别设置在不同的芯片上,本申请实施例对存储器的类型以及存储器与处理器的设置方式不做限定。
应理解,相关的数据交互过程例如发送跨链事件信息可以为从处理器输出跨链事件信息的过程,接收能力信息可以为处理器接收输入能力信息的过程。具体地,处理输出的数据可以输出给发射器,处理器接收的输入数据可以来自接收器。其中,发射器和接收器可以统称为收发器。
上述第十方面中的处理装置可以是一个芯片,该处理器可以通过硬件来实现也可以通过软件来实现,当通过硬件实现时,该处理器可以是逻辑电路、集成电路等;当通过软件来实现时,该处理器可以是一个通用处理器,通过读取存储器中存储的软件代码来实现,该存储器可以集成在处理器中,可以位于该处理器之外,独立存在。
第十一方面,提供了一种计算机程序产品,计算机程序产品包括:计算机程序(也可以称为代码,或指令),当计算机程序被运行时,使得计算机执行上述第一方面中任一种可能实现方式中第一业务节点对应的方法,或者上述第一方面中任一种可能的实现方式中至少两个中继节点中的第一中继节点对应的方法,或者上述第一方面中任一种可能的实现方式中至少两个中继节点中的第二中继节点对应的方法,或者上述第一方面中任一种可能的实现方式中第二业务节点对应的方法。
第十二方面,提供了一种计算机可读存储介质,该计算机可读存储介质存储有计算机程序(也可以称为代码,或指令)当其在计算机上运行时,使得计算机执行上述第一方面中任一种可能实现方式中第一业务节点对应的方法,或者上述第一方面中任一种可能的实现方式中至少两个中继节点中的第一中继节点对应的方法,或者上述第一方面中任一种可能的实现方式中至少两个中继节点中的第二中继节点对应的方法,或者上述第一方面中任一种可能的实现方式中第二业务节点对应的方法。
附图说明
图1是本申请提供的一种系统架构示意性框图;
图2是本申请实施例提供的基于区块链的合约调用方法的示意性流程图;
图3是本申请实施例提供的一种数据一致性的处理流程的示意图;
图4是本申请实施例提供的另一种基于区块链的合约调用方法的示意性流程图;
图5是本申请实施例提供的一种基于区块链的转移接续业务的合约调用方法的示意性流程图;
图6是本申请实施例提供的基于区块链的缴费业务的合约调用方法的示意性流程图;
图7是本申请实施例提供的基于区块链的合约调用系统的示意框图;
图8是本申请实施例提供的一种基于区块链的合约调用装置的示意性框图;
图9是本申请实施例提供的另一种基于区块链的合约调用装置的示意性框图。
具体实施方式
下面将结合附图,对本申请中的技术方案进行描述。
为便于理解,首先对本申请所涉及到的相关术语进行说明。
1、养老保险:国家依据相关法律法规,为解决劳动者在达到国家规定的解除劳动义务的劳动年龄界限或因丧失劳动能力而退出劳动岗位后而建立的一种保障其生活的社会保险制度。养老保障制度包含三大支柱,基本养老保险,企业年金及职业年金,储蓄性养老保险和商业养老保险。
2、企业年金:依法制定的企业年金计划筹集的资金及其投资运营收益形成的企业补充养老保险基金。企业年金五大主要角色包括:委托人,受托人,账户管理人,投资管理人,托管人。
3、委托人:指设立企业年金的企业及其员工。
4、受托人:指受托管理企业年金基金的企业年金理事会或符合国家规定的养老金管理公司等法人受托机构。
5、账户管理人:指受托人委托管理企业年金基金账户的专业机构。具有资格的企业年金基金账户管理机构,负责管理企业年金账户,为企业年金基金建立独立的企业年金基金企业账户和个人账户。
6、投资管理人:指受托人委托投资管理企业年金基金财产的专业机构。具有资格的投资运营机构,负责企业年金基金的投资运营。
7、托管人:指具有资格的商业银行或专业托管机构,负责托管企业年金基金。
8、区块链:狭义来讲,区块链是一种按照时间顺序将数据区块以顺序相连的方式组合成的一种链式数据结构,并以密码学方式保证的不可篡改和不可伪造的分布式账本。广义来讲,区块链技术是利用块链式数据结构来验证与存储数据、利用分布式节点共识算法来生成和更新数据、利用密码学的方式保证数据传输和访问的安全、利用由自动化脚本代码组成的智能合约来编程和操作数据的一种全新的分布式基础架构与计算范式。
9、共识机制:采用去中心化的区块链设计,各节点的权利是完全对等的,所以必须设计一套制度,来维护系统的运作顺序与公平性,统一区块链的版本,并奖励提供资源维护区块链的使用者,以及惩罚恶意的危害者。这样的制度,必须依赖某种方式来证明,是由谁取得了一个区块链的打包权(或称记账权),并且可以获取打包这一个区块的奖励;又或者是谁意图进行危害,就会获得一定的惩罚,这就是共识机制。
10、智能合约(smart contract):是一种旨在以信息化方式传播、验证或执行合同的计算机协议。智能合约允许在没有第三方的情况下进行可信交易。这些交易可追踪且不可逆转。智能合同的目的是提供优于传统合同方法的安全,并减少与合同相关的其他交易成本。
11、跨链技术:实现不同区块链底层平台之间互联互通的技术。
中继技术:中继技术是通过在两个链中加入一个数据结构,使得两个链可以通过该数据结构进行数据交互。
12、跨链网关:是一个能够满足应用链接入便捷性和多层级扩展性的一个关键接入口,是一种连接不同区块链系统的交互组件。
随着全球区块链市场规模的扩大,区块链已在金融、医疗、溯源存证、智能制造等领域快速延伸,此外,全球各国在零售、房地产、社会公益、旅游、物流等多个领域均开始探索区块链应用场景。同时,我国出台相关政策超前布局区块链发展,鼓励区块链技术在金融科技等领域的创新应用,大型互联网企业纷纷布局区块链,投融资频次及额度剧增,产业规模不断扩大。金融领域是我国区块链技术应用最为活跃的领域,在跨境支付、资产管理、供应链金融等方面已经形成了一批能够承担实际业务的新产品,市场推广正逐步展开。
我国区块链产业规模稳步增长,自主创新技术不断涌现。国家对区块链的重视程度不断提升,重点布局区块链技术发展及产业创新,区块链技术发展新局面将全面开启。
目前养老金业务领域存在两个联盟链,其中,一个联盟链主要为养老金受托账管、托管、投资管理机构提供企业年金计划建账,缴存,支取等业务信息联通服务。另一个是面向受托机构之间转移接续业务的联盟链。
传统的解决方案是所有业务参与机构同时接入两个区块链平台,根据业务对接的对象和业务类型,由各机构自己的业务系统判断将信息提交到那个链上。目前同时还存在集中式的区块链平台对接技术,通过一种集中的系统实现两个区块链平台之间消息的互通。
但由于企业年金业务参与角色多,涉及委托人,受托人,账户管理人、托管人、投资管理人等多个角色,参与机构跨越保险、银行、基金等不同行业,很多机构在区块链应用方面已经有了较为深入的探索,有了适合自身业务特色的区块链技术平台。让各机构对接不同的区块链平台需要做大量的系统对接开发工作,机构接入的效率低。同时集中式的区块链对接系统主要面向两个区块链应用之间,当接入的区块链平台增加是不具备很好的兼容性,只能通过增加区块链平台对接系统的数量来解决。而且,在一项业务引入多个区块链技术平台时,需要巨大的开发投入和存在巨大的技术风险,因此实际业务推广中受到的阻力很大,很难被各方一致接受。集中式的区块链平台与区块链应用的思路存在着根本的悖论,集中式区块链对接系统部署的地点,运维,监管等都会引起巨大的争议。
综上可知,目前解决区块链之间消息的互通存在机构接入的效率低,接入阻力大的缺点。
有鉴于此,本申请提供了一种基于区块链的合约调用方法,通过中继链实现多个区块链的对接,多个区块链中的第一区块链的第一业务节点向中继链发送跨链事件消息,中继链接收到该跨链事件后进行对该消息进行共识处理,再将处理后的跨链事件消息,发送至多个区块链中的第二区块链的第二业务节点,第二业务节点根据跨链事件信息,调用所述目标合约方法,得到调用结果,之后再由第二业务节点将调用结果通过中继链发送至第一业务节点。该方法有效地提高了各业务节点接入成功率。
图1示出了本申请提供的一种系统架构图。如图1所示,该系统架构100包括中继链110、区块链120以及第二区块链130,且区块链120以及第二区块链130分别与中继链110对接。
其中,区块链120包括业务节点A和业务节点B。区块链130包括业务节点C和业务节点D。中继链110包括中继节点1、中继节点2、中继节点3以及中继节点4。应理解,业务节点A可以在中继节点1上注册,业务节点B可以在中继节点2上注册,业务节点C可以在中继节点3上注册,业务节点D可以在中继节点4上注册。
在养老金业务领域中,上述各业务节点可以是个养老金业务参与机构。例如,养老金综合业务管理系统、托管综合业务平台或清算与台账系统等。
上述各中继节点可以是交换设备。例如,路由器,交换机等。
应理解,上述系统100中还可以包括其他区块链或其他中继链,上述各区块链中包括的业务节点数可以是一个或者多个,本申请对接入中继链的业务节点的数量不作限定。
下面结合图2对本申请实施例提供的基于区块链的合约调用方法进行详细说明。
图2示出了本申请实施例提供的基于区块链的合约调用方法200,该方法200应用于包括第一区块链、第二区块链和中继链的系统,所述第一区块链由至少两个第一业务节点组成,所述第二区块链由至少两个第二业务节点组成,所述中继链由至少两个中继节点组成,第一区块链和第二区块链之间通过中继链对接。
在本申请实施例中的第一业务节点和第二业务节点是用于区分业务节点属于两个不同的区块链,即第一业务节点属于第一区块链,第二业务节点属于第二区块链。也就说第一区块链由多个第一业务节点组成,且多个第一业务节点可以是相同的节点也可以是不同的节点;第二区块链由多个第二业务节点组成,且多个第二业务节点可以是相同的节点也可以是不同的节点。
应理解,上述中继链可以是上述系统100中的中继链110。上述第一区块链是系统100中的区块链120,第二区块链是系统100中的区块链130时,上述第一业务节点可以是系统100中的业务节点A或者业务节点B,上述第二业务节点可以系统100中的节点C或者节点D;上述第一区块链是系统100中的区块链130,第二区块链是系统100中的区块链120时,上述第一业务节点可以是系统100中的节点C或者节点D,上述第二业务节点可以系统100中的业务节点A或者业务节点B。本申请对此不作限定。
上述方法200可以包括下列步骤:
S201,第一业务节点在确定待调用的目标合约方法的调用为跨链调用的情况下,根据该目标合约方法,构建跨合约调用方法体。
S202,第一业务节点发送跨链事件信息,该跨链事件信息用于表示该第一业务节点需跨链调用上述目标合约方法,该跨链事件信息携带上述跨合约调用方法体。相应地,至少两个中继节点中的第一中继节点接收该跨链事件信息。
S203,上述至少两个中继节点中的第一中继节点监听到上述跨链事件信息,将该跨链事件信息传递至上述至少两个中继节点中的第二中继节点。相应地,至少两个中继节点中的第二中继节点接收该跨链事件信息。
S204,上述第二中继节点将跨链事件信息发送至上述第二业务节点。相应地,第二业务节点接收该跨链事件信息。
S205,该第二业务节点根据该跨链事件信息,调用上述目标合约方法,得到调用结果。
S206,上述第二业务节点将该调用结果通过中继链发送至上述第一业务节点。相应地,第一业务节点接收该调用结果。
本申请实施例,第一区块链中的至少两个第一业务节点目标合约方法,构建跨合约调用方法体,并向中继链发送跨链事件消息,中继链至少两个中继节点中的第一中继节点监听到上述跨链事件信息,将该跨链事件信息传递至上述至少两个中继节点中的第二中继节点,第二中继节点将跨链事件信息发送至上述第二业务节点,第二业务节点根据该跨链事件信息,调用上述目标合约方法,得到调用结果,并将该调用结果通过中继链发送至第一业务节点。该方法有效地提高了各业务节点接入成功率。
作为一个可选的实施例,在将所述跨链事件信息传递至至少两个中继节点中的第二中继节点之前,该方法200还包括:第一中继节点对接收到的跨链事件信息进行解析,并将跨合约调用方法体转换成可识别消息体;第一中继节点对该可识别消息体签名,并在中继链中对签名后的可识别消息体进行共识处理。
上述共识处理可以理解为是将多种不同形式的数据转化为同一种数据形式的处理。
应理解,在跨链过程中,保证数据一致性主要有两个前提条件:
1、区块链本身(例如,中继链、保交链)能够保证其区块链本身数据的一致性。
2、跨链数据的传输和执行进度通过日志进行细粒度记录。
下面以第一区块链为养老链,第二区块链为保交链为例,结合图3详细描述数据一致性的处理流程。
图3示出了本申请实施例提供的一种数据一致性的处理流程。如图3所示,首先在基于区块链的合约调用中,跨链事件消息是通过区块链事件的形式抛出的,抛出的跨链事件本身仍存储在区块链中。因此,如图3中的跨链交易日志仅需要记录相应交易的索引信息即可。其次对于已经被中继链所共识的跨链交易会以区块的形式存储在中继链中,负责每个区块链的入链交易的见证者服务会保证相应跨链交易最终能够提交到目标区块链。
作为一个可选的实施例,第二业务节点将调用结果通过中继链发送至第一业务节点,包括:第二业务节点将上述调用结果发送至第二中继节点;第二中继节点对接收到的调用结果进行解析和成批转移协议(bulk transfer protocol,BTP)转换,得到转换后的调用结果;该第二中继节点在所述中继链中对转换后的调用结果进行共识处理;第二中继节点将转换后的调用结果传递至第一中继节点;第一中继节点将转换后的调用结果发送至上述第一业务节点。相应地,第一业务节点接收转换后的调用结果。
作为一个可选的实施例,在第二中继节点将上述跨链事件信息发送至第二业务节点之前,该方法200还包括:第二中继节点对跨链事件信息进行安全性验证。
可选地,上述安全性的验证可以采用共识算法(proof of activity,PoA)进行验证。具体地验证过程如下:在跨链业务开始之初,第一区块链和第一链会将相关链的基本信息注册到中继链中。其中关键的一项信息是跨链参与方的验证者数量N、最小安全的验证者数量f以及每个区块链节点对应的公钥信息。在进行跨链交易时,首先由中继链中的见证者服务进行最小可信数量跨链交易收集,也就是说对于任何一个跨链交易见证者必须至少收集f个同样的交易及其对应的f个验证者签名。然后,见证者服务将相关信息提交到中继链。之后,中继链通过对签名信息的验证以及前期注册信息的核对最终确认相关跨链交易的合法性。从而可以保证返回结果的可靠性。
本申请实施例中,通过中继链和各区块链建立的多层级安全设计体系,可以完成业务节点身份的确认,同时跨链事件的加密传输,关键信息多级加密,有效地提高了该系统合约调用的安全性。
作为一个可选的实施例,在根据上述目标合约方法,构建跨合约调用方法体之前,该方法还包括:第一业务节点向第一中继节点发送区块链注册信息;第一中继节点接收区块链注册信息,并存储该区块链注册信息。
作为一个可选的实施例,上述方法200还包括:第一中继节点根据区块链注册信息,向第一业务节点发送跨链合约库;第一业务节点接收该跨链合约库,并基于区块链注册信息和跨链合约库,编写第一业务节点的跨链合约。
示例性地,智能合约中涉及到跨链调用之处,调用crossChainInvoke函数即可。下面用伪代码的方式展示跨链合约库的常见函数:
func void crossChainInvoke(string to,fname,string[]args,stringcallback)//跨链调用
func event getCrossChainEvent(uint begin,uint end)//获取跨链事件上述跨链调用中的几个关键参数:
1、to:目标链在中继链中注册的唯一标识;
2、fname:目标链的被调用函数;
3、args:目标链函数的输入参数列表;
4、如果调用涉及到回执,callback为跨链调用结果的返回输入入口函数;
上述的目标链可以是本申请实施例中的第二区块链。
可以理解的是,上述所示出的跨链调用的方式对原始合约的业务几乎不产生影响,且涉及的相关改造较少。
上述getCrossChainEvent函数是为了做中继链或者来源链(本申请实施例中的第一区块链)宕机恢复使用的,由于采用了事件的处理方式,区块链内部事件都存储在区块链中。中继链提供的跨链合约对事件进行了编号以及索引,该函数主要负责对具体的跨链事件进行按需按序查询。
作为一个可选的实施例,上述区块链注册信息包括下列至少一个:第一业务节点的标识、第一业务节点的认证信息、第一业务节点的配置信息、第一业务节点的公钥信息、第一业务节点的最小安全节点数或第一业务节点的跨链业务的合约地址。
作为一个可选的实施例,上述中继链中还包括跨链网关,该跨链网关作为交互接口连接第一区块链和中继链、并连接第二区块链和中继链。
下面以系统100中的区块链120为养老链,区块链130为保交链,第一中继节点为跨链技术平台(bitxhub,BH)1,第二中继节点为目的节点BH2,介绍本申请实施例提供的另一种基于区块链的合约调用方法。
图4示出了本申请实施例提供的另一种基于区块链的合约调用方法400,该方法400可以包括下列步骤:
S401,养老链中的第一业务节点调用养老链上某合约方法,该合约方法中包括跨链调用。并根据该合约方法构建跨合约调用方法体,设置跨合约调用的回调函数并抛出事件。
S402,养老链所注册的中继链节点BH1监听到跨链事件,并对该跨链事件的消息进行解析,并转换成BTP可识别的消息体,签名并进行共识处理。
S403,跨链事件经过中继链共识之后到达目的节点BH2。
S404,目的节点BH2对接收到的跨链事件信息进行安全检查进行解析。
S405,目的节点BH2按照跨链事件消息的内容调用保交链的智能合约方法。
S406,目的节点BH2接收来自保交链的第二业务节点的调用结果;
S407,目的节点BH2将调用结果转化为BTP可识别的消息体,经中继链共识处理后回到达BH1。
S408,BH1将调用结果发送到养老链上的第一业务节点。
下面以转移接续业务为例,结合图5描述基于区块链的转移接续业务的合约调用方法。
转出机构的受托人在完成转移接续回盘后将回盘业务数据发送到养老金所在的区块链上的节点,该区块链确认信息接收节点不在本链上时抛出跨链事件,中继链监听到该跨链事件,将该转移接续业务的跨链事件信息同步到目标区块链对应的节点上。目标区块链对应的节点将该业务发送到对应的机构,该机构在目标区块链节点上获取转移回盘信息,完成回盘操作。
下面以缴费业务为例,结合图6描述基于区块链的缴费业务合约调用方法。
转出机构将缴费提交至转出机构所在的区块链,触发智能合约中的跨链调用方法体,中继链节点监听到跨链事件后,首先对跨链事件消息进行解析转换成对端可识别的消息体,进行签名和共识后调用目标区块链上的养老智能合约,将数据发送至其目标区块链。
应理解,上述各过程的序号的大小并不意味着执行顺序的先后,各过程的执行顺序应以其功能和内在逻辑确定,而不应对本申请实施例的实施过程构成任何限定。
上文中结合图2至图6,详细描述了本申请实施例的基于区块链的合约调用方法,下面将结合图7至图9,详细描述本申请实施例的基于区块链的合约调用系统和基于区块链的合约调用装置。
图7是本申请实施例提供的基于区块链的合约调用系统700,该系统700包括:第一区块链710、第二区块链720和中继链730。
其中,第一区块链710和第二区块链720之间通过中继链730对接,第一区块链710由至少两个第一业务节点组成,第二区块链720由至少两个第二业务节点组成,中继链730由至少两个中继节点组成。
第一区块链710中的第一业务节点用于:在确定待调用的目标合约方法的调用为跨链调用的情况下,根据所述目标合约方法,构建跨合约调用方法体;以及发送跨链事件信息,所述跨链事件信息用于表示所述第一业务节点需跨链调用所述目标合约方法,所述跨链事件信息携带所述跨合约调用方法体。至少两个中继节点中的第一中继节点用于:监听到所述跨链事件信息,将所述跨链事件信息传递至所述至少两个中继节点730中的第二中继节点。至少两个中继节点中的第二中继节点用于:将所述跨链事件信息发送至所述第二业务节点;第二区块链720中的第二业务节点用于:根据所述跨链事件信息,调用所述目标合约方法,得到调用结果;以及,将所述调用结果通过所述中继链发送至所述第一业务节点。
可选地,第一中继节点还用于:对接收到所述跨链事件信息进行解析,并将所述跨合约调用方法体转换成可识别消息体;以及对所述可识别消息体签名,并在所述中继链中对签名后的所述可识别消息体进行共识处理。
可选地,第二业务节点还用于:将所述调用结果发送至所述第二中继节点;第二中继节点还用于:对接收到的所述调用结果进行解析和BTP转换,得到转换后的所述调用结果;在中继链730中对转换后的所述调用结果进行共识处理;以及,将转换后的所述调用结果传递至所述第一中继节点;第一中继节点还用于:将转换后的所述调用结果发送至所述第一业务节点。
可选地,第二中继节点还用于:对所述跨链事件信息进行安全性验证。
可选地,第一业务节点还用于:向所述第一中继节点发送区块链注册信息;第一中继节点还用于:接收所述区块链注册信息,并存储所述区块链注册信息。
可选地,第一中继节点还用于:根据所述区块链注册信息,向所述第一业务节点发送跨链合约库;第一业务节点还用于:接收所述跨链合约库,并基于所述区块链注册信息和所述跨链合约库,编写所述第一业务节点的跨链合约。
可选地,区块链710注册信息包括下列至少一个:第一业务节点的标识、所述第一业务节点的认证信息、所述第一业务节点的配置信息、所述第一业务节点的公钥信息、所述第一业务节点的最小安全节点数或所述第一业务节点的跨链业务的合约地址。
可选地,中继链730中还包括跨链网关;该跨链网关用于:作为交互接口连接所述第一区块链和所述中继链、并连接所述第二区块链和所述中继链。
图8示出了本申请实施例提供的一种基于区块链的合约调用装置800,该装置800包括:处理模块810和收发模块820。
在一种可能的实现方式中,上述处理模块810和收发模块820用于执行上述方法200或方法400中第一业务节点对应的方法。
具体地,处理模块810用于:在确定待调用的目标合约方法的调用为跨链调用的情况下,根据所述目标合约方法,构建跨合约调用方法体。收发模块820用于:发送跨链事件信息,所述跨链事件信息用于表示所述第一业务节点需跨链调用所述目标合约方法,所述跨链事件信息携带所述跨合约调用方法体;以及,接收来自第二业务节点的调用结果。
在一种可能的实现方式中,上述处理模块810和收发模块820用于执行上述方法200或方法400中至少两个中继节点中的第一中继节点对应的方法。
具体地,收发模块820用于:监听到所述跨链事件信息,将所述跨链事件信息传递至所述至少两个中继节点中的第二中继节点;以及,接收来自第二中继节点的调用结果。
在一种可能的实现方式中,上述处理模块810和收发模块820用于执行上述方法200或方法400中至少两个中继节点中的第二中继节点对应的方法。
具体地,收发模块820用于:将所述跨链事件信息发送至所述第二业务节点;以及,接收来自第二业务节点的调用结果。
在一种可能的实现方式中,上述处理模块810和收发模块820用于执行上述方法200或方法400中第二业务节点对应的方法。
具体地,处理模块810用于:根据所述跨链事件信息,调用所述目标合约方法,得到调用结果;收发模块820用于:将所述调用结果通过所述中继链发送至所述第一业务节点;以及,接收来自第一业务节点的跨链事件消息。
应理解,这里的装置800以功能模块的形式体现。这里的术语“模块”可以指应用特有集成电路(application specific integrated circuit,ASIC)、电子电路、用于执行一个或多个软件或固件程序的处理器(例如共享处理器、专有处理器或组处理器等)和存储器、合并逻辑电路和/或其它所描述的功能的合适组件。在一个可选例子中,本领域技术人员可以理解,装置800可以具体为上述实施例中包括第一区块链710中的第一业务节点、第二区块链720中的第二业务节点、至少两个中继节点中的第一中继节点或至少两个中继节点中的第二中继节点,或者,上述实施例中第一区块链710中的第一业务节点、第二区块链720中的第二业务节点、至少两个中继节点中的第一中继节点或至少两个中继节点中的第二中继节点的功能可以集成在装置800中,装置800可以用于执行上述方法实施例中与第一区块链710中的第一业务节点、第二区块链720中的第二业务节点、至少两个中继节点中的第一中继节点或至少两个中继节点中的第二中继节点对应的各个流程和/或步骤,为避免重复,在此不再赘述。
上述装置800具有实现上述方法中第一区块链710中的第一业务节点、第二区块链720中的第二业务节点、至少两个中继节点中的第一中继节点或至少两个中继节点中的第二中继节点执行的相应步骤的功能;上述功能可以通过硬件实现,也可以通过硬件执行相应的软件实现。该硬件或软件包括一个或多个与上述功能相对应的模块。例如,上述收发模块820可以为通信接口,例如收发接口。
在本申请的实施例,图8中的装置800也可以是芯片或者芯片系统,例如:片上系统(system on chip,SoC)。本申请对此不作限定。
图9示出了本申请实施例提供的另一种基于区块链的合约调用装置900。该装置900包括处理器910、存储器920和收发器930。其中,处理器910、存储器920和收发器630通过内部连接通路互相通信,该存储器920用于存储指令,该处理器910用于执行该存储器920存储的指令,以控制该收发器930发送信号和/或接收信号。
在一种可能的实现方式中,该装置900可以具体为上述实施例中第一区块链710中的第一业务节点。或者,上述实施例中第一区块链710中的第一业务节点的功能可以集成在装置900中,装置900可以用于执行上述方法实施例中与第一区块链710中的第一业务节点对应的各个步骤和/或流程。
在一种可能的实现方式中,该装置900可以具体为至少两个中继节点730中的第一中继节点。或者,上述实施例中至少两个中继节点中的第一中继节点的功能可以集成在装置900中,装置900可以用于执行上述方法实施例中与至少两个中继节点中的第一中继节点对应的各个步骤和/或流程。
在一种可能的实现方式中,该装置900可以具体为至少两个中继节点中的第二中继节点。或者,上述实施例中第二中继节点的功能可以集成在装置900中,装置900可以用于执行上述方法实施例中与第二中继节点对应的各个步骤和/或流程。
在一种可能的实现方式中,该装置900可以具体为第二区块链720中的第二业务节点。或者,上述实施例中第二业务节点的功能可以集成在装置900中,装置900可以用于执行上述方法实施例中第二业务节点对应的各个步骤和/或流程。
可选地,该存储器920可以包括只读存储器和随机存取存储器,并向处理器提供指令和数据。存储器的一部分还可以包括非易失性随机存取存储器。例如,存储器还可以存储设备类型的信息。
应理解,在本申请实施例中,该处理器可以是中央处理单元(central processingunit,CPU),该处理器还可以是其他通用处理器、数字信号处理器(DSP)、专用集成电路(ASIC)、现场可编程门阵列(FPGA)或者其他可编程逻辑器件、分立门或者晶体管逻辑器件、分立硬件组件等。通用处理器可以是微处理器或者该处理器也可以是任何常规的处理器等。
在实现过程中,上述方法的各步骤可以通过处理器中的硬件的集成逻辑电路或者软件形式的指令完成。结合本申请实施例所公开的方法的步骤可以直接体现为硬件处理器执行完成,或者用处理器中的硬件及软件模块组合执行完成。软件模块可以位于随机存储器,闪存、只读存储器,可编程只读存储器或者电可擦写可编程存储器、寄存器等本领域成熟的存储介质中。该存储介质位于存储器,处理器执行存储器中的指令,结合其硬件完成上述方法的步骤。为避免重复,这里不再详细描述。
本领域普通技术人员可以意识到,结合本文中所公开的实施例描述的各示例的单元及算法步骤,能够以电子硬件、或者计算机软件和电子硬件的结合来实现。这些功能究竟以硬件还是软件方式来执行,取决于技术方案的特定应用和设计约束条件。专业技术人员可以对每个特定的应用来使用不同方法来实现所描述的功能,但是这种实现不应认为超出本申请的范围。
所属领域的技术人员可以清楚地了解到,为描述的方便和简洁,上述描述的系统、装置和单元的具体工作过程,可以参考前述方法实施例中的对应过程,在此不再赘述。
在本申请所提供的几个实施例中,应该理解到,所揭露的系统、装置和方法,可以通过其它的方式实现。例如,以上所描述的装置实施例仅仅是示意性的,例如,所述单元的划分,仅仅为一种逻辑功能划分,实际实现时可以有另外的划分方式,例如多个单元或组件可以结合或者可以集成到另一个系统,或一些特征可以忽略,或不执行。另一点,所显示或讨论的相互之间的耦合或直接耦合或通信连接可以是通过一些接口,装置或单元的间接耦合或通信连接,可以是电性,机械或其它的形式。
所述作为分离部件说明的单元可以是或者也可以不是物理上分开的,作为单元显示的部件可以是或者也可以不是物理单元,即可以位于一个地方,或者也可以分布到多个网络单元上。可以根据实际的需要选择其中的部分或者全部单元来实现本实施例方案的目的。
另外,在本申请各个实施例中的各功能单元可以集成在一个处理单元中,也可以是各个单元单独物理存在,也可以两个或两个以上单元集成在一个单元中。
所述功能如果以软件功能单元的形式实现并作为独立的产品销售或使用时,可以存储在一个计算机可读取存储介质中。基于这样的理解,本申请的技术方案本质上或者说对现有技术做出贡献的部分或者该技术方案的部分可以以软件产品的形式体现出来,该计算机软件产品存储在一个存储介质中,包括若干指令用以使得一台计算机设备(可以是个人计算机,服务器,或者网络设备等)执行本申请各个实施例所述方法的全部或部分步骤。而前述的存储介质包括:U盘、移动硬盘、只读存储器(read-only memory,ROM)、随机存取存储器(random access memory,RAM)、磁碟或者光盘等各种可以存储程序代码的介质。
以上所述,仅为本申请的具体实施方式,但本申请的保护范围并不局限于此,任何熟悉本技术领域的技术人员在本申请揭露的技术范围内,可轻易想到变化或替换,都应涵盖在本申请的保护范围之内。因此,本申请的保护范围应以所述权利要求的保护范围为准。

Claims (19)

1.一种基于区块链的合约调用方法,其特征在于,应用于包括第一区块链、第二区块链和中继链的系统,所述第一区块链由至少两个第一业务节点组成,所述第二区块链由至少两个第二业务节点组成,所述中继链由至少两个中继节点组成,所述第一区块链和所述第二区块链之间通过所述中继链对接,所述方法包括:
所述第一业务节点在确定待调用的目标合约方法的调用为跨链调用的情况下,根据所述目标合约方法,构建跨合约调用方法体;
所述第一业务节点发送跨链事件信息,所述跨链事件信息用于表示所述第一业务节点需跨链调用所述目标合约方法,所述跨链事件信息携带所述跨合约调用方法体;
所述至少两个中继节点中的第一中继节点监听到所述跨链事件信息,将所述跨链事件信息传递至所述至少两个中继节点中的第二中继节点;
所述第二中继节点将所述跨链事件信息发送至所述第二业务节点;
所述第二业务节点根据所述跨链事件信息,调用所述目标合约方法,得到调用结果;
所述第二业务节点将所述调用结果通过所述中继链发送至所述第一业务节点。
2.根据权利要求1所述的方法,其特征在于,在所述将所述跨链事件信息传递至所述至少两个中继节点中的第二中继节点之前,所述方法还包括:
所述第一中继节点对接收到所述跨链事件信息进行解析,并将所述跨合约调用方法体转换成可识别消息体;
所述第一中继节点对所述可识别消息体签名,并在所述中继链中对签名后的所述可识别消息体进行共识处理。
3.根据权利要求1所述的方法,其特征在于,所述第二业务节点将所述调用结果通过所述中继链发送至所述第一业务节点,包括:
所述第二业务节点将所述调用结果发送至所述第二中继节点;
所述第二中继节点对接收到的所述调用结果进行解析和成批转移协议BTP转换,得到转换后的所述调用结果;
所述第二中继节点在所述中继链中对转换后的所述调用结果进行共识处理;
所述第二中继节点将转换后的所述调用结果传递至所述第一中继节点;
所述第一中继节点将转换后的所述调用结果发送至所述第一业务节点。
4.根据权利要求1所述的方法,其特征在于,在所述第二中继节点将所述跨链事件信息发送至所述第二业务节点之前,所述方法还包括:
所述第二中继节点对所述跨链事件信息进行安全性验证。
5.根据权利要求1所述的方法,其特征在于,在所述根据所述目标合约方法,构建跨合约调用方法体之前,所述方法还包括:
所述第一业务节点向所述第一中继节点发送区块链注册信息;
所述第一中继节点接收所述区块链注册信息,并存储所述区块链注册信息。
6.根据权利要求5所述的方法,其特征在于,所述方法还包括:
所述第一中继节点根据所述区块链注册信息,向所述第一业务节点发送跨链合约库;
所述第一业务节点接收所述跨链合约库,并基于所述区块链注册信息和所述跨链合约库,编写所述第一业务节点的跨链合约。
7.根据权利要求5所述的方法,其特征在于,所述区块链注册信息包括下列至少一个:
所述第一业务节点的标识、所述第一业务节点的认证信息、所述第一业务节点的配置信息、所述第一业务节点的公钥信息、所述第一业务节点的最小安全节点数或所述第一业务节点的跨链业务的合约地址。
8.根据权利要求1至7中任一项所述的方法,其特征在于,所述中继链中还包括跨链网关,所述跨链网关作为交互接口连接所述第一区块链和所述中继链、并连接所述第二区块链和所述中继链。
9.一种基于区块链的合约调用方法,其特征在于,应用于包括第一区块链、第二区块链和中继链的系统,所述第一区块链由至少两个第一业务节点组成,所述第二区块链由至少两个第二业务节点组成,所述中继链由至少两个中继节点组成,所述第一区块链和所述第二区块链之间通过所述中继链对接,所述方法包括:
所述第一业务节点在确定待调用的目标合约方法的调用为跨链调用的情况下,根据所述目标合约方法,构建跨合约调用方法体;
所述第一业务节点发送跨链事件信息,所述跨链事件信息用于表示所述第一业务节点需跨链调用所述目标合约方法,所述跨链事件信息携带所述跨合约调用方法体;
所述第一业务节点接收来自所述第二业务节点的调用结果。
10.一种基于区块链的合约调用系统,其特征在于,包括:
第一区块链、第二区块链和中继链,所述第一区块链和所述第二区块链之间通过所述中继链对接,其中,所述第一区块链由至少两个第一业务节点组成,所述第二区块链由至少两个第二业务节点组成,所述中继链由至少两个中继节点组成;
所述第一业务节点用于:在确定待调用的目标合约方法的调用为跨链调用的情况下,根据所述目标合约方法,构建跨合约调用方法体;以及发送跨链事件信息,所述跨链事件信息用于表示所述第一业务节点需跨链调用所述目标合约方法,所述跨链事件信息携带所述跨合约调用方法体;
所述至少两个中继节点中的第一中继节点用于:监听到所述跨链事件信息,将所述跨链事件信息传递至所述至少两个中继节点中的第二中继节点;
所述第二中继节点用于:将所述跨链事件信息发送至所述第二业务节点;
所述第二业务节点用于:根据所述跨链事件信息,调用所述目标合约方法,得到调用结果;以及,将所述调用结果通过所述中继链发送至所述第一业务节点。
11.根据权利要求10所述的系统,其特征在于,所述第一中继节点还用于:
对接收到所述跨链事件信息进行解析,并将所述跨合约调用方法体转换成可识别消息体;以及对所述可识别消息体签名,并在所述中继链中对签名后的所述可识别消息体进行共识处理。
12.根据权利要求10所述的系统,其特征在于,所述第二业务节点还用于:
将所述调用结果发送至所述第二中继节点;
所述第二中继节点还用于:对接收到的所述调用结果进行解析和成批转移协议BTP转换,得到转换后的所述调用结果;在所述中继链中对转换后的所述调用结果进行共识处理;以及,将转换后的所述调用结果传递至所述第一中继节点;
所述第一中继节点还用于:将转换后的所述调用结果发送至所述第一业务节点。
13.根据权利要求10所述的系统,其特征在于,所述第二中继节点还用于:
对所述跨链事件信息进行安全性验证。
14.根据权利要求10所述的系统,其特征在于,所述第一业务节点还用于:
向所述第一中继节点发送区块链注册信息;
所述第一中继节点还用于:接收所述区块链注册信息,并存储所述区块链注册信息。
15.根据权利要求14所述的系统,其特征在于,所述第一中继节点还用于:
根据所述区块链注册信息,向所述第一业务节点发送跨链合约库;
所述第一业务节点还用于:接收所述跨链合约库,并基于所述区块链注册信息和所述跨链合约库,编写所述第一业务节点的跨链合约。
16.根据权利要求14所述的系统,其特征在于,所述区块链注册信息包括下列至少一个:
所述第一业务节点的标识、所述第一业务节点的认证信息、所述第一业务节点的配置信息、所述第一业务节点的公钥信息、所述第一业务节点的最小安全节点数或所述第一业务节点的跨链业务的合约地址。
17.根据权利要求10至16中任一项所述的系统,其特征在于,所述中继链中还包括跨链网关;
所述跨链网关用于:作为交互接口连接所述第一区块链和所述中继链、并连接所述第二区块链和所述中继链。
18.一种基于区块链的合约调用装置,其特征在于,包括:处理器,所述处理器与存储器耦合,所述存储器用于存储计算机程序,当所述处理器调用所述计算机程序时,使得所述装置执行如权利要求9所述的方法。
19.一种计算机可读存储介质,其特征在于,用于存储计算机程序,所述计算机程序包括用于实现如权利要求9所述的方法的指令。
CN202110743862.3A 2021-06-30 2021-06-30 基于区块链的合约调用方法和合约调用系统 Active CN113395354B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN202110743862.3A CN113395354B (zh) 2021-06-30 2021-06-30 基于区块链的合约调用方法和合约调用系统

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN202110743862.3A CN113395354B (zh) 2021-06-30 2021-06-30 基于区块链的合约调用方法和合约调用系统

Publications (2)

Publication Number Publication Date
CN113395354A true CN113395354A (zh) 2021-09-14
CN113395354B CN113395354B (zh) 2022-11-29

Family

ID=77624886

Family Applications (1)

Application Number Title Priority Date Filing Date
CN202110743862.3A Active CN113395354B (zh) 2021-06-30 2021-06-30 基于区块链的合约调用方法和合约调用系统

Country Status (1)

Country Link
CN (1) CN113395354B (zh)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN113919953A (zh) * 2021-10-13 2022-01-11 平安国际智慧城市科技股份有限公司 跨链生成智能合约的实现方法、装置、设备以及存储介质

Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN108269190A (zh) * 2018-01-17 2018-07-10 深圳四方精创资讯股份有限公司 基于跨链中继平台的跨链方法及其系统
CN111800463A (zh) * 2020-05-29 2020-10-20 易联众信息技术股份有限公司 区块链间跨链信息交互方法、系统、介质、设备及应用
CN112200682A (zh) * 2020-12-04 2021-01-08 腾讯科技(深圳)有限公司 基于区块链的跨链交易方法、装置和计算机可读存储介质
CN112330326A (zh) * 2020-11-27 2021-02-05 中国农业银行股份有限公司 一种应用于银行交易区块链系统的业务处理方法和装置
US20210174357A1 (en) * 2017-12-01 2021-06-10 Bitflyer Blockchain, Inc. Method for Making Smart Contract Executable in Block Chain Network, and Node

Patent Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20210174357A1 (en) * 2017-12-01 2021-06-10 Bitflyer Blockchain, Inc. Method for Making Smart Contract Executable in Block Chain Network, and Node
CN108269190A (zh) * 2018-01-17 2018-07-10 深圳四方精创资讯股份有限公司 基于跨链中继平台的跨链方法及其系统
CN111800463A (zh) * 2020-05-29 2020-10-20 易联众信息技术股份有限公司 区块链间跨链信息交互方法、系统、介质、设备及应用
CN112330326A (zh) * 2020-11-27 2021-02-05 中国农业银行股份有限公司 一种应用于银行交易区块链系统的业务处理方法和装置
CN112200682A (zh) * 2020-12-04 2021-01-08 腾讯科技(深圳)有限公司 基于区块链的跨链交易方法、装置和计算机可读存储介质

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN113919953A (zh) * 2021-10-13 2022-01-11 平安国际智慧城市科技股份有限公司 跨链生成智能合约的实现方法、装置、设备以及存储介质

Also Published As

Publication number Publication date
CN113395354B (zh) 2022-11-29

Similar Documents

Publication Publication Date Title
Lin et al. A survey of application research based on blockchain smart contract
Hu et al. Blockchain-based smart contracts-applications and challenges
CN112837048B (zh) 跨区块链的数据处理方法、装置、设备及计算机存储介质
CN112330326B (zh) 一种应用于银行交易区块链系统的业务处理方法和装置
CN110442652B (zh) 一种基于区块链的跨链数据处理方法及装置
CN109214818A (zh) 一种跨链交易方法及装置
Hang et al. Blockchain for applications of clinical trials: Taxonomy, challenges, and future directions
CN111414434B (zh) 基于区块链的数据交易管理网络、交易设备和存储介质
Almaghrabi et al. Blockchain-based donations traceability framework
CN111340628A (zh) 基于区块链的资产信息管理方法和装置
CN110572457A (zh) 基于区块链的资源申请方法及装置、电子设备、存储介质
CN112291305A (zh) 基于统一标识的码链构建方法及装置
GB2578168A (en) Computer-implemented method and system for digital signing of transactions
CN113395354B (zh) 基于区块链的合约调用方法和合约调用系统
Dash et al. Artificial intelligence models for blockchain-based intelligent networks systems: Concepts, methodologies, tools, and applications
Hegnauer Design and development of a blockchain interoperability api
Pustišek et al. Secure modular smart contract platform for multi-tenant 5g applications
CN110727735B (zh) 基于区块链技术协作完成任务事件的方法、装置及设备
CN111680968B (zh) 基于区块链的建筑权益管理系统及方法
Wu et al. ChainIDE 2.0: facilitating smart contract development for consortium blockchain
CN112396427A (zh) 一种面向通用场景的跨链互换操作方法
CN111984727B (zh) 受试者招募方法及装置、终端设备、存储介质
Ilgi et al. Formal verification for security technologies in the blockchain with artificial intelligence: A survey
CN114331708A (zh) 基于区块链的频谱资源交易方法、系统、设备及存储介质
CN111199468A (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