CN109274738A - 区块生产节点的控制方法和装置 - Google Patents
区块生产节点的控制方法和装置 Download PDFInfo
- Publication number
- CN109274738A CN109274738A CN201811075114.7A CN201811075114A CN109274738A CN 109274738 A CN109274738 A CN 109274738A CN 201811075114 A CN201811075114 A CN 201811075114A CN 109274738 A CN109274738 A CN 109274738A
- Authority
- CN
- China
- Prior art keywords
- node
- request message
- block
- handshake
- directly connected
- 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
Links
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
- H04L63/00—Network architectures or network communication protocols for network security
- H04L63/08—Network architectures or network communication protocols for network security for authentication of entities
-
- 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/01—Protocols
- H04L67/10—Protocols in which an application is distributed across nodes in the network
- H04L67/104—Peer-to-peer [P2P] networks
Abstract
本发明实施例提出一种区块生产节点的控制方法和装置。该方法应用于第一节点,所述方法包括:广播第一握手请求消息,所述第一握手请求消息中包括中继信息;如果接收到第二节点返回的握手响应消息,则利用所述握手响应消息与所述第二节点建立直接连接,其中,所述第二节点是等待轮值的区块生产节点,且所述第二节点根据所述中继信息确定与所述第一节点不直接连接;通过所述直接连接将生产的区块发送至所述第二节点。在区块生产节点轮值时,通过握手协议建立区块生产节点之间的直接连接,可以通过直接连接进行区块传播,降低前一个区块生产节点生产的区块被分叉的风险。
Description
技术领域
本发明涉及互联网技术领域,尤其涉及一种区块生产节点的控制方法和装置。
背景技术
委托权益证明(DPoS,Delegated Proof of Stake)机制一般每隔预设时间长度(一个区块周期),选择N个候选区块生成节点。确定各候选区块生成节点的区块生成顺序。将一个区块生成周期所需的区块生成时间均分为N个时间段。再按照区块生成顺序将各时间段分配给各候选区块生成节点。区块生产节点之间协同出块并通过对等(P2P,peer-to-peer)网络传播消息。
DPoS每个候选区块生成节点是依据时间出块的。由于实际的P2P网络的传播延时较大,在区块生产节点换届(轮值)时,如果前一个区块生成节点的区块还没有广播到后一个区块生成节点,可能造成前一个区块生成节点的后几个区块出现被分叉的情况。
发明内容
本发明实施例提供一种区块生产节点的控制方法和装置,以解决现有技术中的一个或多个技术问题。
第一方面,本发明实施例提供了一种区块生产节点的控制方法,应用于第一节点,所述第一节点是当前的区块生产节点,所述方法包括:
广播第一握手请求消息,所述第一握手请求消息中包括中继信息,所述中继信息用于使得收到所述第一握手请求消息的节点确定与所述第一节点的连接关系;
如果接收到第二节点返回的握手响应消息,则利用所述握手响应消息与所述第二节点建立直接连接,其中,所述第二节点是等待轮值的区块生产节点,且所述第二节点根据所述中继信息确定与所述第一节点不直接连接;
通过所述直接连接将生产的区块发送至所述第二节点。
在一种实现方式中,所述握手响应消息中包括所述第二节点的链接信息、签名信息和公钥信息,利用所述握手响应消息与所述第二节点建立直接连接,包括:
在对所述第二节点的签名信息和公钥信息验证通过后,利用所述第二节点的链接信息与所述第二节点建立直接连接。
第二方面,本发明实施例提供了一种区块生产节点的控制方法,应用于第二节点,所述方法包括:
接收第一节点广播的第一握手请求消息,所述第一握手请求消息中包括中继信息,所述第一节点是当前的区块生产节点;
根据所述中继信息确定与所述第一节点的连接关系;
如果与所述第一节点不直接连接,且所述第二节点是等待轮值的区块生产节点,则向所述第一节点返回握手响应消息,以与所述第一节点建立直接连接;
通过所述直接连接接收所述第一节点生产的区块。
在一种实现方式中,所述第一握手请求消息中包括第一节点的链接信息、签名信息和公钥信息,向所述第一节点返回握手响应消息,包括:
对所述第一节点的签名信息和公钥信息验证通过后,根据所述第一节点的链接信息向所述第一节点返回握手响应消息。
在一种实现方式中,该方法还包括:
如果与所述第一节点直接连接,且所述第二节点不是等待轮值的区块生产节点,则修改所述第一握手请求消息的中继信息得到第二握手请求消息,并向下一级节点转发所述第二握手请求消息。
在一种实现方式中,修改所述第一握手请求消息的中继信息得到第二握手请求消息,包括:
增加所述第一握手请求消息的中继信息的跳数,并在所述第一握手请求消息中加入所述第二节点的签名信息和公钥信息,得到所述第二握手请求消息。
在一种实现方式中,该方法还包括:
如果与所述第一节点不直接连接,且所述第二节点不是等待轮值的区块生产节点,则向下一级节点转发所述第一握手请求消息。
第三方面,本发明实施例提供了一种区块生产节点的控制装置,应用于第一节点,所述第一节点是当前的区块生产节点,所述装置包括:
广播模块,用于广播第一握手请求消息,所述第一握手请求消息中包括中继信息,所述中继信息用于使得收到所述第一握手请求消息的节点确定与所述第一节点的连接关系;
第一连接模块,用于如果接收到第二节点返回的握手响应消息,则利用所述握手响应消息与所述第二节点建立直接连接,其中,所述第二节点是等待轮值的区块生产节点,且所述第二节点根据所述中继信息确定与所述第一节点不直接连接;
第一发送模块,用于通过所述直接连接将生产的区块发送至所述第二节点。
在一种实现方式中,所述握手响应消息中包括所述第二节点的链接信息、签名信息和公钥信息,所述第一连接模块还用于在对所述第二节点的签名信息和公钥信息验证通过后,利用所述第二节点的链接信息与所述第二节点建立直接连接。
第四方面,本发明实施例提供了一种区块生产节点的控制装置,其特征在于,应用于第二节点,所述装置包括:
第一接收模块,用于接收第一节点广播的第一握手请求消息,所述第一握手请求消息中包括中继信息,所述第一节点是当前的区块生产节点;
确定模块,用于根据所述中继信息确定与所述第一节点的连接关系;
第二连接模块,用于如果与所述第一节点不直接连接,且所述第二节点是等待轮值的区块生产节点,则向所述第一节点返回握手响应消息,以与所述第一节点建立直接连接;
第二接收模块,用于通过所述直接连接接收所述第一节点生产的区块。
在一种实现方式中,所述第一握手请求消息中包括第一节点的链接信息、签名信息和公钥信息,所述第二连接模块还用于对所述第一节点的签名信息和公钥信息验证通过后,根据所述第一节点的链接信息向所述第一节点返回握手响应消息。
在一种实现方式中,该方法还包括:
第一转发模块,用于如果与所述第一节点直接连接,且所述第二节点不是等待轮值的区块生产节点,则修改所述第一握手请求消息的中继信息得到第二握手请求消息,并向下一级节点转发所述第二握手请求消息。
在一种实现方式中,所述第一转发模块还用于增加所述第一握手请求消息的中继信息的跳数,并在所述第一握手请求消息中加入所述第二节点的签名信息和公钥信息,得到所述第二握手请求消息。
在一种实现方式中,该方法还包括:
第二转发模块,用于如果与所述第一节点不直接连接,且所述第二节点不是等待轮值的区块生产节点,则向下一级节点转发所述第一握手请求消息。
第五方面,本发明实施例提供了一种区块生产节点的控制装置,所述装置的功能可以通过硬件实现,也可以通过硬件执行相应的软件实现。所述硬件或软件包括一个或多个与上述功能相对应的模块。
在一个可能的设计中,所述装置的结构中包括处理器和存储器,所述存储器用于存储支持所述装置执行上述方法的程序,所述处理器被配置为用于执行所述存储器中存储的程序。所述装置还可以包括通信接口,用于与其他设备或通信网络通信。
第六方面,本发明实施例提供了一种计算机可读存储介质,用于存储区块生产节点的控制装置所用的计算机软件指令,其包括用于执行上述方法所涉及的程序。
上述技术方案中的一个技术方案具有如下优点或有益效果:在利用共识机制选举出的区块生产节点轮值时,可以先通过握手协议建立区块生产节点之间的直接连接。这样,在区块生产过程中,可以通过直接连接进行区块传播,降低由于轮值造成前一个区块生产节点生产的区块被分叉的风险。
上述技术方案中的另一个技术方案具有如下优点或有益效果:握手协议的各种消息可以进行签名,来保证消息来源的可靠性和安全性。
上述概述仅仅是为了说明书的目的,并不意图以任何方式进行限制。除上述描述的示意性的方面、实施方式和特征之外,通过参考附图和以下的详细描述,本发明进一步的方面、实施方式和特征将会是容易明白的。
附图说明
在附图中,除非另外规定,否则贯穿多个附图相同的附图标记表示相同或相似的部件或元素。这些附图不一定是按照比例绘制的。应该理解,这些附图仅描绘了根据本发明公开的一些实施方式,而不应将其视为是对本发明范围的限制。
图1示出根据本发明实施例的区块生产节点的控制方法的流程图。
图2示出根据本发明实施例的区块生产节点的控制方法的流程图。
图3示出根据本发明实施例的区块生产节点的控制方法的流程图。
图4示出根据本发明实施例的区块生产节点的控制方法的一种应用示例的示意图。
图5示出根据本发明实施例的区块生产节点的控制方法的流程图。
图6示出根据本发明实施例的区块生产节点的控制装置的结构框图。
图7示出根据本发明实施例的区块生产节点的控制装置的结构框图。
图8示出根据本发明实施例的区块生产节点的控制装置的结构框图。
具体实施方式
在下文中,仅简单地描述了某些示例性实施例。正如本领域技术人员可认识到的那样,在不脱离本发明的精神或范围的情况下,可通过各种不同方式修改所描述的实施例。因此,附图和描述被认为本质上是示例性的而非限制性的。
图1示出根据本发明实施例的区块生产节点的控制方法的流程图。如图1所示,该方法可以应用于第一节点,所述第一节点是当前的区块生产节点,所述方法可以包括以下步骤:
步骤S11、广播第一握手请求消息,所述第一握手请求消息中包括中继信息,所述中继信息用于使得收到所述第一握手请求消息的节点确定与所述第一节点的连接关系。
步骤S12、如果接收到第二节点返回的握手响应消息,则利用所述握手响应消息与所述第二节点建立直接连接,其中,所述第二节点是等待轮值的区块生产节点,且所述第二节点根据所述中继信息确定与所述第一节点不直接连接。
步骤S13、通过所述直接连接将生产的区块发送至所述第二节点。
在一种示例中,采用委托权益证明(DPoS)等共识机制在区块链网络中选举出多个候选的区块生产节点。候选的区块生产节点之间可以协同出块,并通过对等(P2P)网络传播消息。为了减少前一个区块生成节点的后几个区块出现被分叉的情况,可以在两个需要轮值的区块生产节点之间建立直接连接。前一个区块生成节点将自身生产的区块通过这个直接连接发送给后一个区块生产节点,有利于减少区块发送的时间,从而减少区块被分叉的情况。
在本实施例中,当前的区块生产节点为第一节点。在第一节点需要轮值时,可以在P2P网络中广播握手请求消息,并且将第一节点的状态设置为握手发送状态(HANDSHAKE_SENT)。在握手请求消息中包括中继信息。该握手请求消息的中继信息的跳数可以具有一个初始值,例如1。后续,收到该握手请求消息的第二节点根据该中继信息和自身的角色确定是否返回握手响应消息。
例如,如果第二节点收到的握手请求消息的中继信息的跳数为初始值1,表示该第二节点与第一节点直接连接。如果该第二节点不是等待轮值的区块生产节点,则可以修改这个中继信息,例如将跳数加1后,向下一个节点转发修改后的握手请求消息。
再如,如果第二节点收到的握手请求消息的中继信息的跳数为初始值1,表示该第二节点与第一节点直接连接。如果该第二节点是等待轮值的区块生产节点,则这两个需要轮值的区块生产节点之间已经直接连接,可以停止握手过程。
再如,如果第二节点收到的握手请求消息的中继信息的跳数为中间值2,表示该第二节点与第一节点不直接连接。如果该第二节点不是等待轮值的区块生产节点,则可以直接向下一个节点转发收到的握手请求消息。
再如,如果第二节点收到的握手请求消息的中继信息的跳数为中间值2,表示该第二节点与第一节点不直接连接。如果该第二节点不是等待轮值的区块生产节点,则可以向第一节点返回握手响应消息,并将第二节点的状态设置为握手回复状态(HANDSHAKE_REV)。后续,第一节点收到握手响应消息后,与第二节点建立直接连接。
上述的初始值为1、中间值为2仅是一种示例,在实际应用场景中,可以根据需要灵活设置。例如初始值为0,中间值为1。再如,初始值为1,中间值为2、3、4等任意一个不是1的值。
在一种实现方式中,所述握手响应消息中包括所述第二节点的链接信息、签名信息和公钥信息,利用所述握手响应消息与所述第二节点建立直接连接,包括:
在对所述第二节点的签名信息和公钥信息验证通过后,利用所述第二节点的链接信息与所述第二节点建立直接连接。
在本实施例中,第一节点收到握手响应消息后,可以对其中包括的第二节点的签名信息和公钥信息进行验证。如果验证通过,可以将第一节点的状态切换为握手建立状态(HANDSHAKE_ESTABLISHED),并向第二节点发送确认握手消息。第二节点收到确认握手消息后,将自身的状态切换为握手建立状态。这样,第一节点和第二节点这两个区块生产节点之间建立了直接连接。
图2示出根据本发明实施例的区块生产节点的控制方法的流程图。如图2所示,该方法可以应用于第二节点,所述方法可以包括:
步骤S21、接收第一节点广播的第一握手请求消息,所述第一握手请求消息中包括中继信息,所述第一节点是当前的区块生产节点。
步骤S22、根据所述中继信息确定与所述第一节点的连接关系。
步骤S23、如果与所述第一节点不直接连接,且所述第二节点是等待轮值的区块生产节点,则向所述第一节点返回握手响应消息,以与所述第一节点建立直接连接。
步骤S24、通过所述直接连接接收所述第一节点生产的区块。
在一种示例中,采用委托权益证明(DPoS)等共识机制在区块链网络中选举出多个候选的区块生产节点。候选的区块生产节点之间可以协同出块,并通过对等(P2P)网络传播消息。
在本实施例中,当前的区块生产节点为第一节点。在第一节点需要轮值时,可以在P2P网络中广播握手请求消息,并且将第一节点的状态设置为握手发送状态(HANDSHAKE_SENT)。在握手请求消息中包括中继信息。该握手请求消息的中继信息的跳数可以具有一个初始值,例如1。后续,收到该握手请求消息的第二节点根据该中继信息和自身的角色确定是否返回握手响应消息。
在一种实现方式中,所述第一握手请求消息中包括第一节点的链接信息、签名信息和公钥信息,在步骤S23中,向所述第一节点返回握手响应消息,包括:
对所述第一节点的签名信息和公钥信息验证通过后,根据所述第一节点的链接信息向所述第一节点返回握手响应消息。
具体地,第二节点收到第一握手请求消息后,可以对第一节点的签名信息和公钥信息进行验证。如果验证通过,可以根据中继信息的跳数和自己的角色决定后续的处理。
在一种示例中,如果跳数为中间值例如2,表示该第二节点与第一节点不直接连接。如果该第二节点是等待轮值的区块生产节点,则可以向第一节点返回握手响应消息,并将第二节点的状态设置为握手回复状态(HANDSHAKE_REV)。在握手响应消息中包括第二节点的签名信息和公钥信息。第一节点收到握手响应消息后,可以对第二节点的签名信息和公钥信息进行验证。如果验证通过,可以将第一节点的状态切换为握手建立状态(HANDSHAKE_ESTABLISHED),并向第二节点发送确认握手消息。第二节点收到确认握手消息后,将自身的状态切换为握手建立状态。这样,第一节点和第二节点这两个区块生产节点之间建立了直接连接。
在一种实现方式中,如图3所示,该方法还包括:
步骤S31、如果与所述第一节点直接连接,且所述第二节点不是等待轮值的区块生产节点,则修改所述第一握手请求消息的中继信息得到第二握手请求消息,并向下一级节点转发所述第二握手请求消息。
例如,如果第二节点收到的握手请求消息的中继信息的跳数为初始值1,表示该第二节点与第一节点直接连接。如果该第二节点不是等待轮值的区块生产节点,则可以修改这个中继信息,例如将跳数加1后,向下一个节点转发修改后的握手请求消息。
在一种实现方式中,在步骤S31中,修改所述第一握手请求消息的中继信息得到第二握手请求消息,包括:增加所述第一握手请求消息的中继信息的跳数,并在所述第一握手请求消息中加入所述第二节点的签名信息和公钥信息,得到所述第二握手请求消息。
例如,如果第二节点收到的握手请求消息的中继信息的跳数为初始值1,表示该第二节点与第一节点直接连接。如果该第二节点不是等待轮值的区块生产节点,则可以修改这个中继信息,例如将跳数加1。如果收到的握手请求消息中没有包括第一节点的签名信息和公钥信息,可以将第二节点自身的签名信息和公钥信息加入收到的握手请求消息。然后,向下一个节点转发修改后的握手请求消息。
在一种实现方式中,如图3所示,该方法还包括:
步骤S32、如果与所述第一节点不直接连接,且所述第二节点不是等待轮值的区块生产节点,则向下一级节点转发所述第一握手请求消息。
例如,如果第二节点收到的握手请求消息的中继信息的跳数为中间值2,表示该第二节点与第一节点不直接连接。如果该第二节点不是等待轮值的区块生产节点,则可以直接向下一个节点转发该握手请求消息。
此外,还可能包括以下情况:例如,如果第二节点收到的握手请求消息的中继信息的跳数为初始值1,表示该第二节点与第一节点直接连接。如果该第二节点是等待轮值的区块生产节点,则这两个需要轮值的区块生产节点之间已经直接连接,可以停止握手过程。
采用本发明实施例,在利用共识机制选举出的区块生产节点轮值时,可以先通过握手协议建立区块生产节点之间的直接连接。这样,在区块生产过程中,可以通过直接连接进行区块传播,降低由于轮值造成前一个区块生产节点生产的区块被分叉的风险。此外,握手协议的各种消息可以进行签名,来保证消息来源的可靠性和安全性。
如图4所示,在一种应用示例中,区块链网络中的区块生产节点,例如节点A、D(也可以称为区块生产者)之间,利用握手协议建立直接连接的过程可以包括以下阶段:
1.广播握手消息阶段:当区块链网络某一轮的所有区块生产节点可以被确定后,区块生产节点之间可以开始进行握手协议。这个阶段,每个区块生产节点例如节点A可以创建例如握手(TermHandshack)实例,向全网广播寻找区块生产节点的握手消息(即握手请求消息),并将自身的状态设置为握手发送状态“HANDSHAKE_SENT”。如图4所示,握手请求消息的消息体中可以包括如下的内容:
a)relay(中继信息):该值表示消息在P2P网络中转发的跳数。初始值可以设为1,表示该消息是区块生产节点发出的原始消息,还没有经过其他节点例如节点B、C的转发。其他节点例如节点B收到relay为1的消息时,对该消息是第一层进行签名校验。如果验证通过,则对relay+1,此时relay=2,并继续通过P2P网络进一步转发修改后的握手请求消息。此外,其他节点例如节点C收到relay为2的消息时,可以直接转发该握手请求消息。
b)nodeurl:区块生产节点的nodeurl。区块链网络中的nodeurl中包括节点的链接信息,其他区块生产节点收到该消息后可以对该节点进行链接。
c)sigfir:发出广播消息的区块生产节点的签名信息。
d)pubkeyfir:发出广播消息的区块生产节点的公钥信息。
e)sigsed:第一个转发节点的签名信息。
f)pubkeysed:第一个转发节点的公钥信息。
2.回复握手消息阶段:当另一个区块生产节点例如节点D收到上述的寻找区块生产节点的消息后会回复握手消息(即、握手响应消息),其中包括自己的nodeurl、签名信息、公钥信息等,并且状态进入握手回复状态“HANDSHAKE_REV”。P2P网络中的其他的非生产节点例如节点B、C,收到握手请求消息后,则不回复握手响应消息。
3.确认握手链接阶段:发出广播消息的区块生产节点例如节点A接收到别的区块生产节点例如节点D回复的握手消息后,会对消息进行验证。验证通过后,将自己的状态切换为“HANDSHAKE_ESTABLISHED”状态,并给对方回复确认握手消息。别的区块生产节点(例如节点D)收到该区块生产节点的确认握手信号后,将自己的状态设置为"HANDSHAKE_ESTABLISHED"。至此,两个区块生产节点之间建立的该轮的稳定链接,也即建立直接连接。
该轮所有的区块生产节点进行上述操作,可以建立该轮所有区块生产节点之间的稳定链接,达到了减少节点轮值出现区块分叉的目的。
采用本发明实施例,在利用DPOS机制选举出的每轮区块生产节点出块之前,可以先通过握手协议建立超级节点(即区块生产节点)之间的直接连接。这样,该轮区块生产过程中可以通过直接连接进行区块传播,降低由于换届(轮值)造成前一个区块生产节点生产的区块被分叉的风险。协议消息可以进行签名来保证消息来源的可靠性和安全性。
图5示出根据本发明实施例的区块生产节点的控制装置的结构框图。如图5所示,所述装置可以应用于第一节点,所述第一节点是当前的区块生产节点,所述装置包括:
广播模块51,用于广播第一握手请求消息,所述第一握手请求消息中包括中继信息,所述中继信息用于使得收到所述第一握手请求消息的节点确定与所述第一节点的连接关系;
第一连接模块52,用于如果接收到第二节点返回的握手响应消息,则利用所述握手响应消息与所述第二节点建立直接连接,其中,所述第二节点是等待轮值的区块生产节点,且所述第二节点根据所述中继信息确定与所述第一节点不直接连接;
第一发送模块53,用于通过所述直接连接将生产的区块发送至所述第二节点。
在一种实现方式中,所述握手响应消息中包括所述第二节点的链接信息、签名信息和公钥信息,所述第一连接模块52还用于在对所述第二节点的签名信息和公钥信息验证通过后,利用所述第二节点的链接信息与所述第二节点建立直接连接。
图6示出根据本发明实施例的区块生产节点的控制装置的结构框图。如图6所示,所述装置可以应用于第二节点,所述装置可以包括:
第一接收模块61,用于接收第一节点广播的第一握手请求消息,所述第一握手请求消息中包括中继信息,所述第一节点是当前的区块生产节点;
确定模块62,用于根据所述中继信息确定与所述第一节点的连接关系;
第二连接模块63,用于如果与所述第一节点不直接连接,且所述第二节点是等待轮值的区块生产节点,则向所述第一节点返回握手响应消息,以与所述第一节点建立直接连接;
第二接收模块64,用于通过所述直接连接接收所述第一节点生产的区块。
在一种实现方式中,所述第一握手请求消息中包括第一节点的链接信息、签名信息和公钥信息,所述第二连接模块63还用于对所述第一节点的签名信息和公钥信息验证通过后,根据所述第一节点的链接信息向所述第一节点返回握手响应消息。
在一种实现方式中,如图7所示,该方法还包括:
第一转发模块71,用于如果与所述第一节点直接连接,且所述第二节点不是等待轮值的区块生产节点,则修改所述第一握手请求消息的中继信息得到第二握手请求消息,并向下一级节点转发所述第二握手请求消息。
在一种实现方式中,所述第一转发模块71还用于增加所述第一握手请求消息的中继信息的跳数,并在所述第一握手请求消息中加入所述第二节点的签名信息和公钥信息,得到所述第二握手请求消息。
在一种实现方式中,该方法还包括:
第二转发模块72,用于如果与所述第一节点不直接连接,且所述第二节点不是等待轮值的区块生产节点,则向下一级节点转发所述第一握手请求消息。
本发明实施例各装置中的各模块的功能可以参见上述方法中的对应描述,在此不再赘述。
图8示出根据本发明实施例的区块生产节点的控制装置的结构框图。如图8所示,该装置包括:存储器910和处理器920,存储器910内存储有可在处理器920上运行的计算机程序。所述处理器920执行所述计算机程序时实现上述实施例中的区块生产节点的控制方法。所述存储器910和处理器920的数量可以为一个或多个。
该装置还包括:
通信接口930,用于与外界设备进行通信,进行数据交互传输。
存储器910可能包含高速RAM存储器,也可能还包括非易失性存储器(non-volatile memory),例如至少一个磁盘存储器。
如果存储器910、处理器920和通信接口930独立实现,则存储器910、处理器920和通信接口930可以通过总线相互连接并完成相互间的通信。所述总线可以是工业标准体系结构(ISA,Industry Standard Architecture)总线、外部设备互连(PCI,PeripheralComponent)总线或扩展工业标准体系结构(EISA,Extended Industry StandardComponent)总线等。所述总线可以分为地址总线、数据总线、控制总线等。为便于表示,图8中仅用一条粗线表示,但并不表示仅有一根总线或一种类型的总线。
可选的,在具体实现上,如果存储器910、处理器920及通信接口930集成在一块芯片上,则存储器910、处理器920及通信接口930可以通过内部接口完成相互间的通信。
本发明实施例提供了一种计算机可读存储介质,其存储有计算机程序,该程序被处理器执行时实现上述实施例中任一所述的方法。
在本说明书的描述中,参考术语“一个实施例”、“一些实施例”、“示例”、“具体示例”、或“一些示例”等的描述意指结合该实施例或示例描述的具体特征、结构、材料或者特点包含于本发明的至少一个实施例或示例中。而且,描述的具体特征、结构、材料或者特点可以在任一个或多个实施例或示例中以合适的方式结合。此外,在不相互矛盾的情况下,本领域的技术人员可以将本说明书中描述的不同实施例或示例以及不同实施例或示例的特征进行结合和组合。
此外,术语“第一”、“第二”仅用于描述目的,而不能理解为指示或暗示相对重要性或者隐含指明所指示的技术特征的数量。由此,限定有“第一”、“第二”的特征可以明示或隐含地包括至少一个该特征。在本发明的描述中,“多个”的含义是两个或两个以上,除非另有明确具体的限定。
流程图中或在此以其他方式描述的任何过程或方法描述可以被理解为,表示包括一个或更多个用于实现特定逻辑功能或过程的步骤的可执行指令的代码的模块、片段或部分,并且本发明的优选实施方式的范围包括另外的实现,其中可以不按所示出或讨论的顺序,包括根据所涉及的功能按基本同时的方式或按相反的顺序,来执行功能,这应被本发明的实施例所属技术领域的技术人员所理解。
在流程图中表示或在此以其他方式描述的逻辑和/或步骤,例如,可以被认为是用于实现逻辑功能的可执行指令的定序列表,可以具体实现在任何计算机可读介质中,以供指令执行系统、装置或设备(如基于计算机的系统、包括处理器的系统或其他可以从指令执行系统、装置或设备取指令并执行指令的系统)使用,或结合这些指令执行系统、装置或设备而使用。就本说明书而言,“计算机可读介质”可以是任何可以包含、存储、通信、传播或传输程序以供指令执行系统、装置或设备或结合这些指令执行系统、装置或设备而使用的装置。计算机可读介质的更具体的示例(非穷尽性列表)包括以下:具有一个或多个布线的电连接部(电子装置),便携式计算机盘盒(磁装置),随机存取存储器(RAM),只读存储器(ROM),可擦除可编辑只读存储器(EPROM或闪速存储器),光纤装置,以及便携式只读存储器(CDROM)。另外,计算机可读介质甚至可以是可在其上打印所述程序的纸或其他合适的介质,因为可以例如通过对纸或其他介质进行光学扫描,接着进行编辑、解译或必要时以其他合适方式进行处理来以电子方式获得所述程序,然后将其存储在计算机存储器中。
应当理解,本发明的各部分可以用硬件、软件、固件或它们的组合来实现。在上述实施方式中,多个步骤或方法可以用存储在存储器中且由合适的指令执行系统执行的软件或固件来实现。例如,如果用硬件来实现,和在另一实施方式中一样,可用本领域公知的下列技术中的任一项或他们的组合来实现:具有用于对数据信号实现逻辑功能的逻辑门电路的离散逻辑电路,具有合适的组合逻辑门电路的专用集成电路,可编程门阵列(PGA),现场可编程门阵列(FPGA)等。
本技术领域的普通技术人员可以理解实现上述实施例方法携带的全部或部分步骤是可以通过程序来指令相关的硬件完成,所述的程序可以存储于一种计算机可读存储介质中,该程序在执行时,包括方法实施例的步骤之一或其组合。
此外,在本发明各个实施例中的各功能单元可以集成在一个处理模块中,也可以是各个单元单独物理存在,也可以两个或两个以上单元集成在一个模块中。上述集成的模块既可以采用硬件的形式实现,也可以采用软件功能模块的形式实现。所述集成的模块如果以软件功能模块的形式实现并作为独立的产品销售或使用时,也可以存储在一个计算机可读存储介质中。所述存储介质可以是只读存储器,磁盘或光盘等。
以上所述,仅为本发明的具体实施方式,但本发明的保护范围并不局限于此,任何熟悉本技术领域的技术人员在本发明揭露的技术范围内,可轻易想到其各种变化或替换,这些都应涵盖在本发明的保护范围之内。因此,本发明的保护范围应以所述权利要求的保护范围为准。
Claims (16)
1.一种区块生产节点的控制方法,其特征在于,应用于第一节点,所述第一节点是当前的区块生产节点,所述方法包括:
广播第一握手请求消息,所述第一握手请求消息中包括中继信息,所述中继信息用于使得收到所述第一握手请求消息的节点确定与所述第一节点的连接关系;
如果接收到第二节点返回的握手响应消息,则利用所述握手响应消息与所述第二节点建立直接连接,其中,所述第二节点是等待轮值的区块生产节点,且所述第二节点根据所述中继信息确定与所述第一节点不直接连接;
通过所述直接连接将生产的区块发送至所述第二节点。
2.根据权利要求1所述的方法,其特征在于,所述握手响应消息中包括所述第二节点的链接信息、签名信息和公钥信息,利用所述握手响应消息与所述第二节点建立直接连接,包括:
在对所述第二节点的签名信息和公钥信息验证通过后,利用所述第二节点的链接信息与所述第二节点建立直接连接。
3.一种区块生产节点的控制方法,其特征在于,应用于第二节点,所述方法包括:
接收第一节点广播的第一握手请求消息,所述第一握手请求消息中包括中继信息,所述第一节点是当前的区块生产节点;
根据所述中继信息确定与所述第一节点的连接关系;
如果与所述第一节点不直接连接,且所述第二节点是等待轮值的区块生产节点,则向所述第一节点返回握手响应消息,以与所述第一节点建立直接连接;
通过所述直接连接接收所述第一节点生产的区块。
4.根据权利要求3所述的方法,其特征在于,所述第一握手请求消息中包括第一节点的链接信息、签名信息和公钥信息,向所述第一节点返回握手响应消息,包括:
对所述第一节点的签名信息和公钥信息验证通过后,根据所述第一节点的链接信息向所述第一节点返回握手响应消息。
5.根据权利要求3所述的方法,其特征在于,还包括:
如果与所述第一节点直接连接,且所述第二节点不是等待轮值的区块生产节点,则修改所述第一握手请求消息的中继信息得到第二握手请求消息,并向下一级节点转发所述第二握手请求消息。
6.根据权利要求5所述的方法,其特征在于,修改所述第一握手请求消息的中继信息得到第二握手请求消息,包括:
增加所述第一握手请求消息的中继信息的跳数,并在所述第一握手请求消息中加入所述第二节点的签名信息和公钥信息,得到所述第二握手请求消息。
7.根据权利要求3至6中任一项所述的方法,其特征在于,还包括:
如果与所述第一节点不直接连接,且所述第二节点不是等待轮值的区块生产节点,则向下一级节点转发所述第一握手请求消息。
8.一种区块生产节点的控制装置,其特征在于,应用于第一节点,所述第一节点是当前的区块生产节点,所述装置包括:
广播模块,用于广播第一握手请求消息,所述第一握手请求消息中包括中继信息,所述中继信息用于使得收到所述第一握手请求消息的节点确定与所述第一节点的连接关系;
第一连接模块,用于如果接收到第二节点返回的握手响应消息,则利用所述握手响应消息与所述第二节点建立直接连接,其中,所述第二节点是等待轮值的区块生产节点,且所述第二节点根据所述中继信息确定与所述第一节点不直接连接;
第一发送模块,用于通过所述直接连接将生产的区块发送至所述第二节点。
9.根据权利要求8所述的装置,其特征在于,所述握手响应消息中包括所述第二节点的链接信息、签名信息和公钥信息,所述第一连接模块还用于在对所述第二节点的签名信息和公钥信息验证通过后,利用所述第二节点的链接信息与所述第二节点建立直接连接。
10.一种区块生产节点的控制装置,其特征在于,应用于第二节点,所述装置包括:
第一接收模块,用于接收第一节点广播的第一握手请求消息,所述第一握手请求消息中包括中继信息,所述第一节点是当前的区块生产节点;
确定模块,用于根据所述中继信息确定与所述第一节点的连接关系;
第二连接模块,用于如果与所述第一节点不直接连接,且所述第二节点是等待轮值的区块生产节点,则向所述第一节点返回握手响应消息,以与所述第一节点建立直接连接;
第二接收模块,用于通过所述直接连接接收所述第一节点生产的区块。
11.根据权利要求10所述的装置,其特征在于,所述第一握手请求消息中包括第一节点的链接信息、签名信息和公钥信息,所述第二连接模块还用于对所述第一节点的签名信息和公钥信息验证通过后,根据所述第一节点的链接信息向所述第一节点返回握手响应消息。
12.根据权利要求10所述的装置,其特征在于,还包括:
第一转发模块,用于如果与所述第一节点直接连接,且所述第二节点不是等待轮值的区块生产节点,则修改所述第一握手请求消息的中继信息得到第二握手请求消息,并向下一级节点转发所述第二握手请求消息。
13.根据权利要求12所述的装置,其特征在于,所述第一转发模块还用于增加所述第一握手请求消息的中继信息的跳数,并在所述第一握手请求消息中加入所述第二节点的签名信息和公钥信息,得到所述第二握手请求消息。
14.根据权利要求10至13中任一项所述的装置,其特征在于,还包括:
第二转发模块,用于如果与所述第一节点不直接连接,且所述第二节点不是等待轮值的区块生产节点,则向下一级节点转发所述第一握手请求消息。
15.一种区块生产节点的控制装置,其特征在于,包括:
一个或多个处理器;
存储装置,用于存储一个或多个程序;
当所述一个或多个程序被所述一个或多个处理器执行时,使得所述一个或多个处理器实现如权利要求1至7中任一项所述的方法。
16.一种计算机可读存储介质,其存储有计算机程序,其特征在于,该程序被处理器执行时实现如权利要求1至7中任一项所述的方法。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201811075114.7A CN109274738B (zh) | 2018-09-14 | 2018-09-14 | 区块生产节点的控制方法和装置 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201811075114.7A CN109274738B (zh) | 2018-09-14 | 2018-09-14 | 区块生产节点的控制方法和装置 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN109274738A true CN109274738A (zh) | 2019-01-25 |
CN109274738B CN109274738B (zh) | 2021-12-07 |
Family
ID=65188388
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201811075114.7A Active CN109274738B (zh) | 2018-09-14 | 2018-09-14 | 区块生产节点的控制方法和装置 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN109274738B (zh) |
Citations (10)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101047582A (zh) * | 2006-03-31 | 2007-10-03 | 联想(北京)有限公司 | 一种在无线对等网络中建立通讯链路的方法 |
US20160150055A1 (en) * | 2014-11-20 | 2016-05-26 | Akamai Technologies, Inc. | Hardware-based packet forwarding for the transport layer |
US20170017936A1 (en) * | 2015-07-14 | 2017-01-19 | Fmr Llc | Point-to-Point Transaction Guidance Apparatuses, Methods and Systems |
CN106789920A (zh) * | 2016-11-25 | 2017-05-31 | 深圳前海微众银行股份有限公司 | 区块链的节点连接方法及装置 |
US20170206523A1 (en) * | 2015-11-06 | 2017-07-20 | Cable Television Laboratories, Inc | Systems and methods for digital asset security ecosystems |
CN107005574A (zh) * | 2016-12-23 | 2017-08-01 | 深圳前海达闼云端智能科技有限公司 | 区块生成方法、装置和区块链网络 |
CN107318141A (zh) * | 2016-04-27 | 2017-11-03 | 华为技术有限公司 | 一种数据传输的方法、设备及系统 |
CN107395353A (zh) * | 2017-04-24 | 2017-11-24 | 阿里巴巴集团控股有限公司 | 一种区块链共识方法及装置 |
CN107566381A (zh) * | 2017-09-12 | 2018-01-09 | 中国联合网络通信集团有限公司 | 设备安全控制方法、装置及系统 |
CN108305056A (zh) * | 2018-03-27 | 2018-07-20 | 搜游网络科技(北京)有限公司 | 基于区块链的数据处理方法、装置及区块链节点网络 |
-
2018
- 2018-09-14 CN CN201811075114.7A patent/CN109274738B/zh active Active
Patent Citations (10)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101047582A (zh) * | 2006-03-31 | 2007-10-03 | 联想(北京)有限公司 | 一种在无线对等网络中建立通讯链路的方法 |
US20160150055A1 (en) * | 2014-11-20 | 2016-05-26 | Akamai Technologies, Inc. | Hardware-based packet forwarding for the transport layer |
US20170017936A1 (en) * | 2015-07-14 | 2017-01-19 | Fmr Llc | Point-to-Point Transaction Guidance Apparatuses, Methods and Systems |
US20170206523A1 (en) * | 2015-11-06 | 2017-07-20 | Cable Television Laboratories, Inc | Systems and methods for digital asset security ecosystems |
CN107318141A (zh) * | 2016-04-27 | 2017-11-03 | 华为技术有限公司 | 一种数据传输的方法、设备及系统 |
CN106789920A (zh) * | 2016-11-25 | 2017-05-31 | 深圳前海微众银行股份有限公司 | 区块链的节点连接方法及装置 |
CN107005574A (zh) * | 2016-12-23 | 2017-08-01 | 深圳前海达闼云端智能科技有限公司 | 区块生成方法、装置和区块链网络 |
CN107395353A (zh) * | 2017-04-24 | 2017-11-24 | 阿里巴巴集团控股有限公司 | 一种区块链共识方法及装置 |
CN107566381A (zh) * | 2017-09-12 | 2018-01-09 | 中国联合网络通信集团有限公司 | 设备安全控制方法、装置及系统 |
CN108305056A (zh) * | 2018-03-27 | 2018-07-20 | 搜游网络科技(北京)有限公司 | 基于区块链的数据处理方法、装置及区块链节点网络 |
Non-Patent Citations (1)
Title |
---|
ALEXANDRU STANCIU: "Blockchain based distributed control system", 《2017 21ST INTERNATIONAL CONFERENCE ON CONTROL SYSTEMS AND COMPUTER SCIENCE》 * |
Also Published As
Publication number | Publication date |
---|---|
CN109274738B (zh) | 2021-12-07 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US11171859B2 (en) | Large-scale node configuration management for MAAS platform | |
Ersoy et al. | Transaction propagation on permissionless blockchains: incentive and routing mechanisms | |
WO2011099187A1 (ja) | 車内データ中継装置、車両制御システム | |
CN111934996B (zh) | 消息传输方法及装置 | |
WO2017031878A1 (zh) | 用于文档协作编辑的方法和装置 | |
US20160373875A1 (en) | Method for implementing surround sound using a plurality of vehicles | |
CN110264348B (zh) | 一种交易上链的处理方法、装置及存储介质 | |
US11270004B2 (en) | Blockchain-based transaction privacy | |
CN106339267B (zh) | 一种对象查询方法及服务端 | |
CN111934999A (zh) | 消息传输方法及装置 | |
CN111277618B (zh) | 一种信息推送方法、装置、电子设备及存储介质 | |
CN113282348A (zh) | 一种基于区块链的边缘计算任务卸载系统及方法 | |
CN109243459A (zh) | 设备的语音唤醒方法、装置、家电设备和控制系统 | |
CN109756616B (zh) | 消息的处理方法和装置、存储介质、电子装置 | |
CN109274738A (zh) | 区块生产节点的控制方法和装置 | |
CN112615868B (zh) | 一种跨链发送可认证消息的方法和装置 | |
US20150379173A1 (en) | Method for processing a set of data to be used subsequently with a view to graphically generating an electrical diagram of an electrical system | |
CN108074411A (zh) | 根据交通信号获取行驶路线方法、装置、系统及电子设备 | |
CN112880703B (zh) | 导航语音播报数据的生成方法、装置、介质及电子设备 | |
CN115037472B (zh) | 基于双层dag共识机制的交易处理方法及系统、服务设备 | |
US20210152459A1 (en) | System and method for sharing data among a plurality of block chain networks | |
CN105024920B (zh) | 一种群聊天信息的传输方法和设备 | |
CN105222781B (zh) | 一种室内导航方法及移动终端 | |
US10542108B2 (en) | Data transfer in a federated publish/subscribe system | |
Luan et al. | Modeling and Verification of CKB Consensus Protocol in Coq |
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 |