- commit
- b534808e0097592d2fab57cd0043c9d5a52cda65
- parent
- be839a15e7418313db06e77b673a4370996b68ec
- author
- Dami <dami.etoile@gmail.com>
| M | docs/ | 2 | ++ |
| M | docs/ | 6 | ++++-- |
| M | docs/ | 4 | +++- |
| M | docs/ | 2 | +- |
@@ -74,6 +74,8 @@ Your relay is also a NIP-29 group, one group per relay, so clients that understa
7474 7575 Members can have a name at your relay, such as `alice@<name>.bind.ws`. Set it on the People tab, or a member sets it in their profile's NIP-05 field. Clients show the name next to the person.7676 77+The relay has a profile of its own, made from the name, description and icon on the Identity tab, so it appears like a person where clients show relays.78+7779 ## Media7880 7981 Your relay stores images and files too. Clients that support Blossom upload to `https://<name>.bind.ws` and get a link by hash. A client can ask first whether an upload would be accepted, and can have the relay copy a file from another server by URL instead of uploading it again. Set the maximum upload size on the Rules tab.@@ -47,9 +47,11 @@ The per-address limit is what stops a client from opening many sockets to multip
4747 4848 ## Identity4949 50-Name, description, icon and contact appear in your relay's public information document, which clients read.50+Name, description, icon and contact appear in your relay's public information document, which clients read. The relay also keeps a profile of its own, signed with its own key, made from the name, description and icon, so it shows up like a person in clients that look one up.5151 52-Join terms are shown to people who open an invite link. The public directory switch decides whether `/people` lists your members to visitors.52+Banner is a wide image for the same document. Posting policy and privacy policy are links to pages you host elsewhere; both must be https. Tags, languages and countries are short lists that tell relay directories what the relay is about: topic words, language codes such as `en` or `pt-BR`, and two-letter country codes.53+54+Join terms are shown to people who open an invite link, and published at `/terms` as the relay's terms of service. The public directory switch decides whether `/people` lists your members to visitors.5355 5456 **Export configuration** downloads rules, identity, members, bans, kind rules and retention as one file. **Import** replaces those lists on any relay you own. Events, files and the owner are never touched.5557 @@ -59,7 +59,9 @@ Credits come from NIP-57 receipts. A receipt is validated (provider signature, s
5959 6060 ## Identity6161 62-On claim, the object generates a keypair, advertised as `self` in NIP-11. It signs the member roster (kind 13534) and its deltas (8000, 8001), all NIP-70 protected, with strictly increasing timestamps.62+On claim, the object generates a keypair, advertised as `self` in NIP-11. Everything the relay vouches for is signed with it and derived from one place, the `members` table and the policy, by one function, `publishMembership`: the NIP-43 roster (13534, roles named only when there is one) and its deltas (8000, 8001), the NIP-29 put-user and remove-user records (9000, 9001), the group's state (39000-39003), the NIP-43 role definitions (33534) and the relay's own kind 0 profile, re-signed only when name, description or icon changed. Every path that touches membership or roles goes through that function, so the roster and the group cannot drift. All but the profile are NIP-70 protected, with strictly increasing timestamps.63+64+NIP-43's own join and leave requests (28934 with a `claim` tag, 28936) are handled next to their NIP-29 counterparts; they are ephemeral, so the answer is the OK message and nothing is stored.6365 6466 ## Groups and roles6567 @@ -31,7 +31,7 @@ src/
3131 landing.ts the apex, rendered from config3232 ui.ts the shared look3333 test/34- relay.test.ts fuel.test.ts adopt.test.ts lease.test.ts groups.test.ts Durable Object tests in workerd34+ relay.test.ts fuel.test.ts adopt.test.ts lease.test.ts groups.test.ts nip11.test.ts nip43.test.ts Durable Object tests in workerd3535 conformance/ black-box suite for any relay URL3636 scripts/3737 dev-signer.mjs seed.mjs junk.mjs zaptest.mjs shot.mjs