Fission & Webnative SDK Protocol Engineering an Edge App Stack Boris Mann • @bmann
A presentation at Protocol Labs Network LabWeek22 in October 2022 in Lisbon, Portugal by Boris Mann
Fission & Webnative SDK Protocol Engineering an Edge App Stack Boris Mann • @bmann
Far Edge Apps • Identity, data, and compute • All the components needed to enable front end devs to build apps • Include security & privacy — passwordless logins, end-to-end encryption • No account lock-in — DIDs as the basis for account identi iers • Make user data portable — use IPFS for content addressing f • Enable computation without the hyper clouds
Protocol Engineering an edge app stack • UCAN: decentralized auth based on DIDs • WNFS: e2ee ile system on top of IPFS with capabilities, versioning, etc. • 🆕 CAR Pool: fast synchronization of large IPLD graphs • 🔜 Dialog: planet scale far edge database • 👩🔬 IPVM: Wasm serverless functions (and also autocodec and wasm- f ipfs)
Research -> Spec -> Implementation -> Product
Ecosystem Obsessed
Research graduates to Ecosystem Working Groups • Running code and rough consensus • …and an iterative, community driven spec process that is IPR cleared • Work on shared libraries together • Interop across platforms • UCAN - Web3Storage, Noosphere • WNFS - n0, Capyloon, Webrecorder, IPFS, Filecoin
Webnative: SDK for edge apps on IPFS • Design goals: • Empower a front end dev to make entire apps without having to become full stack & without devops • Works in browser, including mobile • No browser extensions • Local irst A true local- irst, edge computing stack f f 7
Webnative App Template • Webnative App Template https:// webnative-template. ission.app • DIDs based on WebCrypto API, desktop and mobile with no browser extension • Public & private iles f f • Device linking
Interop • Blockchains talk about this a lot, for small amounts of completely public data • We need decentralized edge apps to extend the utility & usability • Many interoperable accounts and portable data -> a bigger web3 universe • UX challenges: what do you present to the user to show that they can re-use a login? That they can bring their own data?
Future Directions
WalletAuth • Instead of managing keys with Webnative, use any* blockchain account • Add WNFS encrypted iles controlled by an address == “Web3 iCloud” • Better UX & privacy, without centralization! • 50M existing accounts f *supporting Ethereum / EVM chains on MetaMask, FIL next
Passkeys • “The primary use-case for passkeys is replacing the password as the irst/primary factor for account authentication.” • New WebAuthN security key method • Will be implemented in Apple iOS & MacOS, Google Android & Chrome, Microsoft, Amazon • Great UX for passwordless logins, protected by OS- level security (biometrics etc) • 500M accounts in 6 months f 12
UCAN Build On Web3Storage & Fission • Persist uploads to Web3Storage • Login with W3S accounts / Webnative • Link & update DNS pointing to CIDs • Get a wholesale account represented by a UCAN, and delegate to your customers
UCAN as InterPlanetary IAM • The hyper clouds build ever more services within their walled gardens, all tied to a centralized account & billing system • Between clouds, you have to pre- provision secrets; with UCAN, you use your existing DIDs and get new capabilities assigned and delegate “In the next 10-20 years, I believe we will see a massive disruption in the DeveloperLed Landscape driven by the emergence of Autonomous Software Development.” — The Developer-Led Landscape, Tyler Jewell, Sep 2020 • Services on the open web being remixed and combined 14
Business Models for DWeb Apps • Code is free, people are priceless • Donations: good vibes… but also you get to help rank upcoming features • Subscriptions: monthly payment • Revenue share: users upgrade to more storage, developers get paid • Staking: no loss lotteries like PoolTogether, stake your savings with proceeds to apps
Rewrite it in Rust • rs-ucan implemented by Noosphere team, now we’ll adopt it & help maintain (plus n0, others) • rs-wnfs is in progress • Up next: CAR Pool, Dialog far edge database, IPVM Wasm edge functions • https:// ission.codes/rewrite-in-rust/ f 17