nostr-relay-proxy

command module
v0.2.0 Latest Latest
Warning

This package is not in the latest version of its module.

Go to latest
Published: Feb 10, 2024 License: AGPL-3.0 Imports: 15 Imported by: 0

README

nostr-relay-proxy

⚠️ WARNING: Experimental software. Use at your own risk.

A fan-in / fan-out nostr relay proxy. Instead of connecting your nostr client to many relays, connect it to a single nostr relay proxy and enjoy:

  • Efficient bandwidth usage: events are deduplicated before being sent to the client.
  • Increased performance: offloading deduplication in addition to event caching optimizes query performance.
  • Client IP obfuscation: upstream relays only see the IP of the nostr relay proxy, not the client.

Features

Authentication

Access to your nostr relay proxy may be restricted to a whitelist of allowed users. There are two layers of authentication employed to restrict access:

  1. Public key allowlist: A list of allowed_npubs in the config file restricts reads and writes to whitelisted users.
  2. NIP-42: Queries are restricted to authenticated clients only.
Local database

Events from upstream relays are stored locally on disk in a LMDB. As queries are received, the proxy will check its local database first and return matching events if found. This read-through style cache dramatically speeds up query responses.

Quickstart

  1. Build the source code
make build
  1. Create a config file
cp example.config.yaml config.yaml
  1. Run the nostr-relay-proxy
./bin/nostr-relay-proxy -config ./path/to/config.yaml

Documentation

The Go Gopher

There is no documentation for this package.

Jump to

Keyboard shortcuts

? : This menu
/ : Search site
f or F : Jump to
y or Y : Canonical URL