@@ -18,7 +18,12 @@ The LEAP project aims to develop server-side infrastructure and client-side appl
...
@@ -18,7 +18,12 @@ The LEAP project aims to develop server-side infrastructure and client-side appl
The component of the LEAP infrastructure that addresses client-side encryption and synchronization is called [Soledad](https://soledad.readthedocs.io/). Until the beginning of 2017, we have developed a solution in python that works for Linux and serves as a base implementation for other platforms.
The component of the LEAP infrastructure that addresses client-side encryption and synchronization is called [Soledad](https://soledad.readthedocs.io/). Until the beginning of 2017, we have developed a solution in python that works for Linux and serves as a base implementation for other platforms.
## Challenges in data transfer and encryption pipeline
Many challenges arose during development. Some of them are performance issues related to the encryption and transfer pipeline both in server and client side, and had to be addressed in a careful way with the aid of a benchmarking / preformance measurement infrastructure:
Many challenges arose during development. Some of them are performance issues related to the encryption and transfer pipeline both in server and client side, and had to be addressed in a careful way with the aid of a benchmarking / preformance measurement infrastructure:
* on the server side, there are memory issues with the use of couchdb as a data backend for client-encrypted data, suggesting the use of backpressure techniques.
* on the server side, there are memory issues with the use of couchdb as a data backend for client-encrypted data, suggesting the use of backpressure techniques.
* on the client-side, transfer and decryption / re-encryption of email data were causing both delivery delays and memory exhaustion until the sync and crypto machineries were analysed, re-evaluated and re-worked.
* on the client-side, transfer and decryption / re-encryption of email data were causing both delivery delays and memory exhaustion until the sync and crypto machineries were analysed, re-evaluated and re-worked.