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

ruview @ v1228

integrity

size
59.6 MiB
downloaded
last checked
source https://github.com/ruvnet/RuView · available · github

release notes

Automated release from CI pipeline

Changes: cog-ha-matter (ADR-116 P4): Ed25519 signing layer for witness chain

Closes the cryptographic-attestation gap in ADR-116 §2.2: every witness event can now be signed by the Seed's Ed25519 key, with verify available to any auditor holding the public key.

Module shape (src/witness_signing.rs, kept separate from witness:: so the hash chain stays usable without dalek linked in — important for the wasm32 audit-verifier variant we'll ship later):

Key design point: signature covers the SAME canonical bytes witness::hash_event hashes. That means:

  1. A signed event commits to the entire event content (kind, payload, timestamp, seq, prev_hash) — no field can be retroactively changed without invalidating both the hash AND the signature.

  2. The signature implicitly commits to the event's chain position via prev_hash — splicing a signed event into a different chain breaks verification.

Adds ed25519-dalek = "2.1" to cog-ha-matter (already in workspace via ruv-neural, version kept aligned).

9 new tests:

60/60 cog tests green (51 → 60). Key management is intentionally out of scope here — the cog runtime reads the Seed's key from the Cognitum control plane's secure store (separate concern).

ADR-116 P4 now ⁵⁄₆: ✅ mDNS record, ✅ chain, ✅ JSONL, ✅ file persistence, ✅ Ed25519 signing; ⏳ responder + embedded broker.

Co-Authored-By: claude-flow ruv@ruv.net

Docker Image: ghcr.io/ruvnet/RuView:bb154d4e7808622aff34bfea79a1b8d4f3021a61

download

unix · zip
curl -fL -o v1228.zip https://ratatoskr.space/pkg/ruview/v1228.zip
                    printf '%s  %s\n' 'bca84a02ec524e734d4670e6065f52196d5aa4ccd5e405f6f401c017572b6547' 'v1228.zip' | sha256sum -c -
windows · zip
$url = "https://ratatoskr.space/pkg/ruview/v1228.zip"
$out = "v1228.zip"
Invoke-WebRequest -Uri $url -OutFile $out
if ((Get-FileHash $out -Algorithm SHA256).Hash.ToLowerInvariant() -ne "bca84a02ec524e734d4670e6065f52196d5aa4ccd5e405f6f401c017572b6547") { throw "sha256 mismatch" }
unix · tar.gz
curl -fL -o v1228.tar.gz https://ratatoskr.space/pkg/ruview/v1228.tar.gz
                    printf '%s  %s\n' 'd997abea23364c072e2e0b6e2139679b7ba8a78fe9b91d36376aa5303a036124' 'v1228.tar.gz' | sha256sum -c -
windows · tar.gz
$url = "https://ratatoskr.space/pkg/ruview/v1228.tar.gz"
$out = "v1228.tar.gz"
Invoke-WebRequest -Uri $url -OutFile $out
if ((Get-FileHash $out -Algorithm SHA256).Hash.ToLowerInvariant() -ne "d997abea23364c072e2e0b6e2139679b7ba8a78fe9b91d36376aa5303a036124") { throw "sha256 mismatch" }
download via yggdrasil mesh
unix · zip
curl -fL -o v1228.zip http://14cc7d57b5e70f679b851fe5b272ce17c70632ff4beb5b35ab64bc706b2485af.pk.ygg/pkg/ruview/v1228.zip
                    printf '%s  %s\n' 'bca84a02ec524e734d4670e6065f52196d5aa4ccd5e405f6f401c017572b6547' 'v1228.zip' | sha256sum -c -
windows · zip
$url = "http://14cc7d57b5e70f679b851fe5b272ce17c70632ff4beb5b35ab64bc706b2485af.pk.ygg/pkg/ruview/v1228.zip"
$out = "v1228.zip"
Invoke-WebRequest -Uri $url -OutFile $out
if ((Get-FileHash $out -Algorithm SHA256).Hash.ToLowerInvariant() -ne "bca84a02ec524e734d4670e6065f52196d5aa4ccd5e405f6f401c017572b6547") { throw "sha256 mismatch" }
unix · tar.gz
curl -fL -o v1228.tar.gz http://14cc7d57b5e70f679b851fe5b272ce17c70632ff4beb5b35ab64bc706b2485af.pk.ygg/pkg/ruview/v1228.tar.gz
                    printf '%s  %s\n' 'd997abea23364c072e2e0b6e2139679b7ba8a78fe9b91d36376aa5303a036124' 'v1228.tar.gz' | sha256sum -c -
windows · tar.gz
$url = "http://14cc7d57b5e70f679b851fe5b272ce17c70632ff4beb5b35ab64bc706b2485af.pk.ygg/pkg/ruview/v1228.tar.gz"
$out = "v1228.tar.gz"
Invoke-WebRequest -Uri $url -OutFile $out
if ((Get-FileHash $out -Algorithm SHA256).Hash.ToLowerInvariant() -ne "d997abea23364c072e2e0b6e2139679b7ba8a78fe9b91d36376aa5303a036124") { throw "sha256 mismatch" }
artifact format size hashes
v1228.zip zip 59.6 MiB
blake3-24 f5c2d17b0f7d13c082635de947f4c856f9a79bc3181bfedc
sha256 bca84a02ec524e734d4670e6065f52196d5aa4ccd5e405f6f401c017572b6547
sha1 a79ad331041606f2267e5af3d25290c3deeef5ed
v1228.tar.gz tar.gz 58.1 MiB
blake3-24 e3476216a13685c8b84cb300e065e9ceb1780bf0df68bc28
sha256 d997abea23364c072e2e0b6e2139679b7ba8a78fe9b91d36376aa5303a036124
sha1 4ca13a964206f7199cc06455bc2529e7eebeb1c4

install

bazel
http_archive(
    name = "ruview",
    urls = ["https://ratatoskr.space/pkg/ruview/v1228.tar.gz"],
    integrity = "sha256-2Zer6iM2TAcuLgtuITlnm3uop4/puR02N2qlMDoDYSQ=",
    strip_prefix = "ruview-v1228",
)
zig
.url = "https://ratatoskr.space/pkg/ruview/v1228.tar.gz",
install via yggdrasil mesh
bazel
http_archive(
    name = "ruview",
    urls = ["http://14cc7d57b5e70f679b851fe5b272ce17c70632ff4beb5b35ab64bc706b2485af.pk.ygg/pkg/ruview/v1228.tar.gz"],
    integrity = "sha256-2Zer6iM2TAcuLgtuITlnm3uop4/puR02N2qlMDoDYSQ=",
    strip_prefix = "ruview-v1228",
)
zig
.url = "http://14cc7d57b5e70f679b851fe5b272ce17c70632ff4beb5b35ab64bc706b2485af.pk.ygg/pkg/ruview/v1228.tar.gz",
← v1229v1227 →