> It had problems with signatures when messages contained a certain field, so some messages appeared and others were missing.
Did you file a bug on this? We're not aware of any signature problems whatsoever in Synapse (or Matrix).
> Why do messages have so many fields?
So looking at a message like this:
{
"origin_server_ts": 1517313544657,
"sender": "@kitsune:matrix.org",
"event_id": "$15173135441073284GrtsX:matrix.org",
"unsigned": {
"age": 277
},
"content": {
"body": "Yep, almost a year ago.",
"msgtype": "m.text"
},
"type": "m.room.message",
"room_id": "!eUGMvloIjhBoAwlyRh:matrix.org"
}
You get:
* `origin_server_ts`: the absolute TS the sending server claims
* `sender`: the matrix ID of the sender
* `event_it`: the UID of the event
* `unsigned.age`: a relative TS for receipt on your local server (added by your local server, hence being unsigned)
* `type`: the namespaced type of the event. In this instance, `m.room.message` is the general purpose Instant Message event type.
* `content`: arbitrary JSON to describe the contents of this type of event. In this instance, it's a plain text message with a given body.
* `room_id`: the room the event's been sent in.
This doesn't seem unreasonable? (but I may be biased thanks to working on it).
> To top it off, the server was making me hit my ISPs (pretty bad ISP) connections per second limit.
Oops. This might have been a while ago before we improved the connection pooling for federation traffic? What's the limit?
> Apparently, development focus isn't on making the basic protocol perfect, but on UX nonsense and adding features
We're trying to do both. A perfect protocol is useless if it doesn't have flagship apps which make it usable by normal people. Right now the protocol is relatively good; the Python/Twisted impl is very heavyweight (but getting better); Riot (as a flagship app) also has perf problems but it hopefully headed in the right direction.
Dendrite should be an enormous improvement on the serverside when it gets there however!