✨
UNIVERSAL HOSTLESS
S U B S T R AT E 🌖
🌑
F O R A P O ST- S E R V E R L E S S F U T U R E
🚀
Slide 2
Ca lga ry ✨
Edi tio n
UNIVERSAL HOSTLESS
🤠
S U B S T R AT E 🌖
🌑
F O R A P O ST- S E R V E R L E S S F U T U R E
🚀
Slide 3
A U N I V E R S A L H O S T L E S S S U B S T R AT E B R O O K LY N Z E L E N K A , @ e x p e d e
Slide 4
A U N I V E R S A L H O S T L E S S S U B S T R AT E B R O O K LY N Z E L E N K A , @ e x p e d e
• Cofounder/CTO at Fission • https://fission.codes • Originally from here! • FP, PLT, VMs • Previously an Ethereum Core Dev • EIPs 615, 902, 1066, 1444 • ECIP 1050 🎉 🎉 🎉 • Lately lots of IPFS, Ed25519, and IndexedDB
Slide 5
A U N I V E R S A L H O S T L E S S S U B S T R AT E
PA R A D I G M W AV E S
Slide 6
A U N I V E R S A L H O S T L E S S S U B S T R AT E
PA R A D I G M W AV E S
C O N TA I N E R S
Slide 7
A U N I V E R S A L H O S T L E S S S U B S T R AT E
PA R A D I G M W AV E S
C O N TA I N E R S
Slide 8
A U N I V E R S A L H O S T L E S S S U B S T R AT E
PA R A D I G M W AV E S
C O N TA I N E R S
SERVERLESS
☁ λ
Slide 9
A U N I V E R S A L H O S T L E S S S U B S T R AT E
PA R A D I G M W AV E S
C O N TA I N E R S
SERVERLESS
UNIVERSAL
☁
🌐
λ
Slide 10
A U N I V E R S A L H O S T L E S S S U B S T R AT E
N AT I V E S D K F O R T H E W E B
Slide 11
A U N I V E R S A L H O S T L E S S S U B S T R AT E
N AT I V E S D K F O R T H E W E B
Slide 12
A U N I V E R S A L H O S T L E S S S U B S T R AT E
N AT I V E S D K F O R T H E W E B
Slide 13
A U N I V E R S A L H O S T L E S S S U B S T R AT E
N AT I V E S D K F O R T H E W E B
Slide 14
A U N I V E R S A L H O S T L E S S S U B S T R AT E
N AT I V E S D K F O R T H E W E B
Slide 15
A U N I V E R S A L H O S T L E S S S U B S T R AT E
N AT I V E S D K F O R T H E W E B
Slide 16
A U N I V E R S A L H O S T L E S S S U B S T R AT E
N AT I V E S D K F O R T H E W E B
Slide 17
A U N I V E R S A L H O S T L E S S S U B S T R AT E
U P S H OT ?
Slide 18
A U N I V E R S A L H O S T L E S S S U B S T R AT E
U P S H OT ?
• Go from zero to production on a plane ✈ • Move data to compute and vice versa 🔄 • Logarithmic scaling 📈 • Serve areas that lack sufficient cloud hardware 🖥 • Anyone can be a service provider (lower bar to entry) 💁💁
Slide 19
A U N I V E R S A L H O S T L E S S S U B S T R AT E
W H Y N OT N O W ?
Slide 20
A U N I V E R S A L H O S T L E S S S U B S T R AT E
W H Y N OT N O W ?
Slide 21
A U N I V E R S A L H O S T L E S S S U B S T R AT E
W H Y N OT N O W ?
Slide 22
COMMONS INFRASTRUCTURE
Slide 23
COMMONS INFRASTRUCTURE 🤝 A S U B S T R AT E F O R E V E R Y O N E 🌍
Slide 24
COMMONS INFRASTRUCTURE
OPEN SOURCE
Lots of people work on it, everybody benefits from it, and then people can build upon it (even in a revenue generating fashion) 🔑 TED LEUNG (2005)
Slide 25
COMMONS INFRASTRUCTURE
OPEN NETWORKS
Lots of people work on it, everybody benefits from it, people can build upon it (even in a revenue generating fashion), and it’s “owned” by everyone. By participating — even with competitive goals — you are cooperating by serving the content and running compute of others. 🌌
Slide 26
IPFS PRIMER
Slide 27
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 28
IPFS PRIMER
I N T E R P L A N E TA R Y F I L E S Y S T E M
Slide 29
IPFS PRIMER
I N T E R P L A N E TA R Y F I L E S Y S T E M
Slide 30
IPFS PRIMER
I N T E R P L A N E TA R Y F I L E S Y S T E M
Slide 31
IPFS PRIMER
I N T E R P L A N E TA R Y F I L E S Y S T E M
Slide 32
IPFS PRIMER
T H E W E B T O D AY
Slide 33
IPFS PRIMER
T H E W E B T O D AY
• Predominantly single-source (per file) server/client
Slide 34
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 35
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 36
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 • www.foo.com/baz may be JSON today, but a video tomorrow • …or altered content
Slide 37
IPFS PRIMER
CONTENT ADDRESSING
VIRTUAL ADDRESS
P H Y S I C A L L O C AT I O N
Slide 38
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 39
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 40
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 41
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 42
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 43
IPFS PRIMER
L I N K E D D ATA
Slide 44
IPFS PRIMER
L I N K E D D ATA
{
}
Qm123456…: { data: “Hello world”, links: [ {name: “company”, hash: Qmabcdef…} {name: “license”, hash: Qmzyxwvu…} ] }
Slide 45
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 46
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 47
IPFS PRIMER
RO U T I N G & LO O KU P 🔍🌊
Slide 48
IPFS PRIMER
RO U T I N G & LO O KU P 🔍🌊
💁
Slide 49
IPFS PRIMER
RO U T I N G & LO O KU P 🔍🌊
💁
Slide 50
IPFS PRIMER
RO U T I N G & LO O KU P 🔍🌊
💁
Slide 51
IPFS PRIMER
RO U T I N G & LO O KU P 🔍🌊
💻 💻
☕
💻 💁
Slide 52
IPFS PRIMER
RO U T I N G & LO O KU P 🔍🌊
💻 💻
☕
💻 💁
Slide 53
IPFS PRIMER
RO U T I N G & LO O KU P 🔍🌊
💻 💻
💻 💻 💻
☕
💻
💻
💁
💻
💻
💻
💻 💻
Slide 54
IPFS PRIMER
RO U T I N G & LO O KU P 🔍🌊
💻 💻
💻 💻 💻
☕
💻
💻
💁
💻
💻
💻
💻 💻
Slide 55
IPFS PRIMER
RO U T I N G & LO O KU P 🔍🌊
💻 💻
💻 💻 💻
☕
💻
💻
💁
💻
💻
💻
💻 💻
Slide 56
IPFS PRIMER
RO U T I N G & LO O KU P 🔍🌊
💻 💻
💻 💻 💻
☕
💻
💻
💁
💻
💻
💻
💻 💻
Slide 57
IPFS PRIMER
RO U T I N G & LO O KU P 🔍🌊
💻
💻 💁
💻
Slide 58
IPFS PRIMER
RO U T I N G & LO O KU P 🔍🌊
💻
💻 💁
💻
Slide 59
QUICK DEMO
GETTING ONLINE
Slide 60
QUICK DEMO
GETTING ONLINE
Slide 61
QUICK DEMO
NO STEP 2
Slide 62
QUICK DEMO
FISSION DRIVE 💽
Slide 63
QUICK DEMO
FISSION DRIVE 💽
Slide 64
DIDS
Slide 65
DIDS
🔑 H I G H LY A U T H E N T I C 👩🎤
Slide 66
DIDS
S TA N D A R D I Z AT I O N
Slide 67
DIDS
S TA N D A R D I Z AT I O N
• W3C • Microsoft • BC Government • Public-key cryptography • Truly “universal” UUIDs • Agnostic about backing • For users, devices, and more
Slide 68
DIDS
CLAIMS
Slide 69
DIDS
CLAIMS
• Principle of least information • “Can attest that this user is over 18” • All claims signed with private key • Age, credentials, country residency, job history, event attendance, …
Slide 70
P O R TA B L E C O M P U T E
Slide 71
P O R TA B L E C O M P U T E
⚡ J U S T A D D M O R E P O W E R TO J S & WA S M A N D S T I R 🤖
Slide 72
P O R TA B L E C O M P U T E
🚀 D Y N A M I C FA A S
Slide 73
P O R TA B L E C O M P U T E
🚀 D Y N A M I C FA A S
• Run everything locally by default • Good for devs with powerful machines • Slow for students with Chromebooks
Slide 74
P O R TA B L E C O M P U T E
🚀 D Y N A M I C FA A S
• Run everything locally by default • Good for devs with powerful machines • Slow for students with Chromebooks • Farm out longer running computation to service providers • …dynamically at runtime
Slide 75
P O R TA B L E C O M P U T E
🚀 D Y N A M I C FA A S
• Run everything locally by default • Good for devs with powerful machines • Slow for students with Chromebooks • Farm out longer running computation to service providers • …dynamically at runtime • Heavy compute, parallel workloads, &c
Slide 76
P O R TA B L E C O M P U T E
APPROACH & TRADE-OFFS
Slide 77
P O R TA B L E C O M P U T E
APPROACH & TRADE-OFFS
• Code-as-data • Memoization • Compiler techniques at web scale (“world computer”) • Network latency (normally zero, now x) • Restricted subset (e.g. total) • Event-based w/ two-phase commit • Trusted (incl. AWS Lambda 🤷)
Slide 78
P O R TA B L E C O M P U T E
E V E N T B AS E D ( A B ST R ACT U S E R ST R E A M, C R DTS )
Slide 79
P O R TA B L E C O M P U T E
E V E N T B AS E D ( A B ST R ACT U S E R ST R E A M, C R DTS ) Off-Platform Side Effect Stream
Platform Effect Stream
Pure Function Stream
Base Event Stream
Slide 80
P O R TA B L E C O M P U T E
E V E N T B AS E D ( A B ST R ACT U S E R ST R E A M, C R DTS ) Off-Platform Side Effect Stream
Platform Effect Stream
Pure Function Stream
Base Event Stream
Slide 81
P O R TA B L E C O M P U T E
E V E N T B AS E D ( A B ST R ACT U S E R ST R E A M, C R DTS ) Off-Platform Side Effect Stream
Platform Effect Stream
Pure Function Stream
Base Event Stream
Slide 82
P O R TA B L E C O M P U T E
E V E N T B AS E D ( A B ST R ACT U S E R ST R E A M, C R DTS ) Off-Platform Side Effect Stream
Platform Effect Stream
Pure Function Stream
Base Event Stream
Slide 83
P O R TA B L E C O M P U T E
E V E N T B AS E D ( A B ST R ACT U S E R ST R E A M, C R DTS ) Off-Platform Side Effect Stream
Platform Effect Stream
Pure Function Stream
Base Event Stream
Slide 84
P O R TA B L E C O M P U T E
E V E N T B AS E D ( A B ST R ACT U S E R ST R E A M, C R DTS ) Off-Platform Side Effect Stream
Platform Effect Stream
Pure Function Stream
Base Event Stream
Slide 85
P O R TA B L E C O M P U T E
E V E N T B AS E D ( A B ST R ACT U S E R ST R E A M, C R DTS ) Off-Platform Side Effect Stream
Platform Effect Stream
Pure Function Stream
Base Event Stream
Slide 86
THE FUTURE
Slide 87
THE FUTURE 🛸 L I K E … W I T H J E T - PA C K S 🚀
Slide 88
THE FUTURE
T H E N E X T W AV E O F P L AT F O R M S
Slide 89
THE FUTURE
Global Storage
T H E N E X T W AV E O F P L AT F O R M S
FILES 📄
D ATA B A S E 🛢
Slide 90
THE FUTURE
Global Storage
FILES 📄
D ATA B A S E 🛢
Digital Scarcity
T H E N E X T W AV E O F P L AT F O R M S
IDENTITY 🙋
CHECKPOINTS 🕚
Slide 91
THE FUTURE
Global Storage
FILES 📄
D ATA B A S E 🛢
Digital Scarcity
IDENTITY 🙋
CHECKPOINTS 🕚
Portable Compute
T H E N E X T W AV E O F P L AT F O R M S
DISTRIBUTED COMPUTE 🖥
SMART CONTRACTS 📝
Slide 92
THE FUTURE
T H E E N D O F H I STO RY
Slide 93
THE FUTURE
T H E E N D O F H I STO RY High Touch
Invisible Custom
Product / Rental
Commodity / Utility
Slide 94
THE FUTURE
T H E E N D O F H I STO RY High Touch
Ba
rrie
r to
En
try
Invisible Custom
Product / Rental
Commodity / Utility
Slide 95
THE FUTURE
T H E E N D O F H I STO RY High Touch Bespoke
Private Ownership
Ba
rrie
r to
En
Shared Hosting
try
Serverless
Universal
Invisible Custom
Product / Rental
Commodity / Utility
Slide 96
https://fission.codes https://talk.fission.codes https://tools.fission.codes
🇨🇦 T H A N K Y O U , C A L G A R Y 🤠 brooklyn@fission.codes github.com/expede @expede