Public NEAR RPC at near.blackbeard.observer, throttled, hosting networks refused #29

Closed
opened 2026-10-03 09:31:11 +00:00 by grenade · 0 comments
Owner

Why

The NEAR RPC node set up for #27 (neard 2.13.4 on frankie, tracking intents.near's shard) is reachable only on the mesh, as https://near.internal on the hanzalova proxy. It should also have a public name, alongside the <chain>.blackbeard.observer node endpoints that already exist for Quantus and Planck.

What

  • near.blackbeard.observer on the oolon edge, through the existing script/infra-setup.sh --role nodes path: a Cloudflare CNAME to the site indirection, a Let's Encrypt cert via DNS-01 with the Cloudflare credentials on oolon, and the vhost.
  • Upstream is https://near.internal, not frankie directly. The node moves to new hardware next week, and this way the move changes one internal vhost rather than two vhosts and a firewall. It also leaves frankie's firewall admitting only the hanzalova proxy and bob.
  • Throttling, tighter than the Quantus endpoint's, because the node is weak and the observer's own indexer shares it:
    • per client: near_rpc at 5 r/s, burst 20, and 8 concurrent connections, answering 429
    • a global ceiling across all clients, so many addresses together cannot starve the indexer (which reads via near.internal and is not subject to the public limits)
    • JSON-RPC only: POST /, plus GET /status and /health; small bodies; no WebSocket, since NEAR RPC has none
  • Refuse Hetzner and OVH hosting networks with the same $blackbeard_denied geo list the site vhost uses (#24), and give it its own JSON access log in the blackbeard_json format.

Not this

  • It does not fix the node's sync. State sync needs peers to connect back on TCP 24567 (P2P), which is a separate decision about the office WAN. Until then the public name serves a node that reports syncing: true.
  • Nothing about the intents.near-only tracking changes. Queries about accounts on other shards will fail on this node, publicly as they do privately.
## Why The NEAR RPC node set up for #27 (neard 2.13.4 on frankie, tracking `intents.near`'s shard) is reachable only on the mesh, as `https://near.internal` on the hanzalova proxy. It should also have a public name, alongside the `<chain>.blackbeard.observer` node endpoints that already exist for Quantus and Planck. ## What - `near.blackbeard.observer` on the oolon edge, through the existing `script/infra-setup.sh --role nodes` path: a Cloudflare CNAME to the site indirection, a Let's Encrypt cert via DNS-01 with the Cloudflare credentials on oolon, and the vhost. - **Upstream is `https://near.internal`, not frankie directly.** The node moves to new hardware next week, and this way the move changes one internal vhost rather than two vhosts and a firewall. It also leaves frankie's firewall admitting only the hanzalova proxy and bob. - **Throttling, tighter than the Quantus endpoint's**, because the node is weak and the observer's own indexer shares it: - per client: `near_rpc` at 5 r/s, burst 20, and 8 concurrent connections, answering 429 - a **global ceiling** across all clients, so many addresses together cannot starve the indexer (which reads via `near.internal` and is not subject to the public limits) - JSON-RPC only: `POST /`, plus `GET /status` and `/health`; small bodies; no WebSocket, since NEAR RPC has none - **Refuse Hetzner and OVH hosting networks** with the same `$blackbeard_denied` geo list the site vhost uses (#24), and give it its own JSON access log in the `blackbeard_json` format. ## Not this - **It does not fix the node's sync.** State sync needs peers to connect back on TCP 24567 (P2P), which is a separate decision about the office WAN. Until then the public name serves a node that reports `syncing: true`. - Nothing about the `intents.near`-only tracking changes. Queries about accounts on other shards will fail on this node, publicly as they do privately.
Sign in to join this conversation.
No labels
1 Participants
Notifications
Due Date
No due date set.
Dependencies

No dependencies set.

Reference: blackbeard/observer#29