理解去中心化应用
能不能构建一个应用,规则写在链上,没有任何人可以单方面修改或关掉它?
痛点
你在某平台做了5年的内容创作者,某天账号被封,一分收入没有,粉丝清零。平台说封就封,你没有任何申诉权。
为什么有这个痛点? “应用”的本质是平台控制数据,用户只是租客。
// 里程碑
笔记摘要
阶段 2 收官时说好了「从理解到动手写」,这篇就是动手的第一份记录——M3.1 的进行时学习笔记,比正式文章更口语化,踩坑也如实记下。内容:用 Remix 零安装起步(Hardhat/Foundry 一句带过);基础类型 uint/int/address/bool/string 与 mapping;函数修饰符 view/pure/payable 各配最小代码片段;事件 event/emit 为什么链上可查;0.8.x 内置溢出检查(对比 0.8 前人人 SafeMath 的历史);最后一个能直接编译部署的计数器合约 + 我在 Remix 里的部署步骤实录。
笔记摘要
上一篇笔记结尾预告的 M3.2:把 Remix 里的计数器搬进 Hardhat 本地工程。内容:为什么单机试错有天花板(改一行、手动点一遍按钮的循环走不远);Hardhat 是什么、装好后长什么样(目录结构逐个文件导览);自动化测试怎么写——describe/it 结构、贴出计数器的真实用例,重点解释 revert 断言为什么不是异常而是断言;以及我自己踩过的常见坑:Node 版本、cache/artifacts 什么时候该删、为什么会自动重新编译。到这里,「改一行、全量跑一遍测试」终于是自动化的事了。下一篇 M3.3 把合约部署到测试网。
笔记摘要
上一篇 Hardhat 工程结尾预告的 M3.3:把只在进程里活着的 Counter 部署到测试网 Sepolia。内容:本地网络、测试网、主网到底差在哪(成本/数据/重置/参与者四维对比);准备工作三件套——水龙头领测试币、为什么需要 Alchemy/Infura 这类 RPC 节点服务、.env 里两项各填什么;部署操作逐条解释(复制 .env.example → 填值 → npx hardhat run scripts/deploy.js --network sepolia);部署后用 Etherscan 测试网版查合约、以及为什么要做合约验证。
笔记摘要
阶段 3 收官:上一篇部署到测试网结尾说「合约就位,等一个前端」,本篇补上它。内容:DApp 到底是什么(前端界面 + 链上智能合约作后端,规则上链、无人可单方面下架——回到阶段 3 开篇的平台封号痛点);前端三件套逐个写——连接 MetaMask(window.ethereum 检测 + eth_requestAccounts)、读合约状态(view 调用不发交易不花 gas)、发写交易(increment → tx.wait(1) 等确认 → 复读 → 从 receipt 回读 CountChanged 事件),代码全部来自 dapp/frontend/ 真实文件