1.一种分布式系统,其特征在于,包括:
客户端和多个节点;
所述节点,用于在第一共识模式中新的共识周期到达时,通过执行选举操作确定处于主节点的状态或处于从节点的状态;其中,
所述节点,还用于处于主节点的状态时,验证所述客户端发送的消息的数字签名,将所述消息发送到所述从节点;接收到超出预定数量的所述从节点的确认接收通知,验证所述确认接收通知的数字签名后持久化存储所述消息,向所述从节点发送存储消息通知;
所述节点,还用于处于从节点的状态时,接收到所述主节点发送的所述消息时向所述客户端返回结果;验证所接收的消息的数字签名,向所述主节点发送确认接收通知;验证所接收的存储消息通知的数字签名后持久化存储所接收的消息;
所述客户端,用于根据所述从节点接收到所述消息时返回的结果,确定异常节点。
2.如权利要求1所述的分布式系统,其特征在于,
所述客户端,还用于验证所接收结果的数字签名后,将所接收结果包括唯一性字段与所发送消息的唯一性字段比较,确定不一致的唯一性字段对应的从节点为出错节点,以及确定未返回相应结果的从节点为故障节点。
3.如权利要求1所述的分布式系统,其特征在于,
所述客户端,还用于根据所接收结果携带的序列号与所发送消息的序列号比较,当发送不一致序列号的从节点的数量超出不一致数量阈值时,判定所述主节点为恶意节点。
4.如权利要求1所述的分布式系统,其特征在于,
所述客户端,还用于确定所述主节点为恶意节点,或者,确定所述从节点中存在故障节点时,触发所述分布式系统的节点切换到第二共识模式。
5.如权利要求4所述的分布式系统,其特征在于,
所述节点,还用于在切换到所述第二共识模式的准备阶段,将所述节点持久化存储的消息的哈希值与其他节点持久化存储的消息的哈希值比较,确认一致时向所述客户端发送携带相应节点的数字签名的一致性确认;
所述客户端,还用于在预定时间内接收到全部所述节点的一致性确认时,通知全部所述节点返回所述第一共识模式;未在预定时间内接收到全部所述节点的一致性确认时,通知全部所述节点继续切换到所述第二共识模式。
6.如权利要求4所述的分布式系统,其特征在于,
所述节点,还用于在切换到所述第二共识模式的准备阶段,将所述节点持久化存储的消息的哈希值与其他节点持久化存储的消息的哈希值比较,确认一致时向消息的发送节点发送携带相应节点的数字签名的数据确认;
所述客户端,还用于在预定时间内达成共识的节点未接收到未达成共识的节点的数据确认时,或在预定时间内任一节点未接收到其他节点发送的数据确认时,触发所述分布式系统的节点继续切换到所述第二共识模式。
7.如权利要求4所述的分布式系统,其特征在于,
所述节点,还用于处于主节点的状态,并在所述第二共识模式中统计到与所述从节点针对所接收的消息形成共识的次数超过主节点共识次数阈值时,与所述从节点切换到所述第一共识模式。
8.如权利要求7所述的分布式系统,其特征在于,
所述节点,还用于处于主节点的状态时,并在所述第二共识模式中统计到针对所接收的消息形成共识的次数超过所述主节点共识次数阈值时,向所述从节点发送切换到所述第一共识模式的通知,并在接收到全部所述从节点发送的切换确认时,与所述从节点保持节点的状态切换到所述第一共识模式。
9.如权利要求8所述的分布式系统,其特征在于,
所述节点,还用于处于从节点的状态时,接收到切换到所述第一共识模式的通知,统计到针对所接收的消息形成共识的次数超过从节点共识次数阈值时,向所述主节点发送切换确认。
10.如权利要求1所述的分布式系统,其特征在于,
所述节点,还用于未接收到所述主节点的心跳信息时,或者,所述主节点为恶意节点时,通过重新执行选举操作确定处于主节点的状态或处于从节点的状态。
11.如权利要求1所述的分布式系统,其特征在于,
所述节点,还用于在新的共识周期到达、且未接收到其他节点发送的心跳信息时,向所述其他节点发送选举请求,所述选举请求携带所述节点的数字签名,当接收预定数量的其他节点返回的选举确认时,转换为主节点的状态并定期向所述其他节点发送心跳信息;其中,所述选举确认为所述其他节点验证所述选取请求携带的数字签名后发送;
所述节点,还用于在新的共识周期到达、且接收到其他节点发送的心跳信息时转换为从节点的状态。
12.一种消息处理方法,其特征在于,包括:
在第一共识模式中新的共识周期到达时,分布式系统中的节点通过执行选举操作确定处于主节点的状态或处于从节点的状态;其中,
所述节点处于主节点的状态时接收所述客户端的消息,验证所述消息的数字签名,将所述消息发送到所述从节点;
所述节点处于从节点的状态时,接收到所述主节点发送的消息并向所述客户端返回结果,验证所接收的消息的数字签名后向所述主节点发送确认接收通知;
所述节点处于主节点的状态时,接收到超出预定数量的所述从节点的确认接收通知,验证所述确认接收消息的数字签名后持久化存储所述消息,向所述从节点发送存储消息通知;
所述节点处于从节点的状态时,验证所接收的存储消息通知的数字签名后持久化存储所接收的消息;
所述客户端根据所述从节点接收到所述消息时返回的结果,确定异常节点。
13.如权利要求12所述的消息处理方法,其特征在于,所述客户端根据所述从节点接收到所述消息时返回的结果,确定异常节点,包括:
所述从节点向所述客户端返回结果携带所述消息的唯一性字段和所述从节点的数字签名;
所述客户端验证所接收结果的数字签名后,将所接收结果包括唯一性字段与所发送消息的唯一性字段比较,确定不一致的唯一性字段对应的从节点为出错节点,以及确定未返回相应结果的从节点为故障节点。
14.如权利要求12所述的消息处理方法,其特征在于,所述客户端根据所述从节点接收到所述消息时返回的结果,确定异常节点,包括:
所述从节点所返回的结果还携带所述从节点所接收消息的序列号;
所述客户端根据所接收结果携带的序列号与所发送消息的序列号比较,当发送不一致序列号的从节点的数量超出不一致数量阈值时,判定所述主节点为恶意节点。
15.如权利要求12所述的消息处理方法,其特征在于,还包括:
所述客户端确定所述主节点为恶意节点,或者,确定所述从节点中存在故障节点时,触发所述分布式系统的节点切换到第二共识模式。
16.如权利要求15所述的消息处理方法,其特征在于,还包括:
所述节点在切换到所述第二共识模式的准备阶段,将所述节点持久化存储的消息的哈希值与其他节点持久化存储的消息的哈希值比较,确认一致时向所述客户端发送携带相应节点的数字签名的一致性确认;
所述客户端在预定时间内接收到全部所述节点的一致性确认时,通知全部所述节点继续切换到所述第一共识模式;未在预定时间内接收到全部所述节点的一致性确认时,通知全部所述节点继续切换到所述第二共识模式。
17.如权利要求15所述的消息处理方法,其特征在于,还包括:
所述节点在切换到所述第二共识模式的准备阶段,将所述节点持久化存储的消息的哈希值与其他节点持久化存储的消息的哈希值比较,确认一致时向消息的发送节点发送携带相应节点的数字签名的数据确认;
所述客户端在预定时间内达成共识的节点未接收到未达成共识的节点的数据确认时,或在预定时间内任一节点未接收到其他节点发送的数据确认时,触发所述分布式系统的节点继续切换到所述第二共识模式。
18.如权利要求15所述的消息处理方法,其特征在于,还包括:
所述主节点在所述第二共识模式中统计到与所述从节点针对所接收的消息形成共识的次数超过主节点共识次数阈值时,与所述从节点切换到所述第一共识模式。
19.如权利要求18所述的消息处理方法,其特征在于,所述主节点在所述第二共识模式中统计到与所述从节点针对所接收的消息形成共识的次数超过主节点共识次数阈值时,与所述从节点切换到所述第一共识模式,包括:
所述主节点在所述第二共识模式中统计到针对所接收的消息形成共识的次数超过所述主节点共识次数阈值时,向所述从节点发送切换到所述第一共识模式的通知,并在接收到全部所述从节点发送的切换确认时,与所述从节点保持节点的状态切换到所述第一共识模式。
20.如权利要求19所述的消息处理方法,其特征在于,还包括:
所述从节点在接收到切换到所述第一共识模式的通知时,统计到针对所接收的消息形成共识的次数超过从节点共识次数阈值时,向所述主节点发送切换确认。
21.如权利要求12所述的消息处理方法,其特征在于,还包括:
所述从节点未接收到所述主节点的心跳信息时,或者,所述主节点为恶意节点时,通过重新执行选举操作确定处于主节点的状态或处于从节点的状态。
22.如权利要求12所述的消息处理方法,其特征在于,
所述节点在新的共识周期到达、且未接收到其他节点发送的心跳信息时,向所述其他节点发送选举请求,所述选举请求携带所述节点的数字签名,当接收预定数量的其他节点返回的选举确认时,转换为主节点的状态,定期向所述其他节点发送心跳信息;其中,所述选举确认为所述其他节点验证所述选取请求携带的数字签名后发送;
所述节点在新的共识周期到达、且接收到其他节点发送的心跳信息时转换为从节点的状态。
23.一种消息处理方法,其特征在于,包括:
向分布式系统的节点中的主节点发送消息,所述消息携带所述客户端的数字签名;
其中,所述数字签名用于供所述主节点进行验证,并将所接收的消息携带所述主节点的数字签名,发送给所述分布式系统中的从节点;
接收所述从节点在接收到所述消息时返回的结果;
根据所述从节点接收到所述消息时返回的结果,确定异常节点。
24.如权利要求23所述的消息处理方法,其特征在于,所述根据所述从节点接收到所述消息时返回的结果,确定异常节点,包括:
验证所接收结果的数字签名后,将所接收结果包括唯一性字段与所发送消息的唯一性字段比较,确定不一致的唯一性字段对应的从节点为出错节点,以及确定未返回相应结果的从节点为故障节点。
25.如权利要求23所述的消息处理方法,其特征在于,所述根据所述从节点接收到所述消息时返回的结果,确定异常节点,包括:
根据所接收结果携带的序列号与所发送消息的序列号比较,当发送不一致序列号的从节点的数量超出不一致数量阈值时,判定所述主节点为恶意节点。
26.如权利要求23所述的消息处理方法,其特征在于,还包括:
确定所述主节点为恶意节点,或者,确定所述从节点中存在故障节点时,触发所述分布式系统的节点切换到第二共识模式。
27.如权利要求26所述的消息处理方法,其特征在于,还包括:
在预定时间内接收到全部所述节点的一致性确认时,通知全部所述节点返回所述第一共识模式;未在预定时间内接收到全部所述节点的一致性确认时,通知全部所述节点继续切换到所述第二共识模式;其中,
所述一致性确认,为各所述节点在切换到所述第二共识模式的准备阶段,将各所述节点持久化存储的消息的哈希值与其他节点持久化存储的消息的哈希值比较,并在确认一致时发送,且携带相应节点的数字签名。
28.如权利要求26所述的消息处理方法,其特征在于,还包括:
在预定时间内达成共识的节点未接收到未达成共识的节点的数据确认时,或在预定时间内任一所述节点未接收到其他节点发送的数据确认时,触发所述分布式系统的节点继续切换到所述第二共识模式;其中,
所述数据确认,为各所述节点在切换到所述第二共识模式的准备阶段,将各所述节点持久化存储的消息的哈希值与其他节点持久化存储的消息的哈希值比较并在确认一致时发送,且携带相应节点的数字签名。