✨
UNIVERSAL HOSTLESS
S U B S T R AT E 🌖
🌑
F O R A P O S T- S E R V E R L E S S FUTURE
🚀
Slide 2
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 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
•
Cofounder/CTO at Fission
•
https://fission.codes
•
PLT & VMs
•
Previously an Ethereum Core Dev
•
EIPs 615, 902, 1066, 1444
•
ECIP 1050
•
Now spending a lot of time with IPFS & DIDs
•
Lots of R&D (but still have to deal with segfaults, &c)
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
TA L K G O A L S
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
TA L K G O A L S
•
Be as fringe as this track gets 😛🤭
•
Expose you to a lot of ideas in broad strokes
•
Nothing that’s science fiction!
•
A peek at what’s coming in the next 2-5 years
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
TA L K G O A L S
•
Be as fringe as this track gets 😛🤭
•
Expose you to a lot of ideas in broad strokes
•
Nothing that’s science fiction!
•
A peek at what’s coming in the next 2-5 years
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
TA L K G O A L S
•
Be as fringe as this track gets 😛🤭
•
Expose you to a lot of ideas in broad strokes
•
Nothing that’s science fiction!
•
A peek at what’s coming in the next 2-5 years
🚫
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
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
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
PA R A D I G M W AV E S
C O N TA I N E R S
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
PA R A D I G M W AV E S
C O N TA I N E R S
SERVERLESS
☁ λ
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
PA R A D I G M W AV E S
C O N TA I N E R S
SERVERLESS
UNIVERSAL
☁
🌐
λ
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
N AT I V E S D K F O R T H E W E B
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
N AT I V E S D K F O R T H E W E B
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
N AT I V E S D K F O R T H E W E B
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
UPSHOT?
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
UPSHOT?
•
Go from zero to production on a plane ✈
•
Move data to compute and vice versa 🔄
•
Scale linearly 📈
•
Serve areas that lack sufficient cloud hardware 🖥
•
Anyone can be a service provider (lower bar to entry) 💁💁
Slide 22
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
WHY NOW?
Slide 23
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
WHY NOW?
Social & Business
•
Licensing innovation (yes, really)
•
Data ethics
•
Platform lock-in & profiteering
Slide 24
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
WHY NOW?
Social & Business
Technical
•
Licensing innovation (yes, really)
•
Commons infrastructure
•
Data ethics
•
Content addressing
•
Platform lock-in & profiteering
•
Cryptographic advancements
•
Distributed computing advancements
•
Universality (location, provider, & time independence)
Slide 25
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
WHY NOT NOW?
Slide 26
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
WHY NOT NOW?
Slide 27
COMMONS INFRASTRUCTURE
Slide 28
COMMONS INFRASTRUCTURE 🤝 A S U B S T R AT E F O R E V E R Y O N E 🌍
Slide 29
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 30
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 31
IPFS PRIMER
Slide 32
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 33
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 34
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 35
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 36
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 37
IPFS PRIMER
T H E W E B T O D AY
Slide 38
IPFS PRIMER
T H E W E B T O D AY
•
Predominantly single-source (per file) server/client
Slide 39
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 40
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 41
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 42
IPFS PRIMER
CONTENT ADDRESSING
VIRTUAL ADDRESS
P H Y S I C A L L O C AT I O N
Slide 43
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 44
IPFS PRIMER
CONTENT ADDRESSING •
A layer of abstraction above location
•
Like a key/value store {hash(content) => content}
•
Content hash AKA “content identifier” or CID
•
Special “universal” relationship to content
CONTENT ID
VIRTUAL ADDRESS
P H Y S I C A L L O C AT I O N
Slide 45
IPFS PRIMER
CONTENT ADDRESSING •
A layer of abstraction above location
•
Like a key/value store {hash(content) => content}
•
•
Content hash AKA “content identifier” or CID
•
Special “universal” relationship to content
CONTENT ID
VIRTUAL ADDRESS
Focused on the data P H Y S I C A L L O C AT I O N
Slide 46
IPFS PRIMER
CONTENT ADDRESSING •
A layer of abstraction above location
•
Like a key/value store {hash(content) => content}
• •
•
Content hash AKA “content identifier” or CID
•
Special “universal” relationship to content
CONTENT ID
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 47
IPFS PRIMER
CONTENT ADDRESSING •
A layer of abstraction above location
•
Like a key/value store {hash(content) => content}
•
•
Content hash AKA “content identifier” or CID
•
Special “universal” relationship to content
CONTENT ID
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 48
IPFS PRIMER
L I N K E D D ATA
Slide 49
IPFS PRIMER
L I N K E D D ATA
{
}
Qm123456…: { data: “Hello world”, links: [ {name: “company”, hash: Qmabcdef…} {name: “license”, hash: Qmzyxwvu…} ] }
Slide 50
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 51
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”
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 65
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 66
IPFS PRIMER
O N E H U G E N A M E S PA C E T O R U L E T H E M A L L 💍 🌋
Slide 67
IPFS PRIMER
O N E H U G 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 68
IPFS PRIMER
O N E H U G 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-ish features
•
No matter where 🌍🌌
•
Immutable data structures
•
No matter who 👩🔧🤖👩🚀👨🎤🦊
•
Files & data living together!
•
Slide 69
DIDS
Slide 70
DIDS 🔑 H I G H LY A U T H E N T I C 👩🎤
Slide 71
DIDS
S TA N D A R D I Z AT I O N
Slide 72
DIDS
S TA N D A R D I Z AT I O N
•
W3C
•
Microsoft
•
Government of British Columbia
•
Based on public-key cryptography
•
Truly “universal” UUIDs
•
Agnostic about backing
•
For users, devices, and more
Slide 73
DIDS
CLAIMS
Slide 74
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 75
DIDS
W H AT A B O U T T R A C K I N G , P R I VA C Y, R E C O V E R Y
Slide 76
DIDS
W H AT A B O U T T R A C K I N G , P R I VA C Y, R E C O V E R Y
•
Hierarchical deterministic wallets
Slide 77
DIDS
W H AT A B O U T T R A C K I N G , P R I VA C Y, R E C O V E R Y
•
Hierarchical deterministic wallets
•
Keychains
•
Generally on a blockchain
•
Some cases on DNS
Slide 78
DIDS
SELF-SOVEREIGN IDENTITY (SSI)
Slide 79
DIDS
SELF-SOVEREIGN IDENTITY (SSI)
•
Generate your own ID!
Slide 80
DIDS
SELF-SOVEREIGN IDENTITY (SSI)
•
Generate your own ID!
•
As many as you like 🤷
Slide 81
DIDS
SELF-SOVEREIGN IDENTITY (SSI)
•
Generate your own ID!
•
As many as you like 🤷
•
Generally use commons infrastructure like a blockchain or DNS
Slide 82
P O R TA B L E C O M P U T E
Slide 83
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 84
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 85
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 86
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 87
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 88
P O R TA B L E C O M P U T E
APPROACH & TRADE-OFFS
Slide 89
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 90
P O R TA B L E C O M P U T E
T O TA L I T Y
Slide 91
P O R TA B L E C O M P U T E
T O TA L I T Y Side Effects
Pure Functions
👩💻
Slide 92
P O R TA B L E C O M P U T E
T O TA L I T Y Side Effects
Pure Functions
👩💻
Slide 93
P O R TA B L E C O M P U T E
T O TA L I T Y Side Effects
Pure Functions
👩💻
Slide 94
P O R TA B L E C O M P U T E
EVENT BASED (ABSTRACT USER STREAM, CRDTS)
Slide 95
P O R TA B L E C O M P U T E
EVENT BASED (ABSTRACT USER STREAM, CRDTS) Off-Platform Side Effect Stream
Platform Effect Stream
Pure Function Stream
Base Event Stream
Slide 96
P O R TA B L E C O M P U T E
EVENT BASED (ABSTRACT USER STREAM, CRDTS) Off-Platform Side Effect Stream
Platform Effect Stream
Pure Function Stream
Base Event Stream
Slide 97
P O R TA B L E C O M P U T E
EVENT BASED (ABSTRACT USER STREAM, CRDTS) Off-Platform Side Effect Stream
Platform Effect Stream
Pure Function Stream
Base Event Stream
Slide 98
P O R TA B L E C O M P U T E
EVENT BASED (ABSTRACT USER STREAM, CRDTS) Off-Platform Side Effect Stream
Platform Effect Stream
Pure Function Stream
Base Event Stream
Slide 99
P O R TA B L E C O M P U T E
EVENT BASED (ABSTRACT USER STREAM, CRDTS) Off-Platform Side Effect Stream
Platform Effect Stream
Pure Function Stream
Base Event Stream
Slide 100
P O R TA B L E C O M P U T E
EVENT BASED (ABSTRACT USER STREAM, CRDTS) Off-Platform Side Effect Stream
Platform Effect Stream
Pure Function Stream
Base Event Stream
Slide 101
P O R TA B L E C O M P U T E
EVENT BASED (ABSTRACT USER STREAM, CRDTS) Off-Platform Side Effect Stream
Platform Effect Stream
Pure Function Stream
Base Event Stream
Slide 102
ENCRYPTED COMPUTE
Slide 103
ENCRYPTED COMPUTE 🙈 T R U S T L E S S D LY S E N D , R U N , & V E R I F Y 💌
ENCRYPTED COMPUTE
C O M P U T I N G O V E R E N C R Y P T E D D ATA encrypt Cleartext
Cyphertext
compute’
compute
Clear Result
encrypt
Encrypted Result
Slide 110
L I C E N S I N G I N N O VAT I O N
Slide 111
L I C E N S I N G I N N O VAT I O N ⚖ FOR THE FIRST TIME IN 15 YEARS!
Slide 112
L I C E N S E I N N O VAT I O N
WHY NOW?
Slide 113
L I C E N S E I N N O VAT I O N
WHY NOW?
•
Cloud providers making record profits on top of FLOSS projects
Slide 114
L I C E N S E I N N O VAT I O N
WHY NOW?
•
Cloud providers making record profits on top of FLOSS projects
•
e.g. Mongo relicensing
Slide 115
L I C E N S E I N N O VAT I O N
WHY NOW?
•
Cloud providers making record profits on top of FLOSS projects
•
e.g. Mongo relicensing
•
Why does macOS Catalina ship with zsh instead of bash?
Slide 116
L I C E N S E I N N O VAT I O N
WHY NOW?
•
Cloud providers making record profits on top of FLOSS projects
•
e.g. Mongo relicensing
•
Why does macOS Catalina ship with zsh instead of bash?
Slide 117
L I C E N S E I N N O VAT I O N
AS A SHIELD 🛡
Slide 118
L I C E N S E I N N O VAT I O N
AS A SHIELD 🛡
•
Do you think current licenses are the best we’ll ever have?
Slide 119
L I C E N S E I N N O VAT I O N
AS A SHIELD 🛡
•
Do you think current licenses are the best we’ll ever have?
•
Anti 996-License-1.0
•
Derived from MIT License
•
Chinese expression “996.ICU”
Slide 120
L I C E N S E I N N O VAT I O N
D ATA E T H I C S / D ATA L I C E N S E S
Slide 121
L I C E N S E I N N O VAT I O N
D ATA E T H I C S / D ATA L I C E N S E S
•
In 2001, people stored credit card details directly in their DB
•
Why do people think it’s okay to store PII?
•
These techniques & platforms make it so you can’t touch user data!
Slide 122
MAKING LIFE EASIER
Slide 123
MAKING LIFE EASIER 🧱 PUTTING IT ALL TOGETHER 🥳
Slide 124
MAKING LIFE EASIER
T H E N E X T W AV E O F P L AT F O R M S
Slide 125
MAKING LIFE EASIER
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 126
MAKING LIFE EASIER
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 127
MAKING LIFE EASIER
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 128
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
RECAP
Slide 129
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
RECAP
•
Build and use fully locally
•
No such thing as “deployment”
•
Zero config
•
Default: only serve the app, not data
•
Efficient bandwidth
Slide 130
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
RECAP
•
One login for all accounts
•
Build and use fully locally
•
Device-based authentication
•
No such thing as “deployment”
•
Military-grade security
•
Zero config
•
User owned data
•
Default: only serve the app, not data
•
Share nothing with site/app by default
•
Efficient bandwidth
•
Flexible FaaS without pre-deployment
•
Offline-first and local-network aware
Slide 131
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
THE END OF HISTORY
Slide 132
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
THE END OF HISTORY High Touch
Invisible Custom
Product / Rental
Commodity / Utility
Slide 133
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
THE END OF HISTORY High Touch
Ba
rrie
r to
En
try
Invisible Custom
Product / Rental
Commodity / Utility
Slide 134
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
THE END OF HISTORY High Touch Bespoke
Private Ownership
Ba
rrie
r to
En
Shared Hosting
try
Serverless
Universal
Invisible Custom
Product / Rental
Commodity / Utility
Slide 135
https://fission.codes https://talk.fission.codes https://tools.fission.codes
🇨🇦 T H A N K Y O U , F E R N I E 🎉 brooklyn@fission.codes github.com/expede @expede