GoEthereum项目是美图技术团队在以太坊上实现的DPoS算法,是以太坊协议的Go语言实现,目前尚处于实验阶段。
查看官方的实现版本>>>https://www.oschina.net/p/go-ethereum
基于Ethereum(1.7.3版本)实现DPoS共识算法
以太坊当前代码里面已经包含了几种共识算法的实现:
PoW 在主网使用
FakePow 在单元测试使用
PoA(ProofofAuthority) 在测试网络中使用
为了在代码中实现多种共识算法,以太坊抽象了一套共识算法接口,实现不同的共识算法只要实现几个接口即可。另外由于DPoS为了避免每次选举都从创世块开始回放历史数据,增加了几个全局状态树用来记录选举和投票的状态,并把树对应的root存储到块头,其中包括:
EpochTrie记录每个周期的验证人列表
VoteTrie记录投票人对应验证人
CandidateTrie记录候选人列表
DelegateTrie记录验证人以及对应投票人的列表
MintCntTrie记录验证人在周期内的出块数目
评论