IPFS: The Permanent Web

19
InterPlanetary File System Sivachandran

Transcript of IPFS: The Permanent Web

InterPlanetary File SystemSivachandran

InterPlanetary File System

• Hypermedia distribution protocol

• Faster, safer, and more open web

• Open source project

• GitHub

• Go Implementation

Web: Network Topology• Centralised

• Single server

• Easy publish

• Difficult to scale

• Single point of failure

• Decentralised

• Multiple servers

• Demand and failures better handled

IPFS: Topology• Fully distributed network

• Node

• No server/client

• Acts both server and client

• Connected with every other node

• Web original design

Web: Connectivity

• Content in server

• Always connected

• While traveling?

• Offline apps

• Different implementation

IPFS: Connectivity• Connection required

• Content

• Node information

• Connection opaque to applications

• Built-in offline support

• Syncs content when online

• MerkleDAG, core data structure, eases sync

Web: Permanence

• Availability not guaranteed

• At the mercy of the app and server

• Deleted accidentally, intentionally

IPFS: Permanence

• Content cached at nodes

• Distributes automatically

• No single place to delete

• Pin to keep permanently

Web: Integrity• Integrity not guaranteed too

• Depends on server safety

• Contents addressed by name

• Technically not related

• Band aids

• GPG, Checksum

• High overhead or difficult to enforce

IPFS: Integrity• Contents addressed by its contains

• Cryptography hash as address

• Name for dynamic content

• Multihash - algorithm independent

• Nodes identified by hash

• Ensure the authenticity

Web: Speed

• Content always retrieved from server

• Latency

• Bandwidth wastage

Bandwidth Wastage

IPFS: Speed• Contents available at multiple nodes

• Low latency

• Parallel download

• Downloads from nearby node

• Person sitting next to you

• Saves bandwidth and time

Using IPFS

Distributed Storage

• Built-in support

• Content deduplication

• At multiple level

• Directory hierarchy

• Symbolic links

P2P Communication

• go-libp2p - IPFS P2P implementation

• Supports TCP, UDP, UDT, etc.

• ID based node addressing

• IP independent

IPFS Components

• Modular design

• Independent components

• go-libp2p

• multihash

• many more

More Information• ipfs.io

• YouTube: IPFS channel and “ipfs” keyword

• IRC: freenode/#ipfs

• Current version 0.3.11, 0.4 will be out soon

• Lots of opportunities to contribute

• Visit github.com/ipfs

Thank You

• Thanks to Juan Benet of IPFS

• Me @

[email protected]

• github.com/sivachandran