Skip to content

feat(nip77): advertise NIP-77 in NIP-11 and expose its settings in the admin console #819

Open

Description

@Priyanshubhartistm

Is your feature request related to a problem? Please describe.
Relays can now answer NIP-77 sync requests when nip77.enabled is set (#817/#818), but nothing tells clients so. NIP-11 supported_nips does not list 77, so a client or another relay has to open a NEG-OPEN and read the error to find out whether the relay supports negentropy. The nip77 settings can also only be changed by editing the settings file, unlike nip45, nip50 and nip56, which are available in the admin console.

Describe the solution you'd like

  • Advertise 77 in the NIP-11 supported_nips only while NIP-77 is actually active (nip77.enabled is true and eventStore.backend is postgres), the same way 43 is only listed when NIP-43 is enabled. A relay that has it switched off, or that serves another backend, must not claim to support it.
  • Add the nip77 settings (enabled, maxEventsPerSession, maxSessionsPerConnection, sessionIdleTimeoutMs) to the admin console's guided settings, with validation matching validateSettings (positive integers).
  • Tests for the NIP-11 output with the feature on, off, and with a different backend, and for the new guided settings entries.
  • A final pass over the NIP-77 section of CONFIGURATION.md so it matches the shipped behaviour.

Additional context

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Metadata

Metadata

Labels

enhancementNew feature or request

Projects

No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions