目标:发帖内容 hash 上链 + 投票打赏
[ 用户浏览器 ]
│
▼
MetaMask / WalletConnect IPFS ←→ 评论内容
│ ▲
▼ │
[ Next.js 前端 ] ─────→ [ Node.js 中间层 API ] ─────→ [ EVM 区块链 ]
│ ▲
└─ MongoDB/PostgreSQL ──┘
(用户信息 + 评论索引 + 签名)
web3-anon-comment/
├── contracts/ # Solidity 智能合约
│ └── CommentStorage.sol
├── frontend/ # Next.js 前端项目
│ ├── pages/
│ ├── components/
│ ├── utils/
│ └── wagmi.config.ts
├── backend/ # Node.js API 服务
│ ├── routes/
│ ├── controllers/
│ ├── models/
│ └── siwe-auth.js
├── ipfs/ # IPFS 上传逻辑(Pinata SDK等)
├── prisma/ # 数据库模型定义(如使用 PostgreSQL)
└── hardhat.config.js
| 项目 | 推荐配置 |
|---|---|
| 区块链开发 | Hardhat + Polygon Mumbai 测试网 |
| 钱包测试 | MetaMask / WalletConnect |
| 内容存储 | IPFS via Pinata or Infura |
| 部署 | Vercel (前端) + Render/Fly.io (后端) |
| 数据库 | MongoDB Atlas 或 Supabase |
| 功能 | 说明 |
|---|---|
| 点赞、投票 | 前端记录点赞者钱包地址,合约中记录投票行为 |
| ERC20 激励 | 使用 faucet 合约或空投方式奖励交互用户 |
| 防女巫机制 | 发帖收取极少 Gas,或要求 NFT Pass 门票 |
| 声誉系统 | 按钱包交互历史赋予隐式声誉值 |
| 标签归类 | 评论或话题可以打标签,用于分类展示 |
| 嵌套评论 | 评论可以回复其他评论,形成树状结构(楼中楼) |
| 标签管理 | 支持固定标签池或用户自定义标签 |
| 模块 | 技术选型 |
|---|---|
| 前端框架 | Next.js + TailwindCSS |
| 钱包连接 | RainbowKit + Wagmi + Ethers.js |
| 区块链合约 | Solidity + Hardhat |
| 内容存储 | IPFS(via Infura/Pinata)或 Arweave |
| 后端 API | Node.js (Koa/Express) + MongoDB/PostgreSQL |
| 登录认证 | SIWE(Sign-In With Ethereum)标准 |
| 区块链平台 | Polygon / Arbitrum(主网或测试网) |
export JWT_EXPIRES_IN=7d;
export JWT_SECRET=your-very-secret-key;
export DATABASE_URL="mysql://root:12345678@127.0.0.1:3306/web3anoncomment";
npx ts-node server.ts # 后端
# 前端: TODOTODO: replayService.ts, 服务启动时,从区块链、ipfs重放数据到数据库 TODO: 编写并测试 Solidity 合约(如 Hardhat) TODO: 编译并部署到链上(测试网) TODO: 提供前端/Node.js 脚本上传 IPFS 并调用合约方法 TODO: 实现链上事件监听 & 数据同步