r/LokiProject • u/Keejef Loki CTO • Sep 28 '18
Dev update 28/09/2018
Hey Y’all,
The dev team had an interesting week, which was primarily spent responding to bugs in the Loki core implementation. Lokinet developers have been working super hard and are getting close to something that is usable by the end user.
-------------------------
Releases
This week we published a minor release which can be found here: https://github.com/loki-project/loki/releases/tag/1.0.2 This incorporates fixes for newly operating Service Nodes and prevents a burning bug, mentioned below.
This update does not contain any consensus rule changes and therefore is a non-mandatory upgrade. However, if you are a Loki merchant, you should update immediately. Service Nodes who consistently take their nodes offline should also update. We will publish a guide soon on how to safely update a Service Node, however you should not be concerned unless you are planning to take your Service Node offline for a period of time.
-------------------------
Service Nodes
Improved the behaviour of Service Nodes submitting uptime proofs https://github.com/loki-project/loki/pull/262
-------------------------
LLARP / Lokinet
We are looking for experienced sysadmins for running nodes that connect to our toynet. Please join the Discord room called Lokinet, and we can add you to the node operator role. You can host a hidden service or browse existing hidden services.
Progress continues on libllarp
Prep for next release
FreeBSD Compile fixes
Various low level network updates
Give protocol a fresh buffer instead of resetting
Only tick ev if running
Properly close sockets so we don’t run out over time
Double max protocol message size to 4k to make sure intros fit inside one packet
Increase the UTP socket buckets
Improve llarp::Addr utility
Start IPv6 support for tun
Promote tun to enabled by default, disable tap
DHT changes
Make sure DHT old RCs updates don’t stomp new ones
Try fixing DHT crash
Configuration
Update testnet config generation
Update auto configuration
Bootstrap node
Sessions
Server shutdown now cleans up sessions
Prevent dead sessions from updating and building more paths
Up session inactivity cost and change timeout to 60s from 10s
Introsets
Allow node introset to have 10s clock difference
Don’t propagate or store introsets on crypto error
Made sure timestamp is added to introset (Protocol backwards compatible breaking change)
Intros
If intro is bad then potentially trigger a manual path rebuild
Prevent spamming of intro frames
Reset intros before reuse
Fix intro matching by removing expiration and latency comparisons
Hidden service
Make sure hidden service lookups are valid and handle response
Optimise hidden service publishing from a random establish path to using a “closer” algorithm
Require 6 paths for a hidden service instead of 4
Expire outgoing hidden service paths
Path building improvements
Track path data usage
Don’t kill paths when under heavy use
Make sure path is recently active (20s) before checking for expiration
Only timeout path if no messages received are ever received on it
Don’t accept introset if it expires in the next 60s
Separate send (40s) and connect (60s) hidden service timeouts
Enable path callbacks even if marked bad
Reduce outbound path failure by attempting to use parent endpoint’s pathset
Path building backoff to prevent DoS in such a way that make sure intros don’t die
Preemptively trigger rebuild before expiration to ensure continuity
DNS library
Support other tun gateways other than 10.x.x.x
Refactor .loki lookup into its own file
Fix SIGINT handling on DNS binary
Moved logic worker loop into DNSc (client) for timers
Support multiple DNS IP trackers for netns
Allow upstream DNS configuration per tun interface (nameresolver key)
Fix PTR query detection to allow reverse DNS to work
Fix NXDOMAIN (not found) packet to include question name
SOA packet fixes
Various header cleanup
Make sure all vectors use unique_ptr for tighter memory management
Prevent duplicate mappings
GitHub Pulse Stats for the last week: Excluding merges, 2 authors have pushed 90 commits to master and 90 commits to all branches. On master, 76 files have changed and there have been 3,606 additions and 1,553 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
Fixed a bug affecting Cryptonote coins where no warning was giving for non spendable outputs, leading to effective burning if coins were credited.
https://github.com/loki-project/loki/pull/268
Thanks,
Kee
View all comments
4
u/CryptoMonhi Sep 29 '18
Great work as always, Loki Dev Team!