CN110673914B - 一种区块链共识的视图切换方法及区块链系统 - Google Patents
一种区块链共识的视图切换方法及区块链系统 Download PDFInfo
- Publication number
- CN110673914B CN110673914B CN201910905076.1A CN201910905076A CN110673914B CN 110673914 B CN110673914 B CN 110673914B CN 201910905076 A CN201910905076 A CN 201910905076A CN 110673914 B CN110673914 B CN 110673914B
- Authority
- CN
- China
- Prior art keywords
- consensus
- node
- view
- score
- nodes
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Active
Links
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
- G06F9/44—Arrangements for executing specific programs
- G06F9/451—Execution arrangements for user interfaces
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L67/00—Network arrangements or protocols for supporting network services or applications
- H04L67/01—Protocols
- H04L67/10—Protocols in which an application is distributed across nodes in the network
- H04L67/1097—Protocols in which an application is distributed across nodes in the network for distributed storage of data in networks, e.g. transport arrangements for network file system [NFS], storage area networks [SAN] or network attached storage [NAS]
Landscapes
- Engineering & Computer Science (AREA)
- Software Systems (AREA)
- Theoretical Computer Science (AREA)
- Human Computer Interaction (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Computer Networks & Wireless Communication (AREA)
- Signal Processing (AREA)
- Hardware Redundancy (AREA)
Abstract
本说明书实施例提供一种区块链共识的视图切换方法及系统。其中,方法包括:共识节点在进行切换到第一视图的视图切换时,获取第一视图对应的共识主节点的共识提议能力的评分和所述共识节点生效的历史记录。所述共识节点基于所述共识主节点的评分对应的共识主节点配置频率和所述共识主节点生效的历史记录,确定所述共识主节点在所述第一视图是否生效。若不是,则所述共识节点触发切换到第二视图的视图切换,其中,所述第二视图为所述第一视图顺序加1。
Description
技术领域
本文件涉及信息技术领域,尤其涉及一种区块链共识的视图切换方法及区块链系统。
背景技术
区块链的各个节点通常有与之对应的实体机构,如银行、保险、证券、商业协会等。这些机构组成利益相关的联盟,来共同维护区块链的运转。现有技术中,交易需要达成区块链中各个共识节点的共识后才能进行上链。这个共识提议由区块链中的共识主节点负责发起。目前,区块链中的各共识节点都会按照一定的视图排序,轮流成为共识主节点,因此作恶或性能不好的共识节点也同样有机会成为共识主节点,从而针对不合法的交易发起共识提议,造成其他共识节点需要花费额外资源进行识别、拒绝,甚至在无法识别的情况下,导致不合法的交易达成共识后上链。
因此,如何限制作恶或性能不好的共识节点频繁成为共识主节点,是当前亟待解决的技术问题。
发明内容
本说明书实施例目的是提供一种区块链共识的视图切换方法、及区块链系统,能够限制作恶或性能不好的共识节点频繁成为共识主节点。
为了实现上述目的,本说明书实施例是这样实现的:
第一方面,提供一种区块链共识的视图切换方法,包括:
共识节点在进行切换到第一视图的视图切换时,获取第一视图对应的共识主节点的共识提议能力的评分和所述共识节点生效的历史记录;
所述共识节点基于所述共识主节点的评分对应的共识主节点配置频率和所述共识主节点生效的历史记录,确定所述共识主节点在所述第一视图是否生效;
若不是,则所述共识节点触发切换到第二视图的视图切换,其中,所述第二视图为所述第一视图顺序加1。
第二方面,提供一种区块链去块链系统,包括:多个共识节点;其中,
所述共识节点在进行切换到第一视图的视图切换时,获取第一视图对应的共识主节点的共识提议能力的评分和所述共识节点生效的历史记录;
所述共识节点基于所述共识主节点的评分对应的共识主节点配置频率和所述共识主节点生效的历史记录,确定所述共识主节点在所述第一视图是否生效;
若不是,则所述共识节点触发切换到第二视图的视图切换,其中,所述第二视图为所述第一视图顺序加1。
本说明书实施例的方案针对区块链中的各个共识节点,配置符合其自身共识提议能力的共识主节点配置频率,从而在视图切换时,限制共识提议能力较低的共识节点或者作恶的共识节点频繁被选为区块链的共识主节点,进而在一定程度上,遏制了共识主节点对非法交易发起的共识提议,不仅能够降低非法交易上链的概率,还能够减少区块链执行共识所产生的开销,因此具有很高的实用价值。
附图说明
为了更清楚地说明本说明书实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本说明书实施例中记载的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动性的前提下,还可以根据这些附图获得其他的附图。
图1为本说明书实施例提供的区块链共识的视图切换方法的流程示意图。
图2为创建智能合约和调用智能合约的示意图。
图3为本说明书实施例提供的区块链系统的结构示意图。
具体实施方式
为了使本技术领域的人员更好地理解本说明书中的技术方案,下面将结合本说明书实施例中的附图,对本说明书实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本说明书一部分实施例,而不是全部的实施例。基于本说明书中的实施例,本领域普通技术人员在没有作出创造性劳动前提下所获得的所有其他实施例,都应当属于本说明书保护的范围。
如前所述,现有技术中,区块链的各共识节点会按照一定的视图排序,轮流作为共识主节点,因此作恶共识节点或性能不好的共识节点也同样有机会成为共识主节点,从而针对不合法的交易发起共识提议,造成其他共识节点需要花费额外资源进行识别、拒绝,甚至在无法识别的情况下,导致不合法的交易达成共识后上链。针对这一问题,本说明书提供旨在提供一种解决方案,能够限制作恶共识节点或性能不好的共识节点频繁成为共识主节点。
图1是本说明书实施例区块链共识的视图切换方法的流程图。图1所示的方法可以由下文相对应的装置执行,包括:
步骤S102,共识节点在进行切换到第一视图的视图切换时,获取第一视图对应的共识主节点的共识提议能力的评分和所述共识节点生效的历史记录。
其中,这里所述的共识节点可以是区块链中的任意共识节点,比如共识主节点或共识备份节点。
如前所述,区块链中的各共识节点都会按照一定的视图排序,轮流成为共识主节点。本步骤的第一视图是在需要更换共识主节点时,按照视图排序,所确定得到的视图。
步骤S104,共识节点基于共识主节点的评分对应的共识主节点配置频率和共识主节点生效的历史记录,确定共识主节点在所述第一视图是否生效。
应理解,共识主节点的共识主节点配置频率应与共识主节点的共识提议能力的评分相匹配。即,共识主节点的评分越高,对应的共识主节点配置频率也越高;同理,共识主节点的评分越低,对应的共识主节点配置频率也越低。
本步骤中,基于第一视图对应的共识主节点生效的历史记录确定出:
如果本轮换主将第一视图对应的共识主节点选取为区块链当前的共识主节点,导致该第一视图对应的共识主节点的共识主节点配置频率超出了评分对应的共识主节点配置频率,则判定第一视图对应的共识主节点在第一视图中失效。
如果本轮换主将第一视图对应的共识主节点选取为区块链当前的共识主节点,未导致该第一视图对应的共识主节点的共识主节点配置频率超出评分对应的共识主节点配置频率,则判定第一视图对应的共识主节点在第一视图中有效。
步骤S106,若不是,则共识节点触发切换到第二视图的视图切换,其中,第二视图为第一视图顺序加1。
应理解,第一视图对应的共识主节点在第一视图失效后,区块链进行新一轮换主,以按照视图排序,发起第二视图的视图切换。其中,第二视图对应有与第一视图不同的共识主节点。
在本说明书实施例的方案中,如果第二视图对应的共识主节点在第二视图生效,则将区块链当前的视图切换至第二视图;如果第二视图对应的共识主节点在第二视图也未生效,则继续按照视图排序,触发第三视图的视图切换,直至区块链成功切换视图。
基于图1所示的视图切换方法可以知道:本说明书实施例的方案针对区块链中的各个共识节点,配置符合其自身共识提议能力的共识主节点配置频率,从而在视图切换时,限制共识提议能力较低的共识节点或者作恶的共识节点频繁被选为区块链的共识主节点,进而在一定程度上,遏制了共识主节点对非法交易发起的共识提议,不仅能够降低非法交易上链的概率,还能够减少区块链执行共识所产生的开销,因此具有很高的实用价值。
下面对本说明书实施例的方法进行详细介绍。
目前区块链的各个节点需要在业务层面上对客户端发起的交易进行校验,以验证交易的合法性。业务校验可以是对交易的风险校验、数据格式校验等。以风险校验为例,执行风险校验需要有一定的技术积累,其中最关键的风险数据和风险评估策略是机构的机密信息。因此一般情况下,区块链的节点之间不会共享自己的业务校验规则(即区块链中至少有两个节点对应不同的业务校验逻辑),使得同一交易在不同节点可能对应有不同的业务校验结果。
对于区块链的共识主节点来讲,会对通过自身业务校验的交易发起共识提议。因此,共识提议包含的交易就是共识主节点认同的交易。共识备份节点在共识提议过程中,可以基于自身的业务校验规则对共识提议中的交易进行业务校验。这里,共识备份节点不会对于未通过其业务校验的交易执行共识逻辑。
由此可见,决定共识提议能力其中一个重要的参考因素就是共识节点作为共识主节点时,发起共识提议的交易通过共识备份节点业务校验的比例。
显然,当某一共识节点作为共识主节点时,在指定时间段内或指定共识轮次内发起共识提议的交易通过共识备份节点业务校验的比例较低,则表示该共识节点发起的共识提议得不到其他共识节点的认可,对应的共识提议能力较弱。同理,某一共识节点作为共识主节点时,在指定时间段内或指定共识轮次内发起共识提议的交易通过备份节点业务校验的比例较高,表示该共识节点发起的共识提议得到其他共识节点的认可,对应的共识提议能力较强。
基于上述原理,在本说明书实施例的方法中,可以根据共识主节点在指定时间段内或指定共识轮次内,发起的共识提议的交易通过共识备份节点业务校验的比例,来对共识主节点的共识提议能力进行打分。
应理解,共识主节点的共识提议能力的评分与共识主节点在指定时间段内发起的共识提议的交易通过共识备份节点业务校验的比例呈正相关,或者,共识主节点的共识提议能力的评分与共识主节点在指定共识轮次内发起的共识提议的交易通过共识备份节点业务校验的比例呈正相关。
当然,也可以基于同样的原理,对评分进行简化:
即,本说明书实施例的方法可以直接根据共识节点发起的共识提议达成共识的比例,来对该共识节点的共识提议能力进行评分。
比如,当某一共识节点作为共识主节点时,在指定时间段内或指定共识轮次内发起共识提议达成共识的比例较低,也可以表示该共识节点发起的共识提议得不到其他共识节点的认可,对应的共识提议能力较弱。同理,某一共识节点作为共识主节点时,在指定时间段内或指定共识轮次内发起共识提议达成共识的比例较高,则表示该共识节点发起的共识提议得到其他共识节点的认可,对应的共识提议能力较强。
即,共识主节点的共识提议能力的评分与所述共识主节点在指定时间段内发起的共识提议达成共识的比例呈正相关;或者,共识主节点的共识提议能力的评分与共识主节点在指定共识轮次内发起的共识提议达成共识的比例呈正相关。
在实际应用中,区块链的共识节点并不限制为一个,每个共识节点都可以对第一视图的共识主节点的共识提议能力进行打分。共识主节点最终确定下来的评分可以是对各个共识节点的评分进行加权计算后所确定得到的。
应理解,以上描述仅用于示例性介绍共识提议能力的打分机制,并不限制本说明书实施例的保护范围。任何能够对共识主节点的共识提议能力进行评分的机制都可以适用于本说明实施例的方法。
具体地,本说明实施例的方法可以通过智能合约来控制共识节点对共识主节点的共识提议能力进行打分。智能合约是一种计算机协议,当一个预先编好的条件被触发时,智能合约执行相应的合同条款。
在实际应用中,可以预先在区块链中部署指定智能合约,指定智能合约具有根据目标共识主节点的评分对应的共识主节点配置频率和目标共识主节点生效的历史记录,确定目标共识主节点在自身对应的目标视图是否生效的处理逻辑。
共识节点在进行视图切换时,调用该指定智能合约,即可对区块链中任意共识节点在作为共识主节点时的共识提议能力进行评分。
图2为创建智能合约和调用智能合约的示意图。其中,区块链要创建一个智能合约需要经过编写智能合约、变成字节码、部署到区块链等过程。智能合约创建后,会拥有一个特定的地址,目标共识节点基于这个地址即可对智能合约进行调用。
下面对共识节点的共识提议能力的评分过程进行介绍。
示例性地,本说明书实施例中,区块链采用拜占庭容错(PBFT,PracticalByzantine Fault Tolerance)算法实现共识。
其中,区块链的共识主节点在发起共识提议后,共识备份节点可以在PBFT算法的预准备(pre-prepare)阶段或准备(prepare)阶段对共识提议中的交易进行业务校验,并根据业务校验结果对共识主节点的共识提议能力进行评分。
以共识备份节点在pre-prepare阶段执行业务校验为例,则评分流程主要包括:
步骤A1,区块链的Client(客户端)发起交易。
步骤A2,区块链的每个replica节点(副本,也称为copy,构建分布式系统的节点,包含共识主节点和共识备份节点)针对Client发起的交易进行账户合法性校验,并将通过账户合法性校验的交易同步至各自的交易池中。
其中,账户合法性校验一般是指对交易的网络签名、账户信息等进行校验。账户合法性校验的校验对象是固定的内容,不存在各节点的账户合法性校验结果不一致的现象发生。比如判断交易中的网络签名是否正确,正确就是正确,不正确就是不正确,不存在各节点的账户合法性校验结果不一致的现象发生。因此,若交易能够成功通过账户合法性校验,则会同步到各节点的交易池中。
步骤A3,区块链的共识主节点对通过自身业务校验的交易发起基于拜占庭容错算法的共识提议。
其中,共识过程主要包括:
pre-prepare阶段:
共识主节点收到来自Client的一个请求,并分配一个编号给这个请求,然后主节点会广播一条pre-prepare消息给备份节点,这个pre-prepare消息包含该请求的编号、所在的视图(view)和共识主节点的摘要(digest)。
每一个共识备份节点在接收到pre-prepare消息后,确定同不同意共识主节点分配给该请求的这个编号n,即,确认是否接受这条pre-prepare消息。
各共识备份节点如果接受了这条pre-prepare消息,则基于自身的业务校验规则,对请求中的所有交易进行业务校验。并若通过业务校验后,进入prepare阶段。若,未通过业务校验,则不执行共识逻辑,并打回本次共识提议的交易。
prepare阶段:
所有共识备份节点中的每一个在接收到pre-prepare消息后,检查pre-prepare消息是否合法。如果pre-prepare消息合法,那么该请求在replica上的状态被确定为prepared,共识备份节点将该pre-prepare消息添加到本地Log中,并发送prepare消息给其他共识备份节点。
commit阶段:
所有replica节点中的每一个在进入prepared状态后,发送commit消息给其他replica节点,并将自己发送的commit消息添加到本地Log中(代表自己的认可)。当一个replica节点发现有一个quorum(quorum是为了能够确保所有replica数据一致性要求和容错要求需要的一定数量replica的集合)同意编号分配时,它就会广播一条commit消息给其它所有节点。与此同时也会陆续收到来自其他节点的commit消息,如果每个节点收到了2f+1(f是区块链中作恶共识节点的数量)条commit消息(包括自身的一条,这些来自不同节点的commit携带相同的编号n和view v),就说名该replica节点拥有了一个名为committedcertificate的证书,请求在这个replica节点上达到了committed状态。此时只通过这一个replica节点,就能断定该请求已经在一个quorum中到达了prepared状态,即同一个quorum的所有replica节点都同意了编号n的分配。当Client发起的请求到达commited状态后,说明已经达成全网共识。
步骤A4,区块链的共识备份节点基于近期或近几轮共识主节点发起的共识提议达成共识的比例,对共识主节点的共识提议能力进行评分。
例如,当前共识主节点近3轮共识提议的交易总数为100个,达成共识的交易为80个,则可以根据80%的达成比例与一系数进行加权计算,得到当前共识主节的共识提议能力评分。其中,这个系数的取值可以通过对所有共识节点近3轮发起的共识提所议达成共识的比例进行比对后获得。比如,80%的达成比例在所有共识节点中处于较低的水准,则加权计算系数应拉低共识提议能力评分;同理,80%的达成比例在所有共识节点中处于较高的水准,则加权计算系数应拉高对共识提议能力评分。
以备份节点在prepare阶段执行业务校验为例,则评分流程主要包括:
步骤B1,区块链的Client发起交易。
步骤B2,区块链的每个replica节点针对Client发起的交易进行账户合法性校验,并将通过账户合法性校验的交易同步至各自的交易池中。
步骤B3,区块链的共识主节点对通过自身业务校验的交易发起基于拜占庭容错算法的共识提议。
其中,共识过程主要包括:
pre-prepare阶段:
共识主节点收到来自Client的一个请求,并分配一个编号给这个请求,然后主节点会广播一条pre-prepare消息给备份节点,这个pre-prepare消息包含该请求的编号、所在的视图(view)和共识主节点的摘要(digest)。
每一个共识备份节点在接收到pre-prepare消息后,确定同不同意共识主节点分配给该请求的这个编号n,即,确认是否接受这条pre-prepare消息。各备份节点如果接受了这条pre-prepare消息,则进入prepare阶段。
prepare阶段:
所有共识备份节点中的每一个在接收到pre-prepare消息后,先基于自身的业务校验规则,对共识提议中的所有交易分别进行业务校验。若业务校验未通过,则不执行共识逻辑,并打回本次共识提议的交易。
若业务校验通过,再进一步检查pre-prepare消息是否合法。如果pre-prepare消息合法,那么该交易请求在replica上的状态被确定为prepared,共识备份节点将该pre-prepare消息添加到本地Log中,并发送prepare消息给其他共识备份节点。
commit阶段:
所有replica节点中的每一个在进入prepared状态后,发送commit消息给其他replica节点,并将自己发送的commit消息添加到本地Log中。当一个replica节点发现有一个quorum同意编号分配时,它就会广播一条commit消息给其它所有节点。与此同时也会陆续收到来自其他节点的commit消息,如果每个节点收到了2f+1条commit消息,就说名该replica节点拥有了一个名为committed certificate的证书,请求在这个replica节点上达到了committed状态。此时只通过这一个replica节点,就能断定该请求已经在一个quorum中到达了prepared状态,即同一个quorum的所有replica节点都同意了编号n的分配。当Client发起的请求到达commited状态后,说明已经达成全网共识。
步骤B4,区块链的共识备份节点基于近期或近几轮共识主节点发起的共识提议的交易通过共识从节点业务校验的比例,对共识主节点的共识提议能力进行评分。
在上述两种评分过程的实际应用中,共识备份节点会可以基于自身的风控规则,对共识主节点发起共识提议的交易进行风险识别,如果识别出风险,则业务校验不通过,要么表示共识主节点侧的风控能力较差,要么表示共识主节点有意作恶,这些都是影响共识主节点评分的重要因素。显然,基于本说明书实施例的方法,每个共识节点在作为主节点时,都要对自己发起共识提议的交易付出评分上的代价,最终反映在后续成为共识主节点的频率上,从而有效限制共识主节点对不具有合法性的交易发起共识提议。
进一步地,在共识节点确定出第一视图的共识主节点的共识提议能力评分后,即可根据该评分计算出第一视图的共识主节点理论的共识主节点配置频率。同时,共识节点根据第一视图对应的共识主节点生效的历史记录,确定出该共识主节点实际的共识主节点配置频率。
如果第一视图的共识主节点实际的共识主节点配置频率已经超出了理论的共识主节点配置频率,则确定该共识主节点在第一视图中失效,并触发下一视图的视图切换。
如果第二视图的共识主节点实际的共识主节点配置频率未超出理论的共识主节点配置频率,则确定该共识主节点在第一视图中未失效,此时区块链的各共识节点对第一视图进行共识,并在共识达成后,应用第一视图,即区块链将当前的视图切换至第一视图,使第一视图对应的共识主节点作为区块链当前的共识主节点。
为方便理解,作为示例性介绍:
假设区块链中有节点A、节点B、节点C三个共识节点。其中,节点A作为区块链当前的共识主节点,节点B和节点C作为区块链当前的共识备份节点。
若联盟链执行换主流程,则基于当前的视图顺序,确定了节点B的视图。此时,根据节点B的视图所对应的视图值确定出本轮换应轮到节点B作为共识主节点。
假设节点B的的评分所对应的主节点配置频率指示节点B每周作为主节点的次数不超过3次,若节点B生效成为共识主节点的历史记录指示节点B本周已被选为区块链的共识主节点的次数达到3次,则确定节点B在其对应的视图失效。此时,应该按照视图顺序,选取节点C的视图。
假设节点C的评分所对应的主节点配置频率为每周作为主节点的次数不超过10次,若节点C生效成为共识主节点的历史记录指示节点C本周已被选为区块链的共识主节点的次数未达到10次,则确定节点C在其对应的视图有效。此时,将区块链的当前视图(即节点A的视图)切换至节点C的视图,使节点C成为区块链新的共识主节点。
以上是对本说明书实施例的方法的介绍。这里需要说明的是,区块链一般被划分为三种类型:公有链(Public Blockchain),私有链(Private Blockchain)和联盟链(Consortium Blockchain)。此外,还有多种类型的结合,比如私有链+联盟链、联盟链+公有链等不同组合形式。本说明书实施例所提供的技术方案均可适用于上述不同类型的区块链。
以上是对本说明书实施例的方法的介绍。应理解,在不脱离本文上述原理基础之上,还可以进行适当的变化,这些变化也应视为本说明书实施例的保护范围。
与上述方法相对应地,如图3所示,本说明书实施例还提供一种区块链提供300,包括:多个共识节点310;其中,
所述共识节点310在进行切换到第一视图的视图切换时,获取第一视图对应的共识主节点的共识提议能力的评分和所述共识节点生效的历史记录;
所述共识节点310基于所述共识主节点的评分对应的共识主节点配置频率和所述共识主节点生效的历史记录,确定所述共识主节点在所述第一视图是否生效;
若不是,则所述共识节点310触发切换到第二视图的视图切换,其中,所述第二视图为所述第一视图顺序加1。
基于图3所示的区块链系统可以知道:本说明书实施例的方案针对区块链中的各个共识节点,配置符合其自身共识提议能力的共识主节点配置频率,从而在视图切换时,限制共识提议能力较低的共识节点或者作恶的共识节点频繁被选为区块链的共识主节点,进而在一定程度上,遏制了共识主节点对非法交易发起的共识提议,不仅能够降低非法交易上链的概率,还能够减少区块链执行共识所产生的开销,因此具有很高的实用价值。
可选地,所述共识主节点的共识提议能力的评分是基于所述共识主节点发起的共识提议达成共识的比例所确定得到的。
作为示例性介绍:
所述共识主节点的共识提议能力的评分与指定时间段内所述共识主节点发起的共识提议达成共识的比例呈正相关;或者
所述共识主节点的共识提议能力的评分与指定共识轮次内所述共识主节点发起的共识提议达成共识的比例呈正相关。
或者,所述共识主节点的共识提议能力的评分是基于所述区块链的共识节点中的共识备份节点针对所述共识主节点发起共识提议的交易的业务校验结果所确定得到的。
作为示例性介绍:
所述共识主节点的共识提议能力的评分与其在指定时间段内发起的共识提议的交易通过共识备份节点业务校验的比例呈正相关;
所述共识主节点的共识提议能力的评分与其在指定共识轮次内发起的共识提议的交易通过共识备份节点业务校验的比例呈正相关。
可选地,所述区块链中至少有两个共识节点对应不同的业务校验逻辑。
可选地,所述区块链的共识节点采用拜占庭容错算法执行共识。
其中,共识备份节点在拜占庭容错算法的预准备阶段,基于各自对应的业务校验逻辑对共识主节点所发起共识的交易执行业务校验。或者,共识备份节点在拜占庭容错算法的准备阶段,基于各自对应的业务校验逻辑对共识主节点所发起共识的交易执行业务校验。
若共识备份节点在拜占庭容错算法的的准备阶段对共识主节点所发起共识的交易执行业务校验,则共识备份节点在所述共识提议的交易通过自身业务校验后,再执行准备阶段需要对预准备消息进行签名校验的流程。其中,所述预准备消息是区块链的共识主节点基于所述拜占庭容错算法,需要在预准备阶段向区块链的共识备份节点发送的消息。
可选地,所述区块链预先部署有指定智能合约,所述指定智能合约具有根据目标共识主节点的评分对应的共识主节点配置频率和所述目标共识主节点生效的历史记录,确定所述目标共识主节点在自身对应的目标视图是否生效的处理逻辑。
显然,本说明书实施例的区块链系统可以作为上述图1所示的视图切换方法的执行主体,因此能够视图切换方法在图1所实现的功能。由于原理相同,本文不再赘述。
本领域技术人员应明白,本说明书的实施例可提供为方法、系统或计算机程序产品。因此,本说明书可采用完全硬件实施例、完全软件实施例或结合软件和硬件方面的实施例的形式。而且,本说明书可采用在一个或多个其中包含有计算机可用程序代码的计算机可用存储介质(包括但不限于磁盘存储器、CD-ROM、光学存储器等)上实施的计算机程序产品的形式。
上述对本说明书特定实施例进行了描述。其它实施例在所附权利要求书的范围内。在一些情况下,在权利要求书中记载的动作或步骤可以按照不同于实施例中的顺序来执行并且仍然可以实现期望的结果。另外,在附图中描绘的过程不一定要求示出的特定顺序或者连续顺序才能实现期望的结果。在某些实施方式中,多任务处理和并行处理也是可以的或者可能是有利的。
以上仅为本说明书的实施例而已,并不用于限制本说明书。对于本领域技术人员来说,本说明书可以有各种更改和变化。凡在本说明书的精神和原理之内所作的任何修改、等同替换、改进等,均应属于本文件的保护范围之内。
Claims (10)
1.一种区块链共识的视图切换方法,包括:
共识节点在进行切换到第一视图的视图切换时,获取第一视图对应的共识主节点的共识提议能力的评分和所述共识节点生效的历史记录;
所述共识节点基于所述共识主节点的评分对应的共识主节点配置频率和所述共识主节点生效的历史记录,确定所述共识主节点在所述第一视图是否生效;
若不是,则所述共识节点触发切换到第二视图的视图切换,其中,所述第二视图为所述第一视图顺序加1。
2.根据权利要求1所述的方法,
所述共识主节点的共识提议能力的评分是基于所述共识主节点发起的共识提议达成共识的比例所确定得到的。
3.根据权利要求2所述的方法,
所述共识主节点的共识提议能力的评分与所述共识主节点在指定时间段内发起的共识提议达成共识的比例呈正相关;或者
所述共识主节点的共识提议能力的评分与所述共识主节点在指定共识轮次内发起的共识提议达成共识的比例呈正相关。
4.根据权利要求1所述的方法,
所述共识主节点的共识提议能力的评分是基于所述区块链的共识节点中的共识备份节点针对所述共识主节点发起共识提议的交易的业务校验结果所确定得到的。
5.根据权利要求4所述的方法,
所述共识主节点的共识提议能力的评分与所述共识主节点在指定时间段内发起的共识提议的交易通过共识备份节点业务校验的比例呈正相关;
所述共识主节点的共识提议能力的评分与所述共识主节点在指定共识轮次内发起的共识提议的交易通过共识备份节点业务校验的比例呈正相关。
6.如权利要求5所述的方法,
所述区块链中至少有两个共识节点对应不同的业务校验逻辑。
7.根据权利要求6所述的方法,
所述区块链的共识节点采用拜占庭容错算法执行共识,其中,共识备份节点在拜占庭容错算法的预准备阶段,基于各自对应的业务校验逻辑对共识主节点所发起共识的交易执行业务校验。
8.根据权利要求6所述的方法,
所述区块链的共识节点采用拜占庭容错算法执行共识,其中,共识备份节点在拜占庭容错算法的准备阶段,基于各自对应的业务校验逻辑对共识主节点所发起共识的交易执行业务校验。
9.根据权利要求1-7中任一项所述的方法,
所述区块链预先部署有指定智能合约,所述指定智能合约具有根据目标共识主节点的评分对应的共识主节点配置频率和所述目标共识主节点生效的历史记录,确定所述目标共识主节点在自身对应的目标视图是否生效的处理逻辑。
10.一种区块链系统,包括:多个共识节点;其中,
所述共识节点在进行切换到第一视图的视图切换时,获取第一视图对应的共识主节点的共识提议能力的评分和所述共识节点生效的历史记录;
所述共识节点基于所述共识主节点的评分对应的共识主节点配置频率和所述共识主节点生效的历史记录,确定所述共识主节点在所述第一视图是否生效;
若不是,则所述共识节点触发切换到第二视图的视图切换,其中,所述第二视图为所述第一视图顺序加1。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201910905076.1A CN110673914B (zh) | 2019-09-24 | 2019-09-24 | 一种区块链共识的视图切换方法及区块链系统 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201910905076.1A CN110673914B (zh) | 2019-09-24 | 2019-09-24 | 一种区块链共识的视图切换方法及区块链系统 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN110673914A CN110673914A (zh) | 2020-01-10 |
CN110673914B true CN110673914B (zh) | 2021-06-29 |
Family
ID=69077480
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201910905076.1A Active CN110673914B (zh) | 2019-09-24 | 2019-09-24 | 一种区块链共识的视图切换方法及区块链系统 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN110673914B (zh) |
Families Citing this family (7)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN111369244A (zh) * | 2020-01-14 | 2020-07-03 | 许昌北邮万联网络技术有限公司 | 一种实用拜占庭容错共识方法及装置 |
CN111414420B (zh) * | 2020-03-17 | 2023-05-26 | 重庆邮电大学 | 一种改进的pbft区块链共识方法 |
CN113568688B (zh) * | 2020-04-29 | 2023-06-06 | RealMe重庆移动通信有限公司 | 一种视图切换方法、装置、电子设备和存储介质 |
CN111698315B (zh) * | 2020-06-09 | 2021-10-15 | 腾讯科技(深圳)有限公司 | 针对区块的数据处理方法、数据处理装置及计算机设备 |
CN111522696B (zh) * | 2020-07-03 | 2020-12-29 | 支付宝(杭州)信息技术有限公司 | 区块链共识节点的宕机处理方法、数据持久化方法及硬件 |
CN112671761B (zh) * | 2020-12-22 | 2022-08-05 | 网易(杭州)网络有限公司 | 区块链的节点处理方法、装置、节点设备及存储介质 |
CN112783983A (zh) * | 2021-02-07 | 2021-05-11 | 中国人民解放军国防科技大学 | 基于主副区块图链结构区块链账本设计的自适应共识方法 |
Family Cites Families (8)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US10586210B2 (en) * | 2016-11-30 | 2020-03-10 | International Business Machines Corporation | Blockchain checkpoints and certified checkpoints |
CN106650494B (zh) * | 2016-12-16 | 2019-07-16 | 杭州嘉楠耘智信息科技有限公司 | 一种数据处理方法及装置 |
CN107391320B (zh) * | 2017-03-10 | 2020-07-10 | 创新先进技术有限公司 | 一种共识方法及装置 |
CN108492103B (zh) * | 2018-02-07 | 2021-04-27 | 北京大学深圳研究生院 | 一种联盟区块链共识方法 |
US11271717B2 (en) * | 2018-02-21 | 2022-03-08 | Thunder Token Inc. | Blockchain consensus methods and systems |
CN108881387A (zh) * | 2018-05-16 | 2018-11-23 | 横琴密达科技有限责任公司 | 一种区块链共识系统 |
CN109684798A (zh) * | 2019-01-04 | 2019-04-26 | 深圳银链科技有限公司 | 一种基于公有区块链的共识算法、设备及存储介质 |
CN109819022A (zh) * | 2019-01-11 | 2019-05-28 | 华侨大学 | 一种基于信用评价的区块链共识方法 |
-
2019
- 2019-09-24 CN CN201910905076.1A patent/CN110673914B/zh active Active
Also Published As
Publication number | Publication date |
---|---|
CN110673914A (zh) | 2020-01-10 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN110673914B (zh) | 一种区块链共识的视图切换方法及区块链系统 | |
US11095750B2 (en) | Method, apparatus, and electronic device for processing consensus requests in a blockchain consensus network | |
CN110691077B (zh) | 一种联盟链的业务校验方法及联盟链系统 | |
CN108492103B (zh) | 一种联盟区块链共识方法 | |
CN107566124B (zh) | 基于哈希运算的共识建立方法、区块链系统及存储介质 | |
JP7138726B2 (ja) | ブロックチェーンコンセンサス方法、アカウンティングノードおよびノード | |
US11301233B2 (en) | Permission-controlled smart contract upgrade method based on smart contract | |
EP3934162B1 (en) | Blockchain consensus method and device and electronic equipment | |
CN111106942A (zh) | 一种基于ap-pbft算法的区块链信用机制 | |
CN113568981B (zh) | 一种交易数据处理方法、装置、设备以及介质 | |
CN112422341B (zh) | 区块链网络的故障检测方法及相关设备 | |
CN110784331B (zh) | 一种共识流程恢复方法及相关节点 | |
CN114390068A (zh) | 区块链共识方法及计算机可读存储介质 | |
CN110162274B (zh) | 一种基于区块链的数据处理方法、装置及设备 | |
CN112037062A (zh) | 交易共识方法、装置、电子设备及可读存储介质 | |
CN113254526A (zh) | 区块链共识方法、装置及系统 | |
CN114119242B (zh) | 基于自适应窗口分片的联盟链性能优化方法及装置 | |
Azaiez et al. | A multi-agent system architecture for self-healing cloud infrastructure | |
CN114866562A (zh) | 面向电力能源系统的区块链共识方法及系统 | |
CN114301598A (zh) | 基于分层权威的区块链共识算法、系统及存储介质 | |
Xu et al. | Poster: Unanimous-Majority-Pushing Blockchain Sharding Throughput to its Limit | |
CN111784359B (zh) | 多模式风控分级容灾方法及装置 | |
CN111046055A (zh) | 一种区块链全局配置的变更方法、设备和存储介质 | |
CN115174565B (zh) | 一种基于区块链分片技术的共识方法及装置 | |
CN117294720B (zh) | 区块链的共识方法、装置、存储介质及设备 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PB01 | Publication | ||
PB01 | Publication | ||
SE01 | Entry into force of request for substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
REG | Reference to a national code |
Ref country code: HK Ref legal event code: DE Ref document number: 40020352 Country of ref document: HK |
|
GR01 | Patent grant | ||
GR01 | Patent grant |