IPFS - InterPlanetary File System

65ef8225fb045000ca8ffd1adfad0d05?s=47 codemaxx
October 31, 2018

IPFS - InterPlanetary File System

This is a presentation I have as a part of my blockchain course project at IIT Bombay 2018.

The full report can be found on my website: https://www.akashtrehan.com/projects/

65ef8225fb045000ca8ffd1adfad0d05?s=128

codemaxx

October 31, 2018
Tweet

Transcript

  1. InterPlanetary File System (IPFS) Akash Trehan @cod3maxx | www.akashtrehan.com

  2. Blueprint • Goal • Why do we need IPFS? •

    High level overview / Usage • The IPFS Stack • Problems with IPFS • Cool Apps • Some cool latest updates • Demo
  3. Blueprint • Goal • Why do we need IPFS? •

    High level overview / Usage • The IPFS Stack • Problems with IPFS • Cool Apps • Some cool latest updates • Demo
  4. Blueprint • Goal • Why do we need IPFS? •

    High level overview / Usage • The IPFS Stack • Problems with IPFS • Cool Apps • Some cool latest updates • Demo
  5. Source: https://speakerd.s3.amazonaws.com/presentations/ecffee895940481a8f9aa8416806a13f/ipfs-005.2.pdf

  6. Source: https://qconsf.com/sf2015/system/files/presentation-slides/ipfs-018.qconsf.pdf

  7. Source: https://qconsf.com/sf2015/system/files/presentation-slides/ipfs-018.qconsf.pdf

  8. Source: https://qconsf.com/sf2015/system/files/presentation-slides/ipfs-018.qconsf.pdf

  9. Source: https://qconsf.com/sf2015/system/files/presentation-slides/ipfs-018.qconsf.pdf

  10. Source: https://qconsf.com/sf2015/system/files/presentation-slides/ipfs-018.qconsf.pdf

  11. Source: https://qconsf.com/sf2015/system/files/presentation-slides/ipfs-018.qconsf.pdf

  12. Source: https://qconsf.com/sf2015/system/files/presentation-slides/ipfs-018.qconsf.pdf

  13. Source: https://qconsf.com/sf2015/system/files/presentation-slides/ipfs-018.qconsf.pdf

  14. Blueprint • Goal • Why do we need IPFS? •

    High level overview / Usage • The IPFS Stack • Problems with IPFS • Cool Apps • Some cool latest updates • Demo
  15. Blueprint • Goal • Why do we need IPFS? •

    High level overview / Usage • The IPFS Stack • Problems with IPFS • Cool Apps • Some cool latest updates • Demo
  16. Image of the stack and what all IPFS is built

    on Source: https://qconsf.com/sf2015/system/files/presentation-slides/ipfs-018.qconsf.pdf
  17. Image of stack and the details for ipfs specifically Source:

    https://qconsf.com/sf2015/system/files/presentation-slides/ipfs-018.qconsf.pdf
  18. Source: https://qconsf.com/sf2015/system/files/presentation-slides/ipfs-018.qconsf.pdf

  19. Source: https://qconsf.com/sf2015/system/files/presentation-slides/ipfs-018.qconsf.pdf

  20. Slide showing all the parts of ipfs we are going

    to talk about Source: https://qconsf.com/sf2015/system/files/presentation-slides/ipfs-018.qconsf.pdf
  21. Source: https://qconsf.com/sf2015/system/files/presentation-slides/ipfs-018.qconsf.pdf

  22. P2P networks and Distributed Hash Tables Source: https://www.youtube.com/watch?v=kXyVqk3EbwE

  23. P2P networks and Distributed Hash Tables Source: https://www.youtube.com/watch?v=kXyVqk3EbwE

  24. P2P networks and Distributed Hash Tables Source: https://www.youtube.com/watch?v=kXyVqk3EbwE

  25. P2P networks and Distributed Hash Tables Source: https://www.youtube.com/watch?v=kXyVqk3EbwE

  26. P2P networks and Distributed Hash Tables Source: https://www.youtube.com/watch?v=kXyVqk3EbwE

  27. P2P networks and Distributed Hash Tables Source: https://www.youtube.com/watch?v=kXyVqk3EbwE

  28. P2P networks and Distributed Hash Tables Source: https://www.youtube.com/watch?v=kXyVqk3EbwE

  29. IPFS Routing Interface • FindPeer (node NodeID) • SetValue (key

    []bytes, value []bytes) • GetValue (key []bytes) • ProvideValue( key Multihash) • FindValuePeers (key Multihash, min int)
  30. Incentivization • Must incentivize nodes to seed when they do

    not need anything in particular, as they might have the blocks others want • Moreover, leeches must be protected against • The technique be effective with and resistant to other, unknown strategies • Leniency to trusted peers • IPFS uses a simple credit system called BitSwap
  31. The BitSwap Protocol Source: https://github.com/ipfs/papers/raw/master/ipfs-cap2pfs/ipfs-p2p-file-system.pdf (IPFS paper)

  32. The BitSwap Protocol • provides resistance to attackers who would

    create lots of new nodes (Sybil attacks) • protects previously successful trade relationships, even if one of the nodes is temporarily unable to provide value • eventually chokes relationships that have deteriorated until they improve.
  33. The BitSwap Protocol Interface • Peer.open (NodeId, Ledger). • Peer.send_want_list

    (WantList) • Peer.send_block (Block) • Peer.close (Bool)
  34. Source: https://qconsf.com/sf2015/system/files/presentation-slides/ipfs-018.qconsf.pdf

  35. Source: https://qconsf.com/sf2015/system/files/presentation-slides/ipfs-018.qconsf.pdf

  36. Source: https://qconsf.com/sf2015/system/files/presentation-slides/ipfs-018.qconsf.pdf

  37. Source: https://qconsf.com/sf2015/system/files/presentation-slides/ipfs-018.qconsf.pdf

  38. Source: https://qconsf.com/sf2015/system/files/presentation-slides/ipfs-018.qconsf.pdf

  39. Source: https://qconsf.com/sf2015/system/files/presentation-slides/ipfs-018.qconsf.pdf

  40. Source: https://qconsf.com/sf2015/system/files/presentation-slides/ipfs-018.qconsf.pdf

  41. Source: https://qconsf.com/sf2015/system/files/presentation-slides/ipfs-018.qconsf.pdf

  42. Source: https://qconsf.com/sf2015/system/files/presentation-slides/ipfs-018.qconsf.pdf

  43. Source: https://qconsf.com/sf2015/system/files/presentation-slides/ipfs-018.qconsf.pdf

  44. Source: https://speakerd.s3.amazonaws.com/presentations/ecffee895940481a8f9aa8416806a13f/ipfs-005.2.pdf

  45. Source: https://speakerd.s3.amazonaws.com/presentations/ecffee895940481a8f9aa8416806a13f/ipfs-005.2.pdf

  46. Source: https://speakerd.s3.amazonaws.com/presentations/ecffee895940481a8f9aa8416806a13f/ipfs-005.2.pdf

  47. None
  48. Source: https://speakerd.s3.amazonaws.com/presentations/ecffee895940481a8f9aa8416806a13f/ipfs-005.2.pdf

  49. Source: https://speakerd.s3.amazonaws.com/presentations/ecffee895940481a8f9aa8416806a13f/ipfs-005.2.pdf

  50. Source: https://speakerd.s3.amazonaws.com/presentations/ecffee895940481a8f9aa8416806a13f/ipfs-005.2.pdf

  51. Source: https://speakerd.s3.amazonaws.com/presentations/ecffee895940481a8f9aa8416806a13f/ipfs-005.2.pdf

  52. Source: https://speakerd.s3.amazonaws.com/presentations/ecffee895940481a8f9aa8416806a13f/ipfs-005.2.pdf

  53. Source: https://speakerd.s3.amazonaws.com/presentations/ecffee895940481a8f9aa8416806a13f/ipfs-005.2.pdf

  54. Source: https://speakerd.s3.amazonaws.com/presentations/ecffee895940481a8f9aa8416806a13f/ipfs-005.2.pdf

  55. Source: https://speakerd.s3.amazonaws.com/presentations/ecffee895940481a8f9aa8416806a13f/ipfs-005.2.pdf

  56. Source: https://speakerd.s3.amazonaws.com/presentations/ecffee895940481a8f9aa8416806a13f/ipfs-005.2.pdf

  57. Source: https://speakerd.s3.amazonaws.com/presentations/ecffee895940481a8f9aa8416806a13f/ipfs-005.2.pdf

  58. Source: https://speakerd.s3.amazonaws.com/presentations/ecffee895940481a8f9aa8416806a13f/ipfs-005.2.pdf

  59. Source: https://speakerd.s3.amazonaws.com/presentations/ecffee895940481a8f9aa8416806a13f/ipfs-005.2.pdf

  60. Source: https://speakerd.s3.amazonaws.com/presentations/ecffee895940481a8f9aa8416806a13f/ipfs-005.2.pdf

  61. Source: https://speakerd.s3.amazonaws.com/presentations/ecffee895940481a8f9aa8416806a13f/ipfs-005.2.pdf

  62. Source: https://speakerd.s3.amazonaws.com/presentations/ecffee895940481a8f9aa8416806a13f/ipfs-005.2.pdf

  63. Source: https://ipfs.io/ipfs/Qme51FQycp922BN83u8KXUYKJAxVAtPJbk1rxxN26934pN/ipfs-038.eth-ipfs-dapp-meetup.pdf

  64. Source: https://ipfs.io/ipfs/Qme51FQycp922BN83u8KXUYKJAxVAtPJbk1rxxN26934pN/ipfs-038.eth-ipfs-dapp-meetup.pdf

  65. Source: https://ipfs.io/ipfs/Qme51FQycp922BN83u8KXUYKJAxVAtPJbk1rxxN26934pN/ipfs-038.eth-ipfs-dapp-meetup.pdf

  66. Source: https://ipfs.io/ipfs/Qme51FQycp922BN83u8KXUYKJAxVAtPJbk1rxxN26934pN/ipfs-038.eth-ipfs-dapp-meetup.pdf

  67. Source: https://ipfs.io/ipfs/Qme51FQycp922BN83u8KXUYKJAxVAtPJbk1rxxN26934pN/ipfs-038.eth-ipfs-dapp-meetup.pdf

  68. Source: https://ipfs.io/ipfs/Qme51FQycp922BN83u8KXUYKJAxVAtPJbk1rxxN26934pN/ipfs-038.eth-ipfs-dapp-meetup.pdf

  69. Source: https://ipfs.io/ipfs/Qme51FQycp922BN83u8KXUYKJAxVAtPJbk1rxxN26934pN/ipfs-038.eth-ipfs-dapp-meetup.pdf

  70. Source: https://ipfs.io/ipfs/Qme51FQycp922BN83u8KXUYKJAxVAtPJbk1rxxN26934pN/ipfs-038.eth-ipfs-dapp-meetup.pdf

  71. Source: https://ipfs.io/ipfs/Qme51FQycp922BN83u8KXUYKJAxVAtPJbk1rxxN26934pN/ipfs-038.eth-ipfs-dapp-meetup.pdf

  72. Source: https://ipfs.io/ipfs/Qme51FQycp922BN83u8KXUYKJAxVAtPJbk1rxxN26934pN/ipfs-038.eth-ipfs-dapp-meetup.pdf

  73. Source: https://ipfs.io/ipfs/Qme51FQycp922BN83u8KXUYKJAxVAtPJbk1rxxN26934pN/ipfs-038.eth-ipfs-dapp-meetup.pdf

  74. IPRS

  75. Source: https://ipfs.io/ipfs/Qme51FQycp922BN83u8KXUYKJAxVAtPJbk1rxxN26934pN/ipfs-038.eth-ipfs-dapp-meetup.pdf

  76. Source: https://ipfs.io/ipfs/Qme51FQycp922BN83u8KXUYKJAxVAtPJbk1rxxN26934pN/ipfs-038.eth-ipfs-dapp-meetup.pdf

  77. Source: https://ipfs.io/ipfs/Qme51FQycp922BN83u8KXUYKJAxVAtPJbk1rxxN26934pN/ipfs-038.eth-ipfs-dapp-meetup.pdf

  78. Source: https://ipfs.io/ipfs/Qme51FQycp922BN83u8KXUYKJAxVAtPJbk1rxxN26934pN/ipfs-038.eth-ipfs-dapp-meetup.pdf

  79. Source: https://ipfs.io/ipfs/Qme51FQycp922BN83u8KXUYKJAxVAtPJbk1rxxN26934pN/ipfs-038.eth-ipfs-dapp-meetup.pdf

  80. IPNS

  81. Source: https://qconsf.com/sf2015/system/files/presentation-slides/ipfs-018.qconsf.pdf

  82. Source: https://qconsf.com/sf2015/system/files/presentation-slides/ipfs-018.qconsf.pdf

  83. Source: https://qconsf.com/sf2015/system/files/presentation-slides/ipfs-018.qconsf.pdf

  84. Source: https://qconsf.com/sf2015/system/files/presentation-slides/ipfs-018.qconsf.pdf

  85. Source: https://qconsf.com/sf2015/system/files/presentation-slides/ipfs-018.qconsf.pdf

  86. Source: https://qconsf.com/sf2015/system/files/presentation-slides/ipfs-018.qconsf.pdf

  87. Source: https://qconsf.com/sf2015/system/files/presentation-slides/ipfs-018.qconsf.pdf

  88. Source: https://qconsf.com/sf2015/system/files/presentation-slides/ipfs-018.qconsf.pdf

  89. Source: https://qconsf.com/sf2015/system/files/presentation-slides/ipfs-018.qconsf.pdf

  90. Source: https://qconsf.com/sf2015/system/files/presentation-slides/ipfs-018.qconsf.pdf

  91. Source: https://qconsf.com/sf2015/system/files/presentation-slides/ipfs-018.qconsf.pdf

  92. Source: https://qconsf.com/sf2015/system/files/presentation-slides/ipfs-018.qconsf.pdf

  93. Source: https://qconsf.com/sf2015/system/files/presentation-slides/ipfs-018.qconsf.pdf

  94. Source: https://qconsf.com/sf2015/system/files/presentation-slides/ipfs-018.qconsf.pdf

  95. Source: https://qconsf.com/sf2015/system/files/presentation-slides/ipfs-018.qconsf.pdf

  96. Blueprint • Goal • Why do we need IPFS? •

    High level overview / Usage • The IPFS Stack • Problems with IPFS • Cool Apps • Some cool latest updates • Demo
  97. Problems • Permanence does not mean Persistent! • Illegal/Pirated content

  98. Blueprint • Goal • Why do we need IPFS? •

    High level overview / Usage • The IPFS Stack • Problems with IPFS • Cool Apps • Some cool latest updates • Demo
  99. Cool Apps • PeerPad: Collaborative editing tool • OpenBazaar: Online

    marketplace • The Lab: Video hosting • IPFScloud: Cloud storage platform
  100. Blueprint • Goal • Why do we need IPFS? •

    High level overview / Usage • The IPFS Stack • Problems with IPFS • Cool Apps • Some cool latest updates • Demo
  101. Some cool latest update • Sweet IPFS: InterPlanetary File System

    for Android • IPFS Pinbot: Add content and pin things using tweets • ipfs.wikileaks.org: Experimental IPFS gateway for WikiLeaks
  102. Blueprint • Goal • Why do we need IPFS? •

    High level overview / Usage • The IPFS Stack • Problems with IPFS • Cool Apps • Some cool latest updates • Demo
  103. References / Things I read and watched (1) • IPFS

    Paper: https://github.com/ipfs/papers/raw/master/ipfs-cap2pfs/ipfs-p2p-file-system.pdf • IPFS Reddit: https://www.reddit.com/r/ipfs/ • IPFS Discussion Forum: https://discuss.ipfs.io/ • IPFS Blog: https://blog.ipfs.io/ • Resolution and Routing in IPFS: https://github.com/ipfs/faq/issues/48 • IPFS Presentation 1: https://speakerd.s3.amazonaws.com/presentations/ecffee895940481a8f9aa8416806a1 3f/ipfs-005.2.pdf • IPFS Presentation 2: https://www.w3.org/2016/04/blockchain-workshop/slides/benet-ipfs.pdf • IPFS Presentation 3: https://ipfs.io/ipfs/Qme51FQycp922BN83u8KXUYKJAxVAtPJbk1rxxN26934pN/ipfs-0 38.eth-ipfs-dapp-meetup.pdf • IPFS Presentation 4: https://qconsf.com/sf2015/system/files/presentation-slides/ipfs-018.qconsf.pdf
  104. References / Things I read and watched (2) • IPFS

    talk at Stanford: https://www.youtube.com/watch?v=HUVmypx9HGI • Peer-to-Peer algorithms: https://www.youtube.com/watch?v=kXyVqk3EbwE • IPFS Blockchain Fun (demo): https://www.youtube.com/watch?v=bi-4YGZXxwA • IPLD: The Merkle Forest: https://www.youtube.com/watch?v=Bqs_LzBjQyk • Github MerkleDAG: https://www.youtube.com/watch?v=ronoCeMzfJ4 • Intro to libp2p: https://www.youtube.com/watch?v=CRe_oDtfRLw • DHTs at GTech: https://www.youtube.com/watch?v=nCLtfUjAVD4 • IPFS Alpha Demo: https://www.youtube.com/watch?v=8CMxDNuuAiQ • BitSwap Coffee Talk: https://www.youtube.com/watch?v=9UjqJTCg_h4