Weekly Dev Update #100
Today marks our 100th Dev update — with no signs of slowing down! This week the Lokinet team continued to dig into an overhaul of the configuration files. The Session team pushed out a big iOS update which should fix many lingering issues; the team has now begun implementing the same bug fixes on Android too. The Loki Core team released a few new patches and dealt with a chainsplit caused by different nodes calculating different difficulties. Overall, a very busy week for our 100th Dev Update!
Keep a local cache of LNS names once decrypted (Thanks to community dev darcys22 for this one)
recalculate_difficulty: Batch work, avoid LMDB paging error
Further upstream merges
Encrypt name for owners keys (Allows the registrant to always decrypt the names they have registered once enabled)
Hotfix for nodes stuck on low difficulty chain split block
[LokiMQ] – added addressing schemes (regular and QR-friendly) for specifying connections to LokiMQ servers –
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: We’re now finished with the main config file overhaul and we’ve moved on to various small fixes for things that were depending on the past mysterious (undocumented, sometimes broken) behaviour. With the bulk of that out of the way we’re now continuing to look at at Lokinet performance fixes and other various changes for 0.8.A couple other items of note: we’ve decided to simplify the Lokinet code (and configuration file) to only support one single .loki endpoint per Lokinet instance, but we intend to make it easier for people who want to run multiple instances to do so (for example, to host multiple SNApps on the same machine).We have also had some discussions with the Session team, with a couple of goals: in the short term, to produce a special “Lokinet” build of Session that uses Lokinet for all communications; and in the longer term, planning how to bring Lokinet into the mobile builds of Session (in particularly iOS). Though we hope to bring full Lokinet connectivity to mobile devices, doing so introduces a number of obstacles, particularly on iOS: we intend to start with a more limited approach of creating a user-space library that would allow Session to communicate over Lokinet without needing to worry (yet) about implementing full Lokinet connectivity.
Lokinet PR Activity:
Last major piece of config overhaul –
Fix some pre-C++17 code that slipped through the cracks –
Improve error message wording on bad config options –
Network section configuration fixes –
Fix git version tag logic in cmake –
(Thanks to cathugger for the PR)
Fix router hive test suite code broken by recent config and C++17 changes –
Replace broken internal address abstraction class with a cleaner version, and deal with the fallout in the code of fixing the confusing interface –
Various experimental performance and overhead-related updates (no PR yet).
Fix infinite migration bug
Fix issues with multi-device closed group message routing
Closed group fixes
Fix device link fetching
Contact syncing fixes
Bug fixes for the friend request system
Replace `isForceHidden` by Computed `isSlaveThread`
Further code changes can be found here
Start mirroring iOS changes to Android, separating the Session and Signal protocols from each other
Session Push Notifications Server
Add code to follow devices when migrating swarms
Further information about protocol design added to the Wiki
Contacts panel reorganisation
Fixes for multi-device friend request system
Sender Keys implementation for closed groups
Split production and development environments
You've got mail!
Sign up to our newsletter to keep up to date with everything Oxen.