ruview @ v1089
integrity
- size
- 55.6 MiB
- downloaded
- last checked
release notes
Automated release from CI pipeline
Changes: adr-107: cross-installation federation with secure aggregation — privacy chain closes (#725)
Closes the cross-installation federation work explicitly deferred from ADR-105 + ADR-106. Direct extension of both.
Five-layer defence (extends ADR-106's three): 1-3 (ADR-106): Primitive isolation + grad clipping + DP noise 4 NEW: Secure Aggregation (Bonawitz 2016) -- aggregator sees only sum 5 NEW: Per-installation embedding-space rotation key -- cross-install re-ID prevented
Counter-intuitive privacy win: cross-installation amplification IMPROVES privacy. With N=10 installations each at sigma_local=1.0:
- Per-installation epsilon (50 rounds): 2.5
- Cross-installation effective sigma = sqrt(N) * sigma_local = 3.16
- Cross-installation epsilon (50 rounds): ~1.5 <-- STRONGER
Cross-installation federation actually improves privacy through the amplification effect, as long as the crypto protocol is implemented correctly.
Bandwidth: ~2 MB/install/round, monthly ~70-200 MB/install (within+cross). <0.1% of typical home broadband.
Implementation budget:
- ADR-105 baseline: 500 LOC
- ADR-106 layers: +300 LOC
- ADR-107 SA layer: +530 LOC
- TOTAL ruview-fed: ~1,330 LOC, ~6 weeks
The privacy chain closes:
- R6/R6.1 physics forward model
- R3 embedding-space re-ID
- R14 ethical opt-in / on-device / override
- R15 biometric primitive catalogue
- ADR-105 within-installation federation
- ADR-106 DP-SGD + primitive isolation
- ADR-107 cross-installation + secure aggregation
Every layer has a formal guarantee, implementation path, and honest scope. No remaining unspecified privacy gap. Cross-installation training can ship without violating any constraint surfaced by the research loop.
Threat model: 8 threats, every row has a mitigation layer.
- Compromised aggregator views deltas -> Layer 4 SA
- Cross-installation re-ID -> Layer 5 rotation
- Sybil -> Layer 4 dropout + Krum + N >= 5
- Quantum-resistant: out-of-scope ADR-108 (Kyber substitution)
Honest scope:
- Cross-org PKI = operational, not architectural
- Krum+SA composition proof is non-trivial; reference implementations needed before production
- sqrt(N) amplification assumes installation independence
- Drop-out reconstruction has known attack surfaces (Bonawitz §4.3)
- Per-cog suitability varies (cog-wildlife yes, cog-maritime-watch no)
Composes:
- R3+R15 enforcement now technical, not just policy
- R7 mincut extends to cross-installation adversarial detection
- R12 PABS works at any installation in local rotated embedding space
- R10/R11 cogs benefit asymmetrically
Coordination: ticks/tick-22.md, no PROGRESS.md edit.
Docker Image:
ghcr.io/ruvnet/RuView:9b5e317f99fabc63b78dcca9852f325f82301e22
download
curl -fL -o v1089.zip https://ratatoskr.space/pkg/ruview/v1089.zip
printf '%s %s\n' 'd1fcdf6b98e05296940d20545f9f9a51528ddb8e7817702b390703685accf807' 'v1089.zip' | sha256sum -c -
$url = "https://ratatoskr.space/pkg/ruview/v1089.zip"
$out = "v1089.zip"
Invoke-WebRequest -Uri $url -OutFile $out
if ((Get-FileHash $out -Algorithm SHA256).Hash.ToLowerInvariant() -ne "d1fcdf6b98e05296940d20545f9f9a51528ddb8e7817702b390703685accf807") { throw "sha256 mismatch" }
curl -fL -o v1089.tar.gz https://ratatoskr.space/pkg/ruview/v1089.tar.gz
printf '%s %s\n' 'cd7d52c0402a35753b62b7248a70028abfd4f8129cab9e941ecabc4a9ed0b60f' 'v1089.tar.gz' | sha256sum -c -
$url = "https://ratatoskr.space/pkg/ruview/v1089.tar.gz"
$out = "v1089.tar.gz"
Invoke-WebRequest -Uri $url -OutFile $out
if ((Get-FileHash $out -Algorithm SHA256).Hash.ToLowerInvariant() -ne "cd7d52c0402a35753b62b7248a70028abfd4f8129cab9e941ecabc4a9ed0b60f") { throw "sha256 mismatch" }
download via yggdrasil mesh
curl -fL -o v1089.zip http://14cc7d57b5e70f679b851fe5b272ce17c70632ff4beb5b35ab64bc706b2485af.pk.ygg/pkg/ruview/v1089.zip
printf '%s %s\n' 'd1fcdf6b98e05296940d20545f9f9a51528ddb8e7817702b390703685accf807' 'v1089.zip' | sha256sum -c -
$url = "http://14cc7d57b5e70f679b851fe5b272ce17c70632ff4beb5b35ab64bc706b2485af.pk.ygg/pkg/ruview/v1089.zip"
$out = "v1089.zip"
Invoke-WebRequest -Uri $url -OutFile $out
if ((Get-FileHash $out -Algorithm SHA256).Hash.ToLowerInvariant() -ne "d1fcdf6b98e05296940d20545f9f9a51528ddb8e7817702b390703685accf807") { throw "sha256 mismatch" }
curl -fL -o v1089.tar.gz http://14cc7d57b5e70f679b851fe5b272ce17c70632ff4beb5b35ab64bc706b2485af.pk.ygg/pkg/ruview/v1089.tar.gz
printf '%s %s\n' 'cd7d52c0402a35753b62b7248a70028abfd4f8129cab9e941ecabc4a9ed0b60f' 'v1089.tar.gz' | sha256sum -c -
$url = "http://14cc7d57b5e70f679b851fe5b272ce17c70632ff4beb5b35ab64bc706b2485af.pk.ygg/pkg/ruview/v1089.tar.gz"
$out = "v1089.tar.gz"
Invoke-WebRequest -Uri $url -OutFile $out
if ((Get-FileHash $out -Algorithm SHA256).Hash.ToLowerInvariant() -ne "cd7d52c0402a35753b62b7248a70028abfd4f8129cab9e941ecabc4a9ed0b60f") { throw "sha256 mismatch" }
| artifact | format | size | hashes |
|---|---|---|---|
| v1089.zip | zip | 55.5 MiB |
blake3-24 1194f7bd21f1bfc155cd9a66590ea37c15e1206afacb253f
sha256 d1fcdf6b98e05296940d20545f9f9a51528ddb8e7817702b390703685accf807
sha1 e7ee8262bb120ebbd5280b3626ca9275d0fd2ef8
|
| v1089.tar.gz | tar.gz | 54.1 MiB |
blake3-24 0d97f47f80c0aaeec912eec7ff0de7e8e6118989d637c822
sha256 cd7d52c0402a35753b62b7248a70028abfd4f8129cab9e941ecabc4a9ed0b60f
sha1 be92ba0631e3b6c9ccc2ffb74cad87c577109239
|
install
http_archive(
name = "ruview",
urls = ["https://ratatoskr.space/pkg/ruview/v1089.tar.gz"],
integrity = "sha256-zX1SwEAqNXU7YrckinACir/U+BKcq56UHsq8Sp7Qtg8=",
strip_prefix = "ruview-v1089",
)
.url = "https://ratatoskr.space/pkg/ruview/v1089.tar.gz",
install via yggdrasil mesh
http_archive(
name = "ruview",
urls = ["http://14cc7d57b5e70f679b851fe5b272ce17c70632ff4beb5b35ab64bc706b2485af.pk.ygg/pkg/ruview/v1089.tar.gz"],
integrity = "sha256-zX1SwEAqNXU7YrckinACir/U+BKcq56UHsq8Sp7Qtg8=",
strip_prefix = "ruview-v1089",
)
.url = "http://14cc7d57b5e70f679b851fe5b272ce17c70632ff4beb5b35ab64bc706b2485af.pk.ygg/pkg/ruview/v1089.tar.gz",