status-go/protocol
Andrea Maria Piana 605fe40e32 Fix encryption metadata issues #4613
This commit fixes a few issues with communities encryption:

Key distribution was disconnected from the community description, this created a case where the key would arrive after the community description and that would result in the client thinking that it was kicked.
To overcome this, we added a message that signals the user that is kicked. Also, we distribute the key with the community description so that there's no more issues with timing.
This is a bit expensive for large communities, and it will require some further optimizations.

Key distribution is now also connected to the request to join response, so there are no timing issues.

Fixes an issue with key distribution (race condition) where the community would be modified before being compared, resulting in a comparison of two identical communities, which would result in no key being distributed. This commit only partially address the issue.
2024-02-07 10:25:41 +00:00
..
anonmetrics Fix encryption metadata issues #4613 2024-02-07 10:25:41 +00:00
audio Add audio messages 2020-07-27 17:14:50 +02:00
common Fix encryption metadata issues #4613 2024-02-07 10:25:41 +00:00
communities Fix encryption metadata issues #4613 2024-02-07 10:25:41 +00:00
datasync Add basic peersyncing 2024-01-23 12:46:17 +00:00
discord feat(discord): Import single channel from discord (#4160) 2023-10-25 12:32:21 -04:00
encryption Fix encryption metadata issues #4613 2024-02-07 10:25:41 +00:00
ens fix: use proper migrations for protocol's test database 2023-10-03 15:11:58 +02:00
identity feat: enable passing ring width from mobile (#3903) 2023-09-01 16:17:46 +08:00
internal/sqlite Sync Settings (#2478) 2022-03-23 18:47:00 +00:00
migrations Fix encryption metadata issues #4613 2024-02-07 10:25:41 +00:00
peersyncing Add basic peersyncing 2024-01-23 12:46:17 +00:00
protobuf Fix encryption metadata issues #4613 2024-02-07 10:25:41 +00:00
pushnotificationclient Add basic peersyncing 2024-01-23 12:46:17 +00:00
pushnotificationserver Add basic peersyncing 2024-01-23 12:46:17 +00:00
requests (fix/status-go) fix profile picture update/removal (#4570) 2024-01-24 12:09:28 -08:00
sqlite Add basic peersyncing 2024-01-23 12:46:17 +00:00
subscription Move to monorepo structure (#1684) 2019-11-21 17:19:22 +01:00
transport Fix encryption metadata issues #4613 2024-02-07 10:25:41 +00:00
tt chore: store node requests manager (#4446) 2023-12-15 19:50:12 +00:00
urls feat: add parsing for new links format (#3665) 2023-07-04 17:48:52 +04:00
v1 Always set PubsubTopic in filters 2023-11-18 02:26:34 +02:00
verification fix: use proper migrations for protocol's test database 2023-10-03 15:11:58 +02:00
wakusync Always use protobufs by reference & generate handlers 2023-08-22 12:08:54 +01:00
zaputil Move to monorepo structure (#1684) 2019-11-21 17:19:22 +01:00
LICENSE Move to monorepo structure (#1684) 2019-11-21 17:19:22 +01:00
README.md Added basic history of the protocol package (#1984) 2020-06-04 11:23:09 +01:00
activity_center.go feat: Community token received notification (#4515) 2024-01-04 13:22:06 +01:00
activity_center_persistence.go fix TestMarkAllActivityCenterNotificationsReadMarksMessagesAsSeen (#4615) 2024-01-25 13:56:56 +08:00
activity_center_persistence_test.go only sync decisions/state of AC notifications (#3979) 2023-10-22 17:41:20 +08:00
chat.go feat: new deeplink status-im->status-app (#4198) 2023-11-02 13:56:06 +08:00
chat_group_proxy.go Clean up protocol package (#1890) 2020-03-09 07:19:23 +01:00
chat_test.go feat: new deeplink status-im->status-app (#4198) 2023-11-02 13:56:06 +08:00
communities_events_owner_without_community_key_test.go refactor: introduce `newTestCommunitiesMessenger` 2024-01-24 14:24:57 +01:00
communities_events_token_master_test.go refactor: introduce `newTestCommunitiesMessenger` 2024-01-24 14:24:57 +01:00
communities_events_utils_test.go chore: cover community sharding with tests 2024-01-24 14:24:57 +01:00
communities_key_distributor.go feat: encrypt `CommunityDescription` fields 2023-12-22 18:17:06 +01:00
communities_messenger_admin_test.go refactor: introduce `newTestCommunitiesMessenger` 2024-01-24 14:24:57 +01:00
communities_messenger_helpers_test.go Fix encryption metadata issues #4613 2024-02-07 10:25:41 +00:00
communities_messenger_signers_test.go refactor: introduce `newTestCommunitiesMessenger` 2024-01-24 14:24:57 +01:00
communities_messenger_test.go Fix encryption metadata issues #4613 2024-02-07 10:25:41 +00:00
communities_messenger_token_permissions_test.go Fix encryption metadata issues #4613 2024-02-07 10:25:41 +00:00
contact.go feat: new endpoint added which returns accounts of all contacts that match the passed address 2024-01-29 13:15:24 +01:00
contact_test.go Compute emojiHash on-the-fly 2023-03-06 13:22:40 +02:00
delete_message.go Always use protobufs by reference & generate handlers 2023-08-22 12:08:54 +01:00
edit_message.go Always use protobufs by reference & generate handlers 2023-08-22 12:08:54 +01:00
emoji_reaction.go Always use protobufs by reference & generate handlers 2023-08-22 12:08:54 +01:00
errors.go fix(archives): Skip importing the archives for community when user not a member (#4006) 2023-09-15 10:42:28 +03:00
group_chat_invitation.go Always use protobufs by reference & generate handlers 2023-08-22 12:08:54 +01:00
group_chat_system_messages.go Always use protobufs by reference & generate handlers 2023-08-22 12:08:54 +01:00
identity_images.go feat: Profile showcase data sharing (#4209) 2023-11-09 22:59:01 +04:00
linkpreview_unfurler.go feature: Unfurl status links (#4033) 2023-10-13 13:25:34 +01:00
linkpreview_unfurler_image.go fix(ImageUnfurler): set title for image links (#4215) 2023-10-26 17:52:52 +01:00
linkpreview_unfurler_oembed.go feature: Unfurl status links (#4033) 2023-10-13 13:25:34 +01:00
linkpreview_unfurler_opengraph.go feature: Unfurl status links (#4033) 2023-10-13 13:25:34 +01:00
linkpreview_unfurler_status.go chore: fetch contact with `StoreNodeRequestManager` (#4484) 2023-12-20 12:49:12 +00:00
local_notifications.go feat: new deeplink status-im->status-app (#4198) 2023-11-02 13:56:06 +08:00
message_builder.go add PinMessage and PinnedMessage (#2180) 2021-05-14 23:22:50 +02:00
message_persistence.go feat(BridgeMessage): Add new type of chat message content: BridgeMessage 2024-01-30 12:14:54 +01:00
message_validator.go feat(BridgeMessage): Add new type of chat message content: BridgeMessage 2024-01-30 12:14:54 +01:00
message_validator_test.go feat(BridgeMessage): Add new type of chat message content: BridgeMessage 2024-01-30 12:14:54 +01:00
messenger.go fix: fetch history when back online (#4651) 2024-01-30 18:13:18 +00:00
messenger_activity_center.go chore: return chats after mark all notifications read (#4432) 2024-01-10 09:36:33 +08:00
messenger_activity_center_test.go Comment out all logged flaky tests 2024-01-18 06:36:12 +00:00
messenger_auto_message.go Always use protobufs by reference & generate handlers 2023-08-22 12:08:54 +01:00
messenger_backup.go fix: a few adjustments for matterbridge 2024-01-08 14:21:26 +01:00
messenger_backup_handler.go feat(backup): add 1-1 chats and group chats to backup (#4073) 2023-10-12 17:15:05 -04:00
messenger_backup_test.go Comment out all logged flaky tests 2024-01-18 06:36:12 +00:00
messenger_base_test.go fix: clear waku envelopes cache when deleting a chat (#4621) 2024-01-30 13:43:34 +00:00
messenger_bookmarks.go Sync all devices after initial pairing (#3047) 2023-01-06 20:21:14 +08:00
messenger_bridge_message_test.go feat(BridgeMessage): Add new type of chat message content: BridgeMessage 2024-01-30 12:14:54 +01:00
messenger_browsers.go Issue 13813 -- Use messenger ns for browser CRUD (#2801) 2022-08-24 16:05:35 +02:00
messenger_browsers_test.go fix: close messenger's databases in tests 2023-11-28 20:59:25 +01:00
messenger_builder_test.go fix: clear waku envelopes cache when deleting a chat (#4621) 2024-01-30 13:43:34 +00:00
messenger_chats.go fix: clear waku envelopes cache when deleting a chat (#4621) 2024-01-30 13:43:34 +00:00
messenger_collapsed_community_categories.go Add collapsed community categories 2023-03-14 17:13:21 +00:00
messenger_collapsed_community_categories_test.go Fix collapsed tests 2023-03-16 13:40:20 +00:00
messenger_communities.go Fix encryption metadata issues #4613 2024-02-07 10:25:41 +00:00
messenger_communities_import_discord.go Fix encryption metadata issues #4613 2024-02-07 10:25:41 +00:00
messenger_communities_sharding_test.go fix: ignore outdated COMMUNITY_SHARD_KEY messages 2024-01-29 18:21:51 +01:00
messenger_community_for_mobile_testing.go refactor: update community access enum naming 2023-10-25 17:34:37 +02:00
messenger_community_metrics.go chore: remove boilerplate check of `communities.GetByID` clients 2024-01-10 18:58:17 +01:00
messenger_community_metrics_test.go refactor: update community access enum naming 2023-10-25 17:34:37 +02:00
messenger_community_shard.go chore: share shard info independently on waku version (#4507) 2023-12-22 17:43:38 +01:00
messenger_config.go refactor: introduce `newTestMessenger` 2024-01-22 13:08:58 +01:00
messenger_contact_requests_test.go Add basic peersyncing 2024-01-23 12:46:17 +00:00
messenger_contact_update_test.go fix: close messenger's databases in tests 2023-11-28 20:59:25 +01:00
messenger_contact_verification.go This PR (status-go) fixes #12821 (#4516) 2024-01-08 10:18:57 -08:00
messenger_contact_verification_test.go fix: close messenger's databases in tests 2023-11-28 20:59:25 +01:00
messenger_contacts.go This PR (status-go) fixes #12821 (#4516) 2024-01-08 10:18:57 -08:00
messenger_contacts_test.go fix: self-contact related flaky tests (#4312) 2023-11-13 20:07:35 +00:00
messenger_curated_communities.go [#4671] Increase interval between calls to Directory contract (#4672) 2024-02-05 14:01:59 +01:00
messenger_delete_message_for_everyone_test.go fix: close messenger's databases in tests 2023-11-28 20:59:25 +01:00
messenger_delete_message_for_me_test.go Add basic peersyncing 2024-01-23 12:46:17 +00:00
messenger_delete_message_test.go feat: use media server for community collectible images 2023-12-16 08:49:58 -03:00
messenger_discv5.go feat: Add DiscV5 to Waku2 (#2434) 2021-11-22 09:40:14 -04:00
messenger_edit_message_test.go fix: close messenger's databases in tests 2023-11-28 20:59:25 +01:00
messenger_emoji_test.go fix: close messenger's databases in tests 2023-11-28 20:59:25 +01:00
messenger_ens.go Request/Decline access to communities 2021-02-26 15:35:43 +01:00
messenger_group_chat.go only sync decisions/state of AC notifications (#3979) 2023-10-22 17:41:20 +08:00
messenger_group_chat_test.go fix: publish group member info (#4184) 2023-10-25 21:11:04 +03:00
messenger_handler.go Fix encryption metadata issues #4613 2024-02-07 10:25:41 +00:00
messenger_handler_test.go fix: close messenger's databases in tests 2023-11-28 20:59:25 +01:00
messenger_handlers.go Fix encryption metadata issues #4613 2024-02-07 10:25:41 +00:00
messenger_identity.go fix: set display name issue (#4642) 2024-02-01 19:13:41 +03:30
messenger_identity_display_name_test.go fix: set display name issue (#4642) 2024-02-01 19:13:41 +03:30
messenger_identity_image_test.go fix: close messenger's databases in tests 2023-11-28 20:59:25 +01:00
messenger_identity_social_links_test.go fix: close messenger's databases in tests 2023-11-28 20:59:25 +01:00
messenger_installations_test.go fix: close messenger's databases in tests 2023-11-28 20:59:25 +01:00
messenger_keycard.go chore: synchronization improvements applied to keycards 2023-07-11 15:14:49 +02:00
messenger_linkpreview.go feat: new `GetTextURLsToUnfurl` endpoint which extends GetURLs (#4294) 2023-11-17 13:32:37 +00:00
messenger_linkpreview_test.go feat: new `GetTextURLsToUnfurl` endpoint which extends GetURLs (#4294) 2023-11-17 13:32:37 +00:00
messenger_mailserver.go chore: sync history regardless of connection type (#4656) 2024-02-02 13:03:55 -04:00
messenger_mailserver_cycle.go fix: fetch history when back online (#4651) 2024-01-30 18:13:18 +00:00
messenger_mailserver_processMailserverBatch_test.go chore: store node requests manager (#4446) 2023-12-15 19:50:12 +00:00
messenger_maps.go fix: don't store ourselves as a contact (#3627) 2023-07-12 12:46:56 +03:00
messenger_mention.go [mention] fix relate issues to input segments (#3766) 2023-07-25 16:47:24 +08:00
messenger_mention_test.go [mention] fix relate issues to input segments (#3766) 2023-07-25 16:47:24 +08:00
messenger_messages.go replace mention name with public key (#4579) 2024-01-18 21:18:01 +08:00
messenger_messages_tracking_test.go chore: extend `CreateWakuV2Network` with `useShardAsDefaultTopic` 2024-01-24 14:24:57 +01:00
messenger_mute_test.go fx: deprecate profile and timeline chats (#3809) 2023-08-03 17:16:11 +03:00
messenger_offline_test.go fix: clear waku envelopes cache when deleting a chat (#4621) 2024-01-30 13:43:34 +00:00
messenger_peers.go feat: use protected topics for communities 2023-08-23 13:56:00 -04:00
messenger_peersyncing.go Add basic peersyncing 2024-01-23 12:46:17 +00:00
messenger_peersyncing_test.go refactor: introduce `newTestCommunitiesMessenger` 2024-01-24 14:24:57 +01:00
messenger_pin_message_test.go fix: close messenger's databases in tests 2023-11-28 20:59:25 +01:00
messenger_pin_messages.go This PR (status-go) fixes #12821 (#4516) 2024-01-08 10:18:57 -08:00
messenger_profile_showcase.go Feat: Save and dispatch profile showcase on wallet account change (#4674) 2024-02-07 12:30:56 +03:00
messenger_profile_showcase_test.go Fix encryption metadata issues #4613 2024-02-07 10:25:41 +00:00
messenger_reply_test.go Use base test messenger suite 2023-07-13 14:01:55 +01:00
messenger_response.go feat: implement token management settings for collectibles 2024-01-18 11:46:35 -03:00
messenger_response_test.go Fix duplicated notifications on receiving contact update 2023-02-14 09:22:37 +00:00
messenger_saved_address.go chore(savedaddresses)!: favourite property removed and primary key updated 2024-01-10 19:30:56 +01:00
messenger_send_images_album_test.go fix: close messenger's databases in tests 2023-11-28 20:59:25 +01:00
messenger_settings.go feat_: Allow to set custom nodes & log level 2023-11-29 09:31:02 +00:00
messenger_share_image_test.go (fix/status-go) fix profile picture update/removal (#4570) 2024-01-24 12:09:28 -08:00
messenger_share_urls.go chore: remove boilerplate check of `communities.GetByID` clients 2024-01-10 18:58:17 +01:00
messenger_share_urls_test.go Fix: Empty community tags in always empty slice, not nil (#4420) 2023-12-08 15:13:36 +07:00
messenger_status_updates.go feat: use protected topics for communities 2023-08-23 13:56:00 -04:00
messenger_status_updates_test.go fix: close messenger's databases in tests 2023-11-28 20:59:25 +01:00
messenger_store_node_request_manager.go chore: added and fixed some logs (#4577) 2024-01-23 18:20:01 +00:00
messenger_store_node_request_manager_config.go fix: remove store node envelopes ordering hotfix (#4622) 2024-01-27 13:02:12 +00:00
messenger_storenode_request_test.go Fix encryption metadata issues #4613 2024-02-07 10:25:41 +00:00
messenger_switcher_cards.go Persist switcher cards (#3049) 2023-01-05 21:41:57 +05:30
messenger_sync_activity_center_test.go New way of sharing communities (#4341) 2023-12-15 13:55:32 +02:00
messenger_sync_bookmark_test.go fix: close messenger's databases in tests 2023-11-28 20:59:25 +01:00
messenger_sync_chat_test.go fix: close messenger's databases in tests 2023-11-28 20:59:25 +01:00
messenger_sync_clear_history_test.go Use base test messenger suite 2023-07-13 14:01:55 +01:00
messenger_sync_contact_request_decision_test.go Fix/duplicate accept cr messages (#4367) 2023-12-05 12:22:20 +08:00
messenger_sync_customization_color_test.go fix: close messenger's databases in tests 2023-11-28 20:59:25 +01:00
messenger_sync_keycard_change_test.go fix: close messenger's databases in tests 2023-11-28 20:59:25 +01:00
messenger_sync_keycards_state_test.go fix: close messenger's databases in tests 2023-11-28 20:59:25 +01:00
messenger_sync_profile_picture_test.go Use base test messenger suite 2023-07-13 14:01:55 +01:00
messenger_sync_raw_messages.go feat: implement token management settings for collectibles 2024-01-18 11:46:35 -03:00
messenger_sync_saved_addresses_test.go chore(savedaddresses)!: favourite property removed and primary key updated 2024-01-10 19:30:56 +01:00
messenger_sync_settings.go fix (@status-go/stickers) Stickers still show in the recent list after being uninstalled (#4474) 2023-12-21 10:05:30 -08:00
messenger_sync_settings_test.go fix: clear waku envelopes cache when deleting a chat (#4621) 2024-01-30 13:43:34 +00:00
messenger_sync_verification_test.go fix: close messenger's databases in tests 2023-11-28 20:59:25 +01:00
messenger_sync_wallets_test.go Comment out all logged flaky tests 2024-01-18 06:36:12 +00:00
messenger_test.go (fix/status-go) fix profile picture update/removal (#4570) 2024-01-24 12:09:28 -08:00
messenger_testing_utils.go fix: clear waku envelopes cache when deleting a chat (#4621) 2024-01-30 13:43:34 +00:00
messenger_unread_test.go feat: Return seen/unseen messages count in MessnegerResponse (#4461) 2023-12-25 13:25:22 +07:00
messenger_wallet.go Feat: Save and dispatch profile showcase on wallet account change (#4674) 2024-02-07 12:30:56 +03:00
messenger_walletconnect.go Implement wallet connect session CRUD API 2022-08-19 12:32:00 +01:00
messenger_walletconnect_test.go Use base test messenger suite 2023-07-13 14:01:55 +01:00
persistence.go (fix/status-go) fix profile picture update/removal (#4570) 2024-01-24 12:09:28 -08:00
persistence_collapsed_community_categories.go Feat/sync activity center notification (#3535) 2023-06-10 10:00:17 +08:00
persistence_metrics.go feat: Collecting community messages count metrics (#3802) 2023-08-01 17:08:57 +04:00
persistence_profile_showcase.go Feat: Save and dispatch profile showcase on wallet account change (#4674) 2024-02-07 12:30:56 +03:00
persistence_profile_showcase_test.go Feat: Save and dispatch profile showcase on wallet account change (#4674) 2024-02-07 12:30:56 +03:00
persistence_quoted_message_test.go (fix/status-go) fix profile picture update/removal (#4570) 2024-01-24 12:09:28 -08:00
persistence_test.go feat(BridgeMessage): Add new type of chat message content: BridgeMessage 2024-01-30 12:14:54 +01:00
push_notification_test.go fix: close messenger's databases in tests 2023-11-28 20:59:25 +01:00
status_update.go Always use protobufs by reference & generate handlers 2023-08-22 12:08:54 +01:00
switcher_card.go Persist switcher cards (#3049) 2023-01-05 21:41:57 +05:30
transaction_validator.go Move message to common namespace 2020-09-09 21:22:12 +02:00
transaction_validator_test.go Move message to common namespace 2020-09-09 21:22:12 +02:00

README.md

status-go/protocol

This is an implementation of the secure transport and payloads which are a part of the Status Client specification.

This implementation uses SQLite and SQLCipher for persistent storage.

The payloads are encoded using protocol-buffers.

Content

  • messenger.go is the main file which exports Messenger struct. This is a public API to interact with this implementation of the Status Chat Protocol.
  • protobuf/ contains protobuf files implementing payloads described in the Payloads spec.
  • encryption/ implements the Secure Transport spec.
  • transport/ connects the Status Chat Protocol with a wire-protocol which in our case is either Whisper or Waku.
  • datasync/ is an adapter for MVDS.
  • applicationmetadata/ is an outer layer wrapping a payload with an app-specific metadata like a signature.
  • identity/ implements details related to creating a three-word name and identicon.
  • migrations/ contains implementation specific migrations for the sqlite database which is used by Messenger as a persistent data store.

History

Originally this package was a dedicated repo called status-protocol-go and was migrated into status-go. The new status-go/protocol package maintained its own dependencies until sub modules were removed and the root go.mod file managed all dependencies for the entire status-go repo.