加入 PolkaWorld 社区,共建 Web 3.0!
“
本文摘自波卡官方文档 Polkadot Wiki 的 Phragmén 篇,全文共三节,这是第一节。Phragmén 算法在波卡的 NPoS 验证人选举和理事会选举中都有应用。
Phragmén 顺序算法是 19 世纪 90 年代 Edvard Phragmén 提出的一种多方共赢的选举方法。
下面这段内容摘取自 Phragmén 文献中对 Phragmén 顺序算法目的的总结 :
“
Phragmén 算法试图解决的问题是从范围较大的候选人中选出一组给定的人数。Phragmén (这里指人名)在多成员选区的议会选举中讨论了这一点。当然,同样的问题也可能发生在地方选举中,但在很多其他情况下,例如在一个组织中选举董事会或委员会时,也会出现同样的问题。
在 NPoS 方案中使用 Phragmén 顺序算法来选举验证人。根据验证人自己的质押和提名人给他们的投票。它还试图在每一轮选举后平衡验证人之间的权重。由于验证人在 Polkadot 中得到的报酬是相等的,所以摊开每个验证人背后的质押很重要。Polkadot 在选举中优化三个指标:
最大限度地提高质押总额
最大限度地增加最小验证人的质押额
最小化节点池中的质押的方差
在大量的提名人和验证人的情况下,Phragmén 算法是一个困难的优化问题。Polkadot 使用 off-chain workers 计算链外结果,并提交一个交易来提议出胜出者的结果。在链外执行此计算的原因是为了保持 6 秒的恒定出块时间,并防止在验证人选举时每个 era 结束时的长出块时间。
由于某些用户操作,如更改提名,会改变 Phragmén 选举的结果,系统禁止在 era 变化之前的最后一个 session 调用这些函数,下面这些函数是禁止调用的:
bondExtra
unbond
withdrawUnbonded
validate
nominate
chill
payoutStakers
rebond
在理事会选举机制中也采用了 Phragmén 算法。当你投票给理事会成员时,你可以最多选择 16 个不同的候选人,然后质押一些绑定的 DOT 作为你的投票权重。Phragmén 将在每次选举中进行一次竞选,以确定担任理事会职位的最佳候选人,然后再选出最优秀的候选人,以尽可能平衡他们背后的选票权重。
Phragmén 算法是在后台运行的,并不需要你的额外操作。了解它的工作原理是好的,因为在选举结束后,你提名的所有 stake 并不是都会在你提名的验证人那里。提名人可能会提名几个不同的验证人,并相信这些验证人可以很好地操作节点。
你可以使用 offline-phragmén[1] 脚本在新的选举之前预测验证人选举的结果。
原文链接:https://wiki.polkadot.network/docs/en/learn-phragmen[2]
翻译:PolkaWorld 社区
[1]
offline-phragmén:https://link.zhihu.com/?target=https%3A//github.com/paritytech/substrate-debug-kit
[2]
想要在波卡生态中开发新项目吗?由 PolkaWorld 社区、数秦科技、巴比特、Nano MG 创新空间、imToken、SimpleChain、IOSG、Acala Network、Digital Renaissance Foundation、Patract Labs、Polkadot 生态研究院、白话区块链、Dorahacks 联合发起等发起的「Substrate 创业营」 正在招募中,助力 Web3.0 生态创新产品的诞生和成长!点此了解详情和报名。
https://github.com/paritytech/substrate
https://github.com/paritytech/polkadot
更多内容:
怎样提高从波卡国库申请 DOT 的成功率?附 18 个已申请成功的项目名单
扫码关注公众号,回复 “1” 加入波卡群
关注 PolkaWorld
发现 Web 3.0 时代新机遇
点个 “在看” 再走吧!
声明:本内容为作者独立观点,不代表 CoinVoice 立场,且不构成投资建议,请谨慎对待,如需报道或加入交流群,请联系微信:VOICE-V。
简介:波卡(Polkadot)第一中文社区,带你寻找 Web 3.0 时代新机遇!
评论0条