InterPlanetary File System
Sivachandran
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 @
• sivachandran.p@gmail.com
• github.com/sivachandran

IPFS: The Permanent Web

  • 1.
  • 2.
    InterPlanetary File System •Hypermedia distribution protocol • Faster, safer, and more open web • Open source project • GitHub • Go Implementation
  • 3.
    Web: Network Topology •Centralised • Single server • Easy publish • Difficult to scale • Single point of failure • Decentralised • Multiple servers • Demand and failures better handled
  • 4.
    IPFS: Topology • Fullydistributed network • Node • No server/client • Acts both server and client • Connected with every other node • Web original design
  • 5.
    Web: Connectivity • Contentin server • Always connected • While traveling? • Offline apps • Different implementation
  • 6.
    IPFS: Connectivity • Connectionrequired • Content • Node information • Connection opaque to applications • Built-in offline support • Syncs content when online • MerkleDAG, core data structure, eases sync
  • 7.
    Web: Permanence • Availabilitynot guaranteed • At the mercy of the app and server • Deleted accidentally, intentionally
  • 8.
    IPFS: Permanence • Contentcached at nodes • Distributes automatically • No single place to delete • Pin to keep permanently
  • 9.
    Web: Integrity • Integritynot guaranteed too • Depends on server safety • Contents addressed by name • Technically not related • Band aids • GPG, Checksum • High overhead or difficult to enforce
  • 10.
    IPFS: Integrity • Contentsaddressed by its contains • Cryptography hash as address • Name for dynamic content • Multihash - algorithm independent • Nodes identified by hash • Ensure the authenticity
  • 11.
    Web: Speed • Contentalways retrieved from server • Latency • Bandwidth wastage
  • 12.
  • 13.
    IPFS: Speed • Contentsavailable at multiple nodes • Low latency • Parallel download • Downloads from nearby node • Person sitting next to you • Saves bandwidth and time
  • 14.
  • 15.
    Distributed Storage • Built-insupport • Content deduplication • At multiple level • Directory hierarchy • Symbolic links
  • 16.
    P2P Communication • go-libp2p- IPFS P2P implementation • Supports TCP, UDP, UDT, etc. • ID based node addressing • IP independent
  • 17.
    IPFS Components • Modulardesign • Independent components • go-libp2p • multihash • many more
  • 18.
    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
  • 19.
    Thank You • Thanksto Juan Benet of IPFS • Me @ • sivachandran.p@gmail.com • github.com/sivachandran