CN116155973A - 区块链通信方法、装置、计算机设备及存储介质 - Google Patents
区块链通信方法、装置、计算机设备及存储介质 Download PDFInfo
- Publication number
- CN116155973A CN116155973A CN202310167002.9A CN202310167002A CN116155973A CN 116155973 A CN116155973 A CN 116155973A CN 202310167002 A CN202310167002 A CN 202310167002A CN 116155973 A CN116155973 A CN 116155973A
- Authority
- CN
- China
- Prior art keywords
- channel
- blockchain
- communication
- node
- 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
Links
Images
Classifications
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L67/00—Network arrangements or protocols for supporting network services or applications
- H04L67/14—Session management
- H04L67/141—Setup of application sessions
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L12/00—Data switching networks
- H04L12/02—Details
- H04L12/16—Arrangements for providing special services to substations
- H04L12/18—Arrangements for providing special services to substations for broadcast or conference, e.g. multicast
- H04L12/1854—Arrangements for providing special services to substations for broadcast or conference, e.g. multicast with non-centralised forwarding system, e.g. chaincast
Landscapes
- Engineering & Computer Science (AREA)
- Computer Networks & Wireless Communication (AREA)
- Signal Processing (AREA)
- Financial Or Insurance-Related Operations Such As Payment And Settlement (AREA)
Abstract
本申请提供一种区块链通信方法、装置、计算机设备及存储介质,涉及区块链技术领域。该方法包括:接收第一终端设备发送的通道创建请求,根据多个区块链节点的通道创建能力,从多个区块链节点中确定第二区块链节点;广播通道创建事件,使第二终端设备生成通道创建事件对应的响应消息;若响应消息指示第二终端设备同意创建通信通道,广播通道创建响应事件,使第二区块链节点根据通道创建事件和通道创建响应事件创建通信通道;确定第二区块链节点成功创建通信通道,广播通道创建成功事件,使第一终端设备通过通信通道向第二终端设备发送通信消息。本申请可以使终端设备之间通过区块链节点的通信通道进行通信,降低通信时间延时,提高用户体验。
Description
技术领域
本发明涉及区块链技术领域,具体而言,涉及一种区块链通信方法、装置、计算机设备及存储介质。
背景技术
区块链是一种由多方维护、数据无法更改的分布式账本技术,具有去中心化、共同维护、不可篡改、加密安全等特征。
现有的去中心化通信是使用智能合约直接通信,通过智能合约完成通信消息的发送的过程为:用户通过去中心化应用向链上发起交易,交易中携带通信地址和通信消息,智能合约对交易校验通过发后布通信事件,终端设备监控到通信事件后,若通信事件中的通信地址与终端设备的用户地址一致,则向终端设备的用户发起通知,以使得用户查看通信消息,并发起交易进行回复。
但是因为用户每发送一次通信消息都需要发起交易,而每次发起交易都需要向区块链支付gas费用,且每次发送通信消息都需要通过智能合约进行传播,且需要通过共识机制的验证,导致通信时间延迟非常长,降低用户体验。
发明内容
本发明的目的在于,针对上述现有技术中的不足,提供一种区块链通信方法、装置、计算机设备及存储介质,以便使终端设备之间通过区块链节点的通信通道进行通信,降低通信时间延时,提高用户体验。
为实现上述目的,本申请实施例采用的技术方案如下:
第一方面,本申请实施例提供了一种区块链通信方法,应用于区块链上的多个区块链节点中的第一区块链节点,所述方法包括:
接收第一终端设备发送的通道创建请求,所述通道创建请求中包括:第二终端设备的设备标识;
根据所述多个区块链节点的通道创建能力,从所述多个区块链节点中确定第二区块链节点;
广播通道创建事件,所述通道创建事件包括:所述第二终端设备的设备标识、所述第二区块链节点的节点标识和通道标识,以使得所述第二终端设备生成所述通道创建事件对应的响应消息;
若所述响应消息指示所述第二终端设备同意创建通信通道,广播通道创建响应事件,以使得所述第二区块链节点根据所述通道创建事件和所述通道创建响应事件创建通信通道;
确定所述第二区块链节点成功创建所述通信通道,广播通道创建成功事件,所述通道创建成功事件包括:所述通道标识,以使得所述第一终端设备通过所述通信通道向所述第二终端设备发送通信消息。
第二方面,本申请实施例还提供一种区块链通信方法,应用于区块链上的多个区块链节点中的第二区块链节点,所述方法包括:
接收第一区块链节点广播的通道创建事件和通道创建响应事件,所述通道创建事件为所述第一区块链节点根据第一终端设备发送的通道创建请求和所述多个区块链节点的通道创建能力生成的,所述通道创建响应事件为所述第一区块链节点根据第二终端设备针对所述通道创建事件发送的响应消息生成的,所述通道创建事件包括:第二终端设备的设备标识、所述第二区块链节点的节点标识和通道标识;
判断所述通道创建事件中的节点标识是否为自身的节点标识,若是,根据所述通道标识创建通信通道;
向所述第一区块链节点通知所述通信通道创建成功,使所述第一区块链节点向所述第一终端设备发送所述通信通道的通道标识,以使得所述第一终端设备通过所述通道标识对应的通信通道向所述第二终端设备发送通信消息。
第三方面,本申请实施例还提供一种区块链通信装置,应用于区块链上的多个区块链节点中的第一区块链节点,所述装置包括:
请求接收模块,用于接收第一终端设备发送的通道创建请求,所述通道创建请求中包括:第二终端设备的设备标识;
节点确定模块,用于根据所述多个区块链节点的通道创建能力,从所述多个区块链节点中确定第二区块链节点;
创建事件广播模块,用于广播通道创建事件,所述通道创建事件包括:所述第二终端设备的设备标识、所述第二区块链节点的节点标识和通道标识,以使得所述第二终端设备生成所述通道创建事件对应的响应消息;
响应事件广播模块,用于若所述响应消息指示所述第二终端设备同意创建通信通道,广播通道创建响应事件,以使得所述第二区块链节点根据所述通道创建事件和所述通道创建响应事件创建通信通道;
通道标识发送模块,用于确定所述第二区块链节点成功创建所述通信通道,广播通道创建成功事件,所述通道创建成功事件包括:所述通道标识,以使得所述第一终端设备通过所述通信通道向所述第二终端设备发送通信消息。
第四方面,本申请实施例还提供一种区块链通信装置,应用于区块链上的多个区块链节点中的第二区块链节点,所述装置包括:
事件接收模块,用于接收第一区块链节点广播的通道创建事件和通道创建响应事件,所述通道创建事件为所述第一区块链节点根据第一终端设备发送的通道创建请求和所述多个区块链节点的通道创建能力生成的,所述通道创建响应事件是根据第二终端设备针对所述通道创建事件发送的响应消息生成的,所述通道创建事件包括:第二终端设备的设备标识、所述第二区块链节点的节点标识和通道标识;
节点标识判断模块,用于判断所述通道创建事件中的节点标识是否为自身的节点标识,若是,根据所述通道标识创建通信通道;
响应消息发送模块,用于向所述第一区块链节点发送通道创建成功的响应消息,使所述第一区块链节点向所述第一终端设备发送所述通信通道的通道标识,以使得所述第一终端设备通过所述通道标识对应的通信通道向所述第二终端设备发送通信消息。
第五方面,本申请实施例还提供一种计算机设备,包括:处理器、存储介质和总线,所述存储介质存储有所述处理器可执行的程序指令,当计算机设备运行时,所述处理器与所述存储介质之间通过总线通信,所述处理器执行所述程序指令,以执行如第一方面任一所述的区块链通信方法的步骤,或者,执行如第二方面任一所述的区块链通信方法的步骤。
第六方面,本申请实施例还提供一种计算机可读存储介质,所述存储介质上存储有计算机程序,所述计算机程序被处理器运行时执行如第一方面任一所述的区块链通信方法的步骤,或者,执行如第二方面任一所述的区块链通信方法的步骤。
本申请的有益效果是:
本申请提供一种区块链通信方法、装置、计算机设备及存储介质,由区块链中的第一区块链节点通过智能合约根据各个区块链节点的通道创建能力,选择第二区块链节点创建通信通道,以使得第一终端设备和第二终端设备通过第二区块链节点的通信通道进行通信,使得第一终端设备和第二终端设备之间无需每次发送通信消息时都要经过智能合约的验证并支付gas费用,可以有效降低降低通信时间延时,提高用户体验。
附图说明
为了更清楚地说明本发明实施例的技术方案,下面将对实施例中所需要使用的附图作简单地介绍,应当理解,以下附图仅示出了本发明的某些实施例,因此不应被看作是对范围的限定,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他相关的附图。
图1为本申请实施例提供的区块链通信系统的示意图;
图2为本申请实施例提供的区块链通信方法的流程示意图一;
图3为本申请实施例提供的区块链通信方法的流程示意图二;
图4为本申请实施例提供的区块链通信方法的流程示意图三;
图5为本申请实施例提供的区块链通信方法的流程示意图四;
图6为本申请实施例提供的区块链通信方法的流程示意图五;
图7为本申请实施例提供的区块链通信方法的流程示意图六;
图8为本申请实施例提供的区块链通信装置的结构示意图一;
图9为本申请实施例提供的区块链通信装置的结构示意图二;
图10为本申请实施例提供的计算机设备的示意图。
具体实施方式
为使本发明实施例的目的、技术方案和优点更加清楚,下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例是本发明一部分实施例,而不是全部的实施例。
因此,以下对在附图中提供的本申请的实施例的详细描述并非旨在限制要求保护的本申请的范围,而是仅仅表示本申请的选定实施例。基于本申请中的实施例,本领域普通技术人员在没有作出创造性劳动前提下所获得的所有其他实施例,都属于本申请保护的范围。
此外,本发明的说明书和权利要求书及上述附图中的术语“第一”、“第二”等是用于区别类似的对象,而不必用于描述特定的顺序或先后次序。应该理解这样使用的数据在适当情况下可以互换,以便这里描述的本发明的实施例能够以除了在这里图示或描述的那些以外的顺序实施。此外,术语“包括”和“具有”以及他们的任何变形,意图在于覆盖不排他的包含,例如,包含了一系列步骤或单元的过程、方法、系统、产品或设备不必限于清楚地列出的那些步骤或单元,而是可包括没有清楚地列出的或对于这些过程、方法、产品或设备固有的其它步骤或单元。
需要说明的是,在不冲突的情况下,本申请的实施例中的特征可以相互结合。
区块链是由多个分布式节点参与的分布式数据库,由一系列区块(block)组成,每个区块可以存储两个或多个参与者之间交易的交易数据,交易数据不可篡改、不可伪造,其中,区块链之间的交易包括但不限于服务、货币、资产等有价物的交换。
为便于理解本申请的方案,提供一种本申请的应用系统仅供参考。请参考图1,为本申请实施例提供的区块链通信系统的示意图,如图1所示,该区块链通信系统包括:多个区块链节点10构成的区块链和多个终端设备20,其中,本申请的区块链为公有链,在公有链上部署智能合约,一般的,公有链上的所有区块链节点公用智能合约,各个区块链节点均可以调用智能合约的功能。
智能合约提供节点管理功能和通信通道管理功能,节点管理功能用于为区块链节点提供注册、去注册及更新的功能,通信通道管理功能用于为终端设备提供通信通道的分配及释放功能。
在一些实施例中,区块链节点10需要在智能合约中注册完成,才能为整个区块链网络提供通信能力,区块链节点10在注册时需要将区块链节点的节点标识与通道创建能力写入到智能合约中,智能合约对所有注册的区块链节点的通信资源进行统一管理,当区块链节点的通道创建能力发生变化,比如区块链节点的通道创建能力扩容等,需要在智能合约中更新。
区块链节点10为区块链中的计算机设备,例如移动设备、矿机和服务器等,终端设备20上安装运行有区块链交易客户端,区块链交易客户端作为一种去中心化应用(Decentralized Application,DAPP),通过调用软件开发工具包(Software DevelopmentKit,SDK)组装交易,并将交易请求发送给区块链中的第一区块链节点,由第一区块链节点调用智能合约的通信通道管理功能,根据交易请求和区块链节点10的通道创建能力为终端设备分配区块链节点10创建通信通道,以通过通信通道实现终端设备的DAPP之间的通信。
现有的基于上述区块链通信系统的去中心化通信是使用智能合约直接通信,通过智能合约完成通信消息的发送的过程为:用户通过第一终端设备的DAPP向链上发起交易,交易中携带通信地址和通信消息,智能合约对交易校验通过发后布通信事件,第二终端设备监控到通信事件后,若通信事件中的通信地址与第二终端设备的用户地址一致,则向第二终端设备的用户发起通知,以使得用户查看通信消息,并发起交易进行回复。
但是因为用户每发送一次通信消息都需要发起交易,而每次发起交易都需要向区块链支付gas费用,且每次发送通信消息都需要通过智能合约进行传播,且需要通过共识机制的验证,导致通信时间延迟非常长,降低用户体验。
针对上述现有技术存在的问题,本申请拟提供一种区块链通信方法,应用于上述区块链通信系统中的第一区块链节点,通过区块链上的智能合约根据区块链节点的通道创建能力选择第二区块链节点创建通信通道,以使得第一终端设备直接通过第二区块链节点的通信通道与第二终端设备进行通信,无需由智能合约对每个通信消息进行验证,降低通信时间延时,提高用户体验。
请参考图2,为本申请实施例提供的区块链通信方法的流程示意图一,如图2所示,该方法可以包括:
S11:接收第一终端设备发送的通道创建请求,通道创建请求中包括:第二终端设备的设备标识。
本实施例中,第一终端设备和第二终端设备上均安装有执行区块链交易的DAPP,用户通过第一终端设备的DAPP调用SDK对交易进行组装后,通过DAPP发起交易请求,交易请求中包括:第二终端设备的设备标识和通信消息,响应于该交易请求,DAPP向区块链发起通道创建请求,通道创建请求中包括:第二终端设备的设备标识。其中,区块链作为公有链,从多个区块链节点中选举确定第一区块链节点,由第一区块链节点接收DAPP发起的通道创建请求。
S12:根据多个区块链节点的通道创建能力,从多个区块链节点中确定第二区块链节点。
本实施例中,第一区块链节点调用智能公约,智能公约具有节点管理功能和通信通道管理功能,节点管理功能用于对区块链中的区块链节点进行管理,以确定区块链中各区块链节点的通道创建能力;通信通道管理功能用于针对第一终端设备的通道创建请求,为第一终端设备分配可以提供通信通道的区块链节点。
在一些实施例中,第一区块链节点接收到通道创建请求后,根据智能合约的通信通道管理功能,获取区块链中多个区块链节点的通道创建能力,判断多个区块链节点中是否存在可以为第一终端设备创建通信通道的区块链节点,若存在至少一个可以为第一终端设备创建通信通道的区块链节点,则可以根据预设选择规则从至少一个区块链节点中选择一个区块链节点作为第二区块链节点。
在一种可能的实现方式中,若智能合约确定多个区块链节点均不能创建通信通道,智能合约通过第一区块链节点向第一终端设备的DAPP发送通道创建失败事件,第一终端设备的DAPP监听到通道创建失败事件后,提示用户区块链节点的通信资源不足,用户可以在等待一段时间之后重新通过第一终端设备的DAPP发送交易请求。
S13:广播通道创建事件,通道创建事件包括:第二终端设备的设备标识、第二区块链节点的节点标识和通道标识,以使得第二终端设备生成通道创建事件对应的响应消息。
本实施例中,智能合约确定第二区块链节点后,广播发布通道创建事件,在通道创建事件中携带第二终端设备的设备标识、第二区块链节点的节点标识和预先分配的通道标识。
多个终端设备的DAPP实时监听通道创建事件,当监听到智能合约广播发布的通道创建事件后,判断通道创建事件中携带的设备标识是否为自身终端设备的设备标识,其中,第二终端设备的DAPP确定通道创建事件中携带的设备标识是第二终端设备的设备标识后,生成通知消息,以通过第二终端设备指示用户其他终端设备请求与第二终端设备建立通信连接,用户接收到该通知消息后,可以自行判断是否同意与第一终端设备建立通信连接,若同意,则第二终端设备的DAPP针对该通道创建事件生成响应消息,并将该响应消息发送给智能合约。
在一些实施例中,第二终端设备的DAPP可以通过智能合约的合约接口向智能合约发送响应消息。
S14:若响应消息指示第二终端设备同意创建通信通道,广播通道创建响应事件,以使得第二区块链节点根据通道创建事件和通道创建响应事件创建通信通道。
本实施例中,智能合约接收到第二终端设备发送的响应消息,根据响应消息确定第二终端设备同意与第一终端设备建立通信连接后,智能合约再广播发布通道创建响应事件。
区块链中的多个区块链节点实时监听通道创建事件,当监听到智能合约广播发布的通道创建事件后,判断通道创建事件中携带的节点标识是否为自身区块链节点的节点标识,其中,第二区块链节点确定通道创建事件中携带的节点标识是第二区块链节点的节点标识后,再结合通道创建响应事件确定第二终端设备同意与第一终端设备建立通信连接,根据通道标识创建通信通道,该通信通道为第一终端设备、第二区块链节点和第二终端设备三者之间的通信通道。
在一些实施例中,若响应消息指示第二终端设备不同意与第一终端设备建立通信连接,则智能合约向第一终端设备发送通道创建失败事件。
S15:确定第二区块链节点成功创建通信通道,广播通道创建成功事件,通道创建成功事件包括:通道标识,以使得第一终端设备通过通信通道向第二终端设备发送通信消息。
本实施例中,第二区块链节点成功创建通道后,向智能合约发送通道创建成功的响应消息,智能合约根据通道创建成功的响应消息,确定第二区块链节点成功创建通信通道后,广播发布通道创建成功事件,第一终端设备的DAPP监听到通道创建成功事件后,将交易请求中的通信消息通过通信通道发送给第二区块链节点,由第二区块链节点通过通信通道将通信消息发送给第二终端设备的DAPP。
上述实施例提供的区块链通信方法,由区块链中的第一区块链节点通过智能合约根据各个区块链节点的通道创建能力,选择第二区块链节点创建通信通道,以使得第一终端设备和第二终端设备通过第二区块链节点的通信通道进行通信,使得第一终端设备和第二终端设备之间无需每次发送通信消息时都要经过智能合约的验证并支付gas费用,可以有效降低降低通信时间延时,提高用户体验。
在一种可能的实现方式中,在上述根据多个区块链节点的通道创建能力,从多个区块链节点中确定第二区块链节点之前,该方法还可以包括:
接收多个区块链节点的注册请求,注册请求中包括:各区块链节点的节点标识和各区块链节点的通道创建能力。
本实施例中,在通过区块链为终端设备提供通道创建服务之前,区块链需要确定各个区块链节点的通道创建能力,通过区块链中智能合约提供的节点管理功能,将各区块链节点注册到智能合约中,使智能合约确定各区块链节点的通道创建能力。
上述实施例提供的区块链通信方法,通过接收多个区块链节点的注册请求,以确定各个区块链节点的通道创建能力,从而保证可以根据各个区块链节点的通道创建能力为终端设备提供可以创建通信通道的第二区块链节点,通过第二区块链节点创建的通信通道实现第一终端设备和第二终端设备之间的通信,使得第一终端设备和第二终端设备之间无需每次发送通信消息时都要经过智能合约的验证并支付gas费用,可以有效降低降低通信时间延时,提高用户体验。
在一种可能的实现方式中,上述根据多个区块链节点的通道创建能力,从多个区块链节点中确定第二区块链节点,可以包括:
根据多个区块链节点的可创建通道数量和已创建通道数量,从多个区块链节点中确定第二区块链节点。
本实施例中,区块链节点的通道创建能力为:区块链节点可支持建立的通信通道数量,已创建通道数量为区块链节点针对其他终端设备的DAPP已经创建的通信通道的数量,智能合约根据多个区块链节点的可创建通道数量和已创建通道数量,根据预设选择规则从至少一个区块链节点中选择一个区块链节点作为第二区块链节点。
在一些实施例中,上述根据多个区块链节点的可创建通道数量和已创建通道数量,从多个区块链节点中确定第二区块链节点,可以包括:
根据可创建通道数量和已创建通道数量,从多个区块链节点中确定已创建通道数量未超过可创建通道数量,且已创建通道数量最少的区块链节点为第二区块链节点。
本实施例中,每个区块链节点的通信资源有限,可提供的通道创建的数量也有限,因此,在为终端设备的DAPP提供通信通道时,需要判断区块链节点是否还有可供提供的通信通道,即判断各个区块链节点的已创建通道数量是否超过可创建通道数量,从多个区块链节点中确定已创建通道数量未超过可创建通道数量的至少一个区块链节点,之后,为了保证各个区块链节点的通信资源均衡分配,从至少一个区块链节点中选择已创建通道数量最少的区块链节点作为第二区块链节点。
上述实施例提供的区块链通信方法,根据区块链节点的可创建通道数量和已创建通道数据,从多个区块链节点中选择已创建通道数量最少的第二区块链节点,由第二区块链节点为第一终端设备提供通道创建服务,以使得第一终端设备通过第二区块链节点创建的通信通道与第二终端设备进行通信,使得第一终端设备和第二终端设备之间无需每次发送通信消息时都要经过智能合约的验证并支付gas费用,可以有效降低降低通信时间延时,提高用户体验。
请参考图3,为本申请实施例提供的区块链通信方法的流程示意图二,如图3所示,该方法还可以包括:
S21:接收第一终端设备发送的第一终端设备的加密密钥,加密密钥为第一终端设备根据第二终端设备的公钥对消息密钥进行加密得到的。
本实施例中,第一终端设备和第二终端设备之间直接通过第二区块链节点创建的通信通道进行通信,由于无需经过智能合约的验证,为保证通信的安全,需要由第一终端设备的DAPP对通信消息进行加密,而第二终端设备为了读取通信消息,需要对加密后的通信消息进行解密。
在一些实施例中,对称加密算法是指消息发送端和消息接收端使用相同的密钥分别对消息进行加密和解密,而非对称加密算法则是指消息发送端和消息接收端使用不同的密钥分别对消息进行加密和解密,由于非对称加密算法只能对简单的字符串进行加密,而无法对文本内容进行加密,因此,本实施例采用对称加密算法,使用消息密钥对通信消息进行加密,得到密文消息,并采用非对称加密算法对消息密钥进行加密,得到加密密钥。
在一种可能的实现方式中,由于第一终端设备需要和第二终端设备进行通信,因此,可以采用第二终端设备的公钥对消息密钥进行加密,得到加密密钥,以便只有第二终端设备使用公钥对应的私钥对加密密钥进行解密得到消息密钥,从而利用解密得到的消息密钥对密文消息进行解密,得到通信消息;而其他终端设备即使接收到密文消息,由于没有与公钥对应的私钥,无法对加密密钥进行解密,也就无法得到用于对密文消息进行解密的消息密钥。
第一终端设备的DAPP对消息密钥进行加密得到加密密钥后,将加密密钥发送给区块链,其中,第一终端设备可以在向第一区块链节点发送通道创建请求时,将加密密钥携带在通道创建请求中,或者,也可以单独将加密秘钥发送给第一区块链节点。
S22:广播加密密钥,以使得第二终端设备获取加密密钥。
本实施例中,第一区块链节点接收到加密密钥后,对加密密钥进行广播,使多个终端设备接收到加密密钥,其中,由于加密密钥是使用第二终端设备的公钥对消息密钥进行加密得到的,因此,只有第二终端设备的私钥可以对加密密钥进行解密,得到消息密钥,而其他终端设备即使监听到加密密钥,也无法进行解密得到消息密钥。
上述实施例提供的区块链通信方法,通过将第一终端设备对通信消息进行加密的加密密钥广播发送给第二终端设备,以便第二终端设备使用私钥加密密钥进行解密,得到消息密钥,用消息密钥对密文消息进行解密,保证第一终端设备和第二终端设备使用通信通道进行通信的安全性。
请参考图4,为本申请实施例提供的区块链通信方法的流程示意图三,如图4所示,该方法还可以包括:
S31:接收第二区块链节点发送的通道释放通知。
其中,通道释放通知为第二区块链节点在预设时间内未接收到第一终端设备和第二终端设备针对连接检测消息生成的响应消息时生成的。
本实施例中,为了保证通信通道正常使用,不浪费第二区块链节点的通信资源,第二区块链节点需要不断与第一终端设备和第二终端设备进行心跳检测,心跳检测用于检测通信多方之间是否保持连接,第二区块链节点通过向第一终端设备和第二终端设备发送连接检测消息,并判断是否在预设时间内接收到第一终端设备和第二终端设备针对连接检测消息发送的响应消息,以判断第二区块链节点与第一终端设备和第二终端设备是否保持心跳。
若第二区块链节点在预设时间内未接收到第一终端设备和第二终端设备针对连接检测消息发送的响应消息,则确定该通信通道未正常使用,第二区块链节点将该通信通道进行释放,并以交易的形式向区块链发送通道释放通知,以通知智能合约该通道标识对应的通信通道已被释放。
S32:对通道释放通知进行校验。
本实施例中,智能合约接收到通道释放通知后,对通道释放通知进行校验,其中,校验内容包括:判断该通信通道是否已经被成功释放,以及判断该通道释放通知所释放的通信通道是否为第二区块链节点的通信通道,当确定通信通道已经被成功释放,且该通道释放通知所释放的通信通道为第二区块链节点的通信通道,确定通道释放通知校验通过。
S33:若校验通过,则广播通道释放事件,以使得第一终端设备和第二终端设备确定通道标识对应的通信通道被释放。
本实施例中,若智能合约确定通道释放通知被校验通过,则广播发布通道释放事件,通道释放事件包括:通道标识,第一终端设备和第二终端设备接收到通道释放事件后,确定该通道标识对应的通信通道被释放,无法再通过该通信通道发送通信消息,在此情况下,若第一终端设备和第二终端设备之间要进行通信,则需要通过智能合约重新创建通信通道。
上述实施例提供的区块链通信方法,通过对第二区块链节点发送的通道释放通知校验通过后,通知第一终端设备和第二终端设备通信通道被释放,避免区块链节点的通信资源被浪费。
在上述实施例的基础上,本申请实施例还提供一种应用于第二区块链节点的区块链通信方法。
请参考图5,为本申请实施例提供的区块链通信方法的流程示意图四,如图5所示,该方法可以包括:
S41:接收第一区块链节点广播的通道创建事件和通道创建响应事件。
其中,通道创建事件为第一区块链节点根据第一终端设备发送的通道创建请求和多个区块链节点的通道创建能力生成的,通道创建响应事件为第一区块链节点根据第二终端设备针对通道创建事件发送的响应消息生成的,通道创建事件包括:第二终端设备的设备标识、第二区块链节点的节点标识和通道标识。
本实施例中,第一区块链节点接收第一终端设备发送的通道创建请求,第一区块链节点调用智能节约,以获取区块链中多个区块链节点的通道创建能力,并根据多个区块链节点的通道创建能力从多个区块链节点中选择第二区块链节点,并广播发布通道创建事件。
多个终端设备监听到通道创建事件后,根据通道创建事件中携带的设备标识,确定该设备标识是否为自身的设备标识,其中,多个终端设备中的第二终端设备确定通道创建事件中的设备标识是自身的设备标识后,向用户发送通知消息,该通知消息用于指示用户第一终端设备请求与第二终端设备建立通信连接,用户接收到该通知消息后,可以自行判断是否同意与第一终端设备建立通信连接,若同意,则第二终端设备的DAPP针对该通道创建事件生成响应消息,并将该响应消息发送给智能合约。
智能合约接收到第二终端设备发送的响应消息,根据响应消息确定第二终端设备同意与第一终端设备建立通信连接后,智能合约再广播发布通道创建响应事件。
S42:判断通道创建事件中的节点标识是否为自身的节点标识,若是,根据通道标识创建通信通道。
本实施例中,区块链中的多个区块链节点实时监听通道创建事件,当监听到智能合约广播发布的通道创建事件后,判断通道创建事件中携带的节点标识是否为自身区块链节点的节点标识,其中,第二区块链节点确定通道创建事件中携带的节点标识是第二区块链节点的节点标识后,再结合通道创建响应事件确定第二终端设备同意与第一终端设备建立通信连接,根据通道标识创建通信通道,该通信通道为第一终端设备、第二区块链节点和第二终端设备三者之间的通信通道。
S43:向第一区块链节点通知通信通道创建成功,使第一区块链节点向第一终端设备发送通信通道的通道标识,以使得第一终端设备通过通道标识对应的通信通道向第二终端设备发送通信消息。
本实施例中,第二区块链节点成功创建通信通道后,向智能合约发送通道创建成功的响应消息,智能合约根据通道创建成功的响应消息,确定第二区块链节点成功创建通信通道后,广播发布通道创建成功事件,第一终端设备的DAPP监听到通道创建成功事件后,将交易请求中的通信消息通过通信通道发送给第二区块链节点,由第二区块链节点通过通信通道将通信消息发送给第二终端设备的DAPP。
上述实施例提供的区块链通信方法,由区块链中的第一区块链节点通过智能合约根据各个区块链节点的通道创建能力,选择第二区块链节点创建通信通道,以使得第一终端设备和第二终端设备通过第二区块链节点的通信通道进行通信,使得第一终端设备和第二终端设备之间无需每次发送通信消息时都要经过智能合约的验证并支付gas费用,可以有效降低降低通信时间延时,提高用户体验。
请参考图6,为本申请实施例提供的区块链通信方法的流程示意图五,如图6所示,该方法还可以包括:
S51:接收第一终端设备发送的密文消息,密文消息为第一终端设备根据消息密钥对通信消息进行加密得到的消息。
本实施例中,第二区块链节点成功向第一终端设备和第二终端设备提供通信通道后,使第一终端设备和第二终端设备可以通过该通信通道进行通信,通信过程中,第一终端设备的DAPP对通信消息进行加密得到密文消息,将密文消息通过通信通道发送至第二区块链节点。
其中,第一终端设备的DAPP采用预设的消息密钥对通信消息进行加密,得到密文消息,并利用第二终端设备的公钥对消息密钥进行加密,得到加密密钥,加密密钥可以在第一终端设备的DAPP向第一区块链节点发送通道创建请求时发送,由第一区块链节点将加密密钥通过通道创建事件将加密密钥广播给第二终端设备。
S52:通过通信通道,向第二终端设备发送密文消息,以使得第二终端设备根据公钥对预先获取的第一终端设备的加密密钥进行解密得到消息密钥后,根据消息密钥对密文消息进行解密。
本实施例中,第二区块链节点通过通信通道,将密文消息发送给第二终端设备,第二终端设备根据公钥对应的私钥对第一终端设备预先发送的加密密钥进行解密,得到消息密钥,在接收到密文消息后,使用消息密钥对密文消息进行解密,得到通信消息。
其中,由于第一终端设备是利用第二终端设备的公钥对消息密钥进行加密得到加密密钥的,因此,在多个终端设备中,只有第二终端设备可以使用私钥对加密密钥进行解密得到对密文消息进行解密的消息密钥,其他终端设备无法对加密密钥进行解密。
上述实施例提供的区块链通信方法,第二区块链节点通过通信通道将第一终端设备加密的密文消息发送给第二终端设备,以便第二终端设备使用私钥加密密钥进行解密,得到消息密钥,用消息密钥对密文消息进行解密,保证第一终端设备和第二终端设备使用通信通道进行通信的安全性。
请参考图7,为本申请实施例提供的区块链通信方法的流程示意图六,如图7所示,该方法还可以包括:
S61:向第一终端设备和第二终端设备发送连接检测消息。
本实施例中,为了保证通信通道正常使用,不浪费第二区块链节点的通信资源,第二区块链节点需要不断与第一终端设备和第二终端设备进行心跳检测,心跳检测用于检测通信多方之间是否保持连接。
第二区块链节点通过向第一终端设备和第二终端设备发送连接检测消息,并判断是否在预设时间内接收到第一终端设备和第二终端设备针对连接检测消息发送的响应消息,以判断第二区块链节点与第一终端设备和第二终端设备是否保持心跳。
S62:若在预设时间内未接收到第一终端设备和/或第二终端设备发送的响应消息,释放通信通道。
本实施例中,第二区块链节点检测是否与第一终端设备和第二终端设备保持心跳的规则是:定时向第一终端设备和第二终端设备发送连接检测消息,检测在预设时间内是否接收到第一终端设备和第二终端设备发送的响应消息,若未接收到,则确定通信通道未正常使用,第二区块链节点则释放该通信通道。
在一些实施例中,可以由第二区块链节点向第一终端设备和第二终端设备连续发送多次连接检测消息,若多次连接检测消息均为接收到对应的响应消息,则确定需要释放该通信通道。
S63:向第一区块链节点发送通道释放通知,以使得第一区块链节点在对通道释放通知校验通过的情况下广播通道释放事件,以使得第一终端设备和第二终端设备确定通道标识对应的通信通道被释放。
本实施例中,第二区块链节点释放通信通道后,向第一区块链节点发送通道释放通知,第一区块链节点上的智能合约对通道释放通知进行校验,若通道释放通知校验通过,则由第一区块链节点广播发布通道释放事件,第一终端设备和第二终端设备接收到通道释放事件后,确定该通信通道被释放,无法再通过该通信通道发送通信消息。
上述实施例提供的区块链通信方法,第二区块链节点通过判断与第一终端设备和第二终端设备之间是否还保持连接,以确定是否需要释放通信通道,在确定需要释放通信通道时释放通信通道,并向第一区块链节点发送通道释放通知,以通知第一终端设备和第二终端设备通信通道被释放,避免区块链节点的通信资源被浪费。
基于上述区块链通信方法的实施例,本申请实施例还提供一种区块链通信装置,应用于区块链上的多个区块链节点中的第一区块链节点。请参考图8,为本申请实施例提供的区块链通信装置的结构示意图一,如图8所示,该装置包括:
请求接收模块11,用于接收第一终端设备发送的通道创建请求,通道创建请求中包括:第二终端设备的设备标识;
节点确定模块12,用于根据多个区块链节点的通道创建能力,从多个区块链节点中确定第二区块链节点;
创建事件广播模块13,用于广播通道创建事件,通道创建事件包括:第二终端设备的设备标识、第二区块链节点的节点标识和通道标识,以使得第二终端设备生成通道创建事件对应的响应消息;
响应事件广播模块14,用于若响应消息指示第二终端设备同意创建通信通道,广播通道创建响应事件,以使得第二区块链节点根据通道创建事件和通道创建响应事件创建通信通道;
通道标识发送模块15,用于确定第二区块链节点成功创建通信通道,广播通道创建成功事件,通道创建成功事件包括:通道标识,以使得第一终端设备通过通信通道向第二终端设备发送通信消息。
上述实施例提供的区块链通信装置,由区块链中的第一区块链节点通过智能合约根据各个区块链节点的通道创建能力,选择第二区块链节点创建通信通道,以使得第一终端设备和第二终端设备通过第二区块链节点的通信通道进行通信,使得第一终端设备和第二终端设备之间无需每次发送通信消息时都要经过智能合约的验证并支付gas费用,可以有效降低降低通信时间延时,提高用户体验。
可选的,该装置还包括:
节点注册模块,用于接收多个区块链节点的注册请求,注册请求中包括:各区块链节点的节点标识和各区块链节点的通道创建能力。
上述实施例提供的区块链通信装置,通过接收多个区块链节点的注册请求,以确定各个区块链节点的通道创建能力,从而保证可以根据各个区块链节点的通道创建能力为终端设备提供可以创建通信通道的第二区块链节点,通过第二区块链节点创建的通信通道实现第一终端设备和第二终端设备之间的通信,使得第一终端设备和第二终端设备之间无需每次发送通信消息时都要经过智能合约的验证并支付gas费用,可以有效降低降低通信时间延时,提高用户体验。
在一种可能的实现方式中,节点确定模块,具体用于根据多个区块链节点的可创建通道数量和已创建通道数量,从多个区块链节点中确定第二区块链节点。
在一些实施例中,节点确定模块,具体用于根据可创建通道数量和已创建通道数量,从多个区块链节点中确定已创建通道数量未超过可创建通道数量,且已创建通道数量最少的区块链节点为第二区块链节点。
上述实施例提供的区块链通信装置,根据区块链节点的可创建通道数量和已创建通道数据,从多个区块链节点中选择已创建通道数量最少的第二区块链节点,由第二区块链节点为第一终端设备提供通道创建服务,以使得第一终端设备通过第二区块链节点创建的通信通道与第二终端设备进行通信,使得第一终端设备和第二终端设备之间无需每次发送通信消息时都要经过智能合约的验证并支付gas费用,可以有效降低降低通信时间延时,提高用户体验。
可选的,该装置还包括:
密钥接收模块,用于接收第一终端设备发送的第一终端设备的加密密钥,加密密钥为第一终端设备根据第二终端设备的公钥对消息密钥进行加密得到的;
密钥广播模块,用于广播加密密钥,以使得第二终端设备获取加密密钥。
上述实施例提供的区块链通信装置,通过将第一终端设备对通信消息进行加密的加密密钥广播发送给第二终端设备,以便第二终端设备使用私钥加密密钥进行解密,得到消息密钥,用消息密钥对密文消息进行解密,保证第一终端设备和第二终端设备使用通信通道进行通信的安全性。
可选的,该装置还包括:
释放通知接收模块,用于接收第二区块链节点发送的通道释放通知,其中,通道释放通知为第二区块链节点在预设时间内未接收到第一终端设备和第二终端设备针对连接检测消息生成的响应消息时生成的;
释放通知校验模块,用于对通道释放通知进行校验;
释放事件广播模块,用于若校验通过,则广播通道释放事件,以使得第一终端设备和第二终端设备确定通道标识对应的通信通道被释放。
上述实施例提供的区块链通信装置,通过对第二区块链节点发送的通道释放通知校验通过后,通知第一终端设备和第二终端设备通信通道被释放,避免区块链节点的通信资源被浪费。
基于上述区块链通信方法的实施例,本申请实施例还提供一种区块链通信装置,应用于区块链上的多个区块链节点中的第二区块链节点。请参考图9,为本申请实施例提供的区块链通信装置的结构示意图二,如图9所示,该装置包括:
事件接收模块21,用于接收第一区块链节点广播的通道创建事件和通道创建响应事件,通道创建事件为第一区块链节点根据第一终端设备发送的通道创建请求和多个区块链节点的通道创建能力生成的,通道创建响应事件是根据第二终端设备针对通道创建事件发送的响应消息生成的,通道创建事件包括:第二终端设备的设备标识、第二区块链节点的节点标识和通道标识;
节点标识判断模块22,用于判断通道创建事件中的节点标识是否为自身的节点标识,若是,根据通道标识创建通信通道;
响应消息发送模块23,用于向第一区块链节点发送通道创建成功的响应消息,使第一区块链节点向第一终端设备发送通信通道的通道标识,以使得第一终端设备通过通道标识对应的通信通道向第二终端设备发送通信消息。
上述实施例提供的区块链通信装置,由区块链中的第一区块链节点通过智能合约根据各个区块链节点的通道创建能力,选择第二区块链节点创建通信通道,以使得第一终端设备和第二终端设备通过第二区块链节点的通信通道进行通信,使得第一终端设备和第二终端设备之间无需每次发送通信消息时都要经过智能合约的验证并支付gas费用,可以有效降低降低通信时间延时,提高用户体验。
可选的,该装置还包括:
密文消息接收模块,用于接收第一终端设备发送的密文消息,密文消息为第一终端设备根据消息密钥对通信消息进行加密得到的消息;
密文消息发送模块,用于通过通信通道,向第二终端设备发送密文消息,以使得第二终端设备根据公钥对预先获取的第一终端设备的加密密钥进行解密得到消息密钥后,根据消息密钥对密文消息进行解密。
上述实施例提供的区块链通信装置,第二区块链节点通过通信通道将第一终端设备加密的密文消息发送给第二终端设备,以便第二终端设备使用私钥加密密钥进行解密,得到消息密钥,用消息密钥对密文消息进行解密,保证第一终端设备和第二终端设备使用通信通道进行通信的安全性。
可选的,该装置还包括:
检测消息发送模块,用于向第一终端设备和第二终端设备发送连接检测消息;
通道释放模块,用于若在预设时间内未接收到第一终端设备和/或第二终端设备发送的响应消息,释放通信通道;
释放通知发送模块,用于向第一区块链节点发送通道释放通知,以使得第一区块链节点在对通道释放通知校验通过的情况下广播通道释放事件,以使得第一终端设备和第二终端设备确定通道标识对应的通信通道被释放。
上述实施例提供的区块链通信装置,第二区块链节点通过判断与第一终端设备和第二终端设备之间是否还保持连接,以确定是否需要释放通信通道,在确定需要释放通信通道时释放通信通道,并向第一区块链节点发送通道释放通知,以通知第一终端设备和第二终端设备通信通道被释放,避免区块链节点的通信资源被浪费。
上述装置用于执行前述实施例提供的方法,其实现原理和技术效果类似,在此不再赘述。
以上这些模块可以是被配置成实施以上方法的一个或多个集成电路,例如:一个或多个特定集成电路(Application Specific Integrated Circuit,简称ASIC),或,一个或多个微处理器,或,一个或者多个现场可编程门阵列(Field Programmable Gate Array,简称FPGA)等。再如,当以上某个模块通过处理元件调度程序代码的形式实现时,该处理元件可以是通用处理器,例如中央处理器(Central Processing Unit,简称CPU)或其它可以调用程序代码的处理器。再如,这些模块可以集成在一起,以片上系统(system-on-a-chip,简称SOC)的形式实现。
请参考图10,为本申请实施例提供的计算机设备的示意图,如图10所示,该计算机设备100包括:处理器101、存储介质102和总线,存储介质102存储有处理器101可执行的程序指令,当计算机设备100运行时,处理器101与存储介质102之间通过总线通信,处理器101执行程序指令,以执行应用于区块链中第一区块链节点的区块链通信方法的步骤,或者,执行应用于区块链中第二区块链节点的区块链通信方法的步骤。
具体的,处理器执行上述应用于第一区块链节点的区块链通信方法的步骤包括:
接收第一终端设备发送的通道创建请求,通道创建请求中包括:第二终端设备的设备标识;根据多个区块链节点的通道创建能力,从多个区块链节点中确定第二区块链节点;广播通道创建事件,通道创建事件包括:第二终端设备的设备标识、第二区块链节点的节点标识和通道标识,以使得第二终端设备生成通道创建事件对应的响应消息;若响应消息指示第二终端设备同意创建通信通道,广播通道创建响应事件,以使得第二区块链节点根据通道创建事件和通道创建响应事件创建通信通道;确定第二区块链节点成功创建通信通道,广播通道创建成功事件,通道创建成功事件包括:通道标识,以使得第一终端设备通过通信通道向第二终端设备发送通信消息。
上述实施例中处理器执行的区块链通信方法,由区块链中的第一区块链节点通过智能合约根据各个区块链节点的通道创建能力,选择第二区块链节点创建通信通道,以使得第一终端设备和第二终端设备通过第二区块链节点的通信通道进行通信,使得第一终端设备和第二终端设备之间无需每次发送通信消息时都要经过智能合约的验证并支付gas费用,可以有效降低降低通信时间延时,提高用户体验。
在一种可能的实现方式中,处理器在执行上述根据多个区块链节点的通道创建能力,从多个区块链节点中确定第二区块链节点之前,还执行如下步骤:
接收多个区块链节点的注册请求,注册请求中包括:各区块链节点的节点标识和各区块链节点的通道创建能力。
上述实施例中处理器执行的区块链通信方法,通过接收多个区块链节点的注册请求,以确定各个区块链节点的通道创建能力,从而保证可以根据各个区块链节点的通道创建能力为终端设备提供可以创建通信通道的第二区块链节点,通过第二区块链节点创建的通信通道实现第一终端设备和第二终端设备之间的通信,使得第一终端设备和第二终端设备之间无需每次发送通信消息时都要经过智能合约的验证并支付gas费用,可以有效降低降低通信时间延时,提高用户体验。
在一种可能的实现方式中,处理器执行上述根据多个区块链节点的通道创建能力,从多个区块链节点中确定第二区块链节点的步骤,可以包括:
根据多个区块链节点的可创建通道数量和已创建通道数量,从多个区块链节点中确定第二区块链节点。
在一些实施例中,处理器执行上述根据多个区块链节点的可创建通道数量和已创建通道数量,从多个区块链节点中确定第二区块链节点的步骤,可以包括:
根据可创建通道数量和已创建通道数量,从多个区块链节点中确定已创建通道数量未超过可创建通道数量,且已创建通道数量最少的区块链节点为第二区块链节点。
上述实施例中处理器执行的区块链通信方法,根据区块链节点的可创建通道数量和已创建通道数据,从多个区块链节点中选择已创建通道数量最少的第二区块链节点,由第二区块链节点为第一终端设备提供通道创建服务,以使得第一终端设备通过第二区块链节点创建的通信通道与第二终端设备进行通信,使得第一终端设备和第二终端设备之间无需每次发送通信消息时都要经过智能合约的验证并支付gas费用,可以有效降低降低通信时间延时,提高用户体验。
在一种可能的实现方式中,处理器执行上述区块链通信方法的步骤还可以包括:
接收第一终端设备发送的第一终端设备的加密密钥,加密密钥为第一终端设备根据第二终端设备的公钥对消息密钥进行加密得到的;广播加密密钥,以使得第二终端设备获取加密密钥。
上述实施例中处理器执行的区块链通信方法,通过将第一终端设备对通信消息进行加密的加密密钥广播发送给第二终端设备,以便第二终端设备使用私钥加密密钥进行解密,得到消息密钥,用消息密钥对密文消息进行解密,保证第一终端设备和第二终端设备使用通信通道进行通信的安全性。
在一种可能的实现方式中,处理器执行上述区块链通信方法的步骤还可以包括:
接收第二区块链节点发送的通道释放通知;对通道释放通知进行校验;若校验通过,则广播通道释放事件,以使得第一终端设备和第二终端设备确定通道标识对应的通信通道被释放。
上述实施例中处理器执行的区块链通信方法,通过对第二区块链节点发送的通道释放通知校验通过后,通知第一终端设备和第二终端设备通信通道被释放,避免区块链节点的通信资源被浪费。
处理器执行上述应用于第二区块链节点的区块链通信方法的步骤包括:
接收第一区块链节点广播的通道创建事件和通道创建响应事件;判断通道创建事件中的节点标识是否为自身的节点标识,若是,根据通道标识创建通信通道;向第一区块链节点通知通信通道创建成功,使第一区块链节点向第一终端设备发送通信通道的通道标识,以使得第一终端设备通过通道标识对应的通信通道向第二终端设备发送通信消息。
上述实施例中处理器执行的区块链通信方法,由区块链中的第一区块链节点通过智能合约根据各个区块链节点的通道创建能力,选择第二区块链节点创建通信通道,以使得第一终端设备和第二终端设备通过第二区块链节点的通信通道进行通信,使得第一终端设备和第二终端设备之间无需每次发送通信消息时都要经过智能合约的验证并支付gas费用,可以有效降低降低通信时间延时,提高用户体验。
在一种可能的实现方式中,处理器执行上述区块链通信方法的步骤还可以包括:
接收第一终端设备发送的密文消息,密文消息为第一终端设备根据消息密钥对通信消息进行加密得到的消息;通过通信通道,向第二终端设备发送密文消息,以使得第二终端设备根据公钥对预先获取的第一终端设备的加密密钥进行解密得到消息密钥后,根据消息密钥对密文消息进行解密。
上述实施例中处理器执行的区块链通信方法,第二区块链节点通过通信通道将第一终端设备加密的密文消息发送给第二终端设备,以便第二终端设备使用私钥加密密钥进行解密,得到消息密钥,用消息密钥对密文消息进行解密,保证第一终端设备和第二终端设备使用通信通道进行通信的安全性。
在一种可能的实现方式中,处理器执行上述区块链通信方法的步骤还可以包括:
向第一终端设备和第二终端设备发送连接检测消息;若在预设时间内未接收到第一终端设备和/或第二终端设备发送的响应消息,释放通信通道;向第一区块链节点发送通道释放通知,以使得第一区块链节点在对通道释放通知校验通过的情况下广播通道释放事件,以使得第一终端设备和第二终端设备确定通道标识对应的通信通道被释放。
上述实施例中处理器执行的区块链通信方法,第二区块链节点通过判断与第一终端设备和第二终端设备之间是否还保持连接,以确定是否需要释放通信通道,在确定需要释放通信通道时释放通信通道,并向第一区块链节点发送通道释放通知,以通知第一终端设备和第二终端设备通信通道被释放,避免区块链节点的通信资源被浪费。
可选地,本发明还提供一种计算机可读存储介质,存储介质上存储有计算机程序,计算机程序被处理器运行执行应用于区块链中第一区块链节点的区块链通信方法的步骤,或者,执行应用于区块链中第二区块链节点的区块链通信方法的步骤。
具体的,计算机程序执行上述应用于第一区块链节点的区块链通信方法的步骤包括:
接收第一终端设备发送的通道创建请求,通道创建请求中包括:第二终端设备的设备标识;根据多个区块链节点的通道创建能力,从多个区块链节点中确定第二区块链节点;广播通道创建事件,通道创建事件包括:第二终端设备的设备标识、第二区块链节点的节点标识和通道标识,以使得第二终端设备生成通道创建事件对应的响应消息;若响应消息指示第二终端设备同意创建通信通道,广播通道创建响应事件,以使得第二区块链节点根据通道创建事件和通道创建响应事件创建通信通道;确定第二区块链节点成功创建通信通道,广播通道创建成功事件,通道创建成功事件包括:通道标识,以使得第一终端设备通过通信通道向第二终端设备发送通信消息。
上述实施例中计算机程序执行的区块链通信方法,由区块链中的第一区块链节点通过智能合约根据各个区块链节点的通道创建能力,选择第二区块链节点创建通信通道,以使得第一终端设备和第二终端设备通过第二区块链节点的通信通道进行通信,使得第一终端设备和第二终端设备之间无需每次发送通信消息时都要经过智能合约的验证并支付gas费用,可以有效降低降低通信时间延时,提高用户体验。
在一种可能的实现方式中,计算机程序在执行上述根据多个区块链节点的通道创建能力,从多个区块链节点中确定第二区块链节点之前,还执行如下步骤:
接收多个区块链节点的注册请求,注册请求中包括:各区块链节点的节点标识和各区块链节点的通道创建能力。
上述实施例中计算机程序执行的区块链通信方法,通过接收多个区块链节点的注册请求,以确定各个区块链节点的通道创建能力,从而保证可以根据各个区块链节点的通道创建能力为终端设备提供可以创建通信通道的第二区块链节点,通过第二区块链节点创建的通信通道实现第一终端设备和第二终端设备之间的通信,使得第一终端设备和第二终端设备之间无需每次发送通信消息时都要经过智能合约的验证并支付gas费用,可以有效降低降低通信时间延时,提高用户体验。
在一种可能的实现方式中,计算机程序执行上述根据多个区块链节点的通道创建能力,从多个区块链节点中确定第二区块链节点的步骤,可以包括:
根据多个区块链节点的可创建通道数量和已创建通道数量,从多个区块链节点中确定第二区块链节点。
在一些实施例中,计算机程序执行上述根据多个区块链节点的可创建通道数量和已创建通道数量,从多个区块链节点中确定第二区块链节点的步骤,可以包括:
根据可创建通道数量和已创建通道数量,从多个区块链节点中确定已创建通道数量未超过可创建通道数量,且已创建通道数量最少的区块链节点为第二区块链节点。
上述实施例中计算机程序执行的区块链通信方法,根据区块链节点的可创建通道数量和已创建通道数据,从多个区块链节点中选择已创建通道数量最少的第二区块链节点,由第二区块链节点为第一终端设备提供通道创建服务,以使得第一终端设备通过第二区块链节点创建的通信通道与第二终端设备进行通信,使得第一终端设备和第二终端设备之间无需每次发送通信消息时都要经过智能合约的验证并支付gas费用,可以有效降低降低通信时间延时,提高用户体验。
在一种可能的实现方式中,计算机程序执行上述区块链通信方法的步骤还可以包括:
接收第一终端设备发送的第一终端设备的加密密钥,加密密钥为第一终端设备根据第二终端设备的公钥对消息密钥进行加密得到的;广播加密密钥,以使得第二终端设备获取加密密钥。
上述实施例中计算机程序执行的区块链通信方法,通过将第一终端设备对通信消息进行加密的加密密钥广播发送给第二终端设备,以便第二终端设备使用私钥加密密钥进行解密,得到消息密钥,用消息密钥对密文消息进行解密,保证第一终端设备和第二终端设备使用通信通道进行通信的安全性。
在一种可能的实现方式中,计算机程序执行上述区块链通信方法的步骤还可以包括:
接收第二区块链节点发送的通道释放通知;对通道释放通知进行校验;若校验通过,则广播通道释放事件,以使得第一终端设备和第二终端设备确定通道标识对应的通信通道被释放。
上述实施例中计算机程序执行的区块链通信方法,通过对第二区块链节点发送的通道释放通知校验通过后,通知第一终端设备和第二终端设备通信通道被释放,避免区块链节点的通信资源被浪费。
计算机程序执行上述应用于第二区块链节点的区块链通信方法的步骤包括:
接收第一区块链节点广播的通道创建事件和通道创建响应事件;判断通道创建事件中的节点标识是否为自身的节点标识,若是,根据通道标识创建通信通道;向第一区块链节点通知通信通道创建成功,使第一区块链节点向第一终端设备发送通信通道的通道标识,以使得第一终端设备通过通道标识对应的通信通道向第二终端设备发送通信消息。
上述实施例中计算机程序执行的区块链通信方法,由区块链中的第一区块链节点通过智能合约根据各个区块链节点的通道创建能力,选择第二区块链节点创建通信通道,以使得第一终端设备和第二终端设备通过第二区块链节点的通信通道进行通信,使得第一终端设备和第二终端设备之间无需每次发送通信消息时都要经过智能合约的验证并支付gas费用,可以有效降低降低通信时间延时,提高用户体验。
在一种可能的实现方式中,计算机程序执行上述区块链通信方法的步骤还可以包括:
接收第一终端设备发送的密文消息,密文消息为第一终端设备根据消息密钥对通信消息进行加密得到的消息;通过通信通道,向第二终端设备发送密文消息,以使得第二终端设备根据公钥对预先获取的第一终端设备的加密密钥进行解密得到消息密钥后,根据消息密钥对密文消息进行解密。
上述实施例中计算机程序执行的区块链通信方法,第二区块链节点通过通信通道将第一终端设备加密的密文消息发送给第二终端设备,以便第二终端设备使用私钥加密密钥进行解密,得到消息密钥,用消息密钥对密文消息进行解密,保证第一终端设备和第二终端设备使用通信通道进行通信的安全性。
在一种可能的实现方式中,计算机程序执行上述区块链通信方法的步骤还可以包括:
向第一终端设备和第二终端设备发送连接检测消息;若在预设时间内未接收到第一终端设备和/或第二终端设备发送的响应消息,释放通信通道;向第一区块链节点发送通道释放通知,以使得第一区块链节点在对通道释放通知校验通过的情况下广播通道释放事件,以使得第一终端设备和第二终端设备确定通道标识对应的通信通道被释放。
上述实施例中计算机程序执行的区块链通信方法,第二区块链节点通过判断与第一终端设备和第二终端设备之间是否还保持连接,以确定是否需要释放通信通道,在确定需要释放通信通道时释放通信通道,并向第一区块链节点发送通道释放通知,以通知第一终端设备和第二终端设备通信通道被释放,避免区块链节点的通信资源被浪费。
在本发明所提供的几个实施例中,应该理解到,所揭露的装置和方法,可以通过其它的方式实现。例如,以上所描述的装置实施例仅仅是示意性的,例如,所述单元的划分,仅仅为一种逻辑功能划分,实际实现时可以有另外的划分方式,例如多个单元或组件可以结合或者可以集成到另一个系统,或一些特征可以忽略,或不执行。另一点,所显示或讨论的相互之间的耦合或直接耦合或通信连接可以是通过一些接口,装置或单元的间接耦合或通信连接,可以是电性,机械或其它的形式。
所述作为分离部件说明的单元可以是或者也可以不是物理上分开的,作为单元显示的部件可以是或者也可以不是物理单元,即可以位于一个地方,或者也可以分布到多个网络单元上。可以根据实际的需要选择其中的部分或者全部单元来实现本实施例方案的目的。
另外,在本发明各个实施例中的各功能单元可以集成在一个处理单元中,也可以是各个单元单独物理存在,也可以两个或两个以上单元集成在一个单元中。上述集成的单元既可以采用硬件的形式实现,也可以采用硬件加软件功能单元的形式实现。
上述以软件功能单元的形式实现的集成的单元,可以存储在一个计算机可读取存储介质中。上述软件功能单元存储在一个存储介质中,包括若干指令用以使得一台计算机设备(可以是个人计算机,服务器,或者网络设备等)或处理器(英文:processor)执行本发明各个实施例所述方法的部分步骤。而前述的存储介质包括:U盘、移动硬盘、只读存储器(英文:Read-Only Memory,简称:ROM)、随机存取存储器(英文:Random Access Memory,简称:RAM)、磁碟或者光盘等各种可以存储程序代码的介质。
上仅为本发明的具体实施方式,但本发明的保护范围并不局限于此,任何熟悉本技术领域的技术人员在本发明揭露的技术范围内,可轻易想到变化或替换,都应涵盖在本发明的保护范围之内。因此,本发明的保护范围应以权利要求的保护范围为准。
Claims (13)
1.一种区块链通信方法,其特征在于,应用于区块链上的多个区块链节点中的第一区块链节点,所述方法包括:
接收第一终端设备发送的通道创建请求,所述通道创建请求中包括:第二终端设备的设备标识;
根据所述多个区块链节点的通道创建能力,从所述多个区块链节点中确定第二区块链节点;
广播通道创建事件,所述通道创建事件包括:所述第二终端设备的设备标识、所述第二区块链节点的节点标识和通道标识,以使得所述第二终端设备生成所述通道创建事件对应的响应消息;
若所述响应消息指示所述第二终端设备同意创建通信通道,广播通道创建响应事件,以使得所述第二区块链节点根据所述通道创建事件和所述通道创建响应事件创建通信通道;
确定所述第二区块链节点成功创建所述通信通道,广播通道创建成功事件,所述通道创建成功事件包括:所述通道标识,以使得所述第一终端设备通过所述通信通道向所述第二终端设备发送通信消息。
2.如权利要求1所述的方法,其特征在于,所述根据所述多个区块链节点的通道创建能力,从所述多个区块链节点中确定第二区块链节点之前,所述方法还包括:
接收所述多个区块链节点的注册请求,所述注册请求中包括:各所述区块链节点的节点标识和各所述区块链节点的通道创建能力。
3.如权利要求1所述的方法,其特征在于,所述根据所述多个区块链节点的通道创建能力,从所述多个区块链节点中确定第二区块链节点,包括:
根据所述多个区块链节点的可创建通道数量和已创建通道数量,从所述多个区块链节点中确定所述第二区块链节点。
4.如权利要求3所述的方法,其特征在于,所述根据所述多个区块链节点的可创建通道数量和已创建通道数量,从所述多个区块链节点中确定所述第二区块链节点,包括:
根据所述可创建通道数量和所述已创建通道数量,从所述多个区块链节点中确定所述已创建通道数量未超过所述可创建通道数量,且所述已创建通道数量最少的区块链节点为所述第二区块链节点。
5.如权利要求1所述的方法,其特征在于,所述方法还包括:
接收所述第一终端设备发送的所述第一终端设备的加密密钥,所述加密密钥为所述第一终端设备根据所述第二终端设备的公钥对消息密钥进行加密得到的;
广播所述加密密钥,以使得所述第二终端设备获取所述加密密钥。
6.如权利要求1所述的方法,其特征在于,所述方法还包括:
接收所述第二区块链节点发送的通道释放通知,其中,所述通道释放通知为所述第二区块链节点在预设时间内未接收到所述第一终端设备和所述第二终端设备针对连接检测消息生成的响应消息时生成的;
对所述通道释放通知进行校验;
若校验通过,则广播通道释放事件,以使得所述第一终端设备和所述第二终端设备确定所述通道标识对应的通信通道被释放。
7.一种区块链通信方法,其特征在于,应用于区块链上的多个区块链节点中的第二区块链节点,所述方法包括:
接收第一区块链节点广播的通道创建事件和通道创建响应事件,所述通道创建事件为所述第一区块链节点根据第一终端设备发送的通道创建请求和所述多个区块链节点的通道创建能力生成的,所述通道创建响应事件为所述第一区块链节点根据第二终端设备针对所述通道创建事件发送的响应消息生成的,所述通道创建事件包括:第二终端设备的设备标识、所述第二区块链节点的节点标识和通道标识;
判断所述通道创建事件中的节点标识是否为自身的节点标识,若是,根据所述通道标识创建通信通道;
向所述第一区块链节点通知所述通信通道创建成功,使所述第一区块链节点向所述第一终端设备发送所述通信通道的通道标识,以使得所述第一终端设备通过所述通道标识对应的通信通道向所述第二终端设备发送通信消息。
8.如权利要求7所述的方法,其特征在于,所述方法还包括:
接收所述第一终端设备发送的密文消息,所述密文消息为所述第一终端设备根据消息密钥对所述通信消息进行加密得到的消息;
通过所述通信通道,向所述第二终端设备发送所述密文消息,以使得所述第二终端设备根据公钥对预先获取的所述第一终端设备的加密密钥进行解密得到所述消息密钥后,根据所述消息密钥对所述密文消息进行解密。
9.如权利要求7所述的方法,其特征在于,所述方法还包括:
向所述第一终端设备和所述第二终端设备发送连接检测消息;
若在预设时间内未接收到所述第一终端设备和/或所述第二终端设备发送的响应消息,释放所述通信通道;
向所述第一区块链节点发送通道释放通知,以使得所述第一区块链节点在对所述通道释放通知校验通过的情况下广播通道释放事件,以使得所述第一终端设备和所述第二终端设备确定所述通道标识对应的通信通道被释放。
10.一种区块链通信装置,其特征在于,应用于区块链上的多个区块链节点中的第一区块链节点,所述装置包括:
请求接收模块,用于接收第一终端设备发送的通道创建请求,所述通道创建请求中包括:第二终端设备的设备标识;
节点确定模块,用于根据所述多个区块链节点的通道创建能力,从所述多个区块链节点中确定第二区块链节点;
创建事件广播模块,用于广播通道创建事件,所述通道创建事件包括:所述第二终端设备的设备标识、所述第二区块链节点的节点标识和通道标识,以使得所述第二终端设备生成所述通道创建事件对应的响应消息;
响应事件广播模块,用于若所述响应消息指示所述第二终端设备同意创建通信通道,广播通道创建响应事件,以使得所述第二区块链节点根据所述通道创建事件和所述通道创建响应事件创建通信通道;
通道标识发送模块,用于确定所述第二区块链节点成功创建所述通信通道,广播通道创建成功事件,所述通道创建成功事件包括:所述通道标识,以使得所述第一终端设备通过所述通信通道向所述第二终端设备发送通信消息。
11.一种区块链通信装置,其特征在于,应用于区块链上的多个区块链节点中的第二区块链节点,所述装置包括:
事件接收模块,用于接收第一区块链节点广播的通道创建事件和通道创建响应事件,所述通道创建事件为所述第一区块链节点根据第一终端设备发送的通道创建请求和所述多个区块链节点的通道创建能力生成的,所述通道创建响应事件是根据第二终端设备针对所述通道创建事件发送的响应消息生成的,所述通道创建事件包括:第二终端设备的设备标识、所述第二区块链节点的节点标识和通道标识;
节点标识判断模块,用于判断所述通道创建事件中的节点标识是否为自身的节点标识,若是,根据所述通道标识创建通信通道;
响应消息发送模块,用于向所述第一区块链节点发送通道创建成功的响应消息,使所述第一区块链节点向所述第一终端设备发送所述通信通道的通道标识,以使得所述第一终端设备通过所述通道标识对应的通信通道向所述第二终端设备发送通信消息。
12.一种计算机设备,其特征在于,包括:处理器、存储介质和总线,所述存储介质存储有所述处理器可执行的程序指令,当计算机设备运行时,所述处理器与所述存储介质之间通过总线通信,所述处理器执行所述程序指令,以执行如权利要求1至6任一所述的区块链通信方法的步骤,或者,执行如权利要求7至9任一所述的区块链通信方法的步骤。
13.一种计算机可读存储介质,其特征在于,所述存储介质上存储有计算机程序,所述计算机程序被处理器运行时执行如权利要求1至6任一所述的区块链通信方法的步骤,或者,执行如权利要求7至9任一所述的区块链通信方法的步骤。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202310167002.9A CN116155973A (zh) | 2023-02-13 | 2023-02-13 | 区块链通信方法、装置、计算机设备及存储介质 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202310167002.9A CN116155973A (zh) | 2023-02-13 | 2023-02-13 | 区块链通信方法、装置、计算机设备及存储介质 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN116155973A true CN116155973A (zh) | 2023-05-23 |
Family
ID=86338861
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202310167002.9A Pending CN116155973A (zh) | 2023-02-13 | 2023-02-13 | 区块链通信方法、装置、计算机设备及存储介质 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN116155973A (zh) |
-
2023
- 2023-02-13 CN CN202310167002.9A patent/CN116155973A/zh active Pending
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN108712395B (zh) | 基于区块链的账号管理方法、装置、服务器及存储介质 | |
CN112583802B (zh) | 基于区块链的数据共享平台系统、设备以及数据共享方法 | |
WO2021197105A1 (zh) | 基于区块链的信息发布 | |
CN111383021B (zh) | 基于区块链网络的节点管理方法、装置、设备及介质 | |
CN113468602B (zh) | 一种数据检验方法、装置及设备 | |
CN112035889A (zh) | 计算外包的区块链隐私验证方法、装置及计算机设备 | |
CN112150141A (zh) | 一种区块链共识方法、装置和系统 | |
CN111556120A (zh) | 基于区块链的数据处理方法、装置、存储介质及设备 | |
CN112686668A (zh) | 联盟链跨链系统及方法 | |
CN110138744A (zh) | 更换通信号码的方法、装置、系统、计算机设备及存储介质 | |
CN111211911B (zh) | 一种协同签名方法、装置、设备及系统 | |
CN111131416A (zh) | 业务服务的提供方法和装置、存储介质、电子装置 | |
CN104917807A (zh) | 资源转移方法、装置和系统 | |
CN111880919B (zh) | 数据调度方法、系统和计算机设备 | |
CN112653556B (zh) | 一种基于token的微服务安全认证方法、装置、存储介质 | |
CN110648241B (zh) | 一种基于微服务架构的理赔处理方法及装置 | |
CN114881648A (zh) | 面向跨链资产置换场景的基于预言机的区块链互联方法和设备 | |
CN111246407B (zh) | 用于短信传输的数据加密、解密方法及装置 | |
CN101789973A (zh) | 一种构建糅合应用的方法及系统 | |
CN117118628A (zh) | 电力物联网轻量级身份认证方法、装置及电子设备 | |
CN110825797A (zh) | 数据交换方法和装置 | |
CN116155973A (zh) | 区块链通信方法、装置、计算机设备及存储介质 | |
CN114338091B (zh) | 数据传输方法、装置、电子设备及存储介质 | |
CN113497827B (zh) | 信息共享方法及设备 | |
CN113420336B (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 |