IPFS @ dotScale

IPFS @ dotScale

A9670c143716320893863524a0efbaff?s=128

Juan Batiz-Benet

April 25, 2016
Tweet

Transcript

  1. ipfs.io @juanbenet 2016-04-24

  2. None
  3. None
  4. None
  5. None
  6. None
  7. None
  8. None
  9. None
  10. None
  11. 2,561,624,196 x 200 MB

  12. 2,561,624,196 512.3 PB x 200 MB

  13. Ubiquitous Computing + IoT

  14. Disconnected / Offline

  15. Awful Security Model

  16. NOT AUTHENTICATED NOT ENCRYPTED AT REST Awful Security Model

  17. Data Control

  18. Data Control

  19. Latency and Bandwidth Barriers

  20. Natural Disasters

  21. surprise oppression censorship Human Disasters

  22. Links Break Sites Disappear

  23. Links Break Sites Disappear

  24. Links Break Sites Disappear

  25. the web has problems huge inefficiencies no offline use bad

    security model bad in mobile and IoT censorship links break
  26. http://10.20.30.40/foo/bar/baz.png location path http://example.com/foo/bar/baz.png some problems stem from addressing model

  27. http://10.20.30.40/foo/bar/baz.png 10.20.30.40 you HTTP

  28. the good news

  29. None
  30. IP UDP TCP SCTP Ethernet CSMA WIFI TP Coax Satellite

    Fiber Radio PPP HTTP SMTP FTP NFS Skype Pigeons Chat
  31. IP UDP TCP SCTP Ethernet CSMA WIFI TP Coax Satellite

    Fiber Radio PPP HTTP SMTP FTP NFS Skype Pigeons Chat
  32. computers specs code ideas humans

  33. computers specs code ideas humans Research Development Deployment Usage

  34. Research Development Deployment Use

  35. None
  36. cvs/svn

  37. cvs/svn

  38. cvs/svn

  39. None
  40. None
  41. None
  42. None
  43. None
  44. None
  45. None
  46. None
  47. merkle trees merkle links

  48. merkle trees merkle links

  49. CRDTs

  50. None
  51. WEB 1.0

  52. WEB 2.0

  53. WEB 3.0

  54. None
  55. Permanent Distributed Safer Smarter Offline Faster

  56. a new hypermedia distribution protocol (a new web transport protocol)

  57. web DHT SFS routing network exchange merkledag naming applications The

    Stack
  58. routing network exchange merkldag naming applications The Stack Defining the

    Data Moving the Data IPLD libp2p IPNS Using the Data
  59. routing network exchange merkldag naming applications The Stack Defining the

    Data Moving the Data IPLD libp2p IPNS Using the Data
  60. routing network exchange Bitswap HTTP BitTorrent Kad DHT Chord mDNS

    Gossip Delegated FTP TOR QUIC TOR TCP uTP WebRTC WebSockets I2P I2P CJDNS UDT libp2p - a collection of peer-to-peer protocols for finding peers, and connecting to them for finding content, and transferring it
  61. libp2p - a collection of peer-to-peer protocols TCP uTP QUIC

    SCTP BLE TOR I2P Transports mDNS boot strap DNS Kad DHT PEX PKI Discovery Peer Routing mDNS Kad DHT DNS DVs mDNS pub sub Kad DHT Content Routing STUN TURN ICE Kad ICE NAT Traversal
  62. Transports Discovery Peer Routing NAT Traversal Content Routing libp2p

  63. Transports Discovery Peer Routing NAT Traversal Content Routing libp2p

  64. routing network exchange merkldag naming applications The Stack Defining the

    Data Moving the Data IPLD libp2p IPNS Using the Data
  65. a web of merkle-links

  66. merkle-links are behind bitcoin's security properties git's bittorrent's

  67. IPFS is like a forest of linked merkle-trees

  68. routing network exchange merkldag naming applications The Stack Defining the

    Data Moving the Data IPLD libp2p IPNS Using the Data
  69. routing network exchange merkldag naming applications The Stack Defining the

    Data Moving the Data Using the Data IPLD libp2p IPNS
  70. /ipns/QmYJPtosPTfoC/foo/bar/baz.png /ipfs/QmW98pJrc6FZ6/foo/bar/baz.png /ipns/example.com/foo/bar/baz.png key name dns name /dns/example.com/foo/bar/baz.png content addr

    fs:/ipfs/QmW98pJrc6FZ6/foo/bar/baz.png ipfs:/ipfs/QmW98pJrc6FZ6/foo/bar/baz.png
  71. /ipfs/QmW98pJrc6FZ6/foo/bar/baz.png /ipns/example.com/foo/bar/baz.png dns name content addr

  72. /ipfs/QmW98pJrc6FZ6/foo/bar/baz.png content path

  73. /ipfs/QmW98pJrc6FZ6/foo/bar/baz.png content path foo bar baz.png QmW98pJrc6FZ6

  74. /ipfs/QmW98pJrc6FZ6/foo/bar/baz.png content path foo:HB HB HC HD bar:HC baz.png :HD

    QmW98pJrc6FZ6 foo bar baz.png
  75. /ipfs/QmW98pJrc6FZ6/foo/bar/baz.png content path foo:HB HB HC HD bar:HC baz.png :HD

    QmW98pJrc6FZ6 foo bar baz.png MERKLE LINK
  76. jbenet @ earth : ~ > ipld cat —-fmt yml

    $gitcommit --- tree: {@: e4647147e940e2fab134e7f3d8a40c2022cb36f3} parents: - {@: /ipfs/QmP8AmEKHHMnaBaQsEJVGs7ZbBSQAxhPn9zP2jHQy6Uekj} - {@: /ipfs/QmfVQwj2cyhrKQV1BY1y2nAcQcjiKEkvEYJDGwWFUHcHaQ} author: link: {@: /ipfs/QmVoXUXmES4ujTdJ9CQAs8D3jMag2enjtBn2towYHmKxYa} name: Juan Batiz-Benet email: juan@benet.ai time: "1435398707 -0700" committer: link: {@: /ipfs/QmVoXUXmES4ujTdJ9CQAs8D3jMag2enjtBn2towYHmKxYa} name: Juan Batiz-Benet email: juan@benet.ai time: "1435398707 -0700" message: "Merge pull request #7 from ipld\n\n(WIP) records + merkledag specs" versioning data structures - git
  77. AUTHENTICATED WEBAPP DATA user: @juanbenet name: Juan Benet user: @daviddias

    name: David Dias @juanbenet follows @daviddias user: @timbl name: Tim Berners-Lee @juanbenet follows @timbl @juanbenet follows signed by @juanbenet
  78. Keychain - cryptographic artifacts as IPFS objects parent: QmPARENT1 key

    fmt: _____________ keydata: _____________ parent: QmPARENT2 key fmt: _____________ keydata: _____________ parent: 0 key fmt: _____________ keydata: _____________
  79. give digital information print-like qualities. - references are to the

    work, not the copy - any copy is authoritative - anybody can choose to archive it - anybody can read it later - anybody can replicate it
  80. /ipns/QmYJPtosPTfoC/foo/bar/baz.png /ipfs/QmW98pJrc6FZ6/foo/bar/baz.png /ipns/example.com/foo/bar/baz.png key name dns name /dns/example.com/foo/bar/baz.png content addr

    fs:/ipfs/QmW98pJrc6FZ6/foo/bar/baz.png ipfs:/ipfs/QmW98pJrc6FZ6/foo/bar/baz.png
  81. routing network exchange IPLD naming applications IPNS Bitswap Kad DHT

    mDNS QUIC TCP uTP WebRTC WebSockets Websites Etherpad CJDNS UDT uPort Orbit Mediachain
  82. routing network exchange IPLD naming applications IPNS DNS Namecoin Bitswap

    HTTP BitTorrent Kad DHT Chord mDNS Gossip Delegated FTP TOR QUIC TOR TCP uTP WebRTC WebSockets Orbit Websites Etherpad I2P I2P CJDNS UDT uPort EthNames Mediachain Blockstack
  83. large open source project 400+ contributors 70+ contribute weekly

  84. live ipfs network already distributed all over the world >2000

    ipfs nodes in jan (bitcoin is ~10k, bittorrent >30M)
  85. 500,000,000+ files

  86. 500,000,000+ files 500,000+ docker pulls

  87. Live Examples video distribution + streaming

  88. Live Examples legal documents

  89. ipfs.pics (imgur-like) Live Examples

  90. 3D models (they're big!) Live Examples

  91. Live Examples p2p chat

  92. Live Examples scientific data + papers

  93. Live Examples blogs and websites

  94. totally distributed webapps Live Examples

  95. distributed webapps - app code stored + distributed with ipfs

    - app data stored + distributed with ipfs - browsers can connect to each other - no origin servers! - no central point of failure - everything end-to-end encrypted - app "lives on the network" examples: forums, chat, messaging, cms, blogs, github, ...
  96. github.com/haadcode/orbit p2p chat on IPFS Orbit

  97. None
  98. None
  99. None
  100. - distributed / peer-to-peer - cryptographically verified links - digitally

    signed links - "everyone is a mirror" - save lots of bandwidth - versioning built in used for package managers
  101. github.com/diasdavid/registry-mirror works with vanilla npm npm on ipfs

  102. github.com/diasdavid/registry-mirror works with vanilla npm npm on ipfs github.com/whyrusleeping/gx extensible

    pkg mgr gx-go for Golang! gx
  103. used for secure documents - content addressed hash links -

    digitally signed links - trustless ledgers - permanent links - secure document web already in use at: - banks - legal archives - blockchain companies - smart contract apps
  104. used to archive data of

  105. ipfs.io @juanbenet 2016-04-24