github markqvist/Reticulum 1.5.0
RNS 1.5.0

3 hours ago

This release significantly improves the core Transport handling of RNS, with a priority-based ingress queue backend, substantially improved efficiency of both data and management traffic handling, more efficient ingress/egress limiting, and a long list of other improvements and bugfixes.

Changes

  • Added ability to include operator LXMF address in interface discovery information
  • Added prioritized inbound traffic processing to the transport core
  • Added configurable inbound queue lengths for data, announce, path request and ingress limited traffic
  • Added early filtering for inbound traffic and improved filtering performance
  • Added per-interface protocol violation tracking
  • Added in-flight path requests tracking
  • Added request and response batching for in-flight path requests
  • Added ability to signal blackholed status in announce validation return to the API
  • Added full link MDU utilization for Channel and Buffer
  • Added inbound queue pressure and queue drop statistics to rnstatus
  • Added detailed announce and path request traffic flow statistics per interface to rnstatus
  • Added total announce and PR count/frequency stats per interface to rnstatus
  • Added data flow speed and composition stats to rnstatus
  • Added protocol violation stats to rnstatus
  • Added active link statistics to rnstatus
  • Added blocked IP listings to rnstatus
  • Added medium bitrate based timeout calculation helpers and RPC functions, by Zenith
  • Added extra timeout for discovery path requests when slow interfaces are online, by Zenith
  • Added adaptive timeouts to rncp, rnpath, rnprobe and rnx, by Zenith
  • Added adaptive timeout calculation to rngit, by Zenith
  • Improved overall Transport inbound processing speed
  • Improved path request handling significantly
  • Improved path request ingress limiting and accounting
  • Improved egress limiting responsiveness under high incoming path request load
  • Improved transport background job processing
  • Improved early rejection of packets with excessive hop counts
  • Fixed BackboneInterface EPOLL receive starvation and ingress control timestamp handling, by JRG
  • Fixed potential transport deadlock on receipts lock when callbacks sends packets, by JRG
  • Fixed transport state handling edge cases in path request, announce queue and pending link processing, by JRG
  • Fixed link watchdog not resetting on receive exceptions, by JRG
  • Fixed Resource cancellation on multi-segment resources, by JRG
  • Fixed Resource transfer part index alignment and rebinding, by JRG
  • Fixed stale BLE device reference in RNodeInterface, by JRG
  • Fixed ratchet cleaning retained preservation, by JRG
  • Fixed invalid rnstatus statistics handling, by JRG
  • Fixed various bugs in packet, link and interface handling, by JRG
  • Fixed per-interface burst count inconsistencies in rnstatus output
  • Fixed rngit file resource operations failing on Windows
  • Fixed rnodeconf config summary incorrectly displaying WiFi mode
  • Fixed speedtest example aborting transfers on stale link status
  • Updated documentation, including manual sections on queue tuning and interface discovery options

Verified Retrieval
You can retrieve and verify this release over Reticulum using the built-in rngit release utility. To retrieve only the installation .whl package, and the release manifest for future updates, you can use:

rngit release rns://7649a50d84610232d1416b41d2896aff/reticulum/reticulum fetch "latest:rns-*.whl" --signer bc7291552be7a58f361522990465165c

To download all artifacts, including the documentation and source archive, you can use the following command:

rngit release rns://7649a50d84610232d1416b41d2896aff/reticulum/reticulum fetch latest:all --signer bc7291552be7a58f361522990465165c

Release Signatures
Release artifacts include a signed rsm release manifest and rsg signature files that can be validated against the RNS release signing identity <bc7291552be7a58f361522990465165c> using rngit or rnid. To perform an offline verification of all release artifacts using a manifest:

rngit release rns_*.rsm verify --signer bc7291552be7a58f361522990465165c

To verify release artifacts using individual rsg files, while also verifying the manifest itself, download the rsm and rsg signatures, make sure they are in the same folder as the release artifact, and run rnid signature verification with the release identity as the required signer:

rnid -i bc7291552be7a58f361522990465165c -V rns_*.rsm *.rsg

The rnid utility will then verify the signatures, and display whether they are valid. If the signature cannot be verified, the release has been tampered with and should be discarded.

Don't miss a new Reticulum release

NewReleases is sending notifications on new releases.