The first L1 with native Federated Learning consensus.
Verify · Compensate · Trace — on any device, any FL framework.
Federated Learning works in research. Only 5.2% reaches production deployment.
The reason isn't the ML — it's three structural problems no FL framework solves:
|
Malicious or low-quality updates corrupt the global model. No way to verify what nodes submit. |
Rational actors take the global model without contributing quality data. Honest participants subsidize freeloaders. |
Who contributed? What data? Impossible to audit. No accountability for what trained the model. |
No existing L1 supports FL trust primitives natively. Smart contracts are too slow and don't see model weights. So we built consensus that does.
Four primitives, one consensus layer:
|
L1 — Any Device
|
L2 — Verify
|
L3 — Compensate
|
L4 — Trace
|
TensorFlow Federated · PyTorch · Flower · Custom all run on top.
Like Avalanche for subnets — built from scratch because no existing L1 could.
Real cloud infrastructure. Measured, not projected.
| Metric | Value |
|---|---|
| Active nodes | 25 |
| TPS — peak | 45,725 |
| TPS — sustained | 1,285 |
| Finality | 485 ms |
| Adversarial test | 0 crash / 48h |
| Production users | 1 enterprise (1 year live) |
Try it now: Explorer · Faucet · Discord for testnet SAVI
PoW rewards capital invested in hardware. PoS rewards capital invested in tokens. Federated Learning needs to reward quality of contribution — and neither existing consensus can.
| Proof-of-Work | Proof-of-Stake | Proof-of-Unity | |
|---|---|---|---|
| Who wins? | Biggest mining farm | Richest validator | Best-performing node |
| Energy cost | Nation-sized | Efficient | Efficient |
| Centralization | Hardware cartels | Whale dominance | Meritocratic |
| Min hardware | ASIC ($10K+) | Stake (varies, often $32K+) | $0 — any device |
| Finality | ~60 min | ~12 sec | 485 ms |
| FL-aware? | No | No | Yes — at consensus level |
This is the part most "AI + blockchain" projects miss. They bolt a smart contract on top of an existing chain — so the chain only ever sees a hash of the model. The aggregation, the quality scoring, and the trust decisions all happen off-chain in some operator's server. You're back to trusting the operator.
Savitri's PoU is dual-purpose by design:
|
The PoU score elects the next block proposer. |
The same PoU score weights model updates inside the federated round. |
One mechanism, two functions. The score that decides who proposes the next block is the same score that decides whose FL contribution counts. No off-chain aggregator. No "trust the coordinator." Bad model updates and bad block proposals are punished by the same rule.
Score = α·S(t-1) + (1-α)·[ 0.25·Availability + 0.20·Latency
+ 0.20·Integrity + 0.20·Reputation
+ 0.15·Participation ]
For FL workloads, the Integrity dimension scores the quality of model updates a node submits — measured against held-out validation rounds and cross-node agreement. A node that consistently submits poisoned or low-quality gradients loses score, gets down-weighted in aggregation, and stops earning rewards.
No slashing of stake — bad behavior simply doesn't pay, in either job.
| Repository | What it does | |
|---|---|---|
| ⚙️ | savitri-network | Monorepo — 13 Rust crates, full blockchain stack |
| 🤖 | savitri-fl | FL adapters: TFF, PyTorch, Flower bridges |
| 📱 | savitri-mobile | Flutter wallet + node monitoring (iOS & Android) |
| 🛠️ | savitri-sdk | Client library, wallet tools, CLI |
| 💻 | savitri-installer | One-click desktop installer (Windows · macOS · Linux) |
| 🧪 | savitri-testnet | Docker testnet with Prometheus + Grafana |
| 📖 | docs | Whitepaper, FL architecture, tokenomics, guides |
# Clone and build a lightnode
git clone --recurse-submodules https://github.com/savitri-network/savitri-network.git
cd savitri-network
cargo build --release -p savitri-lightnode
# Join testnet
./target/release/lightnode \
--listen-port 4001 \
--bootstrap <PEER_ID>@/ip4/<IP>/tcp/4002Runs on 4 GB RAM, any CPU. No ASIC. No minimum stake. Run it on a laptop you already own.
# macOS / Linux
curl -sSL https://savitrinetwork.com/install.sh | bash
# Windows (PowerShell)
iwr -useb https://savitrinetwork.com/install.ps1 | iexfrom savitri_fl import FederatedClient
import tensorflow_federated as tff
client = FederatedClient(node_url="http://localhost:8545", wallet="...")
client.submit_round(model_weights=tff.training.compute_weights(...))
# Provenance, payment, and verification handled at consensus level.|
🤖 FL Researchers |
🌐 IoT Operators |
🏢 Enterprises |
👥 Node Operators |
Open issues are tagged good-first-issue and help-wanted. Most come from problems we hit running the testnet — they're real, scoped, and merge-worthy.
- Pick an issue from any repo
- Fork, branch, Conventional Commits
cargo fmt && cargo clippy -- -D warnings- PR with what you changed and how you tested it
Code of conduct: be useful, be honest about what works and what doesn't. We ship the bugs alongside the wins.
Docs · Whitepaper · Contribute · Security
Built in Rust · Secured by Proof-of-Unity · Open Source (MIT + Apache 2.0)