ELECTION METHOD AND APPARATUS FOR REPRESENTATIVE NODE DEVICE, COMPUTER DEVICE, AND STORAGE MEDIUM
本申请要求于2018年09月07日提交中国专利局,申请号为201811046270.0、发明名称为“代表节点设备选举方法、装置、计算机设备及存储介质”的中国专利申请的优先权,其全部内容通过引用结合在本申请中。 本申请涉及区块链技术领域,特别涉及一种代表节点设备选举方法、装置、计算机设备及存储介质。 近年来,随着网络技术的发展,区块链系统被广泛应用在生活中,区块链系统可以由多个节点设备构成,每个节点设备均可以利用区块存储交易数据,并按照时间顺序将区块以顺序相连的方式组合成一种链式数据结构,从而在区块链系统内形成一种分布式账本。 目前,节点设备生成区块可以是如下过程,当任一个节点设备上发生交易时,该节点设备可以对交易数据进行记录,并在区块链系统中广播该交易数据,以使得区块链系统中的其他节点设备接收到该交易数据,当区块链系统上的节点设备接收到交易数据之后,可以将交易数据打包并产生新区块,并通过共识机制验证新区块,当新区块通过验证后,各个节点设备可以将该新区块添加至节点上配置的区块链中。 在上述节点设备生成区块的过程中,为提高区块链系统的工作效率,可以选举出一种代表节点设备来代替所有节点设备生成区块。但是区块链系统中的任一节点设备均可能成为代表节点设备,而每个节点设备因其性能或者权威性不同,导致节点设备的资质不同,并且区块链系统中可能存在不断发送错误信息的恶意节点设备,一旦一些资质不足或者恶意节点设备当选代表节点设备,就会影响区块链系统的正常运作。此时,就亟需一种能够保证区 块链系统正常运作的选举代表节点设备的方法。 发明内容 本申请实施例提供了一种代表节点设备选举方法、装置、计算机设备及存储介质。 一种代表节点设备选举方法,由第一节点设备执行,所述第一节点设备为区块链系统中的任一节点设备,所述方法包括: 接收新增候选者交易数据,所述新增候选者交易数据携带凭据数据,所述凭据数据用于指示所述第一节点设备符合候选节点设备的资质要求; 当所述区块链系统中多个节点设备对所述新增候选者交易数据共识通过时,将所述新增候选者交易数据存储至所述区块链系统的目标区块链上;及 根据所述目标区块链上已存储的所述新增候选者交易数据候选节点设备交易数据,进行对代表节点设备的选举过程。 一种代表节点设备选举装置,所述装置包括: 接收模块,用于接收新增候选者交易数据,所述新增候选者交易数据携带凭据数据,所述凭据数据用于指示所述第一节点设备符合候选节点设备的资质要求; 存储模块,用于当所述区块链系统中多个节点设备对所述新增候选者交易数据共识通过时,将所述新增候选者交易数据存储至所述区块链系统的目标区块链上;及 选举模块,用于根据所述目标区块链上已存储的所述新增候选者交易数据候选者交易数据,进行对代表节点设备的选举过程。 一种计算机设备,其特征在于,所述计算机设备包括处理器和存储器,所述存储器中存储有计算机可读指令,所述计算机可读指令被所述处理器执行时,使得所述处理器执行以下步骤: 接收新增候选者交易数据,所述新增候选者交易数据携带凭据数据,所述凭据数据用于指示所述第一节点设备符合候选节点设备的资质要求; 当所述区块链系统中多个节点设备对所述新增候选者交易数据共识通过 时,将所述新增候选者交易数据存储至所述区块链系统的目标区块链上;及 根据所述目标区块链上已存储的所述新增候选者交易数据,进行代表节点设备的选举过程。 一种非易失性的计算机可读存储介质,存储有计算机可读指令,所述计算机可读指令被一个或多个处理器执行时,使得所述一个或多个处理器执行以下步骤: 接收新增候选者交易数据,所述新增候选者交易数据携带凭据数据,所述凭据数据用于指示所述第一节点设备符合候选节点设备的资质要求; 当所述区块链系统中多个节点设备对所述新增候选者交易数据共识通过时,将所述新增候选者交易数据存储至所述区块链系统的目标区块链上;及 根据所述目标区块链上已存储的所述新增候选者交易数据,进行代表节点设备的选举过程。 本申请的一个或多个实施例的细节在下面的附图和描述中提出。本申请的其它特征、目的和优点将从说明书、附图以及权利要求书变得明显。 为了更清楚地说明本申请实施例中的技术方案,下面将对实施例描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本申请的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。 图1是本申请实施例提供的一种区块链系统结构示意图; 图2是本申请实施例提供的一种代表节点设备选举方法流程图; 图3是本申请实施例提供的一种节点设备的资质审核的过程流程图; 图4是本申请实施例提供的一种代表节点设备选举装置结构示意图; 图5是本申请实施例提供的一种服务器的结构示意图。 为使本申请的目的、技术方案和优点更加清楚,下面将结合附图对本申 请实施方式作进一步地详细描述。 图1是本申请实施例提供的一种区块链系统结构示意图,参见图1,该区块链系统包括多个节点设备,该多个节点设备可以配置有同一条区块链。该多个节点设备可以是同一机构的多个服务器,还可以是属于不同机构的多个服务器,还可以是个人用户的多个终端等,本申请实施例对此不做限定。其中,本申请各实施例中所提及的“多个”指“多于一个”。 该多个节点设备均可以接收交易数据,但区块链系统在对交易数据进行上链时,因各个节点设备用途不同,可以分为代表节点设备、非代表节点设备。其中,代表节点设备用于生成区块以及共识区块,非代表节点设备用于接收代表节点设备共识的区块,验证区块,并将验证通过的区块存储至目标区块链中,并且非代表节点设备因其性能不同,可以分为普通节点设备和候选节点设备。 另外,在本申请实施例中,还提供目标服务器,该目标服务器可以作为审核方,用于接收区块链系统中的至少一个节点设备发送的候选申请请求,并基于该候选申请请求对该节点设备进行资质审核,并生成凭据数据,该目标服务器可以将该凭据数据发送给被审核的节点设备,以便该节点设备凭借符合预定规则的凭据数据,可以成为该区块链系统中的代表节点设备的候选节点设备。 在一些实施例中,区块链系统记录交易数据的过程可以有如下示例过程:当区块链系统中的任一节点设备接收到交易数据时,该节点设备需将接收到的交易数据广播在区块链系统中,以便其他节点设备接收到该交易数据。当区块链系统中的代表节点设备接收到该交易数据后,代表节点设备基于交易数据生成区块,以便各个代表节点设备对该区块进行共识,当代表节点设备对该区块共识通过后,代表节点设备在区块链系统中广播该区块,非代表节点设备接收到代表节点设备广播的区块后,对该区块进行验证,通过验证后,将该区块存储至该非代表节点设备配置的目标区块链上。 本申请实施例所涉及的共识,是指区块链系统中多个节点设备对数据分别进行验证,当任一个节点设备验证通过时,会在区块链系统中广播验证通过消息,当任一个节点设备所接收到的验证通过消息符合预设共识策略时,则确定该数据共识通过。 例如,以共识是由区块链系统中的代表节点设备进行为例进行说明,该共识可以通过POW(proof of work,工作量证明)机制完成。其过程描述如下:区块链系统中的代表节点设备生成区块;代表节点设备计算该生成区块的区块头的哈希值,看其是否小于当前的目标值,如果哈希值大于目标值,代表节点设备就修改该生成区块中的随机数,并重新计算;当代表节点设备计算的哈希值小于目标值时,该代表节点设备向其他代表节点设备广播该第一区块,也可以在区块链系统中广播;其他代表节点设备接收到该第一区块后,对其进行验证;当多数其他多数代表节点设备都认同该第一区块的有效性时,即为共识通过。 本申请实施例提供的系统,可以无需区块链系统中的所有节点设备生成区块,也无需区块链系统中大多数节点设备对生成的区块达成共识后,再进行验证是否可以存储交易数据,仅通过代表节点设备生成区块、共识区块以及非代表节点设备完成验证,即可将交易数据记录在区块链系统中,从而提高了区块链系统的工作效率。 进一步地,为了体现该区块链系统选举代表节点设备的过程,在此用一个具体的实施例来描述如下: 图2是本申请实施例提供的一种代表节点设备选举方法流程图,参见图2,本申请实施例提供的方法流程包括: S201、第一节点设备向目标服务器发送候选申请请求,该候选申请请求携带该第一节点设备的资质信息。 其中,该第一节点设备为区块链系统中的任一节点设备。该目标服务器为该区块链系统中的一个或多个服务器,也可以为区块链系统外的一个或多个服务器,该目标服务器可以配置至少一个终端设备,作为审核方的用户可以通过登录终端设备,来对区块链系统中的节点设备进行资质审核。可以理解的是,目标服务器可以为区块链系统中的任一个节点设备;或,目标服务器为与该区块链系统关联的第三方机构的服务器。 该第一节点设备向目标服务器发送候选申请请求,以便该目标服务器可以基于该候选申请请求中携带的资质信息,对该第一节点设备进行资质审核,审核该第一节点设备能否成为候选节点设备。 该候选申请请求所携带的该第一节点设备的资质信息可以是以下三个资质中的任一项:该第一节点设备的设备性能;该节点设备已向该目标服务器缴纳预设数目的保证金;该第一节点设备对应的用户账号的信用值。当然,该资质信息也可以包括其他内容,本实施例对此不进行限定。 需要说明的是,如果该区块链系统当前处于第一次选举的过程中,那么该第一节点设备可以是非代表节点设备,如果该区块链系统当前的选举过程不是第一次选举过程,则该第一节点设备是任一个普通节点设备,也即是,该第一节点设备即不是代表节点设备,也不是候选节点设备。 S202、该目标服务器接收到候选申请请求后,对该第一节点设备进行资质审核,当该第一节点设备符合候选节点设备的资质要求时生成凭据数据。 此时所述第一节点设备可以称为第一目标节点设备,也即是,当该第一目标节点设备符合候选节点设备的资质要求时,生成凭据数据,所述凭据数据可以用于指示第一目标节点设备符合候选节点设备的资质要求。 该目标服务器接收到候选申请请求后,可以将该候选申请请求中携带的资质信息,发送至该目标服务器上配置的至少一个终端设备上,以便用户可以通过终端设备对该节点设备进行资质审核。 该资质审核的过程包括:当该资质信息符合候选节点设备的资质要求时,即审核通过,例如,该资质信息为该节点设备的设备性能符合预设性能条件,即审核通过;或者该资质信息为该节点设备已缴纳预设数目的保证金,即审核通过;又或者该资质信息为该节点设备对应的用户的信用达到预设信用条件,即审核通过。当该第一节点设备通过资质审核,意味着该第一节点设备具有成为候选节点设备的潜质。可以理解的是,第一目标节点设备可以是区块链系统中的任意一个节点设备,第一目标节点设备符合候选节点设备的资质要求,第一目标节点设备可以是该第一节点设备。 当对该第一节点设备(第一目标节点设备)的资质审核通过时,终端设备上会生成凭据数据,该凭据数据可以包括同意标识、凭据生成时间、凭据有效期以及该用户的签名,可以理解的是,该目标服务器接收到候选申请请求后,可以将该候选申请请求中携带的资质信息,发送至该目标服务器上配置的多个终端设备上,以便多个用户可以通过终端设备对该节点设备进行资质审核。进而,凭据数据可以包括多个同意标识、多个凭据生成时间、多个 凭据有效期以及多个用户的签名。其中,该同意标识是指该用户同意该第一节点设备成为候选节点设备的标识,该有效期可以用作对凭据数据的有效性验证,避免非候选节点设备利用恶意获取到的凭据数据,成为代表节点设备,签名是用户对该资质信息的签名。当对该第一节点设备的资质审核没有通过时,终端设备可以不生成凭据数据。终端设备将生成的凭据数据发送至该目标服务器,该目标服务器基于所有凭据数据,汇总成一份凭据数据。当然,该终端设备还可以仅向目标服务器反馈审核结果,由目标服务器根据参与审核的终端设备的审核结果,来生成凭据数据。 需要注意的是,该目标服务器也可以自己对该第一节点设备进行资质审核。当第一节点设备通过该目标服务器的资质审核时,该目标服务器上生成凭据数据,该凭据数据包括:同意标识、凭据时间、凭据有效期以及该目标服务器的签名,该签名是指,该目标服务器利用自己的私钥,对该第一节点设备的资质信息的签名。 该目标服务器可以采用线下审核或线上审核的方式,在采用线下审核方式时,不会影响到该目标服务器线上的操作,且可以基于人工来对资质信息进行梳理和分析等过程,可以提高审核的效力和可信度,而在采用线上审核方式时,可以提高审核的实时性,降低人力成本。 S203、该目标服务器向该第一节点设备发送该凭据数据。 该目标服务器向该第一节点设备发送凭据数据,以便该第一节点设备可以基于该凭据数据,在区块链系统中发起新增候选者交易。 S204、该第一节点设备基于该凭据数据,在该区块链系统中广播新增候选者交易数据,该新增候选者交易数据包括该凭据数据以及候选节点设备列表。所述候选节点设备列表包括多个第一目标节点设备,该凭据数据包括多个第一目标节点设备对应的凭据数据。 该第一节点设备在区块链系统中发起新增候选者交易,以便该第一节点设备可以成为候选节点设备。该广播可以使得区块链系统中的所有节点设备均接收到该新增候选者交易数据。 在本申请实施例中,是以第一节点设备申请成为候选节点设备,并由第一节点设备发送新增候选者交易数据为例进行说明,而在一些实施例中,发送该新增候选者交易数据的节点设备可以是区块链系统中的任一个节点设 备,接收到新增候选者交易数据的节点设备可以是区块链系统中的任一个节点设备,本申请实施例在此不做限定。 S205、各个第二节点设备接收该新增候选者交易数据。 其中,第二节点设备为除第一节点设备以外的节点设备,需要说明的是,本申请实施例所涉及的“第一”“第二”“第三”等定语均不用于对节点设备的功能进行区分,而仅仅是区分不同节点设备。 S206、当该区块链系统中的多个节点设备对该新增候选者交易数据共识通过时,该区块链系统中的多个节点设备将该新增候选者交易数据存储至该区块链系统的目标区块链中。 本申请实施例的多个节点设备对该新增候选者交易数据共识通过,可以是指区块链系统中的多个代表节点设备对该新增候选者交易数据共识通过。其中,区块链系统中的多个代表节点设备具体可以是第二节点设备中的多个代表节点设备。而多个代表节点设备对该新增候选者交易数据进行验证时,可以采取下述至少一种验证方式: (1)代表节点设备基于该凭据数据中是否具有预设数目的同意标识,来验证该新增候选者交易数据的有效性,当该凭据数据中具有预设数目的同意标识时,则该代表节点设备确定该新增候选者交易数据有效,当多个代表节点设备中确定该新增候选者交易数据有效的代表节点设备符合预设共识通过条件,即共识通过。该预设共识通过条件可以为所有代表节点设备均确定有效或所有代表节点设备中预设数目或预设比例的代表节点设备确定有效,本申请实施例对此不做限定。 (2)代表节点设备基于该凭据数据中的有效期,来验证该新增候选者交易数据的有效性,即当该凭据数据的有效期未超期时,则该代表节点设备认为该新增候选者交易数据有效,当多个代表节点设备认为该新增候选者交易数据有效,即共识通过。需要说明的是,凭据数据中可能包含多个有效期,而各个有效期代表的时间段可能不一致,可以采用多个有效期中的最早到期的有效期为准,来判断该新增候选者交易数据是否有效。 需要说明的是,对于第一次进行选举的区块链系统来说,预设的初期代表节点设备可以作为本次参与共识过程的节点设备,后续在选举出多个代表节点设备后,该选举得到的多个代表节点设备可以切换至代表节点设备的运 行状态,来参与整个区块链系统的共识和生成区块过程,而未被选举为代表节点设备的节点设备则运行于非代表节点设备的状态,不参与整个区块链系统的共识和生成区块过程。 上述步骤S201至S206为根据目标服务器对区块链中的节点设备进行资质审核,以确定该区块链系统中的多个候选节点设备的过程。 此时,整个区块链系统中的任一节点设备均知道第一目标节点设备作为候选节点设备的身份,那么在该区块链系统中,可以对该新增候选者交易数据中指示的多个候选节点设备,也即是多个第一目标节点设备,进行选举,以选举出代表节点设备。 区块链中的任意节点设备均可以根据所述目标区块链上已存储的新增候选者交易数据,进行代表节点设备的选举过程。 那么具体的选举过程,可以如下描述: S207、第一节点设备接收用户的投票交易数据。 该区块链系统中的交易数据类型可以包括投票交易数据和其他交易数据,而该投票交易数据可以基于用户在区块链系统中的投票目标生成,该投票交易数据可以包括:交易类型、被投票节点设备列表以及投票用户私钥签名等。 需要说明的是,在本实施例中,用户的投票目标为该区块链系统中存储的候选节点设备。 需要注意的是,在本申请实施例中,是以用户通过登录该第一节点设备进行投票,选举出代表节点设备为例,选举代表节点设备的过程,也可以是用户通过登录该区块链系统的其他节点设备,进行投票,在此本申请不做具体限定。 S208、第一节点设备在区块链系统中广播该投票交易数据。 S209、各个第二节点设备接收到投票交易数据。 S210、各个第二节点设备接收到该对候选节点设备的投票交易数据,当该区块链系统中的多个节点设备对该投票交易数据共识通过时,将该投票交易数据存储至该区块链系统的目标区块链中。 本申请实施例的多个节点设备对投票交易数据共识通过时,可以是指区块链系统中的正在工作的多个代表节点设备对该投票交易数据共识通过。 S211、当已生成的区块数达到第二预设数目时,第一节点设备从该目标区块链的各个区块中,确定多个第一区块,该多个第一区块用于存储各个候选节点设备的投票交易数据。 在该步骤S211中,第一节点设备可以从该目标区块链的各个区块中,基于投票交易类型进行查询,得到存储有该投票交易类型的区块,作为第一区块。 在本申请实施例中,可以在整个区块链系统的运行过程中进行多次选举,以避免由于某个代表节点设备发生状况所造成的系统运行问题,例如,某个代表节点设备可能会设备运行不正常或是信用有问题等,从而可以保证基于代表节点设备的区块链系统的稳定运行。 当已生成的区块达到第二预设数目时才进行一次选举的方式,可以保证代表节点设备的切换时长,即多久切换一次代表节点设备,从而可以避免频繁切换代表节点设备,影响整个区块链系统的正常运行。需要说明的是,该已生成区块为上次选举之后生成的区块。 可以理解的是,该已生成的区块不仅包含基于投票交易数据生成的区块,还包括基于其他交易数据生成的区块,当然,还可以包含基于投票交易数据以及其他交易数据生成的区块,本申请实施例对此不做赘述。 需要说明的是,区块链系统中的各个节点设备均会执行上述步骤S211的过程,本申请实施例对此不做赘述。 S212、第一节点设备根据该多个第一区块中所存储的投票交易数据,确定该区块链系统中各个候选节点设备的票数。 投票交易数据包括交易类型、被投票节点设备列表以及投票用户私钥签名等,因此,对于每个第一区块中所存储的投票交易数据,可以统计出哪个节点设备得到了多少票数。 在本申请实施例中,区块链系统中的投票方式可以是增量投票的方式,增量投票是指在投票交易中指明被投票的节点设备,并保留历史投票结果。例如用户已经对A、B和C三个节点设备投票,本次投票对象为D节点设备,那么在本次投票时,可以直接对D节点设备投票,其投票交易数据中的被投票节点设备列表中应携带该D节点设备的设备公钥,也即是,该用户通过多轮投票,对A、B、C和D四个节点设备进行了投票。 基于上述增量投票的方式,也可以对被投票的节点设备进行撤票,例如用户已经对A、B和C三个节点设备投票,下次若想撤掉对C节点设备的投票,那么在下一次投票时,可以直接在投票交易数据中指出撤回对C节点设备的投票。 需要说明的是,在投票以及对投票进行统计时也可以采用其他方式,在此本申请不做具体限定。 上述步骤S211至S212实际上是对如何获取各个候选节点设备对应的投票交易数据的示例,该过程也可以采用其他方式,在此本申请不做具体限定。 S213、第一节点设备按照票数从高到低,确定选举结果,该选举结果包括该区块链系统中的第三预设数目的代表节点设备的公钥和各个代表节点设备的票数。 该第三预设数目可以和当前正在工作的代表节点设备的数目保持一致,也即是通过该第三预设数目的设置,可以保证当前工作的代表节点设备可以被选举出代表节点设备全部切换掉。当然,该第三预设数目也可以进行变更,例如,该第三预设数目可以根据区块链系统中节点设备的数量变化进行变更,当节点设备的数量增大时,该第三预设数目可以增大。 值得注意的是,该第一节点设备可以根据自己确定的选举结果,确定自己是否是本次新选举的代表节点设备,也即是该区块链系统中的任一节点设备,都可以根据自己统计的选举结果,来确定自己是否是本次新选举的代表节点设备,以及其他本次新选举的代表节点设备的身份。 上述步骤S212至S213为第一节点设备根据该多个候选节点设备的票数,确定该区块链系统中的多个代表节点设备的过程的一种实施方式,也即是,根据该多个第一区块中所存储的投票交易数据,确定该区块链系统中的第三预设数目的代表节点设备的过程。当然,也可以采用其他选举方式,在此本申请不做具体限定。 S214、当前工作的代表节点设备切换至候选节点设备状态运行,本次新选举的代表节点设备切换至代表节点设备状态运行。 上述步骤S207至S214,是该区块链系统选举代表节点设备的过程,该区块链系统也可以删除该候选节点设备,具体的删除过程,可以描述如下: S215、任一候选节点设备在该区块链系统中广播删除候选者交易数据, 该删除候选者交易数据用于指示该候选节点设备退出选举。 此时,具备候选节点设备资质要求的节点设备中退出选举的候选节点设备可以称为第二目标节点设备。也即是,所述删除候选者交易数据用于指示将所述第一目标节点设备从候选节点设备中删除 当任一个候选节点设备不再想被选举为代表节点设备时,可以在区块链系统中发起删除候选者交易,也即是,广播候选者交易数据,以便各个节点设备在接收到该交易数据时,能够在下一次选举中不再为该候选节点设备进行投票。 S216、各节点设备接收到该删除候选者交易数据。 S217、当该区块链系统中的多个节点设备对该删除候选者交易数据共识通过时,该区块链系统中的多个节点设备将该删除候选者交易数据存储至该目标区块链中。 需要说明的是,当该区块链系统中正在工作的代表节点设备,对该删除候选者交易数据共识通过后,可以由代表节点设备对该删除候选者交易数据进行打包并生成区块,将区块发给各个非代表节点设备,由非代表节点设备将该删除候选者交易数据存储至该非代表节点设备配置的区块链中,从而达到该区块链系统中的各个节点设备共同维护一个候选节点设备列表的目的,那么在下次选举中,该候选节点设备就会失去后选资格,用户将不会对其进行投票。 S218、该第二目标节点设备切换至普通节点设备状态运行。 如果该第二目标节点设备为了成为代表节点设备,向目标服务器缴纳过保证金,此时该第二目标节点设备已经切换至普通节点设备,意味着该第二目标节点设备不会成为代表节点设备,那么该目标服务器需要原路径退还该候选节点设备设备缴纳的保证金。也即是,该方法还包括:接收目标交易数据,该目标交易数据用于将保证金退还至该第二目标节点设备的账户中。该目标交易数据可以是目标服务器作为区块链系统中的一个节点设备来发起,也可以是由目标服务器通过区块链系统中的任一个节点设备来发起,本申请实施例对此不做限定。 上述步骤S215至S218为候选节点设备的删除过程,可以发生于于区块链系统存在候选节点设备的任何时间段,对此本实施例不进行具体限定。另 外删除候选节点设备也可以采取其他删除方式,对此本实施例也不做具体限定。 本申请实施例提供的方法,通过目标服务器对区块链系统中的节点设备进行资质审核,并基于审核结果,向被审核的节点设备发送凭据数据,以证明该节点设备可以成为候选节点设备,该节点设备可以基于该凭据数据在该区块链系统中发起新增候选者交易,进而根据预设规则,确定候选节点设备,那么该区块链系统就可以从这些候选节点设备中选举出代表节点设备,从而不需要从该区块链系统中的所有节点设备中选举出代表节点设备,仅从候选节点设备中进行选举即可,提高了该区块链系统选举代表节点设备的选举效率。 进一步地,在选举过程中,间隔生成第二预设数目区块的时间,才进行统计区块链系统中各个节点设备的票数,进而选举出代表节点设备,该方式可以控制代表节点设备的切换时长,保证了代表节点设备的切换时长,可以使得代表节点设备不会频繁切换,使得区块链系统可以正常运作。由代表节点设备来代替区块链系统的全部节点设备进行生成区块以及对区块进行共识等工作,不仅避免了所有节点设备均执行上述过程,大大提高了区块链系统的工作效率,而且还保证了代表节点设备的资质,使得区块链系统可以更加高效地运行。另外,删除不满足资质要求的候选节点设备,可以进一步提高代表节点设备的资质,进而提高代表节点设备的工作效率。 在上述实施例中,采用一个目标服务器来审核区块链系统中的节点设备,而在一些实施例中,可以采用多个目标服务器来审核区块链系统中的节点设备,如以下描述: 图3是本申请实施例提供的一种节点设备的资质审核的过程流程图,参见图3,本实施例的方法流程包括: S301、第一节点设备向目标服务器A1至An发送候选申请请求,该候选申请请求携带该第一节点设备的资质信息。 该目标服务器A1至An用于对区块链系统中的节点设备进行资质审核,需要目标服务器A1至An进行验证且验证通过,即可以确定该第一节点设备可以作为候选节点设备。本申请实施例仅以由多个目标服务器共同进行资质审核为例进行说明,在该实施例中,该步骤S301可以有两种实现方式: 第一种实现方式:第一节点设备将该候选申请请求发送至多个目标服务器中的一个目标服务器,该一个目标服务器将该候选申请请求发送给其他目标服务器,以便其他目标服务器可以接收到该候选申请请求。 第二种实现方式:当第一节点设备将该候选申请请求发送至该多个目标服务器中的全部目标服务器,以便全部目标服务器均能接收该候选申请请求,当然,该第一节点设备还可以向部分目标服务器发送该候选申请请求,并由该部分目标服务器将接收到的候选申请请求转发至其他目标服务器,以便其他目标服务器可以接收到该候选申请请求,对具体采用哪种发送方式,本申请实施例不做具体限定。 该候选申请请求是指,该第一节点设备向任一目标服务器申请成为候选节点设备的请求,该候选申请请求所携带的该第一节点设备的资质信息可以是以下三个资质中的任一项:该第一节点设备的设备性能;该节点设备已向该目标服务器缴纳预设数目的保证金;该第一节点设备对应的用户账号的信用值。当然,该资质信息也可以包括其他内容,本实施例对此不进行限定。 S302、该目标服务器A1至An接收到候选申请请求后,分别对该第一节点设备进行资质审核,生成凭据数据。 当目标服务器A1至An,对该第一节点设备的资质信息审核后,对该资质信息通过的目标服务器,会分别生成凭据交易数据。该凭据数据可以包括同意标识、凭据时间、凭据有效期以及该目标服务器的签名,其中,该同意标识是指,该目标服务器同意该第一节点设备成为候选节点设备的标识,该有效期可以避免非候选节点设备利用过期的凭据数据,成为代表节点设备,签名是该目标服务器采用自己的私钥,对资质信息的签名。需要注意的是,该目标服务器生成的凭据数据,也可以是基于与目标服务器关联的终端设备的审核结果生成的凭据数据,例如步骤S202,本申请实施例在此不做赘述。 S303、多个目标服务器分别向第一节点设备发送凭据数据,该多个目标服务器为审核方的服务器。 多个目标服务器分别向该第一节点设备发送凭据数据,以便该第一节点设备接收到该凭据数据,并基于该凭据数据向区块链系统发起新增候选者交易。 而在一些实施例中,可以从该多个目标服务器中筛选出一个目标服务器, 其他审核通过的目标服务器可以将自己生成的凭据数据,发送至该目标服务器,该目标服务器将所有的凭据汇总成一份凭据数据,并将该凭据数据发送至该第一节点设备。 S304、该第一节点设备基于接收到的凭据数据,在该区块链系统中广播该新增候选者交易数据,该新增候选者交易数据包括该凭据数据以及候选节点设备列表。 该第一节点设备向该区块链系统的任一节点设备发起新增候选者交易,以便该第一节点设备可以成为候选节点设备。 上述步骤S301至S304,为多个目标服务器来审核节点设备是否具有成为候选节点设备的资质的过程,该第一节点设备成为候选节点设备的过程以及选举该区块链系统中的代表节点设备的过程,见步骤S205至S218,在此不再赘述。 本实施例通过多个目标服务器来审核区块链系统的节点设备,可以防止某个目标服务器出现故障,而无法正常审核,并且通过多个目标服务器审核的节点设备的资质,更具有可靠性。 上述所有可选技术方案,可以采用任意结合形成本申请的可选实施例,在此不再一一赘述。 图4是本申请实施例提供的一种代表节点设备的选举装置结构示意图,参见图4,包括第一接收模块401、第一存储模块402和选举模块403。 其中,第一接收模401与第一存储模块402连接,用于接收新增候选者交易数据,所述新增候选者交易数据携带凭据数据,所述凭据数据用于指示第一目标节点设备符合候选节点设备的资质要求; 第一存储模块402与选举模块403连接,用于当该区块链系统中多个节点设备对该新增候选者交易数据共识通过时,将该新增候选者交易数据存储至该区块链系统的目标区块链上; 选举模块403用于根据所述目标区块链上已存储的新增候选者交易数据候选节点设备交易数据,进行对代表节点设备的选举过程。 在一个实施例中,该凭据数据包括多个审核用户的签名数据。 在一个实施例中,该装置还包括: 发送模块,用于向目标服务器发送候选申请请求,该候选申请请求携带该节点设备的资质信息。 在一个实施例中,该目标服务器为该区块链系统中的任一个节点设备;或, 该目标服务器为与该区块链系统关联的第三方机构的服务器。 在一个实施例中,该第一目标节点设备符合下述至少一项条件: 目标节点设备的设备性能符合预设性能条件; 该目标节点设备已缴纳预设数目的保证金; 该目标节点设备对应的用户的信用达到预设信用条件。 在一个实施例中,该区块链系统中多个节点设备对该新增候选者交易数据共识通过是指:该区块链系统中的多个代表节点设备对该新增候选者交易数据共识通过。 在一个实施例中,该装置,还包括: 第二接收模块,用于接收删除候选者交易数据,所述删除候选者交易数据用于指示将第二目标节点设备从候选节点设备中删除; 第二存储模块,用于当该区块链系统中多个节点设备对该删除候选者交易数据共识通过时,将该删除候选者交易数据存储至该区块链系统的目标区块链上。 在一个实施例中,该装置还包括: 第三接收模块,用于接收目标交易数据,该目标交易数据用于将保证金退还至该第二目标节点设备的账户中。 本申请实施例提供的装置,通过审核方对区块链系统中的节点设备进行资质审核,并基于审核结果,向被审核的节点设备发送凭据数据,以证明该节点设备能否成为候选节点设备,该节点设备可以凭借凭据数据在该区块链系统中发起新增候选者交易,进而根据预设规则,确定候选节点设备,那么该区块链系统就可以从这些候选节点设备中选举出代表节点设备,从而避免从区块链系统中的所有节点设备中选举出代表节点设备,仅从候选节点设备进行选举即可,提高了该区块链系统选举代表节点设备的选举效率。 图5是本申请实施例提供的一种服务器的结构示意图,该服务器500可 因配置或性能不同而产生比较大的差异,可以包括一个或一个以上处理器(central processing units,CPU)501和一个或一个以上的存储器502。其中,该存储器502中存储有计算机可读指令,计算机可读指令由该处理器501加载并执行以实现上述各个方法实施例提供的方法。当然,该服务器还可以具有有线或无线网络接口、键盘以及输入输出接口等部件,以便进行输入输出,该服务器还可以包括其他用于实现设备功能的部件,在此不做赘述。 在示例性实施例中,还提供了一种计算机可读存储介质,例如包括指令的存储器,上述指令可由终端中的处理器执行以完成上述实施例中的代表节点设备选举方法。例如,该计算机可读存储介质可以是ROM(read-only memory,只读存储器)、RAM(random access memory,随机存取存储器)、CD-ROM(compact discread-only memory,只读光盘)、磁带、软盘和光数据存储设备等。 本领域普通技术人员可以理解实现上述实施例的全部或部分步骤可以通过硬件来完成,也可以通过程序来指令相关的硬件完成,该程序可以存储于一种计算机可读存储介质中,上述提到的存储介质可以是只读存储器,磁盘或光盘等。 上述仅为本申请的较佳实施例,并不用以限制本申请,凡在本申请的精神和原则之内,所作的任何修改、等同替换、改进等,均应包含在本申请的保护范围之内。 An election method for a representative node device, comprising: receiving newly-added candidate transaction data, the newly-added candidate transaction data carrying credential data provided by an auditor party, and the credential data being used for indicating that a first node device meets qualification requirements of a candidate node device; when multiple node devices in a block chain system agree to pass the newly-added candidate transaction data, storing the newly-added candidate transaction data on a target block chain of the block chain system; performing an election process for the representative node device according to the newly-added candidate transaction data stored on the target block chain and candidate node device transaction data. 一种代表节点设备选举方法,由第一节点设备执行,所述第一节点设备为区块链系统中的任一节点设备,所述方法包括: 接收新增候选者交易数据,所述新增候选者交易数据携带凭据数据,所述凭据数据用于指示所述第一节点设备符合候选节点设备的资质要求; 当所述区块链系统中多个节点设备对所述新增候选者交易数据共识通过时,将所述新增候选者交易数据存储至所述区块链系统的目标区块链上;及 根据所述目标区块链上已存储的所述新增候选者交易数据,进行代表节点设备的选举过程。 根据权利要求1所述的方法,其特征在于,所述凭据数据包括多个审核用户的签名数据。 根据权利要求1所述的方法,其特征在于,所述接收新增候选者交易数据之前,所述方法还包括: 向目标服务器发送候选申请请求,所述候选申请请求携带所述第一节点设备的资质信息。 根据权利要求3所述的方法,其特征在于,所述目标服务器为所述区块链系统中的任一个节点设备;或, 所述目标服务器为与所述区块链系统关联的第三方机构的服务器。 根据权利要求1所述的方法,其特征在于,所述第一节点设备符合候选节点设备的资质要求包括:所述第一节点设备的设备性能符合预设性能条件、所述第一节点设备已缴纳预设数目的保证金、及所述第一节点设备对应的用户的信用达到预设信用条件中的至少一种。 根据权利要求1所述的方法,其特征在于,所述区块链系统中多个节点设备对所述新增候选者交易数据共识通过是指:所述区块链系统中的多个代表节点设备对所述新增候选者交易数据共识通过。 根据权利要求1所述的方法,其特征在于,所述当所述区块链系统中多个节点设备对所述新增候选者交易数据共识通过时,将所述新增候选者交易数据存储至所述区块链系统的目标区块链上,包括: 基于所述凭据数据,在所述区块链系统中广播所述新增候选者交易数据;所述新增候选者交易数据包括所述凭据数据以及候选节点设备列表; 通过各第二节点设备接收所述新增候选者交易数据;所述第二节点设备是所述区块链系统中除所述第一节点设备外的节点设备;及 当所述第二节点设备中的多个代表节点设备对所述新增候选者交易数据共识通过时,将所述新增候选者交易数据存储至所述区块链系统的目标区块链上。 根据权利要求1所述的方法,其特征在于,所述将所述新增候选者交易数据存储至所述区块链系统的目标区块链上之后,所述方法还包括: 接收删除候选者交易数据,所述删除候选者交易数据用于指示将第二目标节点设备从候选节点设备中删除;及 当所述区块链系统中多个节点设备对所述删除候选者交易数据共识通过时,将所述删除候选者交易数据存储至所述区块链系统的目标区块链上。 根据权利要求8所述的方法,其特征在于,所述将所述删除候选者交易数据存储至所述区块链系统的目标区块链上之后,所述方法还包括: 接收目标交易数据,所述目标交易数据用于将保证金退还至所述第二目标节点设备的账户中。 一种代表节点设备选举装置,其特征在于,所述装置包括: 接收模块,用于接收新增候选者交易数据,所述新增候选者交易数据携带凭据数据,所述凭据数据用于指示所述第一节点设备符合候选节点设备的资质要求; 存储模块,用于当所述区块链系统中多个节点设备对所述新增候选者交易数据共识通过时,将所述新增候选者交易数据存储至所述区块链系统的目标区块链上;及 选举模块,用于根据所述目标区块链上已存储的所述新增候选者交易数据,进行代表节点设备的选举过程。 根据权利要求10所述的装置,其特征在于,所述凭据数据包括多个审核用户的签名数据。 根据权利要求10所述的装置,其特征在于,所述装置还包括: 发送模块,用于向目标服务器发送候选申请请求,所述候选申请请求携带所述第一节点设备的资质信息。 根据权利要求12所述的装置,其特征在于,所述目标服务器为所述 区块链系统中的任一个节点设备;或, 所述目标服务器为与所述区块链系统关联的第三方机构的服务器。 根据权利要求10所述的装置,其特征在于,所述第一节点设备符合候选节点设备的资质要求包括:所述第一节点设备的设备性能符合预设性能条件、所述第一节点设备已缴纳预设数目的保证金、及所述第一节点设备对应的用户的信用达到预设信用条件中的至少一种。 根据权利要求10所述的装置,其特征在于,所述区块链系统中多个节点设备对所述新增候选者交易数据共识通过是指:所述区块链系统中的多个代表节点设备对所述新增候选者交易数据共识通过。 根据权利要求10所述的装置,其特征在于,所述存储模块还用于基于所述凭据数据,在所述区块链系统中广播所述新增候选者交易数据;所述新增候选者交易数据包括所述凭据数据以及候选节点设备列表;通过各第二节点设备接收所述新增候选者交易数据;所述第二节点设备是所述区块链系统中除所述第一节点设备外的节点设备;及当所述第二节点设备中的多个代表节点设备对所述新增候选者交易数据共识通过时,将所述新增候选者交易数据存储至所述区块链系统的目标区块链上。 根据权利要求10所述的装置,其特征在于,所述装置还包括: 第二接收模块,用于接收删除候选者交易数据,所述删除候选者交易数据用于指示将第二目标节点设备从候选节点设备中删除;及 第二存储模块,用于当所述区块链系统中多个节点设备对所述删除候选者交易数据共识通过时,将所述删除候选者交易数据存储至所述区块链系统的目标区块链上。 根据权利要求17所述的装置,其特征在于,所述装置还包括: 第三接收模块,用于接收目标交易数据,所述目标交易数据用于将保证金退还至所述第二目标节点设备的账户中。 一种计算机设备,其特征在于,所述计算机设备包括处理器和存储器,所述存储器中存储有计算机可读指令,所述计算机可读指令被所述处理器执行时,使得所述处理器执行如权利要求1至9中任一项所述的方法的步骤。 一种非易失性的计算机可读存储介质,存储有计算机可读指令,所 述计算机可读指令被一个或多个处理器执行时,使得所述一个或多个处理器执行如权利要求1至9中任一项所述的方法的步骤。技术领域
背景技术
附图说明
具体实施方式
![](/ipWO2020048440A1/0.png)
![](/ipWO2020048440A1/1.png)
![](/ipWO2020048440A1/2.png)
![](/ipWO2020048440A1/3.png)
![](/ipWO2020048440A1/4.png)