IPFS: Interplanetary File Systems

Slides:



Advertisements
Similar presentations
Peer-to-Peer Infrastructure and Applications Andrew Herbert Microsoft Research, Cambridge
Advertisements

Web Servers How do our requests for resources on the Internet get handled? Can they be located anywhere? Global?
Topics in Reliable Distributed Systems Fall Dr. Idit Keidar.
Introduction 2: Internet, Intranet, and Extranet J394 – Perancangan Situs Web Program Sudi Manajemen Universitas Bina Nusantara.
Introduction to client/server architecture
1CS 6401 Peer-to-Peer Networks Outline Overview Gnutella Structured Overlays BitTorrent.
Middleware for P2P architecture Jikai Yin, Shuai Zhang, Ziwen Zhang.
Networks Chapter 3. 2 What Is The Internet? It's not a big truck. It's a series of tubes. Ted Stevens, former Alaskan Senator, 6/28/2006 Internet: global.
Hands-On Microsoft Windows Server 2008 Chapter 8 Managing Windows Server 2008 Network Services.
Introduction Widespread unstructured P2P network
Chapter 10 Intro to Routing & Switching.  Upon completion of this chapter, you should be able to:  Explain how the functions of the application layer,
思科网络技术学院理事会. 1 Application Layer Functionality and Protocols Network Fundamentals – Chapter 3.
HOW WEB SERVER WORKS? By- PUSHPENDU MONDAL RAJAT CHAUHAN RAHUL YADAV RANJIT MEENA RAHUL TYAGI.
6° of Darkness or Using Webs of Trust to Solve the Problem of Global Indexes.
Peer to Peer Network Design Discovery and Routing algorithms
INTERNET TECHNOLOGIES Week 10 Peer to Peer Paradigm 1.
The Internet. Important Terms Network Network Internet Internet WWW (World Wide Web) WWW (World Wide Web) Web page Web page Web site Web site Browser.
P2P Search COP P2P Search Techniques Centralized P2P systems  e.g. Napster, Decentralized & unstructured P2P systems  e.g. Gnutella.
Basics of the Domain Name System (DNS) By : AMMY- DRISS Mohamed Amine KADDARI Zakaria MAHMOUDI Soufiane Oujda Med I University National College of Applied.
CSE333 CSE333 DDS.1 A System for Creating Specialized DDS Architectures Research and Work By: Tom Puzak Nathan Viniconis Solomon Berhe Jeffrey Peck Project.
Tanenbaum & Van Steen, Distributed Systems: Principles and Paradigms, 2e, (c) 2007 Prentice-Hall, Inc. All rights reserved DISTRIBUTED SYSTEMS.
Chapter 29 Peer-to-Peer Paradigm Copyright © The McGraw-Hill Companies, Inc. Permission required for reproduction or display.
4.01 How Web Pages Work.
Distributed OS.
4.01 How Web Pages Work.
Understand Names Resolution
4.01 How Web Pages Work.
Trustworthiness Management in the Social Internet of Things
Zueyong Zhu† and J. William Atwood‡
CISC103 Web Development Basics: Web site:
Peer-to-Peer Data Management
The Internet.
E-commerce | WWW World Wide Web - Concepts
E-commerce | WWW World Wide Web - Concepts
Cryptographic Hash Pointers
Due: a start of class Oct 26
Application Layer Functionality and Protocols
SUBMITTED BY: NAIMISHYA ATRI(7TH SEM) IT BRANCH
CHAPTER 3 Architectures for Distributed Systems
CPS 512 midterm exam #1, 10/5/17 Your name please: NetID:_______ Sign for your honor:____________________________.
Introduction to client/server architecture
Net 323 D: Networks Protocols
PROSE CS 218 Fall 2017.
Application Layer Functionality and Protocols
EE 122: Peer-to-Peer (P2P) Networks
Application layer Lecture 7.
The World’s first Public Chain
BLOCKCHAIN BASICS & LEGAL ISSUES
Distributed Peer-to-peer Name Resolution
Application Layer Functionality and Protocols
A Scalable content-addressable network
Application Layer Functionality and Protocols
Chapter Goals Compare and contrast various technologies for home Internet connections Explain packet switching Describe the basic roles of various network.
Distributed Ledger Technology (DLT) and Blockchain
Unit 1.4 Wired and Wireless Networks Lesson 3
HTTP and Abstraction on the Internet / The Need for DNS
Application Layer Functionality and Protocols
Application Layer Functionality and Protocols
WEB SERVICES From Chapter 19, Distributed Systems
DISTRIBUTED SYSTEMS Principles and Paradigms Second Edition ANDREW S
Computer Networks Primary, Secondary and Root Servers
Application Layer Functionality and Protocols
Application Layer Functionality and Protocols
Application Layer Functionality and Protocols
A Semantic Peer-to-Peer Overlay for Web Services Discovery
4.01 How Web Pages Work.
Information Retrieval and Web Design
INTRODUCTION TO THE INTERNET AND WEB
4.01 How Web Pages Work.
Q/ Compare between HTTP & HTTPS? HTTP HTTPS
Presentation transcript:

IPFS: Interplanetary File Systems

Introduction Think about this: A blockchain is fundamentally a decentralized system. Alternatively, a decentralized peer-to-peer system can be realized independent of a blockchain. Interplanetary File System (IPFS) is a fine example of such a system.. IPFS is a decentralized model for file transfer in contrast to the centralized namespace and transfer provided by the http family of protocols. (HTTP operates in a centralized, hierarchical namespace: a web site is identified by http://www.cse.buffalo.edu where each item is resolved hierarchically by the domain name service (DNS).) This peer-peer transfer of data is not new! It has been an age old quest. Recall or lookup the Napster and Gnutella media sharing services. And the bittorrent services that is underlying many of our current data services. Juan Benet in the IPFS white paper describes it as a “Content Addressed, Versioned, P2P Filesystem”. In this lesson we will look into the details of IPFS, the alternative approach to file sharing, a decentralized approach. Need references for Napster and Gnutella web services https://github.com/ipfs/faq/issues/47

Learning Outcomes On completion of this lesson, you will be able to, --Discuss the architecture of IPFS --Explain the operation of IPFS --List the benefits over blockchain based solution --Discuss IPFS + Blockchain solution

Key Ideas Once again similar to how Bitcoin did, IPFS leverages and combines many successful peer-to-peer system ideas. Global distributed file system: IPFS is about “distribution” decentralization. Content-based identification with secure hash of contents;Resolving locations using Distributed Hash Table (DHT) Block exchanges using popular Bittorrent peer-to-peer file distribution protocol Incentivized block exchange using Bitswap protocol Merkle DAG (Directed Acyclic Graph) version-based organization of files, similar Git version control system Self-certification servers for the storage nodes for security https://ipfs.io/ipfs/QmR7GSQM93Cx5eAg6a6yRzNde1FQv7uL6X1o4k7zrJa3LX/ipfs.draft3.pdf This forms a generalized Merkle DAG, a data structure upon which one can build versioned file systems, blockchains, and even a Permanent Web. IPFS combines a distributed hashtable, an incentivized block exchange, and a self-certifying namespace.

This is a high level view of the architecture of IPFS This is a high level view of the architecture of IPFS. Files in distributed storage, and distributed hash table, uses the hash of the file as a key to return the location of the file. Once the location is determined, the transfer takes place peer-to-peer as a decentralized transfer. . This is a high level view of the architecture of IPFS. Files in distributed storage, and distributed hash table, uses the hash of the file as a key to return the location of the file. Once the location is determined, the transfer takes place peer-to-peer as a decentralized transfer.

Distributed Nodes The nodes are the computers that holds the decentralized data file objects that form the global file system. Nodes are identified by cryptographic hashes of public key. (Similar to our blockchain nodes). They hold the objects that form the files to be exchanged. Objects are identified by a secure hash and an object may contain sub objects each with its own hash that is used in the creation of the root hash of the object. Recall our Merkle tree from course 1: Blockchain Basics.

Content Addressable In the current world wide web protocol, we typically refer to a web resource or data by the server on which they are stored on: For example, https://www.coursera.org/ actually refers to the server on which the Coursera page is hosted and to a particular directory and file on that server. This is a “centralized” approach. What if the resource is available in numerous and dynamically variable number of locations? IPFS offers a decentralized solution for this. IPFS identifies the resources by what else, a hash of course. Instead of identifying the resource by its location as in HTTP, IPFS identifies it by its content or by the secure hash of its content. In this case, the file is addressed by a universally unique identifier instead of by location. Then how do you resolve the location? Just like you have a URL or link of a website, you start with the hash identifier of the resource. You send around a request for anyone with a resource with this identifier; on a successful response, access it peer-to-peer. https://medium.com/@ConsenSys/an-introduction-to-ipfs-9bba4860abd0 This hash is the key in the <key, value> and the value is the “file” or the “resource”.

If content addressable, how do you resolve location of objects? Routing part of the IPFS protocol maintains a DHT (Distributed Hash Table) for the locating the nodes as well as for file objects. A simple DHT hold the hash as the key and location as the value. Key can directly hash into the location. Data to be stored on IPFS is hashed to create a unique key that will serve as The identifier for the data in the IPFS distributed file system.

Now that we have located the node and the location of the object how do we exchange the blocks of the file? In a typical IPFS system, DHT resolves to the closest location to the key value. The peer nodes holding the data blocks are incentivized by a protocol called BitSwap. Peer nodes have a want_list and have_list and some form of a barter system is formed. Any imbalance is noted in form of a BitSwap credit and debt; Bitswap protocol manages the block exchanges involving the nodes accordingly. The nodes in the network thus have to provide value in the form of blocks. (Hmm...This could be an ideal usecase for a “digital token?”; if you send a block you get a IPFS token that can be used when you need a block.) The Bitswap protocol has provisions for handling exceptions such as free loading node, node wanting nothing, node having nothing.

How are multiple versions of files maintained? Multiple versions of a file are maintained using a Merkle Directed Acyclic Graph data structure on top of the file system. The basic elements of the block, list of blocks, tree of block representing an instance, and commit that is snapshot of the tree. This Merkle DAG also helps in checking any tampering and also in deduplication.

How are multiple versions of files maintained? Multiple versions of a file are maintained using a Merkle Directed Acyclic Graph data structure on top of the file system. The basic elements of the block, list of blocks, tree of block representing an instance, and commit that is snapshot of the tree. The picture here depicts the You can observe in this picture two commits of the course3Dir, the four nodes on the left form the first commit and the three nodes on the right the second commit. The is DAg instead of a Merkle tree we have seen in Ethereum state root. You can observe deduplication, that is same files are shared. There are two shared files

IPFS shared files The picture here depicts the You can observe in this picture two commits of the course3Dir, the four nodes on the left form the first commit and the three nodes on the right the second commit. The is DAG instead of a Merkle tree we have seen in Ethereum state root. You can observe deduplication, that is same files are shared. There are two shared files

Use cases and Relationship to Blockchain IPFS can be a standalone decentralized file system. It can be complementary to the existing HTTP based centralized system. We discussed it in the context of blockchain systems because it can serve an important role of decentralized storage for blockchain application that have a lot of data, but will store only the hash on the blockchain. In this case instead of a centralized store, IPFS can be the decentralized store that work in tandem with the decentralized ledger technology of the blockchain to create a powerful solution for many storage-rich business usecases. https://medium.com/@ConsenSys/an-introduction-to-ipfs-9bba4860abd0

Summarizing, We discussed the details of a decentralized storage system that can be used for storing the off-chain data for a blockchain application. It is used in many genomic data applications for storing large genomic data and in dapps such as Openlaw for document storage.

References Juan Bennet’s IPFS whitepaper: https://ipfs.io/ipfs/QmR7GSQM93Cx5eAg6a6yRzNde1FQv7uL6X1o 4k7zrJa3LX/ipfs.draft3.pdf The Protocol Labs Filecoin crypto