Alessandro Confetti - Learn how to build decentralized and serverless html5 applications with...

19
LEARN HOW TO BUILD DECENTRALIZED AND SERVERLESS HTML5 APPLICATIONS WITH EMBARKJS, ETHEREUM, AND IPFS November 11 th 2017 Comemotion, Milan Alessandro Confetti

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

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

[email protected]

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