Upgrade to Pro — share decks privately, control downloads, hide ads and more …

IPFS @ dotScale

IPFS @ dotScale

Juan Batiz-Benet

April 25, 2016
Tweet

More Decks by Juan Batiz-Benet

Other Decks in Programming

Transcript

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

    security model bad in mobile and IoT censorship links break
  2. IP UDP TCP SCTP Ethernet CSMA WIFI TP Coax Satellite

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

    Fiber Radio PPP HTTP SMTP FTP NFS Skype Pigeons Chat
  4. routing network exchange merkldag naming applications The Stack Defining the

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

    Data Moving the Data IPLD libp2p IPNS Using the Data
  6. 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
  7. 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
  8. routing network exchange merkldag naming applications The Stack Defining the

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

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

    Data Moving the Data Using the Data IPLD libp2p IPNS
  11. jbenet @ earth : ~ > ipld cat —-fmt yml

    $gitcommit --- tree: {@: e4647147e940e2fab134e7f3d8a40c2022cb36f3} parents: - {@: /ipfs/QmP8AmEKHHMnaBaQsEJVGs7ZbBSQAxhPn9zP2jHQy6Uekj} - {@: /ipfs/QmfVQwj2cyhrKQV1BY1y2nAcQcjiKEkvEYJDGwWFUHcHaQ} author: link: {@: /ipfs/QmVoXUXmES4ujTdJ9CQAs8D3jMag2enjtBn2towYHmKxYa} name: Juan Batiz-Benet email: [email protected] time: "1435398707 -0700" committer: link: {@: /ipfs/QmVoXUXmES4ujTdJ9CQAs8D3jMag2enjtBn2towYHmKxYa} name: Juan Batiz-Benet email: [email protected] time: "1435398707 -0700" message: "Merge pull request #7 from ipld\n\n(WIP) records + merkledag specs" versioning data structures - git
  12. 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
  13. Keychain - cryptographic artifacts as IPFS objects parent: QmPARENT1 key

    fmt: _____________ keydata: _____________ parent: QmPARENT2 key fmt: _____________ keydata: _____________ parent: 0 key fmt: _____________ keydata: _____________
  14. 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
  15. routing network exchange IPLD naming applications IPNS Bitswap Kad DHT

    mDNS QUIC TCP uTP WebRTC WebSockets Websites Etherpad CJDNS UDT uPort Orbit Mediachain
  16. 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
  17. live ipfs network already distributed all over the world >2000

    ipfs nodes in jan (bitcoin is ~10k, bittorrent >30M)
  18. 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, ...
  19. - 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
  20. 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