Skip to content

Where the official Farcaster and Snapchain docs are out of date or wrong.

The official docs had these outdated or wrong statements when the pages were last read, on 2026-10-18. Code references are to Snapchain v0.14.3 (fc87f26). DOCS_ISSUES.md has, for each problem, the page, what it says, what the check found and how it was checked.

#PageIssue
1running-a-nodeFirewall image opens gossip 3382 on TCP; gossip is QUIC over UDP 3382
2running-a-node“Allow SSH from Anywhere”, redundant mkdir snapchain, manual Docker install the bootstrap already does
3Getting Started vs READMEDisk: 2 TB vs 1.5 TB. Measured: 557.86 GB DB, 699 GB peak with this guide’s space saver
4README“Ports 3381 - 3383 exposed on both TCP and UDP.”; compose publishes only 3381/tcp, 3382/udp, 3383/tcp
5HTTP APIPaging example uses reverse=1 (rejected); JS example uses the wrong page-token parameter
6HTTP API reference/v1/signersByFid and /v1/signer are missing; they return gasless keys and currentUserNonce
7(undocumented)requesterFids needs [] brackets over HTTP
8writing-messagesExample logs the private key
9writing-messagesSuggests 9 scopes and a 30-day TTL; fewer scopes and a shorter TTL are safer (suggestion)
12Getting StartedBootstrap needs a TTY and never returns; not documented
13managing-a-nodeFID 0 needs SKIP_CRONTAB=true (now fixed in the docs)
14managing-a-nodeGrafana 3000 published on all interfaces with admin:admin (mostly fixed)
16Getting StartedNo mention of provider quotas; Hetzner new accounts cap volumes at 1024 GB
17Getting StartedSnapshot restore keeps chunks + tar + DB until the end; explains the 1.5 to 2 TB figure but no doc says so
29writing-messagesImports from @farcaster/hub-web with gRPC hub-nodejs code (likely; snippet not run)
31severalLeftover “Hub”/“Hubble” wording; logo alt text copied from the firewall image
32CastscastsByParent never returns an empty nextPageToken: the last page carries [null,null] (base64), and sending it starts over (Recipes)
33HTTP APIOn endpoints that read every shard (castsByParent, reactionsByCast, linksByTargetFid), pageSize applies per shard: pageSize=2 returned 4 messages
34User datauser_data_type is ignored over HTTP; every field comes back
35Reactionsreaction_type takes Like/Recast; the enum names the responses use (REACTION_TYPE_LIKE) get HTTP 400
36(undocumented)A snapshot replaced during the restore makes the node crash on a 404, then run without that shard
#PageIssue
10Hello WorldAdds the app key onchain with ~$10 of OP ETH; gasless KEY_ADD replaced that on mainnet with V16 on 2026-05-07 (src/version/version.rs; the writing-messages guide was updated in docs PR #989)
11Architecture overviewLists adding keys as onchain-only; no validators vs read nodes
18Create an account keyOnchain KeyGateway only
19AccountsKeys “managed by the KeyRegistry”; links the deprecated onchain-signers endpoint
20Messages“Hub” wording; storage limits and price out of date
21Get account messagesUses apps/hubble, which no longer exists
22AppsDead Replicator link (now packages/shuttle)
23Signer RequestsDescribes onchain registration only (low confidence)
#PageIssue
15@farcaster/coreNeeds a Buffer polyfill in browsers; ships @faker-js/faker as a runtime dependency
24hub-monorepo READMEDescribes an /apps/ folder that does not exist
25hub-nodejs READMEHubble framing, dead doc links
26hub-nodejs Builders.mdDocuments removed makeSignerAdd; omits makeKeyAdd* builders
27hub-web READMEOld port 2281, broken axios example, dead link
28hello-world exampleOnchain signer; README names the wrong folder
30Neynar Snapchain mirrorStill teaches the onchain signer flow

Sources: SOURCES.md.

How this guide differs from the official one

Section titled “How this guide differs from the official one”
TopicOfficial guide (running-a-node, Getting Started)This guide
ServerSet up by hand in the AWS console, with screenshotsprovision.sh on Hetzner
Cost“Roughly $100/month”, an estimate$0.164 an hour and $2.31 until synced (one run, estimated from list prices)
Time to sync“A few hours”About 14 hours on cax31
Disk2 TB (docs), 1.5 TB (README)1000 GB worked with two helper scripts; node.sh now installs them (unit-tested only)
FirewallOpens 3382/tcp and SSH to everyone (Docs issues #1, #2)3382/udp; SSH only from SSH_SOURCE_CIDRS; 3381 and 3383 closed
Bootstrapcurl … | bash, needs a terminal, keeps running in front of youThe same official script, run by node.sh, which then waits for sync
API keysPoints to a paid API service for speedNone; the app reads from your node
App keyshello-world still adds keys onchain with about $10 of OP ETH (Docs issues #10)Gasless KEY_ADD (src/core/validations/key.rs, live since V16 per src/version/version.rs)
PostingOlder pages send messages to a hosted hubYour read node sends them on (submit_message_internal in src/network/server.rs, ReadNodeMempool in src/mempool/mempool.rs)
CleanupNot coveredteardown.sh (not yet run on real servers)