Utilizing safenetwork software to add asynchronous messaging on other messengers?

safenetwork encrypts, splits and transfers data onto the
computers which are part of the safenetwork.

Take for instance jami.

The drawback of a messenger like jami is, that it supports no asynchronous
messaging. One option to provide asynchronous messaging to jami would
be, if any running jami client would also act as a server for messages that could
not get delivered because the receiving device is off line or jami is not running
on the receiving device. How suitable would safenetwork software be for
adding this server functionality to jami? This is not about having safenetwork computers
acting as servers for messages which are undeliverable because the
receiving device is off line. It is about getting asynchronous messaging on the
jami clients utilizing the safenetwork software.

Is this something safenetwork software would be suitable for? How much
rewriting of the code would be required? Jami mentions safenetwork on
2.3. Swarm · Wiki · savoirfairelinux / jami-project · GitLab Thank you.


Are you looking for push messaging? Or for the device to inquire “???” to see if any messages available.

Safe is not really a push system for clients. Clients access the network for data/files/web page files/messages and obviously api calls responses.

We are not considering system messages as these are different things for the protocol to work etc.

App messages will be stored on the network and the App will have a way to send and receive messages by writing to a safe data store (design will determine which type/method) and messages will be read by reading the data store. There would be additional storage to control who get what etc etc.

Basically the App inquires by checking the data store for the account.


I will try to explain the user case.
jami.net is not an asynchronous messenger. If both sender and
recipient are not online simultaneously then no message is send.

The task is, how can you turn jami into an asynchronous
application. Jami has no server capability. Servers are not an option.
Let us say jami is installed on 1 million devices. Jami will be online on some
of them. And off line on the rest of devices. Safenetwork is free software.
In result anyone can take a functionality of safenetwork and build it
into another program. In this case jami. Right? It is not about jami
utilizing the safenetwork computers. It is about porting the safenetwork
vault software into the jami software and have the safenetwork vault software
ad asynchronous messaging to jami. The matter is, if the safenetwork
vault software is suitable for such a task and how much software rewriting
is required?
Is the safenetwork

You could create your own version of Safe Network and have Jami use that, but that’s extra work. Why not have Jami use Safe Network?


As @happybeing says there is no advantage in making a separate network for Jami. Some thoughts

  • you would require enough people using jami to be online at the same time to enable node communications to work.
  • similar you need nodes to be storing and the problem you said was both users have to be online. This suggests that not a high percentage will be on line at same time to enable the communications to be stable through the jami-safe network

Now if you use the Safe network and bind the client into jami then these advantages are there

  • network and storage of messages is guaranteed to be there and operational no matter how many jami users are online or offline at any time.
  • Jami users could become a Safe network node and be rewarded for storing the encrypted data chunks
  • The amount of rewriting is minimal and limited to calling the Safe network apis to write messages and to read messages. Each user has their own unique set of IDs to ensure safe delivery of messages that are available when they go back online

The Safe network is divided into 2 major parts for application programming.

  • The network itself made up of computers running the node software which provides the routing, messaging and storage.
  • The client program which runs on the computers wishing to access the network and utilise its resources. It sits in the background waiting for an application on the computer to use it via api calls and then it communicates with nodes to do the work.