Permalink
Branch: master
Find file Copy path
Fetching contributors…
Cannot retrieve contributors at this time
36 lines (26 sloc) 2.45 KB

投票

YOYOW采用DPoS共识算法,根据这种算法,全网持有代币的人可以通过投票系统来选择见证人、理事会,从而实现对YOYOW系统的决策。

投票资格

  • 持币数量到达一定数量后,即可以获得投票资格,当前为10000 YOYO,参见参数表min_governance_voting_balance字段。
  • 被理事会设置黑名单的账户,丧失投票资格。

投票有效期

  • 拥有投票资格的用户,初次进行投票操作时激活投票意向。有效期为T ,初始默认90天。
  • 在有效期内,如有新的投票操作,则有效期递延时间T。即过期时间变更为:更新投票操作时间 + T
  • 在有效期内,如无新的投票操作,则认为不再有投票意向
  • 用户失去投票资格, 或不再有投票意向,则选票失效

投票方式

  • 理事会选举:一票一投,每个账号同时只可支持一位候选人,持票人可随时修改投票。
  • 见证人选举:一票多投,为了强化共识,每个账户可以给多个见证人投票。

有效得票计算

为增加投票公平性,计票综合考虑了投票者当前持币量、平均持币量、持币时间等因素

  • 账户在激活投票意向时,开始积累币龄。
  • 投票人的有效票数为前60天内的平均余额和账号当前余额,这两个值中的较小值,即:有效票数 = min(60天平均余额,当前余额)。也就是说,在币转入时,币龄慢慢积累增加相应部分;币转出时币龄立即减少相应部分。
  • 被投票人的得票数,等于所有支持者有效票数之和
  • 因为实时更新所有账户币龄计算量太大,故计票采用延迟更新模式,可能与实时数据有少量计票误差。

投票代理

  • 投票可设置代理人,如:账户A设置账户B为投票代理,则B的投票对象得到的票数为A的有效票数 + B的有效票数。 A 称之为委托人,B 称之为代理人
  • 可设置多层代理。如:账户A 设置账户B为投票代理,账户B设置了账户C为投票代理。但代理总层数有上限。
  • 不可代理自己。
  • 代理人进行投票操作时,会刷新委托人的投票意向有效期。
  • 如果代理人失去投票意向或者投票资格,代理关系自动解除,委托人投票状态变为“不投票给任何人”,委托人投票意向有效期不变
  • 代理人重新激活投票意向时,代理关系不恢复