Skip to content

Commit

Permalink
blog: v4.5 (#1886)
Browse files Browse the repository at this point in the history
* blog: v4.5

* update post, images

* update readme, post
  • Loading branch information
epoberezkin committed Feb 5, 2023
1 parent 06a2f7e commit af173ee
Show file tree
Hide file tree
Showing 9 changed files with 129 additions and 15 deletions.
20 changes: 13 additions & 7 deletions README.md
Original file line number Diff line number Diff line change
Expand Up @@ -86,6 +86,8 @@ You can use SimpleX with your own servers and still communicate with people usin

Recent updates:

[Feb 04, 2023. v4.5 released - with multiple user profiles, message draft, transport isolation and Italian interface](./blog/20230204-simplex-chat-v4-5-user-chat-profiles.md).

[Jan 03, 2023. v4.4 released - with disappearing messages, "live" messages, connection security verifications, GIFs and stickers and with French interface language](./blog/20230103-simplex-chat-v4.4-disappearing-messages.md).

[Dec 06, 2022. November reviews and v4.3 released - with instant voice messages, irreversible deletion of sent messages and improved server configuration](./blog/20221206-simplex-chat-v4.3-voice-messages.md).
Expand All @@ -94,8 +96,6 @@ Recent updates:

[Sep 28, 2022. v4.0: encrypted local chat database and many other changes](./blog/20220928-simplex-chat-v4-encrypted-database.md).

[Sep 1, 2022. v3.2: incognito mode, support .onion server hostnames, setting contact names, changing color scheme, etc. Implementation audit is arranged for October!](./blog/20220901-simplex-chat-v3.2-incognito-mode.md).

[All updates](./blog)

## Make a private connection
Expand Down Expand Up @@ -148,10 +148,11 @@ What is already implemented:
8. To protect against replay attacks SimpleX servers require [tlsunique channel binding](https://www.rfc-editor.org/rfc/rfc5929.html) as session ID in each client command signed with per-queue ephemeral key.
9. To protect your IP address all SimpleX Chat clients support accessing messaging servers via Tor - see [v3.1 release announcement](./blog/20220808-simplex-chat-v3.1-chat-groups.md) for more details.
10. Local database encryption with passphrase - your contacts, groups and all sent and received messages are stored encrypted. If you used SimpleX Chat before v4.0 you need to enable the encryption via the app settings.
11. Transport isolation - different TCP connections and Tor circuits are used for traffic of different user profiles, optionally - for different contacts and group member connections.

We plan to add soon:

1. Message queue rotation. Currently the queues created between two users are used until the contact is deleted, providing a long-term pairwise identifiers of the conversation. We are planning to add queue rotation to make these identifiers temporary and rotate based on some schedule TBC (e.g., every X messages, or every X hours/days).
1. Automatic message queue rotation. Currently the queues created between two users are used until the queue is manually changed by the user or contact is deleted. We are planning to add automatic queue rotation to make these identifiers temporary and rotate based on some schedule TBC (e.g., every X messages, or every X hours/days).
2. Local files encryption. Currently the images and files you send and receive are stored in the app unencrypted, you can delete them via `Settings / Database passphrase & export`.
3. Message "mixing" - adding latency to message delivery, to protect against traffic correlation by message time.

Expand Down Expand Up @@ -196,16 +197,19 @@ If you are considering developing with SimpleX platform please get in touch for
- ✅ Disappearing messages (with recipient opt-in per-contact).
- ✅ "Live" messages.
- ✅ Contact verification via a separate out-of-band channel.
- 🏗 Multiple user profiles in the same chat database.
- 🏗 Optionally avoid re-using the same TCP session for multiple connections.
- ✅ Multiple user profiles in the same chat database.
- ✅ Optionally avoid re-using the same TCP session for multiple connections.
- ✅ Preserve message drafts.
- 🏗 File server to optimize for efficient and private sending of large files.
- 🏗 Improved audio & video calls.
- 🏗 SMP queue redundancy and rotation (manual is supported).
- 🏗 Reduced battery and traffic usage in large groups.
- 🏗 Preserve message drafts.
- 🏗 Support older Android OS and 32-bit CPUs.
- Ephemeral/disappearing/OTR conversations with the existing contacts.
- Access password/pin (with optional alternative access password).
- Local app files encryption.
- Video messages.
- Improved navigation and search in the conversation (expand and scroll to quoted message, scroll to search results, etc.).
- Message delivery confirmation (with sender opt-in or opt-out per contact, TBC).
- Feeds/broadcasts.
- Web widgets for custom interactivity in the chats.
Expand All @@ -215,7 +219,9 @@ If you are considering developing with SimpleX platform please get in touch for
- Privacy-preserving identity server for optional DNS-based contact/group addresses to simplify connection and discovery, but not used to deliver messages:
- keep all your contacts and groups even if you lose the domain.
- the server doesn't have information about your contacts and groups.
- Channels server for large groups and broadcast channels.
- Hosting server for large groups, communities and public channels.
- Message delivery relay for senders (to conceal IP address from the recipients' servers and to reduce the traffic).
- High capacity multi-node SMP relays.

## Join a user group

Expand Down
103 changes: 95 additions & 8 deletions blog/20230204-simplex-chat-v4-5-user-chat-profiles.md
Original file line number Diff line number Diff line change
@@ -1,19 +1,17 @@
---
layout: layouts/article.html
title: "SimpleX Chat v4.5 released – with multiple chat profiles, message draft, transport isolation and Italian language!"
title: "SimpleX Chat v4.5 released – with multiple chat profiles, message draft, transport isolation and Italian language!"
date: 2023-02-04
# image: images/20230103-disappearing1.png
# imageBottom: true
# previewBody: blog_previews/20230103.html
image: images/20230204-profiles2.png
imageBottom: true
previewBody: blog_previews/20230204.html
permalink: "/blog/20230204-simplex-chat-v4-5-user-chat-profiles.html"
---

# SimpleX Chat v4.5 released – with multiple user profiles, message draft, transport isolation and Italian language!
# SimpleX Chat v4.5 released – with multiple user profiles, message draft, transport isolation and Italian interface!

**Published:** Feb 4, 2023

TODO this is a post stub to reserve permalink

## What's new in v4.5

- [multiple chat profiles](#multiple-chat-profiles).
Expand All @@ -22,14 +20,103 @@ TODO this is a post stub to reserve permalink
- [reduced battery usage](#reduced-battery-usage).
- [private filenames](#private-filenames).

Also, we added [Italian language interface](#french-language-interface), thanks to the users' community and Weblate!
Also, we added [Italian interface](#italian-interface), thanks to the users' community and Weblate!

### Multiple chat profiles

<img src="./images/20230204-profiles1.png" width="288"> &nbsp;&nbsp; <img src="./images/20230204-profiles2.png" width="288">

Incognito mode added in v3.2 allows to share a random profile name with your new contacts. It is quite popular - more than half of users connecting to our support profile use it. In case when you just want a throw-away profile name that doesn't share any information about you it is more convenient that creating a new profile for each contact manually.

But there are many cases when a disposable profile is not good enough enough, and you want to create separate profiles - one for your family, another for work, yet one more for your online contacts that only know your pseudonym rather than your real name.

Previously this was only possible by using separate chat databases. This version adds a chat profile manager that allows you to create unlimited number of profiles, and very quickly switch them. All these profiles are connected at the same time.

When you delete profile you no longer need you have two options - either delete both profile data on the device and any message queues that this profile created on SMP servers (e.g., when it is more important to leave as few meta-data on the servers), or delete only profile data without making any network requests (when it is more important to delete all data from the device quickly).

While most app settings apply to all profiles, several settings are profile-specific.

You can separately set which SMP servers are used to create the new contacts in each profile (via Network settings). Please note: changing SMP servers in one profile won't affect other profiles, and all new profiles are created with preset servers.

You can also separately set the retention time for messages in each profile (via Database settings).

Also, you have a different contact address in each profile, and different Chat preferences.

All other settings are used for all profiles. While you may want to have different settings for different security levels, it is much better to use different devices in this case.

### Message draft

<img src="./images/20230204-draft1.png" width="288"> &nbsp;&nbsp; <img src="./images/20230204-draft2.png" width="288">

Previously, if you've closed the conversation with unsent message, this message was disappearing. While it might be better for privacy, there are several scenarios when it is very inconvenient:

- you need to compose the message from several parts that you copy from other conversations.
- some messages arrives that you need to answer urgently, so you can leave unfinished message to return to it later.

Both are now possible - the message you wrote, together with any attachments, and even a voice message you recorded, will remain available as draft until you either close the app or leave another message unfinished - while you can send the message in another chat without losing the current draft, there can be only one draft at a time.

### Transport isolation

<img src="./images/20230204-transport.png" width="288">

Even when you create different chat profiles you are still connecting to your contacts via the same device. Transport isolation, by default, makes connections belonging to the same profile use different TCP sessions, so while the server sees the same IP address, it doesn't see it as the same client connection. If you are connecting via Tor using SOCKS proxy (e.g. Orbot app on Android) not only the app will use different TCP sessions, it will also use separate Tor circuits for connections from different profiles, preventing the servers and network observers seeing this as traffic coming from the same device.

There is an additional BETA option to use a separate transport connection for each contact and group member connection you have – it is available in Network settings if you enable dev tools. In case you have a large number of contacts or participate in large groups across all profiles in the app, you should not use this option, as it may create a lot of traffic and also can exceed the quota for TCP sockets. Also creating a lot of separate Tor circuits can be slow. We will be testing at which number of connections this option starts failing and by the time it's available without dev tools we will add some limits.

### Reduced battery usage

Battery usage is one of the biggest complaints of SimpleX Chat users. The main reason for excess traffic is inefficient retry strategies for Network operations in these cases:

- the message queue capacity is exceeded - the app will keep retrying to send the message until there will be capacity.
- the server is not available, e.g. if you connect to somebody via their server, and they later disable it. This case creates much less extra traffic than the first.

This version makes retries for exceeded queue capacity 10x less frequent and adds SMP protocol extension that will allow to reduce retries even further by the next version. It works in the following way:
- when the sender encounters "queue quota exceeded" error, the sender stops trying to send the message.
- the server also takes not of that error.
- once recipient receives all messages from this queue, the server will notify the recipient that the sender had "queue quota exceeded" error.
- the recipient will then send a special message to the sender client to instruct it that it can resume delivery.
- the sender can still occasionally try sending the message, e.g. once every hours, but it won't need to retry once every few minutes as it does now.

Reducing battery usage is our big priority - we expect to reduce it by at least 2-3x in the next few months.

### Private filenames

When you send an image or voice message they are sent as files with filenames including timestamp. We didn't see it as a problem, as files are sent together with the message, and messages have server-side timestamps anyway. But the users pointed out that the timestamp we used was in the local timezone, and therefore leaked the country (or continent) where the user is located. A simple workaround was to reset timezone to UTC, and that is what most users who need to protect their location do anyway. But this version resolves it - these filenames now include UTC timezones – no workarounds are needed.

### Italian interface

Thanks to our users' community and to Weblate providing a free hosting plan for SimpleX Chat translations we can now support more languages in the interface – this version adds Italian and many more is in progress - Chinese, Japanese, Czech, Dutch, etc.

You can [contribute the translation](https://github.com/simplex-chat/simplex-chat/tree/stable#translate-the-apps) of the apps to your language too!

## SimpleX platform

Some links to answer the most common questions:

[How can SimpleX deliver messages without user identifiers](./20220511-simplex-chat-v2-images-files.md#the-first-messaging-platform-without-user-identifiers).

[What are the risks to have identifiers assigned to the users](./20220711-simplex-chat-v3-released-ios-notifications-audio-video-calls-database-export-import-protocol-improvements.md#why-having-users-identifiers-is-bad-for-the-users).

[Technical details and limitations](https://github.com/simplex-chat/simplex-chat#privacy-technical-details-and-limitations).

[How SimpleX is different from Session, Matrix, Signal, etc.](https://github.com/simplex-chat/simplex-chat/blob/stable/README.md#frequently-asked-questions).

Please also see our [website](https://simplex.chat).

## Help us with donations

Huge thank you to everybody who donated to SimpleX Chat!

We are prioritizing users privacy and security - it would be impossible without your support.

Our pledge to our users is that SimpleX protocols are and will remain open, and in public domain, - so anybody can build the future implementations of the clients and the servers. We are building SimpleX platform based on the same principles as email and web, but much more private and secure.

Your donations help us raise more funds – any amount, even the price of the cup of coffee, makes a big difference for us.

See [this section](https://github.com/simplex-chat/simplex-chat/tree/master#help-us-with-donations) for the ways to donate.

Thank you,

Evgeny

SimpleX Chat founder
10 changes: 10 additions & 0 deletions blog/README.md
Original file line number Diff line number Diff line change
@@ -1,5 +1,15 @@
# Blog

Feb 4, 2023 [SimpleX Chat v4.5 released](./20230103-simplex-chat-v4.4-disappearing-messages.md)

- multiple chat profiles.
- message draft.
- transport isolation.
- reduced battery usage.
- private filenames.

Also, we added [Italian language interface](#french-language-interface), thanks to our users and Weblate!

Jan 3, 2023 [SimpleX Chat v4.4 released](./20230103-simplex-chat-v4.4-disappearing-messages.md)

- disappearing messages.
Expand Down
Binary file added blog/images/20230204-draft1.png
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Binary file added blog/images/20230204-draft2.png
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Binary file added blog/images/20230204-profiles1.png
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Binary file added blog/images/20230204-profiles2.png
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Binary file added blog/images/20230204-transport.png
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
11 changes: 11 additions & 0 deletions website/src/_includes/blog_previews/20230204.html
Original file line number Diff line number Diff line change
@@ -0,0 +1,11 @@
<p>v4.5 is released:</p>

<ul class="mb-[12px]">
<li>multiple chat profiles!</li>
<li>message draft</li>
<li>transport isolation</li>
<li>reduced battery usage</li>
<li>private filenames</li>
</ul>

<p>Also, the app interface is now available in Italian - thanks to Weblate and our users!</p>

0 comments on commit af173ee

Please sign in to comment.