Update README.md
This commit is contained in:
parent
de950fc769
commit
4a482a1c2b
1 changed files with 24 additions and 4 deletions
28
README.md
28
README.md
|
@ -3,17 +3,37 @@
|
||||||
This is my attempt at creating a Matrix homeserver in Elixir.
|
This is my attempt at creating a Matrix homeserver in Elixir.
|
||||||
Currently it is in a very early stage.
|
Currently it is in a very early stage.
|
||||||
|
|
||||||
Some noteworthy contributions:
|
## Noteworthy contributions
|
||||||
|
|
||||||
* `lib/matrix_server/state_resolution.ex`: Implementation of version 2 of the Matrix state resolution algorithm.
|
* `lib/matrix_server/state_resolution.ex`: Implementation of version 2 of the Matrix state resolution algorithm.
|
||||||
* `lib/matrix_server/state_resolution/authorization.ex`: Implementation of authorization rules for the state resolution algorithm.
|
* `lib/matrix_server/state_resolution/authorization.ex`: Implementation of authorization rules for the state resolution algorithm.
|
||||||
* `lib/matrix_server/room_server.ex`: A GenServer that holds and manages the state of a room.
|
* `lib/matrix_server/room_server.ex`: A GenServer that holds and manages the state of a room.
|
||||||
|
|
||||||
Generate the server's ed25519 keys by executing `ssh-keygen -t ed25519 -f keys/id_ed25519 -N ""`
|
## Dependencies
|
||||||
|
|
||||||
Dependencies:
|
|
||||||
|
|
||||||
* Elixir 1.12.2 compiled for OTP 24
|
* Elixir 1.12.2 compiled for OTP 24
|
||||||
* Erlang 24.0.3
|
* Erlang 24.0.3
|
||||||
* PostgreSQL
|
* PostgreSQL
|
||||||
* Libsodium
|
* Libsodium
|
||||||
|
|
||||||
|
|
||||||
|
Generate the server's ed25519 keys by executing `ssh-keygen -t ed25519 -f keys/id_ed25519 -N ""`
|
||||||
|
|
||||||
|
## Progress
|
||||||
|
|
||||||
|
Here, implemented and some unimplemented features are listed.
|
||||||
|
|
||||||
|
TODO: list implemented endpoints
|
||||||
|
|
||||||
|
### Implemented
|
||||||
|
|
||||||
|
* State resolution: functional, but very memory-intensive and with high database usage. For now it is sufficient, but snapshots should be used in the future. See: [State Resolution v2 for the Hopelessly Unmathematical](https://matrix.org/docs/guides/implementing-stateres), [State Resolution: Reloaded](https://matrix.uhoreg.ca/stateres/reloaded.html) and [Room Version 2](https://spec.matrix.org/unstable/rooms/v2).
|
||||||
|
* Authorization rules [Room version 1](https://spec.matrix.org/unstable/rooms/v1/)
|
||||||
|
* Homeserver authentication using signing keys [4.1 Request Authentication](https://matrix.org/docs/spec/server_server/latest#request-authentication).
|
||||||
|
* Client authentication [5.1 Using access tokens](https://matrix.org/docs/spec/client_server/r0.6.1#using-access-tokens).
|
||||||
|
|
||||||
|
### Major nimplemented features
|
||||||
|
|
||||||
|
* Resolving server names (but works for local development) [3.1 Resolving server names](https://matrix.org/docs/spec/server_server/latest#resolving-server-names)
|
||||||
|
* Checks when receiving events via federation (i.e. valid format, signature check and hash check) [6.1 Checks performed on receipt of a PDU](https://matrix.org/docs/spec/server_server/latest#checks-performed-on-receipt-of-a-pdu)
|
||||||
|
* Federation of events
|
||||||
|
|
Loading…
Reference in a new issue