D RU PA L A N D T H E DECENTRALIZED WEB BORIS MANN D R U PA L C O N G L O B A L J U LY 2 0 2 0
A presentation at DrupalCon Global 2020 in July 2020 in by Boris Mann
D RU PA L A N D T H E DECENTRALIZED WEB BORIS MANN D R U PA L C O N G L O B A L J U LY 2 0 2 0
BORIS MANN • Got involved in Drupal back in 2003 • Ethereum community, helping out with the Ethereum Magicians, Core Devs ✨ • Fission makes open source developer tools Drupal and the Decentralized Web • Boris Mann
A PHP-based CMS GPL! …or web application framework …or community website and blogging tool WEB 2.0!!! Fully buzzword compliant: AJAX, RSS, aggregation, syndication, tagging, blog Web 1.0 → Web 2.0 Drupal and the Decentralized Web • Boris Mann
DECENTRALIZED WEB: WEB2→WEB3? They gave us a fully decentralized Internet and we used it to build web services — Facebook, Twitter, Gmail, iCloud — so massively centralized they verge on being quasi-medieval fiefdoms. — John Evans, Decentralize All the Things!, TechCrunch, 2015 Drupal and the Decentralized Web • Boris Mann
W H AT D O E S O P E N S O U R C E M E A N ? • The problem with the term open source is that everyone means something different when they use it • Some people just mean licensing • Some people think of a particular community’s practices • Others think that it means some kind of fuzzy democracy and/ or mob rule Drupal and the Decentralized Web • Boris Mann
DEFINITION OF OPEN SOURCE
COMMONS BASED PEER PRODUCTION 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: Explaining Commons Based Peer Production, er, Open Source (2005)
L I C E N S I N G I N N O VAT I O N • For the first time in 15+ years, we’re starting to see licensing innovation again • License Zero: Parity (share alike for open source) & Prosperity (non-commercial) • Fair Source • 996ICU • Ethical Licenses • Cross License Collaboratives (XLC) Drupal and the Decentralized Web • Boris Mann
D ATA E T H I C S • We are starting to see people care about data — specifically, their data • What requires software developers or companies to act in certain ways with data? • From principles (Fair Data Society, Local First Software) to licenses (Cryptographic Autonomy License, Icepick) Drupal and the Decentralized Web • Boris Mann
WHY IS APPLE MOVING FROM BASH TO ZSH? • Licensing of course! • Apple has been shipping an “old” version of bash with Mac OS for a long time, because it is GPLv2, and newer versions now use GPLv3 • Zsh uses an “MIT-like” license, plus some GPL shell functions Drupal and the Decentralized Web • Boris Mann
— Dries Buytaert, Balancing Makers and Takers to Scale and Sustain Open Source Drupal and the Decentralized Web • Boris Mann
WEB2 = ADVERTISING SUPPORTED WEB Things were so simple 20 or even 10 years ago (social media, dated to the invention of RSS, is 20 years old, bitcoin is 10 years old). — Venkatesh Rao, The Extended Internet Universe, May 2019 Unlike the main public internet, which runs on the (human) protocol of “users” clicking on links on public pages/apps maintained by “publishers”… Drupal and the Decentralized Web • Boris Mann
…the cozyweb works on the (human) protocol of everybody cutting-and-pasting bits of text, images, URLs, and screenshots across live streams. We create tiny underground burrows of Slack channels, WhatsApp groups, Discord chats, and Telegram streams that offer shelter and respite from the aggressively public nature of Facebook, Twitter, and every recruiter looking to connect on LinkedIn. — Maggie Appleton, The Dark Forest and the Cozy Web
DEFINITION OF WEB3
That’s the promise of the crypto world…cryptographic technologies in general, starting with private-key based identity and security for everything). It is still at a very rudimentary stage of development. Drupal and the Decentralized Web • Boris Mann
• Meanwhile, over on Drupal Island…
D R U PA L I S S T U C K O N L A M P I S L A N D • But there’s a problem — Drupal is stuck on a different kind of island — LAMP island! LAMP C O N TA I N E R S SERVERLESS HOSTLESS ☁ 🌐 λ Drupal and the Decentralized Web • Boris Mann
SELF HOSTING • We have many more people online, and the architectures need to be more scaleable to support them all • Which makes them too complex for people to self host IS TOO DAMN HARD
Drupal and the Decentralized Web • Boris Mann
• It turns out: there are tons of islands • Some of them are about privilege and cultural bias • Open source license island, LAMP island • Even HTTP island!
• The biggest island — the Web: HTML, CSS, JS • …and now WebAssembly
• But what if we had common infrastructure • Commons infrastructure
But once [cryptographic tech] matures, we will see the entire extended internet universe getting rearchitected on better foundations, where we could at least push out the boundary of the 2-of-3 pareto. Drupal and the Decentralized Web • Boris Mann
Fediverse Specs (many W3C) Cryptographic Tech Inter Planetary File System Activity Pub drupal.org/project/activitypub IndieWeb drupal.org/project/indieweb github.com/fission-suite/drupal-ipfs Matrix Chat Protocol drupal.org/project/matrix_api Secure Scuttlebutt Drupal and the Decentralized Web • Boris Mann
S S B P R I N C I P L E S S TA C K Drupal and the Decentralized Web • Boris Mann
Scuttlebutt Roy Roy Roy James Kara James Gem When you write a post in scuttlebutt it is stored on your local storage When people follow you, they copy the storage container, and then sync it whenever you’re both online Evan Tom If you’re not online, the people following you can get their updates from someone who is Drupal and the Decentralized Web • Boris Mann
I P F S - I N T E R P L A N E TA R Y F I L E S Y S T E M • Location addressing: an IP address pointing to a server, a web server pointing to a directory path • Content addressing: every piece of content has a unique hash, making it location independent ipfs.io Drupal and the Decentralized Web • Boris Mann
IPFS - HOW IT WORKS Drupal and the Decentralized Web • Boris Mann
IPFS - HOW IT WORKS Drupal and the Decentralized Web • Boris Mann
N T E N IT P AF D DSR EP S SE I NE GR DISCOVERY U T I N G & LO O KU P 56 8 8 8 8 8 ☕ 8 8 7 8 8 8 8 8 Drupal and the Decentralized Web • Boris Mann
ON T A S S ID NG ICP FTSE N P EDED RRES ELIVERING BLOCKS TO USER RO U T I N G & LO O KU P 56 8 8 7 8 Drupal and the Decentralized Web • Boris Mann
I P F S L I N K E D D ATA CONTENT ADDRESSING L I N K E D D ATA { Qm123456…: { data: “Hello world”, links: [ {name: “company”, hash: Qmabcdef…} {name: “license”, hash: Qmzyxwvu…} ] } } Drupal and the Decentralized Web • Boris Mann
I P F S L I N K E D D ATA CONTENT ADDRESSING 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…} ] } } Drupal and the Decentralized Web • Boris Mann
CONTENT ADDRESSING I P F S L I N K E D D ATA 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” Drupal and the Decentralized Web • Boris Mann
C O N T E N T A D D R E S S I N G - I N T E R P L A N E TA R Y S I Z E D N A M E S PA C E • Same file = same hash • No matter when 🕓 • No matter where 🌍 🌌 • No matter who 👩🔧🤖👩🚀👨🎤 🦊 • Zero file duplication per node • Replication = CDN-ish features • Immutable data structures • Structural sharing = dedup blocks • Files & data living together! Drupal and the Decentralized Web • Boris Mann
S O M E I D E A S F O R D R U PA L + I P F S • Self-host large videos, files and data sets • Manage assets with Drupal, store them in IPFS • Take Drupal offline • Sync and interact with desktops and mobile • Let users own their data • Distribute Drupal updates over IPFS Drupal and the Decentralized Web • Boris Mann
D R U PA L I P F S M O D U L E • Available on Github https://github.com/ fission-suite/drupal-ipfs • Test site at https:// fission.dev.affinitybridge.com/ • Use Fission or run your own IPFS node Drupal and the Decentralized Web • Boris Mann
T H A N K YO U ! BORIS MANN @BMANN • Session Review bit.ly/bmann-dweb-review • Slides noti.st/bmann • Talk Notes, Links & Comments talk.fission.codes/t/729