初链TrueChain作为采用了PBFT-fPow混合共识的公有链,构造了独有的双链结构。其中PBFT委员会作为对交易的快速处理产快速链;PoW对快链的块进行挖矿形成的慢速链,同时慢链负责PBFT委员会选举,本文主要阐述其共识的4个阶段。
1 参与共识
加入共识阶段决定了什么样的节点能参与共识
在pow中,买入矿机进行挖矿就是加入共识阶段;
在pos中,需要持有相应的token或交保证金才能参与共识;
在dpos中,代理人需要获得一定量的投票才能参与共识;
在truechain中,委员会成员利用PBFT共识产生快链,也就是说只有当前届的委员会成员才能参与共识,而委员会是需要选举并且有任职期限的(类似现实中的选举),目前truechain主网中的委员会任职期限为一天。
通过挖水果达到一定界限后,比如有100个矿工挖出了指定数目之上的水果,随机从这些矿工中,选举出一定数目的矿工(如30个)成为下一届的委员会成员。
2 出块
这一阶段需要一个节点来打包交易生成新的区块。
1 采用随机的方式出块,从共识节点中随机挑选出一个节点出块,如pow,DPos;
2 共识节点按轮流顺序出块,如 POA;
3 在不出问题的前提下,一直有一个节点出块;
truechain就是采用的是在当前届委员会任职期间,在委员会leader节点不出问题(包括节点作恶和节点通信有问题)的情况下,一直由leader节点出块。
3 进行投票和验证
在Nakamoto 共识中,新构造的区块就是对当前链中之前一系列区块的投票,即每一个新产生的区块就是就是一张投票。而最长链包含的区块最多(票数多),所有正常矿工都会在此基础上进行产生块。
在truechain网络中,委员会节点之间通过验证leader新产生的区块是否正常,从而进行投票,leader通过收集投票,是否超过2/3赞成票来决定是否继续产生下一个区块。
4 退出共识
在pow共识系统中,退出共识只需要停止挖矿就行。
而在treuchain网络中,委员会成员就是共识节点,共识节点是有一定收益的,一般正常情况不会退出共识,也有可能本节点机器停止运行,如若在一定时间内没有连接到现有的委员会其他节点,视为退出共识。
当委员会中的部分节点退出共识,如果达到一定的数量(如1/3),可能在投票验证阶段就过不去了,此时主网就不会产生新的区块,新的交易无法打包,针对此种可能出现的情况,truechain采用候选委员会机制,如果当前委员会中有节点退出共识,候选委员会称为委员会,参与共识。
网友评论