Weekly Dev Update #25

Hey Y’all,

By the time this Dev Update is out, the Festive Freya mandatory upgrade period will have begun. This means ALL SERVICE NODE OPERATORS, ALL POOLS, AND ALL USERS NEED TO UPDATE to the Festive Freya release in anticipation for our December 13th network upgrade.

For Service Node operators you can get the new CLI wallet and Daemon here: https://github.com/loki-project/loki/releases/tag/v2.0.0

You can read more about the network upgrade and the features we are adding here: https://medium.com/@LokiNetwork/festive-freya-announcement-84ea86cc5574
Loki Core


LLARP / Lokinet

  • Progress continues on libllarp
    • Handle SIGTERM properly
    • Refactored how cascading configuration works
    • Removed auto mode for tun
    • Change AVX2 default to off, has to now be explicitly requested in a build
    • Make sure vanity nonce is updated
    • Change DHT router lookup to be able pass additional data
    • Added being able to tell difference between being overload or having no working endpoints
  • Vanity Hidden Service Address Generator
    • Started on reference (SLOW) (.loki) name generator
  • DNS library
    • Started infrastructure for .snode lookups
  • GitHub Pulse Stats for the last week: Excluding merges, 1 author has pushed 11 commits to master and 11 commits to all branches. On master, 42 files have changed and there have been 1,307 additions and 376 deletions.
  • Most changes can be found at:
    https://github.com/loki-project/loki-network/
  • Current version: v0.3.1
    https://github.com/loki-project/loki-network/releases/tag/v0.3.1

Loki Messenger

Thanks,  
Kee

Weekly Dev Update #24

Hey Y’all,

Big update this week… The Festive Freya release is coming closer and closer! Last week we launched the Festive Freya testnet – if you want to try out some bulletproof transactions, feel free to jump on the testnet by downloading the CLI binaries here: https://github.com/loki-project/loki/releases/tag/v2.0.0-rc

Loki Messenger


LLARP / Lokinet

  • Progress continues on libllarp
    • Don’t sign traffic
    • New threadpool, queue and queue manager implementations
    • Better marking of dead paths, make sure active paths are marked as such
    • Remove netns code
    • Don’t remove IP mapping when endpoint is removed
    • Don’t path build for exit nodes
    • Make exit buffers bigger
    • Make tun use aligned buffers for router identity
    • Make router write bidirectional
    • Static link pthread
    • Disable and bring back C++11
    • Limit pathset build rate more
    • Ping connections every 5s
    • Refactor time notation
    • Convert more c code to c++ in headers to make new event loop handler to accept c++ types
    • Raspberry Pi (RPI=1) fixes
    • Expunge loose sessions more vigorously
    • Start of lokid router whitelist integration
    • Fix shutdown leaks
    • Warn if not enough DHT peers
    • Don’t use profiling if router
    • Improve path roles / unbreak HS publishing
    • Communicate if connection fails
    • Config section for lokid
    • Convert typedefs to Using syntax
    • Handle port definition in config better
  • DNS library
    • Remove DNS_PORT
    • Make autoconfig smarter on Linux to avoid clashing with systemd
    • DNSd returns all results from DNSc now
    • Cleaned up output on cname, ptr and txt records
    • Remove unneeded sock parameters
    • Improve NS and SOA handling slightly
    • Converted DNSc constants to defines
    • Various code review and clean up
    • Decode the header fewer times
    • Start cleaning up dns binary
    • Turn down logging
  • GitHub Pulse Stats for the last week: Excluding merges, 4 authors have pushed 57 commits to master and 76 commits to all branches. On master, 168 files have changed and there have been 5,952 additions and 3,439 deletions.
  • Most changes can be found at: https://github.com/loki-project/loki-network/
  • Current version: v0.3.1 https://github.com/loki-project/loki-network/releases/tag/v0.3.1

Loki Core

Thanks,

Kee

Weekly Dev Update #23

Hey Y’all,

This will be the last Dev Update before the Festive Freya release goes live on testnet!

Loki core

Service Nodes


LLARP / Lokinet

  • Progress continues on libllarp
    • Got exit functionality working for the first time (not yet committed, big release coming)
    • Some warning cleanup
    • Make more DNS settings configurable
    • Change default bind of 127.3.2.1 to 127.0.0.1 to be more platform friendly
    • Restructure hidden service startup to make cascading configuration easier
    • Remove Windows 2003, added windows build instructions
  • DNS library
    • Fix PTR record reading when answer type doesn’t match question type
    • Don’t let NS records stomp A values
    • Make DNS internal structure safer
  • GitHub Pulse Stats for the last week: Excluding merges, 4 authors have pushed 17 commits to master and 71 commits to all branches. On master, 67 files have changed and there have been 1,818 additions and 296 deletions.
  • Most changes can be found at:
    https://github.com/loki-project/loki-network/
  • Current version: v0.3.1
    https://github.com/loki-project/loki-network/releases/tag/v0.3.1

Loki Messenger

Loki Storage Server


Loki GUI

We also made a pull request to Monero to add our code for IPv6 support, which will be included in the next Loki release. https://github.com/monero-project/monero/pull/4851

Thanks,

Kee

Festive Freya Announcement

We are super excited to announce the next release for Loki, which will contain Bulletproofs, along with a few larger quality of life changes for Service Node staking.

Features include:

  • Add Bulletproofs;
  • Lower transaction fees in accordance with Bulletproofs;
  • Add staking from the GUI wallet;
  • Governance wallet payout changed from once per block to once per 5,040 blocks, this reduces blockchain bloat;
  • IPV6 Support for Loki Daemon and Loki wallet CLI;
  • Zawy difficulty adjustment algorithm patch;
  • Service Node grace period added, Service Nodes that consecutively register within a time frame at the end of their staking period will not be deregistered;
  • Fix for the common “No known outputs” bug;
  • Integration testing framework;
  • Increased visibility of when locked amounts are being received;
  • Increased visibility for the unlock time of staking transactions;
  • Add the SwarmID field to all Service Nodes which provides the framework for the logical grouping of nodes;
  • Merge Monero upstream,  this includes over 1,000 commits that Monero has added over the last three months;
  • Merge Monero GUI Upstream which fixes a number of bugs in the GUI wallet;
  • Add versioning to Service Node uptime proofs — nodes reporting old versions past the hardfork will be de-registered.

Below is the schedule for the hardfork, with all changes available for testing on testnet between the 20th and the 30th of November. We encourage everyone to jump onto testnet soon so that the team can find bugs and update binaries before the 30th of November, when the final binaries will be released.

Who needs to update?

Everyone — including users, miners and Service Node operators. Once the hardfork occurs, you will not be able to send Loki unless you update to the new wallet.

Will my Service Node be affected?

Yes, in this hardfork we will be adding an extra field to uptime proofs: each node will report its version number, and nodes exhibiting the incorrect or no version number will be deregistered as a result of quorum testing. To ensure safe operation, you must update your Service Node to version 2.0.0 (Festive Freya) before 13 December 2018.

We have made an instructional video guide on how to safely update a Service Node, here.

Will Autostaking be affected?

Yes, although we are not making any specific changes to autostake, the introduction of bulletproofs makes old wallets incompatible with the protocol upgrades. This means that if you want to autostake, you will need to shutdown any running Loki wallets (listed as loki-wallet-cli) and start a new autostaking wallet that can submit transactions with bulletproofs.

Weekly Dev Update #22

Hey Y’all,

Another weekly Dev Update for you to peruse. Just a note, we’re moving Dev updates to Mondays instead of Fridays, so keep your eyes peeled each Monday.

Loki Messenger


LLARP / Lokinet

  • Released Lokinet 0.3.1: “Kuz Yolo”
  • Progress continues on libllarp
    • Started on Docker support
    • Fix endian in tun ip checksumming
    • Jsonrpc unit tests
    • Make sure HasPathToService actually has a sendable state
    • Client config gen to include a sample hidden service again
    • A lot of C++ correctness clean up
    • Always remove DHT node even if not valid
    • Update android version
    • Enable warnings as errors
    • Start to add tcp event support to windows
    • Updates for ancient raspi buildchain
    • Remove variable length assignments
  • DNS Library
    • Remove 2 second delay for prebuilt paths
  • GitHub Pulse Stats for the last week: Excluding merges, 6 authors have pushed 58 commits to master and 59 commits to all branches. On master, 164 files have changed and there have been 9,708 additions and 5,240 deletions.

Loki Core

Thanks,  
Kee

Weekly Dev Update #21

Hey Y’all,

Some bigger changes going in this week as we prepare for our next hardfork, the date of which should be announced soon so watch out for updates in the community channels!

Loki Core



LLARP / Lokinet

We welcome our new full-time Lokinet developer, Michael https://github.com/mt2309. He started by cleaning up our CMakefile – you will see more commits from him over the coming weeks

  • Progress continues on libllarp
    • Support older versions of rapidjson
    • Make jsonrpc server build optional
    • More event loop TCP support
    • Fix timers to use less energy for better laptop support
    • Establish a max ev write buffer
    • Static analysis clean up
    • Call DHT clean up timer
    • Flush kqueue on tick
    • Give HS look up 20s instead of 10s
    • FreeBSD build instruction
    • sh support for bootstrap
    • FreeBSD: add route, disable special tun behaviour
    • Man page updates
    • Modenise CMake build, now requires 3.7
    • Dtrace profiler start
    • Use event loop for time
    • Recuse Windows files from old builder repo
    • Added intel intrinsics for 32bit AVX
    • Clean up a lot of MSVC compiler support
    • Refactor Windows event loop and got it working correctly
  • DNS library
    • Static analysis fixes
    • MX and TXT record support
  • GitHub Pulse Stats for the last week: Excluding merges, 4 authors have pushed 57 commits to master and 58 commits to all branches. On master, 121 files have changed and there have been 17,151 additions and 993 deletions.
  • Most changes can be found at:
    https://github.com/loki-project/loki-network/
  • Current version: v0.3.0
    https://github.com/loki-project/loki-network/releases/tag/v0.3.0

Loki Messenger

Thanks,

Kee

Weekly Dev Update #20

Hey Y’all,

Lots of hiring this week! We have brought on two new members who will be joining us in the coming weeks – I will introduce them once they complete their first pull requests.

Daemon


Service Nodes


LLARP / Lokinet
We are looking for experienced sysadmins to run nodes that connect to our toynet. Please join 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
    • More memleak fixes
    • Fix DHT bug
    • Bundle libsodium
    • Network event changes
    • Drop ninja support, use make -jX now where X is the number of cores you have available
    • MacOS: Tun flush
    • Limit introset propagation
    • Always use random established path
    • Only publish introset to nearest router
  • libAbyss
    • More implementation
    • Start TCP event work
  • DNS library
    • Refactoring of data structures
  • GitHub Pulse Stats for the last week: Excluding merges, 3 authors have pushed 65 commits to master and 74 commits to all branches. On master, 254 files have changed and there have been 24,917 additions and1,841 deletions.
  • NOTE: Loki Builder compile helper is now deprecated and integrated with main repo.

Loki Messenger


Thanks,  
Kee

Weekly Dev Update #19

Hey Y’all,

Things are moving along at a fast pace as we hire more developers.
Service Nodes

TLDR: Be very careful if you are using autostake in an open or closed pool.


LLARP / LokinetIf you’re lucky and join our Discord, you might catch Jeff or Ryan, the developers of LLARP, live streaming as they code.
Again, special thanks to our community contributors, Despair (AKA Pickle Rick) and Cathugger.

  • Released LokiNET 0.3.0: “i can’t believe it’s not i2p”
    • https://github.com/loki-project/loki-network/releases/tag/v0.3.0
    • More robust packet support, better path building, improved DHT handling of RCs, MacOS run support, new config locations, more sane timeouts, .loki hidden service addresses, Reverse DNS support, and better memory management
    • We urge all Lokinet toy node operators to upgrade ASAP, as they’ll be unable to communicate as the network upgrades.
  • Progress continues on libllarp
    • Make tunnel interface fragmentation-aware
    • Cleanup UDP handling
    • One’s complement math improvements
    • Tunnel packet filtering at destination
    • Drop too large packets, instead of truncating
    • Additional streaming improvements: support DCCP (improving congestion control) and UDP-Lite
    • TCP checksum improvements
    • Better IPv4 bogon checking on RCs to prevent bogons to end up on public routers descriptions
    • Handle expire intro before building next message
    • Log endpoint when requesting introsets
    • Make sure event loop doesn’t overflow
    • On HS lookup failure, try random path
    • IP range tools
    • Handle case of no backup path better by
    • More unit tests
    • Win32: separate read/write event ports to avoid overwriting queue events
    • Win32: clean up and various define clean up
    • Fix memory leak in routing messages
    • Change UTP queue size from 128 to 1024
  • libAbyss 
    • Set up basic README
  • DNS library
    • Improve handling of .loki lookups
    • Reverse DNS lookups for dynamically handed out IP addresses
    • Handle various error conditions better
    • Make reverse DNS matching smarter
  • GitHub Pulse Stats for the last week: Excluding merges, 4 authors have pushed 36 commits to master and 36 commits to all branches. On master, 46 files have changed and there have been 758 additions and 325 deletions.
  • Compile helper (include assets, initial seed routers and dependencies)
    https://github.com/loki-project/lokinet-builder

Loki Core


Loki Messenger

Thanks,  
Kee

Weekly Dev Update #18

Hey Y’all,

Lots of code going in this week, with some big design decisions especially around Swarms and Loki Messenger.

There was also a new release of the the Loki CLI wallet and daemon, which all Service Node operators should update to. The release does not include consensus changes but does change how autostaking works, making users much less likely to lock funds unintentionally by autostaking.

The release is here: https://github.com/loki-project/loki/releases/latest and there is also a video guide on how to update here: https://youtu.be/u7kyAoBsQIY.


Service Nodes


LLARP / Lokinet

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

Special thanks to our new contributor, CatHugger, who’s pitched in and helped organise some of our network structures.

  • Progress continues on libllarp
    • Windows work on tunnel code
    • Only publish HS if we have a minimum of 3 paths
    • Don’t publish all path builds
    • Put router profiling back in place, adjust algorithm
    • Play with threading crypto functions again
    • Update logging time format to be more human readable
    • Make logger memory churn lower
    • Better handover logic
    • Initial admin API for managing a live router
    • Several memory corruption fixes
    • Clear re-used restructures in tun interface to stop info leaking
    • A ton of tun interface protocol clean up
    • Fix Introset expiration bug
    • Introset code refactoring
    • Implement “No Logging” level
    • Lots of minor fixes
    • Improve documentation
  • DNS library
    • Additional cleanup
    • Started DNS Unit tests
    • Initialisation everything in header
    • Disable SOA packet crashes for now
    • Question parsing correctionness
    • Improve documentation
  • GitHub Pulse Stats for the last week: Excluding merges, 4 authors have pushed 80 commits to master and 80 commits to all branches. On master, 79 files have changed and there have been 2,116 additions and 594 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 Messenger


Loki Core

Thanks,

Kee

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

Thanks,

Kee