FISSION: EDGE APP S TAC K P L N L AU N C H PA D , F I L AU S T I N June 2022 1
A presentation at PLN Launchpad in June 2022 in Austin, TX, USA by Boris Mann
FISSION: EDGE APP S TAC K P L N L AU N C H PA D , F I L AU S T I N June 2022 1
BORIS MANN • Open Source, Community, Commons • 15 years ago, worked on building out the Drupal community, built the first commercial company around Drupal, helped form Drupal Association • Dove deep into the Ethereum community in 2018, helping ✨ out with Ethereum Magicians, Core Devs • Fission is building developer tools & protocols 2
WHAT IS FISSION? • Fission is building a client side edge stack with identity & auth, user owned data, and a distributed file system on top of IPFS Application ✨ Browser 🖥 Fission ⚛ Developer 👩💻 • Standardize and integrate “hard” things like privacy, security, sync & more • Individuals and teams can focus on full featured apps that act like desktop or mobile, including offline User Accounts Data Publishing 3
HOW DOES FISSION USE IPFS? • IPFS content addressing is extremely important for us • Portable data, not tied to any app or service • Webnative API helps run IPFS in the browser • Data is synced to your browser, and published out natively over IPFS • Web Native File System (WNFS) built on top as a public + private/encrypted file system • Working on WNDB: potential for a global linked database • IPFS and content addressing is exciting! We want to make it so it’s so easy to use, it’s boring 4
APP PUBLISHIN G PL ATFORM • We’ve built our App Publishing Platform to showcase how things can be built in an integrated way • Sign up on the web, publish directly • Use the CLI, build locally, or Github Action to Publish • Subdomain, SSL, custom domains • Every account has their own personal domain links, eg. boris.files.fission.name • Details in the guide: https://guide.fission.codes • Run the stack yourself? 5
WEBNATIVE: EDGE IDENTIT Y & DATA • Some of the features included in the Webnative SDK: • Accounts: linked to browsers and desktops, based on a private key DID • Password-less Login: in any browser, including mobile. Securely link devices. • End-to-end Encryption: WNFS is encrypted & obscures file metadata • Versioning: WNFS has automatic versioning built in • Public file sharing: share links to IPFS CIDs, or use personal domain links • All this on top of read/write to IPFS natively in the browser 6
FISSION DRIVE • Default WNFS file browser • Users can view App Data • Encrypted by default, public folder is available unencrypted with direct IPFS links • Works offline • https://drive.fission.codes 7
fi fi fi FISSION CLI FOR LOCAL DEV • ssion setup — CLI downloads and installs IPFS, registers a user account with private keys • ssion app register — create a new app with subdomain • ssion app publish — publish the app natively, over IPFS • Add to IPFS locally, then contact fission server to register new hash, update DNSLink • Fission server fetches from local node 8
TEC H BUILDING BLOC KS • IPFS: a global “commons network” that anyone can participate in to share data and apps. Content addressing is awesome! • Browser APIs: WebCrypto, PWAs and other browser features integrated in our SDKs so they are easy for developers to use and integrate into their apps • Decentralized Identi ers (DIDs): portable accounts that can be user owned, plus Verifiable Credentials for data linked to accounts fi 9
PROTOCOL DEVELOPMENT • As well as adopting open standards, we are pioneering three specs of our own: • UCAN: a decentralized authentication specification built on top of DIDs; edge-first auth, works offline, OCAP. Join at https://ucan.xyz • WNFS: our Web Native File System, public + private/encrypted, versioning, built on top of IPFS • Dialog / WNDB: adding full planet scale database capabilities to WNFS; the most important, sticky data 10
U P N E X T : WA L L E T AU T H • Blockchain accounts are at least in the 10Ms — the single largest deployment of end user PKI we’ve ever seen • Outsource key management to crypto wallets! • Login with any blockchain wallet • Get access to Webnative encrypted IPFS file system • Working with SIWE / login.xyz to connect UCAN + blockchain logins • Read: Ryan Betts @depatchedmode, “The Wallet Stack”: fission.codes/ blog/wallet-stack/ 11
E V O LV I N G I P F S • Every human on the planet should be able to store data online, forever, effectively for free • Aim for the same DX as a commercial platform like Netlify, Vercel — but at the protocol level • eg: PR to go-IPFS -> add redirect support to the http gateway for SPAs 12
IPFS / FILECOIN PROJECTS • WASM + IPFS: aka autocoder - use WASM to interpret IPLD data • CAR Sync: CAR files over https, webrtc, other transports • WNFS + Filecoin: add end to end private data • FVM + EVM: EVM smart contracts + native FVM actors, • Filecoin Accounts / App Logins • Commons Funding: fund your dependencies, collaborate across the PLN 13
Powering next generation apps on the edge Easy publishing App cloning Edge personalization CDN, cached, nondestructive edits Storage Integrated Hosting Edge, o line, serverless Identity Going multi-user Distributed, multi-user, o line- irst Shared Private Files Distributed Database Easy to use Rich apps with minimal code Heading towards real time SDK Live Updates f ff ff Today WebAssembly powered Edge Compute
Q&A • Let’s build together! • Come see us in our Discord chat https://fission.codes/discord • Check out regular events on Luma: https://lu.ma/fissioncodes • Ping me in Filecoin Slack, PLN Discord, IPFS Discord, borismann#5151 15
T H A N K YO U ! Github: fission-suite Home page: fission.codes Developer Guide & Docs: guide.fission.codes Discourse forum: talk.fission.codes Technical Whitepaper: whitepaper.fission.codes 🚧 👷✍ Discord chat: fission.codes/discord Twitter: @fissioncodes
APPENDIX 17
18
FISSION SYS TEM DIAGRAM • Fission Web API (Haskell) • Auth Lobby Web App (Elm) • Fission CLI (Haskell) • Drive Web App (Elm) • Integrations, eg. Publish action on Github, Heroku Add-On, etc. 19
WEBNATIVE: BOOTSTRAPPIN G FROM BROWSER APIS • Should work in any browser, including mobile, without plugins • WebCrypto API • Web Workers • Service Workers • IndexedDB • PWA & Web App Manifest 20
OAUTH VS UC AN SEQUENCE 21