一种共识节点类型的转换方法和共识节点技术

技术编号:36529349 阅读:11 留言:0更新日期:2023-02-01 16:10
一种共识节点类型的转换方法和共识节点,共识节点的类型包括第一类型和第二类型,第二类型的共识节点包含状态数据,状态数据包括多个状态,第一类型的共识节点包含验证数据,验证数据用于对多个状态进行验证,区块链系统中存储有节点类型信息,节点类型信息用于指示目标共识节点从当前的第一类型向第二类型转换,该方法的一具体实施方式包括:从第二类型的共识节点接收待执行的多个第一交易的第一读集,第一读集包括根据多个第一交易从状态数据读取的第一状态;基于验证数据对第一读集进行验证,在验证通过之后,基于第一读集执行多个第一交易,得到第一写集,第一写集包括用于更新状态数据的第二状态;存储第二状态;根据第二状态更新验证数据。状态更新验证数据。状态更新验证数据。

【技术实现步骤摘要】
一种共识节点类型的转换方法和共识节点


[0001]本说明书实施例属于区块链
,尤其涉及一种共识节点类型的转换方法和共识节点。

技术介绍

[0002]区块链(Blockchain)是分布式数据存储、点对点传输、共识机制、加密算法等计算机技术的新型应用模式。区块链系统中按照时间顺序将数据区块以顺序相连的方式组合成链式数据结构,并以密码学方式保证的不可篡改和不可伪造的分布式账本。由于区块链具有去中心化、信息不可篡改、自治性等特性,区块链也受到人们越来越多的重视和应用。在区块链系统中,一般通过全节点作为参与共识的最小设施,全节点需要包括全量数据,以支持共识功能。

技术实现思路

[0003]本专利技术的目的在于提供一种共识节点类型的转换方法,本专利技术所涉及的区块链系统包括第一类型的共识节点和第二类型的共识节点,其中,第二类型的共识节点包括状态数据,状态数据包括多个状态,第一类型的共识节点包括验证数据,验证数据包括多个状态各自的哈希值,本专利技术可以实现第一类型的共识节点向第二类型的共识节点转换。
[0004]本说明书第一方面提供一种共识节点类型的转换方法,应用于区块链系统中的目标共识节点,其中,所述区块链系统中的共识节点的类型包括第一类型和第二类型,所述第二类型的共识节点包含状态数据,所述状态数据包括多个状态,所述第一类型的共识节点包含验证数据,所述验证数据与所述多个状态对应,所述区块链系统中存储有节点类型信息,所述节点类型信息用于指示所述目标共识节点从当前的第一类型向所述第二类型转换,所述方法包括:从所述第二类型的共识节点接收待执行的多个第一交易的第一读集,所述第一读集包括根据所述多个第一交易读取的第一状态;基于所述验证数据对所述第一读集进行验证,在验证通过之后,基于所述第一读集执行所述多个第一交易,得到第一写集,所述第一写集包括用于更新所述状态数据的第二状态;存储所述第二状态;根据所述第二状态更新所述验证数据。
[0005]本说明书第二方面提供一种共识节点,区块链系统中的共识节点的类型包括第一类型和第二类型,所述第二类型的共识节点包含状态数据,所述状态数据包括多个状态,所述第一类型的共识节点包含验证数据,所述验证数据与所述多个状态对应,所述区块链系统中存储有节点类型信息,所述节点类型信息用于指示目标共识节点从当前的第一类型向所述第二类型转换,所述目标共识节点包括:接收单元,配置为从所述第二类型的共识节点接收待执行的多个第一交易的第一读集,所述第一读集包括根据所述多个第一交易读取的第一状态;验证单元,配置为基于所述验证数据对所述第一读集进行验证,在验证通过之后,基于所述第一读集执行所述多个第一交易,得到第一写集,所述第一写集包括用于更新所述状态数据的第二状态;存储单元,配置为存储所述第二状态;更新单元,配置为根据所
述第二状态更新所述验证数据。
[0006]本说明书第三方面提供一种计算机可读存储介质,其上存储有计算机程序,当所述计算机程序在计算机中执行时,令计算机执行所述第一方面所描述的方法。
[0007]本说明书第四方面提供一种计算设备,包括存储器和处理器,所述存储器中存储有可执行代码,所述处理器执行所述可执行代码时,实现所述的方法。
[0008]在本说明书实施例的方案中,当被指示从第一类型向第二类型转换时,目标共识节点对接收的共识提议中的多个第一交易的第一读集验证通过后,基于第一读集执行多个第一交易,得到包括第二状态的第一写集,并存储第二状态,由此,目标共识节点中也可以包含状态,实现了从第一类型向第二类型的转换,增加了节点的数据存储量,提高了网络的灵活性。
附图说明
[0009]为了更清楚地说明本说明书实施例的技术方案,下面将对实施例描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本说明书中记载的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动性的前提下,还可以根据这些附图获得其他的附图。
[0010]图1示出了一实施例中的区块链架构图;
[0011]图2为PBFT共识算法中的共识过程示意图;
[0012]图3是相关技术中的共识节点的区块链数据存储的结构示意图;
[0013]图4为MPT树的结构示意图;
[0014]图5为本说明书实施例中的LVP中的状态哈希值树和存储哈希值树的示意图;
[0015]图6是本说明书实施例中的状态哈希值树的示意图;
[0016]图7为基于FVP和LVP的区块链系统中的共识方法的流程图;
[0017]图8为本说明书实施例中一种共识节点类型的转换方法的流程图;
[0018]图9为本说明书实施例中的一种共识节点的结构图。
具体实施方式
[0019]为了使本
的人员更好地理解本说明书中的技术方案,下面将结合本说明书实施例中的附图,对本说明书实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本说明书一部分实施例,而不是全部的实施例。基于本说明书中的实施例,本领域普通技术人员在没有作出创造性劳动前提下所获得的所有其他实施例,都应当属于本说明书保护的范围。
[0020]图1示出了一实施例中的区块链架构图。在图1所示的区块链架构图中,区块链100中包括N个节点,图1中示意示出节点1

节点8。节点之间的连线示意性的表示P2P(Peer to Peer,点对点)连接,所述连接例如可以为TCP连接等,用于在节点之间传输数据。
[0021]区块链领域中的交易可以指在区块链中执行并记录在区块链中的任务单元。交易中通常包括发送字段(From)、接收字段(To)和数据字段(Data)。其中,在交易为转账交易的情况中,From字段表示发起该交易(即发起对另一个账户的转账任务)的账户地址,To字段表示接收该交易(即接收转账)的账户地址,Data字段中包括转账金额。
[0022]区块链中可提供智能合约的功能。区块链上的智能合约是在区块链系统上可以被交易触发执行的合约。智能合约可以通过代码的形式定义。在区块链中调用智能合约,是发起一笔指向智能合约地址的交易,使得区块链中每个节点分布式地运行智能合约代码。
[0023]在部署合约的场景中,例如,Bob将一个包含创建智能合约信息(即部署合约)的交易发送到如图1所示的区块链中,该交易的data字段包括待创建的合约的代码(如字节码或者机器码),交易的to字段为空,以表示该交易用于部署合约。节点间通过共识机制达成一致后,确定合约的合约地址“0x6f8ae93
…”
,各个节点在状态数据库中添加与该智能合约的合约地址对应的合约账户,分配与该合约账户对应的状态存储,并存储合约代码,将合约代码的哈希值保存在该合约的状态存储中,从而合约创建成功。
[0024]在调用合约的场景中,例如,Bob将一个用于调用智能合约的交易发送到如图1所示的区块链中,该交易的from字段是交易发起方(即Bob)的账户的地址,to字段为上述“0x6f8ae93...

【技术保护点】

【技术特征摘要】
1.一种共识节点类型的转换方法,应用于区块链系统中的目标共识节点,其中,所述区块链系统中的共识节点的类型包括第一类型和第二类型,所述第二类型的共识节点包含状态数据,所述状态数据包括多个状态,所述第一类型的共识节点包含验证数据,所述验证数据与所述多个状态对应,所述区块链系统中存储有节点类型信息,所述节点类型信息用于指示所述目标共识节点从当前的第一类型向所述第二类型转换,所述方法包括:从所述第二类型的共识节点接收待执行的多个第一交易的第一读集,所述第一读集包括根据所述多个第一交易读取的第一状态;基于所述验证数据对所述第一读集进行验证,在验证通过之后,基于所述第一读集执行所述多个第一交易,得到第一写集,所述第一写集包括用于更新所述状态数据的第二状态;存储所述第二状态;根据所述第二状态更新所述验证数据。2.根据权利要求1所述的方法,其中,所述方法还包括:向所述第二类型的共识节点发送数据同步请求,其中,所述数据同步请求用于请求所述多个状态中的至少部分状态;存储所述第二类型的共识节点针对所述数据同步请求反馈的数据。3.根据权利要求1所述的方法,其中,所述从所述第二类型的共识节点接收待执行的多个第一交易的第一读集包括:从所述第二类型的共识节点接收共识提议,所述共识提议中包括所述第一读集。4.根据权利要求1所述的方法,其中,所述方法还包括:根据所述多个第一交易的执行结果生成与所述多个第一交易对应的区块,存储所述区块。5.根据权利要求2所述的方法,其中,所述方法还包括:响应于满足预设条件,向所述区块链系统发送消息,以用于在所述节点类型信息中将所述目标共识节点的类型修改为所述第二类型。6.根据权利要求5所述的方法,其中,所述区块链系统的合约的合约状态中存储有所述节点类型信息,所述向所述区块链系统发送消息包括:向所述区块链系统发送调用合约的交易,以用于在所述合约状态中将所述目标共识节点的类型修改为所述第二类型。7.根据权利要求5所述的方法,其中,所述区块链系统的配置文件中存储有所述节点类型信息,所述向所述区块链系统发送消息包括:向所述区块链系统发送配置文件更新消息,以用于在所述配置文件中将所述目标共识节点的类型修改为所述第二类型。8.根据权利要求5所述的方法,其中,所述区块链系统的最新区块的区块头中存储有所述节点类型信息,所述向所述区块链系统发送消息包括:向所述区块链系统发送特定类型的交易,以用于在所述特定类型的交易对应的区块头中将所述目标共识节点的类型修改为所述第二类型。9.根据权利要求5

8任一项所述的方法,其中,当所述目标共识节点被选取为主节点时,对于待执行的多个第二交易,确...

【专利技术属性】
技术研发人员:卓海振
申请(专利权)人:蚂蚁区块链科技上海有限公司
类型:发明
国别省市:

网友询问留言 已有0条评论
  • 还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。

1