OkuBrowser / oku-fs

A distributed file system for use with the Oku browser.
https://emmyoh.github.io/oku-fs/oku_fs/
GNU Affero General Public License v3.0
10 stars 0 forks source link
filesystem iroh oku p2p

oku-fs

A distributed file system for use with the Oku browser.

Build Instructions

Prerequisites

To build, please install:

Commands

After pre-requisites are installed, you may run:

Features

Technical Design

Files and directories are stored in replicas implemented as Iroh documents, allowing them to be shared publicly over the Mainline DHT or directly between Oku file system nodes.

Content discovery occurs over the Mainline DHT. Content discovery happens as follows:

  1. A node queries using a replica's ID, being its public key.
  2. The node receives an Iroh document ticket.
  3. The node uses the ticket to connect to the document swarm and download the document.

Hole punching

It may seem unclear how a ticket allows one node to connect to another node behind NAT. N0, Inc maintains a network of Iroh nodes and relay servers, with the Iroh relay servers facilitating hole punching during document syncing.

The Iroh network's relay servers are currently free. When this is no longer the case, the Oku project will need to host its own relay servers.