2024-05-01-43HV @roberto_vpt@gemlog.blue
I've been thinking about it for a while, I approached Gemini as it is now but with the desire to use the interactive part.
Unfortunately, even if you use certificates for capsules, you are not making the best use of client certificates.
There is no link between the client certificate and the capsule that would allow a minimum of unique recognition.
This recognition simply is the ability to relay a message to the user on the capsule.
All client certificates for this purpose must contain: user@host.
The message address @user@host is normalized in <host>/msgbox/<user> to trigger the Gemini input with client certificate.
If the user exist then the host can and must also verify the sender on his host.
All this can be achieved via CGI without changing anything in the protocol, but if the method is fixed in the protocol and in the servers code, communication is created between all the capsules that support it.
I share with you the proposal that I am developing in order to discuss a minimalist and simple solution.
It is the UTC time in seconds expressed with the string "YYYY-MM-DD-CCRR".
CCRR = Seconds in cents of day and remainder base36, CC and RR are added if they are not zero.
The capsules create the unique string, i.e. one per second, because sequence is needed more than precision.
Gemini launch: 1965-03-23 09:23 EST == -150719760 seconds = "1965-03-23-60"
Each identifier is created from text on the BASE64NET set according to these rules:
Header: <Astral> <Address> <Topic>
Message: => <Address> <Astral> <Subject>|<Topic>
File: <Astral>_<Title>|<Subject>|<Topic>.gmi
Page built as an index of active @users.
This address opens a full client certificate request to leave a message.
After receiving the client certificate, the server performs the same operation on the sender capsule to verify the existence of the sender and allow the subsequent conversation.
The message is added to folder: /home/<user>/msgbox/<sender>.
The user can reply at every sender message or add a new one for it.
Page built as an index of active #topics.
Page built as a conversation of #topic messages.
Whe can reply at every sender message or add a new one.
The message is added to folder: /home/topics/<Topic>.