yggvault ratatoskr-space connected via regular web
Color theme
also available via yggdrasil mesh http://[203:b338:2a84:a18f:986:47ae:1a4:d8d3]/pkg/ratatoskr/v0.2.0
vault / ratatoskr / v0.2.0

ratatoskr @ v0.2.0

integrity

size
212.1 KiB
downloaded
last checked
overlays
go
detected
go module github.com/voluminor/ratatoskr
source https://github.com/voluminor/ratatoskr · available · github

release notes

New modules

mod/probe (formerly mod/traceroute) — #6, #8

Network topology explorer and path tracer for Yggdrasil. BFS-based peer topology scan via debug_remoteGetPeers, spanning tree path lookup, pathfinder hop resolution, and combined Trace() with automatic polling. Includes worker pool, TTL cache with self-terminating cleanup goroutine, and 13 sentinel errors. Renamed from mod/traceroute in #8 to better reflect the module's scope; CLI flags moved from -go.traceroute.* to -go.probe.*.

mod/ninfo#8

Remote NodeInfo querying. Query any Yggdrasil node's NodeInfo by public key or address. Supports multiple address formats: 64-char hex, <hex>.pk.ygg, [ipv6]:port, bare IPv6. Automatically parses sigils from ratatoskr nodes. Includes a retry loop to handle Yggdrasil's internal 6-second nodeinfo timeout on fresh nodes that haven't converged routing yet.

mod/sigils#8

Typed NodeInfo block system. Each sigil owns a set of keys and handles serialization/deserialization. Built-in sigils: info (name, description, software metadata), public (public key + derived addresses), inet (external IP/port), services (named endpoints). Assembled by sigil_core and integrated into both NodeInfo publishing and ninfo response parsing. Code generation (_generate/sigils) produces accessor boilerplate from sigil definitions.

mod/settings#7

Three-layer config resolution (defaults < config file < CLI flags), config chain resolution with cycle detection (up to 32 redirects), pretty-save with schema-defined field order and comments, Yggdrasil NodeConfig ↔ settings conversion. Comprehensive test coverage including cross-platform path handling.

New: CLI executable — #7

cmd/ratatoskr — full CLI with subcommands: key generation/mining/conversion, config generate/import/export with presets, peer probing, TCP/UDP port forwarding through Yggdrasil, and network topology traceroute.

New: CLI ask command — #8

-go.ask.addr queries a remote node's NodeInfo via the CLI. Text and JSON output. Accepts all address formats supported by mod/ninfo.

Changes

Fixes

Docs & CI

Full Changelog: https://github.com/voluminor/ratatoskr/commits/v0.2.0

download

unix · zip
curl -fL -o v0.2.0.zip https://ratatoskr.space/pkg/ratatoskr/v0.2.0.zip
                    printf '%s  %s\n' '8ac351689c4d4ed8bc6b39d102e8f068f4950f21add21f175bd9567c60de3a1c' 'v0.2.0.zip' | sha256sum -c -
windows · zip
$url = "https://ratatoskr.space/pkg/ratatoskr/v0.2.0.zip"
$out = "v0.2.0.zip"
Invoke-WebRequest -Uri $url -OutFile $out
if ((Get-FileHash $out -Algorithm SHA256).Hash.ToLowerInvariant() -ne "8ac351689c4d4ed8bc6b39d102e8f068f4950f21add21f175bd9567c60de3a1c") { throw "sha256 mismatch" }
unix · tar.gz
curl -fL -o v0.2.0.tar.gz https://ratatoskr.space/pkg/ratatoskr/v0.2.0.tar.gz
                    printf '%s  %s\n' '064b3dbdd16f3d30e32737ba4f137cf253e22cb9cf88b31db3e98da2889e5544' 'v0.2.0.tar.gz' | sha256sum -c -
windows · tar.gz
$url = "https://ratatoskr.space/pkg/ratatoskr/v0.2.0.tar.gz"
$out = "v0.2.0.tar.gz"
Invoke-WebRequest -Uri $url -OutFile $out
if ((Get-FileHash $out -Algorithm SHA256).Hash.ToLowerInvariant() -ne "064b3dbdd16f3d30e32737ba4f137cf253e22cb9cf88b31db3e98da2889e5544") { throw "sha256 mismatch" }
download via yggdrasil mesh
unix · zip
curl -fL -o v0.2.0.zip http://14cc7d57b5e70f679b851fe5b272ce17c70632ff4beb5b35ab64bc706b2485af.pk.ygg/pkg/ratatoskr/v0.2.0.zip
                    printf '%s  %s\n' '8ac351689c4d4ed8bc6b39d102e8f068f4950f21add21f175bd9567c60de3a1c' 'v0.2.0.zip' | sha256sum -c -
windows · zip
$url = "http://14cc7d57b5e70f679b851fe5b272ce17c70632ff4beb5b35ab64bc706b2485af.pk.ygg/pkg/ratatoskr/v0.2.0.zip"
$out = "v0.2.0.zip"
Invoke-WebRequest -Uri $url -OutFile $out
if ((Get-FileHash $out -Algorithm SHA256).Hash.ToLowerInvariant() -ne "8ac351689c4d4ed8bc6b39d102e8f068f4950f21add21f175bd9567c60de3a1c") { throw "sha256 mismatch" }
unix · tar.gz
curl -fL -o v0.2.0.tar.gz http://14cc7d57b5e70f679b851fe5b272ce17c70632ff4beb5b35ab64bc706b2485af.pk.ygg/pkg/ratatoskr/v0.2.0.tar.gz
                    printf '%s  %s\n' '064b3dbdd16f3d30e32737ba4f137cf253e22cb9cf88b31db3e98da2889e5544' 'v0.2.0.tar.gz' | sha256sum -c -
windows · tar.gz
$url = "http://14cc7d57b5e70f679b851fe5b272ce17c70632ff4beb5b35ab64bc706b2485af.pk.ygg/pkg/ratatoskr/v0.2.0.tar.gz"
$out = "v0.2.0.tar.gz"
Invoke-WebRequest -Uri $url -OutFile $out
if ((Get-FileHash $out -Algorithm SHA256).Hash.ToLowerInvariant() -ne "064b3dbdd16f3d30e32737ba4f137cf253e22cb9cf88b31db3e98da2889e5544") { throw "sha256 mismatch" }
artifact format size hashes
v0.2.0.zip zip 214.5 KiB
blake3-24 9ba36ee77994ef82e74178cadbf34536fa6340ef2c5b386a
sha256 8ac351689c4d4ed8bc6b39d102e8f068f4950f21add21f175bd9567c60de3a1c
sha1 15fc67fde8688ff6fea041ab1b02b517d70dc2ce
v0.2.0.tar.gz tar.gz 153.6 KiB
blake3-24 3b3b14383ccabf79ec14224780a309645a2cb71d165202ad
sha256 064b3dbdd16f3d30e32737ba4f137cf253e22cb9cf88b31db3e98da2889e5544
sha1 adec641a4bfb6fce6761bf32629967cecb4c41fb

go module archive

module zip with the module path rewritten to this mirror; fetched by go get through the GOPROXY route

artifact format size hashes
v0.2.0.zip zip 217.2 KiB
blake3-24 cf8d118eedd0894f973fa069cd8aae9e6a8f386c1981a261
sha256 d473d95eceae68aff301e582bdedab1d26ad6882df4e759d45f6496bf3c5a4ae
sha1 ad0ae9f95f864884c6234dd258dd33d335fb1004

install

bazel
http_archive(
    name = "ratatoskr",
    urls = ["https://ratatoskr.space/pkg/ratatoskr/v0.2.0.tar.gz"],
    integrity = "sha256-Bks9vdFvPTDjJze6TxN88lPiLLnPiLMds+mNooieVUQ=",
    strip_prefix = "ratatoskr-v0.2.0",
)
zig
.url = "https://ratatoskr.space/pkg/ratatoskr/v0.2.0.tar.gz",
go
GOPROXY=https://ratatoskr.space GOSUMDB=off go get ratatoskr.space/pkg/ratatoskr@v0.2.0
install via yggdrasil mesh
bazel
http_archive(
    name = "ratatoskr",
    urls = ["http://14cc7d57b5e70f679b851fe5b272ce17c70632ff4beb5b35ab64bc706b2485af.pk.ygg/pkg/ratatoskr/v0.2.0.tar.gz"],
    integrity = "sha256-Bks9vdFvPTDjJze6TxN88lPiLLnPiLMds+mNooieVUQ=",
    strip_prefix = "ratatoskr-v0.2.0",
)
zig
.url = "http://14cc7d57b5e70f679b851fe5b272ce17c70632ff4beb5b35ab64bc706b2485af.pk.ygg/pkg/ratatoskr/v0.2.0.tar.gz",
go
GOPROXY=http://14cc7d57b5e70f679b851fe5b272ce17c70632ff4beb5b35ab64bc706b2485af.pk.ygg GOSUMDB=off GOINSECURE=14cc7d57b5e70f679b851fe5b272ce17c70632ff4beb5b35ab64bc706b2485af.pk.ygg/* go get 14cc7d57b5e70f679b851fe5b272ce17c70632ff4beb5b35ab64bc706b2485af.pk.ygg/pkg/ratatoskr@v0.2.0
← v0.3.0v0.1.0 →