-
Notifications
You must be signed in to change notification settings - Fork 115
Open
Milestone
Description
联盟链采用了聚合签名的方案,简化共识过程中的消息交互。 流程如下:
- peer0发送proposal给peer1~peerN
- peer1--peerN进入到prevote阶段,对区块签名,发prevote给peer0.
- peer0收集prevote,聚合签名后回响应给peer1--peerN,这些节点验证签名通过后,再进入precommit阶段,发precommit消息给peer0
- peer0收集precommit消息,将precommit聚合签名后,发给peer0--peerN。 peer0--peerN收到聚合消息,并验证通过后,进入commit阶段。
目前的实现,简化了消息的流程,但是步骤3和4都要等到打包节点的响应,才能进入下一阶段,在节点数比较少的情况下,性能提升并不明显(曹平做过验证)。
所以讨论,简化prevote阶段的等待如下:
- peer0发送proposal给peer1~peerN
- peer1--peerN进入到prevote阶段,对区块签名,发prevote给peer0. 同时不等peer0响应,直接进入precommit阶段,构造precommit消息给peer0.
- peer0收集prevote,记录prevote的结果(是否满足2/3)。
- peer0收集precommit消息,同时判断之前记录的prevote的结果,两者都满足2/3的条件,进入commit, 同时将precommit聚合签名后,发给peer0--peerN。 peer0--peerN验证签名后,进入commit。
Metadata
Metadata
Assignees
Labels
No labels