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 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
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 have more info.
Please do give iroh a try, we'd love to hear your feedback. 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 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.