ruview @ v1071
integrity
- size
- 55.6 MiB
- downloaded
- last checked
release notes
Automated release from CI pipeline
Changes: research(R4) + adr-105: federated CSI training with MERIDIAN+Krum+mincut (#716)
Federated learning is the unique design that satisfies the three constraints from this loop's earlier work:
- R14 (data stays on-device)
- R3 (no cross-installation linkage)
- R7 (multi-node adversarial defence)
ADR-105 proposes MERIDIAN-FedAvg with Byzantine-robust (Krum) aggregation and R7-style Stoer-Wagner mincut on inter-node update similarity. Per-round bandwidth at typical 4-seed installation: ~12 MB; weekly cadence x monthly = 50-180 MB/month (0.06% of home broadband cap).
Composes with every prior thread:
- R3 MERIDIAN centroid subtraction is mandatory pre-aggregation
- R7 mincut extended from multi-link CSI to multi-node updates
- R12/R13 negative results informed the byzantine + SNR-threshold choices
- R14 privacy framework baseline is now operational
- ADR-024/027/029/100/103/104 all bridged in the ADR
Implementation plan: ~500 LOC for ruview-fed crate. Krum aggregator (80 LOC), LoRA+int8 delta codec (120 LOC, reuse ruvllm-microlora), MERIDIAN centroid hook (50 LOC, extend AgentDB), inter-seed mincut (100 LOC, reuse ruvector-mincut), CLI surface (80 LOC).
Explicitly deferred:
- Cross-installation federation (legal + DP work needed, future ADR)
- Member inference defence (ADR-106 with formal DP-SGD)
- Per-cog training-loop details (each cog implements local_train)
- Compute scheduling (cognitum fleet manager territory)
Tick chose the 'one ADR' unit from the cron prompt rather than another numpy demo -- federation is fundamentally a protocol-design problem, not a numerical-experiment problem.
Coordination: ticks/tick-13.md, no PROGRESS.md edit.
Docker Image:
ghcr.io/ruvnet/RuView:09fe73eb87112f1c93e5187361e93d04e4a33cb8
download
curl -fL -o v1071.zip https://ratatoskr.space/pkg/ruview/v1071.zip
printf '%s %s\n' 'f158e4d09a0d8d76535263365d605c5d05200e65c9e8376e9407c506d9221007' 'v1071.zip' | sha256sum -c -
$url = "https://ratatoskr.space/pkg/ruview/v1071.zip"
$out = "v1071.zip"
Invoke-WebRequest -Uri $url -OutFile $out
if ((Get-FileHash $out -Algorithm SHA256).Hash.ToLowerInvariant() -ne "f158e4d09a0d8d76535263365d605c5d05200e65c9e8376e9407c506d9221007") { throw "sha256 mismatch" }
curl -fL -o v1071.tar.gz https://ratatoskr.space/pkg/ruview/v1071.tar.gz
printf '%s %s\n' 'df07aeb1180cdbef4a0de2a757be4ce857b138f4b5a5d8f62267aef1668b6466' 'v1071.tar.gz' | sha256sum -c -
$url = "https://ratatoskr.space/pkg/ruview/v1071.tar.gz"
$out = "v1071.tar.gz"
Invoke-WebRequest -Uri $url -OutFile $out
if ((Get-FileHash $out -Algorithm SHA256).Hash.ToLowerInvariant() -ne "df07aeb1180cdbef4a0de2a757be4ce857b138f4b5a5d8f62267aef1668b6466") { throw "sha256 mismatch" }
download via yggdrasil mesh
curl -fL -o v1071.zip http://14cc7d57b5e70f679b851fe5b272ce17c70632ff4beb5b35ab64bc706b2485af.pk.ygg/pkg/ruview/v1071.zip
printf '%s %s\n' 'f158e4d09a0d8d76535263365d605c5d05200e65c9e8376e9407c506d9221007' 'v1071.zip' | sha256sum -c -
$url = "http://14cc7d57b5e70f679b851fe5b272ce17c70632ff4beb5b35ab64bc706b2485af.pk.ygg/pkg/ruview/v1071.zip"
$out = "v1071.zip"
Invoke-WebRequest -Uri $url -OutFile $out
if ((Get-FileHash $out -Algorithm SHA256).Hash.ToLowerInvariant() -ne "f158e4d09a0d8d76535263365d605c5d05200e65c9e8376e9407c506d9221007") { throw "sha256 mismatch" }
curl -fL -o v1071.tar.gz http://14cc7d57b5e70f679b851fe5b272ce17c70632ff4beb5b35ab64bc706b2485af.pk.ygg/pkg/ruview/v1071.tar.gz
printf '%s %s\n' 'df07aeb1180cdbef4a0de2a757be4ce857b138f4b5a5d8f62267aef1668b6466' 'v1071.tar.gz' | sha256sum -c -
$url = "http://14cc7d57b5e70f679b851fe5b272ce17c70632ff4beb5b35ab64bc706b2485af.pk.ygg/pkg/ruview/v1071.tar.gz"
$out = "v1071.tar.gz"
Invoke-WebRequest -Uri $url -OutFile $out
if ((Get-FileHash $out -Algorithm SHA256).Hash.ToLowerInvariant() -ne "df07aeb1180cdbef4a0de2a757be4ce857b138f4b5a5d8f62267aef1668b6466") { throw "sha256 mismatch" }
| artifact | format | size | hashes |
|---|---|---|---|
| v1071.zip | zip | 55.5 MiB |
blake3-24 beeb3e4c7d263c0a5516726c4e8146c735699bdbda6f7fe9
sha256 f158e4d09a0d8d76535263365d605c5d05200e65c9e8376e9407c506d9221007
sha1 6a8b2df0590e583cdb5019da3ccff7b3536497b2
|
| v1071.tar.gz | tar.gz | 54.1 MiB |
blake3-24 3c547473d5465cdd3981937f81250b12d6595a87764bdb2a
sha256 df07aeb1180cdbef4a0de2a757be4ce857b138f4b5a5d8f62267aef1668b6466
sha1 2f53807026a04f78ca15216cd5981bcb0806444b
|
install
http_archive(
name = "ruview",
urls = ["https://ratatoskr.space/pkg/ruview/v1071.tar.gz"],
integrity = "sha256-3weusRgM2+9KDeKnV75M6FexOPS1pdj2Imeu8WaLZGY=",
strip_prefix = "ruview-v1071",
)
.url = "https://ratatoskr.space/pkg/ruview/v1071.tar.gz",
install via yggdrasil mesh
http_archive(
name = "ruview",
urls = ["http://14cc7d57b5e70f679b851fe5b272ce17c70632ff4beb5b35ab64bc706b2485af.pk.ygg/pkg/ruview/v1071.tar.gz"],
integrity = "sha256-3weusRgM2+9KDeKnV75M6FexOPS1pdj2Imeu8WaLZGY=",
strip_prefix = "ruview-v1071",
)
.url = "http://14cc7d57b5e70f679b851fe5b272ce17c70632ff4beb5b35ab64bc706b2485af.pk.ygg/pkg/ruview/v1071.tar.gz",