v0.1.0
n0-computer/irohv0.1.0Oct 28, 2022by b5
AI Summary
The initial release of Iroh, a new IPFS implementation featuring service-oriented architecture, interoperability with Kubo, and efficiency.
Key Highlights
- New IPFS implementation
- Interoperability with Kubo nodes
- Service-oriented architecture
- Single CLI to control all services
- Built for efficiency (low memory/CPU)
New Features
- IPFS interoperability
- Service-oriented architecture
- Single CLI
- Custom installer
Full Release Notes
We’re on the board 🎉! This first release of iroh brings a new implementation of IPFS to the world. Key things to highlight about the first release of iroh: * **Exchange Data with Kubo**. Iroh can interoperate with [kubo](https://github.com/ipfs/kubo) nodes on the IPFS network, pushing & fetching data. * **Service Oriented architecture**. Don't want p2p? Turn it off! Iroh will still work without it. * **Single CLI to control all services**. * **Built for efficiency**. Iroh's memory footprint & CPU usage are either on par or better than the best interoperable IPFS implementations out there. * **Runs well on a laptop**. We have a custom installer script that will configure iroh for your laptop. See our [install docs](https://iroh.computer/docs/install) v0.1.0 ships as 4 binaries for Linux & macOS with zero external dependencies: * **iroh** - command line client * **iroh-store** - data storage daemon * **iroh-p2p** - peer 2 peer networking * **iroh-gateway** - IPFS-to-HTTP bridge You'll need to download all of them & put them on your $PATH to work with iroh. Our [install docs](https://iroh.computer/docs/install) have more info. Please do give iroh a try, we'd love to [hear your feedback](https://github.com/n0-computer/iroh/issues/new). Thanks! ### Benchmarks We're runnning benchmarks on a relatively stock AWS box for ease-of-replication. We don't have benchmarks for IPFS network retrieval this round. ### Adding Single Files Add a single file with `iroh add --no-wrap --offline`: | file size | real (s) | user(s) | sys(s) | cpu % | cpu/total % | | ---------- | -------- | ------- | -------- | ----------- | ------------ | | 100K | 0.0102 | 0.0162 | 0.0317 | 469.6078431 | 7.337622549 | | 1M | 0.0167 | 0.004 | 0.0519 | 334.7305389 | 5.230164671 | | 10M | 0.01345 | 0.0101 | 0.0418 | 385.87 | 6.03 | | 100M | 0.01345 | 0.0101 | 0.0418 | 385.87 | 6.03 | | 1G | 0.01345 | 0.0101 | 0.0418 | 385.87 | 6.03 | ### Fetching Cached Gateway Content Repeatedly request the same CID of different file sizes to measure cached content throughput via HTTP request | File size | cpu/total (%) | rps | throughput/s | avg latency | |-------------|----------------|-----------|---------------|--------------| | 100K | 90.48072917 | 40,064.27 | 3.85GB | 5.08ms | | 1M | 87.66614583 | 6,926.95 | 6.77GB | 29.08ms | | 10M | 87.34010417 | 711.55 | 6.98GB | 278.86ms | | 100M | 88.00885417 | 66.52 | 6.82GB | 2.85s | | 1G | 87.84947917 | 6.65 | 6.85GB | 0.00s | ### Production Readiness Is this production ready? **No. We need your help to kick tires & find bugs!**. The v0.1.0 moniker should testify to just how new this software is. Please don't deploy it anywhere mission critical until we've had at least a month or two to address bugs & write tests. ### Things you should know about this release: There are two problems we couldn't properly address * _There is no delete command._ Data added to iroh will stay there until a future release where we add content removal. See [issue #432](https://github.com/n0-computer/iroh/issues/432) for details. The workaround for now is to blow away the storage database. * _We have one particularly nasty known bug that can cause iroh to not persist data for highly nested directories upon add_ we plan to address ASAP in a patch release. See [issue #423](https://github.com/n0-computer/iroh/issues/423).