Behind the scenes: Session network and client update

Behind the scenes: Session network and client update

May 19, 2022 / Kee Jefferys

Today we're going to be talking about some upgrades and updates that are going to be coming to Session over the coming weeks. While you might be used to reading about bigger, more bombastic changes like the calls release — these updates aren't quite as eye-catching, but they're still really important.

I'm going to cut to the chase and say that it is important for all users to update to the newest Session client. This will ensure your Session app is ready for the upcoming network upgrades we have planned. If you don't update your client, your app will not be able to communicate properly with the Session network — making things like receiving new messages unreliable.

Really it is always important to try and keep your app up-to-date, Session is being actively developed and updated all the time, and if you don't keep up to date with the latest version, you're missing out on all the hard work the Session devs put in to each and every release. 

The newest versions are always available here or via your app store.

Why the upgrade?

This upgrade will let us roll out some features and functionality that wasn't previously possible on Session. Making changes to the network takes a lot of effort and co-ordination, so we tend to avoid making these kinds of changes unless they're super necessary.

Some of the features which will be enabled will be user-facing, and others will be under-the-hood changes. We will be publishing some additional info about what these changes actually are (as well as how they work) in the near-future; regardless, to avoid incompatibilities between people using different clients, these features won't be appearing in your app until after the network upgrade is complete.

Upgrading our network

We've been working on some server-side changes for Session's decentralised network of nodes for some time — and we are really close to rolling those changes out.

But, because Session runs on a huge decentralised network, making changes isn't as simple as just flicking a switch. Over the course of a few weeks, server operators all over the world will need to individually upgrade their nodes to the latest version — it's a huge coordination effort involving hundreds of people living in different timezones, speaking different languages, and each leading their own lives.

Because of this, we have an upgrade period lasting a couple of weeks to make sure that everybody has a reasonable amount of time to learn about the changes they need to make and implement them on their nodes. All of these changes will happen behind the scenes, so Session users don't need to do anything.

Upgrading our app

In order to make sure the Session client is ready for the network-wide upgrades — we are going to be rolling out some client-side updates first. That update is already live — so you can update now and your client will immediately be compatible with the network upgrade. That's all you need to do! We've left a few weeks grace to make sure as many people as possible have updated before we roll out the network changes.

What are the changes?

Fair warning, things are about to get technical.

Currently, service nodes (Session servers) have a single inbox which stores all the messages they receive. That means that when a user goes to retrieve a message from a service node, they are checking for all messages types at once — DMs, closed group messages, and configuration messages (open group messages are not handled by service nodes).

With this update, service nodes will now manage separate inboxes for different kinds of messages. Not only does this make message-fetching much more efficient, it also allows for specific commands, such as deleting all configuration messages, or deleting all DMs from a swarm.

On top of that, we’re also going to be enforcing an authentication requirement in order to retrieve messages from service nodes. What this means is that the user requesting messages for a specific public key will need to provide a signature from the corresponding private key in order to fetch messages. This was added as an optional feature during our last network upgrade, but now it will become mandatory — which will make scraping attacks significantly more difficult to perform.

Tell your friends, tell your family

Because these updates are really important—but might not naturally attract the same level of attention as major feature releases—we want people in the Session community to help out how they can — by reminding the people around you that they need to keep their app up to date.

In the mean time — the best thing you can do right now is update your Session client to the latest version and stay tuned for more information over the coming weeks.

End note: You may see some people refer to the network upgrade as a ‘hardfork’ instead.

Join the movement to keep the internet private!

Chat with like-minded individuals in the Session Open Group Channel.

Friends don’t let friends use compromised messengers.

Sign up to the mailing list and start taking action!