No description
Find a file
2021-08-13 13:45:10 +02:00
config Restructure code base 2021-08-06 23:14:27 +02:00
keys Add function to sign event 2021-08-05 13:30:46 +02:00
lib Verify signatures of signing keys 2021-08-13 13:45:10 +02:00
priv/repo Add schemas and functions to query signing keys from servers 2021-08-13 00:45:07 +02:00
test Restructure code base 2021-08-06 23:14:27 +02:00
.formatter.exs Init git repo 2021-06-22 14:09:25 +02:00
.gitignore Add function to sign event 2021-08-05 13:30:46 +02:00
.tool-versions Add function to sign event 2021-08-05 13:30:46 +02:00
LICENSE Create LICENSE 2021-07-23 22:18:25 +00:00
mix.exs Add federation API 2021-08-06 22:03:34 +02:00
mix.lock Add federation API 2021-08-06 22:03:34 +02:00
psql.sh Add schemas and functions to query signing keys from servers 2021-08-13 00:45:07 +02:00
README.md Fix typo in readme 2021-08-05 11:32:37 +00:00

Matrix homeserver

This is my attempt at creating a Matrix homeserver in Elixir. Currently it is in a very early stage.

Some noteworthy contributions:

  • 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/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:

  • Elixir 1.12.2 compiled for OTP 24
  • Erlang 24.0.3
  • PostgreSQL
  • Libsodium