[Codemotion](https://milan2017.codemotionworld.com), Milan 11/11/2017
Do you have an idea for a startup and don't want to pay for scaling it up? Forget about bandwidth problems, servers to install and pay for, with the power of IPFS and the blockchain.
In this talk, we will explore how to build an HTML5 DAPP (distributed application) with EmbarkJS, and figure out how to rethink servers, storage, messaging, data and payments in a distributed and decentralised way with the help of Ethereum's smart contracts and IPFS distributed storage.
Discover more at http://blog.zigolab.it
Beginners Guide to TikTok for Search - Rachel Pearson - We are Tilt __ Bright...
Learn how to build decentralized and serverless html5 applications with embark js, ethereum and ipfs
1. LEARN HOW TO BUILD
DECENTRALIZED AND SERVERLESS
HTML5 APPLICATIONS
WITH EMBARKJS, ETHEREUM, AND IPFS
November 11th 2017 – Codemotion, Milan
A l e s s a n d r o C o n f e t t i
2. 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 – Codemotion, Milan
2017
worldwide (de)centralised serverless computing
ARPANET
1984
DNS
1974
TCP
1969
Internet foundations
3. 3
Alessandro Confetti - November 11th 2017 – Codemotion, Milan
image from the work of Paul Baran, On Distributed Communications Networks 1964
4. 4
Image from Evolving terminology with evolved technology: decentralized versus distributed December 4, 2015
Alessandro Confetti - November 11th 2017 – Codemotion, Milan
5. 5
Images from Evolving terminology pt. 2: topology vs ownership January 10, 2016
Alessandro Confetti - November 11th 2017 – Codemotion, Milan
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
Alessandro Confetti - November 11th 2017 – Codemotion, Milan
P2P computing
Self-organised decentralised service
USENET
1979
11. 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 – Codemotion, Milan
12. 12
Image and article about the left-pad incident from The Register
Alessandro Confetti - November 11th 2017 – Codemotion, Milan
13. 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 – Codemotion, Milan
14. AWS LAMBDA SERVERLESS COMPUTING
14
Alessandro Confetti - November 11th 2017 – Codemotion, Milan
Image from AWS Lambda official page
15. P2P SERVERLESS COMPUTING
15
Alessandro Confetti - November 11th 2017 – Codemotion, Milan
IPFS BLOCKCHAIN
ETHEREUM
Front-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
16. 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 – Codemotion, Milan
17. 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 – Codemotion, Milan
19. 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