A presentation at Web3 Meetup in in Antwerp, Belgium by Brooklyn Zelenka
✨ UNIVERSAL HOSTLESS S U B S T R AT E 🌖 🌑 FO R A P O ST-S E R V E R L E S S F U T U R E 🚀
An ✨ tw er pe dit UNIVERSAL HOSTLESS ion S U B S T R AT E 🌖 🌑 FO R A P O ST-S E R V E R L E S S F U T U R E 🚀 !
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
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)
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
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
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
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 ☁ λ
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 ☁ 🌐 λ
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
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
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
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
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
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
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
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 ?
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) 💁,
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 OW ?
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 OW ?
COMMONS INFRASTRUCTURE
COMMONS INFRASTRUCTURE 🤝 A S U B S T R AT E F O R E V E R Y O N E 🌍
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)
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. 🌌
IPFS PRIMER
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 👋
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
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
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
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
IPFS PRIMER T H E W E B T O D AY
IPFS PRIMER T H E W E B T O D AY • Predominantly single-source (per file) server/client
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}}
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
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
IPFS PRIMER CONTENT ADDRESSING VIRTUAL ADDRESS P H Y S I C A L L O C AT I O N
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
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
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
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
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
IPFS PRIMER L I N K E D D ATA
IPFS PRIMER L I N K E D D ATA { } Qm123456…: { data: “Hello world”, links: [ {name: “company”, hash: Qmabcdef…} {name: “license”, hash: Qmzyxwvu…} ] }
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 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 RO U T I N G & LO O KU P 🔍🌊
IPFS PRIMER RO U T I N G & LO O KU P 🔍🌊 💁
IPFS PRIMER RO U T I N G & LO O KU P 🔍🌊 💁
IPFS PRIMER RO U T I N G & LO O KU P 🔍🌊 💁
IPFS PRIMER RO U T I N G & LO O KU P 🔍🌊 💻 💻 ☕ 💻 💁
IPFS PRIMER RO U T I N G & LO O KU P 🔍🌊 💻 💻 ☕ 💻 💁
IPFS PRIMER RO U T I N G & LO O KU P 🔍🌊 💻 💻 💻 💻 💻 ☕ 💻 💻 💁 💻 💻 💻 💻 💻
IPFS PRIMER RO U T I N G & LO O KU P 🔍🌊 💻 💻 💻 💻 💻 ☕ 💻 💻 💁 💻 💻 💻 💻 💻
IPFS PRIMER RO U T I N G & LO O KU P 🔍🌊 💻 💻 💻 💻 💻 ☕ 💻 💻 💁 💻 💻 💻 💻 💻
IPFS PRIMER RO U T I N G & LO O KU P 🔍🌊 💻 💻 💻 💻 💻 ☕ 💻 💻 💁 💻 💻 💻 💻 💻
IPFS PRIMER RO U T I N G & LO O KU P 🔍🌊 💻 💻 💁 💻
IPFS PRIMER RO U T I N G & LO O KU P 🔍🌊 💻 💻 💁 💻
QUICK DEMO GETTING ONLINE
QUICK DEMO GETTING ONLINE
QUICK DEMO NO STEP 2
DIDS
DIDS 🔑 H I G H LY A U T H E N T I C 7
DIDS S TA N D A R D I Z AT I O N
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
DIDS CLAIMS
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, …
P O R TA B L E C O M P U T E
P O R TA B L E C O M P U T E ⚡ JUST ADD MORE POWER TO JS & WASM AND STIR 🤖
P O R TA B L E C O M P U T E D Y N A M I C FA A S
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
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
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
P O R TA B L E C O M P U T E APPROACH & TRADE-OFFS
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 🤷)
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 )
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
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
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
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
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
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
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
THE FUTURE
THE FUTURE 🛸 L I K E … W I T H J E T - PA C K S 🚀
THE FUTURE T H E N E X T W AV E O F P L AT F O R M S
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 🛢
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 🕚
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 📝
THE FUTURE T H E E N D O F H I STO RY
THE FUTURE T H E E N D O F H I STO RY High Touch Invisible Custom Product / Rental Commodity / Utility
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
THE FUTURE T H E E N D O F H I STO RY High Touch Bespoke Ba Private Ownership rrie r to En try Shared Hosting Serverless Universal Invisible Custom Product / Rental Commodity / Utility
https://fission.codes https://talk .fission.codes https://tools.fission.codes A THANK YOU, ANTWERP 🎉 brooklyn@fission.codes g i t h u b . c o m /e x p e d e @expede