fiddy.fun English

你自己的 Farcaster 客户端。
你自己的节点。三条命令。

不需要任何人的 API key。机器由你提供;Snapchain 读节点同步全网数据; Fiddy 客户端通过它读、也通过它写。然后是别家客户端都没有的那一段——孵化一个属于你自己的 Hermes agent,24 小时替你干活。

0 fiddy provision --gcp把机器开出来(推荐,已实测)——或用下方的 Cloud Shell 一键按钮;--ssh you@server 接上你手上任何一台服务器
1 fiddy node up在上面安装并同步一个 Snapchain 读节点
2 fiddy client up启动指向你自己节点的 Fiddy 客户端

拿到 CLI:git clone https://github.com/ivcained/fiddy && cd fiddy —— bin/fiddy 这个脚本就是整个工具。完整教程在下面。

动手之前

Farcaster 到底是怎么拼起来的

Farcaster 是混合架构:身份在链上(OP Mainnet),数据在链下。 只有当安全性和一致性真正关键时才上链——创建账号、支付存储租金、注册密钥。所有社交内容—— cast、关注、点赞、头像——都是链下消息,由链上已知的一把密钥签名。

组件它是什么
FID你的账号编号,在链上铸给你的托管地址。你在链下做的每一件事都引用它。
托管地址拥有你 FID 的那把以太坊密钥。主密钥。它授权其他所有东西,但日常完全不露面。
应用密钥(signer)一把 ed25519 密钥,客户端用它替你的 FID 签名消息。由你的托管地址授权,可随时吊销。"登录某个客户端"在底层说的就是这件事。
Snapchain存放全部用户数据的点对点网络。验证者节点提议区块;读节点跟随、存储,并把 API 提供出去。
存储租金一笔很小的链上付款,为你的 FID 买下写数据的权利。没有租金,就没有写入。(如果你用过 Farcaster,你的账号已经有存储。)
命令 0

0fiddy provision

读节点需要一台服务器:4 vCPU、16 GB 内存、1.5–2 TB 可用磁盘,Ubuntu 22.04+。 Snapchain 主网的快照大约 200 GB,那是压缩包的大小——解压后要占掉好几倍的盘,所以按 1.5–2 TB 规划,不要按 200 GB。AWS 上这套规格的目录价约 $285/月 (实例约 $121 + 2 TB gp3 约 $164);任何同等规格的 VPS 都能用,而且便宜得多—— 2 TB 的 Hetzner / Contabo / OVH 这一档通常 $50–80/月。

# 脚本化的 AWS 路径(需要先配好 aws CLI):
fiddy provision --aws

# 或者任何你已有的服务器:
fiddy provision --ssh ubuntu@203.0.113.10

AWS 路径会创建一台 4 vCPU / 16 GB、带一块满足读节点存储需求的 gp3 磁盘的实例, 预装 Docker,生成一对 SSH 密钥放进 ~/.fiddy/,并把安全组收紧:SSH 和节点 API 只对你的 IP 开放;gossip 端口对全网保持开放(你的节点就是靠它们和同伴对话的)。 两条路径都会把目标写进 ~/.fiddy/config。

命令 1

1fiddy node up

这一步在你的服务器上安装 Docker 和官方 Snapchain 启动脚本,然后开始同步。 从现在起你在运行一个读节点:它跟随链、保存完整状态,并把 HTTP (:3381)和 gRPC(:3383)API 提供出去。 任何人都可以跑一个。不需要许可,不需要 API key。

fiddy node up      # 安装、启动、等 API 开始应答
fiddy node status  # 同步进度
fiddy node logs    # 跟进节点日志
fiddy node dashboard # 通过 SSH 隧道打开 Grafana 面板(同步高度、节点连接、分片)→ localhost:3000
读节点与验证者节点——以及你的 cast 去了哪里

验证者节点提议区块并对区块投票;只有验证者集合里的密钥能这么做。读节点做其他所有事情——包括接收写入。

当你把消息 submitMessage 交给自己的读节点时,它会校验这条消息,并把它 gossip 给验证者节点——读节点自己没有内存池(mempool)。成功应答的含义是"合法、已接收待转发", 不是"已进区块"。要确认真的上链,盯一个 MERGE_MESSAGE 事件,或者把这条消息查回来。 网络拥挤时,被 gossip 出去的消息可能丢掉、需要重发;客户端也能退回到直接向验证者节点端点提交, 这个教程会在真正要紧的地方把两种选择的取舍讲清楚。

完整同步要几个小时;API 会立刻应答,然后在后台把历史追平。

命令 2

2fiddy client up

启动 Fiddy 网页客户端,读和写都指向你自己的节点。如果你的节点 API 被锁在你的 IP 上 (AWS 路径的默认行为),加上 --tunnel,CLI 会为这次会话开一条 SSH 隧道。

fiddy client up --tunnel

登录 = 给客户端它自己的一把密钥。导入一个 已经有存储的账号的助记词。客户端推导出你的托管地址,并且只用它一次——签一条免 gas 的 KEY_ADD 消息,为客户端注册一把全新的 ed25519 应用密钥。不需要 Optimism 交易, 不需要 ETH,几秒确认。此后托管密钥就一直闲置,日常的 cast、关注、点赞都由应用密钥签名—— 权限有范围、有条数上限,而且随时能在界面上用 KEY_REMOVE 吊销。

助记词:威力等同 rm -rf,请同样对待

助记词就是你的托管地址,也就是你的 FID。任何拿到它的人都拥有这个账号。跟着本教程操作时, 只用测试账号。原则上,助记词只该粘贴进你信任的开发者写的、本地运行、源码公开的软件—— 这个仓库是 MIT,助记词从不离开你的浏览器,但这一点请你自己去核实;开源的意义正在于此。 只要条件允许,优先选择委托签名授权(在一个已经登录的客户端里批准一把应用密钥), 而不是导入助记词。

到这里客户端就完全是你的了:从你自己的节点读信息流、发 cast、关注、点赞, 并在视图设置里决定收不收其他客户端的 cast。

别家客户端都没有的那一段

孵化你的 Fiddy agent

在客户端里点一下,就会在 Agent37 云上为你开一个专属 Hermes 实例—— 不是聊天机器人,而是一个有自己电脑、24 小时醒着的真 agent。它住在你的客户端里,在那儿和你对话, 并运行定时任务:"每天早上看看谁提到了我"、"起草我这周的复盘 cast"。

通过 Hermes,你的 Fiddy 能触达你用到的每一个渠道——每一个都要你明确批准:

FarcasteriMessageDiscord TelegramWhatsAppEmailWeb & API

你的 agent 在 Farcaster 上用自己的 FID 和它自己的免 gas 应用密钥行动—— 一眼看得出是 agent 的口吻,你随时可以吊销。它读的也是你刚立起来的那同一台节点: 整条链路端到端,看不见任何人的 API key。

速查

你一定会撞上的问题

问题答案
要花 ETH 吗?不要。自 Snapchain V16 起,应用密钥是免 gas 的 KEY_ADD 消息。你需要的是一个已经付过存储租金的账号——仅此而已。
我的节点能接收 cast 吗?能——读节点会校验写入并 gossip 给验证者节点。它自己没有内存池,所以高负载下写入可能丢;盯 MERGE_MESSAGE 或把消息查回来,必要时重发。
应用密钥能做什么?只能做你给它划定的那几类消息(cast、点赞、关注、用户资料)。密钥最迟 90 天滑动过期,每个 FID 最多 1000 把,用 KEY_REMOVE 即刻吊销。
托管密钥放在哪?在你的浏览器里,只为那次 EIP-712 的 KEY_ADD 授权用一次,然后闲置。从不外发,也从不存到服务器上。
我依赖了谁?依赖你的算力供应商保证机器在线,以及 Snapchain 验证者集合出块——和每个客户端依赖的是同一批人。读、写、身份工具全都在你自己手里。