-
Link Mauve
“14:51:45 jonas’> ok, can someone please load a module on this MUC server which sets origin-id to hello world for all messages? kthxbai”, I already have a poezio module for that, it broke Matrix.
-
Link Mauve
Let’s load it. :)
-
Link Mauve
Here, it is loaded.
-
mdosch
Test.
-
Link Mauve
If your client is displaying this message, it does better deduplication than just based on origin-id.
-
Link Mauve
mdosch, poezio, not MUC.
-
mdosch
Oh
-
Link Mauve
Unless it got fixed recently, Matrix users won’t see my messages any more.
-
Link Mauve
And from the discussion before, Converse won’t either.
-
Maranda
Didn't work sorry
-
Maranda
Ok plx thnx bye
-
Link Mauve
Maranda, what didn’t work?
-
Link Mauve
The last time it did, so perhaps you fixed it. :)
-
Link Mauve
“14:56:08 Zash> Time to dig up the idea of IDs being based on a (stream-id, stanza-counter) tuple?”, that’s what we used to use in slixmpp, but people complained that it wasn’t unique enough. :<
-
pep.
Well it was predicatable, mostly✎ -
pep.
Well it was predictable, mostly ✏
-
pep.
I'm not saying that would allow clients not to deduplicate still, but if we can avoid it..
-
Maranda
It will break clients not Bifrost for sure
-
Maranda
origin_id gets just stored, otherwise there's no processing on it
-
Maranda[x]
Bifrost cares about the stanza id attribute for deduplication not origin-id
-
Maranda
So changing origin-id or stanza-id will do nothing changing the stanza id will get Bifrost to silently discard the messages until they fall off the deduplication cache hardly break anything
-
Maranda[x]
The problem as I see it is very simple, it's demented to have three different kind of ids for message stanzas (or any other kind), there should be only one which should be of (at least semi/simil-)unique nature
-
Zash
Doesn't Matrix have even more IDs?
-
jonas’
Maranda[x], you don't say!
-
jonas’
tell✎ -
jonas’
Maranda[x], now go and tell that to jcbrand ;) ✏
-
Zash
We need more IDs to keep up!!!
-
Maranda[x]
No Zash, all event ids are unique
-
Zash
(or was it timestamps?)
-
Zash
> > IDs being based on a (stream-id, stanza-counter) tuple > that’s what we used to use in slixmpp, but people complained that it wasn’t unique [or predictable] enough. :< But it would be guaranteed to be unique, since the stream id is supposed to be uniquely set by the server. Stuff the tuple trough HMAC to keep the stream ID secret, and the resulting ID shorter.
-
Zash
Also means you know what the ID will be ahead of time, without the server needing to tell you.
-
Maranda
> <Zash> (or was it timestamps?) Probably timestamps, one is the original server timestamp the other is the age of the event processal when fetching batches from syncs or paginations✎ -
Maranda
> <Zash> (or was it timestamps?) Probably timestamps, one is the original server timestamp the other is the age from the event processal when fetching batches from syncs or paginations ✏
-
qy
Time-based uuids sound good enough and make collisions basically impossible, right?
-
qy
I vote make it standard to use those for stanza-id and silently ignore origin-id
-
Zash
https://datatracker.ietf.org/doc/draft-peabody-dispatch-new-uuid-format/ FTR
-
Zash
Tho if you just say "use UUIDv7", that doesn't magically stop anyone from still setting the id to "lol", potentially causing havoc
-
Zash
Only the server can save us from that! :P
-
qy
But who watches the server...
-
Zash
The server is perfect. The server always does the right thing. Trust in the server. The server is good.
-
Maranda[x]
Until it's wrong and doesn't do the right thing