本页是英文版教程的简明中文版,内容与英文版一致(2026-10-22)。完整内容见 English。
不需要任何人的 API 密钥。Farcaster 或 Hypersnap,由你选择,两者平等。
Fatline 是一个开放协议,让你按自己的方式使用 Farcaster:网络由你选,节点由你选,客户端总会写明它从哪个节点读取;客户端还可以用一个 USDC 金库支付自己的服务器。本仓库是它的第一个实现。原名 Infinicaster。
开始之前
~/.hetzner-token(chmod 600)。git clone https://github.com/jpfraneto/fatline && cd fatline
./fatline compute # (0) 租一台能装下节点的机器:先报价,你输入 "create" 才会创建
./fatline node farcaster # (1) 在上面装你的读取节点,不需要 API 密钥(或:node hypersnap)
./fatline client # (2) 你的客户端,从你的节点读取,在 http://localhost:8787
尚未完整测试 每一步都单独运行过。从零开始、一口气跑完三条命令的完整流程还没有做过。我们自己的节点是用更早的一步式版本搭建的。
放不下一个节点?./fatline follow 只从你选的一个节点复制你选的账户。它不是节点。
./fatline compute --quote # 只看价格,不创建任何东西
./fatline compute # 要求你输入 "create"
它会选有货的、内存至少 16 GB 的最便宜机型(2026-10-22 是 cax31,8 个 ARM CPU),加一个 700 GB 的卷,先显示价格再询问。它只负责租机器,第 1 步再装节点。创建的一切都记录在 .fatline/hetzner.json,可以精确删除。
已经有一台装了 Docker、16 GB 内存、约 700 GB 空闲磁盘的机器?跳过这一步,在那台机器上用 ./fatline node farcaster --local。
./fatline node farcaster # 或:./fatline node hypersnap
它在第 0 步的机器上安装该网络的节点,并跟踪初始快照的传输(约 400 GB,大约 1 到 3 小时)。节点在 /v1/info 上应答后,就会成为 fatline.config.json 里你自己的节点,第 2 步就从它读取。一台服务器只放一个网络。
初始快照:新节点从网络快照开始,而不是重放多年的区块。在租来的服务器上,快照被流式写入磁盘,三个分片同时进行:压缩后约 400 GB,分成 5,695 段下载,解压后约 600 GB。磁盘上只保留一份。节点默认只保留一天的区块。
我们的两个节点(2026-10-22 测量):快照完成后,节点在仍落后 7 万到 10 万个区块时就开始应答,追赶速度约每分钟 270 个区块。Farcaster:06:42 UTC 开始应答,12:25 UTC 完全同步,用时 5 小时 43 分。之后重启服务器:47 秒后重新应答,62 秒后恢复同步。Hypersnap:10:21 UTC 开始应答,随后停滞了五个半小时:Hypersnap 仓库中的验证者列表缺少 Farcaster 于 2026-10-22 生效的验证者变更(issue #41)。我们的安装脚本现在改用 Snapchain 的列表,节点已恢复追赶。完全同步所需时间:尚未测量。
为什么没有轻节点。轻节点会从另一个节点复制当前状态,而不是从快照开始。目前 Snapchain 和 Hypersnap 的复制器都拒绝添加和移除应用密钥的消息,所以副本无法跟踪哪些密钥属于哪个账户。而且完整副本仍有约 300–400 GB。如果太大,请看只复制你关注的账户。
健康意味着同步,而不只是"在运行"。节点健康的标准是 /v1/info 显示每个分片的 blockDelay 都很小。端口开着不算。
./fatline client
它会安装、构建并在 http://localhost:8787 启动客户端。页面顶部总会写明正在从哪个节点读取。在设置里选择网络和节点:
./fatline follow 18350 @dwr --network farcaster --node crackle --once
./fatline follow 18350 --following --network hypersnap --node haatz # 持续跟随;Ctrl+C 停止,再次运行会接着继续
./fatline follow list
它从你选的一个节点(Farcaster 或 Hypersnap,你自己的或公共的)复制你指定的账户(加 --following 时,还包括他们关注的所有人)到客户端的存档里。在客户端打开 #/archive/<fid> 即可阅读。只读取这一个节点,绝不切换。
| 2026-10-22 测量,空存档 | 消息数 | 耗时 |
|---|---|---|
Farcaster,crackle:18350 加 --following(共 8 个账户) | 127,333 | 125 秒 |
| Farcaster,我们的节点(仍在追赶):18350 和 @dwr | 4,824 + 104,545 | 293 秒 |
| Hypersnap,haatz:18350 和 @dwr | 4,824 + 104,545 | 46 秒 |
| Hypersnap,我们的节点(仍在追赶):18350 和 @dwr | 4,824 + 104,545 | 163 秒 |
./fatline identity --fid <你的 FID> --dry-run # 检查一切,不注册
./fatline identity --fid <你的 FID> # 注册本客户端的密钥
在你自己的终端运行。助记词在隐藏输入框中输入,密钥注册后立即遗忘,从不保存。不需要交易,不需要 gas。这个密钥只能发帖、互动、关注和修改资料。
状态:已在模拟节点上测试,crackle 接受了消息格式。尚未用真实账户测试
| 项目 | 价格(Hetzner,2026-10-22 查询) |
|---|---|
服务器 cax31(8 个 ARM CPU,16 GB 内存)加 700 GB 卷 | 每天约 2.75 美元 |
| 第二个节点(另一个网络),独立服务器和卷 | 大约同样多 |
./fatline compute hetzner down # 删除服务器和卷,停止计费
我们所说的 fatline,是一条两端都握在你手里的线:一端是你的密钥在签名,另一端是你自己的节点在倾听,中间没有人把这条线租给你、再把它收回。让一条线保持畅通需要花钱,所以这条线自带钱袋:客户端可以从 Base 上的 USDC 金库支付自己的服务器。这个词来自 Dan Simmons 的小说《海伯利安》(Hyperion),但它在这里的含义是我们自己的。
金库部分只在 Base 的本地副本上用假钱测试过。尚未用真钱测试,合约尚未部署到 Base,也没有外部审计。
| 部分 | 状态 |
|---|---|
| 通过公共节点读取 Farcaster 和 Hypersnap | 可用 |
| 选择节点;节点宕机时给出明确错误 | 可用 |
| 按应用显示或隐藏 cast | 可用(真实数据:20 条中 20 条识别出应用) |
| 三条命令从零开始完整跑通 | 未测试 |
| 我们自己的节点应答,同步前标为"落后" | 可用,两个网络,2026-10-22 |
| 读取节点完全同步 | 可用,Farcaster:应答后 5 小时 43 分完成同步,重启后 62 秒恢复同步。Hypersnap:仍在追赶 |
只复制选定账户(follow,不是节点) | 可用,真实节点,两个网络 |
| 复制型(轻)节点 | 目前不可行:两个网络的复制器都拒绝密钥消息 |
| 用真实账户注册密钥并发帖 | 未测试 |
| 一位新用户从零照着本页完成 | 还没有;会是你吗? |