你写一句善意,我捐一角钱——区块链保证我确实捐了
来源:dev.to — 2026-09-06
📋 概述
这是 DEV「慷慨周挑战」的作品,动机来自作者家庭的移民经历(2023 年落地明尼苏达,最初三周靠素不相识的陌生家庭提供住处与帮助)。他做的 Kindness Chain 是一个页面:你写一句今天做过或将做的好事,点击后它作为一条 SPL Memo 交易写入 Solana devnet,每条 memo 都携带上一条的签名,因此信息流是一条任何人都能用区块浏览器沿走的链;每确认一条链接,作者就向明尼苏达国际学院捐 10 美分,上限 50 美元——而这条承诺本身就是链上的 #0 号链接,其后链接的条数就是他欠的钱。
🔑 核心要点
- 无账号、无钱包、无 cookie,三十秒完成:链式设计让每条 memo 只能指向已存在的签名,故链接只能一条接一条顺序写入,由一个 worker goroutine 依序送出 SPL Memo 交易
- memo 即行记录:六个固定字段的 JSON,t 记的是访客添加链接的时刻而非 worker 处理时刻;SQLite 是事实、Solana 是证明——任何发送失败都让链接保持 pending 并重试,三次连续失败才显示暂停
- 不用钱包签名是刻意取舍:服务端密钥代签一切,代价是信任作者——而缓解方式正是每条 memo 公开可对账,verify 端点能从集群读回 memo 与库中字段逐一比对
- 无账号下的七层防滥用:字数规则+URL 黑名单、蜜罐字段、浏览器工作量证明(SHA-256 前缀 18 个零位)、去重、每地址每小时 3 条、全链每分钟 10 条、队列超千拒绝
- 作者诚实披露:工作证明只是减速带(脚本零点几秒可解),真正的墙是节流;且用 devnet 而非主网,因为它可被重置、这是对账本的证明概念验证而非合同
💡 金句
如果那个数字和页面上的计数器对不上,那么链是对的、我是错的。
👍 0
👎 0
← 返回 dev.to 首页