这将是一个如何使用以太坊区块链构建去中心化应用程序DApps的系列教程。
第一篇教程重点介绍应用程序的规则和功能以及设置私有区块链,展示在使用或不使用DAO和应用程序的情况下如何构建自己自定义的以太坊代币。
我们要构建3件事:
- 自定义代币。
- 使用代币作为投票的DAO。
- 用于与智能合约交互的原型Web UI。
按照本教程中的说明操作后,你将能够构建自己的自定义以太坊代币,无论是否包含DAO和应用程序。
我们将要构建什么?
我们正在建设的项目名为The Neverending Story(TNS)
。完整的项目可以在storydao.bitfalls.com找到。它的完整代码在GitHub上。
The Nendingnding Story
是一个带有输入字段(可以是文本和图像)的Web应用程序,其中安装了MetaMask的用户可以根据特定条件发送一段文本或图像。(图像每50个段落只出现一次,并且只能是一个URL。)
完整的故事呈现在输入字段旁边。故事中存在的条目越多,提交条目的成本就越高。提交条目需要支付费用,列入白名单的并且至少有一个TNS代币的人可以使用的这个操作。
操作类型:
- 提交条目:要求发件人至少拥有1个TNS代币并位于白名单中(见下文)。成本
0.0001 ether * number of entries in current chapter
。 (参见下面的“章节”部分)。这可以是每50个文本条目只有一次图像,并且只能是一个URL。否则就是文字。没有代码,只有纯文本。 在任何一种情况下,文本字段大小限制为256个字符。
- 转让所有权(仅限所有者):可以将所有权转移到新地址。
- 减少费用(仅限所有者):所有者可以在不要求投票的情况下提交较低的费用(参见下面的费用“Free”部分)。
- 购买TNS代币:将以太发送到DAO以获得自动发回一定比例数量的TNS代币。如果DAO中没有足够的TNS代币,则必须从交易所获得它们。
- 检查代币余额:一个只读操作,用于检查DAO中有多少个TNS代币。
- 白名单:当以太发送到DAO的地址时,会自动调用此函数。它将发件人记录在白名单数组中以供将来参考,获得大量TNS的人不能将它们分发到各种帐户。
- 结束章节:触发分配以太分红和重置输入费用的章节结束流程。
- 撤回:当利益相关者想要撤回分红时调用。
- 所有者提款(仅限所有者):由所有者调用以便提取费用收入。
利益相关者(TNS代币持有人)将能够对提案进行投票,任何达到“Yes”比“No”更多的投票提案都将获得批准。投票数无关紧要;这个比例很重要。根据提案的类型,提案需要在特定时间段内开放投票。
提案类型:
- 删除条目:通过投票确认后,目标条目将被删除。投票时间:48小时。
- 紧急删除条目(仅限所有者&#