decentralised web: ipfs project, david dias, protocol labs, ipfs

73
The Distributed Web

Upload: alan-quayle

Post on 07-Jan-2017

121 views

Category:

Technology


2 download

TRANSCRIPT

Page 1: Decentralised Web: IPFS project, David Dias, Protocol Labs, IPFS

The Distributed Web

Page 2: Decentralised Web: IPFS project, David Dias, Protocol Labs, IPFS

> whoami

Page 3: Decentralised Web: IPFS project, David Dias, Protocol Labs, IPFS

David Dias, twitter: @daviddias github: @diasdavid

> whoami

Page 4: Decentralised Web: IPFS project, David Dias, Protocol Labs, IPFS

David Dias,

P2P SE&R @ Protocol Labs

twitter: @daviddias github: @diasdavid

> whoami

Page 5: Decentralised Web: IPFS project, David Dias, Protocol Labs, IPFS

The Web has some issues

Page 6: Decentralised Web: IPFS project, David Dias, Protocol Labs, IPFS

– Marc Andreessen, 2011

“Software is eating the world.”

Page 7: Decentralised Web: IPFS project, David Dias, Protocol Labs, IPFS
Page 8: Decentralised Web: IPFS project, David Dias, Protocol Labs, IPFS

The Internet was designed to be dumb

Page 9: Decentralised Web: IPFS project, David Dias, Protocol Labs, IPFS
Page 10: Decentralised Web: IPFS project, David Dias, Protocol Labs, IPFS

200 MB

Page 11: Decentralised Web: IPFS project, David Dias, Protocol Labs, IPFS

200 MB x 30 x 8 = 48 GB

Page 12: Decentralised Web: IPFS project, David Dias, Protocol Labs, IPFS

2,684,972,801

Page 13: Decentralised Web: IPFS project, David Dias, Protocol Labs, IPFS

536.994 PB

2,684,972,801

Page 14: Decentralised Web: IPFS project, David Dias, Protocol Labs, IPFS

200 MB x 30 x 8 = 48 GBCDN

Page 15: Decentralised Web: IPFS project, David Dias, Protocol Labs, IPFS

200 MB x 30 x 8 = 48 GB

Page 16: Decentralised Web: IPFS project, David Dias, Protocol Labs, IPFS
Page 17: Decentralised Web: IPFS project, David Dias, Protocol Labs, IPFS

https://www.backblaze.com/blog/price-gap-storage-vs-bandwidth/

Page 18: Decentralised Web: IPFS project, David Dias, Protocol Labs, IPFS

– “They said like more than decade ago”

“Everyone is going to get connected”

Page 19: Decentralised Web: IPFS project, David Dias, Protocol Labs, IPFS

low bw interference congestion travelisp outagedatacenter

Page 20: Decentralised Web: IPFS project, David Dias, Protocol Labs, IPFS
Page 21: Decentralised Web: IPFS project, David Dias, Protocol Labs, IPFS
Page 22: Decentralised Web: IPFS project, David Dias, Protocol Labs, IPFS

Permanence Security

IoT

Control

Offline

Bandwidth

Disconnected

Page 23: Decentralised Web: IPFS project, David Dias, Protocol Labs, IPFS

The Web was meant to be distributed

Page 24: Decentralised Web: IPFS project, David Dias, Protocol Labs, IPFS
Page 25: Decentralised Web: IPFS project, David Dias, Protocol Labs, IPFS
Page 26: Decentralised Web: IPFS project, David Dias, Protocol Labs, IPFS

InterPlanetary FileSystem

Page 27: Decentralised Web: IPFS project, David Dias, Protocol Labs, IPFS

Content Addressed File System

Page 28: Decentralised Web: IPFS project, David Dias, Protocol Labs, IPFS

http://10.20.30.40/foo/bar/baz.pnglocation path

http://example.com/foo/bar/baz.png

Page 29: Decentralised Web: IPFS project, David Dias, Protocol Labs, IPFS

http://10.20.30.40/foo/bar/baz.pnglocation path

http://example.com/foo/bar/baz.png

/ipns/example.com/foo/bar/baz.png

/ipfs/QmW98pJrc6FZ6/foo/bar/baz.pngcontent path

Page 30: Decentralised Web: IPFS project, David Dias, Protocol Labs, IPFS

10.20.30.40

you

HTTP

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

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

Page 31: Decentralised Web: IPFS project, David Dias, Protocol Labs, IPFS

10.20.30.40

you

HTTP

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

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

Page 32: Decentralised Web: IPFS project, David Dias, Protocol Labs, IPFS

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

10.20.30.40

you

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

IPFS

Page 33: Decentralised Web: IPFS project, David Dias, Protocol Labs, IPFS

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

10.20.30.40

you

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

IPFS

Page 34: Decentralised Web: IPFS project, David Dias, Protocol Labs, IPFS

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

10.20.30.40

you

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

IPFS

Page 35: Decentralised Web: IPFS project, David Dias, Protocol Labs, IPFS

SFS

web

DHT+

Page 36: Decentralised Web: IPFS project, David Dias, Protocol Labs, IPFS
Page 37: Decentralised Web: IPFS project, David Dias, Protocol Labs, IPFS

• Self-describable data types

• Secure data structures

• Distributed naming

• Distributed and fast updates

• Process addressing

Multiformats

IPLD

IPNS

PubSub

libp2p

//github.com/multiformats

//github.com/ipld

//github.com/ipfs/specs

//github.com/libp2p/pubsub

//github.com/libp2p

Page 38: Decentralised Web: IPFS project, David Dias, Protocol Labs, IPFS

multiformats

Page 39: Decentralised Web: IPFS project, David Dias, Protocol Labs, IPFS

multiformats

CID - Content IdentifierQmdfTbBqBPQ7VNxZEYEj14VmRuZBkqFbiwReogJgS1zIIIContent Address (Hash)

zdj7Wd8AMwqnhJGQCbFxBVodGSBG84TM7Hs1rcJuQMwTyfEDSContent Identifier

multibase cid version multicodec multihash hash valueContent Address (Hash)

Page 40: Decentralised Web: IPFS project, David Dias, Protocol Labs, IPFS

• Self-describable data types

• Secure data structures

• Distributed naming

• Distributed and fast updates

• Process addressing

Multiformats

IPLD

IPNS

PubSub

libp2p

//github.com/multiformats

//github.com/ipld

//github.com/ipfs/specs

//github.com/libp2p/pubsub

//github.com/libp2p

Page 41: Decentralised Web: IPFS project, David Dias, Protocol Labs, IPFS

IPLD - InterPlanetary Linked Data

any data structures can be represented as a DAG

MERKLE LINK

Page 42: Decentralised Web: IPFS project, David Dias, Protocol Labs, IPFS

MerkleTree

Page 43: Decentralised Web: IPFS project, David Dias, Protocol Labs, IPFS

Blockchain

Page 44: Decentralised Web: IPFS project, David Dias, Protocol Labs, IPFS

Blockchain

Page 45: Decentralised Web: IPFS project, David Dias, Protocol Labs, IPFS
Page 46: Decentralised Web: IPFS project, David Dias, Protocol Labs, IPFS
Page 47: Decentralised Web: IPFS project, David Dias, Protocol Labs, IPFS

• Self-describable data types

• Secure data structures

• Distributed naming

• Distributed and fast updates

• Process addressing

Multiformats

IPLD

IPNS

PubSub

libp2p

//github.com/multiformats

//github.com/ipld

//github.com/ipfs/specs

//github.com/libp2p/pubsub

//github.com/libp2p

Page 48: Decentralised Web: IPFS project, David Dias, Protocol Labs, IPFS

IPNS - InterPlanetary Name System

Page 49: Decentralised Web: IPFS project, David Dias, Protocol Labs, IPFS

• Self-describable data types

• Secure data structures

• Distributed naming

• Distributed and fast updates

• Process addressing

Multiformats

IPLD

IPNS

PubSub

libp2p

//github.com/multiformats

//github.com/ipld

//github.com/ipfs/specs

//github.com/libp2p/pubsub

//github.com/libp2p

Page 50: Decentralised Web: IPFS project, David Dias, Protocol Labs, IPFS
Page 51: Decentralised Web: IPFS project, David Dias, Protocol Labs, IPFS

“IPFS is the data layer that I as a developer always wanted”

Page 52: Decentralised Web: IPFS project, David Dias, Protocol Labs, IPFS

“IPFS is the data layer that I as a developer always wanted”

“it is the way I always expected the web to work as a User”

Page 53: Decentralised Web: IPFS project, David Dias, Protocol Labs, IPFS

The Distributed Web

Page 54: Decentralised Web: IPFS project, David Dias, Protocol Labs, IPFS

Live Examples

video distribution + streaming

Page 55: Decentralised Web: IPFS project, David Dias, Protocol Labs, IPFS

Live Examples

legal documents

Page 56: Decentralised Web: IPFS project, David Dias, Protocol Labs, IPFS

ipfs.pics (imgur-like)

Live Examples

Page 57: Decentralised Web: IPFS project, David Dias, Protocol Labs, IPFS

3D models (they're big!)

Live Examples

Page 58: Decentralised Web: IPFS project, David Dias, Protocol Labs, IPFS

Live Examples

games

Page 59: Decentralised Web: IPFS project, David Dias, Protocol Labs, IPFS

Live Examples

scientific data + papers

Page 60: Decentralised Web: IPFS project, David Dias, Protocol Labs, IPFS

Live Examples

blogs and websites

Page 61: Decentralised Web: IPFS project, David Dias, Protocol Labs, IPFS

totally distributed webapps

Live Examples

Page 62: Decentralised Web: IPFS project, David Dias, Protocol Labs, IPFS
Page 63: Decentralised Web: IPFS project, David Dias, Protocol Labs, IPFS
Page 64: Decentralised Web: IPFS project, David Dias, Protocol Labs, IPFS

Physical LinksVirtual Links

uuid-11

uuid-65uuid-70

uuid-17

uuid-19uuid-27

uuid-61uuid-91

uuid-37

uuid-2

uuid-43

uuid-51

uuid-1

uuid-31uuid-80

uuid-5

uuid-14

uuid-47

Page 65: Decentralised Web: IPFS project, David Dias, Protocol Labs, IPFS

utp

tcp Pigeon

Kademlia

Chord

SPDY

HTTP/2

WebRTC

WebSockets

SECIO

TLS

CJDNS

mDNS

Radio

Bluetooth

CurveCP

Relay

NAT Traversal

QUIC

PubSub

STUN

SCTP

ICE

Tor

I2P

Page 66: Decentralised Web: IPFS project, David Dias, Protocol Labs, IPFS

IPLD

Page 67: Decentralised Web: IPFS project, David Dias, Protocol Labs, IPFS
Page 68: Decentralised Web: IPFS project, David Dias, Protocol Labs, IPFS

IPLD{ “/“: “<SchemaCID>” }

Page 69: Decentralised Web: IPFS project, David Dias, Protocol Labs, IPFS

A protocol to upgrade the Web

Page 70: Decentralised Web: IPFS project, David Dias, Protocol Labs, IPFS

PermanentDistributed Safer

SmarterOffline

Faster

Page 71: Decentralised Web: IPFS project, David Dias, Protocol Labs, IPFS
Page 72: Decentralised Web: IPFS project, David Dias, Protocol Labs, IPFS

github.com/ipfs

Page 73: Decentralised Web: IPFS project, David Dias, Protocol Labs, IPFS

Thank you!

David Dias - http://daviddias.me IPFS http://ipfs.io Protocol Labs http://ipn.io