reticulum @ 1.5.0
integrity
- size
- 12.2 MiB
- downloaded
- last checked
release notes
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
ChannelandBuffer - 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,rnprobeandrnx, 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
BackboneInterfaceEPOLL 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
Resourcecancellation on multi-segment resources, by JRG - Fixed
Resourcetransfer 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
rnstatusstatistics handling, by JRG - Fixed various bugs in packet, link and interface handling, by JRG
- Fixed per-interface burst count inconsistencies in
rnstatusoutput - Fixed
rngitfile resource operations failing on Windows - Fixed
rnodeconfconfig 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.
download
curl -fL -o 1.5.0.zip https://ratatoskr.space/pkg/reticulum/1.5.0.zip
printf '%s %s\n' '3fe02bdde08910bbd2bd5763ad9c4aee4d0f82978dda29c4148369e2198b56c5' '1.5.0.zip' | sha256sum -c -
$url = "https://ratatoskr.space/pkg/reticulum/1.5.0.zip"
$out = "1.5.0.zip"
Invoke-WebRequest -Uri $url -OutFile $out
if ((Get-FileHash $out -Algorithm SHA256).Hash.ToLowerInvariant() -ne "3fe02bdde08910bbd2bd5763ad9c4aee4d0f82978dda29c4148369e2198b56c5") { throw "sha256 mismatch" }
curl -fL -o 1.5.0.tar.gz https://ratatoskr.space/pkg/reticulum/1.5.0.tar.gz
printf '%s %s\n' 'f7b0ea40e79c3576b29d1a9fff94cbe58a4c80da9df05824f68c38d32f454818' '1.5.0.tar.gz' | sha256sum -c -
$url = "https://ratatoskr.space/pkg/reticulum/1.5.0.tar.gz"
$out = "1.5.0.tar.gz"
Invoke-WebRequest -Uri $url -OutFile $out
if ((Get-FileHash $out -Algorithm SHA256).Hash.ToLowerInvariant() -ne "f7b0ea40e79c3576b29d1a9fff94cbe58a4c80da9df05824f68c38d32f454818") { throw "sha256 mismatch" }
download via yggdrasil mesh
curl -fL -o 1.5.0.zip http://14cc7d57b5e70f679b851fe5b272ce17c70632ff4beb5b35ab64bc706b2485af.pk.ygg/pkg/reticulum/1.5.0.zip
printf '%s %s\n' '3fe02bdde08910bbd2bd5763ad9c4aee4d0f82978dda29c4148369e2198b56c5' '1.5.0.zip' | sha256sum -c -
$url = "http://14cc7d57b5e70f679b851fe5b272ce17c70632ff4beb5b35ab64bc706b2485af.pk.ygg/pkg/reticulum/1.5.0.zip"
$out = "1.5.0.zip"
Invoke-WebRequest -Uri $url -OutFile $out
if ((Get-FileHash $out -Algorithm SHA256).Hash.ToLowerInvariant() -ne "3fe02bdde08910bbd2bd5763ad9c4aee4d0f82978dda29c4148369e2198b56c5") { throw "sha256 mismatch" }
curl -fL -o 1.5.0.tar.gz http://14cc7d57b5e70f679b851fe5b272ce17c70632ff4beb5b35ab64bc706b2485af.pk.ygg/pkg/reticulum/1.5.0.tar.gz
printf '%s %s\n' 'f7b0ea40e79c3576b29d1a9fff94cbe58a4c80da9df05824f68c38d32f454818' '1.5.0.tar.gz' | sha256sum -c -
$url = "http://14cc7d57b5e70f679b851fe5b272ce17c70632ff4beb5b35ab64bc706b2485af.pk.ygg/pkg/reticulum/1.5.0.tar.gz"
$out = "1.5.0.tar.gz"
Invoke-WebRequest -Uri $url -OutFile $out
if ((Get-FileHash $out -Algorithm SHA256).Hash.ToLowerInvariant() -ne "f7b0ea40e79c3576b29d1a9fff94cbe58a4c80da9df05824f68c38d32f454818") { throw "sha256 mismatch" }
| artifact | format | size | hashes |
|---|---|---|---|
| 1.5.0.zip | zip | 12.3 MiB |
blake3-24 70956d5c553d3eda98e2ad98c85ffbd5cc48950417bc685a
sha256 3fe02bdde08910bbd2bd5763ad9c4aee4d0f82978dda29c4148369e2198b56c5
sha1 58382d3a0b2fd1e015d6d51c6ac282aeec1d2cc5
|
| 1.5.0.tar.gz | tar.gz | 12.1 MiB |
blake3-24 e1deb525631acef2bc8615be3df2c5d8eb559856d66bc8d8
sha256 f7b0ea40e79c3576b29d1a9fff94cbe58a4c80da9df05824f68c38d32f454818
sha1 e21f21f142e1e1c7093a79e2d99a73390749be26
|
install
http_archive(
name = "reticulum",
urls = ["https://ratatoskr.space/pkg/reticulum/1.5.0.tar.gz"],
integrity = "sha256-97DqQOecNXaynRqf/5TL5YpMgNqd8Fgk9ow40y9FSBg=",
strip_prefix = "reticulum-1.5.0",
)
.url = "https://ratatoskr.space/pkg/reticulum/1.5.0.tar.gz",
install via yggdrasil mesh
http_archive(
name = "reticulum",
urls = ["http://14cc7d57b5e70f679b851fe5b272ce17c70632ff4beb5b35ab64bc706b2485af.pk.ygg/pkg/reticulum/1.5.0.tar.gz"],
integrity = "sha256-97DqQOecNXaynRqf/5TL5YpMgNqd8Fgk9ow40y9FSBg=",
strip_prefix = "reticulum-1.5.0",
)
.url = "http://14cc7d57b5e70f679b851fe5b272ce17c70632ff4beb5b35ab64bc706b2485af.pk.ygg/pkg/reticulum/1.5.0.tar.gz",