Website · Docs · Network stats
A decentralized CDN where nodes bond stake, cache content-addressed blobs, and earn per-MB USDC payments through off-chain vouchers backed by a shared on-chain pool (ADR 003). Built in Rust on iroh QUIC. Open source under MIT OR Apache-2.0.
Status: public testnet. The network runs on Arbitrum Sepolia; production targets Arbitrum One. Signed binaries, crates (including the
decdn-clientSDK), and container images for both thedecdn-nodedaemon and thedecdnCLI ship with each release. Wire, ABI, config, and storage formats change without compatibility shims until mainnet, and many ADRs are still Draft. The ADRs are the source of truth for current thinking.
- decdn/decdn: the core Rust monorepo. A Cargo workspace with the
decdn-nodedaemon anddecdnCLI, plus crates for the protocol, cache, client, incentive, and reputation layers. It also holds the Solidity contracts and the ADRs behind the design. Most work happens here. - decdn/android-demo and decdn/ios-demo: one-screen phone apps built on the
decdn-clientSDK. They download a file or a whole bundle, verify every byte, and pay per MB from a sponsored pool, so the phone needs no wallet. - decdn/browser-demo: a browser extension that opens
decdn:links and media in any web page through a localdecdn gateway. Early: the gateway command hasn't shipped in a release yet. - decdn/devops: deploy and operate deCDN for node operators and publishers. Docker Compose is the recommended quickstart; Ansible ships as the
decdn.nodeanddecdn.publisherGalaxy collections, alongside cloud-init templates and a signed Helm chart on Artifact Hub. Covers cache and origin nodes, sponsord, iroh relays, and Grafana monitoring. Hardened and localhost-only by default. - decdn/sponsord: sponsored downloads. A publisher funds a USDC payment pool, and their users download through a one-line installer and a captcha, with no wallet, keys, or tokens to manage.
- decdn/stats: network status dashboard read from on-chain state on Arbitrum Sepolia, live at stats.decdn.org.
- decdn/website: Next.js landing page, live at decdn.org. Also holds the source for docs.decdn.org.
- decdn/iroh-tests: reproductions for issues found in iroh, iroh-blobs, noq, and bao-tree while building deCDN, with the workaround each one needed.
- Design first. Every subsystem is tracked in numbered ADRs. Start with
adr/README.mdfor the reading order andadr/architecture.mdfor the overview. - Rust 2024 edition, MSRV 1.99. Tests run under
cargo nextest. Contributions must passcargo fmt,cargo clippy, andcargo deny check. SeeCONTRIBUTING.mdfor environment setup. - Strict anti-panic policy. Clippy denies
unwrap_used,expect_used,panic, andindexing_slicingacross the whole workspace. New contributors run into this most often. - Docs. User and operator docs are at docs.decdn.org. To run a node, start with the operator guide.
Open an issue on the relevant repo, and use decdn/decdn for protocol and node questions. Report security vulnerabilities privately as described in SECURITY.md. For chat, join the Discord.
Core code is dual-licensed under MIT OR Apache-2.0.