选举代表节点设备方法、装置、计算机设备及存储介质与流程

文档序号:16544297发布日期:2019-01-08 20:44阅读:120来源:国知局
选举代表节点设备方法、装置、计算机设备及存储介质与流程

本发明涉及区块链技术领域,特别涉及一种选举代表节点设备方法、装置、计算机设备及存储介质。



背景技术:

近年来,随着网络技术的发展,区块链系统被广泛应用在生活中,区块链系统可以由多个节点设备构成,每个节点设备均可以利用区块存储交易数据,并按照时间顺序将区块以顺序相连的方式组合成一种链式数据结构,从而在区块链系统内形成一种分布式账本。

目前,节点设备生成区块可以是如下过程,当任一个节点设备上发生交易时,该节点设备可以对交易数据进行记录,并在区块链系统中广播该交易数据,以使得区块链系统中的节点设备接收到该交易数据,当区块链系统上的节点设备接收到交易数据之后,可以将交易数据打包并产生新区块,并通过共识机制验证新区块,当新区块通过验证后,各个节点设备可以将该新区块添加至节点设备上配置的区块链中。

在上述节点设备生成区块的过程中,为提高区块链系统的工作效率,可以选举出一种代表节点设备来代替所有节点设备生成区块。那么在生成区块的过程中,代表节点设备可采用p2p(peertopeer,对等网络)广播的方式,在区块链系统上广播交易数据。为了提高通信效率,也可以在代表节点设备之间采用直接通讯的方式进行数据交互,即通过彼此的ip(internetprotocol,网络协议)地址,可以直接发送或接收交易数据。但是,如果代表节点设备传递交易数据时,采用直接通讯的方式,那么与代表节点设备通讯的所有节点设备均需要知道代表节点设备的ip地址,一旦代表节点设备的ip地址暴露,极易遭受攻击,会影响区块链系统的正常运作。此时,就亟需一种能够保证代表节点设备的安全性的选举代表节点设备的方法。



技术实现要素:

本发明实施例提供了一种选举代表节点设备方法、装置、计算机设备及存储介质,能够解决区块链系统中代表节点设备的ip地址容易暴露的问题。该技术方案如下:

一方面,提供了一种选举代表节点设备方法,应用于目标服务器,该方法包括:

接收区块链系统中的至少一个节点设备的网络协议地址信息;

接收第一节点设备的网络协议地址获取请求,该网络协议地址获取请求用于请求代表节点设备的网络协议地址信息;

当确定该第一节点设备为本次选举过程中选举出的代表节点设备时,向该第一节点设备发送网络协议地址列表,该网络协议地址列表包括该本次选举过程中选举出的代表节点设备的网络协议地址信息;

当确定该第一节点设备不是本次选举过程中选举出的代表节点设备时,不响应该网络协议地址获取请求。

本发明实施例提供的方法,通过目标服务器可以对所有候选节点设备的网络协议地址进行管理,在选举成功时,仅向新选举出的代表节点设备发送包括了所有新选举的代表节点设备的网络协议地址的网络协议地址列表,使得这些代表节点设备的网络协议地址,仅能被本次新选举出的代表节点设备知道,降低了代表节点设备的网络协议地址的暴露率,保证了代表节点设备的安全。

一方面,提供了一种选举代表节点设备方法,应用于区块链系统的任一节点设备,该方法包括:

当该节点设备处于候选状态时,向目标服务器送该节点设备的网络协议地址信息;

当该节点设备在本次选举过程中被选举为代表节点设备时,向该目标服务器发送网络协议地址获取请求,该网络协议地址获取请求携带该节点设备的公钥;

接收该目标服务器返回的网络协议地址列表,该网络协议地址列表包括该本次选举过程中选举出的代表节点设备的网络协议地址信息;

该节点设备切换至代表状态运行。

本发明实施例提供的方法,通过区块链系统中处于候选状态的节点设备向目标服务器发送该节点设备的网络协议地址信息,一旦该处于候选状态的节点设备当选为该区块链系统中的代表节点设备,就可以向该目标服务器发送网络协议地址获取请求,由于目标服务器仅会向本次新选举出的代表节点设备发送网络协议地址列表,因此,这些网络协议地址仅能被本次选举过程中选举出的代表节点设备知道,降低了代表节点设备的网络协议地址的暴露率,保证了代表节点设备的安全。

一方面,提供了一种选举代表节点设备方法,应用于区块链系统的任一节点设备,该方法包括:

当该节点设备在本次选举过程中被选举为代表节点设备时,将该节点设备的网络协议地址信息复制为预设数目的网络协议地址信息;

分别采用该本次选举出的各个代表节点设备的公钥,对该预设数目的网络协议地址信息进行加密,得到预设数目的密文;

广播该预设数目的密文;

间隔预设时长,该节点设备切换至代表状态运行。

本发明实施例提供的方法,通过新选举的代表节点设备可以在该区块链系统内广播加密网络协议地址,该网络协议地址的加密方式可以是利用本次选举的代表节点设备的公钥进行加密,使得该加密网络协议地址仅能被新选举的代表节点设备才可以解密,也即是该网络协议地址仅能被本次选举过程中选举出的代表节点设备知道,从而降低了代表节点设备的网络协议地址的暴露率,保证了代表节点设备的安全。

一方面,提供了一种选举代表节点设备装置,应用于目标服务器,该装置包括:

第一接收模块,用于接收区块链系统中的至少一个节点设备的网络协议地址信息;

第二接收模块,用于接收第一节点设备的网络协议地址获取请求,该网络协议地址获取请求用于请求代表节点设备的网络协议地址信息;

发送模块,用于当确定该第一节点设备为本次选举过程中选举出的代表节点设备时,向该第一节点设备发送网络协议地址列表,该网络协议地址列表包括该本次选举过程中选举出的代表节点设备的网络协议地址信息;

当确定该第一节点设备不是本次选举过程中选举出的代表节点设备时,不响应该网络协议地址获取请求。

一方面,提供了一种选举代表节点设备装置,应用于区块链系统的任一节点设备,该装置包括:

第一发送模块,用于当该节点设备处于候选状态时,向目标服务器送该节点设备的网络协议地址信息;

第二发送模块,用于当该节点设备在本次选举过程中被选举为代表节点设备时,向该目标服务器发送网络协议地址获取请求,该网络协议地址获取请求携带该节点设备的公钥;

接收模块,用于接收该目标服务器返回的网络协议地址列表,该网络协议地址列表包括该本次选举过程中选举出的代表节点设备的网络协议地址信息;

切换模块用于,该节点设备切换至代表状态运行。

一方面,提供了一种计算机设备,该计算机设备包括:处理器;用于存放计算机程序的存储器;其中,该处理器用于执行存储器上所存放的计算机程序,实现该选举代表节点设备方法中任一项该的方法步骤。

一方面,提供了一种计算机可读存储介质,该计算机可读存储介质内存储有计算机程序,该计算机程序被处理器执行时实现该选举代表节点设备方法中任一项该的方法步骤。

附图说明

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

图1是本发明实施例提供的一种区块链系统结构示意图;

图2是本发明实施例提供的一种选举代表节点设备方法流程图;

图3是本发明实施例提供的一种选举代表节点设备方法流程图;

图4是本发明实施例提供的一种选举代表节点设备装置结构示意图;

图5是本发明实施例提供的一种选举代表节点设备装置结构示意图;

图6是本发明实施例提供的一种服务器的结构示意图。

具体实施方式

为使本发明的目的、技术方案和优点更加清楚,下面将结合附图对本发明实施方式作进一步地详细描述。

图1是本发明实施例提供的一种区块链系统结构示意图,参见图1,该系统包括多个服务器,该系统还可以包括目标服务器。在一种可能实施方式中,该目标服务器也可以是该区块链系统外配置的与该区块链系统相关联的目标服务器。

其中,多个服务器可以配置有同一条区块链,也即是,该多个服务器可以组成区块链系统,各个服务器分别为该区块链系统中的节点设备。该多个服务器可以是同一机构的多个服务器,还可以是属于不同机构的多个服务器,还可以是普通用户的多个服务器。

多个服务器作为区块链系统中的节点设备,均可以接收交易数据,但区块链系统在记录交易数据时,因各个节点设备用途不同,可以分为代表节点设备和非代表节点设备。其中,代表节点设备用于生成区块以及共识区块,非代表节点设备用于接收代表节点设备生成及经过共识的区块,验证区块,并将验证通过的区块存储至目标区块链中,并且当非代表节点设备处于代表节点设备的候选状态时,可通过选举的方式,选举为代表节点设备。

该目标服务器可以用于存储区块链系统中处于候选状态的节点设备的网络协议地址信息,查询区块链系统中新选举的代表节点设备列表,以及向新选举的代表节点设备发送所有新选举的代表节点设备的网络协议地址信息。

该区块链系统记录交易数据的过程,以下述过程为例:

当区块链系统中的任一节点设备接收到交易数据时,该节点设备需将接收到的交易数据广播在区块链系统中,以便其他节点设备接收到该交易数据。当区块链系统中的代表节点设备接收到该交易数据后,代表节点设备基于交易数据生成区块,以便各个代表节点设备对该区块进行共识,当代表节点设备对该区块共识通过后,代表节点设备在区块链系统中广播该区块,非代表节点设备接收到代表节点设备广播的区块后,对该区块进行验证,通过验证后,将该区块存储至该非代表节点配置的目标区块链上。

本发明实施例所涉及的共识,是指区块链系统中多个节点设备对数据分别进行验证,当任一个节点设备验证通过时,会在区块链系统中广播验证通过消息,当任一个节点设备所接收到的验证通过消息符合预设共识策略时,则确定该数据共识通过。

例如,以共识是由区块链系统中的代表节点设备进行为例进行说明,该共识可以通过pow(proofofwork,工作量证明)机制完成。其过程描述如下:区块链系统中的代表节点设备生成区块;代表节点设备计算该生成区块的区块头的哈希值,看其是否小于当前的目标值,如果哈希值大于目标值,代表节点设备就修改该生成区块中的随机数,并重新计算;当代表节点设备计算的哈希值小于目标值时,该代表节点设备根据其它代表节点的网络协议地址,向其他代表节点设备发送该区块;其他代表节点设备接收到该区块后,对其进行验证;当多数其他多数代表节点设备都认同该区块的有效性时,即为共识通过。

其中,通过代表节点设备利用彼此的网络协议地址,向其他代表节点设备发送区块的过程,为直接通讯的通讯。

本发明实施例提供的系统,无需区块链系统中的所有节点设备生成区块,也无需区块链系统中大多数节点设备对生成的区块达成共识后,再进行验证是否可以存储交易数据,仅通过代表节点生成区块、共识区块以及非代表节点设备完成验证,即可将交易数据记录在区块链系统中,从而提高了区块链系统的工作效率,并且该区块链系统中的代表节点设备之间,可以利用直接通讯完成区块共识,进一步提高了代表节点的工作效率,从而进一步提高了该区块链系统的工作效率。

那么,关于区块链系统中的代表节点设备的产生过程,在此用一个具体的实施例来描述如下:

图2是本发明实施例提供的一种选举代表节点设备方法流程图,参见图2,本发明实施例提供的方法流程包括:

201、第一节点设备向目标服务器发送自己的网络协议地址信息。

其中,区块链系统中的第一节点设备为区块链系统中的任一节点设备,该网络协议地址信息可以包括:网络协议地址和公钥,而目标服务器可以利用该公钥,来筛选代表节点设备的网络协议地址。

在本发明实施例中,以该第一节点设备为处于候选状态的节点设备为例。候选状态的节点设备是指候选成为代表节点设备的节点设备,其中,该处于候选状态的节点设备可以是具有一定的资质的节点设备,例如,该资质是指性能符合预设性能要求或者信用符合预设信用要求等。

对于区块链系统中的第一次选举过程中,其对应的代表节点设备为区块链系统在初始化时所设置的初期代表节点设备,而在后续的每一次选举过程中,其对应的代表节点设备均为上一次选举出的代表节点设备。

202、目标服务器接收至少一个节点设备发送的该网络协议地址信息。

在本实施例中,该至少一个节点设备可以为至少一个处于候选状态的节点设备。该目标服务器接收多个网络协议地址信息,以便该目标服务器可以基于该多个网络协议地址信息,筛选出代表节点设备的网络协议地址。

当然,该至少一个节点设备还可以包括未处于候选状态的节点设备,本发明实施例对此不做限定。

203、第一节点设备接收用户的投票交易数据。

在本实施例中,该投票交易数据为用户利用用户设备对该区块链系统中至少一个处于候选状态的节点设备,进行投票的数据。

204、第一节点设备在区块链系统中广播该投票交易数据。

该广播可以使得区块链系统中的所有节点设备均接收到该投票交易数据。本发明实施例中,是以第一节点设备直接接收用户通过登录该第一节点设备进行投票,而产生的投票交易数据为例进行说明,而在一些实施例中,该第一节点设备可以直接接收用户通过登录其他节点设备进行投票后,其他节点设备所广播的投票交易数据,本发明实施例对此不做具体限定。

205、各个第二节点设备接收到投票交易数据。

该第二节点设备为将区块链系统中除第一节点设备以外的节点设备。需要说明的是,本发明实施例所涉及的“第一”“第二”等定语均不用于对节点设备的功能进行区分,而仅仅是区分不同节点设备。

206、当该区块链系统中的多个节点设备对该投票交易数据共识通过时,该区块链系统中的多个节点设备将该投票交易数据存储至该区块链系统的目标区块链中。

本发明实施例的多个节点设备对投票交易数据共识通过时,可以是指区块链系统中的多个代表节点设备对该投票交易数据共识通过。对于第一次进行选举的区块链系统来说,上文中所提及的初期代表节点设备可以作为本次参与共识过程的节点,后续在选举出多个代表节点设备后,该选举得到的多个代表节点设备可以切换至代表节点设备的运行状态,来参与整个区块链系统的共识和生成区块过程,而未被选举为代表节点设备的节点设备则运行于非代表节点设备的状态,不参与整个区块链系统的共识和生成区块过程。

207、当已生成的区块数达到预设数目时,第一节点设备从该目标区块链的各个区块中,确定多个第一区块,该多个第一区块用于存储各个节点设备的投票交易数据。

在该步骤207中,第一节点设备可以从该目标区块链的各个区块中,基于投票交易类型进行查询,得到存储有该投票交易类型的区块,作为第一区块。

在本发明实施例中,可以在整个区块链系统的运行过程中进行多次选举,以避免由于某个代表节点设备发生状况所造成的系统运行问题,例如,某个代表节点设备可能会设备运行不正常或是信用有问题等,从而可以保证基于代表节点设备的区块链系统的稳定运行。

该已生成区块为上次选举之后生成的区块,当已生成的区块达到第一预设数目时才进行一次选举的方式,可以保证代表节点设备的切换时长,即多久切换一次代表节点设备,从而可以避免频繁切换代表节点设备,影响整个区块链系统的正常运行。

可以理解的是,该已生成的区块不仅包含基于投票交易数据生成的区块,还包括基于其他交易数据生成的区块,当然,还可以包含基于投票交易数据以及其他交易数据生成的区块,本发明实施例对此不做赘述。

需要说明的是,区块链系统中的各个节点设备均会执行上述步骤207的过程,本发明实施例对此不做赘述。

208、第一节点设备根据该多个第一区块中所存储的投票交易数据,确定该区块链系统中各个节点设备的票数。

投票交易数据包括交易类型、被投票节点设备列表以及投票用户私钥签名等,因此,对于每个第一区块中所存储的投票交易数据,可以统计出哪个节点设备得到了多少票数。

在本发明实施例中,区块链系统中的投票方式可以是增量投票的方式,增量投票是指在投票交易中指明被投票的节点设备,并保留历史投票结果。例如用户已经对a、b和c三个节点设备投票,本次投票对象为d节点设备,那么在本次投票时,可以直接对d节点设备投票,其投票交易数据中的被投票节点设备列表中应携带该d节点设备的设备公钥,也即是,该用户通过多轮投票,对a、b、c和d四个节点设备进行了投票。

基于上述增量投票的方式,也可以对被投票的节点设备进行撤票,例如用户已经对a、b和c三个节点设备投票,下次若想撤掉对c节点设备的投票,那么在下一次投票时,可以直接在投票交易数据中指出撤回对c节点设备的投票。

需要说明的是,在投票以及对投票进行统计时也可以采用其他方式,在此本发明不做具体限定。

上述步骤207至208实际上是对如何获取各个处于候选状态的节点设备对应的投票交易数据的示例,该过程也可以采用其他方式,在此本发明不做具体限定。

209、第一节点设备按照票数从高到低,确定选举结果,该选举结果包括该区块链系统本次选举出的第二预设数目的代表节点设备的公钥和各个代表节点设备的票数。

该第二预设数目可以和当前正在工作的代表节点设备的数目保持一致,也即是通过该第二预设数目的设置,可以保证当前工作的代表节点设备可以被选举出代表节点设备全部切换掉。当然,该第二预设数目也可以进行变更,例如,该第二预设数目可以根据区块链系统中节点设备的数量变化进行变更,当节点设备的数量增大时,该第二预设数目可以增大。

值得注意的是,该第一节点设备可以根据自己确定的选举结果,确定自己是否是本次新选举的代表节点设备,也即是该区块链系统中的任一节点设备,都可以根据自己统计的选举结果,来确定自己是否是本次新选举的代表节点设备,以及其他本次新选举的代表节点设备的身份。

上述步骤207至209为第一节点设备根据该多个节点设备的票数,确定该区块链系统中的多个代表节点设备的过程的一种实施方式,也即是,根据该多个第一区块中所存储的投票交易数据,确定该区块链系统中的第二预设数目的代表节点设备的过程。

需要说明的是,上述选举过程仅为一种示例性的说明,在一些实施例中,还可以采取其他选举方式来选举出区块链系统中的代表节点设备,本发明实施例对此不做限定。

210、新选举的代表节点设备向目标服务器发送网络协议地址获取请求。

其中,该网络协议地址获取请求携带该节点设备的公钥,以便目标服务器可以确定发送该网络协议地址获取请求的节点设备是否是本次新选举的代表节点设备。

需要说明的是,该新选举的代表节点设备向目标服务器发送网络协议地址获取请求之前,需要根据该节点设备确定的选举结果,来确定自己是否是新选举的代表节点设备,如果是,则该新选举的代表节点设备向目标服务器发送网络协议地址获取请求。

211、当目标服务器接收到该网络协议地址获取请求时,目标服务器向该区块链系统发送查询请求,该查询请求用于查询本次选举的选举结果。

目标服务器向该区块链系统发送查询请求,可以是向该区块链系统中的任一节点设备送查询请求,也可以是向该区块链系统中的特定节点设备送查询请求,也可以直接向该区块链系统发送查询请求,本发明在此不作具体限定。

212、区块链系统中的任一节点设备在接收到查询请求时,向该目标服务器发送本次选举的选举结果。

213、当目标服务器接收到该选举结果,且确定该第一节点设备为本次选举过程中选举出的代表节点设备时,向该第一节点设备发送网络协议地址列表,该网络协议地址列表包括所述本次选举过程中选举出的代表节点设备的网络协议地址信息。

该选举结果中包含多个代表节点设备的公钥,因此,在目标服务器接收到该选举结果时,可以根据该多个代表节点设备的公钥以及该第一节点设备的公钥,判断该第一节点设备是否为本次选举出的代表节点设备,如果是,则根据该多个代表节点设备的公钥,从已接收到的网络协议地址列表中,筛选出该各个代表节点设备的网络协议地址信息,并基于该各个代表节点设备的网络协议地址信息,生成网络协议地址列表。值得注意的是,当目标服务器确定该第一节点设备为本次新选举的节点设备时,目标服务器才会向该第一节点设备发送网络协议地址列表,如果经目标服务器判断该第一节点设备不是本次新选举的节点设备时,则该目标服务器不响应该第一节点设备发送的网络协议地址获取请求。

当然,上述过程所描述的是在确定了某一个节点设备为代表节点设备时,才执行网络协议地址筛选过程为例进行说明的,在一些实施例中,目标服务器可以在接收到选举结果后,同步执行对第一节点设备的判断以及网络协议地址筛选,再基于判断结果确定是否将生成的网络协议地址列表发送给该第一节点设备。

需要说明的是,上述过程是以当接收到网络协议地址获取请求时,目标服务器进行代表节点设备的查询为例进行说明,在一些实施例中,该目标服务器还可以无需由网络协议地址获取请求触发该查询过程,而是在区块链系统的选举结束后自动进行查询并基于查询结果生成网络协议地址列表的过程,可以减少实时查询实时生成的耗时,本发明实施例对具体查询时机不做限定。

在一些实施例中,新选举出的代表节点设备还可以无需向目标服务器发送网络协议地址获取请求,而是由目标服务器在获取到选举结果后,向各个新选举出的代表节点设备主动发送该网络协议地址列表,以减少信令交互。

214、新选举的代表节点设备接收到该网络协议地址列表后,切换至代表状态运行。

本发明实施例提供的方法,通过目标服务器可以对所有候选节点设备的网络协议地址进行管理,在选举成功时,仅向新选举出的代表节点设备发送包括了所有新选举的代表节点设备的网络协议地址的网络协议地址列表,使得这些代表节点设备的网络协议地址,仅能被本次新选举出的代表节点设备知道,降低了代表节点设备的网络协议地址的暴露率,保证了代表节点设备的安全。

进一步地,在选举过程中,可选取不同的计票方式,可以为区块链系统选举出代表节点设备,提供更加灵活的选举方式。间隔生成区块第一预设数目时,统计区块链系统中各个节点设备的票数,并对票数进行从高到低的排序,进而选举出代表节点设备,该方式还可以控制代表节点设备的切换时长,从而避免代表节点设备频繁切换,区块链系统无法正常工作。区块链系统进行多次选举,可以避免某些不能正常工作的代表节点设备被切换掉,以维持区块链系统正常运行。该区块链系统中的代表节点设备在共识过程中,通过彼此的网络协议地址,进行直接通讯,进一步提高了区块链系统的工作效率。

上述实施例为降低代表节点设备网络协议地址暴露率的一种选举代表节点设备方法,还可以是其他降低代表节点设备网络协议地址暴露率的选举代表节点设备方法,在此用一个具体的实施例来描述如下:

图3是本发明实施例提供的一种代表节点设备选举方法流程图,参见图3,本发明实施例提供的方法流程包括:

301、第一节点设备接收用户的投票交易数据。

在本发明实施例中,以用户利用用户设备向第一节点设备发起投票交易为例,区块链系统进行初始化,确定初期代表节点设备,该初期代表节点设备是在未进行选举时区块链系统中用于进行区块生成和区块共识的节点设备,在该初始化阶段,可以将初始代表节点设备的公钥存储在区块链的创世区块中,使得区块链系统中每个节点设备均知道该初期代表节点设备的公钥。

另外,设置任一个初期代表节点设备都知道所有初期代表节点设备的网络协议地址信息,区块链系统中非初期代表节点设备不知道初期代表节点设备的网络协议地址信息。

302、第一节点设备在区块链系统中广播该投票交易数据。

该投票交易数据是,用户对区块链系统的至少一个第一节点设备进行投票的数据。

303、各个第二节点设备接收到投票交易数据。

304、当该区块链系统中的多个节点设备对该投票交易数据共识通过时,该区块链系统中的多个节点设备将该投票交易数据存储至该区块链系统的目标区块链中。

本发明实施例的多个节点设备对投票交易数据共识通过时,可以是指区块链系统中的多个代表节点设备对该投票交易数据共识通过。对于第一次进行选举的区块链系统来说,上文中所提及的初期代表节点设备可以作为本次参与共识过程的节点,后续在选举出多个代表节点设备后,该选举得到的多个代表节点设备可以切换至代表节点设备的运行状态,来参与整个区块链系统的共识和生成区块过程,而未被选举为代表节点设备的节点设备则运行于非代表节点设备的状态,不参与整个区块链系统的共识和生成区块过程。

305、当已生成的区块数达到第一预设数目时,第一节点设备从该目标区块链的各个区块中,确定多个第一区块,该多个第一区块用于存储各个节点设备的投票交易数据。

需要说明的是,区块链系统中的各个节点设备均会执行上述步骤305的过程。

306、第一节点设备根据该多个第一区块中所存储的投票交易数据,确定该区块链系统中各个节点设备的票数。

区块链系统中的投票方式可以为全量投票的方式,全量投票是指每次交易均需指出被投票的节点设备,并且上次的投票无效,例如用户已经对a节点设备和b节点设备投票,下次投票对象为c节点设备和d节点设备,那么用户在下次投票时,不仅需要指明对c节点设备和d节点设备进行投票,还需要直接覆盖掉用户上次对a节点设备和b节点设备的投票。

需要说明的是,在投票以及对投票进行统计时也可以采用其他方式,在此本发明不做具体限定。

上述步骤305至306实际上是对如何获取各个处于候选状态的节点设备对应的投票交易数据的示例,该过程也可以采用其他方式,在此本发明不做具体限定。

307、第一节点设备按照票数从高到低,确定选举结果,该选举结果包括该区块链系统中的第二预设数目的代表节点设备的公钥和各个代表节点设备的票数。

该第二预设数目可以和当前正在工作的代表节点设备的数目保持一致,也即是通过该第二预设数目的设置,可以保证当前工作的代表节点设备可以被选举出代表节点设备全部切换掉。当然,该第二预设数目也可以进行变更,例如,该第二预设数目可以根据区块链系统中节点设备的数量变化进行变更,当节点设备的数量增大时,该第二预设数目可以增大。

值得注意的是,该第一节点设备可以根据自己确定的选举结果,确定自己是否是本次新选举的代表节点设备,也即是该区块链系统中的任一节点设备,都可以根据自己确定的选举结果,来确定自己是否是本次新选举的代表节点设备,以及其他本次新选举的代表节点设备的身份。

所以该步骤307,确定选举结果的过程,即是确定自己以及本次选举出的代表节点设备的身份的过程。

上述步骤305至307为第一节点设备根据该多个节点设备的票数,确定该区块链系统中的多个代表节点设备的过程的一种实施方式,也即是,根据该多个第一区块中所存储的投票交易数据,确定该区块链系统中的第二预设数目的代表节点设备的过程。

308、新选举的代表节点设备在区块链系统中广播第三预设数目的密文。

以便在本次选举过程中其他新选举的代表节点设备都可以接收到该密文,并都可以对该密文进行解密。

其中,设置第三预设数目,是在为了本次选举过程中其他新选举的代表节点设备都可以接收到自己可以解密的密文,第三预设数目可以比区块链系统中正在工作的代表节点的数目少1。

该第三预设数目的密文的生成过程是,首先,将该新选举的代表节点设备的网络协议地址信息复制为第三预设数目的网络协议地址信息;其次,分别采用本次选举出的各个代表节点设备的公钥,对该第三预设数目的网络协议地址信息进行加密;最后,得到第三预设数目的密文。可选地,采用所述新选举的代表节点设备的私钥,对所述新选举的代表节点设备的原始网络协议地址信息进行加密,得到所述新选举的代表节点设备的网络协议地址信息。

当该密文被该新选举的代表节点设备在区块链系统中广播时,可以保证仅有新选举的代表节点设备才能解密,降低了代表设备的网络协议地址信息的暴露率,保证了区块链系统中代表节点设备的安全。

需要说明的是,该区块链系统中的节点设备可以组成一个p2p网络,节点设备以广播的形式,实现节点设备之间的通讯。为了提高代表节点设备之间的通讯效率,在各个代表节点设备还可以通过彼此的网络协议地址,来实现通讯。对本发明实施例而言,新选举的代表节点设备目前还不知道彼此的网络协议地址,新选举的代表节点设备可以通过在该p2p网络内广播密文,使得其他新选举的代表节点设备接收该密文,并通过解密来获得该新选举的代表节点设备的网络协议地址,以便各个新选举的代表节点设备在进行代表节点设备的工作时,可以利用彼此的网络协议地址,进行直接通讯,从而在保证网络协议地址对代表节点设备以外的设备隐藏的情况下,还能提高代表节点设备的工作效率。

309、其他新选举的代表节点设备接收并解密该密文。

该解密是指新选举的代表节点设备可以基于自己的私钥,对利用自己公钥加密的密文进行解密。

310、间隔预设时长后,新选举的代表节点设备切换至代表状态运行。

设置预设时长,可以保证有足够的时间,可以使在本次选举过程中选举出的代表节点设备,均可以接收到其他新选举的代表节点设备发送的密文,并对密文进行解密,即可保证新选举的代表节点设备都可以获取其他新代表节点设备的网络协议地址信息。

本发明实施例提供的方法,通过新选举的代表节点设备可以在该区块链系统内广播加密的网络协议地址,该网络协议地址的加密方式可以是利用本次选举的代表节点设备的公钥进行加密,使得该加密网络协议地址仅能被新选举的代表节点设备才可以解密,也即是该网络协议地址仅能被本次选举过程中选举出的代表节点设备知道,从而降低了代表节点设备的网络协议地址的暴露率,保证了代表节点设备的安全。

进一步地,通过选举出的代表节点设备可以代替区块链系统的全部节点设备生成区块,并且还可以对新区块完成共识的工作,提高了区块链系统的工作效率,另外,该区块链系统中的代表节点设备在共识时,可以通过彼此的网络协议地址,进行直接通讯,进一步提高了区块链系统的工作效率。

图4是本发明实施例提供的一种选举代表节点装置结构示意图,参见图4,包括第一接收模块401、第二接收模块402、发送模块403。

其中,第一接收模块401与第二接收模块402连接,用于接收区块链系统中的至少一个节点设备的网络协议地址信息;

第二接收模块402与发送模块403连接,用于接收第一节点设备的网络协议地址获取请求,该网络协议地址获取请求用于请求代表节点设备的网络协议地址信息;

发送模块403,用于当确定该第一节点设备为本次选举过程中选举出的代表节点设备时,向该第一节点设备发送网络协议地址列表,该网络协议地址列表包括该本次选举过程中选举出的代表节点设备的网络协议地址信息;

当确定该第一节点设备不是本次选举过程中选举出的代表节点设备时,不响应该网络协议地址获取请求。

可选地,该装置还包括:

查询模块,用于当该本次选举过程结束时,向该区块链系统发送查询请求,该查询请求用于查询该本次选举过程中选举出的各个代表节点设备;

第三接收模块,用于接收该各个代表节点设备的公钥。

可选地,该装置还包括:

生成模块,用于根据该各个代表节点设备的公钥,从已接收到的网络协议地址信息中,筛选出该各个代表节点设备的网络协议地址信息,基于该各个代表节点设备的网络协议地址信息生成该网络协议地址列表。

本发明实施例提供的装置,可以存储该区块链系统中的节点设备的网络协议地址,并可以基于区块系统中的第一节点设备的网络协议地址获取请求,查询该区块链系统中本次选举过程中选举出的代表节点设备,如果该第一节点设备为新的代表节点设备,则向该第一节点设备发送所有新选举的代表节点设备的网络协议地址信息,否则,该装置不予回应,由此可见,新选举的代表节点设备的网络协议地址,仅在所有新选举的代表节点设备中暴露,降低了该区块系统中代表节点设备的暴露率,保证了新代表节点设备的安全,维护了该区块链系统的正常运作。

图5是本发明实施例提供的一种选举代表节点装置结构示意图,参见图5,包括第一发送模块501、第二发送模块502、接收模块503和切换模块504。

第一发送模块501与第二发送模块502连接,用于当该节点设备处于候选状态时,向目标服务器送该节点设备的网络协议地址信息;

第二发送模块502与接收模块503连接,用于当该节点设备在本次选举过程中被选举为代表节点设备时,向该目标服务器发送网络协议地址获取请求,该网络协议地址获取请求携带该节点设备的公钥;

接收模块503与切换模块504连接,用于接收该目标服务器返回的网络协议地址列表,该网络协议地址列表包括该本次选举过程中选举出的代表节点设备的网络协议地址信息;

切换模块504,用于将该节点设备切换至代表状态运行。

本实施例提供的装置,可以视为区块链系统中的代表节点设备的候选节点设备,该节点设备可以预先在目标服务器中储存网络协议地址,一旦该节点设备当选为代表节点设备,则可以向目标服务器发送网络协议地址获取请求,进而可以接收到本次选举过程中选举出的代表节点设备的网络协议地址信息,进而保证新选举的代表节点设备可以获取本次选举过程中选举出的代表节点设备的网络协议地址信息,达到了新选举的代表节点设备的网络协议地址信息被新选举的代表节点设备所知的目的,在共识时区块链系统的代表节点设备,可以基于彼此的网络协议地址,进行直接通讯,提高了代表节点设备的工作效率,进一步地提高了该区块链系统的工作效率。

本发明实施例提供了一种选举代表节点装置,包括复制模块,加密模块,广播模块,以及切换模块。所述复制模块用于当节点设备在本次选举过程中被选举为代表节点设备时,将所述节点设备的网络协议地址信息复制为预设数目的网络协议地址信息;所述加密模块用于分别采用所述本次选举出的各个代表节点设备的公钥,对所述预设数目的网络协议地址信息进行加密,得到预设数目的密文;所述广播模块用于广播所述预设数目的密文;所述切换模块用于间隔预设时长,所述节点设备切换至代表状态运行。

加密模块还用于,在所述复制模块将所述节点设备的网络协议地址信息复制为预设数目的网络协议地址信息之前,采用所述节点设备的私钥,对所述节点设备的原始网络协议地址信息进行加密,得到所述节点设备的网络协议地址信息。

本发明实施例提供的一种选举代表节点装置还包括投票模块,投票模块用于,在节点设备在本次选举过程中被选举为代表节点设备之前,对所述区块链系统中的至少一个节点设备进行投票,所述投票为所述区块链系统选举代表节点进行的投票。

本发明实施例提供的一种选举代表节点装置还包括确定模块,所述确定模块用于,在对所述区块链系统中的至少一个节点设备进行投票后,根据所述至少一个节点设备的票数,确定所述区块链系统中预设数目的代表节点设备。

上述所有可选技术方案,可以采用任意结合形成本发明的可选实施例,在此不再一一赘述。

需要说明的是:上述实施例提供的选举代表节点设备装置,仅以上述各功能模块的划分进行举例说明,实际应用中,可以根据需要而将上述功能分配由不同的功能模块完成,即将装置的内部结构划分成不同的功能模块,以完成以上描述的全部或者部分功能。另外,上述实施例提供的选举代表节点设备方法实施例属于同一构思,其具体实现过程详见方法实施例,这里不再赘述。

图6是本发明实施例提供的一种服务器的结构示意图,该服务器600可因配置或性能不同而产生比较大的差异,可以包括一个或一个以上cpu(centralprocessingunits,处理器)601和一个或一个以上的存储器602,其中,该存储器602中存储有至少一条指令,该至少一条指令由该处理器601加载并执行以实现上述各个方法实施例提供的方法。当然,该服务器还可以具有有线或无线网络接口、键盘以及输入输出接口等部件,以便进行输入输出,该服务器还可以包括其他用于实现设备功能的部件,在此不做赘述。

在示例性实施例中,还提供了一种计算机存储介质,例如包括指令的存储器,上述指令可由终端中的处理器执行以完成上述实施例中的选举代表节点设备方法。例如,该计算机存储介质可以是ram(read-onlymemory,rom)、随机存取存储器(randomaccessmemory,只读存储器)、cd-rom(compactdiscread-onlymemory,只读光盘)、磁带、软盘和光数据存储设备等。

本领域普通技术人员可以理解实现上述实施例的全部或部分步骤可以通过硬件来完成,也可以通过程序来指令相关的硬件完成,该程序可以存储于一种计算机存储介质中,上述提到的存储介质可以是只读存储器,磁盘或光盘等。

上述仅为本发明的较佳实施例,并不用以限制本发明,凡在本发明的精神和原则之内,所作的任何修改、等同替换、改进等,均应包含在本发明的保护范围之内。

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