the interplanetary file system - brmlabipfs is a protocol defines a content-addressed file system...

27
The InterPlanetary File System Pavol Rusnak <[email protected]>

Upload: others

Post on 17-Jul-2020

2 views

Category:

Documents


0 download

TRANSCRIPT

Page 1: The InterPlanetary File System - brmlabIPFS is a protocol defines a content-addressed file system coordinates content delivery combines Kademlia + BitTorrent + Git

The InterPlanetary File System

Pavol Rusnak <[email protected]>

Page 2: The InterPlanetary File System - brmlabIPFS is a protocol defines a content-addressed file system coordinates content delivery combines Kademlia + BitTorrent + Git
Page 3: The InterPlanetary File System - brmlabIPFS is a protocol defines a content-addressed file system coordinates content delivery combines Kademlia + BitTorrent + Git

go get -u github.com/ipfs/go-ipfs/cmd/ipfs

Page 4: The InterPlanetary File System - brmlabIPFS is a protocol defines a content-addressed file system coordinates content delivery combines Kademlia + BitTorrent + Git

ipfs

Page 5: The InterPlanetary File System - brmlabIPFS is a protocol defines a content-addressed file system coordinates content delivery combines Kademlia + BitTorrent + Git

ipfs version

Page 6: The InterPlanetary File System - brmlabIPFS is a protocol defines a content-addressed file system coordinates content delivery combines Kademlia + BitTorrent + Git

ipfs init

Page 7: The InterPlanetary File System - brmlabIPFS is a protocol defines a content-addressed file system coordinates content delivery combines Kademlia + BitTorrent + Git

ipfs daemon

Page 8: The InterPlanetary File System - brmlabIPFS is a protocol defines a content-addressed file system coordinates content delivery combines Kademlia + BitTorrent + Git

echo ‘Hello IPFS!’ > hello.txt

ipfs add hello.txt

Page 9: The InterPlanetary File System - brmlabIPFS is a protocol defines a content-addressed file system coordinates content delivery combines Kademlia + BitTorrent + Git

ipfs cat QmYWAifyw2V5dEq7c5GgdSPffeKoYXQZggnYzw5RbXpig4

Page 10: The InterPlanetary File System - brmlabIPFS is a protocol defines a content-addressed file system coordinates content delivery combines Kademlia + BitTorrent + Git

ipfs swarm peers

Page 12: The InterPlanetary File System - brmlabIPFS is a protocol defines a content-addressed file system coordinates content delivery combines Kademlia + BitTorrent + Git

ipfs add -r directory

http://gateway.ipfs.io/ipfs/QmeYYwD4y4DgVVdAzhT7wW5vrvmbKPQj8wcV2pAzjbj886

Page 13: The InterPlanetary File System - brmlabIPFS is a protocol defines a content-addressed file system coordinates content delivery combines Kademlia + BitTorrent + Git
Page 14: The InterPlanetary File System - brmlabIPFS is a protocol defines a content-addressed file system coordinates content delivery combines Kademlia + BitTorrent + Git

http://localhost:5001/webui

Page 15: The InterPlanetary File System - brmlabIPFS is a protocol defines a content-addressed file system coordinates content delivery combines Kademlia + BitTorrent + Git

Under the hood

Page 16: The InterPlanetary File System - brmlabIPFS is a protocol defines a content-addressed file system coordinates content delivery combines Kademlia + BitTorrent + Git
Page 17: The InterPlanetary File System - brmlabIPFS is a protocol defines a content-addressed file system coordinates content delivery combines Kademlia + BitTorrent + Git
Page 18: The InterPlanetary File System - brmlabIPFS is a protocol defines a content-addressed file system coordinates content delivery combines Kademlia + BitTorrent + Git

Under the hood

● MerkleDAG (Directed Acyclic Graph) [Git]

● Multihash (Q = SHA256 in Base58)

● DHT (Distributed Hash Table) [Kademlia]

● Bitswap (data block exchange) [BitTorrent]

Page 19: The InterPlanetary File System - brmlabIPFS is a protocol defines a content-addressed file system coordinates content delivery combines Kademlia + BitTorrent + Git

IPFS is a protocol

● defines a content-addressed file system

● coordinates content delivery

● combines Kademlia + BitTorrent + Git

Page 20: The InterPlanetary File System - brmlabIPFS is a protocol defines a content-addressed file system coordinates content delivery combines Kademlia + BitTorrent + Git

IPFS is a web

● can be used to view documents like the web

● files accessible via HTTP at

http://gateway.ipfs.io/ipfs/<path>

● browsers or extensions can learn to use ipfs:// directly

● hash-addressed content guarantees authenticity

Page 21: The InterPlanetary File System - brmlabIPFS is a protocol defines a content-addressed file system coordinates content delivery combines Kademlia + BitTorrent + Git

IPFS is modular

● connection layer over any network protocol

● routing layer

● uses a routing layer DHT

● uses a path-based naming service

● uses bittorrent-inspired block exchange

Page 22: The InterPlanetary File System - brmlabIPFS is a protocol defines a content-addressed file system coordinates content delivery combines Kademlia + BitTorrent + Git

IPFS uses crypto

● cryptographic-hash content addressing

● block-level deduplication

● file integrity + versioning

● filesystem-level encryption + signing support

Page 23: The InterPlanetary File System - brmlabIPFS is a protocol defines a content-addressed file system coordinates content delivery combines Kademlia + BitTorrent + Git

IPFS is peer-to-peer

● worldwide peer-to-peer file transfers

● completely decentralized architecture

● NO central point of failure

Page 24: The InterPlanetary File System - brmlabIPFS is a protocol defines a content-addressed file system coordinates content delivery combines Kademlia + BitTorrent + Git

IPFS is a content delivery network

● caching-friendly (content-hash naming)

● bittorrent-based bandwidth distribution

Page 25: The InterPlanetary File System - brmlabIPFS is a protocol defines a content-addressed file system coordinates content delivery combines Kademlia + BitTorrent + Git

IPFS has a name service

● IPNS, an SFS inspired name system

peer identity: QmdX9aYHdMEbPQT1YfvYbPVcYXAQe554bzuoZhLo2dVMra

● global namespace based on PKI

● serves to build trust chains

● compatible with other NSes

● can map DNS, .onion, .bit, etc to IPNS

Page 26: The InterPlanetary File System - brmlabIPFS is a protocol defines a content-addressed file system coordinates content delivery combines Kademlia + BitTorrent + Git

ipfs.pics

Page 27: The InterPlanetary File System - brmlabIPFS is a protocol defines a content-addressed file system coordinates content delivery combines Kademlia + BitTorrent + Git

Thank you!

ipfs.io