SlideShare a Scribd company logo
LEARN HOW TO BUILD 

DECENTRALIZED AND SERVERLESS 

HTML5 APPLICATIONS 

WITH EMBARKJS, ETHEREUM, DAT AND IPFS
April 13th 2018 – Codemotion, Rome
A l e s s a n d r o C o n f e t t i
2
image from the work of Paul Baran, On Distributed Communications Networks 1964
Alessandro Confetti - April 13th 2018 – Codemotion, Rome
3
Image from Evolving terminology with evolved technology: decentralized versus distributed December 4, 2015
Alessandro Confetti - April 13th 2018 – Codemotion, Rome
4
Images from Evolving terminology pt. 2: topology vs ownership January 10, 2016
Alessandro Confetti - April 13th 2018 – Codemotion, Rome
2014
AWS Lamba
Elastic Function computing
2009
Node.js
2010
AKKA
Asyncronous WWW
2004
AWS
Elastic services
1993
CGI
1995
MySQL
Dynamic WWW
Static WWW
1990
HTTP/HTML
From decentralised arpanet to…
5
Alessandro Confetti - April 13th 2018 – Codemotion, Rome
2017
worldwide (de)centralised serverless computing
ARPANET
1984
DNS
1974
TCP
1969
Internet foundations
BigchainDB
Blockchain based database
20162015
Ethereum
Trustless (pure) P2P function computingDAT IPFS
Pure P2P storage sevice
2013 20142011
Namecoin
Blockchain based naming service
2009
Bitcoin
Trustless pure P2P payment service
Worldwide P2P network
1999
NAPSTER
2001
From usenet to…
6
2017
P2P computing
Self-organised decentralised service
USENET
1979
Alessandro Confetti - April 13th 2018 – Codemotion, Rome
AWS LAMBDA SERVERLESS COMPUTING
7
Image from AWS Lambda official page
Alessandro Confetti - April 13th 2018 – Codemotion, Rome
WEB
SERVER
Storage
1990 STATIC WEB-SITE
8
CLIENT
http
Index.html
Alessandro Confetti - April 13th 2018 – Codemotion, Rome
LOAD
BALANCER
WEB
SERVER
Storage
WEB
SERVER
Storage
2000 STATIC WEB-SITE
9
CLIENT
http
Index.html
Alessandro Confetti - April 13th 2018 – Codemotion, Rome
EU
PROXY
WEB
SERVER
Storage
WEB
SERVER
Storage
LOAD BALANCER
2017 STATIC WEB-SITE
10
CLIENT
http
Index.html
…US
WEB
SERVER
Storage
WEB
SERVER
Storage
LOAD BALANCER
WEB
SERVER
Storage
WEB
SERVER
Storage
LOAD BALANCER
Alessandro Confetti - April 13th 2018 – Codemotion, Rome
P2P SERVERLESS COMPUTING
11
????
Alessandro Confetti - April 13th 2018 – Codemotion, Rome
12
Alessandro Confetti - April 13th 2018 – Codemotion, Rome
Block 1Block …
Block 2
Block 4
ipfs
2017 IPFS STATIC WEB-SITE
13
CLIENT
IPFS
NODE
IPFS
NODE
IPFS
NODE
IPFS
NODE
Storage
HTTP/IPFS 

GATEWAY
Storage
Index.html
block
1
block
4
block
7
block
2
block
5
block
8
block
3
block
6
block
9
Storage
StorageStorage
Index.html
http
ipfs
Index.html
Alessandro Confetti - April 13th 2018 – Codemotion, Rome
HOW TO INSTALL IPFS
14
wget https://dist.ipfs.io/go-ipfs/v0.4.14/go-ipfs_v0.4.14_linux-amd64.tar.gz
tar -xvfz go-ipfs_v0.4.14_linux-amd64.tar.gz
cd go-ipfs
./install.sh
ipfs init
ipfs daemon
http://localhost:5001/webui
Alessandro Confetti - April 13th 2018 – Codemotion, Rome
15
Alessandro Confetti - April 13th 2018 – Codemotion, Rome
16
Alessandro Confetti - April 13th 2018 – Codemotion, Rome
HOW TO INSTALL DAT
17
npm install -g dat
mkdir MyData
cd MyData
dat create
dat share —-http
http://localhost:8080
Alessandro Confetti - April 13th 2018 – Codemotion, Rome
18
Alessandro Confetti - April 13th 2018 – Codemotion, Rome
19
Alessandro Confetti - April 13th 2018 – Codemotion, Rome
20
Image and article about the left-pad incident from The Register
Alessandro Confetti - April 13th 2018 – Codemotion, Rome
21
STATIC HTTP SITE STATIC IPFS/DAT SITE
Bandwidth costs and capacity 

is upon the site
Bandwidth costs and capacity 

is upon the client
proxies, load balancers, 

clusters and zones must be 

configured and maintained
The P2P network is self-organising
Censorship can be easily enforced 

thought DNS and IP Filtering
Content is resilient 

to DSN and IP filtering 

or deletion
Alessandro Confetti - April 13th 2018 – Codemotion, Rome
22
Alessandro Confetti - April 13th 2018 – Codemotion, Rome
P2P SERVERLESS COMPUTING
23
IPFS/DAT BLOCKCHAIN
ETHEREUM
Front-end code for
weather app is hosted
on IPFS or DAT
Ethereum contract is executed on the EVM
and returns data back to user
(eventually storing data on the blockchain)
The smart contract is
triggered by the user or an
external oracle
Alessandro Confetti - April 13th 2018 – Codemotion, Rome
24
Alessandro Confetti - April 13th 2018 – Codemotion, Rome
25
Alessandro Confetti - April 13th 2018 – Codemotion, Rome
HOW TO INSTALL EMBARKJS
26
# install ethereum
wget https://gethstore.blob.core.windows.net/builds/geth-darwin-amd64-1.6.0-
facc47cb.tar.gz
tar -xvfz geth-darwin-amd64-1.6.0-facc47cb.tar.gz
sudo mv geth-darwin-amd64-1.6.0-facc47cb/geth /usr/local/bin/geth
# install EmbarkJS
sudo npm -g install embark
embark demo
# install compatible ipfs version inside demo folder
mkdir demo/bin
cd demo/bin
wget https://dist.ipfs.io/go-ipfs/v0.4.11/go-ipfs_v0.4.11_darwin-amd64.tar.gz
tar -xvfz go-ipfs_v0.4.11_darwin-amd64.tar.gz
./ipfs init
Alessandro Confetti - April 13th 2018 – Codemotion, Rome
27
(DE)CENTRALISED 

SERVLESS COMPUTING
DISTRIBUTED

SERVLESS COMPUTING
you don’t have to manage servers or services, 

neither to worry how to scale or allocate them… 

as long are you able to pay 

or to cope with the provider’s rules
you don’t have to manage servers or services, 

neither to worry how to scale or allocate them… 

but you can help build the network

and been rewarded for it
Trust is upon the the provider Trust is upon the network
Resilience and scalability 

through (de)centralised

clustering, sharding, zoning…
Resilience and scalability 

through distributed networks
Alessandro Confetti - April 13th 2018 – Codemotion, Rome
WE ARE HIRING IN ITALY!
i n f o - i t @ t h o u g h t w o r k s . c o m
TECNOLOGY RADAR VOL17
https://info.thoughtworks.com/technology-radar-subscription.html
$ tail -f questions
29
Alessandro Confetti
aconfet@thoughtworks.com
twitter @zigolab 

blog http://blog.zigolab.it
Ad

Recommended

Learn how to build decentralized and serverless html5 applications with embar...
Learn how to build decentralized and serverless html5 applications with embar...
Alessandro Confetti
 
Software Heritage: let's build together the universal archive of our software...
Software Heritage: let's build together the universal archive of our software...
Codemotion
 
Alfresco Workshop: Installing VirtualBox and Ubuntu 17.04 Guest Operating Sys...
Alfresco Workshop: Installing VirtualBox and Ubuntu 17.04 Guest Operating Sys...
Lighton Phiri
 
Gettiing Started with IoT using Raspberry Pi and Python
Gettiing Started with IoT using Raspberry Pi and Python
Martin Christen
 
Python in a real life
Python in a real life
Vladimir Filonov
 
rqlite - replicating SQLite via Raft consensu
rqlite - replicating SQLite via Raft consensu
Philip O'Toole
 
Docker and .NET Core - Best Friends Forever - Michael Newton - Codemotion Rom...
Docker and .NET Core - Best Friends Forever - Michael Newton - Codemotion Rom...
Codemotion
 
Ekanite
Ekanite
Philip O'Toole
 
FOSDEM 2017: Making Your Own Open Source Raspberry Pi HAT
FOSDEM 2017: Making Your Own Open Source Raspberry Pi HAT
Leon Anavi
 
MOSP Walkthrough 2009
MOSP Walkthrough 2009
Andrew Roughan
 
Building a scalable learning platform - Erik Veld - Codemotion Amsterdam 2018
Building a scalable learning platform - Erik Veld - Codemotion Amsterdam 2018
Codemotion
 
Create IoT with Open Source Hardware, Tizen and HTML5
Create IoT with Open Source Hardware, Tizen and HTML5
Leon Anavi
 
Networks, Linux, Containers, Pods
Networks, Linux, Containers, Pods
Matt Turner
 
Istio - The life of a packet
Istio - The life of a packet
Matt Turner
 
FOSDEM 2012 vcsh talk
FOSDEM 2012 vcsh talk
RichiH
 
Teledoom by Matt Williams for TADHack Orlando online 2020
Teledoom by Matt Williams for TADHack Orlando online 2020
Alan Quayle
 
CI For Embedded Software - Lucas Jenss & Folker Bernitt
CI For Embedded Software - Lucas Jenss & Folker Bernitt
Thoughtworks
 
【IoTLT一関】IoT機器のコーディングをVSCode Remoteで快適にする
【IoTLT一関】IoT機器のコーディングをVSCode Remoteで快適にする
竹田 大将
 
PHP-FIG: how the PHP world got off their islands (DrupalCamp Vienna 2015)
PHP-FIG: how the PHP world got off their islands (DrupalCamp Vienna 2015)
Bart Feenstra
 
Tools for Offensive RTC security. Introducing SIPVicious PRO and the demo ser...
Tools for Offensive RTC security. Introducing SIPVicious PRO and the demo ser...
Alan Quayle
 
Learn how to build decentralized and serverless html5 applications with Embar...
Learn how to build decentralized and serverless html5 applications with Embar...
Codemotion
 
Alessandro Confetti - Learn how to build decentralized and serverless html5 a...
Alessandro Confetti - Learn how to build decentralized and serverless html5 a...
Codemotion
 
Web3 File Storage Options
Web3 File Storage Options
Gene Leybzon
 
Interplanetary File System.pptx
Interplanetary File System.pptx
Gitam Gadtaula
 
Decentralized storage
Decentralized storage
Anurag Dashputre
 
Productive web applications that run only on the frontend
Productive web applications that run only on the frontend
Stefan Adolf
 
InterPlanetary File System (IPFS)
InterPlanetary File System (IPFS)
Gene Leybzon
 
IPFS: A Whole New World
IPFS: A Whole New World
ArcBlock
 
The State of Decentralized Storage
The State of Decentralized Storage
CoinGecko
 
6-ZeroLab_decentralized_applications-2008.pptx
6-ZeroLab_decentralized_applications-2008.pptx
ClaudioTebaldi2
 

More Related Content

What's hot (12)

FOSDEM 2017: Making Your Own Open Source Raspberry Pi HAT
FOSDEM 2017: Making Your Own Open Source Raspberry Pi HAT
Leon Anavi
 
MOSP Walkthrough 2009
MOSP Walkthrough 2009
Andrew Roughan
 
Building a scalable learning platform - Erik Veld - Codemotion Amsterdam 2018
Building a scalable learning platform - Erik Veld - Codemotion Amsterdam 2018
Codemotion
 
Create IoT with Open Source Hardware, Tizen and HTML5
Create IoT with Open Source Hardware, Tizen and HTML5
Leon Anavi
 
Networks, Linux, Containers, Pods
Networks, Linux, Containers, Pods
Matt Turner
 
Istio - The life of a packet
Istio - The life of a packet
Matt Turner
 
FOSDEM 2012 vcsh talk
FOSDEM 2012 vcsh talk
RichiH
 
Teledoom by Matt Williams for TADHack Orlando online 2020
Teledoom by Matt Williams for TADHack Orlando online 2020
Alan Quayle
 
CI For Embedded Software - Lucas Jenss & Folker Bernitt
CI For Embedded Software - Lucas Jenss & Folker Bernitt
Thoughtworks
 
【IoTLT一関】IoT機器のコーディングをVSCode Remoteで快適にする
【IoTLT一関】IoT機器のコーディングをVSCode Remoteで快適にする
竹田 大将
 
PHP-FIG: how the PHP world got off their islands (DrupalCamp Vienna 2015)
PHP-FIG: how the PHP world got off their islands (DrupalCamp Vienna 2015)
Bart Feenstra
 
Tools for Offensive RTC security. Introducing SIPVicious PRO and the demo ser...
Tools for Offensive RTC security. Introducing SIPVicious PRO and the demo ser...
Alan Quayle
 
FOSDEM 2017: Making Your Own Open Source Raspberry Pi HAT
FOSDEM 2017: Making Your Own Open Source Raspberry Pi HAT
Leon Anavi
 
Building a scalable learning platform - Erik Veld - Codemotion Amsterdam 2018
Building a scalable learning platform - Erik Veld - Codemotion Amsterdam 2018
Codemotion
 
Create IoT with Open Source Hardware, Tizen and HTML5
Create IoT with Open Source Hardware, Tizen and HTML5
Leon Anavi
 
Networks, Linux, Containers, Pods
Networks, Linux, Containers, Pods
Matt Turner
 
Istio - The life of a packet
Istio - The life of a packet
Matt Turner
 
FOSDEM 2012 vcsh talk
FOSDEM 2012 vcsh talk
RichiH
 
Teledoom by Matt Williams for TADHack Orlando online 2020
Teledoom by Matt Williams for TADHack Orlando online 2020
Alan Quayle
 
CI For Embedded Software - Lucas Jenss & Folker Bernitt
CI For Embedded Software - Lucas Jenss & Folker Bernitt
Thoughtworks
 
【IoTLT一関】IoT機器のコーディングをVSCode Remoteで快適にする
【IoTLT一関】IoT機器のコーディングをVSCode Remoteで快適にする
竹田 大将
 
PHP-FIG: how the PHP world got off their islands (DrupalCamp Vienna 2015)
PHP-FIG: how the PHP world got off their islands (DrupalCamp Vienna 2015)
Bart Feenstra
 
Tools for Offensive RTC security. Introducing SIPVicious PRO and the demo ser...
Tools for Offensive RTC security. Introducing SIPVicious PRO and the demo ser...
Alan Quayle
 

Similar to Learn how to build decentralized and serverless html5 applications with embark js, ethereum, dat and ipfs (20)

Learn how to build decentralized and serverless html5 applications with Embar...
Learn how to build decentralized and serverless html5 applications with Embar...
Codemotion
 
Alessandro Confetti - Learn how to build decentralized and serverless html5 a...
Alessandro Confetti - Learn how to build decentralized and serverless html5 a...
Codemotion
 
Web3 File Storage Options
Web3 File Storage Options
Gene Leybzon
 
Interplanetary File System.pptx
Interplanetary File System.pptx
Gitam Gadtaula
 
Decentralized storage
Decentralized storage
Anurag Dashputre
 
Productive web applications that run only on the frontend
Productive web applications that run only on the frontend
Stefan Adolf
 
InterPlanetary File System (IPFS)
InterPlanetary File System (IPFS)
Gene Leybzon
 
IPFS: A Whole New World
IPFS: A Whole New World
ArcBlock
 
The State of Decentralized Storage
The State of Decentralized Storage
CoinGecko
 
6-ZeroLab_decentralized_applications-2008.pptx
6-ZeroLab_decentralized_applications-2008.pptx
ClaudioTebaldi2
 
IPFSNov5.pptx
IPFSNov5.pptx
AsifKhalid11
 
Devcon2上海 参加報告
Devcon2上海 参加報告
Hiroyasu NOHATA
 
Ipfs installation and demo
Ipfs installation and demo
Naveen Davis
 
Introduction to Filecoin
Introduction to Filecoin
Vanessa Lošić
 
Protocol Labs, David Dias, TADSummit 2018
Protocol Labs, David Dias, TADSummit 2018
Alan Quayle
 
Serverless Pune meetup 3
Serverless Pune meetup 3
Vishal Biyani
 
The FN Project by Maximilian Jerg
The FN Project by Maximilian Jerg
Harald Schmaldienst
 
Introduction to Serverless through Architectural Patterns
Introduction to Serverless through Architectural Patterns
Mathieu Mailhos
 
TechEvent Servlerless Computing with Fn Project
TechEvent Servlerless Computing with Fn Project
Trivadis
 
Serverless Computing with Fn Project
Serverless Computing with Fn Project
Matthias Furrer
 
Learn how to build decentralized and serverless html5 applications with Embar...
Learn how to build decentralized and serverless html5 applications with Embar...
Codemotion
 
Alessandro Confetti - Learn how to build decentralized and serverless html5 a...
Alessandro Confetti - Learn how to build decentralized and serverless html5 a...
Codemotion
 
Web3 File Storage Options
Web3 File Storage Options
Gene Leybzon
 
Interplanetary File System.pptx
Interplanetary File System.pptx
Gitam Gadtaula
 
Productive web applications that run only on the frontend
Productive web applications that run only on the frontend
Stefan Adolf
 
InterPlanetary File System (IPFS)
InterPlanetary File System (IPFS)
Gene Leybzon
 
IPFS: A Whole New World
IPFS: A Whole New World
ArcBlock
 
The State of Decentralized Storage
The State of Decentralized Storage
CoinGecko
 
6-ZeroLab_decentralized_applications-2008.pptx
6-ZeroLab_decentralized_applications-2008.pptx
ClaudioTebaldi2
 
Devcon2上海 参加報告
Devcon2上海 参加報告
Hiroyasu NOHATA
 
Ipfs installation and demo
Ipfs installation and demo
Naveen Davis
 
Introduction to Filecoin
Introduction to Filecoin
Vanessa Lošić
 
Protocol Labs, David Dias, TADSummit 2018
Protocol Labs, David Dias, TADSummit 2018
Alan Quayle
 
Serverless Pune meetup 3
Serverless Pune meetup 3
Vishal Biyani
 
The FN Project by Maximilian Jerg
The FN Project by Maximilian Jerg
Harald Schmaldienst
 
Introduction to Serverless through Architectural Patterns
Introduction to Serverless through Architectural Patterns
Mathieu Mailhos
 
TechEvent Servlerless Computing with Fn Project
TechEvent Servlerless Computing with Fn Project
Trivadis
 
Serverless Computing with Fn Project
Serverless Computing with Fn Project
Matthias Furrer
 
Ad

More from Alessandro Confetti (12)

CDO Exchange - Lesson learned implementing a large data mesh at Payback.pdf
CDO Exchange - Lesson learned implementing a large data mesh at Payback.pdf
Alessandro Confetti
 
Rethinking AI_ Can We Do Better Than Good Enough?.pdf
Rethinking AI_ Can We Do Better Than Good Enough?.pdf
Alessandro Confetti
 
XConf 2022 - Code As Data: How data insights on legacy codebases can fill the...
XConf 2022 - Code As Data: How data insights on legacy codebases can fill the...
Alessandro Confetti
 
Was the technology really useful this time?
Was the technology really useful this time?
Alessandro Confetti
 
Scuttlebutt or how to exit facebook and start coding your first web 3.0 socia...
Scuttlebutt or how to exit facebook and start coding your first web 3.0 socia...
Alessandro Confetti
 
How to avoid a web 3.0 babele transclusions and folksonomies in a content-a...
How to avoid a web 3.0 babele transclusions and folksonomies in a content-a...
Alessandro Confetti
 
How to avoid a web 3.0 babele transclusions and folksonomies in a content-a...
How to avoid a web 3.0 babele transclusions and folksonomies in a content-a...
Alessandro Confetti
 
Oop vs functional stop the fight and start building message driven serverle...
Oop vs functional stop the fight and start building message driven serverle...
Alessandro Confetti
 
Through the looking glass (of the blockchain)
Through the looking glass (of the blockchain)
Alessandro Confetti
 
Blockchain
Blockchain
Alessandro Confetti
 
The Pandora Security Model
The Pandora Security Model
Alessandro Confetti
 
Agile vs ??
Agile vs ??
Alessandro Confetti
 
CDO Exchange - Lesson learned implementing a large data mesh at Payback.pdf
CDO Exchange - Lesson learned implementing a large data mesh at Payback.pdf
Alessandro Confetti
 
Rethinking AI_ Can We Do Better Than Good Enough?.pdf
Rethinking AI_ Can We Do Better Than Good Enough?.pdf
Alessandro Confetti
 
XConf 2022 - Code As Data: How data insights on legacy codebases can fill the...
XConf 2022 - Code As Data: How data insights on legacy codebases can fill the...
Alessandro Confetti
 
Was the technology really useful this time?
Was the technology really useful this time?
Alessandro Confetti
 
Scuttlebutt or how to exit facebook and start coding your first web 3.0 socia...
Scuttlebutt or how to exit facebook and start coding your first web 3.0 socia...
Alessandro Confetti
 
How to avoid a web 3.0 babele transclusions and folksonomies in a content-a...
How to avoid a web 3.0 babele transclusions and folksonomies in a content-a...
Alessandro Confetti
 
How to avoid a web 3.0 babele transclusions and folksonomies in a content-a...
How to avoid a web 3.0 babele transclusions and folksonomies in a content-a...
Alessandro Confetti
 
Oop vs functional stop the fight and start building message driven serverle...
Oop vs functional stop the fight and start building message driven serverle...
Alessandro Confetti
 
Through the looking glass (of the blockchain)
Through the looking glass (of the blockchain)
Alessandro Confetti
 
Ad

Recently uploaded (20)

Slides: Eco Economic Epochs for The World Game (s) pdf
Slides: Eco Economic Epochs for The World Game (s) pdf
Steven McGee
 
TCP/IP presentation SET2- Information Systems
TCP/IP presentation SET2- Information Systems
agnesegtcagliero
 
inside the internet - understanding the TCP/IP protocol
inside the internet - understanding the TCP/IP protocol
shainweniton02
 
B M Mostofa Kamal Al-Azad [Document & Localization Expert]
B M Mostofa Kamal Al-Azad [Document & Localization Expert]
Mostofa Kamal Al-Azad
 
Topic 1 Foundational IT Infrastructure_.pptx
Topic 1 Foundational IT Infrastructure_.pptx
oneillp100
 
Pitch PitchPitchPitchPitchPitchPitch.pptx
Pitch PitchPitchPitchPitchPitchPitch.pptx
157551
 
Logging and Automated Alerting Webinar.pdf
Logging and Automated Alerting Webinar.pdf
ControlCase
 
Global Networking Trends, presented at the India ISP Conclave 2025
Global Networking Trends, presented at the India ISP Conclave 2025
APNIC
 
最新版加拿大奎斯特大学毕业证(QUC毕业证书)原版定制
最新版加拿大奎斯特大学毕业证(QUC毕业证书)原版定制
taqyed
 
Topic 2 - Cloud Computing Basics,,,.pptx
Topic 2 - Cloud Computing Basics,,,.pptx
oneillp100
 
ChatGPT A.I. Powered Chatbot and Popularization.pdf
ChatGPT A.I. Powered Chatbot and Popularization.pdf
StanleySamson1
 
BroadLink Cloud Service introduction.pdf
BroadLink Cloud Service introduction.pdf
DevendraDwivdi1
 
The ARUBA Kind of new Proposal Umum .pptx
The ARUBA Kind of new Proposal Umum .pptx
andiwarneri
 
原版澳洲斯文本科技大学毕业证(SUT毕业证书)如何办理
原版澳洲斯文本科技大学毕业证(SUT毕业证书)如何办理
taqyed
 
Almos Entirely Correct Mixing with Apps to Voting
Almos Entirely Correct Mixing with Apps to Voting
gapati2964
 
PROCESS FOR CREATION OF BUSINESS PARTNER IN SAP
PROCESS FOR CREATION OF BUSINESS PARTNER IN SAP
AhmadAli716831
 
Transmission Control Protocol (TCP) and Starlink
Transmission Control Protocol (TCP) and Starlink
APNIC
 
最新版美国特拉华大学毕业证(UDel毕业证书)原版定制
最新版美国特拉华大学毕业证(UDel毕业证书)原版定制
taqyea
 
Paper: The World Game (s) Great Redesign.pdf
Paper: The World Game (s) Great Redesign.pdf
Steven McGee
 
BitRecover OST to PST Converter Software
BitRecover OST to PST Converter Software
antoniogosling01
 
Slides: Eco Economic Epochs for The World Game (s) pdf
Slides: Eco Economic Epochs for The World Game (s) pdf
Steven McGee
 
TCP/IP presentation SET2- Information Systems
TCP/IP presentation SET2- Information Systems
agnesegtcagliero
 
inside the internet - understanding the TCP/IP protocol
inside the internet - understanding the TCP/IP protocol
shainweniton02
 
B M Mostofa Kamal Al-Azad [Document & Localization Expert]
B M Mostofa Kamal Al-Azad [Document & Localization Expert]
Mostofa Kamal Al-Azad
 
Topic 1 Foundational IT Infrastructure_.pptx
Topic 1 Foundational IT Infrastructure_.pptx
oneillp100
 
Pitch PitchPitchPitchPitchPitchPitch.pptx
Pitch PitchPitchPitchPitchPitchPitch.pptx
157551
 
Logging and Automated Alerting Webinar.pdf
Logging and Automated Alerting Webinar.pdf
ControlCase
 
Global Networking Trends, presented at the India ISP Conclave 2025
Global Networking Trends, presented at the India ISP Conclave 2025
APNIC
 
最新版加拿大奎斯特大学毕业证(QUC毕业证书)原版定制
最新版加拿大奎斯特大学毕业证(QUC毕业证书)原版定制
taqyed
 
Topic 2 - Cloud Computing Basics,,,.pptx
Topic 2 - Cloud Computing Basics,,,.pptx
oneillp100
 
ChatGPT A.I. Powered Chatbot and Popularization.pdf
ChatGPT A.I. Powered Chatbot and Popularization.pdf
StanleySamson1
 
BroadLink Cloud Service introduction.pdf
BroadLink Cloud Service introduction.pdf
DevendraDwivdi1
 
The ARUBA Kind of new Proposal Umum .pptx
The ARUBA Kind of new Proposal Umum .pptx
andiwarneri
 
原版澳洲斯文本科技大学毕业证(SUT毕业证书)如何办理
原版澳洲斯文本科技大学毕业证(SUT毕业证书)如何办理
taqyed
 
Almos Entirely Correct Mixing with Apps to Voting
Almos Entirely Correct Mixing with Apps to Voting
gapati2964
 
PROCESS FOR CREATION OF BUSINESS PARTNER IN SAP
PROCESS FOR CREATION OF BUSINESS PARTNER IN SAP
AhmadAli716831
 
Transmission Control Protocol (TCP) and Starlink
Transmission Control Protocol (TCP) and Starlink
APNIC
 
最新版美国特拉华大学毕业证(UDel毕业证书)原版定制
最新版美国特拉华大学毕业证(UDel毕业证书)原版定制
taqyea
 
Paper: The World Game (s) Great Redesign.pdf
Paper: The World Game (s) Great Redesign.pdf
Steven McGee
 
BitRecover OST to PST Converter Software
BitRecover OST to PST Converter Software
antoniogosling01
 

Learn how to build decentralized and serverless html5 applications with embark js, ethereum, dat and ipfs

  • 1. LEARN HOW TO BUILD 
 DECENTRALIZED AND SERVERLESS 
 HTML5 APPLICATIONS 
 WITH EMBARKJS, ETHEREUM, DAT AND IPFS April 13th 2018 – Codemotion, Rome A l e s s a n d r o C o n f e t t i
  • 2. 2 image from the work of Paul Baran, On Distributed Communications Networks 1964 Alessandro Confetti - April 13th 2018 – Codemotion, Rome
  • 3. 3 Image from Evolving terminology with evolved technology: decentralized versus distributed December 4, 2015 Alessandro Confetti - April 13th 2018 – Codemotion, Rome
  • 4. 4 Images from Evolving terminology pt. 2: topology vs ownership January 10, 2016 Alessandro Confetti - April 13th 2018 – Codemotion, Rome
  • 5. 2014 AWS Lamba Elastic Function computing 2009 Node.js 2010 AKKA Asyncronous WWW 2004 AWS Elastic services 1993 CGI 1995 MySQL Dynamic WWW Static WWW 1990 HTTP/HTML From decentralised arpanet to… 5 Alessandro Confetti - April 13th 2018 – Codemotion, Rome 2017 worldwide (de)centralised serverless computing ARPANET 1984 DNS 1974 TCP 1969 Internet foundations
  • 6. BigchainDB Blockchain based database 20162015 Ethereum Trustless (pure) P2P function computingDAT IPFS Pure P2P storage sevice 2013 20142011 Namecoin Blockchain based naming service 2009 Bitcoin Trustless pure P2P payment service Worldwide P2P network 1999 NAPSTER 2001 From usenet to… 6 2017 P2P computing Self-organised decentralised service USENET 1979 Alessandro Confetti - April 13th 2018 – Codemotion, Rome
  • 7. AWS LAMBDA SERVERLESS COMPUTING 7 Image from AWS Lambda official page Alessandro Confetti - April 13th 2018 – Codemotion, Rome
  • 8. WEB SERVER Storage 1990 STATIC WEB-SITE 8 CLIENT http Index.html Alessandro Confetti - April 13th 2018 – Codemotion, Rome
  • 10. EU PROXY WEB SERVER Storage WEB SERVER Storage LOAD BALANCER 2017 STATIC WEB-SITE 10 CLIENT http Index.html …US WEB SERVER Storage WEB SERVER Storage LOAD BALANCER WEB SERVER Storage WEB SERVER Storage LOAD BALANCER Alessandro Confetti - April 13th 2018 – Codemotion, Rome
  • 11. P2P SERVERLESS COMPUTING 11 ???? Alessandro Confetti - April 13th 2018 – Codemotion, Rome
  • 12. 12 Alessandro Confetti - April 13th 2018 – Codemotion, Rome
  • 13. Block 1Block … Block 2 Block 4 ipfs 2017 IPFS STATIC WEB-SITE 13 CLIENT IPFS NODE IPFS NODE IPFS NODE IPFS NODE Storage HTTP/IPFS 
 GATEWAY Storage Index.html block 1 block 4 block 7 block 2 block 5 block 8 block 3 block 6 block 9 Storage StorageStorage Index.html http ipfs Index.html Alessandro Confetti - April 13th 2018 – Codemotion, Rome
  • 14. HOW TO INSTALL IPFS 14 wget https://dist.ipfs.io/go-ipfs/v0.4.14/go-ipfs_v0.4.14_linux-amd64.tar.gz tar -xvfz go-ipfs_v0.4.14_linux-amd64.tar.gz cd go-ipfs ./install.sh ipfs init ipfs daemon http://localhost:5001/webui Alessandro Confetti - April 13th 2018 – Codemotion, Rome
  • 15. 15 Alessandro Confetti - April 13th 2018 – Codemotion, Rome
  • 16. 16 Alessandro Confetti - April 13th 2018 – Codemotion, Rome
  • 17. HOW TO INSTALL DAT 17 npm install -g dat mkdir MyData cd MyData dat create dat share —-http http://localhost:8080 Alessandro Confetti - April 13th 2018 – Codemotion, Rome
  • 18. 18 Alessandro Confetti - April 13th 2018 – Codemotion, Rome
  • 19. 19 Alessandro Confetti - April 13th 2018 – Codemotion, Rome
  • 20. 20 Image and article about the left-pad incident from The Register Alessandro Confetti - April 13th 2018 – Codemotion, Rome
  • 21. 21 STATIC HTTP SITE STATIC IPFS/DAT SITE Bandwidth costs and capacity 
 is upon the site Bandwidth costs and capacity 
 is upon the client proxies, load balancers, 
 clusters and zones must be 
 configured and maintained The P2P network is self-organising Censorship can be easily enforced 
 thought DNS and IP Filtering Content is resilient 
 to DSN and IP filtering 
 or deletion Alessandro Confetti - April 13th 2018 – Codemotion, Rome
  • 22. 22 Alessandro Confetti - April 13th 2018 – Codemotion, Rome
  • 23. P2P SERVERLESS COMPUTING 23 IPFS/DAT BLOCKCHAIN ETHEREUM Front-end code for weather app is hosted on IPFS or DAT Ethereum contract is executed on the EVM and returns data back to user (eventually storing data on the blockchain) The smart contract is triggered by the user or an external oracle Alessandro Confetti - April 13th 2018 – Codemotion, Rome
  • 24. 24 Alessandro Confetti - April 13th 2018 – Codemotion, Rome
  • 25. 25 Alessandro Confetti - April 13th 2018 – Codemotion, Rome
  • 26. HOW TO INSTALL EMBARKJS 26 # install ethereum wget https://gethstore.blob.core.windows.net/builds/geth-darwin-amd64-1.6.0- facc47cb.tar.gz tar -xvfz geth-darwin-amd64-1.6.0-facc47cb.tar.gz sudo mv geth-darwin-amd64-1.6.0-facc47cb/geth /usr/local/bin/geth # install EmbarkJS sudo npm -g install embark embark demo # install compatible ipfs version inside demo folder mkdir demo/bin cd demo/bin wget https://dist.ipfs.io/go-ipfs/v0.4.11/go-ipfs_v0.4.11_darwin-amd64.tar.gz tar -xvfz go-ipfs_v0.4.11_darwin-amd64.tar.gz ./ipfs init Alessandro Confetti - April 13th 2018 – Codemotion, Rome
  • 27. 27 (DE)CENTRALISED 
 SERVLESS COMPUTING DISTRIBUTED
 SERVLESS COMPUTING you don’t have to manage servers or services, 
 neither to worry how to scale or allocate them… 
 as long are you able to pay 
 or to cope with the provider’s rules you don’t have to manage servers or services, 
 neither to worry how to scale or allocate them… 
 but you can help build the network
 and been rewarded for it Trust is upon the the provider Trust is upon the network Resilience and scalability 
 through (de)centralised
 clustering, sharding, zoning… Resilience and scalability 
 through distributed networks Alessandro Confetti - April 13th 2018 – Codemotion, Rome
  • 28. WE ARE HIRING IN ITALY! i n f o - i t @ t h o u g h t w o r k s . c o m TECNOLOGY RADAR VOL17 https://info.thoughtworks.com/technology-radar-subscription.html
  • 29. $ tail -f questions 29 Alessandro Confetti [email protected] twitter @zigolab 
 blog http://blog.zigolab.it