一种在区块链的节点处实现的信息共识方法、装置及系统与流程

文档序号:11199074阅读:357来源:国知局
一种在区块链的节点处实现的信息共识方法、装置及系统与流程

本公开一般涉及计算机领域,具体涉及信息处理领域,尤其涉及一种在区块链的节点处实现的信息共识方法、装置及系统。



背景技术:

目前大多数信息处理的系统都是集中式系统,例如集资抽奖系统,中奖号码的计算也是在一个中心化的服务器中进行的。虽然大多数系统的中奖号码的计算规则都会公布,但仍然不能完全避免会有人怀疑中心化的服务器在号码的分配、查询以及计算中奖号码的过程中是否有暗箱操作。

例如,在一元夺宝系统中,用户消耗一个夺宝币,可以获得其中1个号码。等该活动的所有号码都被分配完毕后,系统会根据开奖公式计算出1个幸运号码(也就是中奖号码),持有该号码的用户,直接获得该奖品。当然,不管是获取号码、计算幸运号码以及查询到的参与此活动的夺宝记录等一系列操作,都是基于一个的中心化的服务器。

可见,基于中心化的服务器时,数据容易被篡改,尤其是应用于抽奖、摇号等场景中时,数据是否能够被篡改直接影响到结果的公平公正,用户体验不佳。



技术实现要素:

鉴于现有技术中的上述缺陷或不足,期望提供一种在区块链的节点处实现的信息共识方法、装置及系统,以实现去中心化系统中各节点进行信息共识。

第一方面,本发明实施例提供一种在区块链的节点处实现的信息共识方法,所述方法包括:

接收其它节点发送的携带待共识信息的待共识消息;

对所述待共识信息验证通过后,广播携带所述待共识信息的待执行消息;

接收其它节点广播的待执行消息,并且当接收到的待执行消息达到设定数量时,根据所述待执行消息中的待共识信息执行相应操作。

优选的,所述对所述待共识信息验证通过后,广播携带所述待共识信息的待执行消息,具体包括:

对所述待共识消息中的待共识信息验证通过后,广播携带所述待共识信息的中间共识消息;

在接收到的中间共识消息达到设定数量时,验证所述中间共识消息中的待共识信息;

对所述中间共识消息中的待共识信息验证通过后,广播携带所述待共识信息的待执行消息。

进一步,该方法还包括:

将携带待共识信息的待共识消息广播给系统中的其它节点;

接收其它节点对所述待共识信息验证通过后,广播的携带所述待共识信息的待执行消息;

接收其它节点广播的待执行消息,并且当接收到的待执行消息达到设定数量时,根据所述待执行消息中的待共识信息执行相应操作。

更进一步,所述接收其它节点对所述待共识信息验证通过后,广播的携带所述待共识信息的待执行消息,具体包括:

接收其它节点对所述待共识消息中的待共识信息验证通过后,广播的携带所述待共识信息的中间共识消息;

接收其它节点在接收到的中间共识消息达到设定数量时,验证所述中间共识消息中的待共识信息,并在对所述中间共识消息中的待共识信息验证通过后,广播的携带所述待共识信息的待执行消息。

更进一步,所述接收其它节点对所述待共识消息中的待共识信息验证通过后,广播的携带所述待共识信息的中间共识消息之后,还包括:

在接收到的中间共识消息达到设定数量时,验证所述中间共识消息中的待共识信息;

在对所述中间共识消息中的待共识信息验证通过后,广播携带所述待共识信息的待执行消息。

进一步,所述根据所述待执行消息中的待共识信息执行相应操作后,还包括:

记录所执行的操作,并将携带记录内容的验证消息广播给系统中的其它节点;

根据接收到的其它节点广播的验证消息中携带的记录内容,验证自身存储的记录内容。

更进一步,所述根据接收到的其它节点广播的验证消息中携带的记录内容,验证自身存储的记录内容,具体包括:

确定接收到的其它节点广播的验证消息中携带的记录内容中,相同的记录内容超过第一设定百分比的记录内容作为共识记录内容;

确定自身存储的记录内容与所述共识记录内容相同时,验证通过,否则退出系统。

更进一步,该方法还包括:

当确定接收到的其它节点广播的验证消息中携带的记录内容中,不存在共识记录内容时,退出系统。

优选的,所述待共识信息具体为:

交易内容、消息编号及私钥的签名和摘要。

所述对所述待共识信息验证通过,具体包括:

验证待共识信息中的签名正确,且接收到的各节点发送的同样的消息中携带的摘要相同的比率大于设置比率时,确定对所述待共识信息验证通过;或者

验证待共识信息中的签名正确,且接收到的各节点发送的同样的消息中携带的摘要相同的比率大于设置比率,并且摘要与曾经接收的该节点发送的同样消息编号的消息的摘要相同时,确定对所述待共识信息验证通过。

进一步,该方法还包括:

将携带待共识交易参数的待共识消息广播给系统中的其它节点;

接收其它节点广播的携带待共识交易参数的待共识消息,当接收到的待共识消息中的待共识交易参数中,存在符合设定条件的待共识交易参数时,根据所述符合设定条件的待共识交易参数生成随机数,不存在符合设定条件的待共识交易参数时,根据各待共识交易参数确定新的待共识交易参数,并广播携带新的待共识交易参数的待共识消息。

更进一步,所述设定条件具体为:

每个节点广播待共识消息的次数达到设定值和/或相同的待共识交易参数数量超过第二设定百分比。

优选的,所述待共识交易参数具体为:

最后一笔交易的完成时间;

所述根据所述符合设定条件的待共识交易参数生成随机数,具体包括:

将所述符合设定条件的待共识交易参数与最后设定个数的交易时间及原始数值求和,将得到的数值除以参与活动的人数并取余数,确定该余数为生成的随机数。

进一步,所述根据各待共识交易参数确定新的待共识交易参数,具体包括:

确定新的待共识交易参数为各待共识交易参数的平均值。

第二方面,本发明实施例还提供一种在区块链的节点处实现的信息共识装置,所述装置包括:

接收单元,用于接收其它节点发送的携带待共识信息的待共识消息;

验证单元,用于对所述待共识信息验证通过后,广播携带所述待共识信息的待执行消息;

执行单元,用于接收其它节点广播的待执行消息,并且当接收到的待执行消息达到设定数量时,根据所述待执行消息中的待共识信息执行相应操作。

优选的,所述验证单元具体用于:

对所述待共识消息中的待共识信息验证通过后,广播携带所述待共识信息的中间共识消息;

在接收到的中间共识消息达到设定数量时,验证所述中间共识消息中的待共识信息;

对所述中间共识消息中的待共识信息验证通过后,广播携带所述待共识信息的待执行消息。

进一步,所述验证单元还用于:

将携带待共识信息的待共识消息广播给系统中的其它节点;

所述接收单元还用于:

接收其它节点对所述待共识信息验证通过后,广播的携带所述待共识信息的待执行消息;

所述执行单元还用于:

接收其它节点广播的待执行消息,并且当接收到的待执行消息达到设定数量时,根据所述待执行消息中的待共识信息执行相应操作。

更进一步,所述接收单元接收其它节点对所述待共识信息验证通过后,广播的携带所述待共识信息的待执行消息,具体包括:

接收其它节点对所述待共识消息中的待共识信息验证通过后,广播的携带所述待共识信息的中间共识消息;

接收其它节点在接收到的中间共识消息达到设定数量时,验证所述中间共识消息中的待共识信息,并在对所述中间共识消息中的待共识信息验证通过后,广播的携带所述待共识信息的待执行消息。

更进一步,所述验证单元还用于:

在接收到的中间共识消息达到设定数量时,验证所述中间共识消息中的待共识信息;

在对所述中间共识消息中的待共识信息验证通过后,广播携带所述待共识信息的待执行消息。

进一步,所述执行单元根据所述待执行消息中的待共识信息执行相应操作后,还包括:

记录所执行的操作,并将携带记录内容的验证消息广播给系统中的其它节点;

根据接收到的其它节点广播的验证消息中携带的记录内容,验证自身存储的记录内容。

更进一步,所述执行单元根据接收到的其它节点广播的验证消息中携带的记录内容,验证自身存储的记录内容,具体包括:

确定接收到的其它节点广播的验证消息中携带的记录内容中,相同的记录内容超过第一设定百分比的记录内容作为共识记录内容;

确定自身存储的记录内容与所述共识记录内容相同时,验证通过,否则退出系统。

更进一步,所述执行单元还用于:

当确定接收到的其它节点广播的验证消息中携带的记录内容中,不存在共识记录内容时,退出系统。

优选的,所述待共识信息具体为:

交易内容、消息编号及私钥的签名和摘要。

所述验证单元对所述待共识信息验证通过,具体包括:

验证待共识信息中的签名正确,且接收到的各节点发送的同样的消息中携带的摘要相同的比率大于设置比率时,确定对所述待共识信息验证通过;或者

验证待共识信息中的签名正确,且接收到的各节点发送的同样的消息中携带的摘要相同的比率大于设置比率,并且摘要与曾经接收的该节点发送的同样消息编号的消息的摘要相同时,确定对所述待共识信息验证通过。

进一步,还包括:

随机数生成单元,用于将携带待共识交易参数的待共识消息广播给系统中的其它节点;接收其它节点广播的携带待共识交易参数的待共识消息,当接收到的待共识消息中的待共识交易参数中,存在符合设定条件的待共识交易参数时,根据所述符合设定条件的待共识交易参数生成随机数,不存在符合设定条件的待共识交易参数时,根据各待共识交易参数确定新的待共识交易参数,并广播携带新的待共识交易参数的待共识消息。

更进一步,所述设定条件具体为:

每个节点广播待共识消息的次数达到设定值和/或相同的待共识交易参数数量超过第二设定百分比。

优选的,所述待共识交易参数具体为:

最后一笔交易的完成时间;

所述随机数生成单元根据所述符合设定条件的待共识交易参数生成随机数,具体包括:

将所述符合设定条件的待共识交易参数与最后设定个数的交易时间及原始数值求和,将得到的数值除以参与活动的人数并取余数,确定该余数为生成的随机数。

更进一步,所述随机数生成单元根据各待共识交易参数确定新的待共识交易参数,具体包括:

确定新的待共识交易参数为各待共识交易参数的平均值。

第三方面,本发明实施例还提供一种在区块链的节点处实现的信息共识系统,所述系统包括:至少四个节点,每个节点均用于:

接收其它节点发送的携带待共识信息的待共识消息;

对所述待共识信息验证通过后,广播携带所述待共识信息的待执行消息;

接收其它节点广播的待执行消息,并且当接收到的待执行消息达到设定数量时,根据所述待执行消息中的待共识信息执行相应操作。

对所述中间共识消息中的待共识信息验证通过后,广播携带所述待共识信息的待执行消息。

优选的,所述节点还用于:

将携带待共识信息的待共识消息广播给系统中的其它节点;

接收其它节点对所述待共识信息验证通过后,广播的携带所述待共识信息的待执行消息;

接收其它节点广播的待执行消息,并且当接收到的待执行消息达到设定数量时,根据所述待执行消息中的待共识信息执行相应操作。

进一步,所述节点还用于:

根据所述待执行消息中的待共识信息执行相应操作后,记录所执行的操作,并将携带记录内容的验证消息广播给系统中的其它节点;

根据接收到的其它节点广播的验证消息中携带的记录内容,验证自身存储的记录内容。

优选的,所述节点还用于:

将携带待共识交易参数的待共识消息广播给系统中的其它节点;

接收其它节点广播的携带待共识交易参数的待共识消息,当接收到的待共识消息中的待共识交易参数中,存在符合设定条件的待共识交易参数时,根据所述符合设定条件的待共识交易参数生成随机数,不存在符合设定条件的待共识交易参数时,根据各待共识交易参数确定新的待共识交易参数,并广播携带新的待共识交易参数的待共识消息。

第四方面,本发明实施例还提供一种节点,包括处理器和存储器;其特征在于:

所述存储器包含可由所述处理器执行的指令以使得所述处理器执行:

接收其它节点发送的携带待共识信息的待共识消息;

对所述待共识信息验证通过后,广播携带所述待共识信息的待执行消息;

接收其它节点广播的待执行消息,并且当接收到的待执行消息达到设定数量时,根据所述待执行消息中的待共识信息执行相应操作。

第五方面,本发明实施例还提供一种计算机可读存储介质,其上存储有计算机程序,所述计算机程序用于:

接收其它节点发送的携带待共识信息的待共识消息;

对所述待共识信息验证通过后,广播携带所述待共识信息的待执行消息;

接收其它节点广播的待执行消息,并且当接收到的待执行消息达到设定数量时,根据所述待执行消息中的待共识信息执行相应操作。

本发明实施例提供一种在区块链的节点处实现的信息共识方法、装置及系统,节点接收到其它节点发送的携带待共识信息的待共识消息后,对待共识信息验证通过后,再广播携带待共识信息的待执行消息,接收其它节点广播的待执行消息,并且当接收到的待执行消息达到设定数量时,根据待执行消息中的待共识信息执行相应操作,由于各节点均对待共识信息进行了验证,只有一个待共识信息被验证通过的节点数达到设定数量,基于该待共识信息的操作才会被执行,因此,只有篡改至少设定数量的节点的数据,才会影响系统的执行结果,从而实现了去中心化系统中各节点进行信息共识,提高了用户体验。

附图说明

通过阅读参照以下附图所作的对非限制性实施例所作的详细描述,本申请的其它特征、目的和优点将会变得更明显:

图1为本发明实施例提供的在区块链的节点处实现的信息共识方法流程图之一;

图2为本发明实施例提供的在区块链的节点处实现的信息共识方法流程图之二;

图3为本发明实施例提供的在区块链的节点处实现的信息共识方法流程图之三;

图4为本发明实施例提供的在区块链的节点处实现的信息共识方法流程图之四;

图5为本发明实施例提供的在区块链的节点处实现的信息共识装置结构示意图;

图6为本发明实施例提供的在区块链的节点处实现的信息共识系统结构示意图;

图7为本发明实施例提供的节点结构示意图。

具体实施方式

下面结合附图和实施例对本申请作进一步的详细说明。可以理解的是,此处所描述的具体实施例仅仅用于解释相关发明,而非对该发明的限定。另外还需要说明的是,为了便于描述,附图中仅示出了与发明相关的部分。

需要说明的是,在不冲突的情况下,本申请中的实施例及实施例中的特征可以相互组合。下面将参考附图并结合实施例来详细说明本申请。

请参考图1,本发明实施例提供的在区块链的节点处实现的信息共识方法,包括:

步骤s101、接收其它节点发送的携带待共识信息的待共识消息;

步骤s102、对待共识信息验证通过后,广播携带待共识信息的待执行消息;

步骤s103、接收其它节点广播的待执行消息,并且当接收到的待执行消息达到设定数量时,根据待执行消息中的待共识信息执行相应操作。

节点接收到其它节点发送的携带待共识信息的待共识消息后,对待共识信息验证通过后,再广播携带待共识信息的待执行消息,接收其它节点广播的待执行消息,并且当接收到的待执行消息达到设定数量时,根据待执行消息中的待共识信息执行相应操作,由于各节点均对待共识信息进行了验证,只有一个待共识信息被验证通过的节点数达到设定数量,基于该待共识信息的操作才会被执行,因此,只有篡改至少设定数量的节点的数据,才会影响系统的执行结果,从而实现了去中心化系统中各节点进行信息共识,提高了用户体验。

步骤s102中,对待共识信息的验证可以仅验证一次即广播待执行消息,也可以验证数次,均验证通过后,再广播待执行消息,当需要验证两次时,步骤s102中,对待共识信息验证通过后,广播携带待共识信息的待执行消息,具体包括:

对待共识消息中的待共识信息验证通过后,广播携带待共识信息的中间共识消息;

在接收到的中间共识消息达到设定数量时,验证中间共识消息中的待共识信息;

对中间共识消息中的待共识信息验证通过后,广播携带待共识信息的待执行消息。

本领域技术人员可以根据实际情况,设计合适的验证次数,从而保证执行效率和安全性能的平衡。

当该节点作为发布待共识消息的节点时,如图2所示,该方法还包括:

步骤s201、将携带待共识信息的待共识消息广播给系统中的其它节点;

步骤s202、接收其它节点对待共识信息验证通过后,广播的携带待共识信息的待执行消息;

步骤s203、接收其它节点广播的待执行消息,并且当接收到的待执行消息达到设定数量时,根据待执行消息中的待共识信息执行相应操作。

该节点可以连接客户端或者集成有客户端,当接收到用户通过客户端发送的请求时,根据需要执行的请求,生成待共识信息,并将携带待共识信息的待共识消息广播给系统中的其它节点。

步骤s202中,对待共识信息的验证可以仅验证一次即广播待执行消息,也可以验证数次,均验证通过后,再广播待执行消息,当需要验证两次时,步骤s202中,接收其它节点对待共识信息验证通过后,广播的携带待共识信息的待执行消息,具体包括:

接收其它节点对待共识消息中的待共识信息验证通过后,广播的携带待共识信息的中间共识消息;

接收其它节点在接收到的中间共识消息达到设定数量时,验证中间共识消息中的待共识信息,并在对中间共识消息中的待共识信息验证通过后,广播的携带待共识信息的待执行消息。

该节点也可以参与对中间共识消息中的待共识消息的验证,此时,接收其它节点对待共识消息中的待共识信息验证通过后,广播的携带待共识信息的中间共识消息之后,还包括:

在接收到的中间共识消息达到设定数量时,验证中间共识消息中的待共识信息;

在对中间共识消息中的待共识信息验证通过后,广播携带待共识信息的待执行消息。

待共识信息可以具体为:

交易内容、消息编号及私钥的签名和摘要。

对待共识信息验证通过,具体包括:

验证待共识信息中的签名正确,且接收到的各节点发送的同样的消息中携带的摘要相同的比率大于设置比率时,确定对待共识信息验证通过;或者

验证待共识信息中的签名正确,且接收到的各节点发送的同样的消息中携带的摘要相同的比率大于设置比率,并且摘要与曾经接收的该节点发送的同样消息编号的消息的摘要相同时,确定对所述待共识信息验证通过。

具体的,假设系统中包括四个节点,节点1、节点2、节点3和节点4,节点1在接收到用户通过客户端发送的交易请求后,生成包括该交易的交易内容、消息编号及私钥的签名和摘要,将该签名和摘要作为待共识信息,将携带待共识信息的待共识消息(preprepare消息)广播到网络中的所有节点,其中,消息编号可以为标识执行消息数量的自增序列。当其它节点收到该待共识消息时,会先验证签名是否正确,如果正确,接着会验证摘要是否正确,上述两个验证都执行通过时,还可以进一步判断自己是否收到过该编号的节点发过来的同样消息编号的消息,如果有,则判断摘要是否相同,摘要不同则认为该消息是有问题的消息,丢弃该消息,如果相同,则验证通过,广播中间待共识消息(prepare消息),如果没有该编号的节点发过来的同样消息编号的消息,则直接广播中间待共识消息(prepare消息),每个节点收到彼此的广播会根据上述流程再次判断各个节点之间是否在执行相同的交易;确认之后,会广播待执行消息(commit消息),当收到n-f(n为节点个数,f为允许的坏节点的个数)个相同的commit消息时,执行该交易。

通常,验证签名是否正确是根据自身存储的用户信息进行验证,验证摘要是否正确则是根据各节点发送的消息中摘要是否一致来验证,如果与大多数消息中的摘要一致,则认为该消息中的摘要正确,如果与大多数消息中的摘要不一致,则验证不通过。

为进一步提高系统的安全性,防止数据篡改的发生,如图3所示,在步骤s103和步骤s203的根据待执行消息中的待共识信息执行相应操作后,还包括:

步骤s301、记录所执行的操作,并将携带记录内容的验证消息广播给系统中的其它节点;

步骤s302、根据接收到的其它节点广播的验证消息中携带的记录内容,验证自身存储的记录内容。

其中,步骤s301中,记录所执行的操作可以视为写账本操作,在区块链的最后一个区块中进行写账本操作,写账本操作完成后,取出最后一个区块的内容,计算记录摘要,将该记录摘要作为记录内容携带在验证消息中进行广播,也可以不计算记录摘要,直接将取出的内容作为记录内容携带在验证消息中进行广播。

其中,步骤s302中,根据接收到的其它节点广播的验证消息中携带的记录内容,验证自身存储的记录内容,具体包括:

确定接收到的其它节点广播的验证消息中携带的记录内容中,相同的记录内容超过第一设定百分比的记录内容作为共识记录内容;

确定自身存储的记录内容与共识记录内容相同时,验证通过,否则退出系统。

对于比较极端的情况,不存在相同的记录内容超过第一设定百分比的记录内容,即不存在共识记录内容,则所有节点都退出系统,系统不再工作。针对这种情况,该方法还包括:

当确定接收到的其它节点广播的验证消息中携带的记录内容中,不存在共识记录内容时,退出系统。

对于一个节点来讲,每次执行完写账本操作之后,都会取出区块链中最后一个区块的数据,并计算摘要,然后广播验证消息(checkpoint消息)。任何一个节点都会收到网络中每个节点的checkpoint消息,然后判断该消息中的记录内容是否相同,如果其中某个记录内容的数量大于或等于全部节点数量的第一设定百分比,例如百分之五十一,则记录为共识记录内容,每个节点都用自身的记录内容和共识记录内容进行比较,如果不同,则该节点退出系统;若果相同,则继续执行其他操作,极端的情况是,不存在某个记录内容的数量大于或等于全部节点数量的第一设定百分比,则所有节点都退出系统。

此时,一个交易已经完整的执行完毕。由上述流程可知,交易在执行过程中可保证不被恶意篡改,否则不会执行。而操作执行之后,因为所有节点都保存了记录,所以某个或者某些(少于第一设定百分比)的存储的记录内容被恶意篡改,也不会影响系统的正常运行。

由系统的以上特性,可保证系统的公平、公正。当其中某个或者某些(少于第一设定百分比)的节点遭到恶意篡改时,也不会影响系统的正常运行。当其中某个或者某些(少于第一设定百分比)的节点遭到恶意攻击而不能工作时,也不会影响系统的正常运行。而不像中心化的服务器,当中心服务器被攻破之后,就完全瘫痪。

进一步,该消息共识还可以用于根据交易参数生成随机数,该随机数可以用于抽奖、摇号等场景。

此时,如图4所示,本发明实施例提供的消息共识方法还包括:

步骤s401、将携带待共识交易参数的待共识消息广播给系统中的其它节点;

步骤s402、接收其它节点广播的携带待共识交易参数的待共识消息,当接收到的待共识消息中的待共识交易参数中,存在符合设定条件的待共识交易参数时,根据符合设定条件的待共识交易参数生成随机数,不存在符合设定条件的待共识交易参数时,根据各待共识交易参数确定新的待共识交易参数,广播携带新的待共识交易参数的待共识消息。

其中,设定条件可具体为:

每个节点广播待共识消息的次数达到设定值和/或相同的待共识交易参数数量超过第二设定百分比。

其中,待共识交易参数可以具体为:

最后一笔交易的完成时间;

步骤s402中,根据符合设定条件的待共识交易参数生成随机数,具体包括:

将符合设定条件的待共识交易参数与最后设定个数的交易时间及原始数值求和,将得到的数值除以参与活动的人数并取余数,确定该余数为生成的随机数。

优选的,步骤s402中,根据各待共识交易参数确定新的待共识交易参数,具体包括:

确定新的待共识交易参数为各待共识交易参数的平均值。

例如,在抽奖场景中,每个节点都记录自己收到最后一笔交易的时间,然后在系统中共识达成一个一致的最后一笔交易的完成时间(close_time)。

共识过程可以包括若干轮,每一轮的的超时时间为3秒。第一轮和第二轮集票时间到后,各节点从所有收到的close_time(排序去重后)里选择一个中间值,再抛出新的close_time;第三轮集票时间到后,选择得票最多的close_time,如果得票最多的close_time占全天投票的80%以上,则记录并使用此close_time,否则再抛出此close_time进行投票,直到某个close_time得到80%以上的投票为止。

每当有用户参加抽奖活动时,系统都会判断是否募集到足够的开奖金额。如果募集到足够的开奖金额,则会以发交易的方式,进行共识活动关闭时间的计算。计算活动共识关闭时间(close_time)的过程,是网络所有节点都会参与的,由此,更加提现了系统的公平、公正的特性。得到close_time之后,取最后100个参与活动时间(不满100个则取所有的)加上close_time,再加上原始数10000001,求和之后除以参加活动的人数取余得到号码n。第n个被分配的活动号码即为幸运号码。

由此说明,幸运号码的计算是完全随机的,更加提现了该系统公平、公正的特性。计算出幸运号码之后,所有节点都会广播计算结果的交易,接着按照上述执行交易流程继续进行共识。由此可见,系统被恶意篡改开奖结果的也是非常困难的。

应当注意,尽管在附图中以特定顺序描述了本发明方法的操作,但是,这并非要求或者暗示必须按照该特定顺序来执行这些操作,或是必须执行全部所示的操作才能实现期望的结果。相反,流程图中描绘的步骤可以改变执行顺序。附加地或备选地,可以省略某些步骤,将多个步骤合并为一个步骤执行,和/或将一个步骤分解为多个步骤执行。

进一步参考图5,其示出了根据本申请一个实施例的在区块链的节点处实现的信息共识装置的示例性结构框图。如图5所示,该装置包括:

接收单元501,用于接收其它节点发送的携带待共识信息的待共识消息;

验证单元502,用于对待共识信息验证通过后,广播携带待共识信息的待执行消息;

执行单元503,用于接收其它节点广播的待执行消息,并且当接收到的待执行消息达到设定数量时,根据待执行消息中的待共识信息执行相应操作。

优选的,验证单元502具体用于:

对待共识消息中的待共识信息验证通过后,广播携带待共识信息的中间共识消息;

在接收到的中间共识消息达到设定数量时,验证中间共识消息中的待共识信息;

对中间共识消息中的待共识信息验证通过后,广播携带待共识信息的待执行消息。

进一步,验证单元502还用于:

将携带待共识信息的待共识消息广播给系统中的其它节点;

接收单元501还用于:

接收其它节点对待共识信息验证通过后,广播的携带待共识信息的待执行消息;

执行单元503还用于:

接收其它节点广播的待执行消息,并且当接收到的待执行消息达到设定数量时,根据待执行消息中的待共识信息执行相应操作。

更进一步,接收单元501接收其它节点对待共识信息验证通过后,广播的携带待共识信息的待执行消息,具体包括:

接收其它节点对待共识消息中的待共识信息验证通过后,广播的携带待共识信息的中间共识消息;

接收其它节点在接收到的中间共识消息达到设定数量时,验证中间共识消息中的待共识信息,并在对中间共识消息中的待共识信息验证通过后,广播的携带待共识信息的待执行消息。

更进一步,验证单元502还用于:

在接收到的中间共识消息达到设定数量时,验证中间共识消息中的待共识信息;

在对中间共识消息中的待共识信息验证通过后,广播携带待共识信息的待执行消息。

优选的,执行单元503根据待执行消息中的待共识信息执行相应操作后,还包括:

记录所执行的操作,并将携带记录内容的验证消息广播给系统中的其它节点;

根据接收到的其它节点广播的验证消息中携带的记录内容,验证自身存储的记录内容。

进一步,执行单元503根据接收到的其它节点广播的验证消息中携带的记录内容,验证自身存储的记录内容,具体包括:

确定接收到的其它节点广播的验证消息中携带的记录内容中,相同的记录内容超过第一设定百分比的记录内容作为共识记录内容;

确定自身存储的记录内容与共识记录内容相同时,验证通过,否则退出系统。

更进一步,执行单元503还用于:

当确定接收到的其它节点广播的验证消息中携带的记录内容中,不存在共识记录内容时,退出系统。

优选的,待共识信息具体为:

交易内容、消息编号及私钥的签名和摘要。

验证单元502对待共识信息验证通过,具体包括:

验证待共识信息中的签名正确,且接收到的各节点发送的同样的消息中携带的摘要相同的比率大于设置比率时,确定对待共识信息验证通过;或者

验证待共识信息中的签名正确,且接收到的各节点发送的同样的消息中携带的摘要相同的比率大于设置比率,并且摘要与曾经接收的该节点发送的同样消息编号的消息的摘要相同时,确定对待共识信息验证通过。

进一步,该装置还包括:

随机数生成单元,用于将携带待共识交易参数的待共识消息广播给系统中的其它节点;接收其它节点广播的携带待共识交易参数的待共识消息,当接收到的待共识消息中的待共识交易参数中,存在符合设定条件的待共识交易参数时,根据符合设定条件的待共识交易参数生成随机数,不存在符合设定条件的待共识交易参数时,根据各待共识交易参数确定新的待共识交易参数,并广播携带新的待共识交易参数的待共识消息。

其中,设定条件具体为:

每个节点广播待共识消息的次数达到设定值和/或相同的待共识交易参数数量超过第二设定百分比。

进一步,待共识交易参数具体为:

最后一笔交易的完成时间;

此时,随机数生成单元根据符合设定条件的待共识交易参数生成随机数,具体包括:

将符合设定条件的待共识交易参数与最后设定个数的交易时间及原始数值求和,将得到的数值除以参与活动的人数并取余数,确定该余数为生成的随机数。

优选的,随机数生成单元根据各待共识交易参数确定新的待共识交易参数,具体包括:

确定新的待共识交易参数为各待共识交易参数的平均值。

应当理解,该装置中记载的诸单元或模块与参考图1-图4描述的方法中的各个步骤相对应。由此,上文针对方法描述的操作和特征同样适用于该装置及其中包含的单元,在此不再赘述。该装置可以预先实现在电子设备的浏览器或其他安全应用中,也可以通过下载等方式而加载到电子设备的浏览器或其安全应用中。该装置中的相应单元可以与电子设备中的单元相互配合以实现本申请实施例的方案。

本发明实施例还相应提供一种在区块链的节点处实现的信息共识系统,如图6所示,该系统包括:至少四个节点601,各节点之间通过有线连接或者无线连接,或者可以通过互联网连接,每个节点601均用于:

接收其它节点发送的携带待共识信息的待共识消息;

对待共识信息验证通过后,广播携带待共识信息的待执行消息;

接收其它节点广播的待执行消息,并且当接收到的待执行消息达到设定数量时,根据待执行消息中的待共识信息执行相应操作。

对中间共识消息中的待共识信息验证通过后,广播携带待共识信息的待执行消息。

进一步,节点601还用于:

将携带待共识信息的待共识消息广播给系统中的其它节点;

接收其它节点对待共识信息验证通过后,广播的携带待共识信息的待执行消息;

接收其它节点广播的待执行消息,并且当接收到的待执行消息达到设定数量时,根据待执行消息中的待共识信息执行相应操作。

优选的,节点601还用于:

根据待执行消息中的待共识信息执行相应操作后,记录所执行的操作,并将携带记录内容的验证消息广播给系统中的其它节点;

根据接收到的其它节点广播的验证消息中携带的记录内容,验证自身存储的记录内容。

进一步,节点601还用于:

将携带待共识交易参数的待共识消息广播给系统中的其它节点;

接收其它节点广播的携带待共识交易参数的待共识消息,当接收到的待共识消息中的待共识交易参数中,存在符合设定条件的待共识交易参数时,根据符合设定条件的待共识交易参数生成随机数,不存在符合设定条件的待共识交易参数时,根据各待共识交易参数确定新的待共识交易参数,并广播携带新的待共识交易参数的待共识消息。

下面参考图7,其示出了适于用来实现本申请实施例的节点的结构示意图。

如图7所示,节点包括中央处理单元(cpu)701,其可以根据存储在只读存储器(rom)702中的程序或者从存储部分708加载到随机访问存储器(ram)703中的程序而执行各种适当的动作和处理。在ram703中,还存储有节点操作所需的各种程序和数据。cpu701、rom702以及ram703通过总线704彼此相连。输入/输出(i/o)接口705也连接至总线704。

以下部件连接至i/o接口705:包括键盘、鼠标等的输入部分706;包括诸如阴极射线管(crt)、液晶显示器(lcd)等以及扬声器等的输出部分707;包括硬盘等的存储部分708;以及包括诸如lan卡、调制解调器等的网络接口卡的通信部分709。通信部分709经由诸如因特网的网络执行通信处理。驱动器710也根据需要连接至i/o接口705。可拆卸介质711,诸如磁盘、光盘、磁光盘、半导体存储器等等,根据需要安装在驱动器710上,以便于从其上读出的计算机程序根据需要被安装入存储部分708。

特别地,根据本公开的实施例,上文参考图1-图4描述的过程可以被实现为计算机软件程序。例如,本公开的实施例包括一种计算机程序产品,其包括有形地包含在机器可读介质上的计算机程序,所述计算机程序包含用于执行图1-图4的方法的程序代码。在这样的实施例中,该计算机程序可以通过通信部分709从网络上被下载和安装,和/或从可拆卸介质711被安装。

附图中的流程图和框图,图示了按照本发明各种实施例的系统、方法和计算机程序产品的可能实现的体系架构、功能和操作。在这点上,流程图或框图中的每个方框可以代表一个模块、程序段、或代码的一部分,所述模块、程序段、或代码的一部分包含一个或多个用于实现规定的逻辑功能的可执行指令。也应当注意,在有些作为替换的实现中,方框中所标注的功能也可以以不同于附图中所标注的顺序发生。例如,两个接连地表示的方框实际上可以基本并行地执行,它们有时也可以按相反的顺序执行,这依所涉及的功能而定。也要注意的是,框图和/或流程图中的每个方框、以及框图和/或流程图中的方框的组合,可以用执行规定的功能或操作的专用的基于硬件的系统来实现,或者可以用专用硬件与计算机指令的组合来实现。

描述于本申请实施例中所涉及到的单元或模块可以通过软件的方式实现,也可以通过硬件的方式来实现。所描述的单元或模块也可以设置在处理器中,例如,可以描述为:一种处理器包括xx单元、yy单元以及zz单元。其中,这些单元或模块的名称在某种情况下并不构成对该单元或模块本身的限定,例如,xx单元还可以被描述为“用于xx的单元”。

作为另一方面,本申请还提供了一种计算机可读存储介质,该计算机可读存储介质可以是上述实施例中所述装置中所包含的计算机可读存储介质;也可以是单独存在,未装配入设备中的计算机可读存储介质。计算机可读存储介质存储有一个或者一个以上程序,所述程序被一个或者一个以上的处理器用来执行描述于本申请的公式输入方法。

以上描述仅为本申请的较佳实施例以及对所运用技术原理的说明。本领域技术人员应当理解,本申请中所涉及的发明范围,并不限于上述技术特征的特定组合而成的技术方案,同时也应涵盖在不脱离所述发明构思的情况下,由上述技术特征或其等同特征进行任意组合而形成的其它技术方案。例如上述特征与本申请中公开的(但不限于)具有类似功能的技术特征进行互相替换而形成的技术方案。

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