Alessandro Confetti - Learn how to build decentralized and serverless html5 applications with...
-
Upload
codemotion -
Category
Technology
-
view
181 -
download
0
Transcript of Alessandro Confetti - Learn how to build decentralized and serverless html5 applications with...
LEARN HOW TO BUILD DECENTRALIZED AND SERVERLESS
HTML5 APPLICATIONS WITH EMBARKJS, ETHEREUM, AND IPFS
November 11th 2017 – Comemotion, Milan
A l e s s a n d r o C o n f e t t i
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…
2
Alessandro Confetti - November 11th 2017 – Comemotion, Milan
2017
worldwide (de)centralised serverless computing
ARPANET
1984
DNS
1974
TCP
1969
Internet foundations
3
Alessandro Confetti - November 11th 2017 – Comemotion, Milan
image from the work of Paul Baran, On Distributed Communications Networks 1964
4
Image from Evolving terminology with evolved technology: decentralized versus distributed December 4, 2015
Alessandro Confetti - November 11th 2017 – Comemotion, Milan
5
Images from Evolving terminology pt. 2: topology vs ownership January 10, 2016
Alessandro Confetti - November 11th 2017 – Comemotion, Milan
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
Alessandro Confetti - November 11th 2017 – Comemotion, Milan
P2P computing
Self-organised decentralised service
USENET
1979
WEB SERVER
Sto
rag
e
1990 STATIC WEB-SITE
7
CLIENT
Alessandro Confetti - November 11th 2017 – Comemotion, Milan
httpIndex.html
LOAD BALANCER
WEB SERVER
Sto
rag
e
WEB SERVER
Sto
rag
e
2000 STATIC WEB-SITE
8
CLIENT
Alessandro Confetti - November 11th 2017 – Comemotion, Milan
httpIndex.html
EU
PROXY
WEB SERVER
Sto
rag
e
WEB SERVER
Sto
rag
eLOAD BALANCER
2017 STATIC WEB-SITE
9
CLIENT
Alessandro Confetti - November 11th 2017 – Comemotion, Milan
httpIndex.html
…US
WEB SERVER
Sto
rag
e
WEB SERVER
Sto
rag
e
LOAD BALANCER
WEB SERVER
Sto
rag
e
WEB SERVER
Sto
rag
e
LOAD BALANCER
Block 1Block …
Block 2
Block 4
ipfs
2017 IPFS STATIC WEB-SITE
10
CLIENT
IPFS NODE
IPFS NODE
IPFS NODE
IPFS NODE
Alessandro Confetti - November 11th 2017 – Comemotion, Milan
Sto
rag
e
HTTP/IPFS GATEWAY
Storage
Index.html
block 1
block4
block 7
block 2
block 5
block 8
block3
block 6
block 9
Sto
rag
e
Sto
rag
eS
tora
ge
Index.html
http
ipfs
Index.html
HOW TO INSTALL IPFS
11
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
sudo mv go-ipfs/ipfs /usr/local/bin/ipfs
ipfs init
ipfs daemon
http://localhost:5001/webui
Alessandro Confetti - November 11th 2017 – Comemotion, Milan
12
Image and article about the left-pad incident from The Register
13
STATIC HTTP SITE STATIC IPFS 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 - November 11th 2017 – Comemotion, Milan
AWS LAMBDA SERVERLESS COMPUTING
14
Alessandro Confetti - November 11th 2017 – Comemotion, Milan
Image from AWS Lambda official page
P2P SERVERLESS COMPUTING
15
Alessandro Confetti - November 11th 2017 – Comemotion, Milan
IPFS BLOCKCHAIN
ETHEREUMFront-end code for
weather app is hosted on IPFS
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
HOW TO INSTALL EMBARKJS
16
# 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
Alessandro Confetti - November 11th 2017 – Comemotion, Milan
17
(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 - November 11th 2017 – Comemotion, Milan
$ tail -f questions
18
Alessandro Confetti
twitter @zigolab
blog http://blog.zigolab.it
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 VOL17https://info.thoughtworks.com/technology-radar-subscription.html