V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
爱意满满的作品展示区。
freekindom
0.01D
V2EX  ›  分享创造

[开源] “物理级防删”的 Web3 论坛,基于 Svelte 5 + Arbitrum,一条帖子 Gas 仅 $0.005

  •  2
     
  •   freekindom · 1 天前 · 1133 次点击

    这是继半年前 StoneText 之后的又一次 Web3 实验。 这次不仅仅是刻字,而是构建了一个极度极简的去中心化论坛 —— Chain Talk

    核心特性

    Chain Talk 没有任何传统后端,也没有数据库。 所有的帖子内容、回复关系,全部存储在 Arbitrum One 链上。

    这意味着:

    1. 物理级防删:没有 delete 接口。只要交易打包上链,这行字就永远刻在那里,神仙也删不掉(我也删不掉)。
    2. 零门槛围观:为了解决 Web3 的交互门槛,我做了Web 只读模式,路人无需钱包、无需登录即可围观所有内容。
    3. 极低成本:得益于 Arbitrum L2 ,目前发一条帖子的 Gas 约 $0.005 (400 个字符),这让“永存”变得稍微没那么奢侈。

    ⚡ 技术栈

    • Frontend: Svelte 5 (Runes Mode) - 彻底抛弃了 store ,全用 runes 做状态管理,开发体验极其丝滑,推荐前端同学看看。
    • Build: Vite + TailwindCSS 4
    • Contract: Solidity 0.8.30 + UUPS Proxy 。
    • Interaction: Ethers.js v6 。

    为什么做这个?

    我们在这个“404 时代”失去了太多东西。 我想看看,用不到 500 行的核心代码,能不能构建一个“永不塌陷”的避难所。

    关于大家可能关心的 Spam/广告问题: 这确实是去中心化社交最大的挑战。目前的防线只有 Gas 费。前端我会做一些基础的过滤(比如折叠明显的垃圾号),但链上数据是无法抹除的。这本身也是实验的一部分:在一个绝对自由且低成本的广场上,内容质量会如何演化?

    传送门

    👉 Demo: https://chain-talk.netlify.app/

    👉 Source Code: https://github.com/picasso250/chain-talk

    👉 Contract: 0xb9A8...6380


    P.S. 目前合约保留了 Admin 升级权限以修复 Bug (毕竟钱还是要在意的),稳定后会销毁 Key 。欢迎来挖坟,或者留下你的第一条“永恒”记录。

    第 1 条附言  ·  2 小时 43 分钟前
    问题已修复!之前看不到帖子的同学现在应该能正常浏览了。

    特别感谢反馈"network 里没看到 fetch 请求"的朋友,这条线索帮我们定位到了 Phantom 钱包的兼容性问题。

    问题本质是 Phantom 钱包对 RPC 查询有 1 万区块的限制,导致历史数据拉取失败。解决方案很直接:用 GitHub Actions 每半小时拉取一次链上数据生成缓存,前端优先读缓存。这样无论用户用什么钱包(或者不用钱包)都能看到完整内容,钱包用户还能同时看到最新的实时数据。

    现在所有钱包类型都支持了:MetaMask 、Phantom 、无钱包。保持 Web3 透明可验证的特性,数据都可以从链上查证。
    18 条回复    2026-01-12 18:24:17 +08:00
    iamdaniel
        1
    iamdaniel  
       1 天前   ❤️ 1
    进入 demo 网站看不到贴子啊,在 arbiscan 上能看到有两条记录。
    n18255447846
        2
    n18255447846  
       1 天前   ❤️ 1
    有意思的 web3 实验。好奇一下会实现本人编辑和删除功能吗,需不需要再花一笔 gas 编辑或删除自己的帖子
    freekindom
        3
    freekindom  
    OP
       1 天前
    @iamdaniel 感谢反馈!这应该是由于我目前使用的是公共 RPC 节点( https://arb1.arbitrum.io/rpc),在某些地区或网络环境下连接不稳定导致的读取失败(或者是被限流了)。我本地的 pc 和手机是正常的。请问你的浏览器、操作系统,如果能提供 F12 报错就更好了。
    freekindom
        4
    freekindom  
    OP
       1 天前
    @n18255447846 关于删除: 正如标题所说,一旦上链,神仙也删不掉,包括我自己。这是为了保证内容绝对的‘永存’。可以做软删除。但也要消耗 gas 费。
    关于编辑: 技术上可以实现(通过发新交易指向旧帖子进行覆盖显示),但目前 V1 版本为了极简还没做。如果要加,确实需要消耗 Gas ,因为每一次状态改变都是一次链上交易。
    FlashEcho
        5
    FlashEcho  
       22 小时 22 分钟前   ❤️ 1
    确实在 demo 网站上看不到内容,console 里也没有报错或者别的输出,network 里没看到 fetch 请求
    kran
        6
    kran  
       21 小时 22 分钟前 via iPhone   ❤️ 1
    挺好,getlogs 这样调不知道会不会触发限制,取评论也可以走批量查询,真正运营可能需要后端缓存+链上存储
    doraemonki
        7
    doraemonki  
       20 小时 6 分钟前   ❤️ 1
    还是不太理想。
    - UUPS 意味着合约可以被管理员篡改升级,一点也不去中心化
    - blob 数据大约 18 天 之后就被修剪了,不可能永久存储

    其实不需要永久存储,我个人觉得比较理想的状态是不被篡改是可验证的,然后访问数据还是中心服务器体验会很好,如果重要的数据可以选择自己存。或者论坛真的做大了,你不存别人也会帮你存一份,你被打击了,换一个数据供应商可以立马复活。所以重点是不被篡改。
    NewYear
        8
    NewYear  
       12 小时 6 分钟前   ❤️ 1
    钓鱼要打窝的,你说“路人无需钱包、无需登录即可围观所有内容”

    好吧我是路人,实际上啥资料也看不到。

    能不能你自己先花点钱,搞一些“帖子”,让我们看看整体效果啊,空荡荡的,啥也看不出来。

    你自己都不做引导,用户真的是盲人一样搞不清。

    你问问 ai 是不是这个理
    zhcnxyz
        9
    zhcnxyz  
       11 小时 27 分钟前   ❤️ 1
    关注
    NomadsWiki
        10
    NomadsWiki  
       9 小时 38 分钟前   ❤️ 1
    神仙也删不掉,打广告的怎么办?
    andrew2558
        11
    andrew2558  
       9 小时 24 分钟前   ❤️ 1
    这个有个最大的问题,就是广告,键政等信息怎么处理?
    hymxm
        12
    hymxm  
       8 小时 14 分钟前   ❤️ 1
    如果有人键政 有关部门会不会顺着楼主的微信公众号二维码找到楼主....
    freekindom
        13
    freekindom  
    OP
       7 小时 17 分钟前
    @FlashEcho 终于复现了!如果浏览器没有安装 metamask ,但安装了 phantom ,就会出现这样的情况。让我想想修复办法。感谢反馈。
    sillydaddy
        14
    sillydaddy  
       6 小时 35 分钟前   ❤️ 1
    我理解的上链导致的 spam 问题很好解决啊,上链是没错,但是总得有一个客户端来整合这些信息啊。那防 spam 就是客户端做的事。
    举例来说,假如某天 Livid 将 v 站所有的数据都上链了,包括他删除的那些 spam 帖子,也包括那些平时上不了首页的水帖,现在的问题是,这些东西都在链上,又如何呢?无论是谁,都可以从链上拿到数据(区块链可以设置读取需要成本),这个人如果想要构造一个 v 站的客户端,那他就要考虑是不是把 spam 屏蔽掉!不屏蔽就会流失用户。多个人开发的客户端,可能各有侧重,虽然它们都是基于同一套底层的链上数据。
    是我把问题想简单了吗?
    freekindom
        15
    freekindom  
    OP
       2 小时 41 分钟前
    @FlashEcho 再次感谢你的提示。现在已经修复,请看 append 内容。( Phantom 钱包的兼容性问题。Phantom 钱包对 RPC 查询有 1 万区块的限制,导致历史数据拉取失败。)
    freekindom
        16
    freekindom  
    OP
       2 小时 41 分钟前
    @kran 是的,已经更新机制:用 GitHub Actions 每半小时拉取一次链上数据生成缓存,前端优先读缓存。这样无论用户用什么钱包(或者不用钱包)都能看到完整内容,钱包用户还能同时看到最新的实时数据。
    freekindom
        17
    freekindom  
    OP
       2 小时 11 分钟前
    @NewYear
    你说得太对了!"钓鱼要打窝"这个比喻非常精准。

    **实际上现在已经有 3 个帖子了**:
    1. 我自己发的创世贴
    2. 朋友的测试帖子
    3. 一个陌生人发的广告(哈哈,真实世界的 Spam 来得真快)

    之前很多人反馈"看不到帖子",我们发现是 Phantom 钱包的兼容性问题,已经修复。

    既然你作为路人用户关心这个产品,能不能请你再访问一次 demo 网站 https://chain-talk.netlify.app/

    如果你能看到帖子,说明我们的修复成功了!这种情况下我会再发个帖子聊聊这次技术修复的过程,也算是给产品留个纪念。
    如果你还是看不到,那正好,你的浏览器和钱包情况能帮我们发现新的兼容性问题,这种反馈对我们特别重要。
    你对这种刚起步的产品特别宝贵。很多人看不到效果就走了,像你这样愿意说出来的反而能帮我们真正解决问题。
    无论测试结果如何,都谢谢你的反馈!
    iamdaniel
        18
    iamdaniel  
       35 分钟前
    @freekindom 今天可以看到有 3 个贴子了。
    关于   ·   帮助文档   ·   自助推广系统   ·   博客   ·   API   ·   FAQ   ·   Solana   ·   3378 人在线   最高记录 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 24ms · UTC 10:59 · PVG 18:59 · LAX 02:59 · JFK 05:59
    ♥ Do have faith in what you're doing.