Keyboard shortcuts

Press or to navigate between chapters

Press S or / to search in the book

Press ? to show this help

Press Esc to hide this help

Run a relay

Summary. Goblin’s payment messages ride ordinary Nostr relays, so any relay works. The Goblin default relay is a stock strfry with a small write policy that restricts stored event kinds to the handful Goblin needs. Running your own keeps your community’s traffic on infrastructure you control.

Motivation

A relay only needs to do one thing for Goblin: accept and serve the gift-wrapped payment events (and the profile / relay-list events that make delivery work). Restricting which kinds it stores keeps a payment relay lean and uninteresting to abuse; it isn’t a general-purpose social relay.

How it works

  • strfry, unmodified, plus a write-policy plugin that only admits the kinds Goblin uses: profiles (kind 0), contact/relay lists, gift wraps (kind 1059), and the relay-list kinds (10002 / 10050). Everything else is rejected, so the relay won’t fill with unrelated content.
  • Clients reach it over wss://, through the Nym mixnet: from the relay’s perspective connections arrive from mixnet exit IPs, which is why abuse controls are per-connection rather than naive per-IP.
  • It’s typically fronted by the same TLS reverse proxy as the name authority, with the websocket location proxied to strfry’s loopback port.

Deploying

The write-policy and a Compose/relay setup live under goblin-nip05d/deploy/strfry/. The fastest path is the bundled Docker Compose (relay + name authority + auto-HTTPS); to run strfry standalone, install it per its upstream docs and add the Goblin write-policy. Then advertise the relay in your wallet: Settings → Nostr Relays → add wss://relay.yourdomain → Save & reconnect.

Reference

References