Adam Uhlir - LinuxDays · Annual traffic of 3,3 ZB by 2021 (1,2 EB in 2016; 120 PB in 2008) Source:...

Preview:

Citation preview

Adam Uhlir

Full-stack dev

Studied distributed systems

Focus(ed) on Cloud

Following IPFS since 2017

Actively contributing to js-ipfs

Since 2018 expanded to DWeb

1 MB x 6 = 6 MB

30 requests

30 x 1 MB x 6 = 180 MB

How far is it to Mars?

56-401 million km ⇒ 6-45 min latency

Source: https://en.wikipedia.org/wiki/Internet_censorship_and_surveillance_by_country

Data retention ownership

Annual traffic of 3,3 ZB by 2021(1,2 EB in 2016; 120 PB in 2008)

Source: Cisco Visual Networking Index Report 2017

Peer-to-PeerHypermedia

Content-AddressableDistribution

Protocol

Peer-to-PeerHypermedia

Content-AddressableDistribution

Protocol

SFS DHT

#

#“Hello” → 09f7e02f1290be211da707a266f153b3

“hello” → e134ced312b3511d88943d57ccd70c83

http://www.example.com/cute/puppy.jpg Uniform Resource Locator (URL)

/ipfs/Qm34ced312b3511d88943d57ccd70c83Content Address Identifier (CID)

# Qm34ced31...

http://www.example.com/archives/index.html

Immutability Verification

Deduplication

Uniform Resource Locator (URL)

/ipfs/Qm34ced312b3511d88943d57ccd70c83Content Address Identifier (CID)

Merkle Tree/Links

hello.txt cat.jpg contract.doc dog.png

hash(hello.txt)

Hash A

hash(cat.jpg)

Hash B

hash(contract.doc)

Hash C

hash(dog.jpg)

Hash D

hash(A+B)

Hash AB

hash(C+D)

Hash CD

hash(AB+CD)

Hash ABCD

cute_dog.png

hash(cute_dog.jpg)

Hash D’

hash(C+D’)

Hash CD’

hash(AB+CD’)

Hash ABCD’

.├── big_file.js├── hello.txt└── my_dir ├── my_file.txt └── testing.txt

.

my_dir

testing.txtmy_file.txt

big_file.js hello.txt

Qm4jAk8km1QmZma94lk2

QmKj25hzp5

QmZma94lk2Qm4m291afx

Qm3qbWD

QmAcZt31f

Qm1u48FnZj

QmFjZ83íSfAD

.

my_dir

testing.txt

big_file.js

hello.txtmy_file.txt

Qm4jAk8km1

QmKj25hzp5

QmZma94lk2

Qm4m291afx

Qm3qbWD

Source: ConsenSys blog

/ipfs/Qm3qbWD/my_dir/testing.txt

How is the content found?Distributed Hash Table!

DHT

/ipfs/Qm34c...A

/ipfs/Qm34c...A231.142.154.214

231.142.154.214

BitSwap

Pinning

What about dynamic content?IPNS!

IPNS /ipns/<NodeId>/archives/index.html

IPFS /ipfs/QmZBuTfLH1LL/archives/index.html

Publickey

Privatekey

NodeId = hash(PubKey)

index.htmlPubKey/ipfs/QmZBuTfLH1LLSigned by PrivateKey

IPFS Object

IPNS /ipns/QmAjdsa241d/archives/index.html

Pub/Sub mechanism

Where does it fit in the world of Web?

DB → Blockchain / IPFS objects

Non-trusted execution→ Smart Contracts

Adoption plan

IPFS Gateway (gateway.ipfs.io)DNS TXT ‘dnslink’IPFS Companiongo-ipfs | js-ipfs

many others client libraries

DWeb Prague

meetup.com/dweb-prague

Thanks for listening!Questions?

adam@uhlir.devwww.uhlir.dev

Recommended