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

Post on 07-Jan-2017

121 Views

Category:

Technology

2 Downloads

Preview:

Click to see full reader

TRANSCRIPT

The Distributed Web

> whoami

David Dias, twitter: @daviddias github: @diasdavid

> whoami

David Dias,

P2P SE&R @ Protocol Labs

twitter: @daviddias github: @diasdavid

> whoami

The Web has some issues

– Marc Andreessen, 2011

“Software is eating the world.”

The Internet was designed to be dumb

200 MB

200 MB x 30 x 8 = 48 GB

2,684,972,801

536.994 PB

2,684,972,801

200 MB x 30 x 8 = 48 GBCDN

200 MB x 30 x 8 = 48 GB

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

– “They said like more than decade ago”

“Everyone is going to get connected”

low bw interference congestion travelisp outagedatacenter

Permanence Security

IoT

Control

Offline

Bandwidth

Disconnected

The Web was meant to be distributed

InterPlanetary FileSystem

Content Addressed File System

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

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

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

10.20.30.40

you

HTTP

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

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

10.20.30.40

you

HTTP

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

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

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

10.20.30.40

you

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

IPFS

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

10.20.30.40

you

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

IPFS

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

10.20.30.40

you

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

IPFS

SFS

web

DHT+

• 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

multiformats

multiformats

CID - Content IdentifierQmdfTbBqBPQ7VNxZEYEj14VmRuZBkqFbiwReogJgS1zIIIContent Address (Hash)

zdj7Wd8AMwqnhJGQCbFxBVodGSBG84TM7Hs1rcJuQMwTyfEDSContent Identifier

multibase cid version multicodec multihash hash valueContent Address (Hash)

• 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

IPLD - InterPlanetary Linked Data

any data structures can be represented as a DAG

MERKLE LINK

MerkleTree

Blockchain

Blockchain

• 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

IPNS - InterPlanetary Name System

• 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

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

“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”

The Distributed Web

Live Examples

video distribution + streaming

Live Examples

legal documents

ipfs.pics (imgur-like)

Live Examples

3D models (they're big!)

Live Examples

Live Examples

games

Live Examples

scientific data + papers

Live Examples

blogs and websites

totally distributed webapps

Live Examples

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

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

IPLD

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

A protocol to upgrade the Web

PermanentDistributed Safer

SmarterOffline

Faster

github.com/ipfs

Thank you!

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

top related