当前位置: 主页 > 比特币 >

EOS主网链上公投系统合约:eosio.forum



  近期,社区中对公投机制和范围的讨论火热,而EOS CanADA率先编写了推动 EOS 主网提议的公投系统的代码, 因此,我们发表这篇文章,重点介绍目前 EOSIO 链上的公投系统开发的过程和成果。

  Block.one当初建议了要创建一个链上论坛,让消息可以发布到链上,以便验证EOS用户发表对某个问题的意见。 我们就又意识到,如果我们用这种消息传递系统来发布公投问题的批准和否决,我们就有了公投制度的基本结构。

  EOS CanADA 把 Block.one 的样本合约拿了过来,并开始对其进行重构,以满足通过与其他参与团队进行长期反复讨论而发现的社区需求。 我们团队的 Alexandre Bourget 开始迭代合约,然后将大部分的工作交给了我们的 C 开发人员 Matthieu Vachon, 他编写了整个合约,并运行了许多测试来捕获任何边缘情况。

  EOS CanADA 的安全负责人 Francois Proulx 随后对代码进行了深度的审核,以确保发布成功。

  那接下来就让我们讲一讲eosio.forum合约的工作方式 任何人都可以使用这个论坛合约来推出一个命题或投票,但是,最终还是我们作为一个社区所决定去关注的那些是有用的。 举个例子说,目前每天EOS上有数十万笔交易,但现在我们只想看某个帐户的交易,让这个帐户的交易内包含某些关键信息。

  上面所说的账户的交易中将包括(请注意,我们仍需要完善此结构,但它能给你了解这个论坛合约的大概机制):

  proposer: [account] proposal_name: [thequestion] title: "EOSIO Referendum: [WhatWeWantToVoteOn]" # An English string, to be shown in UIs proposal_json: '{ "type": "bp-proposal-v1", "cONTent": "TallyMETHod, VotingPeriod, DescriptionOfWhatWeAreVotingOn, WhatTheDifferentVotePossibilitiesWillSpecificallyMean, TheActualQuestion”}' 把这个代码翻译成中文大意是这样:

  提议者:[帐户] 提议名称:[问题] 标题:“EOSIO公投:[需要投票的问题]”#一个英文字符串,将在UI中显示 proposal_json:'{ “type”:“bp-proposal-v1”, “cONTent”:“计票方式,投票时间,所投票内容的描述,不同的投票选项所代表的意思,投票问题”}' 投出去的票是这样的:

  voter: [myaccount] proposer: [proposersaccount] proposal_name: [thequestion] proposal_hash: acbdef112387abcefe123817238716acbdef12378912739812739acbd # sha256 of "title proposal_json" of proposal vote: [votevalue] vote_json: '' 代码翻译成中文大意:

  投票人: [我的账号] 提议人: [发出投票人的账号] 提议名称:[问题] 提议哈希:acbdef112387abcefe123817238716acbdef12378912739812739acbd # sha256 of "title proposal_json" of proposal 投票:[投票值(投票选项)]vote_json: '' 一个提议怎么能变成公投 想要让一个问题被eosio这个账户发布出去,需要使用eosio.msig合约进行签名。 任何用户都可以向他们的帐户提交问题,但大多数钱包只会默认显示eosio帐户,该帐户中会包含已由21个BP中的15个所签署的问题 (在EOS主网上,任何决定的通过需要前21个BP中至少15个来签署同意)。

  谁来决定问什么问题 任何用户都可以使用此合同撰写提案。 例如,Everipedia 的帐户可以使用此合同对其社区收集投票,然后计数系统会收集与该帐户相关的提案和投票信息。 我们建议全球民意调查或公投由eosio账户所主持,21个BP节点中的至少有15个签署了后算通过。UI将能够查看任何此类帐户的公投提案,这个设置的应用会非常广泛。

  EOS Canada 一开始将 eosio.forum 合约部署到帐户eosforumdapp上,以进一步的测试,并收集一些社区反馈。 有意思的一件事是,社区中的一个用户使用该合同创建了一个像 EOS 链上 Reddit 一样的论坛,名为Novusphere.io。

  现在,合约已部署到我们创建的另一个帐户eosforumrcpp上,该帐户名是代表 EOS Forum Release Candidate Pre-Production (候选EOS论坛预生产)。 Novusphere 现已迁到新合同上,你可以查看它们在其上构建的界面。

  我们将会把此帐户的权限结构设置为共享多签,与和我们协作的其他BP节点一同分享。 我们还想强调下其他团队所做的贡献:

  EOS Nation一直在领导此项目的管理,并带领了创建投票计数机制的工作

  Greymass在关于如何建立此合约及其基本逻辑的设计讨论中一直非常积

  GenerEOS一直致力于将此合约集成到两个UI中 -eosvotes.io 和eostoolit.io

  EOS Tribe一直在设计eosvotes.io的UI,以及帮助创建与该系统有关的大量文档

  想了解更多此合约的工作原理,请访问其GitHub 库阅览代码。

  我们最后剩下的步骤是完成这个合约的计数机制。 一旦社区接受了它,我们希望将合约部署到一个多签控制的帐户。 我们很高兴能够帮助推动这个项目,我们认为这个项目对于EOS主网的进步至关重要。

  我们希望中国的EOS社区能够与我们互动,我们邀请您的提问,提议,和任何合作倡议。您可以随时利用以上平台联系我们。

【版权声明】该文章由本站整理于网络的相关信息,本站不拥有所有权,不承担相关法律责任。


相关资讯

站长统计