基于域名区块链的群组通信方法、区块链节点及介质与流程

文档序号:17843649发布日期:2019-06-11 21:29阅读:155来源:国知局
基于域名区块链的群组通信方法、区块链节点及介质与流程

本发明实施例涉及区块链技术领域,尤其涉及一种基于域名区块链的群组通信方法、区块链节点及介质。



背景技术:

当前的域名区块链只是可以查询某个域名对应的ip地址,构建点到点的通信或者多点到一点的通信,尚且无法实现群组通信。但是在实际应用中用户往往又存在群组通信的需求,因此如何在域名区块链的基础上实现群组通信,是当前亟需解决的技术问题。



技术实现要素:

本发明实施例提供一种基于域名区块链的群组通信方法、区块链节点及介质,用以实现基于域名区块链的群组通信。

本发明实施例第一方面提供一种基于域名区块链的群组通信方法,该方法包括:

发起节点在域名区块链上发送用于注册群组的第一广播消息,所述第一广播消息中包括所述群组所有参与节点的区块链标识和用于在所述群组中通信的客户端的信息,以使所述群组被注册到所述域名区块链上;所述群组的第一参与节点在所述域名区块链上查询到所述第一参与节点的区块链标识被包含在所述群组的参与节点的区块链标识中;所述第一参与节点从所述域名区块链上获取所述群组的客户端的信息,并根据所述客户端的信息,下载并安装所述客户端;当所述第一参与节点在所述群组中发送第二广播消息时,所述第一参与节点将所述第二广播消息发送给所述客户端,以使所述客户端获取所述群组中其他参与节点的ip地址,并根据获取到的ip地址将所述第二广播消息发送给所述群组中的其他参与节点。

在一种实施方式中,所述群组所有参与节点的区块链标识为所述发起节点从所述域名区块链上查询获得的。

在一种实施方式中,所述第一参与节点从所述域名区块链上获取所述群组的客户端的信息,并根据所述客户端的信息,下载并安装所述客户端之后,所述方法还包括:

所述第一参与节点通过所述客户端向所述发起节点发送确认加入群组的通知消息,以使所述发起节点根据所述通知消息,将所述第一参与节点在线的信息记录到所述域名区块链上。

在一种实施方式中,所述当所述第一参与节点在所述群组中发送第二广播消息时,所述第一参与节点将所述第二广播消息发送给所述客户端,以使所述客户端获取所述群组中其他参与节点的ip地址,并根据获取到的ip地址将所述第二广播消息发送给所述群组中的其他参与节点,包括:

当所述第一参与节点在所述群组中发送第二广播消息时,所述第一参与节点通过所述客户端从所述域名区块链上获取所述群组中在线的所有参与节点的ip地址,并通过所述客户端将所述第二广播消息发送给所有在线的参与节点。

在一种实施方式中,所述当所述第一参与节点在所述群组中发送第二广播消息时,所述第一参与节点将所述第二广播消息发送给所述客户端,以使所述客户端获取所述群组中其他参与节点的ip地址,并根据获取到的ip地址将所述第二广播消息发送给所述群组中的其他参与节点,包括:

当所述第一参与节点在所述群组中发送第二广播消息时,所述第一参与节点通过所述客户端从所述域名区块链上获取所述群组中所有参与节点的ip地址,并通过所述客户端将所述第二广播消息发送给所述群组中除所述第一参与节点以外的所有参与节点。

本发明实施例第二方面提供一种区块链节点,该区块链节点接入一种域名区块链,所述域名区块链还包括发起节点,所述发起节点,在域名区块链上发送用于注册群组的第一广播消息,所述第一广播消息中包括所述群组所有参与节点的区块链标识和用于在所述群组中通信的客户端的信息,以使所述群组被注册到所述域名区块链上;所述区块链节点包括处理器和存储器,所述存储器中存储有指令,当所述处理器执行所述指令时执行如下操作:

在所述域名区块链上查询到所述区块链节点的区块链标识被包含在所述群组的参与节点的区块链标识中;从所述域名区块链上获取所述群组的客户端的信息,并根据所述客户端的信息,下载并安装所述客户端;在所述区块链节点发送第二广播消息时,将所述第二广播消息发送给所述客户端,以使所述客户端获取所述群组中其他参与节点的ip地址,并根据获取到的ip地址将所述第二广播消息发送给所述群组中的其他参与节点。

在一种实施方式中,所述处理器从所述域名区块链上获取所述群组的客户端的信息,并根据所述客户端的信息,下载并安装所述客户端之后,所述处理器还执行如下操作:

通过所述客户端向所述发起节点发送确认加入群组的通知消息,以使所述发起节点根据所述通知消息,将所述区块链节点在线的信息记录到所述域名区块链上。

在一种实施方式中,所述处理器在将所述第二广播消息发送给所述客户端,以使所述客户端获取所述群组中其他参与节点的ip地址,并根据获取到的ip地址将所述第二广播消息发送给所述群组中的其他参与节点时,具体执行如下操作:

通过所述客户端从所述域名区块链上获取所述群组中在线的所有参与节点的ip地址,并通过所述客户端将所述第二广播消息发送给所有在线的参与节点。

在一种实施方式中,所述处理器在将所述第二广播消息发送给所述客户端,以使所述客户端获取所述群组中其他参与节点的ip地址,并根据获取到的ip地址将所述第二广播消息发送给所述群组中的其他参与节点时,具体执行如下操作:

通过所述客户端从所述域名区块链上获取所述群组中所有参与节点的ip地址,并通过所述客户端将所述第二广播消息发送给所述群组中除所述区块链节点以外的所有参与节点。

本发明实施例第三方面提供一种计算机可读存储介质,包括指令,当其在计算机上运行时,使得计算机执行上述第一方面所述的方法。

在本发明实施例中,发起节点通过在域名区块链上发送用于注册群组的第一广播消息,第一广播消息中包括群组所有参与节点的区块链标识和用于在群组中通信的客户端的信息,使得群组被注册到域名区块链上;当群组中的第一参与节点在域名区块链上查询到第一参与节点的区块链标识被包含在群组的参与节点的区块链标识中时,从域名区块链上获取群组的客户端的信息,并根据客户端的信息下载并安装用于在群组内通信的客户端,从而当第一参与节点在群组内发送第二广播消息时,就可以通过将第二广播消息下发送给客户端使得客户端获取群组中其他参与节点的ip地址,并根据获取到的ip地址将第二广播消息发送给群组中的其他参与节点。本发明实施例实现了基于域名区块链的群组通信,尤其是每个参与节点都可以直接将自身的消息发送给群组中的其他参与节点,而不用借助某个中心化的节点去转发消息,因而当群组规模较大时,不会出现中心化节点转发压力大的问题,也不会因为中心化节点故障而导致这个群组无法通信的问题,提高了群组通信的可靠性。

附图说明

为了更清楚地说明本发明实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动性的前提下,还可以根据这些附图获得其他的附图。

图1是本发明实施例提供的一种基于域名区块链的群组通信方法的流程图;

图2是本发明实施例提供的一种基于域名区块链的群组通信方法的流程图;

图3是本发明实施例提供的一种基于域名区块链的群组通信方法的流程图;

图4是本发明实施例提供的一种区块链节点的结构示意图。

具体实施方式

下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。

本发明的说明书和权利要求书的术语“包括”和“具有”以及他们的任何变形,意图在于覆盖不排他的包含,例如,包含了一系列步骤的过程或结构的装置不必限于清楚地列出的那些结构或步骤而是可包括没有清楚地列出的或对于这些过程或装置固有的其它步骤或结构。

图1是本发明实施例提供的一种基于域名区块链的群组通信方法的流程图,该方法适用于一种域名区块链,该域名区块链上包括群组的发起节点和参与节点,其中,发起节点建立该群组并将该群组注册到域名区块链上,参与节点为群组的成员,群组的参与节点中包括发起节点。如图1所示,该方法包括:

步骤101、发起节点在域名区块链上发送用于注册群组的第一广播消息,所述第一广播消息中包括所述群组所有参与节点的区块链标识和用于在所述群组中通信的客户端的信息,以使所述群组被注册到所述域名区块链上。

本实施例中,发起节点可以从域名区块链上获取参与自己群组的节点的区块链标识,也可以通过人机交互界面指示用户输入参与群组的节点的区块链标识。

本实施例中所称的客户端的信息中至少包括客户端的下载地址或客户端文件、以及客户端对应的哈希值。在本实施例中,客户端信息的获取方式可以设置,比如发起节点可以从自身的数据存储单元中提取获得预设的客户端信息,或者也可以通过用户界面指示用户输入客户端的信息。

可选的,本实施例中所称的第一广播消息中甚至还可以包括发起节点建立的群组的标识以使该群组与域名区块链上注册的其他群组进行区分。

进一步的,发起节点在生成第一广播消息后,为了确保消息传播的安全性,发起节点使用其自身的私钥对第一广播消息进行签名处理,并将签名处理后的广播消息发送到域名区块链上。域名区块链上的记账节点在接收到第一广播消息后对第一广播消息的私钥签名进行验证,如果验证通过,则将该群组注册到域名区块链上,注册信息中至少记录有群组中所有参与节点的区块链标识,用于在群组中通信的客户端的信息,甚至还可以包括群组的标识。

步骤102、所述群组的第一参与节点在所述域名区块链上查询到所述第一参与节点的区块链标识被包含在所述群组的参与节点的区块链标识中。

其中,本实施例中所称的第一参与节点可以是群组的任意一个参与节点,第一参与节点可以周期性的在域名区块链上查询自己所属的群组,以及自己所属群组的状态(比如,群组是否仍旧维持、是否解散,或者群组中其他参与节点是否在线等),或者在其他实施方式中,第一参与节点也可以在用户的触发下从域名区块链上查找自身所在的群组,比如在第一参与节点的用户交互界面上可以设置相应的触发按键(包括虚拟按键或实体按键),用户可通过该触发按键触发第一参与节点从域名区块链上查询自身所属的群组或者自身所属群组的状态,当然,这里仅为示例说明而不是对本发明的唯一限定。

步骤103、所述第一参与节点从所述域名区块链上获取所述群组的客户端的信息,并根据所述客户端的信息,下载并安装所述客户端。

举例来说,假设在第一广播消息中包括的客户端的信息中包括客户端的下载地址,则第一参与节点可以自动根据该下载地址下载客户端,也可以在询问用户后,根据用户的指示下载客户端。

值得说明的是,虽然在本实施例中是默认第一参与节点在查询到自身的区块链标识被包含在群组的参与节点的区块链标识中之后,直接获取群组客户端的信息,并下载客户端,然而在实际应用中也可以添加更加人性化的设置,比如,在其他实施方式中,第一参与节点也可以在查询到自身所在的群组后,先询问用户是否加入该群组,若用户指示加入该群组,则可以进一步下载并安装群组的客户端。当然,这里仅是一种实施方式而不是本发明的全部实施方式。

步骤104、当所述第一参与节点在所述群组中发送第二广播消息时,所述第一参与节点将所述第二广播消息发送给所述客户端,以使所述客户端获取所述群组中其他参与节点的ip地址,并根据获取到的ip地址将所述第二广播消息发送给所述群组中的其他参与节点。

在本实施例中,一种可能的实现方式是群组的客户端中存储有该群组参与节点的ip地址数据,当第一参与节点发送第二广播消息时,客户端根据自身存储的ip地址,将第二广播消息发送给群组的其他参与节点。其中,在这种实施方式中,一种优选的设计可以是客户端定期从域名区块链上获取并更新群组中各参与节点所对应的ip地址,以保证自身存储的ip地址的有效性。另一种优选的设计可以是客户端定期从域名区块链上获取并更新群组中在线的参与节点的ip地址,以使第一参与节点的广播消息只发送给在线的参与节点,避免资源浪费。

另一种可能的实现方式是第一参与节点在发送第二广播消息时,通过客户端从域名区块链上临时获取该群组参与节点的ip地址。从而根据获取到的ip地址将第二广播消息发送给群组中的其他参与节点。

在本实施例中,发起节点通过在域名区块链上发送用于注册群组的第一广播消息,第一广播消息中包括群组所有参与节点的区块链标识和用于在群组中通信的客户端的信息,使得群组被注册到域名区块链上;当群组中的第一参与节点在域名区块链上查询到第一参与节点的区块链标识被包含在群组的参与节点的区块链标识中时,从域名区块链上获取群组的客户端的信息,并根据客户端的信息下载并安装用于在群组内通信的客户端,从而当第一参与节点在群组内发送第二广播消息时,就可以通过将第二广播消息下发送给客户端使得客户端获取群组中其他参与节点的ip地址,并根据获取到的ip地址将第二广播消息发送给群组中的其他参与节点。本实施例实现了基于域名区块链的群组通信,尤其是每个参与节点都可以直接将自身的消息发送给群组中的其他参与节点,而不用借助某个中心化的节点去转发消息,因而当群组规模较大时,不会出现中心化节点转发压力大的问题,也不会因为中心化节点故障而导致这个群组无法通信的问题,提高了群组通信的可靠性。

下面对上述实施例进行进一步的优化和扩展。

图2是本发明实施例提供的一种基于域名区块链的群组通信方法的流程图,如图2所示,在图1实施例的基础上,该方法包括:

步骤201、发起节点在域名区块链上发送用于注册群组的第一广播消息,所述第一广播消息中包括所述群组所有参与节点的区块链标识和用于在所述群组中通信的客户端的信息,以使所述群组被注册到所述域名区块链上。

步骤202、所述群组的第一参与节点在所述域名区块链上查询到所述第一参与节点的区块链标识被包含在所述群组的参与节点的区块链标识中。

步骤203、所述第一参与节点从所述域名区块链上获取所述群组的客户端的信息,并根据所述客户端的信息,下载并安装所述客户端。

步骤204、所述第一参与节点通过所述客户端向所述发起节点发送确认加入群组的通知消息,以使所述发起节点根据所述通知消息,将所述第一参与节点在线的信息记录到所述域名区块链上。

步骤205、当所述第一参与节点在所述群组中发送第二广播消息时,所述第一参与节点通过所述客户端从所述域名区块链上获取所述群组中在线的所有参与节点的ip地址,并通过所述客户端将所述第二广播消息发送给所有在线的参与节点。

可选的,在本实施例中发起节点维护其所在群组的在线参与节点,并在群组中建立参与节点间点对点的无线网格网络(mesh)连接,也就是每两个参与节点之间都有直达连接。比如发起节点可以在周期长度内接收各参与节点加入群组的通知消息,并在周期时间到达时根据接收到的所有通知消息,将群组中在线的参与节点的信息记录在域名区块链上。或者发起节点没接收到一个参与节点发送的通知消息,就将该参与节点在线的消息记录在域名区块链上,提高域名区块链上消息的实时性。

在本实施例中,发起节点还可以对在线参与节点的ip地址进行维护,比如,发起节点可以周期性的对群组中的参与节点的ip地址进行检测,当发现有参与节点的ip地址发生变化时,实时更新域名区块链上所记录的该参与节点的ip地址。以保证域名区块链上记录的各参与节点的ip地址的有效性。

在本实施例中,发起节点通过在域名区块链上发送用于注册群组的第一广播消息,第一广播消息中包括群组所有参与节点的区块链标识和用于在群组中通信的客户端的信息,使得群组被注册到域名区块链上;当群组中的第一参与节点在域名区块链上查询到第一参与节点的区块链标识被包含在群组的参与节点的区块链标识中时,从域名区块链上获取群组的客户端的信息,并根据客户端的信息下载并安装用于在群组内通信的客户端,从而当第一参与节点在群组内发送第二广播消息时,就可以通过将第二广播消息下发送给客户端使得客户端获取群组中其他参与节点的ip地址,并根据获取到的ip地址将第二广播消息发送给群组中的其他参与节点。本实施例实现了基于域名区块链的群组通信,尤其是每个参与节点都可以直接将自身的消息发送给群组中的其他参与节点,而不用借助某个中心化的节点去转发消息,因而当群组规模较大时,不会出现中心化节点转发压力大的问题,也不会因为中心化节点故障而导致这个群组无法通信的问题,提高了群组通信的可靠性。

图3是本发明实施例提供的一种基于域名区块链的群组通信方法的流程图,如图3所示,在图1实施例的基础上,该方法包括:

步骤301、发起节点在域名区块链上发送用于注册群组的第一广播消息,所述第一广播消息中包括所述群组所有参与节点的区块链标识和用于在所述群组中通信的客户端的信息,以使所述群组被注册到所述域名区块链上。

步骤302、所述群组的第一参与节点在所述域名区块链上查询到所述第一参与节点的区块链标识被包含在所述群组的参与节点的区块链标识中。

步骤303、所述第一参与节点从所述域名区块链上获取所述群组的客户端的信息,并根据所述客户端的信息,下载并安装所述客户端。

步骤304、当所述第一参与节点在所述群组中发送第二广播消息时,所述第一参与节点通过所述客户端从所述域名区块链上获取所述群组中所有参与节点的ip地址,并通过所述客户端将所述第二广播消息发送给所述群组中除所述第一参与节点以外的所有参与节点。

本实施例的有益效果和实施方式与前述图1实施例类似在这里不再赘述。

图4是本发明实施例提供的一种区块链节点的结构示意图,该区块链节点接入一种域名区块链,该域名链还包括发起节点,所述发起节点,在域名区块链上发送用于注册群组的第一广播消息,所述第一广播消息中包括所述群组所有参与节点的区块链标识和用于在所述群组中通信的客户端的信息,以使所述群组被注册到所述域名区块链上。

如图4所示,区块链节点40包括处理器41和存储器42,所述存储器42中存储有指令,当所述处理器41执行所述指令时执行如下操作:

在所述域名区块链上查询到所述区块链节点的区块链标识被包含在所述群组的参与节点的区块链标识中;从所述域名区块链上获取所述群组的客户端的信息,并根据所述客户端的信息,下载并安装所述客户端;在所述区块链节点发送第二广播消息时,将所述第二广播消息发送给所述客户端,以使所述客户端获取所述群组中其他参与节点的ip地址,并根据获取到的ip地址将所述第二广播消息发送给所述群组中的其他参与节点。

在一种实施方式中,所述处理器41从所述域名区块链上获取所述群组的客户端的信息,并根据所述客户端的信息,下载并安装所述客户端之后,所述处理器41还执行如下操作:

通过所述客户端向所述发起节点发送确认加入群组的通知消息,以使所述发起节点根据所述通知消息,将所述区块链节点在线的信息记录到所述域名区块链上。

在一种实施方式中,所述处理器41在将所述第二广播消息发送给所述客户端,以使所述客户端获取所述群组中其他参与节点的ip地址,并根据获取到的ip地址将所述第二广播消息发送给所述群组中的其他参与节点时,具体执行如下操作:

通过所述客户端从所述域名区块链上获取所述群组中在线的所有参与节点的ip地址,并通过所述客户端将所述第二广播消息发送给所有在线的参与节点。

在一种实施方式中,所述处理器41在将所述第二广播消息发送给所述客户端,以使所述客户端获取所述群组中其他参与节点的ip地址,并根据获取到的ip地址将所述第二广播消息发送给所述群组中的其他参与节点时,具体执行如下操作:

通过所述客户端从所述域名区块链上获取所述群组中所有参与节点的ip地址,并通过所述客户端将所述第二广播消息发送给所述群组中除所述区块链节点以外的所有参与节点。

本实施例的有益效果和实施方式与前述图1实施例类似在这里不再赘述。

本发明实施例还提供一种计算机可读存储介质,包括指令,当其在计算机上运行时,使得计算机执行上述图1或图2或图3提供的方法。

最后需要说明的是,本领域普通技术人员可以理解上述实施例方法中的全部或者部分流程,是可以通过计算机程序来指令相关的硬件完成,所述的程序可存储于一计算机可读存储介质中,该程序在执行时,可包括如上述各方法的实施例的流程。其中,所述的存储介质可以为磁盘、光盘、只读存储记忆体(rom)或随机存储记忆体(ram)等。

本发明实施例中的各个功能单元可以集成在一个处理模块中,也可以是各个单元单独的物理存在,也可以两个或两个以上单元集成在一个模块中。上述集成的模块既可以采用硬件的形式实现,也可以采用软件功能模块的形式实现。所述集成的模块如果以软件功能模块的形式实现,并作为独立的产品销售或使用时,也可以存储在一个计算机可读存储介质中。上述提到的存储介质可以是只读存储器、磁盘或光盘等。

以上各实施例仅用以说明本发明的技术方案,而非对其限制;尽管参照前述各实施例对本发明进行了详细的说明,本领域的普通技术人员应当理解:其依然可以对前述各实施例所记载的技术方案进行修改,或者对其中部分或者全部技术特征进行等同替换;而这些修改或者替换,并不使相应技术方案的本质脱离本发明各实施例技术方案的范围。

当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1