HomeFiber setup
Fiber setup for creators & members
Prefer numbered steps first? Open Help & docs — choose creators or members. This page is the longer reference.
This page is for you if you sell memberships on Backr or support someone who does. Backr never holds your CKB. Payments use the Fiber Network on Nervos. You run a Fiber Network Node (FNN), then paste its JSON-RPC base URL in your Backr settings. When you subscribe or a renewal runs, Backr's systems call that URL on your behalf—your browser does not send the Fiber payment itself.
What happens when someone pays
Each side uses their own node. In short:
- Creators — Backr asks your node to create the membership invoice (
new_invoice). - Members (supporters) — Backr asks your node to pay that invoice (
send_payment).
You need a running node (home server, VPS, etc.), funded wallets, and open channels so the payment can find a route—similar to other channel networks. Official walkthroughs: Run a Fiber Node, Basic transfer, Connect public nodes (testnet).
Before memberships work
Backr only calls your saved URL to create or pay invoices. It does not open channels or pick peers for you— you set that up on your node. Follow these steps so checkout and renewals succeed (see also the Fiber README and RPC reference on GitHub):
- Same network for you and your audience. Creators and members must all use the same Fiber environment (e.g. everyone on testnet, or everyone on mainnet). If one person is on testnet and another on mainnet, payments will not work.
- Trusted CKB RPC in config. In your
config.yml, setrpc_urlto a CKB JSON-RPC endpoint you trust (see Nervos public RPC list). FNN needs this for chain sync and on-chain funding flows. - Prove a manual Fiber payment first. Follow the official Basic transfer (includes connect peers and open channel) until a payment succeeds outside Backr. If that fails, Backr cannot fix it—you need routing, liquidity, or peers adjusted (see public relay topology on GitHub for how local nodes use relays on mainnet/testnet).
- Use a URL this website can reach. After you set up HTTPS (or a VPN both you and this site share), test
node_infoagainst the exact base URL you will paste—ideally from another device or network. A URL that only works on your own computer (like127.0.0.1) will not work for most people, because Backr's servers are not on your laptop. - Liquidity direction and headroom. Creators need enough inbound for the full tier price. Supporters need enough outbound for the payment plus routing fees. Channel balances reserve on-chain CKB for closes (see channel capacity notes in the Fiber repo)—size channels larger than the subscription amount alone.
- Members: two payments in a row when a platform fee applies. Some communities charge a small platform contribution on top of the creator's price. When that is enabled, your node sends two payments when you subscribe—first to the creator, then the contribution. Leave enough balance and channel capacity for both, and keep your node online.
- Wait after opening channels. If you see routing errors immediately after
open_channel, wait for graph gossip to catch up before testing Backr (Fiber documents this pattern). - Keep your node running for renewals. Memberships try to renew on a regular schedule. If your node is off or unreachable, that renewal may fail until you are back online with working channels.
- Plan FNN upgrades carefully. The Fiber project warns that protocol and storage can change between releases—often you should close channels or migrate before upgrading
fnn. Read Compatibility / upgrade notes on GitHub before replacing binaries on a funded node.
2. Install and run FNN
Follow Run a Fiber Node. Typical path:
- Download
fnn,fnn-cli, andfnn-migratefrom GitHub Releases (match your OS/arch, e.g.fnn_v0.8.0-x86_64-linux-portable.tar.gzon many VPS), or build from the fiber repo. - Copy
config/testnet/config.yml(or mainnet when you operate there) into your node directory. - Start with a strong password in
FIBER_SECRET_KEY_PASSWORD:
FIBER_SECRET_KEY_PASSWORD='your-strong-password' RUST_LOG=info ./fnn -c /path/to/config.yml -d /path/to/data-dir
Quick health check (local RPC):
curl -s -X POST -H "Content-Type: application/json" \
-d '{"jsonrpc":"2.0","id":1,"method":"node_info","params":[]}' \
http://127.0.0.1:8227/For production, run FNN under systemd so it survives reboots. Default RPC in docs is often http://127.0.0.1:8227 — keep it local and put nginx/Caddy + TLS in front for the public URL you paste into Backr.
Proxy tip: if fnn-cli or curl fails with 503 locally, try export NO_PROXY=127.0.0.1,localhost.
3. Keys and the -d data directory
Export a CKB private key with ckb-cli per the official guide. FNN expects ckb/key inside the data directory you pass to -d (e.g. /var/lib/fnn/ckb/key), not only next to the binary. The file must be one line: 64 hex characters, no 0x prefix.
# Example: after export, copy first line only into ckb/key under your -d tree mkdir -p /var/lib/fnn/ckb head -n 1 ./exported-key > /var/lib/fnn/ckb/key chmod 600 /var/lib/fnn/ckb/key
Fund the corresponding testnet address (faucet in Fiber docs), then proceed to peers and channels.
4. Peers, channels, and liquidity
Invoices and send_payment only work when your node has a viable path on the channel graph. Use:
- Basic transfer — connect peers, open a channel, pay an invoice (single official walkthrough; there are no separate peer/channel pages)
- Testnet bootstrap: Connect public nodes
- Stablecoins on testnet: Transfer stablecoins
- Creators need enough inbound capacity so supporters can pay your invoices.
- Supporters need outbound capacity so your node can honor
send_paymentwhen Backr triggers checkout or renewal.
If you see routing errors right after opening a channel, wait for gossip to catch up (Fiber docs note this for Failed to build route).
Mainnet relay pubkeys and multi-hop examples live in the Fiber repo: Public nodes user manual.
5. Expose JSON-RPC so Backr can call your node
Backr sends JSON-RPC to the base URL you save—just the origin, no path after the host (example: https://fiber.example.com).
Typical setup: run the node on a VPS or home server, keep the Fiber RPC port bound to localhost, and put nginx or Caddy in front with HTTPS. Point your domain at that proxy, which forwards to 127.0.0.1:8227. Use a firewall and tight access rules where you can—this endpoint can move funds.
Reachability: this site needs to reach your URL from the internet, unless you use a private network (for example Tailscale) that both you and this Backr instance share. If you are not sure, ask whoever runs this community.
Technical method list: Fiber RPC README.
6. Creators — checklist
- Run FNN with funded wallet and testnet/mainnet config you intend to use.
- Connect peers and open channels; confirm you can receive (inbound liquidity).
- Expose a stable HTTPS URL (or a shared private network URL) that this site can call.
- In Backr, open Creator → Settings → Basic and paste Your Fiber node JSON-RPC URL. Without it, supporters cannot complete checkout for your tiers.
- Run
node_infoagainst the same URL you will paste (see "Before memberships work" above). - Create tiers and test a small subscription with a second account that has its own FNN.
7. Supporters — checklist
- Run your own FNN (or one you fully control) with keys and data dir set correctly.
- Fund the wallet; connect peers; open channels with outbound capacity for payments.
- Expose RPC the same way as creators (HTTPS + reverse proxy is typical).
- In Backr, open Dashboard → Settings → Basic and save Your Fiber node JSON-RPC URL. Each member needs their own node and URL so payments come from their wallet.
- If this community uses a platform contribution on top of the creator price, expect two payments from your node when you subscribe—keep extra outbound capacity.
- Visit a creator, choose a tier, and use Support — your node will execute send_payment.
8. What happens on subscribe and renewal
First checkout: Backr (server) asks the creator's FNN for a tier invoice via new_invoice, then asks your FNN to send_payment. Your browser only triggers the request; it does not sign Fiber calls.
If the node returns Created or Inflight, Backr keeps checking until the payment finishes successfully or fails (or until a time limit is reached).
Renewals: Backr tries to charge again on a regular schedule (often about once per day). Keep your node online, your URL saved in settings, and enough liquidity—otherwise a renewal may fail until you fix it.
9. Keep your node URL safe
Anyone who can call your JSON-RPC URL can ask your node to move funds. Use HTTPS, lock down who can reach the port (firewall, VPN, or allowlist), and do not share the URL in public places. Backr stores only the URL you enter and uses it to complete memberships you start or renewals you are due for—same idea as section 5.
If payments fail with routing errors and you rely on private or unusual channel setups, Fiber's docs discuss routing hints— your node logs and the RPC README are the place to dig in.
10. Troubleshooting
- Creator not set up / payment failed — ensure the creator saved a reachable URL and FNN is running; check nginx/TLS and firewall.
- Supporter must add Fiber URL — save the URL in Dashboard → Basic; verify
node_infovia curl from another machine hits your public URL. - Route / payment errors — wait for the channel graph to catch up; confirm your channel is ready; check balances and peers (Fiber docs). Unusual private paths may need routing hints—see the RPC README.
- Checkout hangs then errors — the network may still be catching up; retry after a few minutes. If it keeps failing, check liquidity and that your URL is reachable from the internet (or your shared VPN).
- Wrong key path — key file must live under the same
-ddirectory asckb/key, be a single hex line, and match the password you set for FNN.