Distributed Web Applications with IPFS

Thursday, June 9th, 2016 9:00-17:30, Room 355

IPFS, the InterPlanetary File System, is the distributed and permanent Web, a protocol to make the Web faster, more secure, open and available. IPFS could be seen as Git meets a BitTorrent swarm, exchanging objects within one Git repository. In other words, IPFS provides a high throughput content-addressed block storage model, with content-addressed hyperlinks. This forms a generalised Merkle DAG, a data structure upon which one can build versioned file systems, blockchains, and even a Permanent Web. IPFS combines a Distributed Hash Table, an incentivised block exchange, and a self-certifying namespace. IPFS has no single point of failure, and nodes do not need to trust each other.

In this full-day tutorial, participants will be able to learn about the IPFS Application Stack, namely: libp2p, the networking layer of IPFS used in order to support multi transport protocols and routing mechanisms; bitswap, the data exchange protocol that enables peers to request and offer blocks of data; Merkle DAG, a Merkle Tree type data- structure where blobs of data are referenced by their cryptographically hash, so that they can be validated with regards to integrity and discovered in the network; API, the interface used by other applications to use IPFS. This tutorial will have a presentation and hands on components, ending up with a discussion in order to help the attendees to understand how IPFS can be used for more specific use cases.

David Dias is a P2P Software Engineer and Researcher at Protocol Labs (http://ipn.io/), the company behind IPFS. Before he has worked on the security and web development industry at ^lift security. David holds a P2P Masters in Science, having built the first P2P DHT using WebRTC specifically for the Web Platform for job execution distribution. David's a frequent speaker on P2P, security and distributed systems. Currently he is also an invited Professor at the University of Lisbon, having developed a new post graduation course on modern Web development. Follow him on @daviddias.

Friedel Ziegelmayer is a Software Engineer and Researcher at Protocol Labs (http://ipn.io), the company building IPFS. Previously he studied mathematics at the Albert-Ludwig-University in Freiburg. He also works on other open source projects like the test runner Karma.
You an follow him at @dignifiedquire or look at his code



Intended Audience

Developers, students and researchers with a general interest in cryptography, distributed systems and P2P protocols is recommended. Familiarity with JavaScript or Go are bonus.

Learning Outcomes

  • How to use IPFS to build a distributed Application
  • Understand how using libp2p enables IPFS

Outline

During the course of this Tutorial, participants will learn how IPFS was designed and the reasons behind its architecture decisions and build an Web Application using IPFS. The topics covered are:

  • Merkle Data Structures
  • Distributed Hash Tables
  • Peer Routing strategies
  • Peer Discovery strategies