这将是一个如何使用以太坊区块链构建去中心化应用程序DApps的系列教程。
第一篇教程重点介绍应用程序的规则和功能以及设置私有区块链,展示在使用或不使用DAO和应用程序的情况下如何构建自己自定义的以太坊代币。
我们要构建3件事:
自定义代币。
使用代币作为投票的DAO。
用于与智能合约交互的原型Web UI。
按照本教程中的说明操作后,你将能够构建自己的自定义以太坊代币,无论是否包含DAO和应用程序。
我们将要构建什么?
是一个带有输入字段(可以是文本和图像)的Web应用程序,其中安装了MetaMask的用户可以根据特定条件发送一段文本或图像。(图像每50个段落只出现一次,并且只能是一个URL。)
完整的故事呈现在输入字段旁边。故事中存在的条目越多,提交条目的成本就越高。提交条目需要支付费用,列入白名单的并且至少有一个TNS代币的人可以使用的这个操作。
操作类型:
提交条目:要求发件人至少拥有1个TNS代币并位于白名单中(见下文)。成本。 (参见下面的“章节”部分)。这可以是每50个文本条目只有一次图像,并且只能是一个URL。否则就是文字。没有代码,只有纯文本。 在任何一种情况下,文本字段大小限制为256个字符。
转让所有权(仅限所有者):可以将所有权转移到新地址。
减少费用(仅限所有者):所有者可以在不要求投票的情况下提交较低的费用(参见下面的费用“Free”部分)。
购买TNS代币:将以太发送到DAO以获得自动发回一定比例数量的TNS代币。如果DAO中没有足够的TNS代币,则必须从交易所获得它们。
检查代币余额:一个只读操作,用于检查DAO中有多少个TNS代币。
白名单:当以太发送到DAO的地址时,会自动调用此函数。它将发件人记录在白名单数组中以供将来参考,获得大量TNS的人不能将它们分发到各种帐户。
结束章节:触发分配以太分红和重置输入费用的章节结束流程。
撤回:当利益相关者想要撤回分红时调用。
所有者提款(仅限所有者):由所有者调用以便提取费用收入。
利益相关者(TNS代币持有人)将能够对提案进行投票,任何达到“Yes”比“No”更多的投票提案都将获得批准。投票数无关紧要;这个比例很重要。根据提案的类型,提案需要在特定时间段内开放投票。
提案类型:
删除条目:通过投票确认后,目标条目将被删除。投票时间:48小时。
紧急删除条目(仅限所有者):只能由所有者触发。通过投票确认后,目标条目将被删除。投票时间:12小时。
紧急删除图像(仅限所有者):仅适用于图像条目。只能由所有者触发。通过投票确认后,目标条目将被删除。投票时间:4小时。
稍后我们可以使用相同的方法添加其他类型的提案。
所有提案都需要在用户界面中明确列出,以便人们知道他们需要投票。选民只需要一个TNS代币即可投票,但他们拥有的代币越多,他们的投票就越值得。
重要提示:用户的代币在投票期间被锁定。这可以防止TNS大鳄持有者压倒每一个活跃的投票。选民必须在对他们重要的选票上分配投票权。
Chapters章节
在1000个条目或三个星期的时间之后,任何用户都可以调用章节的结尾。然后,DAO将向所有TNS持有者分发收集的以太币,与其余额成比例。持有人不需要在DAO中列入白名单以获得以太分红。他们只需要在分发时保留TNS代币。
分发是一种拉动机制:持有者需要调用DAO的撤销功能来获得他们的以太。它不会被自动调用。退出窗口是72小时。50%的无人认领的gas归于拥有者,50%进入下一章的分红。
free费用
每个提交的参赛费的1%将转给当前所有者。其余部分放入池中,并在每章结束后分发给所有TNS持有者,与其TNS持有量成比例。
所有者的费用被分为单独的余额,他们可以随意定期退出。
要进入白名单,用户必须向DAO发送0.01以太。所有未来的代币购买价格都要低得多。0.01以太入场费是为了防止Sybil攻击。如果用户在第一次发送时发送的数量超过0.01,则0.01将转向白名单,剩余部分将用于计算用户获得的TNS数量。所有代币将一次性发回给用户。
简而言之,将这个项目视为众包选择你自己的冒险故事,包括人群策划和社区审查。一个故事——DAO(story-DAO)。
bootstrapping:PoA私有区块链
我们将使用两个引导程序:第一个程序将专注于在本地运行我们自己真正的以太坊区块链。它将使用PoA作为共识机制,并且像任何真正的以太坊testnet一样起作用 。
下载并安装Virtualbox。
下载并安装Vagrant。如果你不了解虚拟机是什么,请参阅此帖子。
从这里下载Geth。请务必在下载页面向下滚动并下载“Geth&Tools”,而不仅仅是“Geth”。如果你使用的是macOS,还可以使用Homebrew并使用进行安装。
Mist可以在这里下载。一定要下载“Mist”而不是“Ethereum Wallet”。Mist是以太坊“浏览器”,它可以打开各种DApps。以太坊钱包“Ethereum Wallet”可以干同样的事,但锁定在钱包模式,所以你不能用它打开其他应用程序。这是为了防止非技术用户访问到恶意DApp。
领取专属 10元无门槛券
私享最新 技术干货