源码地址:https://github.com/corgi-kx/blockchain_consensus_algorithm/tree/master/dpos
股份授权证明机制是POS的一个变种,简单来说就是你手里有选票(币就相当于选票)。这时一些正在竞选超级节点的大节点们说把票都投给我把,等我当选了超级节点,我吃肉你喝汤,岂不美哉?然后你就信了,把票投给了竞选节点,这些节点竞选成功成为超级节点后会轮循的获得出块权。旷工费、通胀放出的代币也就都到了他们手里了。比较中心化的一种共识机制,但是TPS很高。
区块结构:
type block struct {
//上一个块的hash
prehash string
//本块hash
hash string
//时间戳
timestamp string
//区块内容
data string
//区块高度
height int
//挖出本块的节点地址
address string
}
//用于存储区块链
var blockchain []block
//普通节点
type node struct{
//代币数量
votes int
//节点地址
address string
}
//竞选节点
type superNode struct {
node
}
//投票节点池
var voteNodesPool []node
//竞选节点池
var starNodesPool []superNode
//存放可以挖矿的超级节点池
var superStarNodesPool []superNode
初始化:
生成投票节点池并随机赋予代币数量,同时为竞选节点池生成竞选节点
//初始化
func init() {
//初始化投票节点
for i:=0;i<=voteNodeNum;i++