Weekly Dev Update #86
Last week was a mad dash to get final parts of Session in place for the upcoming release this week. We also continued working on Lokinet 0.7.0 changes and and started building out the parts necessary for some incremental post-launch updates to Session.
Use wallet address by default in the sweep all (good to see more community developers)
Further work on LNS, with revisions being made in the pull request
Change default flag for text formatting
Fix testing in quorum checks
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 spent the week focused on the three pieces we want in a 0.7.0 release: gossip router announcements, RC lookup fixes, and DHT blinding. It is worth explaining these components in some detail:
Gossip announcements change the way routers send their Router Contact (RC) info to other routers. Previously, routers would broadcast a random set of the RCs they know about to the routers they have direct connections to. This didn’t scale well, so we worked on replacing it with a model based on the how lokid sends uptime proofs: each router broadcasts its RC to all connected routers once per hour.
RC lookups — needed when a client wants to build a path — were also broken on the larger network because not enough nodes were being considered when messages propagated across the DHT. We fixed this so that DHT lookups now consider all nodes (which required the gossip protocol change), which should make path builds both faster and considerably more reliable.
DHT blinding lets clients hide a .loki address when telling the network how to reach it. Instead of publishing a record that says “reach xyz123.loki through this router”, it now publishes the same data, but encrypted using the .loki address as a password, and using a derived public key to send the client contact record (the “introset”) to the network.
For example, supposing the derived public key for “xyz123” is “abc789”: anyone who wants to look up xyz123.loki will now lookup abc789 instead, get the encrypted data, then use “xyz123” to decrypt it and find the contact information. (This derived key also has a derived private key which is used to sign the record so that someone else can’t forge the “abc789” record). The end result: clients can provide their contact info, other clients can access that info, but no-one who doesn’t already know the .loki address can discover it from the data on the network. Thus, your .loki address stays completely hidden to everyone except those who you give it to.
Gossip announcements –
Various Windows updates, fixes, and enhancements for the next release
DHT blinding –
Add a mock “lokid” that sends fake SN list info for loopback testing
Add automated CI builds for non-amd64 architectures
Fix memory leak in current dev code
Loki Messenger iOS
File server and RSS feed proxying
Additional changes to closed groups
Multiple changes committed directly to dev branch
Loki Messenger Android
Closed groups user interface
File server and RSS feed proxying update build.gradle to work with repo combine
Update build.gradle to work with repo combine
Various bugfixes commited directly to dev
Loki Messenger Desktop
Remove source field from envelope
Handle token handling over the Service Node proxying
Remove disableTLS rejection to lokiRPC only
Remove various references to Signal
Update redesign comments
Add onboarding screens and settings items confirmations
Open conversation when accepting a friend request
Use local shortcuts instead of global shortcuts
Reload app with shortcuts
, add keyboard navigation
Fix text scrambling on registration page
Resolve file path issues
Trim user submitted pub keys
Fix disabled message state on friend requests
Refresh files in group panel
Remove mixpanel analytics
Fix profile image size bugs
Make sessionID a non editable textarea
Fix unit tests
Grab RSS feeds through proxy requests
Disable autojoin public groups
Auto focus new open chat input
Remove all P2P code
Loki MQ will be used as a dedicated communications layer for inter-snode communications to help more efficiently extend Service Node proxying
Create new repo and start work on this layer
You've got mail!
Sign up to our newsletter to keep up to date with everything Oxen.