, Weekly Dev Update #17

Weekly Dev Update #17

Hey Y’all,

Another weekly Dev Update for everyone.

Service Nodes

LLARP / Lokinet

If you’re lucky and join our Discord, you might catch Jeff or Ryan, the developers of LLARP, live streaming as they code: https://www.twitch.tv/uguu25519 https://www.twitch.tv/neuroscr

  • Progress continues on libllarp
    • Optimise the router’s inbound links data structure
    • More keepalive tuning
    • Support tunnel “packet info” for better multiplatform support
    • MacOS tunnel support is now fixed
    • No longer stores Introsets when forwarding
    • Improve autoconfiguration
      • A default “hidden service” is made for client access, and configuration option to enable, disable or auto-config
      • -g for router auto-config, -c for client auto-config
      • Detect if you’re already using any private network ranges
      • Make it play more nicely with existing hidden service definitions
      • Don’t overwrite configs unless -f is present
    • Give lookup more time: adjust timeout from 5s to 10s
    • Only consider introductions that don’t expire in the next 2 minutes
    • Don’t establish outbound context for previously made inbound sessions
    • “cache convo tag and drop traffic”
    • Deallocate previous Introset before replacing
    • Brought Windows build up to date
    • Make sure Windows build doesn’t crash if only one network interface
    • Made AVX2 codepath 32-bit clean
    • Fix bencoding for ILP32/LLP64
    • MacOS/BSD (kqueue) updates
    • Try to improve path handovers
    • Improve transit message padding to the nearest MESSAGE_PAD_SIZE
    • Adjusted DST awareness on timestamps
    • Fix DHT double free
    • Remove dead code
    • Path Info hashing
    • Swap out intro with next intro as it is safe
    • Update protocol docs
    • Give paths more time to build: timeouts changed from 15s to 30s
    • Minimum time between each path build changed from 5s to 10s
    • Minimum path latency adjusted: from 10s to 5s
    • Path timeout changed from 20s to 10s
    • Stricter profiling of paths/routers
    • 2 path build fails before kicked (changed form 8)
    • Try to build path 5 times before failing
    • Don’t prematurely close sessions
  • DNS library
    • Rely on llarp::Addr more to allow easier IPv6 support
    • Make DNS server port configurable at compile time (DNS_PORT)
    • Made sure DNS relay works with default “hidden service”
    • Update DNS daemon to just run a router (similar to Lokinet), scheduled to be downgraded to just a integration test
    • Mapping an address now does it on all hidden services/tunnel as there is only one DNS server (on most non-“netns-linux” platforms)
  • GitHub Pulse Stats for the last week: Excluding merges, 3 authors have pushed 93 commits to master and 93 commits to all branches. On master, 86 files have changed and there have been 3,898 additions and 4,874 deletions.
  • Most changes can be found at: https://github.com/loki-project/loki-network/
  • Current version: v0.2.2 (next one coming soon!) https://github.com/loki-project/loki-network/releases/tag/v0.2.2
  • Compile helper (include assets, initial seed routers and dependencies) https://github.com/loki-project/lokinet-builder

Loki Core

  • In process of merging a huge chunk of upstream changes, this includes Bulletproofs.
  • IPv6 first implementation is now finished; this will add client support for IPv6 connections.  Just working on the final details now. https://github.com/loki-project/loki/pull/280