Skip to content

Lokinet v0.9.10

Compare
Choose a tag to compare
@majestrate majestrate released this 15 Nov 01:28
· 72 commits to dev since this release
v0.9.10
1e5e34b

Lokinet 0.9.10

This is a major upgrade for Lokinet clients that brings a brand new GUI with many improvements, plenty of client-side fixes and upgrades, a new more reliable network handling code for Windows, and a completely overhauled macOS release (which has been absent for the past several releases).

For service nodes, this releases is recommended as part of regular upgrades, but is not required.

All platforms

  • We now include the lokinet bootstrap file in the executable itself rather than needing to bundle or download it separately. This is now the default if no bootstrap file is specifically configured.
  • Refactored log subsystem that produces better, cleaner log output.
  • logs can now be sent to a subscriber via our zmq rpc, which is used by the new GUI to show log output.

All clients

  • New GUI written in electron.
  • Large refactor of DNS subsystem internals

Windows client

  • We now use wintun instead of the old OpenVPN tun/tap driver for the low-level virtual lokinet network. Wintun is more reliable and better maintained.
  • We now use windirect to properly intercept and handle system DNS requests, which more robustly captures DNS traffic and should prevent DNS leaks that have previously happened sometimes in Windows.
  • Fix various crashes that could occur on startup or shutdown.

MacOS client

  • Lokinet now supports macOS again. (This is our first macOS release in quite a while, so if things aren't working quite right, please report the issues!)
  • We had previously stopped supporting it because our workaround to run on macOS stopped working: this new release uses proper Apple-sanctioned interfaces to run as a VPN system extension.
  • Because it is now registered as a VPN, you can start/stop lokinet from the macOS Network Settings page; the GUI still works to control/monitor Lokinet, but doesn't have to be running in order for Lokinet to be active.
  • Unfortunately, Apple does not allow unsigned (or self-signed) code to run as a system extension, which means you cannot compile for yourself on macOS (unless you have your own, paid-for developer account). We wish this wasn't the case, but if this matters to you then macOS is the wrong platform for you.

Linux client

  • Lokinet DNS resolver can now bind to multiple UDP addresses to handle queries.
  • By default Lokinet DNS still binds to 127.3.2.1:53, but not also listens on random high port on 127.0.0.1 for better compatibility with systemd-networkd.
  • added a new option (disabled by default) to enable raw DNS packet interception on on the lokinet vpn interface for advanced network configurations.

Service-node changes

  • Add a log statement about our own .snode address on startup
  • Overhaul how listen IPs/ports are specified in the [bind] section of the config. The old syntax was confusing. Most common setups will continue to work just fine, but some exotic configurations on systems with multiple IP addresses may need the config fixed (if this is necessary, lokinet will immediately fail at startup with a suitable error message in the logs).
  • Revise how we handle service node lists after startup and registration activation, which should address reported issues about lokinet needing a restart after being staked.
  • Lokinet now recognizes (and ignores) an old, obsolete bootstrap file that might be present on very old installations (installed around 2 years ago or more). This obsolete file could prevent a router that goes offline for several days from coming back online, because it would lose any way to connect to existing nodes. If we encounter such a file we now just ignore it, and use the built-in default fallback.

Build system

  • Remove some dead code
  • Simplify handling of libraries that can either be built as a submodule or used as a system library.
  • Make lokinet version tag overrideable via -DLOKINET_VERSIONTAG (this has been patched into the deb builds for a very long time; this moves that patch into the main code to make it easier for other packaging systems that might want to use it).
  • Bump bundled openssl version for static builds to the latest 3.x release (instead of 1.1.x).
  • Removed "shell hooks" option (the code wasn't desirable and has been long-gone).

Miscellaneous

  • Restructure the repository docs directory
  • Add demo keygen script for .loki keys
  • Refactor network utils subsystem, add mock and unit tests for testing if auto detection of network addresses works
  • Remove invalid nodedb entries on startup
-----BEGIN PGP SIGNED MESSAGE-----
Hash: SHA256

sha256 hashes:
ae695d49373f6f648d2de2c2910c60e6e7aad3632c02e4d6c1f478d04d18e091  lokinet-0.9.10-win64.exe
40fc9587eac68b1ef39315309dec59f5d97211f8bf3028591db8e3c22a0e8f2d  lokinet-macOS.0.9.10.dmg
63425acf842a047704036390f311ef21bbbf1c1788dfb4eb3c490afdf9d36ccd  lokinet-v0.9.10.tar.xz

this was signed with the key [email protected] (025C02EE3A092F2D)
this key can be found at: https://github.com/majestrate.gpg

this messages was signed at 2026 EDT on nov 14 2022 (2022-11-15T01:09:13Z)

btc top block: 000000000000000000078efb893c59c5a381ce7bbf65c01bedc6f9524e51855a 
height: 763200 
-----BEGIN PGP SIGNATURE-----

iIYEARYIAC4WIQQs5vJ0MTiCW3p+Uh0CXALuOgkvLQUCY3Lq8hAcamVmZkBsb2tp
bmV0LmlvAAoJEAJcAu46CS8twIIBAI1p6Zj5Xn6C0gKiTb5dItF5duv7O35TpAsj
umLiWD9QAQCN1jzoft2M942n4eZPNLNXoTkUZ7OCFy6yaga8re3zBQ==
=HUJ+
-----END PGP SIGNATURE-----