decentralised web: ipfs project, david dias, protocol labs, ipfs
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