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).