List what message types are using MVDS
Problem
We want to list all current messages types that are using MVDS and discuss if others should be included. This is a list of all message types: https://github.com/status-im/status-go/blob/65867d884e75094a4f76cc1d999f184bfdb3a268/protocol/messenger_handlers.go#L19 We want to know which ones use MVDS currently.
Acceptance Criteria
List of messages types using MVDS written and assesment if we need others to be using MVDS. If others need to use MVDS or existing ones should not be using it then a ticket to modify that.
@fryorcraken FYI
I see there are a lot of message type. I think we should do a table with the following columns:
- 1:1 message
- small private group
- large encrypted group (
- clear broadcast
- MVDS is used
- Needs e2e reliability
then we can review with Status to fill in the last column.
I'm wondering should we update the MVDS spec to include this information, and use the spec as the source of truth? should we duplicate mvds spec to waku/specs from custodian perspective?
cc @jm-clius
I'm wondering should we update the MVDS spec
I don't think the application usage should be part of the MVDS spec (which is app agnostic). We will certainly update Status protocol specs to include what reliability mechanisms they use. For now we can probably maintain a general Status Reliability raw spec in which we add information like the above. Note however that it's likely to change many times as we integrate e2e reliability more and more widely.
Here is the sheet, it's hard to collect all the columns as the message types are spreading in the codebase.
Here is the sheet, it's hard to collect all the columns as the message types are spreading in the codebase.
Thanks for that! Not sure the best way to include it in the specs, but I think we should have it as a way to document how Status uses Waku.
Could we add a column "MVDS TBD" that has the following formula: if Use MVDS != Yes && Need e2e reliablity == Yes && Chat Type == OneToOne so we have a view of the work to be done.
@fryorcraken adding the column, need to fill the missing columns to actually use it as the next step. I've been slowing adding more info but hard to produce something in high quality.
@plopezlpz you may have some ideas on how to proceed next?
@fryorcraken adding the column, need to fill the missing columns to actually use it as the
next step. I've been slowing adding more info but hard to produce something in high quality. @plopezlpz you may have some ideas on how to proceed next?
Thanks for that.
From @cammellos 's review. it seems that we need to add MVDS for ApplicationMetadataMessage_COMMUNITY_REQUEST_TO_JOIN.
I don't think the chat type is correct as it is a OneToOne message (requester to community owner).
If that's the only message that should be MVDS and is not then, adding MVDS would be the only next action.
This then can be pushed to a Status RFC and used when integrating the e2e reliability protocol in status-go. Cc @jm-clius @shash256 @vpavlin
You can easily download the csv and use https://tableconvert.com/csv-to-markdown to make it markdown for the RFC. And probably add a reference to the sheet as well. E.g.:
| Message Type | Use MVDS | Need e2e reliability | Chat Type | Next Step | Encrypted |
|---|---|---|---|---|---|
| ApplicationMetadataMessage_UNKNOWN | No | No | Not Applied | No | |
| ApplicationMetadataMessage_CHAT_MESSAGE | Yes for OneToOne & PrivateGroupChat | Yes | One & Group & Community | No | |
| ApplicationMetadataMessage_CONTACT_UPDATE | Yes | Yes | OneToOne | No | |
| ApplicationMetadataMessage_MEMBERSHIP_UPDATE_MESSAGE | No | Yes | CommunityChat | No | |
| ApplicationMetadataMessage_SYNC_PAIR_INSTALLATION | Yes | Yes | Pair | No | |
| ApplicationMetadataMessage_DEPRECATED_SYNC_INSTALLATION | No | No | Pair | No | |
| ApplicationMetadataMessage_REQUEST_ADDRESS_FOR_TRANSACTION | Yes for OneToOne | Yes | One & Group & Community | No | |
| ApplicationMetadataMessage_ACCEPT_REQUEST_ADDRESS_FOR_TRANSACTION | Yes for OneToOne | Yes | One & Group & Community | No | |
| ApplicationMetadataMessage_DECLINE_REQUEST_ADDRESS_FOR_TRANSACTION | Yes for OneToOne | Yes | One & Group & Community | No | |
| ApplicationMetadataMessage_REQUEST_TRANSACTION | Yes for OneToOne | Yes | OneToOne & GroupChat | No | |
| ApplicationMetadataMessage_SEND_TRANSACTION | Yes for OneToOne | Yes | One & Group & Community | No | |
| ApplicationMetadataMessage_DECLINE_REQUEST_TRANSACTION | Yes for OneToOne | Yes | One & Group & Community | No | |
| ApplicationMetadataMessage_SYNC_INSTALLATION_CONTACT_V2 | Yes | Yes | Pair | No | |
| ApplicationMetadataMessage_SYNC_INSTALLATION_ACCOUNT | No | No | Not Applied | No | |
| ApplicationMetadataMessage_CONTACT_CODE_ADVERTISEMENT | No | No | Not Applied | No | |
| ApplicationMetadataMessage_PUSH_NOTIFICATION_REGISTRATION | No | No | One & Group & Community | No | No |
| ApplicationMetadataMessage_PUSH_NOTIFICATION_REGISTRATION_RESPONSE | No | No | One & Group & Community | No | No |
| ApplicationMetadataMessage_PUSH_NOTIFICATION_QUERY | No | No | One & Group & Community | No | No |
| ApplicationMetadataMessage_PUSH_NOTIFICATION_QUERY_RESPONSE | No | No | One & Group & Community | No | No |
| ApplicationMetadataMessage_PUSH_NOTIFICATION_REQUEST | No | No | One & Group & Community | No | No |
| ApplicationMetadataMessage_PUSH_NOTIFICATION_RESPONSE | No | No | One & Group & Community | No | No |
| ApplicationMetadataMessage_EMOJI_REACTION | No | Yes | One & Group & Community | Yes | |
| ApplicationMetadataMessage_GROUP_CHAT_INVITATION | Yes | Yes | GroupChat | No | |
| ApplicationMetadataMessage_CHAT_IDENTITY | No | No | OneToOne | No | |
| ApplicationMetadataMessage_COMMUNITY_DESCRIPTION | No | Weak Yes | CommunityChat | No | |
| ApplicationMetadataMessage_COMMUNITY_INVITATION | No | Weak Yes | CommunityChat | No | |
| ApplicationMetadataMessage_COMMUNITY_REQUEST_TO_JOIN | No | Yes | CommunityChat | No | No |
| ApplicationMetadataMessage_PIN_MESSAGE | Yes for OneToOne & PrivateGroupChat | Yes | One & Group & Community | No | |
| ApplicationMetadataMessage_EDIT_MESSAGE | Yes for OneToOne & PrivateGroupChat | Yes | One & Group & Community | No | |
| ApplicationMetadataMessage_STATUS_UPDATE | No | No | Not Applied | No | |
| ApplicationMetadataMessage_DELETE_MESSAGE | Yes for OneToOne & PrivateGroupChat | Yes | One & Group & Community | No | |
| ApplicationMetadataMessage_SYNC_INSTALLATION_COMMUNITY | Yes | Yes | Pair | No | |
| ApplicationMetadataMessage_ANONYMOUS_METRIC_BATCH | No | No | Not Applied | No | No |
| ApplicationMetadataMessage_SYNC_CHAT_REMOVED | Yes | Yes | Pair | No | |
| ApplicationMetadataMessage_SYNC_CHAT_MESSAGES_READ | Yes | Yes | Pair | No | |
| ApplicationMetadataMessage_BACKUP | No | No | Not Applied | No | No |
| ApplicationMetadataMessage_SYNC_ACTIVITY_CENTER_READ | Yes | Yes | Pair | No | |
| ApplicationMetadataMessage_SYNC_ACTIVITY_CENTER_ACCEPTED | Yes | Yes | Pair | No | |
| ApplicationMetadataMessage_SYNC_ACTIVITY_CENTER_DISMISSED | Yes | Yes | Pair | No | |
| ApplicationMetadataMessage_SYNC_BOOKMARK | Yes | Yes | Pair | No | |
| ApplicationMetadataMessage_SYNC_CLEAR_HISTORY | Yes | Yes | Pair | No | |
| ApplicationMetadataMessage_SYNC_SETTING | Yes | Yes | Pair | No | |
| ApplicationMetadataMessage_COMMUNITY_MESSAGE_ARCHIVE_MAGNETLINK | No | No | CommunityChat | No | |
| ApplicationMetadataMessage_SYNC_PROFILE_PICTURES | Yes | Yes | Pair | No | |
| ApplicationMetadataMessage_SYNC_ACCOUNT | Yes | Yes | Pair | No | |
| ApplicationMetadataMessage_ACCEPT_CONTACT_REQUEST | Yes | Yes | OneToOne | No | |
| ApplicationMetadataMessage_RETRACT_CONTACT_REQUEST | Yes | Yes | OneToOne | No | |
| ApplicationMetadataMessage_COMMUNITY_REQUEST_TO_JOIN_RESPONSE | No | Weak Yes | CommunityChat | No | |
| ApplicationMetadataMessage_SYNC_COMMUNITY_SETTINGS | Yes | Yes | CommunityChat | No | |
| ApplicationMetadataMessage_REQUEST_CONTACT_VERIFICATION | Yes | Yes | OneToOne | No | |
| ApplicationMetadataMessage_ACCEPT_CONTACT_VERIFICATION | Yes | Yes | OneToOne | No | |
| ApplicationMetadataMessage_DECLINE_CONTACT_VERIFICATION | Yes | Yes | OneToOne | No | |
| ApplicationMetadataMessage_SYNC_TRUSTED_USER | Yes | Yes | Pair | No | |
| ApplicationMetadataMessage_SYNC_VERIFICATION_REQUEST | Yes | Yes | Pair | No | |
| ApplicationMetadataMessage_SYNC_CONTACT_REQUEST_DECISION | Yes | Yes | Pair | No | |
| ApplicationMetadataMessage_COMMUNITY_REQUEST_TO_LEAVE | No | Weak Yes | CommunityChat | No | |
| ApplicationMetadataMessage_SYNC_DELETE_FOR_ME_MESSAGE | Yes | Yes | Pair | No | |
| ApplicationMetadataMessage_SYNC_SAVED_ADDRESS | Yes | Yes | Pair | No | |
| ApplicationMetadataMessage_COMMUNITY_CANCEL_REQUEST_TO_JOIN | No | Yes | CommunityChat | No | |
| ApplicationMetadataMessage_CANCEL_CONTACT_VERIFICATION | Yes | Yes | OneToOne | No | |
| ApplicationMetadataMessage_SYNC_KEYPAIR | Yes | Yes | Pair | No | |
| ApplicationMetadataMessage_SYNC_SOCIAL_LINKS | No | No | Not Applied | No | |
| ApplicationMetadataMessage_SYNC_ENS_USERNAME_DETAIL | Yes | Yes | Pair | No | |
| ApplicationMetadataMessage_COMMUNITY_EVENTS_MESSAGE | No | No | CommunityChat | No | |
| ApplicationMetadataMessage_COMMUNITY_EDIT_SHARED_ADDRESSES | No | No | CommunityChat | No | |
| ApplicationMetadataMessage_SYNC_ACCOUNT_CUSTOMIZATION_COLOR | Yes | Yes | Pair | No | |
| ApplicationMetadataMessage_SYNC_ACCOUNTS_POSITIONS | Yes | Yes | Pair | No | |
| ApplicationMetadataMessage_COMMUNITY_PRIVILEGED_USER_SYNC_MESSAGE | No | No | CommunityChat | No | |
| ApplicationMetadataMessage_COMMUNITY_SHARD_KEY | Yes | Yes | CommunityChat | No | |
| ApplicationMetadataMessage_SYNC_CHAT | Yes | Yes | Pair | No | |
| ApplicationMetadataMessage_SYNC_ACTIVITY_CENTER_DELETED | Yes | Yes | Pair | No | |
| ApplicationMetadataMessage_SYNC_ACTIVITY_CENTER_UNREAD | Yes | Yes | Pair | No | |
| ApplicationMetadataMessage_SYNC_ACTIVITY_CENTER_COMMUNITY_REQUEST_DECISION | Yes | Yes | Pair | No | |
| ApplicationMetadataMessage_SYNC_TOKEN_PREFERENCES | Yes | Yes | Pair | No | |
| ApplicationMetadataMessage_COMMUNITY_PUBLIC_SHARD_INFO | No | No | CommunityChat | No | |
| ApplicationMetadataMessage_SYNC_COLLECTIBLE_PREFERENCES | Yes | Yes | Pair | No | |
| ApplicationMetadataMessage_COMMUNITY_USER_KICKED | No | No | CommunityChat | No | |
| ApplicationMetadataMessage_SYNC_PROFILE_SHOWCASE_PREFERENCES | Yes | Yes | Pair | No | |
| ApplicationMetadataMessage_COMMUNITY_PUBLIC_STORENODES_INFO | No | Weak Yes | CommunityChat | No | No |
| ApplicationMetadataMessage_COMMUNITY_REEVALUATE_PERMISSIONS_REQUEST | No | Weak Yes | CommunityChat | No | No |
| ApplicationMetadataMessage_DELETE_COMMUNITY_MEMBER_MESSAGES | No | Weak Yes | CommunityChat | No | |
| ApplicationMetadataMessage_COMMUNITY_UPDATE_GRANT | No | Weak Yes | CommunityChat | No | |
| ApplicationMetadataMessage_COMMUNITY_ENCRYPTION_KEYS_REQUEST | No | Yes | CommunityChat | No | |
| ApplicationMetadataMessage_COMMUNITY_TOKEN_ACTION | No | Weak Yes | CommunityChat | No | |
| ApplicationMetadataMessage_COMMUNITY_SHARED_ADDRESSES_REQUEST | No | No | CommunityChat | No | |
| ApplicationMetadataMessage_COMMUNITY_SHARED_ADDRESSES_RESPONSE | No | No | CommunityChat | No |
Would be great to know more context why ApplicationMetadataMessage_COMMUNITY_REQUEST_TO_JOIN message is now using ResendTypeRawMessage, not using mvds in the first place?
@qfrank @cammellos
Would be great to know more context why
ApplicationMetadataMessage_COMMUNITY_REQUEST_TO_JOINmessage is now usingResendTypeRawMessage, not using mvds in the first place? @qfrank @cammellos
I hope this comment would be helpful for you @kaichaosun
It seems not related to mvds and its usage after a quick look, will read more on the PR, thanks for sharing this @qfrank
I see that the last action items here are to create the RFC with the table from this issue and start using MVDS in messages of type ApplicationMetadataMessage_COMMUNITY_REQUEST_TO_JOIN. Created two issues for that and closing this as completed:
- https://github.com/status-im/status-go/issues/5694
- https://github.com/status-im/status-go/issues/5693