Slide 1

Slide 1 text

ipfs.io @juanbenet 2016-04-24

Slide 2

Slide 2 text

No content

Slide 3

Slide 3 text

No content

Slide 4

Slide 4 text

No content

Slide 5

Slide 5 text

No content

Slide 6

Slide 6 text

No content

Slide 7

Slide 7 text

No content

Slide 8

Slide 8 text

No content

Slide 9

Slide 9 text

No content

Slide 10

Slide 10 text

No content

Slide 11

Slide 11 text

2,561,624,196 x 200 MB

Slide 12

Slide 12 text

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

Slide 13

Slide 13 text

Ubiquitous Computing + IoT

Slide 14

Slide 14 text

Disconnected / Offline

Slide 15

Slide 15 text

Awful Security Model

Slide 16

Slide 16 text

NOT AUTHENTICATED NOT ENCRYPTED AT REST Awful Security Model

Slide 17

Slide 17 text

Data Control

Slide 18

Slide 18 text

Data Control

Slide 19

Slide 19 text

Latency and Bandwidth Barriers

Slide 20

Slide 20 text

Natural Disasters

Slide 21

Slide 21 text

surprise oppression censorship Human Disasters

Slide 22

Slide 22 text

Links Break Sites Disappear

Slide 23

Slide 23 text

Links Break Sites Disappear

Slide 24

Slide 24 text

Links Break Sites Disappear

Slide 25

Slide 25 text

the web has problems huge inefficiencies no offline use bad security model bad in mobile and IoT censorship links break

Slide 26

Slide 26 text

http://10.20.30.40/foo/bar/baz.png location path http://example.com/foo/bar/baz.png some problems stem from addressing model

Slide 27

Slide 27 text

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

Slide 28

Slide 28 text

the good news

Slide 29

Slide 29 text

No content

Slide 30

Slide 30 text

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

Slide 31

Slide 31 text

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

Slide 32

Slide 32 text

computers specs code ideas humans

Slide 33

Slide 33 text

computers specs code ideas humans Research Development Deployment Usage

Slide 34

Slide 34 text

Research Development Deployment Use

Slide 35

Slide 35 text

No content

Slide 36

Slide 36 text

cvs/svn

Slide 37

Slide 37 text

cvs/svn

Slide 38

Slide 38 text

cvs/svn

Slide 39

Slide 39 text

No content

Slide 40

Slide 40 text

No content

Slide 41

Slide 41 text

No content

Slide 42

Slide 42 text

No content

Slide 43

Slide 43 text

No content

Slide 44

Slide 44 text

No content

Slide 45

Slide 45 text

No content

Slide 46

Slide 46 text

No content

Slide 47

Slide 47 text

merkle trees merkle links

Slide 48

Slide 48 text

merkle trees merkle links

Slide 49

Slide 49 text

CRDTs

Slide 50

Slide 50 text

No content

Slide 51

Slide 51 text

WEB 1.0

Slide 52

Slide 52 text

WEB 2.0

Slide 53

Slide 53 text

WEB 3.0

Slide 54

Slide 54 text

No content

Slide 55

Slide 55 text

Permanent Distributed Safer Smarter Offline Faster

Slide 56

Slide 56 text

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

Slide 57

Slide 57 text

web DHT SFS routing network exchange merkledag naming applications The Stack

Slide 58

Slide 58 text

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

Slide 59

Slide 59 text

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

Slide 60

Slide 60 text

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

Slide 61

Slide 61 text

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

Slide 62

Slide 62 text

Transports Discovery Peer Routing NAT Traversal Content Routing libp2p

Slide 63

Slide 63 text

Transports Discovery Peer Routing NAT Traversal Content Routing libp2p

Slide 64

Slide 64 text

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

Slide 65

Slide 65 text

a web of merkle-links

Slide 66

Slide 66 text

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

Slide 67

Slide 67 text

IPFS is like a forest of linked merkle-trees

Slide 68

Slide 68 text

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

Slide 69

Slide 69 text

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

Slide 70

Slide 70 text

/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

Slide 71

Slide 71 text

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

Slide 72

Slide 72 text

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

Slide 73

Slide 73 text

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

Slide 74

Slide 74 text

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

Slide 75

Slide 75 text

/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

Slide 76

Slide 76 text

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

Slide 77

Slide 77 text

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

Slide 78

Slide 78 text

Keychain - cryptographic artifacts as IPFS objects parent: QmPARENT1 key fmt: _____________ keydata: _____________ parent: QmPARENT2 key fmt: _____________ keydata: _____________ parent: 0 key fmt: _____________ keydata: _____________

Slide 79

Slide 79 text

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

Slide 80

Slide 80 text

/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

Slide 81

Slide 81 text

routing network exchange IPLD naming applications IPNS Bitswap Kad DHT mDNS QUIC TCP uTP WebRTC WebSockets Websites Etherpad CJDNS UDT uPort Orbit Mediachain

Slide 82

Slide 82 text

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

Slide 83

Slide 83 text

large open source project 400+ contributors 70+ contribute weekly

Slide 84

Slide 84 text

live ipfs network already distributed all over the world >2000 ipfs nodes in jan (bitcoin is ~10k, bittorrent >30M)

Slide 85

Slide 85 text

500,000,000+ files

Slide 86

Slide 86 text

500,000,000+ files 500,000+ docker pulls

Slide 87

Slide 87 text

Live Examples video distribution + streaming

Slide 88

Slide 88 text

Live Examples legal documents

Slide 89

Slide 89 text

ipfs.pics (imgur-like) Live Examples

Slide 90

Slide 90 text

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

Slide 91

Slide 91 text

Live Examples p2p chat

Slide 92

Slide 92 text

Live Examples scientific data + papers

Slide 93

Slide 93 text

Live Examples blogs and websites

Slide 94

Slide 94 text

totally distributed webapps Live Examples

Slide 95

Slide 95 text

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, ...

Slide 96

Slide 96 text

github.com/haadcode/orbit p2p chat on IPFS Orbit

Slide 97

Slide 97 text

No content

Slide 98

Slide 98 text

No content

Slide 99

Slide 99 text

No content

Slide 100

Slide 100 text

- 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

Slide 101

Slide 101 text

github.com/diasdavid/registry-mirror works with vanilla npm npm on ipfs

Slide 102

Slide 102 text

github.com/diasdavid/registry-mirror works with vanilla npm npm on ipfs github.com/whyrusleeping/gx extensible pkg mgr gx-go for Golang! gx

Slide 103

Slide 103 text

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

Slide 104

Slide 104 text

used to archive data of

Slide 105

Slide 105 text

ipfs.io @juanbenet 2016-04-24