This week we continued our work refactoring Session to improve multi-device, message sending reliability, and friend request logic. Our focus has been on Android, which is nearly finished, and Desktop, which is just getting started. The Lokinet team continued working on performance improvements, exit node support, and internode performance testing. Finally, the Loki Core team continued its work on merging in relevant upstream commits from Monero.
- Stub suspend_readline; move -lreadline into epee https://github.com/loki-project/loki-core/pull/1159
- console_handler: Fix wallets not exiting https://github.com/loki-project/loki-core/pull/1158
- Fix RPC Crash https://github.com/loki-project/loki-core/pull/1157
- RPC: Admin should be set when we are not restricted https://github.com/loki-project/loki-core/pull/1156
- RandomX upstream changes https://github.com/loki-project/loki-randomXL/pull/1
- Ongoing C++17 code upgrades (WIP, no PR yet)
- Ongoing upstream Monero changes merging (WIP, no PR yet)
If you’re on our Discord you can catch Jeff, the lead developer of LLARP, live streaming as he codes at https://www.twitch.tv/uguu25519. He typically streams on Tuesday mornings, 9am – 12pm Eastern (US) time.
What went on last week with Lokinet: This past week in Lokinet saw us continue with performance fixes, more work on adding exit support via SNApps, the beginnings of a framework to report and act on peer router performance, and numerous improvements to our continuous integration testing framework.
The statistics and testing framework will allow us to have routers report (via their lokid) on other routers so that we can start detecting and penalizing Service Nodes that do not have a properly running lokinet router. Our initial plan for 0.8 is to enforce a few basic checks and collect various additional bandwidth statistics to be enabled later after we see how well they work.
The SNApp-based exit work is aimed at allowing anyone to set up an exit node on a SNApp (instead of only on service node routers) so that exit nodes can be decoupled from the snode itself. This will allow more flexibility in terms of exits: for example, Service Node operators would be able to set up an exit node on a different host (or different hosting provider) that is more suitable for exit node traffic than their service node itself.
Lokinet PR Activity:
- Initial peer statistics logging framework (WIP towards router peer testing) (https://github.com/loki-project/loki-network/pull/1283)
- Additional performance improvements to routing (https://github.com/loki-project/loki-network/pull/1260)
- Allow routing exit traffic via SNApps (https://github.com/loki-project/loki-network/pull/1272)
- Fix windows builds from recent changes (https://github.com/loki-project/loki-network/pull/1276, 1278, 1279, and 1281)
- Add CI build using newly released GCC-10 compiler (https://github.com/loki-project/loki-network/pull/1280)
- Fix various unit tests that were failing randomly (https://github.com/loki-project/loki-network/pull/1274)
- Various fixes for compiling on MacOS caused by recent C++17 transition, and add MacOS compilation to our new Drone CI platform (https://github.com/loki-project/loki-network/pull/1282)
- Drop travis-ci completely since we now have virtually all its functionality via Drone (https://github.com/loki-project/loki-network/pull/1285)
- Add cmake option to disable link-time optimization for faster dev builds (https://github.com/loki-project/loki-network/pull/1284)
- Add static build with checks that it really isn’t linking to anything unexpected (https://github.com/loki-project/loki-network/pull/1286)
- Upload build artifacts from the latest dev branch and pull requests to a new https://builds.lokinet.dev upload location. We currently upload static Linux and macOS builds and .debs for recent Debian/Ubuntu, and will likely expand on this in the future.
- Fix threads not being shown after sync https://github.com/loki-project/session-ios/pull/196
- Fix deadlocks https://github.com/loki-project/session-ios/pull/195 , https://github.com/loki-project/session-ios/pull/194
- Update seed nodes https://github.com/loki-project/session-ios/pull/191
- A full list of commits can be found here https://github.com/loki-project/session-ios/commits/dev https://github.com/loki-project/session-android-service/commits/dev
- Separate the Signal and Session code on Android https://github.com/loki-project/session-android/pull/192
- A full list of commits can be found here https://github.com/loki-project/session-android/commits/dev
Session Push Notifications Server
- Additional work to reproduce bugs https://github.com/loki-project/session-push-notification-server/commits/dev
- Additional documentation added https://github.com/loki-project/session-protocol-docs/wiki
- Message class refactoring https://github.com/loki-project/session-desktop/pull/1140
- Multi device friend request refactor https://github.com/loki-project/session-desktop/pull/1138
- Additional integration tests https://github.com/loki-project/session-desktop/pull/1137
- Medium groups part 2 https://github.com/loki-project/session-desktop/pull/1134
- Backwards compatibility changes https://github.com/loki-project/session-desktop/pull/1135