IPFS 101 & the Next-Gen Web

A presentation at Decentralized Meetup in July 2019 in Nanaimo, BC, Canada by Brooklyn Zelenka

Slide 1

Slide 1

Slide 2

Slide 2

I P FS 1 0 1 & T H E N E X T- G E N W E B

Slide 3

Slide 3

B R O O K LY N Z E L E N K A

Slide 4

Slide 4

B R O O K LY N Z E L E N K A

Slide 5

Slide 5

B R O O K LY N Z E L E N K A •Cofounder at FISSION •Better DX for everyone via Web3 tech! •Early access: https://tools.fission.codes

Slide 6

Slide 6

B R O O K LY N Z E L E N K A •Cofounder at FISSION •Better DX for everyone via Web3 tech! •Early access: https://tools.fission.codes •Meetups: VanFP, Code & Coffee

Slide 7

Slide 7

B R O O K LY N Z E L E N K A •Cofounder at FISSION •Better DX for everyone via Web3 tech! •Early access: https://tools.fission.codes •Meetups: VanFP, Code & Coffee •PLT & VM Enthusiast

Slide 8

Slide 8

B R O O K LY N Z E L E N K A •Cofounder at FISSION •Better DX for everyone via Web3 tech! •Early access: https://tools.fission.codes •Meetups: VanFP, Code & Coffee •PLT & VM Enthusiast •Ethereum Core Dev work: •615: Subroutines & Static Jumps •902: Token Permissions & Validation •1066: Status Codes •1444: On-Chain Translation

Slide 9

Slide 9

AN IPFS PRIMER

Slide 10

Slide 10

AN IPFS PRIMER M E E T T H E C O N T E N T-A D D R E S S A B L E W E B

Slide 11

Slide 11

AN IPFS PRIMER IN ACTION — TEXT (JSON, HTML, SOURCE, &C)

Slide 12

Slide 12

AN IPFS PRIMER IN ACTION — TEXT (JSON, HTML, SOURCE, &C)

Slide 13

Slide 13

AN IPFS PRIMER IN ACTION — IMAGE

Slide 14

Slide 14

AN IPFS PRIMER IN ACTION — IMAGE

Slide 15

Slide 15

AN IPFS PRIMER T H E W E B T O D AY

Slide 16

Slide 16

AN IPFS PRIMER T H E W E B T O D AY • Predominantly single-source (per file) server/client

Slide 17

Slide 17

AN IPFS PRIMER T H E W E B T O D AY • Predominantly single-source (per file) server/client • Like a key/value store {ip => {path => content}}

Slide 18

Slide 18

AN IPFS PRIMER T H E W E B T O D AY • Predominantly single-source (per file) server/client • Like a key/value store {ip => {path => content}} • “Location addressing” • DNS maps names to IP addresses • Focused on the physical network VIRTUAL ADDRESS P H Y S I C A L L O C AT I O N

Slide 19

Slide 19

AN IPFS PRIMER T H E W E B T O D AY • Predominantly single-source (per file) server/client • Like a key/value store {ip => {path => content}} • “Location addressing” • DNS maps names to IP addresses • Focused on the physical network VIRTUAL ADDRESS P H Y S I C A L L O C AT I O N • Mutable addressing via DNS • www.foo.com/baz may be JSON today, but a video tomorrow • …or altered content

Slide 20

Slide 20

AN IPFS PRIMER CONTENT ADDRESSING VIRTUAL ADDRESS P H Y S I C A L L O C AT I O N

Slide 21

Slide 21

AN IPFS PRIMER CONTENT ADDRESSING • A layer of abstraction above location CONTENT ID VIRTUAL ADDRESS P H Y S I C A L L O C AT I O N

Slide 22

Slide 22

AN IPFS PRIMER CONTENT ADDRESSING • A layer of abstraction above location • Like a key/value store {hash(content) => content} CONTENT ID • Content hash AKA “content identifier” or CID • Special “universal” relationship to content VIRTUAL ADDRESS P H Y S I C A L L O C AT I O N

Slide 23

Slide 23

AN IPFS PRIMER CONTENT ADDRESSING • A layer of abstraction above location • Like a key/value store {hash(content) => content} CONTENT ID • Content hash AKA “content identifier” or CID • Special “universal” relationship to content VIRTUAL ADDRESS • Focused on the data P H Y S I C A L L O C AT I O N

Slide 24

Slide 24

AN IPFS PRIMER CONTENT ADDRESSING • A layer of abstraction above location • Like a key/value store {hash(content) => content} CONTENT ID • Content hash AKA “content identifier” or CID • Special “universal” relationship to content VIRTUAL ADDRESS • Focused on the data • Does not care where it lives P H Y S I C A L L O C AT I O N

Slide 25

Slide 25

AN IPFS PRIMER CONTENT ADDRESSING • A layer of abstraction above location • Like a key/value store {hash(content) => content} CONTENT ID • Content hash AKA “content identifier” or CID • Special “universal” relationship to content VIRTUAL ADDRESS • Focused on the data • Does not care where it lives • Still have paths • Immutable DAG • Why no loops? P H Y S I C A L L O C AT I O N

Slide 26

Slide 26

AN IPFS PRIMER L I N K E D D ATA

Slide 27

Slide 27

AN IPFS PRIMER L I N K E D D ATA { } Qm123456…: { data: “Hello world”, links: [ {name: “company”, hash: Qmabcdef…} {name: “license”, hash: Qmzyxwvu…} ] }

Slide 28

Slide 28

AN IPFS PRIMER L I N K E D D ATA { } Qm123456…: { data: “Hello world”, links: [ {name: “company”, hash: Qmabcdef…} {name: “license”, hash: Qmzyxwvu…} ] } { } Qmabcdef…: { data: “FISSION”, links: [ {name: “city”, hash: Qm1gb5sn…}, {name: “about”, hash: Qmzyxwvu…} ] }

Slide 29

Slide 29

AN IPFS PRIMER L I N K E D D ATA { } Qm123456…: { data: “Hello world”, links: [ {name: “company”, hash: Qmabcdef…} {name: “license”, hash: Qmzyxwvu…} ] } { } Qmabcdef…: { data: “FISSION”, links: [ {name: “city”, hash: Qm1gb5sn…}, {name: “about”, hash: Qmzyxwvu…} ] } ipfs cat /ipfs/Qm123456…/company/about/founder => “Brooke”

Slide 30

Slide 30

AN IPFS PRIMER RO U T I N G & LO O KU P 🔍🌊

Slide 31

Slide 31

AN IPFS PRIMER RO U T I N G & LO O KU P 🔍🌊 💁

Slide 32

Slide 32

AN IPFS PRIMER RO U T I N G & LO O KU P 🔍🌊 💁

Slide 33

Slide 33

AN IPFS PRIMER RO U T I N G & LO O KU P 🔍🌊 💁

Slide 34

Slide 34

AN IPFS PRIMER RO U T I N G & LO O KU P 🔍🌊 💻 💻 🤝 💻 💁

Slide 35

Slide 35

AN IPFS PRIMER RO U T I N G & LO O KU P 🔍🌊 💻 💻 🤝 💻 💁

Slide 36

Slide 36

AN IPFS PRIMER RO U T I N G & LO O KU P 🔍🌊 💻 💻 💻 💻 💻 🤝 💻 💻 💁 💻 💻 💻 💻 💻

Slide 37

Slide 37

AN IPFS PRIMER RO U T I N G & LO O KU P 🔍🌊 💻 💻 💻 💻 💻 🤝 💻 💻 💁 💻 💻 💻 💻 💻

Slide 38

Slide 38

AN IPFS PRIMER RO U T I N G & LO O KU P 🔍🌊 💻 💻 💻 💻 💻 🤝 💻 💻 💁 💻 💻 💻 💻 💻

Slide 39

Slide 39

AN IPFS PRIMER RO U T I N G & LO O KU P 🔍🌊 💻 💻 💻 💻 💻 🤝 💻 💻 💁 💻 💻 💻 💻 💻

Slide 40

Slide 40

AN IPFS PRIMER RO U T I N G & LO O KU P 🔍🌊 💻 💻 💁 💻

Slide 41

Slide 41

AN IPFS PRIMER RO U T I N G & LO O KU P 🔍🌊 💻 💻 💁 💻

Slide 42

Slide 42

AN IPFS PRIMER A U T H E N T I C D ATA ( F I N G E R P R I N T I N G )

Slide 43

Slide 43

AN IPFS PRIMER A U T H E N T I C D ATA ( F I N G E R P R I N T I N G )

Slide 44

Slide 44

AN IPFS PRIMER O N E N A M E S PA C E T O R U L E T H E M A L L 💍 🌋

Slide 45

Slide 45

AN IPFS PRIMER O N E N A M E S PA C E T O R U L E T H E M A L L 💍 🌋 • Same file = same hash • No matter when 🕓 • No matter where 🌍🌌 • No matter who +🤖-.🦊

Slide 46

Slide 46

AN IPFS PRIMER O N E N A M E S PA C E T O R U L E T H E M A L L 💍 🌋 • Same file = same hash • Zero file duplication per node • No matter when 🕓 • Replication = CDN-like features • No matter where 🌍🌌 • Immutable data structures • No matter who +🤖-.🦊 • Files & data living together! •

Slide 47

Slide 47

AN IPFS PRIMER D I S A D VA N TA G E S ( I N M I D - 2 0 1 9 )

Slide 48

Slide 48

AN IPFS PRIMER D I S A D VA N TA G E S ( I N M I D - 2 0 1 9 ) • vs. location-addressing • Less consistent lookup performance • Not yet natively supported by browsers (other than Opera for Android)

Slide 49

Slide 49

AN IPFS PRIMER D I S A D VA N TA G E S ( I N M I D - 2 0 1 9 ) • vs. location-addressing • Less consistent lookup performance • Not yet natively supported by browsers (other than Opera for Android) • vs. blockchain • No availability guarantee

Slide 50

Slide 50

AN IPFS PRIMER D E V E LO P M E N T

Slide 51

Slide 51

AN IPFS PRIMER D E V E LO P M E N T • Backed by Protocol Labs

Slide 52

Slide 52

AN IPFS PRIMER D E V E LO P M E N T • Backed by Protocol Labs • FileCoin • Pre-ICO: raised $52M USD • ICO: $200M USD • Network launching “soon”

Slide 53

Slide 53

Slide 54

Slide 54

W H AT A R E W E D O I N G W I T H T H E D I S T R I B U T E D W E B ?

Slide 55

Slide 55

PA R A D I G M W AV E S

Slide 56

Slide 56

PA R A D I G M W AV E S C O N TA I N E R S

Slide 57

Slide 57

PA R A D I G M W AV E S C O N TA I N E R S SERVERLESS ☁ λ

Slide 58

Slide 58

PA R A D I G M W AV E S C O N TA I N E R S SERVERLESS HOSTLESS ☁ 🌐 λ

Slide 59

Slide 59

A P L AT F O R M F O R T H E N E X T W AV E

Slide 60

Slide 60

Global Storage A P L AT F O R M F O R T H E N E X T W AV E FILES 📄 D ATA B A S E 🛢

Slide 61

Slide 61

Global Storage FILES 📄 D ATA B A S E 🛢 Digital Scarcity A P L AT F O R M F O R T H E N E X T W AV E IDENTITY 🙋 ASSETS 💰

Slide 62

Slide 62

Global Storage FILES 📄 D ATA B A S E 🛢 Digital Scarcity IDENTITY 🙋 ASSETS 💰 Portable Compute A P L AT F O R M F O R T H E N E X T W AV E DISTRIBUTED COMPUTE 🖥 SMART CONTRACTS 📝

Slide 63

Slide 63

ASIMOV: FISSION FRAMEWORK • Asimov is our opinionated, batteries-included hostless framework • The “Rails” for the needs of 2020 and beyond • Hybrid private/public infrastructure (IPFS, Ethereum, Wasm, P2P, Cloud) • Public infra means FE libraries can include deployment, DB, &c • Makes distributed & web development feel more like native app dev

Slide 64

Slide 64

ASIMOV 🚀 ASIMOV Static Assets Global Storage Models/DB Packages PubSub Event Sourcing Deploy / Host DNS 🖥 Digital Scarcity 📱 ⚙λ 🔐 Payment Ownership Revokable ACLs Time Verifiability Portable Compute 💻 ID & DID 💻 Front End 🏢 FaaS Local Compute MPC :

Slide 65

Slide 65

BETTER LIVING THROUGH SCIENCE >: 💻🖥 🖥💻 💻: ☁ 🔗 https://yourname.fission.tools .

Slide 66

Slide 66

BETTER LIVING THROUGH SCIENCE >: 💻🖥 🖥💻 💻: ☁ 🔗 https://yourname.fission.tools .

Slide 67

Slide 67

BETTER LIVING THROUGH SCIENCE >: 💻🖥 🖥💻 ☁ 🔗 https://yourname.fission.tools TXT => CID 💻: .

Slide 68

Slide 68

BETTER LIVING THROUGH SCIENCE >: 💻🖥 🖥💻 💻: ☁ 🔗 https://yourname.fission.tools .

Slide 69

Slide 69

BETTER LIVING THROUGH SCIENCE >: 💻🖥 🖥💻 💻: ☁ 🔗 https://yourname.fission.tools .

Slide 70

Slide 70

BETTER LIVING THROUGH SCIENCE >: 💻🖥 🖥💻 💻: ☁ 🔗 https://yourname.fission.tools .

Slide 71

Slide 71

BETTER LIVING THROUGH SCIENCE >: 💻🖥 🖥💻 💻: ☁ 🔗 https://yourname.fission.tools .

Slide 72

Slide 72

BETTER LIVING THROUGH SCIENCE >: 💻🖥 🖥💻 🧘 ☁ 🔗 https://yourname.fission.tools .

Slide 73

Slide 73

BETTER LIVING THROUGH SCIENCE >: 💻🖥 🖥💻 🧘 ☁ 🔗 https://yourname.fission.tools .

Slide 74

Slide 74

BETTER LIVING THROUGH SCIENCE >: 💻🖥 🖥💻 ☁ 🔗 https://yourname.fission.tools TXT => CID 🧘 .

Slide 75

Slide 75

BETTER LIVING THROUGH SCIENCE >: 💻🖥 🖥💻 🧘 ☁ 🔗 https://yourname.fission.tools .

Slide 76

Slide 76

T H E E N D O F H I STO RY

Slide 77

Slide 77

T H E E N D O F H I STO RY Invisible High Touch Custom Product / Rental Commodity / Utility

Slide 78

Slide 78

T H E E N D O F H I STO RY Hostless Invisible Serverless Shared Hosting Private Ownership High Touch Mainframe Custom Product / Rental Commodity / Utility

Slide 79

Slide 79

DEVELOPER TOOLS TO POWER THE HOSTLESS FUTURE 🖥 https://tools.fission.codes ✉ hello@fission.codes