千家信息网

如何使用以太坊区块链构建去中心化应用程序DApps

发表于:2025-12-03 作者:千家信息网编辑
千家信息网最后更新 2025年12月03日,这篇"如何使用以太坊区块链构建去中心化应用程序DApps"文章的知识点大部分人都不太理解,所以小编给大家总结了以下内容,内容详细,步骤清晰,具有一定的借鉴价值,希望大家阅读完这篇文章能有所收获,下面我
千家信息网最后更新 2025年12月03日如何使用以太坊区块链构建去中心化应用程序DApps

这篇"如何使用以太坊区块链构建去中心化应用程序DApps"文章的知识点大部分人都不太理解,所以小编给大家总结了以下内容,内容详细,步骤清晰,具有一定的借鉴价值,希望大家阅读完这篇文章能有所收获,下面我们一起来看看这篇"如何使用以太坊区块链构建去中心化应用程序DApps"文章吧。

我们将要构建什么?

我们正在建设的项目名为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小时。

  • 紧急删除条目(仅限所有者):只能由所有者触发。通过投票确认后,目标条目将被删除。投票时间: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并使用brew install ethereum进行安装。

  • Mist可以在这里下载。一定要下载"Mist"而不是"Ethereum Wallet"。Mist是以太坊"浏览器",它可以打开各种DApps。以太坊钱包"Ethereum Wallet"可以干同样的事,但锁定在钱包模式,所以你不能用它打开其他应用程序。这是为了防止非技术用户访问到恶意DApp。

如果你很好奇,请在这里了解更多关于Mist和Geth的信息 。

我们需要VirtualBoxVagrant,因为我们将使用这种方法启动我们的节点并运行两台虚拟机,模拟运行以太坊节点的两台计算机。

接下来,按照此帖子中的说明设置PoA私有区块链。

你最终将得到两个运行节点。每个人都将挖掘到自己的地址。记下这些地址。我的是:

Node 1:0x4b61dc81fe382068e459444e8beed1aab9940e3b Node 2:0x97e01610f1c4f4367c326ed1e9c41896b4378458

bootstrapping:Ganache CLI

我们可以使用的第二个的引导程序,这对于测试我们的合约特别有用,它是Ganache CLI,以前称为Testrpc

Ganache是一个基于JavaScript的本地区块链模拟。每次我们运行测试或重新启动应用程序时,它都会从头开始重新运行区块链。这有助于我们快速测试边缘情况,但不适合长期合约的长期测试。

首先,使用npm install -g ganache-cli安装Ganache

然后,只需运行ganache-cli就可以了。你应该看到与此类似的输出:

$ ganache-cliGanache CLI v6.1.0 (ganache-core: 2.1.0)(node:40584) ExperimentalWarning: The fs.promises API is experimentalAvailable Accounts==================(0) 0xa0b7139a36ecda5ffda66b9cf97cb9de36e63f2f(1) 0x1f5546797a0ff7efe42ecafaeebd5c932f1a0143(2) 0x0eacbad38a642db2204574ad01b2b51c82ff7080(3) 0x77f40a8add69b0e0806c0c506208e5783b89076d(4) 0x1ea41547984ecb949c2b2df311bffe0fdeae4632(5) 0xa1ad154fd5fd11ebe5410c992e5e97b461c516a2(6) 0x34da52fd90c015a41bcc383ba3d804f7cebbc84e(7) 0xddd5232788c1f1192d6ac5e82e74ca80945e119e(8) 0x7ebc838124a676eac57f9b6275cd29b1a1c63d4d(9) 0x6feed7913319ffb1b01f767960dd843ea7f96181Private Keys==================(0) 62727ad35a288eb34f268cffb1ce620ef3ee80910138aed0e81f24d912fd8a49(1) a6c76b382c655dcc66dd92428e3e0a0f14b7458162ad8e5cbbbcc64d3362d28c(2) eef05f81fd995329c80d8875d5cb62b81f8f28c39951665b4b15688dc48b4c47(3) 5ae06fc34da5d47a64a814ee088f7c6f0d1cae3c63d7ad2d6b71b8128bce1764(4) 8cc43f28054f90243dea496263bd9a45f33db44ea3956ab8d0e8704e15d0787e(5) dcf37436237105ea2f5b1be608b6aa1fe6fb7ca80b8b23ce01ff96930a2a3045(6) f896b6f0ee11ea272c1567ec1950f7ff610df79193cbb7b668ae0ea11f6ec825(7) 877b5868dca9a2f5c7d9546647171c9825f1b02922442f18dd4e90d108b9e54d(8) 7f1f3515d71d348a78ae85a755e02df49be4e0b374447b822abe5a6481fe0c58(9) 20d50b28c8b051406edc6aa61becc3443e430d7d68925a108958f8abecd55ed3HD Wallet==================Mnemonic:      soda tower talk dynamic swim tattoo edit cook pair bid glance beautyBase HD Path:  m/44'/60'/0'/0/{account_index}Listening on localhost:8545

Ganache在这里做的是启动私有区块链,几乎没有挖掘时间,也没有节点。它会在进入时立即执行交易。它还会生成10个预加载了大量虚拟以太的地址,并产生出私钥,以便将它们导入各种工具,如MetaMask,MyEtherWallet或之前下载的Mist。

我们将根据我们的需要使用此方法和上述方法的混合,因此请确保同时设置这两种方法。

注意:最好也可以使用Ganache UI工具,使用可视界面来管理Ganache区块链。

以上就是关于"如何使用以太坊区块链构建去中心化应用程序DApps"这篇文章的内容,相信大家都有了一定的了解,希望小编分享的内容对大家有帮助,若想了解更多相关的知识内容,请关注行业资讯频道。

以太 投票 代币 所有者 条目 区块 程序 用户 费用 名单 提案 运行 应用程序 应用 图像 时间 内容 地址 文本 章节 数据库的安全要保护哪些东西 数据库安全各自的含义是什么 生产安全数据库录入 数据库的安全性及管理 数据库安全策略包含哪些 海淀数据库安全审计系统 建立农村房屋安全信息数据库 易用的数据库客户端支持安全管理 连接数据库失败ssl安全错误 数据库的锁怎样保障安全 幻塔服务器未准备好无法传送 学生网络安全应急演练方案 数据库试验架构 科技互联网公司创始人 中兴通讯有数据库业务吗 数据库中关系运算 兰州数据分析软件开发 四年级网络安全德育周记50字 windows小工具软件开发 软件开发人员应聘问题 新建数据库链接详细步骤 河北省网络安全工作会议讲话 腾讯云服务器已到期未停服 英国大学邮箱的收发件服务器 数据库 后缀db 中国亚马逊软件开发怎么样 连接数据库的登录用户 英雄联盟云顶手游服务器错误 服务器安全策略怎么做 九州云创网络技术有限公司 学网络安全在家能挣钱吗 西山区方便软件开发咨询报价 服务器安全技术主要包括 网络安全进园区沙龙 广东省中智软件开发公司 网络文明和网络安全宣传方案 找相亲网络技术有前途吗 合适的esg数据库 服务器管理在哪里设置密码 宣汉县财政局网络安全与信息化
0