Weekly Dev Update #89
This week we continued to focus on collecting user feedback and bug reports, and integrating cross-platform fixes into the Session clients. The Lokinet team started to focus on some final issues found with path handovers, in the leadup to Lokinet 0.7.0. On the Loki Core side, we worked on additional LNS functionality, such as being able to change LNS mappings post-registration.
Rewrite the integration tests to use named pipes for IPC
Loki name service – update mapping via transaction
Make copy of change_dts in transfer_selected_rct
Lower Blink fees and make Blink default
Fix “Priority = 5” not submitting Blink transactions
Allow get_staking_requirement to return current height
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: Various fixes, optimizations, and diagnostics. Lokinet stability during establishing and staying connection is now very good with the recent changes. We now have a good idea of the remaining occasional disconnection issue on handover: it happens because published introsets include intros that are expiring before the introset and, potentially, leaving the client with no valid paths (even though it has a valid introset). We expect to fix this early this week, and we’re aiming to tag a release candidate later in the week.
We also added a small but useful feature this week: allowing clients to suppress publishing introsets when they don’t want to be reachable by other clients. Previously, every client was always reachable (as long as you knew the address), but there are many cases where a client might not want to be reachable; this change allows clients to establish new outbound connections but not allow incoming connections.
Load Catch2 test suite apparatus via submodule instead of keeping a copy –
Reduce introset publishing frequency to 2.5 minutes instead of 1.25 minutes
Spread out path builds to avoid needing to build many simultaneously
Allow clients to be unreachable by not publishing introsets
Make routers not talk to older, incompatible routers
Second half of introset redundancies: implement redundant introset publishing
Handle multiple introset lookup responses properly
Better debugging output for paths
Fix internal JSONRPC interface to allow passing arguments
Update travis-ci osx build to stop failing
Switch to newer introsets when received
Remove abseil dependency. Abseil is a library conglomeration (similar to boost), created by Google. Its interfaces are decidedly non-modern and we decided it was more a nuisance than a benefit.
(also PRs #1110, #1122, #1123). Dropping abseil makes the build faster and produces smaller binaries.
Change log format to output UTC, and provide a more friendly formatting of the uptime ([+1h12m07.123s] instead of [+4327123 ms]) — included in the abseil PRs, above.
Database usage fixes
More work on light mode
Fixes for the closed groups PR
Untie profile picture upload from Server auth token
Fix background application crashes when a push notification is received
Fix bug with Service Node proxying
Fix threading issues to improve performance
Fix application freezing when joining an open group
Fix some edge case race conditions
Change disabled input bar on closed groups
Increase the random Service Node pool size
Confirm user wants to leave group on swipe
Closed group synchronization
Address bug causing duplicate open group messages
Fix “Invite friends” modal scrollbar
Group profile image upload
Sync open groups on device syncing
Display continue Session when signing in with seed
Improve closed group syncing
Only enable signing when certificate is indentified
Allow clicking outside of a modal to cancel selection
Loki MQ is a communications layer for various components that allows more efficient and reliable communication between service nodes and storage servers and, in the future, between wallets and nodes and other loki components.
Miscellaneous fixes to requests behaviour (
Completed string_view to fill in the missing C++17 string_view interfaces (needed for loki-network, which now uses a copy of loki-mq’s string_view)
Ongoing dev work for non-SN communications (no branch yet).