Commit graph

667 commits

Author SHA1 Message Date
Timo Kösters
dd87066546
improvement: more efficient auth chain cache 2021-08-24 21:55:18 +02:00
Timo Kösters
30b309b708 Merge branch 'speed' into 'master'
Better E2EE and faster incoming event handling

See merge request famedly/conduit!163
2021-08-24 18:16:56 +00:00
Timo Kösters
81e056417c
improvement: better e2ee over fed, faster incoming event handling 2021-08-24 19:52:05 +02:00
Jonas Zohren
b6e755f67e Only apply max. optimizations in CI builds.
The average german man has a life expectancy of 78.7 years, or 689884.2 hours.
Assuming that Timo is 20 years old, he has rougly 514564.2 hours left on planet earth.
Also assuming that cross release builds took him 25 minutes before,
but 2-2.5x of that with the current release compilation config he wasted roughly an hour waiting for it to complete.
If he continued to work on Conduit for 20 more years (or 175320 hours),
and makes a release compilation about once per day, this means 7305 hours or 304 days wasted waiting for the rust compiler.
By cutting that back down to the original settings, he get's 182 days of his life back.
That's about 0.63% of his remaining life.
182 joyful days he can spend with family and loved ones.
2021-08-22 21:05:32 +00:00
Timo Kösters
33481ec062 Merge branch 'statediffs' into 'master'
Statediffs

See merge request famedly/conduit!145
2021-08-21 13:05:38 +00:00
Timo Kösters
46d8a46e1f
improvement: faster incoming transaction handling 2021-08-19 11:01:43 +02:00
Jonas Zohren
9c3a8edcae Use full optimizations for master and faster config else
Signed-off-by: Jonas Zohren <git-pbkyr@jzohren.de>
2021-08-14 21:41:27 +02:00
Timo Kösters
df727688ef
remove rocksdb 2021-08-04 21:17:40 +02:00
Timo Kösters
5df6b8cd5f
improvement: better account data implementation 2021-07-30 16:08:24 +02:00
Timo Kösters
5c776e9ba7
feat: heed db backend (LMDB) 2021-07-29 23:11:53 +02:00
Timo Kösters
5e924227b6
feat: add threadpool for iterator threads, bug fixes, tracing_flame support 2021-07-29 08:49:28 +02:00
Timo Kösters
f0ac7ed933
chore: update ruma again 2021-07-20 15:25:17 +02:00
Timo Kösters
0f8ecdc625
fix: state res fixes 2021-07-20 15:25:17 +02:00
Timo Kösters
cfaa900e83
improvement: auth chain cache 2021-07-20 15:25:16 +02:00
Timo Kösters
f5273f7eb1
improvement: upgrade ruma and implement blurhashes 2021-07-20 15:25:16 +02:00
Timo Kösters
0fcefa4125
fix: ruma 2021-07-20 15:25:16 +02:00
Jonathan de Jong
661101c9ae add sled cache_capacity back 2021-07-15 13:29:08 +02:00
Jonathan de Jong
15471d9ac4 update rocket and lock 2021-07-14 11:28:24 +02:00
Jonathan de Jong
9d4fa9a220 Sqlite 2021-07-14 07:07:08 +00:00
Timo Kösters
5711467ad9 Merge branch 'state-res-closure' into 'master'
Remove auth_cache using a closure to fetch events in state-res

See merge request famedly/conduit!108
2021-07-02 10:56:21 +00:00
Devin Ragotzy
c30cc50a0b Switch ruma to a commit from next 2021-07-02 06:40:40 -04:00
Aiden McClelland
b2d5516058 add support for arbitrary proxies 2021-07-01 12:41:12 -06:00
Devin Ragotzy
98f1480e2b
Remove auth_cache using a closure to fetch events in state-res 2021-06-30 12:54:19 +02:00
Timo Kösters
05821d6fd5
improvement: pdu cache, /sync cache 2021-06-30 10:31:34 +02:00
Jonas Platte
f6046871f4
Upgrade Ruma 2021-06-17 20:12:36 +02:00
Timo Kösters
cd4bc520d8
improvement: feature flags for sled, rocksdb 2021-06-12 15:13:04 +02:00
Timo Kösters
d0ee823254
feat: swappable database backend 2021-06-09 22:21:52 +02:00
Damian Poddebniak
bb7a4220d3 Fix ruma dependency 2021-06-04 20:18:03 +02:00
Timo Kösters
5b5cc0574e
feat: implement /claim, handle to-device events 2021-05-28 13:46:15 +02:00
Vadim Zeitlin
0f16a79888 Specify the minimum required Rust version in the manifest
Also mention it in the deployment guide.
2021-05-27 23:32:33 +02:00
Timo Kösters
daa1fc90a7
fix: state resolution bugs 2021-05-27 10:48:17 +02:00
Timo Kösters
acfd0aef27 Merge branch 'cargo-deb-packaging-update' into 'master'
Update cargo-deb packaging for recent changes

See merge request famedly/conduit!61
2021-05-22 09:03:43 +00:00
Timo Kösters
09157b2096
improvement: federation get_keys and optimize signingkey storage
- get encryption keys over federation
- optimize signing key storage
- rate limit parsing of bad events
- rate limit signature fetching
- dependency bumps
2021-05-21 13:25:24 +02:00
Timo Kösters
24793891e0
feat: implement GET /presence 2021-05-14 11:05:41 +02:00
Timo Kösters
f62258ba35
improvement: bug fixes and refactors
- power level content override adds to the default event instead of
replacing it
- sending code refactored to make edus possible
- remove presence events when restarting conduit
- remove room_id field from read receipts over /sync
- handle incoming read receipts
- fix array bounds bug in server_server.rs
2021-05-12 20:15:24 +02:00
Jonas Platte
a0457000ff
Upgrade Ruma 2021-05-08 01:54:28 +02:00
Jonas Platte
c28eba1e5b
Bump ruma 2021-04-29 21:05:29 +02:00
Jonas Platte
5be5c9e9f0
Bump ruma 2021-04-26 19:02:32 +02:00
Timo Kösters
2fc1ec2ad5
fix: logging 2021-04-24 13:34:35 +02:00
Jonas Platte
d8b484beed
Upgrade ruma 2021-04-24 12:22:36 +02:00
Timo Kösters
23f81bfaf7
chore: update dependencies 2021-04-24 12:18:19 +02:00
Timo Kösters
6e84d317b2
improvement: update ruma 2021-04-24 12:17:44 +02:00
Paul van Tilburg
5bf43a4d7e
Generate conduit.toml instead of debian environment file
Only generate this file once. I am not sure what to do with future
upgrades yet.
2021-04-22 21:52:40 +02:00
Paul van Tilburg
ab58609d3d
No longer use/support a local environment file 2021-04-16 22:07:58 +02:00
Gabriel Souza Franco
0b56589dce feat: add handling of tls cert for delegated hosts 2021-04-15 22:07:27 -03:00
Timo Kösters
04b08d4505
chore: bump stateres 2021-04-14 17:46:17 +02:00
Timo Kösters
abddfc2d2a
Merge remote-tracking branch 'famedly/master' into develop 2021-04-14 10:26:28 +02:00
Timo Kösters
5951294638
feat: join cursed rooms
this removes several restrictions and tries to continue verifying a pdu
event if some auth events fail (it drops/ignores bad pdus)
2021-04-14 09:39:06 +02:00
Timo Kösters
8b40e0a85f
improvement: fetch signing keys in parallel when joining a room 2021-04-13 22:54:01 +02:00
Timo Kösters
b4f79b77ba
feat: reject invites over federation 2021-04-13 17:41:14 +02:00
Timo Kösters
8773e5013d
feat: incoming invites over federation 2021-04-11 21:04:31 +02:00
Timo Kösters
044e65afcc
fix: move back to sled stable 2021-04-11 10:12:05 +02:00
Timo Kösters
84f4ce73e5
fix: membership deserializing 2021-04-09 21:45:22 +02:00
Timo Kösters
51aa6448bc
fix: use sled main to avoid deadlock 2021-04-07 17:58:33 +02:00
Jonas Platte
fe744c856f
Upgrade ruma
… and refactor push rule code along the way.
2021-04-06 17:38:53 +02:00
Timo Kösters
c213769d9f
improvement: refactor state res and fix a few bugs in the process 2021-03-25 23:55:40 +01:00
Timo Kösters
3ea7d162db
fix: various improvements and fixes 2021-03-23 12:59:27 +01:00
Timo Kösters
363c629faf
fix: signature key fetching, optimize push sending 2021-03-22 14:04:41 +01:00
Timo Kösters
d4c76f4654
chore: update ruma 2021-03-18 19:38:08 +01:00
Timo Kösters
5cb15551f3
improvement: use db compression 2021-03-18 13:13:08 +01:00
Timo Kösters
21f785d530
Merge branch 'correct-sendtxn' into pushers 2021-03-15 09:56:04 +01:00
Timo Kösters
6da40225bb
improvement: make state res actually work 2021-03-13 16:30:12 +01:00
Timo Kösters
7bc58461cd
fix: avoid illegal instruction crash
see https://github.com/spacejam/sled/issues/1232
2021-03-12 16:22:35 +01:00
Devin Ragotzy
d0df8b495c Merge remote-tracking branch 'upstream/master' into correct-sendtxn 2021-03-04 08:39:16 -05:00
Timo Kösters
105f893cf3
chore: bump other dependencies to make it work 2021-03-04 12:29:08 +01:00
Rudi Floren
f4039902d8 Bump Rocket to current HEAD 2021-03-03 22:42:10 +01:00
Timo Kösters
4155a47db1
feat: opentelemetry/jaeger support 2021-03-02 15:08:54 +01:00
Devin Ragotzy
0dd8a15c49 Fix leaves not being replaced by correct eventId in membership
Update ruma
2021-02-27 16:09:22 -05:00
Devin Ragotzy
6fd3e1d1dd Append state event that pass resolution to DB, update to tokio 1.1 2021-02-23 17:21:01 -05:00
Devin Ragotzy
66af1ff695 Update ruma and rocket to latest git rev and tokio to 1.0
Ruma updated the event signing validation code and there was a dep
resolving failure with serde rocket and tokio so I updated rocket latest and
tokio 1.0 to fix.
2021-02-23 17:20:52 -05:00
Devin Ragotzy
8de0d9f9ce Remove StateStore trait from state-res collect events needed 2021-02-09 15:21:41 -05:00
Devin Ragotzy
4b9976aa74 Update state-res, use the new Event trait
This also bumps ruma to latest and removes js_int infavor of the ruma
re-export
2021-02-09 15:19:47 -05:00
Devin Ragotzy
4a92a29b56 State resolution outline for /send 2021-02-09 15:18:47 -05:00
Timo Kösters
d49911c5e0
Add 'm.login.token' authentication 2021-02-07 17:38:45 +01:00
Timo Kösters
2d7012cdb1 Merge branch 'appservices' into 'master'
Appservices

Closes #29

See merge request famedly/conduit!11
2021-02-07 12:24:28 +00:00
Timo Kösters
fd3fb3a7ed
Merge remote-tracking branch 'famedly/master' into appservices 2021-02-03 12:54:37 +01:00
Jonas Platte
6de5b3c2a0
Update repository link in crate metadata 2021-02-02 18:14:00 +01:00
Devin Ragotzy
73124629b7 Add general rules matching for pusher, calc unread msgs 2021-01-29 21:48:35 -05:00
Devin Ragotzy
cd0c5c0566 Append state event that pass resolution to DB, update to tokio 1.1 2021-01-29 11:20:33 -05:00
Devin Ragotzy
a897608025 Roll back tokio and rocket update since ruma's request is at 0.2 tokio 2021-01-18 19:59:08 -05:00
Devin Ragotzy
00436a32b0 Update ruma and rocket to latest git rev and tokio to 1.0
Ruma updated the event signing validation code and there was a dep
resolving failure with serde rocket and tokio so I updated rocket latest and
tokio 1.0 to fix.
2021-01-18 19:36:44 -05:00
Devin Ragotzy
8a035880f0
Remove StateStore trait from state-res collect events needed 2021-01-14 14:30:24 +01:00
Devin Ragotzy
9e83d2b2d5
Update state-res, use the new Event trait
This also bumps ruma to latest and removes js_int infavor of the ruma
re-export
2021-01-14 14:30:19 +01:00
Devin Ragotzy
690c066064
State resolution outline for /send 2021-01-14 14:28:32 +01:00
Timo Kösters
2cf6fd57b7
improvement: don't send pdus to appservices if it isn't interested
TODO: we need to send pdus if a user of the appservice is in the room
but not the appservice user itself
2020-12-23 19:41:54 +01:00
Timo Kösters
6e5b35ea92
feat: implement appservices
this also reverts some stateres changes
2020-12-08 12:59:20 +01:00
Timo Kösters
45086b54b3
improvement: upgrade dependencies, fix timeline reload bug 2020-12-05 21:04:34 +01:00
Devin Ragotzy
164b1633d8
Update ruma to latest, renamed server keys and removed PduStub 2020-12-05 17:44:54 +01:00
Devin Ragotzy
acd144e934
Fix get_closest_parent and cleanup federation/send/:txn 2020-12-05 17:37:10 +01:00
Devin Ragotzy
db8a0c5d69
Add closest_parent method to Rooms Db insert in order /send pdus 2020-12-05 17:37:07 +01:00
Devin Ragotzy
96dd3b2880
Update ruma to latest, fix unstable origin feature in ruma 2020-12-05 17:37:07 +01:00
Paul van Tilburg
1b4a79d47c
Add and install README.Debian
This file documents how the packaging is organized and how to
configure and use it.  It also details what the default deployment
is like.
2020-11-24 14:42:20 +01:00
Paul van Tilburg
f72554de10
Split config into a Debian and local part
* The Debian part will be generated and managed by Debconf and configure
  homeserver name, address and port
* The local part will just be a config file that shows the other
  configuration options

Added the address configuration and moved the config generation
from the config to the postinst script.
2020-11-24 14:42:18 +01:00
Paul van Tilburg
79692db45d
First version of cargo-deb packaging setup 2020-11-24 14:38:15 +01:00
Timo Kösters
6b3934e31d
feat: configurable cache capacity 2020-10-23 14:38:12 +02:00
Timo
a2dbc6fe6d
Change license to Apache-2.0 2020-10-18 13:47:52 +02:00
Timo Kösters
151ef07fb3
docs: cross compile 2020-10-18 09:04:11 +02:00
Timo Kösters
e08dfd982b
improvement: look at SRV record when sending requests 2020-09-23 12:04:02 +02:00
Timo
d1099e9224
Update dependencies 2020-09-14 14:36:49 +02:00
Timo Kösters
12a8c9badd
fix: join rooms over federation 2020-09-12 21:30:07 +02:00
Timo Kösters
1e8fbd8d50
Update ruma version 2020-09-08 17:32:03 +02:00
Devin Ragotzy
f46c2d1eec Fix review issues, move state-res to spec-comp branch 2020-08-27 20:11:53 -04:00
Devin Ragotzy
cb68bf9e0c Use ring crate to generate StatHashes when saving stateid/statehash 2020-08-23 16:43:21 -04:00
Devin Ragotzy
c4f5a0a631 Keep track of State at event for state resolution
feat: first steps towards joining rooms over federation
Add state-res as a dependency of conduit
Add reverse_topological_power_sort before append_pdu
Implement statehashstatid_pduid tree for keeping track of state
Clean up implementation of state_hash as key for tracking state
2020-08-23 16:43:21 -04:00
Timo
f23fb32e95
fix: set limited to true when skipping messages in /sync 2020-08-23 16:14:09 +02:00
timokoesters
e457e19088
feat: search pdus 2020-08-23 16:14:08 +02:00
Timo
04eee089e0
feat: first steps towards joining rooms over federation 2020-08-23 16:14:06 +02:00
Faelar
0fef955b28 Fix license. 2020-08-17 13:59:35 +02:00
Jonas Platte
75ea0b3163
Update ruma 2020-08-12 23:42:17 +02:00
timokoesters
d891bbb5dc
improve: presence 2020-07-29 13:05:38 +02:00
timokoesters
21eb8d4fe3
fix: problems with pdu serialization 2020-07-29 12:59:40 +02:00
timokoesters
489cbc0a93
refactor: use <_> instead of <_parameter_name> 2020-07-29 12:59:36 +02:00
Devin Ragotzy
42e0102a2a
Conditionally emit rocket::http_verb attr macros if lib/bin 2020-07-27 18:54:43 +02:00
Jonas Platte
09561ccea3
Upgrade ruma 2020-07-26 16:52:43 +02:00
Devin Ragotzy
60381ddcf4 Update to latest ruma/master rev 2020-07-25 14:25:24 -04:00
Devin Ragotzy
61458536ab Merge branch 'master' of https://git.koesters.xyz/timo/conduit into ruma-mono 2020-07-25 13:46:28 -04:00
timokoesters
d8e1248df6
improvement: switch to stable rust 2020-07-22 22:42:01 +02:00
Devin R
33bc666859 Use sync ephemeral events in sync Resposne (remove room_id)
Bump ruma to latest master which also fixes some server name as String
to now being of type Box<ServerName>.
2020-07-21 14:04:39 -04:00
Devin R
75959cdc10 Resolve stying review issues 2020-07-18 08:21:25 -04:00
Devin R
d02685a4fd Update to latest ruma/ruma commit
This will most likely be the API that is released to crates.io so it
should be fairly stable...
2020-07-17 16:04:05 -04:00
Devin R
84dcb885a7 Return correct Errors and replace panic, fix misc review issues
Remove EventJson todo comments, clean up Cargo.toml commented ruma deps.
2020-07-17 16:03:36 -04:00
Devin R
ddc7598870 Use ruma/ruma master 2020-07-17 16:03:36 -04:00
Devin R
7c38e53839 Move to depend on ruma monorepo and ruma-events0.22 2020-07-17 16:03:02 -04:00
Timo Kösters
b9de21949d Update to rocket master (#147)
Merge branch 'master' into rocket

Update to rocket master

Co-authored-by: timokoesters <timo@koesters.xyz>
Reviewed-on: https://git.koesters.xyz/timo/conduit/pulls/147
2020-07-14 18:23:26 +02:00
timokoesters
05f1f73e10
improvement: upgrade to sled 0.32
BREAKING CHANGE: old databases are not compatible anymore
2020-06-26 16:26:28 +02:00
timokoesters
a49a572d76
feat: cross-signing 2020-06-26 15:16:15 +02:00
timokoesters
db685e0cf7
fix: update rocket version 2020-06-16 13:53:15 +02:00
timokoesters
13d474f6ee
fix: update ruma version 2020-06-16 12:19:58 +02:00
timokoesters
b4d65ab67d
improvement: optimize /sync response 2020-06-08 11:39:32 +02:00
Jonas Platte
7526fd8602
Switch to the ruma meta-crate 2020-06-05 18:42:45 +02:00
timokoesters
08d19c3e0b
fix: broken dependencies 2020-06-05 09:04:51 +02:00
timokoesters
a8df1acdfd
feat: load replies, forward pagination 2020-06-04 13:58:55 +02:00
timokoesters
b192fddf2f
fix: show device display names 2020-06-04 09:48:32 +02:00
timokoesters
4e507ef706
feat: room visibility and aliases 2020-05-31 09:46:11 +02:00
timokoesters
18bf67748c
feat: redaction 2020-05-31 08:01:10 +02:00
timokoesters
1014388a9c
fix: one time keys are never removed 2020-05-23 19:17:55 +02:00
timokoesters
d544d28b6e
feat: image thumbnails 2020-05-19 19:59:52 +02:00
timokoesters
56dd6cb16f
improvement: get state 2020-05-18 09:22:58 +02:00
timokoesters
4fb79ebb4c
chore: update dependencies 2020-05-14 13:56:29 +02:00
Rudi Floren
00a9424719
feat: sytests 2020-05-11 14:44:23 +02:00
timokoesters
551308e9a8
Update dependencies and send displayname updates again 2020-05-08 21:13:52 +02:00
timokoesters
8f67c01efd
refactor: split database into multiple files, more error handling, cleaner code 2020-05-03 21:44:48 +02:00
timokoesters
b02c568941
feat: notifications, simple permission systems 2020-05-01 20:28:13 +02:00
timokoesters
fd1aea7e36
Update dependencies 2020-04-29 10:27:41 +02:00
timokoesters
120b6f4b95
Bump dependencies and fixes 2020-04-29 10:27:39 +02:00
timokoesters
1af6dd984a
More work on federation 2020-04-29 10:27:38 +02:00
timokoesters
b0d9ccdb2d
Signing, basis for federation 2020-04-29 10:27:38 +02:00
timokoesters
80ddf80f17
work 2020-04-29 10:27:31 +02:00
gnieto
fa9e127a1e Store hashed passwords (#7)
Use if let instead of unwrap

Default to invalid password if could not calculate

Move hash password methdo and return Result

Rename get_password method

Default to empty password when no pwd is received

Store hashed passwords

Store passwords hashed with Argon2 and verify password with that stored
hash.

Co-authored-by: Guillem Nieto <gnieto.talo@gmail.com>
2020-04-14 22:25:44 +02:00
timokoesters
040296c711
Add test support and impl dummy /read_markers 2020-04-10 13:36:57 +02:00
timokoesters
93b1d97166
Update readme and cargo.toml 2020-04-10 10:25:33 +02:00
Jonas Platte
38ab7c843e
Update error type of /register route 2020-04-08 23:25:19 +02:00
timokoesters
ddcd423e6f
feat: random tokens, sessions, guest usernames and device ids 2020-04-08 22:04:29 +02:00
timokoesters
10bb96fcf7
feat: room joining, room based /sync responses 2020-04-06 13:52:46 +02:00
timokoesters
884dc2867d
Move to rocket's async branch 2020-04-05 19:54:08 +02:00
timokoesters
8b8381bcc0
New PduEvent struct 2020-04-04 11:53:37 +02:00
timokoesters
f9cfede2a8
fix: deserialize sync event body 2020-04-03 21:17:27 +02:00
timokoesters
fa3226898c
feat: save pdus
PDUs are saved in a pduid -> pdus map. roomid -> pduleaves keeps track
of the leaves of the event graph and eventid -> pduid maps event ids to
pdus.
2020-04-03 17:58:38 +02:00
timokoesters
22cca206ba
Todo: ruma signatures
This commit will get force pushed away later
2020-03-30 15:38:25 +02:00
timokoesters
533260edd8
Add auth 2020-03-29 21:05:20 +02:00
timokoesters
73e04e71d7
Start work on event creation 2020-03-29 13:49:13 +02:00
timokoesters
744e0adfcf
Try to impl auth in ruma_wrapper 2020-03-28 23:08:59 +01:00
timokoesters
34a53ce20a
Better database structure 2020-03-28 18:50:02 +01:00
timokoesters
6fffcecf8e Updates 2020-03-27 21:00:10 +01:00
timokoesters
c2c18b4651 feat: database 2020-02-20 10:12:13 +01:00
timokoesters
cd777af41c feat: simple endpoint handlers 2020-02-18 22:07:57 +01:00
timokoesters
6264628c11 Initial commit 2020-02-15 22:42:21 +01:00