💾 Archived View for goodclover.xyz › texts › WIP › subspace-delagation-system.gmi captured on 2021-12-04 at 18:04:22. Gemini links have been rewritten to link to archived content
⬅️ Previous capture (2021-12-03)
-=-=-=-=-=-=-
This is a combination of a draft spec and idea-sharing document.
The DNS is complicated, paywalled, and centrally controlled.
For a while I've wished there was an alternative with the control being back in our hands, so here is my ideas
A way to distinguish them from DNS domains is needed when using URIs.
The easy route is to not allow TLDs that are in the DNS, but I wanted them to become left-to-right like NNTP which would break this easy route.
Domain existence is determined by what the server admins allow and disallow, the same applies for TLDs.
The issue comes with who owns/controls those domains? How would having an unowned domain work?
I don't like the registrar system that DNS takes, as it leads to people selling them. I'm not against selling them, as each domain's contents is up to it's owner, but I would like to avoid that for TLDs especially.
Text encoding must be UTF-8.
Line terminators must be CR-LF, all requests & responses must end with a CR-LF.
The default port is 1445 (144.5 light years/day is the approximate speed of subspace radio).
All communication must be done over TLS with server certificates, to prevent piggy-in-the-middle attacks.
Example exchange:
C → S <domain1> C ← S 3 <domain2> C → S <domain2> C ← S 2 <ip-addr>
Response codes:
Format spec:
Request: <domain><CRLF> Response: <resp-code><s><info><CRLF> <info>: For codes 1&4: <endpoint> For code 2: <domain> <domain>: <safe-string>[.<domain>] <endpoint>: <ip-addr>[:<port>] <safe-string>: Anything but invisible characters (inc. space & tab), control characters and other special Unicode characters. <s>: One tab or space.
When a server receives information from a peer server it should relay this information to it's other peers.
Servers must only accept info updates from trusted peers.
If a server already has the info supplied in the update it must not relay the information, ignoring the upate. Relaying could cause an infinite loop.
Servers should only accept updates from trusted peer servers.
I am yet to write the protocol for this.
This document is in the public domain.