数据处理方法、系统、装置、计算机设备以及存储介质制造方法及图纸

技术编号:36700819 阅读:23 留言:0更新日期:2023-03-01 09:17
本申请公开了一种数据处理方法、系统、装置、计算机设备以及存储介质,属于区块链技术领域。本方法通过区块链系统中节点设备的TEE生成日志,节点设备的REE向区块链系统中的其他节点设备发送该TEE所生成的日志,以便其他节点设备对该日志进行共识。由于TEE受硬件的保护,不会作恶,因此,能够实现使用TEE保护共识流程目的,能够防止区块链系统中出现拜占庭错误。错误。错误。

【技术实现步骤摘要】
数据处理方法、系统、装置、计算机设备以及存储介质


[0001]本申请涉及区块链
,特别涉及一种数据处理方法、系统、装置、计算机设备以及存储介质。

技术介绍

[0002]区块链是分布式数据存储、点对点传输、共识机制、加密算法等计算机技术的新型应用模式,区块链凭借去中心化、去信任、集体维护、可靠数据库等特性被广泛应用在对数据安全存储有较高要求的领域。
[0003]区块链系统中的共识节点可以通过共识协议对区块进行共识,并将共识通过的区块存储在区块链上。目前的共识协议包括崩溃容错协议(crash fault tolerant,CFT)类共识协议,例如Paxos共识算法和Raft共识算法。CFT类共识协议能够解决由网络故障或节点崩溃所导致的节点消息延时、丢失、重复等问题,因此,在采用CFT类共识协议的区块链系统中,即使部分节点出现网络故障或者节点崩溃,依然能够保证区块链系统的正常运行。
[0004]但是,CFT类共识协议无法解决拜占庭错误(Byzantine fault),例如伪造节点消息、篡改节点消息或恶意响应等错误行为。而拜占庭错误可能会引发区块链系统出现共识错误,区块链系统无法正常工作等情况,因此,亟需一种能够减少区块链系统出现拜占庭错误的数据处理方法。

技术实现思路

[0005]本申请实施例提供了一种数据处理方法、系统、装置、计算机设备以及存储介质,能够减少了区块链系统中出现的拜占庭错误。该技术方案如下:
[0006]第一方面,提供了一种数据处理方法,所述方法由区块链系统中的第一节点设备执行,所述第一节点设备包括可信执行环境TEE和富执行环境REE;所述方法包括:
[0007]所述TEE基于所述REE中的区块,生成所述区块的日志,向所述REE发送所述日志,所述日志中以所述区块的标识指代所述区块;
[0008]所述REE接收所述日志,向所述区块链系统中的第二节点设备发送第一请求,所述第一请求携带所述日志,所述第一请求指示所述第二节点设备处理所述日志。
[0009]其中,所述日志包括所述区块的标识,但不包括所述区块,并以所述区块的标识指代所述区块,例如,所述区块的标识包括所述区块的哈希值和所述区块的区块号中的至少一个,当然,该日志的标识也可以是除区块的哈希值或者区块号以外的其他表示方式,在此本申请对该日志的标识不做限定。
[0010]由于本申请中的日志以区块的标识指代该区块,因此,本申请中的日志不包括该区块。而相关技术中的日志没有采用区块的标识来指代日志,而是直接将区块添加在日志中,也即是相关技术中的日志包括区块。或者也可以理解为,本申请将相关技术中日志内的区块用成区块的标识来替代。而区块的标识相对于整个区块来而言数据量会更小,因此,与相关技术中的日志相比,本申请中的日志的数据量更小。
[0011]本方法通过区块链系统中节点设备的TEE生成日志,该节点设备的REE向区块链系统中的其他节点设备发送该TEE所生成的日志,以便其他节点设备对该日志进行共识。由于TEE受硬件的保护,不会作恶,因此,能够实现使用TEE保护共识流程目的,能够防止区块链系统中出现拜占庭错误。并且,日志中以区块的标识来指代区块,日志无须携带区块,从而降低了日志的数据量。
[0012]在一种可能的实现方式中,所述第一请求还携带所述区块,所述第一请求指示所述第二节点设备处理所述日志以及所述区块;所述向所述区块链系统中的第二节点设备发送第一请求之后,所述方法还包括:
[0013]所述TEE通过所述REE接收多个第一响应,每个第一响应指示一个第二节点设备是否已经同意接收所述日志;
[0014]在所述区块链系统中半数或多数第二节点设备的第一响应通过了所述TEE的验证,且通过验证的每个所述第一响应指示一个第二节点设备已经同意接收所述日志的情况下,所述TEE基于所述日志中所述区块的标识,通知所述REE将所述区块提交至本地的所述区块链系统的区块链账本。
[0015]在一种可能的实现方式中,所述TEE基于所述REE中的区块,生成日志之前,所述方法还包括:
[0016]所述TEE通过所述REE向所述区块链系统中的第二节点设备发送第二请求,所述第二请求指示对所述第一节点设备成为所述区块链系统中的领导节点进行投票;
[0017]所述TEE通过所述REE接收多个第二响应,每个第二响应指示一个第二节点设备是否赞同所述第一节点设备成为所述区块链系统中的领导节点;
[0018]在所述区块链系统中半数或多数第二节点设备的第二响应通过了所述TEE的验证,且通过验证的每个所述第二响应指示一个第二节点设备赞同所述第一节点设备成为所述区块链系统中的领导节点的情况下,所述TEE将所述第一节点设备的节点状态切换为领导状态。
[0019]在一种可能的实现方式中,所述TEE将所述第一节点设备的节点状态切换为领导状态之后,所述方法还包括:
[0020]所述TEE生成通知消息,所述通知消息指示所述第一节点设备为所述区块链系统中的领导节点;
[0021]所述TEE通过所述REE向所述区块链系统中的第二节点设备发送所述通知消息。
[0022]在一种可能的实现方式中,所述通知消息可以是心跳消息或者其他类型的消息。
[0023]在一种可能的实现方式中,所述方法还包括:
[0024]在所述区块链系统中半数或多数第二节点设备的第一响应通过了所述TEE的验证,且通过验证的每个所述第一响应指示一个第二节点设备已经同意接收所述日志的情况下,所述TEE通过所述REE向所述区块链系统中的第二节点设备发送第三请求,所述第三请求指示所述第二节点设备将所述区块提交至本地的所述区块链系统的区块链账本。
[0025]在一种可能的实现方式中,所述第三请求可以是心跳消息或者其他类型的消息。
[0026]在一种可能的实现方式中,所述方法还包括:
[0027]所述TEE对日志序列中已提交的多个日志进行截断,得到所述日志序列的快照,所述快照包括第一标识以及第二标识,其中,所述第一标识为所述多个日志中起始日志所对
应的区块的标识,所述第二标识为所述多个日志中终止日志所对应的区块的标识;
[0028]所述TEE向所述REE发送所述快照;
[0029]所述REE接收所述快照,基于所述快照中的所述第一标识和所述第二标识,从本地的所述区块链系统的区块链账本中获取所述多个日志所对应的多个区块,向所述区块链系统中的第二节点设备发送第四请求,所述第四请求携带所述快照以及所述多个区块,所述第四请求指示所述第二节点设备基于所述快照将所述多个区块提交至本地的所述区块链账本。
[0030]其中,所述日志序列中的每个日志包括一个区块的标识以及一个日志的索引,该日志序列中的各个日志按照索引从小到大的顺序依次排列。可选地,每个日志还包括区块链系统中领导节点的任期。
[0031]在一种可能的实现方式中,所述第四请求可以是心跳消息或者其他类型的消息。
[00本文档来自技高网
...

【技术保护点】

【技术特征摘要】
1.一种数据处理方法,其特征在于,所述方法由区块链系统中的第一节点设备执行,所述第一节点设备包括可信执行环境TEE和富执行环境REE;所述方法包括:所述TEE基于所述REE中的区块,生成所述区块的日志,所述日志中以所述区块的标识指代所述区块;所述TEE向所述REE发送所述日志;所述REE接收所述日志,向所述区块链系统中的第二节点设备发送第一请求,所述第一请求携带所述日志,所述第一请求指示所述第二节点设备处理所述日志。2.根据权利要求1所述的方法,其特征在于,所述第一请求还携带所述区块,所述第一请求指示所述第二节点设备处理所述日志以及所述区块;所述向所述区块链系统中的第二节点设备发送第一请求之后,所述方法还包括:所述TEE通过所述REE接收多个第一响应,每个第一响应指示一个第二节点设备是否已经同意接收所述日志;在所述区块链系统中半数或多数第二节点设备的第一响应通过了所述TEE的验证,且通过验证的每个所述第一响应指示一个第二节点设备已经同意接收所述日志的情况下,所述TEE基于所述日志中所述区块的标识,通知所述REE将所述区块提交至本地的所述区块链系统的区块链账本。3.根据权利要求1或2所述的方法,其特征在于,所述TEE基于所述REE中的区块,生成日志之前,所述方法还包括:所述TEE通过所述REE向所述区块链系统中的第二节点设备发送第二请求,所述第二请求指示对所述第一节点设备成为所述区块链系统中的领导节点进行投票;所述TEE通过所述REE接收多个第二响应,每个第二响应指示一个第二节点设备是否赞同所述第一节点设备成为所述区块链系统中的领导节点;在所述区块链系统中半数或多数第二节点设备的第二响应通过了所述TEE的验证,且通过验证的每个所述第二响应指示一个第二节点设备赞同所述第一节点设备成为所述区块链系统中的领导节点的情况下,所述TEE将所述第一节点设备的节点状态切换为领导状态。4.根据权利要求3所述的方法,其特征在于,所述TEE将所述第一节点设备的节点状态切换为领导状态之后,所述方法还包括:所述TEE生成通知消息,所述通知消息指示所述第一节点设备为所述区块链系统中的领导节点;所述TEE通过所述REE向所述区块链系统中的第二节点设备发送所述通知消息。5.根据权利要求2所述的方法,其特征在于,所述方法还包括:在所述区块链系统中半数或多数第二节点设备的第一响应通过了所述TEE的验证,且通过验证的每个所述第一响应指示一个第二节点设备已经同意接收所述日志的情况下,所述TEE通过所述REE向所述区块链系统中的第二节点设备发送第三请求,所述第三请求指示所述第二节点设备将所述区块提交至本地的所述区块链系统的区块链账本。6.根据权利要求1

5任一项所述的方法,其特征在于,所述方法还包括:所述TEE对日志序列中已提交的多个日志进行截断,得到所述日志序列的快照,所述快照包括第一标识以及第二标识,其中,所述第一标识为所述多个日志中起始日志所对应的
区块的标识,所述第二标识为所述多个日志中终止日志所对应的区块的标识;所述TEE向所述REE发送所述快照;所述REE接收所述快照,基于所述快照中的所述第一标识和所述第二标识,从本地的所述区块链系统的区块链账本中获取所述多个日志所对应的多个区块,向所述区块链系统中的第二节点设备发送第四请求,所述第四请求携带所述快照以及所述多个区块,所述第四请求指示所述第二节点设备基于所述快照将所述多个区块提交至本地的所述区块链账本。7.一种数据处理方法,其特征在于,所述方法由区块链系统中的第二节点设备执行,所述第二节点设备包括可信执行环境TEE和富执行环境REE;所述方法包括:所述REE接收来自所述区块链系统中第一节点设备的第一请求,所述第一请求携带区块的日志,所述日志中以所述区块的标识指代所述区块,所述第一请求指示所述第二节点设备处理所述日志;所述REE向所述TEE发送所述日志;在所述日志通过了所述TEE的验证的情况下,所述TEE存储所述日志,通过所述REE向所述第一节点设备发送第一响应,所述第一响应指示所述第二节点设备已经同意接收所述日志。8.根据权利要求7所述的方法,其特征在于,所述第一请求还携带所述区块,所述REE接收来自所述区块链系统中第一节点设备的第一请求之后,所述方法还包括:所述REE缓存所述区块;所述通过所述REE向所述第一节点设备发送第一响应之后,所述方法还包括:所述TEE通过所述REE接收来自所述第一节点设备的第三请求,所述第三请求指示所述第二节点设备将所述区块提交至本地的所述区块链系统的区块链账本;在所述第三请求通过了所述TEE的验证的情况下,所述TEE基于所述日志中所述区块的标识,通知所述REE将所述区块提交至本地的所述区块链系统的区块链账本上。9.根据权利要求7或8所述的方法,其特征在于,所述REE接收来自所述区块链系统中第一节点设备的第一请求之前,所述方法还包括:所述TEE通过所述REE接收来自所述第一节点设备的第二请求,所述第二请求指示对所述第一节点设备成为所述区块链系统中的领导节点进行投票;在所述第二请求通过了所述TEE的验证的情况下,所述TEE通过所述REE向所述第一节点设备发送第二响应,所述第二响应指示所述第二节点设备是否赞同所述第一节点设备成为所述区块链系统中的领导节点。10.根据权利要求9所述的方法,其特征在于,所述TEE通过所述REE向所述第一节点设备发送第二响应之后,所述方法还包括:所述TEE通过所述REE接收来自所述第一节点设备的通知消息,所述通知消息指示所述第一节点设备成为所述区块链系统中的领导节点;在所述通知消息通过了所述TEE的验证的情况下,所述TEE将存储的所述第一节点设备的节点状态修改为领导状态。11.根据权利要求7

10中任一项所述的方法,其特征在于,所述方法还包括:所述REE接收来自所述第一节点设备的第四请求,所述第四请求携带所述第一节点设备中日志序列的快照以及多个区块,所述快照包括第一标识以及第二标识,其中,所述第一
标识为所述日志序列中已提交的多个日志中起始日志所对应的区块的标识,所述第二标识为所述多个日志中终止日志所对应的区块的标识,所述多个日志与所述多个区块对应;所述REE缓存所述多个区块,向所述TEE发送所述快照;所述TEE接收所述快照,在所述快照通过了所述TEE的验证的情况下,通知所述REE将所述多个区块提交至本地的所述区块链系统的区块链账本。12.一种用于数据处理的区块链系统,其特征在于,所述区块链系统包括第一节点设备以及至少一个第二节点设备;所述第一节点设备,用于向所述区块链系统中的第二节点设备发送第一请求,所述第一请求携带区块的日志,所述日志中以所述区块的标识指代所述区块,所述第一请求指示所述第二节点设备处理所述日志;每个第二节点设备,用于接收所述第一请求,若所述日志通过了所述第二节点设备验证的情况下,存储所述日志。13.根据权利要求12所述的系统,其特征在于,所述第一节点设备包括可信执行环境TEE和富执行环境REE;所述TEE,用于基于所述REE中的所述区块,生成所述日志,向所述REE发送所述日志;所述REE,用于接收所述日志,向所述区块链系统中的第二节点设备发送所述第一请求。14.根据权利要求12或13所述的系统,其特征在于,每个第二节点设备包括TEE和REE;每个第二节点设备的REE,用于接收来所述第一请求,向所属第二节点设备的TEE发送所述第一请求携带的所述日志;每个第二节点设备的TEE,用于接收所述第一请求,在所述日志通过了所述TEE的验证的情况下,存储所述日志,通过所属第二节点设备的REE向所述第一节点设备发送第一响应,所述第一响应指示一个第二节点设备是否已经同意接收所述日志。15.根据权利要求14所述的系统,其特征在于,所述第一节点设备包括TEE和REE;所述第一节点设备的TEE,用于通过所述第一节点设备的REE接收所述区块链系统中第二节点设备的所述第一响应,在所述区块链系统中半数或多数第二节点设备的第一响应通过了所述TEE的验证,且通过验证的每个所述第一响应指示一个第二节点设备已经存储所述日志的情况下,基于所述日志中所述区块的标识,通知所述第一节点设备的REE将所述区块提交至本地的所述区块链系统的区块链账本。16.根据权利要求15所述的系统,其特征在于,所述第一请求还携带所述区块;所述第一节点设备的TEE,还用于通过所属节点设备的REE向所述区块链系统中的第二节点设备发送第三请求,所述第三请求指示所述第二节点设备将所述区块提交至本地的所述区块链系统的区块链账本;每个第二节点设备的REE,还用于缓存所述第一请求携带的所述区块,接收所述第三请求,向所属第二节点设备的TEE发送所述第三请求;每个第二节点设备的TEE,还用于接收所述第三请求,在所述第三请求通过了所述TEE的验证的情况下,基于所述日志中所述区块的标识,通知所属第二节点设备的REE将所述区块提交至本地的所述区块链系统的区块链账本上。17.根据权利要求12

16中任一项所述的系统,其特征在于,所述第一节点设备以及所
述至少一个第二节点设备中的每个节点设备包括TEE以及REE;所述第一节点设备的TEE,用于所属节点设备的TEE向所述区块链系统中的第二节点设备发送第二请求,所述第二请求指示对所述第一节点设...

【专利技术属性】
技术研发人员:张明阳程烁刘勋
申请(专利权)人:华为技术有限公司
类型:发明
国别省市:

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

1