P2P Web & Decentralized Apps
#ForPeople!
Barış Güler
@hwclass
Frontend Team Lead @ Blacklane
#WeAreHiring!
#AboutMe
This talk is
not about
blockchain or
bitcoin.
It is about decentralizedweb.
Keywords
Human Interaction
Openness
Web Application Development
Peer-to-Peer Web
Centralized Web
Corporate Web
Decentralization
Corporate Monopolies
Control-Centric Approach
Privacy
Dat Platform
Decentralized Web Events
Beaker Browser
Security
Hashbase
File system
Scuttlebutt
HTTP
Indie Web
The Web is
over-
engineered.
https://twitter.com/mathowie/status/837735473745289218
The Web is
under-
estimated.
#QuotesFromCommunity
"The Web enabled communication, collaboration, and creativity at a scale once unimaginable, but it’s devolved into a landscape of of isolated platforms that discourage customization and interoperability. The Web’s value flows from the people who use it, yet our online experiences are dictated by corporations whose incentives rarely align with our own."
#QuotesFromCommunity
http://ab13zyvpe7wadntqjz2zrmwcz02tvcuk75qcb6bh41w38qg6z7r0.gateway.mauve.moe:3000/
#P2PWebCommunity
#P2PWebCommunity
"Websites served from many locations; locations that are not coordinated."
Brewster Kahle, archive.org
#P2PWebCommunity
"A Web that does not depend upon powerful monopolies."
Jehan Tremback, altheamesh.com
"In the future, the Web will be like air and water. It will be a part of the Commons."
Jeffrey Ventrella, wiggleplanet.com
#P2PWebCommunity
#QuotesFromCommunity
"Decentralized software has potential to return control of digital information to the people."
#P2PWebCommunity
"The core weaknesses of the Internet have to be recognized, and how exactly they were exploited by middlemen businesses. The problem we are solving is both social and technical, so the solution must be a harmony of these two. Finally, all the tools and opportunities we need to supersede them are already in our hands: smartphones, peer-to-peer protocols, and mesh networks"
Distributed non-Profitness
Dat Project
#ForMorePublicData
#NonProfitHumanDriven
Along the way of building the future we got lost. We need public technology driven by communities and humans.
#DatDescription
"We believe that not-for-profit and human-driven technology will be the future of the open web. We must also nurture an inclusive community creating fair technology."
"User security and privacy take priority in the Dat Protocol. Applications using Dat get encrypted transfer, private data sharing, and content verification built-in."
"Existing Internet infrastructure was funded and built for the public. Large monopolies now control the web. Can we imagine a new model for technology infrastructure?"
#DatHistory
#FirstCommit
#DatFeatures
Distributed
Data history
Security
In-place archiving
https://github.com/datproject/docs/blob/master/papers/dat-paper.pdf
dat://... ≈ file://...
#DatFeatures
// import dat
const Dat = require('dat-js');
// create a new instance
const dat = Dat();
// share hello.txt
dat.add(function (repo) {
var writer = repo.archive.createFileWriteStream('hello.txt')
writer.write('world')
writer.end(function () { replicate(repo.key) })
})
const clone = Dat()
// download hello.txt
clone.add(key, function (repo) {
repo.archive.readFile('hello.txt', function (err, data) {
console.log(data.toString()) // prints 'world'
})
})
// download a subset
dat.add(key, { sparse: true }, function (repo) {
// do domething!
})
#CodeForHumans
Dat on server
$ npm install -g hypercored
$ hypercored
Watching ~/dat/feeds for a list of active feeds
Archiver key is 42471e32d36be3cb617ec1df382372532aac1d1ce683982962fb3594c5f9532a
Swarm listening on port 58184
# Hit http://localhost:58184
To provide any feeds you want on web
#DatFeatures
hyperdrive: Core library
hypercore: Logging
#DatInternals
Distributed file system.
Distributed append-only log.
Connection for hyperdrive & hypercore feeds
hyperdiscovery
Create a Dat
dat.create
Share a Dat
dat.share
Download Dat
dat clone dat://778f8...
Browser-as-a-"Server"
Beaker Browser
#ForMorePowerfulWeb
#WhyBuildABrowser?
Browsers are the gateway to the Web! By building a browser with experimental features and capabilities, we have the flexibility to explore how the browser can help uphold the vision of an open Web.
" At the heart of Beaker is a peer-to-peer network for sharing all kinds of content.
It lets you skip the middle man and share data directly with your friends and colleagues. P2P networks are fantastic for sharing information privately, and they work great for publishing to a broad audience too!"
#BeakerDescription
#InternetIndependent
#RealOfflineExperience
#BeakerFeaturesForDevs
Share work via peers
Prototype & show what you have
Showcasing components / small pieces
Creating apps for your good (not for business)
#WrittenInJS!
#opensource
#BeakerInternals
WebDB
Homebase (ex. dathttpd)
DatArchive API
Reads/Writes data on dat:// websites.
Pinning server for Dat Protocol.
API for reading/writing on Dat file system.
Decentralized Apps for
People
#ByDevelopers!
Private Family blog
Beaker Browser
Gatsby
Netlify CMS
Flog
#BuildWithP2P
In-house Documentation
Beaker Browser
GraphCMS
React
dokumante.at
#BuildWithP2P
(Really!) personal Xgram
Beaker Browser
<Number-of-family-members-in-array>.map(m => createApp(m))
xgram.app
#BuildWithP2P
ad-hoc Social Network App
Beaker Browser
Hashbase
<Something>.js
personal.space
#BuildWithP2P
Team-specific Code Reviewing Tools
Beaker Browser
A Pub/Sub Mechanism
<SomethingAnother>.js
revue.me
#BuildWithP2P
Reviewing Tool for your Homeworks
Beaker Browser
HyperDB
Hashbase
<ThisIsSoCool>.js
kacuzerinden.io
#BuildWithP2P
Component Showcasing App
Beaker Browser
HyperDB
Hashbase
<WhyIamUsingThisStill>.js
Docz
use.guide
#BuildWithP2P
Your P2P Lambda
Beaker Browser
application/json or text/html
handler.js
lam.ba
#BuildWithP2P
Your tiny gist server
(I mean, peer-to-peer app)
<Some> Browser
HyperDB
<LetsSwitchToAnother>.js
gi.st
#BuildWithP2P
Your own hosting service
<Some> Browser
HyperDB
<LetsSwitchToAnother>.js
https://rationalcoding.github.io/hyperhost
Example:
https://decentralized-static-app.hashbase.io/
#BuildWithP2P
Tooling
#ByDevelopers!
Hashbase
Hosting for peer-to peer web
#Tooling
HyperDB
Distributed Scalable Database
https://github.com/mafintosh/hyperdb
#Tooling
Scuttlebutt
a decent(ralised) secure gossip platform
https://www.scuttlebutt.nz/
#Tooling
Bottlenecks
#ForPeople
"And when you gaze long
into an abyss,
the abyss also gazes you."
#FriedrichNietzche
Catch-22 syndrome
Why use if people not using?
Lack of maturity
Some tools still have bugs.
Avoiding responsibility
Everything done by servers.
peer-to-peer-web.com
Decentralized Web Summit
Decentralized Web Meetups (Montreal, LA)
http://d10e.biz - The Leading Conference on Decentralization
#DecentralizedEvents
dig.csail.mit.edu - Decentralized Information Group
datproject.org
beakerbrowser.org
inthemesh.com
www.wired.com/story/the-decentralized-internet-is-here-with-some-glitches
ischoolonline.syr.edu/blog/what-is-the-decentralized-web
#RelatedLinks
?
#Questions
await setTimeout(() => {
questions.map(question => {
new Error.throw(question)
})
}, 50000)
Thank you, all!
https://slides.com/hwclass/peer-to-peer-web-with-decentralized-apps
Peer-to-Peer Web with Decentralized Apps
By Barış Güler
Peer-to-Peer Web with Decentralized Apps
- 2,160