University College London - acmsigcomm18hackathon/hackathonprojects GitHub Wiki

IPFS

Description

InterPlanetary File System (IPFS) is a protocol and network designed to create a content-addressable, peer-to-peer method of storing and sharing hypermedia in a distributed file system. IPFS uses DHT for storing files location and a modification of bitswap protocol for file transfer. It is thus sufficient to have only one node in the network with a given file to perform file transfer scaling to thousands of nodes. The protocol currently becomes popular thanks to its use in multiple projects (i.e., Filecoin) as well as several Alexa 100 websites.

Challenge

In its current version, IPFS file delivery is highly inefficient in terms of latency. The delay is caused in part by DHT lookups, but mainly by sub-efficient peer selection. Each node pings all the peers and chooses one based on RTT only. The target is to modify the peer selection process to create an (close to) optimal distribution tree. If successful, it would be possible to perform cloud-quality video streaming to multiple users using a single constraint device such as a Raspberry PI.

Given asset

A simulation environment based on mininet.

Required competence

golang, p2p systems, mininet