@leoncowle @confluency @kimvanwyk
I like that they speak of variations.
Shouldn't WhatsApp have picked 255?
Doesn't the question why they picked 256 number make you even more worried if you you understand the significance 😳?
@waldi @realn2s Yes; if this is an actual hard size limit on the database field, it could be an index field rather than a size field.
But I doubt that it's anything like that, and think it's most likely that it's a soft limit, everything is stored in normal integer types which are *much* larger, and they picked 256 (and subsequently 512 and 1024) because they're nice round numbers!
I've picked powers of two all the time for this reason even though there was no underlying data type limit.
@confluency @realn2s Sorry, but they would not have chosen this limit, if it would not be the highest they can possible go without serious redesign.
If it would be a limit in their data store, they would have changed this limit.
So it must be somewhere else, aka in the client communication. And now you need to update all millions of millions of clients, keep it compatible and working. And if it is in the crypto, all user keys depend on it, so rekeying all users as well.
I assume it is not actually about the chat itself, but about the double ratchet group key management. It organizes keys in a binary tree, and adding or removing users involves rolling over a key on each level of the tree. 256 means the tree has 9 levels. So, the "oddly specific" number here is 9, and that in turn probably is "just one more than before".
@max @confluency
I'm pretty sure the 255 had no technical meaning but it's rather an "insider" (nerd) joke.
And possible technical meaning would really worry me.
To state it more clearly:
Do not use a byte to represent a number
(If you don't have a real good reason for it (like hw), and you should really know what you are doing!!!)
I suppose that makes sense if you can be in a whatsapp group with no participants 🤔
@sibrosan @confluency
I was surprised. But it seems possible
(Steps to reproduce: creat a WhatsApp group with another member, remove them and exit the group yourself)