`

eos投票

    博客分类:
  • EOS
 
阅读更多
1.想要获取投票需要先将手里的EOS抵押,转换成相应的CPU和带宽(NET),可投的选票数与抵押的可用资源(CPU+NET)相等.

2.而通过抵押或者购买的RAM没有投票权.

3.抵押的EOS会被锁定,如果想取消抵押需要等待72小时

4.抵押获取的选票可以投给30个不同的节点,也可以委托给投票代理人,让他来帮你投票

5.投票权重会衰减,投票一周后,如果不重新投票,权重就会衰减,一年后权重会降低至原来的50%,如果重新投票,则权重会恢复

关键函数:
regproducer:注册出块节点账户
unregprod:注销出块节点账户
update_elected_producers:更新出块节点选举情况的全局状态
state2vote:为投票抵押代币
voteproducer:投票
update_votes:更新投票结果
regproxy:注册委托投票代理人

update_votes
1.判断投票人类型,若为代理人,则将判断代理人是否具有对应的委托权限,不符则抛出异常,相符则向下继续执行

2.判断投票人是否具有投票权限,即是否进行用以投票的代币抵押.这里主要查询一个全局表_voters,该表中维护了所有用户的抵押信息.若没有抵押,则抛出异常;通过则向下继续执行

3.判断本次投票是否为首次投票.若是,则修改全局投票状态_gstate.total_activated_stake;接着进行投票操作,即读取用户提交的producer_detas列表,并在出块节点的全局表中查找对应的出块节点,并调整相应节点的投票情况

4.修改该用户的投票权重
分享到:
评论

相关推荐

Global site tag (gtag.js) - Google Analytics