一种区块链记账节点选择方法、装置及计算机可读存储介质与流程

文档序号:17158555发布日期:2019-03-20 00:19阅读:244来源:国知局
一种区块链记账节点选择方法、装置及计算机可读存储介质与流程

本发明涉及区块链技术领域,尤其涉及一种区块链记账节点选择方法、装置及计算机可读存储介质。



背景技术:

目前,区块链网络中往往会部署至少两个共识节点,并通过共识算法确定获取记账权的区块链节点,以利用获得记账权的区块链节点对账本进行维护。所述共识算法包括工作量证明(pow,proofofwork)等等。

但是,对于pow共识算法,共识节点的硬件配置越高,计算出随机数的概率最大,即能够获得记账权的概率越大,为了争夺记账权,各个共识节点的硬件配置会配置得越来越高,因而在确定能够获取记账权的区块链节点时,会带来硬件资源消耗过大的问题。



技术实现要素:

有鉴于此,本发明实施例期望提供一种区块链记账节点选择方法、装置及计算机可读存储介质,能够通过消耗较少的硬件资源来确定区块链记账节点。

本发明实施例的技术方案是这样实现的:

本发明实施例提供一种区块链记账节点选择方法,所述方法包括:

第一区块链节点获取当前游戏成绩排名;所述游戏成绩排名是各个区块链节点分别对应的游戏终端进行游戏后得到的;

将所述游戏成绩排名广播给至少一个第二区块链节点;

接收所述第二区块链节点返回的校验结果;所述校验结果表征所述第二区块链节点对接收的游戏成绩排名进行校验的结果;

基于返回的各个校验结果,判断所述游戏成绩排名是否有效;当确定有效时,基于所述游戏成绩排名,从多个区块链节点中确定记账节点。

上述方案中,所述基于返回的各个校验结果,判断所述游戏成绩排名是否有效,包括:

基于返回的各个校验结果,统计表征校验通过的校验结果的数量;

判断所述数量是否大于或等于预设阈值;

当确定所述数量大于或等于所述预设阈值时,确定所述游戏成绩排名有效。

上述方案中,所述当确定有效时,基于所述游戏成绩排名,从多个区块链节点中确定记账节点,包括:

基于所述游戏成绩排名,从各个区块链节点中确定所述游戏成绩排名满足第一预设条件的区块链节点;

将确定的区块链节点作为记账节点。

上述方案中,所述当确定有效时,基于所述游戏成绩排名,从各个区块链节点中确定记账节点,包括:

将所述游戏成绩排名作为智能合约的输入数据;所述智能合约的规则脚本为预设游戏成绩排名与概率的对应关系;

利用所述输入数据,基于所述智能合约,得到区块链节点的标识;

将得到的标识对应的区块链节点作为记账节点。

上述方案中,所述第一区块链节点获取用户当前的游戏成绩排名,包括:

所述第一区块链节点从游戏终端获取用户当前的游戏成绩排名;所述游戏成绩排名是游戏服务器发送给所述游戏终端的。

上述方案中,所述从各个区块链节点中确定记账节之后,所述方法还包括:

所述记账节点将打包的区块广播给其他区块链节点;

接收所述其他区块链节点返回的验证结果;所述验证结果表征所述其他区块链节点对接收的区块进行验证的结果;

判断所述验证结果是否满足第二预设条件;

当满足所述第二预设条件时,将所述区块添加至自身的区块链中。

上述方案中,所述记账节点将打包的区块广播给所述各个区块链节点之前,所述方法还包括:

所述记账节点获取未记录的交易;

判断所述未记录的交易量是否大于或等于预设阈值;

当确定大于或等于所述预设阈值时,对所述未记录的交易进行打包,得到区块。

本发明实施例提供一种区块链记账节点选择装置,所述装置包括:

获取单元,用于第一区块链节点获取当前游戏成绩排名;所述游戏成绩排名是各个区块链节点分别对应的游戏终端进行游戏后得到的;

广播单元,用于将所述游戏成绩排名广播给至少一个第二区块链节点;

接收单元,用于接收所述第二区块链节点返回的校验结果;所述校验结果表征所述第二区块链节点对接收的游戏成绩排名进行校验的结果;

确定单元,用于基于返回的各个校验结果,判断所述游戏成绩排名是否有效;当确定有效时,基于所述游戏成绩排名,从多个区块链节点中确定记账节点。

本发明实施例提供一种计算机可读存储介质,其上存储有计算机程序,其特征在于,所述计算机程序被处理器执行时实现上面所述任一项区块链记账节点选择方法的步骤。

本发明实施例提供一种区块链记账节点选择装置,包括:存储器、处理器以及存储在存储器上并可在处理器上运行的计算机程序;

其中,所述处理器用于运行所述计算机程序时,执行实现上面所述任一项区块链记账节点选择方法的步骤。

本发明实施例提供的区块链记账节点选择方法、装置及计算机可读存储介质,第一区块链节点获取当前游戏成绩排名;所述游戏成绩排名是各个区块链节点分别对应的游戏终端进行游戏后得到的;将所述游戏成绩排名广播给至少一个第二区块链节点;接收所述第二区块链节点返回的校验结果;所述校验结果表征所述第二区块链节点对接收的游戏成绩排名进行校验的结果;基于返回的各个校验结果,判断所述游戏成绩排名是否有效;当确定有效时,基于所述游戏成绩排名,从多个区块链节点中确定记账节点。本发明实施例中,在确定记账节点的过程中,只需要通过各个第二区块链节点对所述游戏成绩排名进行校验,当所述游戏成绩排名有效时,基于有效的游戏成绩排名确定记账节点,显然,与所述各个第二区块链节点硬件配置的高低没有关系,这样,能够节省硬件资源,实现确定记账节点。

附图说明

图1为本发明实施例区块链记账节点选择方法应用的系统架构示意图;

图2为本发明实施例区块链记账节点选择方法的实现流程示意图;

图3为本发明实施例区块链记账节点选择装置的组成结构示意图一;

图4为本发明实施例区块链记账节点选择装置的组成结构示意图二。

具体实施方式

相关技术中,可以通过pow、权益证明(pos,proofofstake)等共识算法确定获得记账权的区块链节点。

使用pow共识算法执行共识存在硬件资源消耗过大的问题,具体就是:共识节点的硬件配置越高,计算出随机数的概率最大,即能够获得记账权的概率越大,为了争夺记账权,各个共识节点的硬件配置会配置得越来越高。使用pos共识算法执行共识存在公平性问题,具体就是:共识节点的资产分配越多,获得记账权的概率越大,换句话,共识节点的资产分配越少,获得记账权的概率越小,显然,根据资产的多寡确定获得记账权的区块链节点会存在公平性问题。

基于此,本发明实施例中,第一区块链节点获取当前游戏成绩排名;所述游戏成绩排名是各个区块链节点分别对应的游戏终端进行游戏后得到的;将所述游戏成绩排名广播给至少一个第二区块链节点;接收所述第二区块链节点返回的校验结果;所述校验结果表征所述第二区块链节点对接收的游戏成绩排名进行校验的结果;基于返回的各个校验结果,判断所述游戏成绩排名是否有效;当确定有效时,基于所述游戏成绩排名,从多个区块链节点中确定记账节点。

对本发明实施例进行进一步详细说明之前,对本发明实施例中涉及的名词和术语进行说明,本发明实施例中涉及的名词和术语适用于如下的解释。

1)交易(transaction),等同于计算机术语“事务”,并非单指商业语境中的交易,鉴于在区块链技术中约定俗成地使用了“交易”这一术语,本发明实施例遵循了这一习惯。在采用基于账户模型的区块链网络中,交易包括三种不同的交易类型:部署(deploy),调用(invoke)和查询(query)。部署交易用于向区块链网络的节点安装指定的链码,调用和查询类型的交易用于调用部署号的链码,以实现对账本中的目标账户的相关数据的操作,包括增、删、查、改的操作修改账户中的键值(key-value)对形式的数据,或者在账本中增加新的账户。

2)区块(block),记录一段时间内交易所更新的账本数据的数据结构,被标记上时间戳和之前一个区块的独特标记(例如数字指纹),区块经过区块链网络中节点的共识验证后,会被追加到区块链的末尾成为新的区块。

3)区块链(blockchain),区块以顺序相连的方式组合成的一种链式数据结构,在每个区块中引用前一个区块或者其子集的哈希值,从而以密码学的方式保证所记录交易的防篡改和防伪造。

4)区块链网络,通过共识的方式将新区块纳入区块链的一系列的、无中心的节点的集合。

5)账本(ledger),区块链网络中以账户为维度所记录的数据的总和,包括账本数据、账本状态、账本状态证明和区块索引等元素。

6)账本数据,实际区块数据存储,即区块链中记录的一系列有序的、不可篡改的交易的记录,可以表现为文件系统的文件的形式,交易中调用的智能合约被执行时,实现对账户/账户中数据的更新。

7)账本状态,也称为状态数据,即账本数据的状态,可以表现为数据库终中的键值对的形式,其中实时账本状态用于表示共识的交易所更新的键值对的最新记录,历史账本状态用于表示键值对的历史记录。

8)存在性证明,是对账本数据以加密学方式实现的存在真实性的证明,例对账本数据计算默克尔(merkle)树的方式证明。

9)共识(consensus),是区块链网络中的一个过程,用于在涉及的多个节点之间对交易结果达成一致,实现共识的机制包括pow、pos、股份授权证明(dpos,delegatedproof-of-stake)、消逝时间量证明(poet,proofofelapsedtime)等。

10)智能合约(smartcontracts),也称为链码(chaincode),部署在区块链网络中的根据条件而触发执行的程序,用于通过查询、增加、修改来操作账本,以实现对账本的查询或更新。

在对本发明实施例的技术方案进行详细说明之前,对本发明实施例的区块链记账节点方法应用的系统架构进行简单说明。

图1是本发明实施例区块链记账节点选择方法应用的系统架构示意图,本发明实施例所应用的区块链网络中,可以存在多个区块链节点,图1以4个区块链节点为例进行说明,如图1所示,系统包括区块链节点101至区块链节点104构成的区块链记账系统、对应区块链节点101的游戏终端及游戏服务器、对应区块链节点102的游戏终端(图1未标出)、对应区块链节点103的游戏终端(图1未标出)、对应区块链节点104的游戏终端(图1未标出)。其中,所述区块链节点101,可以是与所述游戏终端不同的另外一个终端,也可以是所述游戏终端,游戏服务器可以为各游戏终端提供服务。

这里,搭建系统架构的具体过程,可以包括以下步骤:

步骤1、搭建区块链记账系统。

具体地,在参与业务的不同业务主体之间以功能对等的方式部署至少两个区块链节点,以构建区块链网络;其中,区块链节点可以是一个客户端。

步骤2、搭建区块链节点与游戏终端构成的终端系统。

具体地,一个区块链节点可以对应一个游戏终端;所述区块链节点,可以是与所述游戏终端不同的另外一个终端;也可以是所述游戏终端。

步骤3、搭建游戏系统。

具体地,针对多个游戏终端部署一个游戏服务器。

上述搭建的游戏服务器可以用于构建游戏场景,所述游戏的类型可以是无法依靠堆砌算力提高游戏成绩的游戏,而是依靠人的主观行为决定胜负排名的游戏,比如虚拟现实(vr,virtualreality)赛车游戏、弓箭大师、无影灯等等;搭建的游戏终端可以用于供用户接入vr游戏,并通过对应的区块链节点发起区块链网络上的共识节点对游戏成绩排名的共识,以此确定出记账节点;搭建的区块链记账系统可以通过确定的记账节点对产生的交易进行记账。

下面结合附图对本发明实施例的实现进行详细阐述,所附附图仅供参考说明之用,并非用来限定本发明。

如图2所示,详细说明本发明实施例区块链记账节点选择方法,本实施例的方法应用于终端侧,包括以下步骤:

步骤201:第一区块链节点获取当前游戏成绩排名。所述游戏成绩排名是各个区块链节点分别对应的游戏终端进行游戏后得到的。

其中,所述当前游戏成绩排名可以是指触发一次共识后进行的游戏产生的游戏成绩排名;也可以是指在两次共识之间的时间间隔内产生的游戏成绩排名。

在搭建了系统架构之后,在一实施例中,所述第一区块链节点获取用户当前的游戏成绩排名,包括:所述第一区块链节点从游戏终端获取用户当前的游戏成绩排名;所述游戏成绩排名是游戏服务器发送给所述游戏终端的。

所述游戏服务器确定所述游戏成绩排名的过程,可以包括以下两种情况:

第一种情况,当区块链网络中的任意一个区块链节点记录的交易数量达到一个区块时,触发游戏开始,即触发共识后,各个区块链节点分别对应的游戏终端用户开始游戏,当游戏结束后,所述游戏服务器获取当前的游戏成绩排名。

第二种情况,当上次共识结束后,各个区块链节点分别对应的游戏终端用户开始游戏,当任意一个区块链节点记录的交易数量达到一个区块时,即再次触发共识时,所述游戏服务器获取当前的游戏成绩排名。

以图1所示的系统架构为例,详细说明获取当前游戏成绩排名的过程,所述第一区块链节点具体可以为图1的区块链节点101,该过程具体可以包括:

触发共识之前,所述区块链记账系统中的任意一个区块链节点产生交易后,相应的区块链节点可以将产生的交易广播给其他区块链节点,同时获取广播中尚未被记录账本的原始交易信息;基于获取的原始交易信息,获取付款方地址,如公钥地址;并盘算付款方余额是否足够支付本次交易,如果足够,对每个交易的签名进行验证,以确定交易的真实性;当验证通过的交易数量达到一个区块时,可以对交易进行打包,得到打包的新区块。

当区块链网络中的任意一个区块链节点记录的交易数量达到一个区块时,触发一次共识。

触发共识后,各个区块链节点分别对应的游戏终端用户可以开始游戏;或者,当上次共识结束后,各个区块链节点分别对应的游戏终端用户游戏开始。

游戏开始后,对应的区块链节点可以向游戏服务器发送通知消息;所述通知消息用于指示所述游戏服务器向各个游戏终端发送预设游戏及游戏开始时间;所述游戏服务器接收到所述通知消息后,向所述各个游戏终端发送预设游戏及游戏开始时间;当所述各个游戏终端显示界面显示的游戏开始时间到达时,对应的用户可以参与到所述预设游戏中。其中,所述预设游戏可以为vr赛车游戏、弓箭大师等等,游戏结束后,产生当前游戏成绩排名。

再次触发共识后,所述游戏服务器获取所述各个游戏终端用户的游戏成绩排名,并存储。具体地,当所述预设游戏为vr赛车游戏,且vr赛车游戏场景中设置有终点位置时,所述服务器可以以到达所述终点位置的先后顺序确定各个游戏终端用户的游戏成绩排名;或者,统计各个游戏终端用户的游戏时长,根据游戏时长确定各个游戏终端用户的游戏成绩排名。这里,所述游戏服务器可以确定并存储所述游戏成绩排名,而不是将游戏成绩排名存储在游戏终端上,因而能避免游戏终端用户篡改游戏成绩情况的发生。

当确定所述游戏成绩排名后,所述游戏服务器可以将所述游戏成绩排名发送至对应区块链节点101的游戏终端;所述对应所述区块链节点101的游戏终端可以将所述游戏成绩排名发送至所述区块链节点101。

步骤202:将所述游戏成绩排名广播给至少一个第二区块链节点。

为了使得所述至少一个第二区块链节点对所述游戏成绩排名进行校验,所述第一区块链节点可以将所述游戏成绩排名广播给所述至少一个第二区块链节点。

当所述至少一个第二区块链节点接收到所述游戏成绩排名之后,可以同步记录所述游戏成绩排名。这里,所述至少一个第二区块链节点对所述游戏成绩排名进行同步记录后,会对其游戏成绩排名进行校验,校验结果会全网广播,所述各个第二区块链节点无法对游戏成绩排名进行篡改,因而,能够保证共识验证的准确性、公平性。

步骤203:接收所述第二区块链节点返回的校验结果;所述校验结果表征所述第二区块链节点对接收的游戏成绩排名进行校验的结果。

这里,所述至少一个第二区块链节点分别对接收的游戏成绩排名进行校验,可以是通过所述至少一个第二区块链节点根据自身记录的游戏成绩对接收的游戏成绩排名进行自动比对,以完成对游戏成绩排名的验证和确认。

这里,通过所述至少一个第二区块链节点对游戏成绩排名进行共识,仅需要对游戏成绩排名进行比对,因而无需为所述至少一个第二区块链节点配置很高的硬件资源,因而,能够节省硬件资源。

步骤204:基于返回的各个校验结果,判断所述游戏成绩排名是否有效;当确定有效时,基于所述游戏成绩排名,从多个区块链节点中确定记账节点。

当由所述第一区块链节点判断所述游戏成绩排名是否有效时,在一实施例中,所述基于返回的各个校验结果,判断所述游戏成绩排名是否有效,包括:基于返回的各个校验结果,统计表征校验通过的校验结果的数量;判断所述数量是否大于或等于预设阈值;当确定所述数量大于或等于所述预设阈值时,确定所述游戏成绩排名有效。

举例来说,所述第一区块链节点统计返回的校验结果的总数量,以及表征校验通过的校验结果的数量;计算所述总数量与预设比例的乘积,得到所述预设阈值;判断所述数量是否大于或等于所述预设阈值;当确定所述数量大于或等于所述预设阈值时,确定所述游戏成绩排名有效。其中,预设比例可以为50%。

这里,所述第一区块链节点对每一轮的游戏成绩排名广播至所述各个第二区块链节点,当超过50%的第二区块链节点确认游戏成绩排名有效后,达成共识,可防止游戏终端用户对游戏成绩进行篡改等情况的发生,从而有效防止游戏作弊情况的发生。

当判断所述游戏成绩排名有效之后,就可以根据所述游戏成绩排名,从多个区块链节点中确定记账节点。具体包括以下两种情况:

第一种情况,将游戏成绩排名满足第一预设条件的区块链节点作为记账节点。

第二种情况,利用游戏成绩排名与概率的对应关系,确定记账节点。

基于所述第一预设条件确定记账节点时,在一实施例中,所述基于所述游戏成绩排名,从各个区块链节点中确定记账节点,包括:基于所述游戏成绩排名,从各个区块链节点中确定所述游戏成绩排名满足第一预设条件的区块链节点;将确定的区块链节点作为记账节点。

其中,所述满足第一预设条件的区块链节点可以为游戏成绩排名第一的游戏终端用户对应的区块链节点。也就是说,可以由游戏冠军对应的区块链节点获取记账权,并作为记账节点。这里,游戏冠军对应的区块链节点才能获取记账权,从而能够激发各个游戏终端用户参与游戏的潜能,还能够提高各个游戏终端用户参与游戏的积极性。

利用游戏成绩排名与概率的对应关系确定记账节点时,在一实施例中,所述基于所述游戏成绩排名,从各个区块链节点中确定记账节点,包括:将所述游戏成绩排名作为智能合约的输入数据;所述智能合约的规则脚本为预设游戏成绩排名与概率的对应关系;利用所述输入数据,基于所述智能合约,得到区块链节点的标识;将得到的标识对应的区块链节点作为记账节点。

其中,所述智能合约可以是指部署在区块链网络中的根据游戏成绩排名与概率的对应关系而触发执行的程序。

在执行所述智能合约之前,可以预先建立游戏成绩排名与概率的对应关系,具体可以为:如果游戏成绩排名为第一名,则设置概率可以为10%,用于表征对应的区块链节点被作为输出节点的概率为10%;如果游戏成绩排名为第二名,则设置概率可以为8%,用于表征对应的区块链节点被作为输出节点的概率为8%;如果游戏成绩排名为第一名,则设置概率可以为6%,用于表征对应的区块链节点被作为输出节点的概率为6%;以此类推,在此不再赘述。

在执行所述智能合约确定输出的区块链节点之前,还可以在所述第一区块链节点上部署智能合约组件。当触发预设条件时,即确定所述游戏成绩排名有效时,通过所述智能合约组件执行所述智能合约,以得到输出的区块链节点;并通过所述智能合约组件将输出的区块链节点返回至所述第一区块链节点。

这里,游戏成绩排名很低的游戏终端用户对应的区块链节点也有获得记账权的可能,是因为通过游戏成绩排名确定获取记账权的概率,并基于智能合约确定获取记账权的区块链节点。显然,能够提高游戏水平较差的玩家的积极性,同时避免长期霸占游戏成绩排行榜榜首的玩家持续获得记账权问题的发生,还能够吸引更多的玩家。

上述基于所述第一预设条件,以及智能合约确定的记账节点,能够获取对交易进行记账的记账权。

在确定所述记账节点之后,在一实施例中,所述方法还包括:所述记账节点将打包的区块广播给其他区块链节点;所述区块用于供所述其他区块链节点进行验证得到验证结果,并广播所述验证结果;接收所述其他区块链节点返回的验证结果;所述验证结果表征所述其他区块链节点对接收的区块进行验证的结果;判断所述验证结果是否满足第二预设条件;当满足所述第二预设条件时,将所述区块添加至自身的区块链中。

其中,满足所述第二预设条件的验证结果可以为表征验证通过的验证结果的数量大于或等于预设数量阈值。所述区块,可以是指记录一段时间内交易所更新的交易数据及游戏成绩排名数据的数据结构;所述区块的区块体为交易数据,所述区块的区块头,如表1所示。

表1为所述区块的区块头示意图,如表1所示,包括:版本号、上一个区块(block)的hash值、上一个block产生之后至新block生成的时间内,交易数据打包形成的hash、时间戳、游戏名称、游戏成绩排名。

表1

由表1可知,所述打包的区块可以被标记上时间戳和之前一个区块的独特标记,如上一个blockhash值。所述打包的新区块在经过区块链网络中所述各个第二区块链节点的共识验证后,会被所述第一区块链节点追加到区块链的末尾成为新的区块。

在对所述打包的区块进行验证时,所述其他区块链节点可以验证所述区块中的交易数据是否与本节点保存的交易记录一致,并返回验证结果给所述记账节点;所述记账节点可以判断是否有51%的区块链节点的验证结果为验证通过;当确定时,所述记账节点将所述打包的区块追加到区块链的末尾成为新的区块。

这里,如果其他区块链节点对应的游戏终端用户有任何的作弊行为,可能会导致所述记账节点判断未有51%的区块链节点的验证结果为验证通过,这样,所述记账节点会直接丢弃所述打包的区块,从而导致无法将所述打包的区块记录到总账本中,也会造成对应的游戏终端用户支付的游戏费用白白浪费掉。显然,能够降低剩余区块链节点对应的游戏终端用户的作弊风险。

所述记账节点将所述打包的区块追加到区块链的末尾成为新的区块之后,所述记账节点对应的游戏终端用户可以获取固定游戏奖励,并由所述记账节点进行记录。之后,所述各个游戏终端用户等待下一轮游戏的开始。

在一实施例中,所述记账节点将打包的区块广播给所述其他区块链节点之前,所述方法还包括:所述记账节点获取未记录的交易;判断所述未记录的交易量是否大于或等于预设交易阈值;当确定大于或等于所述预设交易阈值时,对所述未记录的交易进行打包,得到区块。

其中,所述未记录的交易可以包括所述记账节点产生的交易,以及所述记账节点从其他区块链节点广播的未记录到账本中的交易。

这里,区块打包的过程,具体可以包括:当所述记账节点获取未记录的交易后,可以获取付款方地址,即公钥地址;根据所述付款方地址,判断付款方余额是否足够支付本次交易;当确定付款方余额足够支付本次交易时,对所述未记录的交易的签名进行验证,以确定交易的真实性;当确定验证通过时,统计验证通过的交易数量;当统计的交易数量大于或等于所述预设交易阈值时,对所述交易数量对应的交易进行打包,得到区块。

采用本发明实施例的技术方案,在确定记账节点的过程中,只需要通过各个第二区块链节点对所述游戏成绩排名进行校验,当所述游戏成绩排名有效时,基于有效的游戏成绩排名确定记账节点,显然,与所述各个第二区块链节点硬件配置的高低没有关系,这样,能够节省硬件资源,实现确定记账节点。

另外,结合区块链技术和游戏场景提供一种高效、有趣的共识算法,具体地,通过游戏如vr赛车游戏提供的竞赛场景,游戏的参与者对游戏成绩排名进行投票即共识验证,当超过50%游戏参与者投票时,根据游戏成绩排名确定获得记账权的记账节点;所述记账节点对应的游戏终端用户获得奖励,能够解决现有共识算法存在的“算力”大和“不公平”问题。

基于本申请各实施例提供的区块链记账节点选择方法,本申请还提供一种区块链记账节点选择装置,所述装置可以设置在终端上,如图3所示,所述装置包括:

获取单元31,用于第一区块链节点获取当前游戏成绩排名;所述游戏成绩排名是各个区块链节点分别对应的游戏终端进行游戏后得到的;

广播单元32,用于将所述游戏成绩排名广播给至少一个第二区块链节点;

接收单元33,用于接收所述第二区块链节点返回的校验结果;所述校验结果表征所述第二区块链节点对接收的游戏成绩排名进行校验的结果;

确定单元34,用于基于返回的各个校验结果,判断所述游戏成绩排名是否有效;当确定有效时,基于所述游戏成绩排名,从多个区块链节点中确定记账节点。

在一实施例中,所述获取单元31,具体用于:所述第一区块链节点从游戏终端获取用户当前的游戏成绩排名;所述游戏成绩排名是游戏服务器发送给所述游戏终端的。

在一实施例中,所述确定单元34,具体用于:基于返回的各个校验结果,统计表征校验通过的校验结果的数量;判断所述数量是否大于或等于预设阈值;当确定所述数量大于或等于所述预设阈值时,确定所述游戏成绩排名有效。

举例来说,所述第一区块链节点统计返回的校验结果的总数量,以及表征校验通过的校验结果的数量;计算所述总数量与预设比例的乘积,得到所述预设阈值;判断所述数量是否大于或等于所述预设阈值;当确定所述数量大于或等于所述预设阈值时,确定所述游戏成绩排名有效。其中,预设比例可以为50%。

这里,所述第一区块链节点对每一轮的游戏成绩排名广播至所述各个第二区块链节点,当超过50%的第二区块链节点确认游戏成绩排名有效后,达成共识,可防止游戏终端用户对游戏成绩进行篡改等情况的发生,从而有效防止游戏作弊情况的发生。

在一实施例中,所述确定单元34,具体用于:基于所述游戏成绩排名,从各个区块链节点中确定所述游戏成绩排名满足第一预设条件的区块链节点;将确定的区块链节点作为记账节点。

在一实施例中,所述确定单元34,具体用于:将所述游戏成绩排名作为智能合约的输入数据;所述智能合约的规则脚本为预设游戏成绩排名与概率的对应关系;利用所述输入数据,基于所述智能合约,得到区块链节点的标识;将得到的标识对应的区块链节点作为记账节点。

上述基于所述第一预设条件,以及智能合约确定的记账节点,能够获取对交易进行记账的记账权。

在一实施例中,所述装置还包括:

区块验证单元,用于供所述记账节点将打包的区块广播给其他区块链节点;所述区块用于供所述其他区块链节点进行验证得到验证结果,并广播所述验证结果;接收所述其他区块链节点返回的验证结果;所述验证结果表征所述其他区块链节点对接收的区块进行验证的结果;判断所述验证结果是否满足第二预设条件;当满足所述第二预设条件时,将所述区块添加至自身的区块链中。

其中,满足所述第二预设条件的验证结果可以为表征验证通过的验证结果的数量大于或等于预设数量阈值。所述区块,可以是指记录一段时间内交易所更新的交易数据及游戏成绩排名数据的数据结构;所述区块的区块体为交易数据。

在对所述打包的区块进行验证时,所述其他区块链节点可以验证所述区块中的交易数据是否与本节点保存的交易记录一致,并返回验证结果给所述记账节点;所述记账节点可以判断是否有51%的区块链节点的验证结果为验证通过;当确定时,所述记账节点将所述打包的区块追加到区块链的末尾成为新的区块。

这里,如果其他区块链节点对应的游戏终端用户有任何的作弊行为,可能会导致所述记账节点判断未有51%的区块链节点的验证结果为验证通过,这样,所述记账节点会直接丢弃所述打包的区块,从而导致无法将所述打包的区块记录到总账本中,也会造成对应的游戏终端用户支付的游戏费用白白浪费掉。显然,能够降低剩余区块链节点对应的游戏终端用户的作弊风险。

所述记账节点将所述打包的区块追加到区块链的末尾成为新的区块之后,所述记账节点对应的游戏终端用户可以获取固定游戏奖励,并由所述记账节点进行记录。之后,所述各个游戏终端用户等待下一轮游戏的开始。

在一实施例中,所述装置还包括:

打包单元,用于供所述记账节点获取未记录的交易;判断所述未记录的交易量是否大于或等于预设交易阈值;当确定大于或等于所述预设交易阈值时,对所述未记录的交易进行打包,得到区块。

在实际应用中,所述获取单元31、接收单元33可由位于所述区块链记账节点选择装置上的通信接口实现;所述广播单元32、确定单元34、区块验证单元、打包单元可由位于所述区块链记账节点选择装置上的处理器比如中央处理器(cpu,centralprocessingunit)、微处理器(mpu,microprocessorunit)、数字信号处理器(dsp,digitalsignalprocessor)、或现场可编程门阵列(fpga,fieldprogrammablegatearray)等结合通信接口实现。

图4是本发明区块链记账节点选择装置的结构示意图,图4所示的区块链记账节点选择装置400设置在所述终端上,包括:至少一个处理器401、存储器402、用户接口403、至少一个网络接口404。区块链记账节点选择装置400中的各个组件通过总线系统405耦合在一起。可理解,总线系统405用于实现这些组件之间的连接通信。总线系统405除包括数据总线之外,还包括电源总线、控制总线和状态信号总线。但是为了清楚说明起见,在图4中将各种总线都标为总线系统405。

其中,用户接口403可以包括显示器、键盘、鼠标、轨迹球、点击轮、按键、按钮、触感板或者触摸屏等。

本发明实施例中的存储器402用于存储各种类型的数据以支持区块链记账节点选择装置400的操作。这些数据的示例包括:用于在区块链记账节点选择装置400上操作的任何计算机程序,如操作系统4021和应用程序4022;其中,操作系统4021包含各种系统程序,例如框架层、核心库层、驱动层等,用于实现各种基础业务以及处理基于硬件的任务。应用程序4022可以包含各种应用程序,用于实现各种应用业务。实现本发明实施例方法的程序可以包含在应用程序4022中。

上述本发明实施例揭示的方法可以应用于处理器401中,或者由处理器401实现。处理器401可能是一种集成电路芯片,具有信号的处理能力。在实现过程中,上述方法的各步骤可以通过处理器401中的硬件的集成逻辑电路或者软件形式的指令完成。上述的处理器401可以是通用处理器、数字信号处理器,或者其他可编程逻辑器件、分立门或者晶体管逻辑器件、分立硬件组件等。处理器401可以实现或者执行本发明实施例中的公开的各方法、步骤及逻辑框图。通用处理器可以是微处理器或者任何常规的处理器等。结合本发明实施例所公开的方法的步骤,可以直接体现为硬件译码处理器执行完成,或者用译码处理器中的硬件及软件模块组合执行完成。软件模块可以位于存储介质中,该存储介质位于存储器402,处理器401读取存储器402中的信息,结合其硬件完成前述方法的步骤。

可以理解,存储器402可以是易失性存储器或非易失性存储器,也可包括易失性和非易失性存储器两者。其中,非易失性存储器可以是只读存储器(rom,readonlymemory)、可编程只读存储器(prom,programmableread-onlymemory)、可区块链记账节点选择可编程只读存储器(eprom,erasableprogrammableread-onlymemory)、电可区块链记账节点选择可编程只读存储器(eeprom,electricallyerasableprogrammableread-onlymemory)、磁性随机存取存储器(fram,ferromagneticrandomaccessmemory)、快闪存储器(flashmemory)、磁表面存储器、光盘、或只读光盘(cd-rom,compactdiscread-onlymemory);磁表面存储器可以是磁盘存储器或磁带存储器。易失性存储器可以是随机存取存储器(ram,randomaccessmemory),其用作外部高速缓存。通过示例性但不是限制性说明,许多形式的ram可用,例如静态随机存取存储器(sram,staticrandomaccessmemory)、同步静态随机存取存储器(ssram,synchronousstaticrandomaccessmemory)、动态随机存取存储器(dram,dynamicrandomaccessmemory)、同步动态随机存取存储器(sdram,synchronousdynamicrandomaccessmemory)、双倍数据速率同步动态随机存取存储器(ddrsdram,doubledataratesynchronousdynamicrandomaccessmemory)、增强型同步动态随机存取存储器(esdram,enhancedsynchronousdynamicrandomaccessmemory)、同步连接动态随机存取存储器(sldram,synclinkdynamicrandomaccessmemory)、直接内存总线随机存取存储器(drram,directrambusrandomaccessmemory)。本发明实施例描述的存储器402旨在包括但不限于这些和任意其它适合类型的存储器。

基于本申请各实施例提供的区块链记账节点选择方法,本申请还提供一种计算机可读存储介质,参照图4所示,所述计算机可读存储介质可以包括:用于存储计算机程序的存储器402,上述计算机程序可由区块链记账节点选择装置400的处理器401执行,以完成前述方法所述步骤。计算机可读存储介质可以是fram、rom、prom、eprom、eeprom、flashmemory、磁表面存储器、光盘、或cd-rom等存储器。

需要说明的是:本发明实施例所记载的技术方案之间,在不冲突的情况下,可以任意组合。

以上所述,仅为本发明的较佳实施例而已,并非用于限定本发明的保护范围。

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