diff --git a/docs/concepts.md b/docs/concepts.md new file mode 100644 index 0000000..3041851 --- /dev/null +++ b/docs/concepts.md @@ -0,0 +1,20 @@ +# ICRC - Concepts + +## Client + +A user or bot. Or to be more precise: the program something uses to communicate with the icrc server. + +## Relay + +A relay is like a group chat. Clients that are part of a relay have the key to it. The server proofs if a client has +access to a relay by hashing the clients key to that relay and comparing it with a saved hash. + +### User index + +Every relay has their own user index, which has the following columns: + +- **userid_relay**: The id that other users use to identify a user in this relay. +- **userid_main**: The users "real" id. (The id they use to authenticate.) +- **name**: The users nickname in this relay. +- **public_key**: The public key to exchange symmetric encryption keys with that user. +