一种验证人节点确定方法、系统、装置及计算机存储介质
技术领域
本申请涉及区块链技术领域,更具体地说,涉及一种验证人节点确定方法、系统、设备及计算机存储介质。
背景技术
在区块链的应用过程中,需要验证人节点和记账节点共同作用来完成区块的生成、记录。在此过程中,需确定出验证人节点。
现有的一种验证人节点确定方法是:在区块链系统启动之前便确定好验证人节点。
然而,现有的一种验证人节点确定方法中,因需要在区块链系统启动之前便确定好验证人节点,这样,区块链系统启动后,验证人节点便不可更改,如果验证人节点被恶意攻破,便会威胁区块链系统的安全性。
综上所述,如何提高区块链系统的安全性是目前本领域技术人员亟待解决的问题。
发明内容
本申请的目的是提供一种验证人节点确定方法、系统、装置及计算机可读存储介质,旨在解决提高区块链系统的安全性的技术问题。
为了实现上述目的,本申请提供的一种区块链系统的验证人节点确定方法,包括:
接收各个候选人节点发送的竞选信息;
判断是否满足验证人节点更新条件;
若是,则基于所述竞选信息选取预设数量的所述候选人节点作为新的所述验证人节点。
优选的,所述接收各个候选人节点发送的竞选信息,包括:
接收当前验证人节点转发的各个所述候选人节点发送的竞选信息。
优选的,所述基于所述竞选信息选取预设数量的所述候选人节点作为新的所述验证人节点之后,还包括:
发送新的所述验证人节点的信息至各个区块链节点。
优选的,所述基于所述竞选信息选取预设数量的所述候选人节点作为新的所述验证人节点,包括:
基于所述竞选信息选取预设数量的所述候选人节点作为待定验证人节点;
发送所述待定验证人节点的信息至当前验证人节点;
判断所述当前验证人节点是否共识通过所述待定验证人节点,若是,则将类型为小矿机的当前验证人节点退出为非验证人节点,并将所述待定验证人节点作为新的所述验证人节点。
优选的,所述基于所述竞选信息选取预设数量的所述候选人节点作为新的所述验证人节点,包括:
确定各个所述竞选信息的接收时刻;
选取所述预设数量的数值最小的所述接收时刻对应的所述候选人节点作为新的所述验证人节点。
优选的,所述判断是否满足验证人节点更新条件,包括:
判断当前周期内生成的区块的数量是否大于等于预设数量值,若是,则判定满足所述验证人节点更新条件,若否,则判定不满足所述验证人节点更新条件。
优选的,所述接收各个候选人节点发送的竞选信息之前,还包括:
保存各个所述候选人节点交纳的押金;
所述基于所述竞选信息选取预设数量的所述候选人节点作为新的所述验证人节点的过程中,包括:
判断选取的所述候选人节点是否存在押金,若否,则禁止所述候选人节点作为新的所述验证人节点。
优选的,还包括:
对于每一个所述验证人节点,判断所述验证人节点未参与区块投票的次数是否大于等于预设次数,若是,则将所述验证人节点更换为所述候选人节点。
优选的,还包括:
对于每一个所述验证人节点,判断所述验证人节点是否满足恶意节点判定条件,若是,则扣除所述验证人节点的押金,并将所述验证人节点替换为所述候选人节点。
优选的,所述判断所述验证人节点是否满足恶意节点判定条件,包括:
判断所述验证人节点是否重复投票,若是,则判定所述验证人节点满足所述恶意节点判定条件;
或判断所述验证人节点的投票信息中的签名是否错误,若是,则判定所述验证人节点满足所述恶意节点判定条件;
判断所述验证人节点是否重复发送竞选信息,若是,则判定所述验证人节点满足所述恶意节点判定条件。
优选的,所述基于所述竞选信息选取预设数量的所述候选人节点作为新的所述验证人节点之后,还包括:
设定类型为小矿机的所述验证人节点的投票权重小于类型为服务器的所述验证人节点的投票权重。
为实现上述目的,本申请进一步提供一种区块链系统的验证人节点确定系统,包括:
第一接收模块,用于接收各个候选人节点发送的竞选信息;
第一判断模块,用于判断是否满足验证人节点更新条件;
第一执行模块,用于判定满足验证人节点更新条件时,基于所述竞选信息选取预设数量的所述候选人节点作为新的所述验证人节点。
优选的,所述第一接收模块包括:
第一接收单元,用于接收当前验证人节点转发的各个所述候选人节点发送的竞选信息。
优选的,还包括:
第一发送模块,用于所述第一执行模块基于所述竞选信息选取预设数量的所述候选人节点作为新的所述验证人节点之后,发送新的所述验证人节点的信息至各个区块链节点。
优选的,所述第一执行模块包括:
第一选取单元,用于基于所述竞选信息选取预设数量的所述候选人节点作为待定验证人节点;
第一发送单元,用于发送所述待定验证人节点的信息至当前验证人节点;
第一判断单元,用于判断所述当前验证人节点是否共识通过所述待定验证人节点,若是,则将类型为小矿机的当前验证人节点退出为非验证人节点,并将所述待定验证人节点作为新的所述验证人节点。
优选的,所述第一执行模块包括:
第一确定单元,用于确定各个所述竞选信息的接收时刻;
第二选取单元,用于选取所述预设数量的数值最小的所述接收时刻对应的所述候选人节点作为新的所述验证人节点。
优选的,所述第一判断模块包括:
第二判断单元,用于判断当前周期内生成的区块的数量是否大于等于预设数量值,若是,则判定满足所述验证人节点更新条件,若否,则判定不满足所述验证人节点更新条件。
优选的,还包括:
第一保存模块,用于所述第一接收模块接收各个候选人节点发送的竞选信息之前,保存各个所述候选人节点交纳的押金;
第二判断模块,用于所述第一执行模块基于所述竞选信息选取预设数量的所述候选人节点作为新的所述验证人节点的过程中,判断选取的所述候选人节点是否存在押金,若否,则禁止所述候选人节点作为新的所述验证人节点。
优选的,还包括:
第三判断模块,用于对于每一个所述验证人节点,判断所述验证人节点未参与区块投票的次数是否大于等于预设次数,若是,则将所述验证人节点更换为所述候选人节点。
优选的,还包括:
第四判断模块,用于对于每一个所述验证人节点,判断所述验证人节点是否满足恶意节点判定条件,若是,则扣除所述验证人节点的押金,并将所述验证人节点标记为黑名单节点。
优选的,所述第四判断模块,包括:
第三判断单元,用于判断所述验证人节点是否重复投票,若是,则判定所述验证人节点满足所述恶意节点判定条件。
优选的,所述第四判断模块,包括:
第四判断单元,用于判断所述验证人节点的投票信息中的签名是否错误,若是,则判定所述验证人节点满足所述恶意节点判定条件。
优选的,所述第四判断模块,包括:
第五判断单元,用于判断所述验证人节点是否重复发送竞选信息,若是,则判定所述验证人节点满足所述恶意节点判定条件。
优选的,还包括:
第一设定模块,用于所述第一执行模块基于所述竞选信息选取预设数量的所述候选人节点作为新的所述验证人节点之后,设定类型为小矿机的所述验证人节点的投票权重小于类型为服务器的所述验证人节点的投票权重。
为实现上述目的,本申请进一步提供一种区块链系统的验证人节点确定装置,所述装置包括存储器和处理器,所述存储器上存储有可在所述处理器上运行的验证人节点确定程序,所述验证人节点确定程序被所述处理器执行时实现如上任一所述的方法。
为实现上述目的,本申请进一步提供一种计算机可读存储介质,所述计算机可读存储介质上存储有验证人节点确定程序,所述验证人节点确定程序可被一个或者多个处理器执行,以实现如上任一所述的区块链系统的验证人节点确定方法。
本申请提供的一种验证人节点确定方法,应用于区块链中,接收各个候选人节点发送的竞选信息;判断是否满足验证人节点更新条件;若是,则基于竞选信息选取预设数量的候选人节点作为新的验证人节点。也即本申请提供的一种验证人节点确定方法,在接收各个候选人节点发送的竞选信息,并且在判定满足验证人节点更新条件后,便可以基于竞选信息选取预设数量的候选人节点作为新的验证人节点,也即可以根据验证人节点更新条件及竞选信息更新验证人节点,与现有的验证人节点为固定节点的技术相比,可以降低验证人节点被不法分子攻破的风险,提高区块链系统的安全性。本申请提供的一种验证人节点确定系统、装置及计算机可读存储介质也解决了相应技术问题。
附图说明
为了更清楚地说明本申请实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本申请的实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据提供的附图获得其他的附图。
图1为本申请第一实施例的流程示意图;
图2为本申请第二实施例的流程示意图;
图3为本申请一实施例揭露的验证人节点确定系统的结构示意图;
图4为本申请一实施例揭露的验证人节点确定装置的内部结构示意图。
具体实施方式
下面将结合本申请实施例中的附图,对本申请实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本申请一部分实施例,而不是全部的实施例。基于本申请中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本申请保护的范围。
本申请的说明书和权利要求书及上述附图中的术语“第一”、“第二”、“第三”、“第四”等(如果存在)是用于区别类似的对象,而不必用于描述特定的顺序或先后次序。应该理解这样使用的数据在适当情况下可以互换,以便这里描述的实施例能够以除了在这里图示或描述的内容以外的顺序实施。此外,术语“包括”和“具有”以及他们的任何变形,意图在于覆盖不排他的包含,例如,包含了一系列步骤或单元的过程、方法、系统、产品或设备不必限于清楚地列出的那些步骤或单元,而是可包括没有清楚地列出的或对于这些过程、方法、产品或设备固有的其它步骤或单元。
需要说明的是,在本发明中涉及“第一”、“第二”等的描述仅用于描述目的,而不能理解为指示或暗示其相对重要性或者隐含指明所指示的技术特征的数量。由此,限定有“第一”、“第二”的特征可以明示或者隐含地包括至少一个该特征。另外,各个实施例之间的技术方案可以相互结合,但是必须是以本领域普通技术人员能够实现为基础,当技术方案的结合出现相互矛盾或无法实现时应当认为这种技术方案的结合不存在,也不在本发明要求的保护范围之内。
第一方面,本申请提供一种区块链系统的验证人节点确定方法。
参照图1,图1为本申请第一实施例的流程示意图。
在第一实施例中,该方法包括:
步骤S101,接收各个候选人节点发送的竞选信息。
实际应用中,可以是区块链中的验证人节点,且可以为类型为服务器的验证人节点,接收各个候选人节点发送的竞选信息,竞选信息的类型及格式可以根据实际需要确定,为了快速传达竞选信息,具体应用中,可以借助数字及候选人节点的标识信息来标识竞选信息,比如定义用数字1表示参加竞选,用数字0表示不参加竞选,则候选人节点A发送的表示参加竞选的竞选信息可以为:A,1;相应的,候选人节点A发送的表示不参加竞选的竞选信息可以为:A,0。此外,本申请提供的验证人节点可以为当前时刻下充当记账节点的提议者角色的验证人节点等。
步骤S102,判断是否满足验证人节点更新条件,若是,则执行步骤S103。
实际应用中,验证人节点更新条件可以根据具体应用场景确定;此外,验证人更新条件可以为预先设定好的,也可以为实时设定的条件等。
步骤S103,基于竞选信息选取预设数量的候选人节点作为新的验证人节点。
实际应用中,区块链节点在判定满足验证人节点更新条件后,便可以基于竞选信息选取预设数量的候选人节点作为新的验证人节点。具体的,每次在确定出新的验证人节点后,可以直接将当前确定的新的验证人节点作为验证人节点,也即在确定出新的验证人节点后,便直接更新验证人节点,还可以将当前确定的新的验证人节点作为下一次的验证人节点,也即在确定出新的验证人节点后,在下一次判定满足验证人节点更新条件后,才会将当前确定的验证人节点更新为验证人节点。
本申请提供的一种验证人节点确定方法,应用于区块链中,接收各个候选人节点发送的竞选信息;判断是否满足验证人节点更新条件;若是,则基于竞选信息选取预设数量的候选人节点作为新的验证人节点。也即本申请提供的一种验证人节点确定方法,在接收各个候选人节点发送的竞选信息,并且在判定满足验证人节点更新条件后,便可以基于竞选信息选取预设数量的候选人节点作为新的验证人节点,也即可以根据验证人节点更新条件及竞选信息更新验证人节点,与现有的验证人节点为固定节点的技术相比,可以降低验证人节点被不法分子攻破的风险,提高区块链系统的安全性。
在第一实施例中,步骤S101接收各个候选人节点发送的竞选信息的步骤可以具体为:接收当前验证人节点转发的各个候选人节点发送的竞选信息。由于区块链节点接收的竞选信息是由当前验证人节点转发的,而各个当前验证人节点转发竞选信息的速度不同,所以区块链节点接收到各个竞选信息的时刻基本不相同,避免了区块链节点同时接收多个竞选信息时的信息堵塞,此外,还可以增强区块链节点接收竞选信息的随机性。
在第一实施例中,基于竞选信息选取预设数量的候选人节点作为新的验证人节点之后,还可以发送新的验证人节点的信息至各个区块链节点。将新的验证人节点的信息发送至各个区块链节点后,便表示旧的验证人节点已被更新为新的验证人节点,借助此种方法可以快速在区块链中更新新的验证人节点的信息。
在第一实施例中,步骤S103基于竞选信息选取预设数量的候选人节点作为新的验证人节点的步骤可以具体为:基于竞选信息选取预设数量的候选人节点作为待定验证人节点;发送待定验证人节点的信息至当前验证人节点;判断当前验证人节点是否共识通过待定验证人节点,若是,则将类型为小矿机的当前验证人节点退出为非验证人节点,并将待定验证人节点作为新的验证人节点。也即先基于竞选信息在候选人节点中选定待定验证人节点,之后发送待定验证人节点的信息至当前验证人节点进行共识,并在当前验证人节点共识通过待定验证人节点后,才将类型为小矿机的当前验证人节点退出为非验证人节点,并将待定验证人节点作为新的验证人节点,借助当前验证人节点对待定验证人节点的共识可以保证新的验证人节点的安全性,进而保证区块链系统的安全性,此外只对类型为小矿机的当前验证人节点进行更新,而不对类型为服务器的当前验证人节点进行更新,可以进一步保证验证人节点的安全性。具体的共识原则可以根据实际需要确定,比如共识原则可以为判断待定验证人节点是否为已备案的节点,若待定验证人节点为已备案的节点,则判定该待定验证人节点通过共识,若待定验证人节点不是已备案的节点,则判定该待定验证人节点未通过共识等。
在第一实施例中,步骤S103基于竞选信息选取预设数量的候选人节点作为新的验证人节点的步骤可以具体为:确定各个竞选信息的接收时刻;选取预设数量的数值最小的接收时刻对应的候选人节点作为新的验证人节点。由于各个竞选信息的接收时刻不相同,所以可以根据竞选信息的接收时刻来确定出新的验证人节点,这样可以保证确定出的新验证人节点的随机性,理论上任一候选人节点均可能担任新的验证人节点。此外,为了尽可能使得各个候选人节点均可以作为验证人节点,还可以设定在一次验证人节点确定方法中,每个候选人节点只能发送一次竞选消息。再者,为了尽可能保证各个候选人节点均可以作为验证人节点,且尽可能避免某一候选人节点连续作为验证人节点,还可以设置记录作为验证人节点的候选人节点列表,并且设定任一候选人节点作为验证人节点的周期不得连续,也即,在选择出作为新的验证人节点之后,可以先判断候选人节点是否记录在候选人节点列表中,并且记录时刻所属的周期与当前时刻所属的周期连续,若是,则重新选取一个候选人节点作为新的验证人节点,以候选人节点A为例,若A在前一周期被选为新的验证人节点并被记录在候选人节点列表中,若当前周期内A仍被选为新的验证人节点,则会出现A的记录时刻所属的周期与当前时刻所属的周期连续的情况,此时,便需重新选取一个候选人节点作为新的验证人节点。
在第一实施例中,步骤S102判断是否满足验证人节点更新条件的步骤可以具体为:判断当前周期内生成的区块的数量是否大于等于预设数量值,若是,则判定满足验证人节点更新条件,若否,则判定不满足验证人节点更新条件。也即实际应用中可以根据当前周期内生成的区块的数量来判断是否满足验证人节点更新条件,这样可以方便快捷的判断是否满足验证人节点更新条件,提高整个方法的效率。具体的,由于生产的区块的数量一直随时间的流逝而增大,所以预设数量值也应为随时间呈规律性变化的值,比如第一周期内的预设数量值为10,则第二周期内的预设数量值可以为20,相应的,第四周期内的预设数量值可以为40等,具体应用场景中,可以求取当前时刻下的区块的总数量与预设周期的余值,也即求取区块的总数量除以预设周期的余数,判断余值是否为0,若是,则判定满足验证人节点更新条件,若否,则判定不满足验证人节点更新条件。
在第一实施例中,可以通过为候选人节点设置条件来判断候选人节点是否具有称为验证人节点的可能,则接收各个候选人节点发送的竞选信息之前,还可以保存各个候选人节点交纳的押金;相应的,基于竞选信息选取预设数量的候选人节点作为新的验证人节点的过程中,可以判断选取的候选人节点是否存在押金,若否,则禁止候选人节点作为新的验证人节点。也即本申请仅仅通过判断候选人节点是否存在押金即可快速判断候选人节点是否具有成为验证人节点的可能性,这样在不法节点不清楚本申请的候选人节点成为验证人节点的条件下,不法节点难以成功冒充候选人节点参与竞选,可以保证区块链系统的安全性。
在第一实施例中,存在验证人节点发生故障无法正常发挥验证人节点功能的情况,为了排除此种情况,保证区块链系统的服务稳定性,本申请提供的一种验证人节点确定方法中还可以包括:对于每一个验证人节点,判断验证人节点未参与区块投票的次数是否大于等于预设次数,若是,则将验证人节点更换为候选人节点。也即验证人节点发生故障后,验证人节点便无法正常参与区块投票,所以可以根据验证人节点未参与区块投票的次数来判断验证人节点是否发生故障,此外,为了排除偶然情况下验证人节点未参与区块投票的情况,可以将判断验证人节点是否发生故障的条件设定为:判断验证人节点未参与区块投票的次数是否大于等于预设次数。当然还可以有其他判断验证人节点是否发生故障的条件,本申请在此不做具体限定,比如判断验证人节点连续未参与投票的次数是否大于等于预设次数。具体应用场景中,在基于竞选信息选取预设数量的候选人节点作为新的验证人节点之后,还可以额外保存一张验证人节点候选列表,基于竞选信息选取一部分候选人节点存储至验证人节点候选列表中,这样在将验证人节点更换为候选人节点时,便可以直接在验证人节点候选列表中选取一个候选人节点作为验证人节点。
在第一实施例中,区块链中除了存在验证人节点发生故障的情况,还可能存在验证人节点被不法分子攻破等失去安全性的情况,为了避免这种情况威胁区块链系统的安全性,本申请中还可以包括:对于每一个验证人节点,判断验证人节点是否满足恶意节点判定条件,若是,则扣除验证人节点的押金,并将验证人节点标记为黑名单节点,从预设的候选人列表中移除,还可以选取一个候选人节点作为该验证人节点,不难理解,验证人节点被标记为黑名单节点后,该节点便无法作为候选人节点,进而无法作为验证人节点。判断是否满足恶意节点判定条件也即判断是否为不安全节点。具体应用场景中,判断验证人节点是否满足恶意节点判定条件的步骤可以具体为:判断验证人节点是否重复投票,若是,则判定验证人节点满足恶意节点判定条件;判断验证人节点是否满足恶意节点判定条件的步骤还可以具体为:判断验证人节点的投票信息中的签名是否错误,若是,则判定验证人节点满足恶意节点判定条件;判断验证人节点是否满足恶意节点判定条件的步骤还可以具体为:判断验证人节点是否重复发送竞选信息,若是,则判定验证人节点满足恶意节点判定条件。当然还可以有其他判断验证人节点是否满足恶意节点判定条件的方法,本申请在此不做具体限定。
在第一实施例中,基于竞选信息选取预设数量的候选人节点作为新的验证人节点之后,还可以设定类型为小矿机的验证人节点的投票权重小于类型为服务器的验证人节点的投票权重。由于候选人节点的类型多为小矿机,所以通过这种设定,可以使得作为验证人节点的小矿机的投票权重小于作为验证人节点的服务器,这样即使候选节点被不法分子攻破,其在区块投票中的投票权重也较低,可以在一定程度上降低被不法分子攻破的候选节点对区块链的安全性影响,保证区块链系统的安全性。
在第一实施例中,本申请提供的一种验证人节点确定方法中可以设置有各种合约,比如控制候选人节点发送竞选信息的第一合约,在候选人节点中选取新的验证人节点的第二合约等,则在下一个验证人节点更新周期中,所有的候选人节点可以调用第一合约发送竞选信息,此时,为了便于标识发送了竞选信息的候选人节点,还可以在候选人节点的信息中追加标识信息,比如在候选人节点信息的尾部追加标识信息等;相应的,可以调用第二合约,从追加有标识信息的候选人节点中遍历选出作为新的验证人节点的候选人节点。
请参照图2,图2为本申请第二实施例的流程示意图。
在第二实时例中,该方法包括:
S201,接收各个候选人节点交纳的押金。
S202,判断当前周期内生成的区块的数量是否等于预设数量,若是,则执行S203。
S203,接收当前时刻下各个验证人节点转发的候选人发送的竞选信息。
S204,选取预设数量的最先接收的竞选信息所对应的候选人节点作为待定验证人节点。
S205,发送待定验证人节点的信息至当前时刻下的验证人节点进行共识。
S206,判断是否接收到当前时刻下的验证人节点发送的共识通过信息,若是,则执行S207。
S207,将待定验证人节点确定为下一周期内的新的验证人节点。
S208,设定验证人节点中,小矿机类型的验证人节点的投票权重小于服务器类型的验证人节点的投票权重的投票规则。
S209,判断当前时刻下的验证人节点中是否存在故障节点,若是,则执行S210。
S210,利用候选人节点更换故障节点。
S211,判断当前时刻下的验证人节点中是否存在恶意节点,若是,则执行S212。
S212,利用候选人节点更换恶意节点,并扣除候选人节点的押金。
S213,发送新的验证人节点的信息至各个区块链节点。
另一方面,本申请提供一种区块链系统的验证人节点确定系统。
参照图3,图3为本申请一实施例揭露的验证人节点确定系统的结构示意图。
本申请提供的一种验证人节点确定系统,应用于区块链中,可以包括:
第一接收模块301,用于接收各个候选人节点发送的竞选信息;
第一判断模块302,用于判断是否满足验证人节点更新条件;
第一执行模块303,用于判定满足验证人节点更新条件时,基于竞选信息选取预设数量的候选人节点作为新的验证人节点。
本申请提供的一种验证人节点确定系统,应用于区块链中,第一接收模块可以包括:
第一接收单元,用于接收当前验证人节点转发的各个候选人节点发送的竞选信息。
本申请提供的一种验证人节点确定系统,应用于区块链中,还可以包括:
第一发送模块,用于第一执行模块基于竞选信息选取预设数量的候选人节点作为新的验证人节点之后,发送新的验证人节点的信息至各个区块链节点。
本申请提供的一种验证人节点确定系统,应用于区块链中,第一执行模块可以包括:
第一选取单元,用于基于竞选信息选取预设数量的候选人节点作为待定验证人节点;
第一发送单元,用于发送待定验证人节点的信息至当前验证人节点;
第一判断单元,用于判断当前验证人节点是否共识通过待定验证人节点,若是,则将类型为小矿机的当前验证人节点退出为非验证人节点,并将待定验证人节点作为新的验证人节点。
本申请提供的一种验证人节点确定系统,应用于区块链中,第一执行模块可以包括:
第一确定单元,用于确定各个竞选信息的接收时刻;
第二选取单元,用于选取预设数量的数值最小的接收时刻对应的候选人节点作为新的验证人节点。
本申请提供的一种验证人节点确定系统,应用于区块链中,第一判断模块可以包括:
第二判断单元,用于判断当前周期内生成的区块的数量是否大于等于预设数量值,若是,则判定满足验证人节点更新条件,若否,则判定不满足验证人节点更新条件。
本申请提供的一种验证人节点确定系统,应用于区块链中,还可以包括:
第一保存模块,用于第一接收模块接收各个候选人节点发送的竞选信息之前,保存各个候选人节点交纳的押金;
第二判断模块,用于第一执行模块基于竞选信息选取预设数量的候选人节点作为新的验证人节点的过程中,判断选取的候选人节点是否存在押金,若否,则禁止候选人节点作为新的验证人节点。
本申请提供的一种验证人节点确定系统,应用于区块链中,还可以包括:
第三判断模块,用于对于每一个验证人节点,判断验证人节点未参与区块投票的次数是否大于等于预设次数,若是,则将验证人节点更换为候选人节点。
本申请提供的一种验证人节点确定系统,应用于区块链中,还可以包括:
第四判断模块,用于对于每一个验证人节点,判断验证人节点是否满足恶意节点判定条件,若是,则扣除验证人节点的押金,并将验证人节点标记为黑名单节点。
本申请提供的一种验证人节点确定系统,应用于区块链中,第四判断模块可以包括:
第三判断单元,用于判断验证人节点是否重复投票,若是,则判定验证人节点满足恶意节点判定条件。
本申请提供的一种验证人节点确定系统,应用于区块链中,第四判断模块可以包括:
第四判断单元,用于判断验证人节点的投票信息中的签名是否错误,若是,则判定验证人节点满足恶意节点判定条件。
本申请提供的一种验证人节点确定系统,应用于区块链中,第四判断模块可以包括:
第五判断单元,用于判断验证人节点是否重复发送竞选信息,若是,则判定验证人节点满足恶意节点判定条件。
本申请提供的一种验证人节点确定系统,应用于区块链中,还可以包括:
第一设定模块,用于第一执行模块基于竞选信息选取预设数量的候选人节点作为新的验证人节点之后,设定类型为小矿机的验证人节点的投票权重小于类型为服务器的验证人节点的投票权重。
实际应用中,为了丰富本申请提供的验证人节点确定系统的功能,在验证人节点确定系统中,可以设置有管理员账户、运营管理账户、内部调用账户、配置管理账户等;管理员账户拥有分配其他账户的权限,运营管理账户具有审核、拉黑、下线候选人节点等的权限,内部调用账户拥有添加候选人节点、更新验证人节点等的权限,配置管理账户具有配置服务器、设置押金、设置验证人节点更新条件等的权限。
另一方面,本申请提供一种区块链系统的验证人节点确定装置。
参照图4,图4为本申请一实施例揭露的验证人节点确定装置的内部结构示意图。
本实施例中,验证人节点确定装置1可以是PC(Personal Computer,个人电脑),也可以是智能手机、平板电脑、掌上电脑、便携计算机、智能路由器、矿机、网络存储设备终端设备。
该验证人节点确定装置1可以包括存储器11、处理器12和总线13。
其中,存储器11至少包括一种类型的可读存储介质,可读存储介质包括闪存、硬盘、多媒体卡、卡型存储器(例如,SD或DX存储器等)、磁性存储器、磁盘、光盘等。存储器11在一些实施例中可以是验证人节点确定装置1的内部存储单元,例如该验证人节点确定装置1的硬盘。存储器11在另一些实施例中也可以是验证人节点确定装置1的外部存储设备,例如验证人节点确定装置1上配备的插接式硬盘,智能存储卡(Smart Media Card,SMC),安全数字(Secure Digital,SD)卡,闪存卡(Flash Card)等。进一步地,存储器11还可以既包括验证人节点确定装置1的内部存储单元也包括外部存储设备。存储器11不仅可以用于存储安装于验证人节点确定装置1的应用软件及各类数据,例如视频转码程序01的代码等,还可以用于暂时地存储已经输出或者将要输出的数据。
处理器12在一些实施例中可以是一中央处理器(Central Processing Unit,CPU)、控制器、微控制器、微处理器或其他数据处理芯片,用于运行存储器11中存储的程序代码或处理数据,例如执行视频转码程序01等。
该总线13可以是外设部件互连标准(peripheral component interconnect,简称PCI)总线或扩展工业标准结构(extended industry standard architecture,简称EISA)总线等。该总线可以分为地址总线、数据总线、控制总线等。为便于表示,图4中仅用一条粗线表示,但并不表示仅有一根总线或一种类型的总线。
进一步地,验证人节点确定装置还可以包括网络接口14,网络接口14可选的可以包括有线接口和/或无线接口(如WI-FI接口、蓝牙接口等),通常用于在该装置1与其他电子设备之间建立通信连接。
可选地,该验证人节点确定装置1还可以包括用户接口,用户接口可以包括显示器(Display)、输入单元比如键盘(Keyboard),可选的用户接口还可以包括标准的有线接口、无线接口。可选地,在一些实施例中,显示器可以是LED显示器、液晶显示器、触控式液晶显示器以及OLED(Organic Light-Emitting Diode,有机发光二极管)触摸器等。其中,显示器也可以适当的称为显示屏或显示单元,用于显示在验证人节点确定装置1中处理的信息以及用于显示可视化的用户界面。
图4仅示出了具有组件11-14以及视频转码程序01的验证人节点确定装置1,本领域技术人员可以理解的是,图4示出的结构并不构成对验证人节点确定装置1的限定,可以包括比图示更少或者更多的部件,或者组合某些部件,或者不同的部件布置。
本申请提供的一种计算机可读存储介质,计算机可读存储介质上存储有验证人节点确定程序,验证人节点确定程序可被一个或者多个处理器执行,以实现如上任一实施例所描述的验证人节点确定方法。
这里所涉及的计算机可读存储介质包括随机存储器(RAM)、内存、只读存储器(ROM)、电可编程ROM、电可擦除可编程ROM、寄存器、硬盘、可移动磁盘、CD-ROM、或技术领域内所公知的任意其它形式的存储介质。
在本申请中,验证人节点确定装置或计算机可读存储介质中所涉及到的计算机程序的部分程序定义可以如下:
验证人节点结构体的定义可以为:
候选人节点结构体的定义可以为:
在上述实施例中,可以全部或部分地通过软件、硬件、固件或者其任意组合来实现。当使用软件实现时,可以全部或部分地以计算机程序产品的形式实现。
计算机程序产品包括一个或多个计算机指令。在计算机上加载和执行计算机程序指令时,全部或部分地产生按照本发明实施例的流程或功能。计算机可以是通用计算机、专用计算机、计算机网络、或者其他可编程装置。计算机指令可以存储在计算机可读存储介质中,或者从一个计算机可读存储介质向另一计算机可读存储介质传输,例如,计算机指令可以从一个网站站点、计算机、服务器或数据中心通过有线(例如同轴电缆、光纤、数字用户线(DSL))或无线(例如红外、无线、微波等)方式向另一个网站站点、计算机、服务器或数据中心进行传输。计算机可读存储介质可以是计算机能够存储的任何可用介质或者是包含一个或多个可用介质集成的服务器、数据中心等数据存储设备。可用介质可以是磁性介质,(例如,软盘、硬盘、磁带)、光介质(例如,DVD)、或者半导体介质(例如固态硬盘Solid StateDisk(SSD))等
所属领域的技术人员可以清楚地了解到,为描述的方便和简洁,上述描述的系统,装置和单元的具体工作过程,可以参考前述方法实施例中的对应过程,在此不再赘述。
在本申请所提供的几个实施例中,应该理解到,所揭露的系统,装置和方法,可以通过其它的方式实现。例如,以上所描述的装置实施例仅仅是示意性的,例如,单元的划分,仅仅为一种逻辑功能划分,实际实现时可以有另外的划分方式,例如多个单元或组件可以结合或者可以集成到另一个系统,或一些特征可以忽略,或不执行。另一点,所显示或讨论的相互之间的耦合或直接耦合或通信连接可以是通过一些接口,装置或单元的间接耦合或通信连接,可以是电性,机械或其它的形式。
作为分离部件说明的单元可以是或者也可以不是物理上分开的,作为单元显示的部件可以是或者也可以不是物理单元,即可以位于一个地方,或者也可以分布到多个网络单元上。可以根据实际的需要选择其中的部分或者全部单元来实现本实施例方案的目的。
另外,在本申请各个实施例中的各功能单元可以集成在一个处理单元中,也可以是各个单元单独物理存在,也可以两个或两个以上单元集成在一个单元中。上述集成的单元既可以采用硬件的形式实现,也可以采用软件功能单元的形式实现。
集成的单元如果以软件功能单元的形式实现并作为独立的产品销售或使用时,可以存储在一个计算机可读取存储介质中。基于这样的理解,本申请的技术方案本质上或者说对现有技术做出贡献的部分或者该技术方案的全部或部分可以以软件产品的形式体现出来,该计算机软件产品存储在一个存储介质中,包括若干指令用以使得一台计算机设备(可以是个人计算机,服务器,或者网络设备等)执行本申请各个实施例方法的全部或部分步骤。而前述的存储介质包括:U盘、移动硬盘、只读存储器(ROM,Read-Only Memory)、随机存取存储器(RAM,Random Access Memory)、磁碟或者光盘等各种可以存储程序代码的介质。
需要说明的是,上述本发明实施例序号仅仅为了描述,不代表实施例的优劣。并且本文中的术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、装置、物品或者方法不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、装置、物品或者方法所固有的要素。在没有更多限制的情况下,由语句“包括一个……”限定的要素,并不排除在包括该要素的过程、装置、物品或者方法中还存在另外的相同要素。
对所公开的实施例的上述说明,使本领域技术人员能够实现或使用本申请。对这些实施例的多种修改对本领域技术人员来说将是显而易见的,本文中所定义的一般原理可以在不脱离本申请的精神或范围的情况下,在其它实施例中实现。因此,本申请将不会被限制于本文所示的这些实施例,而是要符合与本文所公开的原理和新颖特点相一致的最宽的范围。