做了一个极简的链上论坛,叫 Chain Talk 。
核心思路很简单:所有内容存在以太坊的事件日志里,合约只有 22 行代码,一个变量、一个函数、一个事件。没有管理员,没有删除按钮,没有升级机制。发出去的东西永远不能改。
为什么做这个
我们在这个"404 时代"失去了太多东西。
百度空间关了,天涯半死不活,豆瓣小组说解散就解散,贴吧的老帖说删就删。你在网上发过的每一句话,其实都不属于你——它可能被平台删除,可能在服务器迁移时丢失,也可能在公司倒闭后永远消失。
这个实验想看看:如果内容一旦发出就永远不能删除、不能修改、不能被任何管理员下架,会发生什么?
技术实现
合约只有短短几行:
contract ChainTalk {
uint256 private _postIdCounter;
event Posted(uint256 indexed id, uint256 indexed replyTo, address indexed author, string content);
function post(string calldata content, uint256 replyTo) external {
require(bytes(content).length > 0, "Content cannot be empty");
require(replyTo <= _postIdCounter, "Post does not exist");
_postIdCounter++;
emit Posted(_postIdCounter, replyTo, msg.sender, content);
}
}
- replyTo = 0:创建新主题
- replyTo > 0:回复指定帖子(支持楼中楼)
- 所有内容存在事件日志里,只要以太坊链在,数据就在
- 用 The Graph 索引事件,前端不需要钱包就能浏览
成本
得益于最近主网 Gas 很低:
- 部署合约:约 $0.06 (一次性)
- 发一篇几百字主题:约 $0.04
- 发一条回复:约 $0.02
- 没有服务器费,没有数据库费,没有运维成本
它不完美
没有点赞,没有关注,没有推荐算法,甚至没有用户名——你只有一个以太坊地址。
但它有一样东西是所有主流平台都没有的:确定性。你今天发的帖子,十年后还在。
传送门
- 网站:https://talk.io99.xyz
- 源码:https://github.com/picasso250/chain-talk
- 主网合约:0xec3639B4CC756d39e996447dE1787B09EF646b6F (已 verify )
欢迎留下你的第一条"永恒"记录。也欢迎挑刺,任何反馈都很宝贵。