SlideShare a Scribd company logo
LEARN HOW TO BUILD 

DECENTRALIZED AND SERVERLESS 

HTML5 APPLICATIONS 

WITH EMBARKJS, ETHEREUM, DAT AND IPFS
May 9th 2018 – Codemotion, Amsterdam
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 - May 9th 2018 – Codemotion, Amsterdam
From decentralised arpanet…to worldwide (de)centralised serverless computing
1970
Arpanet (1969)
Distributed and resilient network
1980
Usenet (1979)
Self-organised decentralised service
1985
DNS (1984)
domain name services
1990
HTTP/HTML (1990)
Static WWW
1995
CGI (1993)
Dynamic WWW
MySQL (1995)
Dynamic WWW
2005
AWS (2004)
Elastic VMs and services
2015
AWS Lambda (2014)
Elastic function computing
2017 20182000
Napster (1999)
Worldwide P2P network
2010
Bitcoin (2009)
Trustless pure P2P payment network
2011
Namecoin (2011)
Blockchain-based naming service
2012 2013
DAT (2013)
Pure P2P storage network
2014
IPFS (2014)
Pure P2P storage network
Ethereum (2015)
Trustless P2P Function computing
2016
BigchainDB (2016)
Blockchain-based DB
Blockstack (2013)
Pure P2P network for Dapps
1975
TCP/IP (1974)
reliable, ordered, and error-checked protocol
Node.js (2009)
Asynchronous WWW
AKKA (2010)
Asynchronous WWW
Alessandro Confetti - May 9th 2018 – Codemotion, Amsterdam
4
Images from Evolving terminology pt. 2: topology vs ownership January 10, 2016
Alessandro Confetti - May 9th 2018 – Codemotion, Amsterdam
AWS LAMBDA SERVERLESS COMPUTING
5
Image from AWS Lambda official page
Alessandro Confetti - May 9th 2018 – Codemotion, Amsterdam
WEB
SERVER
Storage
1990 STATIC WEB-SITE
6
CLIENT
http
Index.html
Alessandro Confetti - May 9th 2018 – Codemotion, Amsterdam
LOAD
BALANCER
WEB
SERVER
Storage
WEB
SERVER
Storage
2000 STATIC WEB-SITE
7
CLIENT
http
Index.html
Alessandro Confetti - May 9th 2018 – Codemotion, Amsterdam
EU
PROXY
WEB
SERVER
Storage
WEB
SERVER
Storage
LOAD BALANCER
2017 STATIC WEB-SITE
8
CLIENT
http
Index.html
…US
WEB
SERVER
Storage
WEB
SERVER
Storage
LOAD BALANCER
WEB
SERVER
Storage
WEB
SERVER
Storage
LOAD BALANCER
Alessandro Confetti - May 9th 2018 – Codemotion, Amsterdam
P2P SERVERLESS COMPUTING
9
????
Alessandro Confetti - May 9th 2018 – Codemotion, Amsterdam
10
Alessandro Confetti - April 13th 2018 – Codemotion, Rome
Block 1Block …
Block 2
Block 4
ipfs
2017 IPFS STATIC WEB-SITE
11
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 - May 9th 2018 – Codemotion, Amsterdam
HOW TO INSTALL IPFS
12
wget https://dist.ipfs.io/go-ipfs/v0.4.14/go-ipfs_v0.4.14_linux-amd64.tar.gz
tar -xvf go-ipfs_v0.4.14_linux-amd64.tar.gz
cd go-ipfs
./install.sh
ipfs init
ipfs daemon
http://localhost:5001/webui
Alessandro Confetti - May 9th 2018 – Codemotion, Amsterdam
13
Alessandro Confetti - April 13th 2018 – Codemotion, Rome
Block 1Block …
Block 2
Block 4
IPFS COMPANION PLUGIN
14
IPFS
NODE
IPFS
NODE
IPFS
NODE
IPFS
NODE
Storage
IPFS 

Compainon
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 - May 9th 2018 – Codemotion, Amsterdam
HTML 

Renderer
Web Browser
15
Alessandro Confetti - April 13th 2018 – Codemotion, Rome
HOW TO INSTALL DAT
16
npm install -g dat
mkdir MyData
cd MyData
dat create
dat share —-http
http://localhost:8080
Alessandro Confetti - May 9th 2018 – Codemotion, Amsterdam
17
Alessandro Confetti - April 13th 2018 – Codemotion, Rome
18
Alessandro Confetti - April 13th 2018 – Codemotion, Rome
19
Image and article about the left-pad incident from The Register
Alessandro Confetti - May 9th 2018 – Codemotion, Amsterdam
20
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 - May 9th 2018 – Codemotion, Amsterdam
P2P SERVERLESS COMPUTING
21
????IPFS/DAT
Front-end code for
weather app is hosted
on IPFS or DAT
????
????
Alessandro Confetti - May 9th 2018 – Codemotion, Amsterdam
22
Alessandro Confetti - April 13th 2018 – Codemotion, Rome
23
Alessandro Confetti - April 13th 2018 – Codemotion, Rome
P2P SERVERLESS COMPUTING
24
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 - May 9th 2018 – Codemotion, Amsterdam
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
# add CORS to ipfs
ipfs config --json API.HTTPHeaders.Access-Control-Allow-Origin "["http://
localhost:8000"]"
ipfs config --json API.HTTPHeaders.Access-Control-Allow-Credentials
"["true"]"
ipfs config --json API.HTTPHeaders.Access-Control-Allow-Methods "["PUT",
"POST", "GET"]"
Alessandro Confetti - May 9th 2018 – Codemotion, Amsterdam
27
Alessandro Confetti - April 13th 2018 – Codemotion, Rome
EthPhoto by Mudit Bachhawat
28
(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 - May 9th 2018 – Codemotion, Amsterdam
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 VOL18
https://info.thoughtworks.com/technology-radar-subscription.html
$ tail -f questions
30
Alessandro Confetti
aconfet@thoughtworks.com
twitter @zigolab 

blog http://blog.zigolab.it

More Related Content

PDF
IPFS: A Whole New World
PPTX
PDF
Minerva: Drill Storage Plugin for IPFS
PDF
IPFS introduction
PDF
IPFS: The Permanent Web
PDF
Data Structures in and on IPFS
PDF
Decentralized storage IPFS & Ulord
PDF
Indexing Decentralized Data with Ethereum, IPFS & The Graph
IPFS: A Whole New World
Minerva: Drill Storage Plugin for IPFS
IPFS introduction
IPFS: The Permanent Web
Data Structures in and on IPFS
Decentralized storage IPFS & Ulord
Indexing Decentralized Data with Ethereum, IPFS & The Graph

What's hot (20)

PDF
IPWB and IPFS at WAC2017
PPTX
InterPlanetary File System (IPFS)
PDF
Redecentralizing the Web: IPFS and Filecoin
PDF
Node.js Interactive
PDF
RDM#2- The Distributed Web
ODP
Kkeithley ufonfs-gluster summit
PDF
Architecture of the Upcoming OrangeFS v3 Distributed Parallel File System
ODP
Developing apps and_integrating_with_gluster_fs_-_libgfapi
ODP
Scale out backups-with_bareos_and_gluster
PPT
Unit 3 file management
ODP
20160401 Gluster-roadmap
PPTX
wget, curl and scp
PDF
Linux Kernel Development
PPTX
05.m3 cms list-ofwebserver
PDF
Open vSwitch Introduction
PDF
Glusterfs and openstack
PDF
RGW S3: Features vs deep compatibility - Robin Johnson
PPTX
High performace network of Cloud Native Taiwan User Group
PPTX
Docker summit : Docker Networking Control-plane & Data-Plane
PDF
Integration with hdfs using WebDFS and NFS
IPWB and IPFS at WAC2017
InterPlanetary File System (IPFS)
Redecentralizing the Web: IPFS and Filecoin
Node.js Interactive
RDM#2- The Distributed Web
Kkeithley ufonfs-gluster summit
Architecture of the Upcoming OrangeFS v3 Distributed Parallel File System
Developing apps and_integrating_with_gluster_fs_-_libgfapi
Scale out backups-with_bareos_and_gluster
Unit 3 file management
20160401 Gluster-roadmap
wget, curl and scp
Linux Kernel Development
05.m3 cms list-ofwebserver
Open vSwitch Introduction
Glusterfs and openstack
RGW S3: Features vs deep compatibility - Robin Johnson
High performace network of Cloud Native Taiwan User Group
Docker summit : Docker Networking Control-plane & Data-Plane
Integration with hdfs using WebDFS and NFS
Ad

Similar to Learn how to build decentralized and serverless html5 applications with EmbarkJS, Ethereum, IPFS and DAT - Alessandro Confetti - Codemotion Amsterdam 2018 (20)

PDF
Learn how to build decentralized and serverless html5 applications with Embar...
PDF
Learn how to build decentralized and serverless html5 applications with embar...
PPTX
Alessandro Confetti - Learn how to build decentralized and serverless html5 a...
PPT
Internet innovation with Multipath TCP
PDF
Programming IoT with Docker: How to Start?
PDF
Create a-strong-two-factors-authentication-device-for-less-than-chf-100
PDF
Installing Component Pack 6.0.0.6
PPT
Ethereum introduction
PDF
Scaleable PHP Applications in Kubernetes
PPTX
How to Use GSM/3G/4G in Embedded Linux Systems
PPTX
Building decentralized applications (dapps) on Ethereum - Eva Shon, & Igor Li...
PDF
EC2 Storage for Docker 150526b
PPTX
Gluing the IoT world with Java and LoRaWAN
PDF
IoT Edge Data Processing with NVidia Jetson Nano oct 3 2019
PDF
IDNOG 4 Lightning Talks - Documenting your Network in 3 Simple Steps
PDF
LT04 IDNOG04 - Affan Basalamah (ITB) - Documenting your network
PDF
容器與IoT端點應用
PDF
Lightweight 4-over-6: One step further Dual-Stack Lite Networks (RIPE 76)
PDF
NetFlow Monitoring for Cyber Threat Defense
PPTX
Web3 File Storage Options
Learn how to build decentralized and serverless html5 applications with Embar...
Learn how to build decentralized and serverless html5 applications with embar...
Alessandro Confetti - Learn how to build decentralized and serverless html5 a...
Internet innovation with Multipath TCP
Programming IoT with Docker: How to Start?
Create a-strong-two-factors-authentication-device-for-less-than-chf-100
Installing Component Pack 6.0.0.6
Ethereum introduction
Scaleable PHP Applications in Kubernetes
How to Use GSM/3G/4G in Embedded Linux Systems
Building decentralized applications (dapps) on Ethereum - Eva Shon, & Igor Li...
EC2 Storage for Docker 150526b
Gluing the IoT world with Java and LoRaWAN
IoT Edge Data Processing with NVidia Jetson Nano oct 3 2019
IDNOG 4 Lightning Talks - Documenting your Network in 3 Simple Steps
LT04 IDNOG04 - Affan Basalamah (ITB) - Documenting your network
容器與IoT端點應用
Lightweight 4-over-6: One step further Dual-Stack Lite Networks (RIPE 76)
NetFlow Monitoring for Cyber Threat Defense
Web3 File Storage Options
Ad

More from Codemotion (20)

PDF
Fuzz-testing: A hacker's approach to making your code more secure | Pascal Ze...
PDF
Pompili - From hero to_zero: The FatalNoise neverending story
PPTX
Pastore - Commodore 65 - La storia
PPTX
Pennisi - Essere Richard Altwasser
PPTX
Michel Schudel - Let's build a blockchain... in 40 minutes! - Codemotion Amst...
PPTX
Richard Süselbeck - Building your own ride share app - Codemotion Amsterdam 2019
PPTX
Eward Driehuis - What we learned from 20.000 attacks - Codemotion Amsterdam 2019
PPTX
Francesco Baldassarri - Deliver Data at Scale - Codemotion Amsterdam 2019 -
PDF
Martin Förtsch, Thomas Endres - Stereoscopic Style Transfer AI - Codemotion A...
PDF
Melanie Rieback, Klaus Kursawe - Blockchain Security: Melting the "Silver Bul...
PDF
Angelo van der Sijpt - How well do you know your network stack? - Codemotion ...
PDF
Lars Wolff - Performance Testing for DevOps in the Cloud - Codemotion Amsterd...
PDF
Sascha Wolter - Conversational AI Demystified - Codemotion Amsterdam 2019
PDF
Michele Tonutti - Scaling is caring - Codemotion Amsterdam 2019
PPTX
Pat Hermens - From 100 to 1,000+ deployments a day - Codemotion Amsterdam 2019
PPTX
James Birnie - Using Many Worlds of Compute Power with Quantum - Codemotion A...
PDF
Don Goodman-Wilson - Chinese food, motor scooters, and open source developmen...
PDF
Pieter Omvlee - The story behind Sketch - Codemotion Amsterdam 2019
PDF
Dave Farley - Taking Back “Software Engineering” - Codemotion Amsterdam 2019
PDF
Joshua Hoffman - Should the CTO be Coding? - Codemotion Amsterdam 2019
Fuzz-testing: A hacker's approach to making your code more secure | Pascal Ze...
Pompili - From hero to_zero: The FatalNoise neverending story
Pastore - Commodore 65 - La storia
Pennisi - Essere Richard Altwasser
Michel Schudel - Let's build a blockchain... in 40 minutes! - Codemotion Amst...
Richard Süselbeck - Building your own ride share app - Codemotion Amsterdam 2019
Eward Driehuis - What we learned from 20.000 attacks - Codemotion Amsterdam 2019
Francesco Baldassarri - Deliver Data at Scale - Codemotion Amsterdam 2019 -
Martin Förtsch, Thomas Endres - Stereoscopic Style Transfer AI - Codemotion A...
Melanie Rieback, Klaus Kursawe - Blockchain Security: Melting the "Silver Bul...
Angelo van der Sijpt - How well do you know your network stack? - Codemotion ...
Lars Wolff - Performance Testing for DevOps in the Cloud - Codemotion Amsterd...
Sascha Wolter - Conversational AI Demystified - Codemotion Amsterdam 2019
Michele Tonutti - Scaling is caring - Codemotion Amsterdam 2019
Pat Hermens - From 100 to 1,000+ deployments a day - Codemotion Amsterdam 2019
James Birnie - Using Many Worlds of Compute Power with Quantum - Codemotion A...
Don Goodman-Wilson - Chinese food, motor scooters, and open source developmen...
Pieter Omvlee - The story behind Sketch - Codemotion Amsterdam 2019
Dave Farley - Taking Back “Software Engineering” - Codemotion Amsterdam 2019
Joshua Hoffman - Should the CTO be Coding? - Codemotion Amsterdam 2019

Recently uploaded (20)

PDF
Advanced methodologies resolving dimensionality complications for autism neur...
PDF
Encapsulation_ Review paper, used for researhc scholars
PDF
Reach Out and Touch Someone: Haptics and Empathic Computing
PDF
Chapter 3 Spatial Domain Image Processing.pdf
PPTX
sap open course for s4hana steps from ECC to s4
PDF
Review of recent advances in non-invasive hemoglobin estimation
PDF
gpt5_lecture_notes_comprehensive_20250812015547.pdf
DOCX
The AUB Centre for AI in Media Proposal.docx
PPTX
KOM of Painting work and Equipment Insulation REV00 update 25-dec.pptx
PPTX
Digital-Transformation-Roadmap-for-Companies.pptx
PDF
Agricultural_Statistics_at_a_Glance_2022_0.pdf
PPT
“AI and Expert System Decision Support & Business Intelligence Systems”
PDF
Machine learning based COVID-19 study performance prediction
PDF
Blue Purple Modern Animated Computer Science Presentation.pdf.pdf
PDF
Network Security Unit 5.pdf for BCA BBA.
PPTX
Machine Learning_overview_presentation.pptx
PDF
cuic standard and advanced reporting.pdf
PDF
Diabetes mellitus diagnosis method based random forest with bat algorithm
PPTX
Cloud computing and distributed systems.
PPTX
VMware vSphere Foundation How to Sell Presentation-Ver1.4-2-14-2024.pptx
Advanced methodologies resolving dimensionality complications for autism neur...
Encapsulation_ Review paper, used for researhc scholars
Reach Out and Touch Someone: Haptics and Empathic Computing
Chapter 3 Spatial Domain Image Processing.pdf
sap open course for s4hana steps from ECC to s4
Review of recent advances in non-invasive hemoglobin estimation
gpt5_lecture_notes_comprehensive_20250812015547.pdf
The AUB Centre for AI in Media Proposal.docx
KOM of Painting work and Equipment Insulation REV00 update 25-dec.pptx
Digital-Transformation-Roadmap-for-Companies.pptx
Agricultural_Statistics_at_a_Glance_2022_0.pdf
“AI and Expert System Decision Support & Business Intelligence Systems”
Machine learning based COVID-19 study performance prediction
Blue Purple Modern Animated Computer Science Presentation.pdf.pdf
Network Security Unit 5.pdf for BCA BBA.
Machine Learning_overview_presentation.pptx
cuic standard and advanced reporting.pdf
Diabetes mellitus diagnosis method based random forest with bat algorithm
Cloud computing and distributed systems.
VMware vSphere Foundation How to Sell Presentation-Ver1.4-2-14-2024.pptx

Learn how to build decentralized and serverless html5 applications with EmbarkJS, Ethereum, IPFS and DAT - Alessandro Confetti - Codemotion Amsterdam 2018

  • 1. LEARN HOW TO BUILD 
 DECENTRALIZED AND SERVERLESS 
 HTML5 APPLICATIONS 
 WITH EMBARKJS, ETHEREUM, DAT AND IPFS May 9th 2018 – Codemotion, Amsterdam 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 - May 9th 2018 – Codemotion, Amsterdam
  • 3. From decentralised arpanet…to worldwide (de)centralised serverless computing 1970 Arpanet (1969) Distributed and resilient network 1980 Usenet (1979) Self-organised decentralised service 1985 DNS (1984) domain name services 1990 HTTP/HTML (1990) Static WWW 1995 CGI (1993) Dynamic WWW MySQL (1995) Dynamic WWW 2005 AWS (2004) Elastic VMs and services 2015 AWS Lambda (2014) Elastic function computing 2017 20182000 Napster (1999) Worldwide P2P network 2010 Bitcoin (2009) Trustless pure P2P payment network 2011 Namecoin (2011) Blockchain-based naming service 2012 2013 DAT (2013) Pure P2P storage network 2014 IPFS (2014) Pure P2P storage network Ethereum (2015) Trustless P2P Function computing 2016 BigchainDB (2016) Blockchain-based DB Blockstack (2013) Pure P2P network for Dapps 1975 TCP/IP (1974) reliable, ordered, and error-checked protocol Node.js (2009) Asynchronous WWW AKKA (2010) Asynchronous WWW Alessandro Confetti - May 9th 2018 – Codemotion, Amsterdam
  • 4. 4 Images from Evolving terminology pt. 2: topology vs ownership January 10, 2016 Alessandro Confetti - May 9th 2018 – Codemotion, Amsterdam
  • 5. AWS LAMBDA SERVERLESS COMPUTING 5 Image from AWS Lambda official page Alessandro Confetti - May 9th 2018 – Codemotion, Amsterdam
  • 6. WEB SERVER Storage 1990 STATIC WEB-SITE 6 CLIENT http Index.html Alessandro Confetti - May 9th 2018 – Codemotion, Amsterdam
  • 8. EU PROXY WEB SERVER Storage WEB SERVER Storage LOAD BALANCER 2017 STATIC WEB-SITE 8 CLIENT http Index.html …US WEB SERVER Storage WEB SERVER Storage LOAD BALANCER WEB SERVER Storage WEB SERVER Storage LOAD BALANCER Alessandro Confetti - May 9th 2018 – Codemotion, Amsterdam
  • 9. P2P SERVERLESS COMPUTING 9 ???? Alessandro Confetti - May 9th 2018 – Codemotion, Amsterdam
  • 10. 10 Alessandro Confetti - April 13th 2018 – Codemotion, Rome
  • 11. Block 1Block … Block 2 Block 4 ipfs 2017 IPFS STATIC WEB-SITE 11 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 - May 9th 2018 – Codemotion, Amsterdam
  • 12. HOW TO INSTALL IPFS 12 wget https://dist.ipfs.io/go-ipfs/v0.4.14/go-ipfs_v0.4.14_linux-amd64.tar.gz tar -xvf go-ipfs_v0.4.14_linux-amd64.tar.gz cd go-ipfs ./install.sh ipfs init ipfs daemon http://localhost:5001/webui Alessandro Confetti - May 9th 2018 – Codemotion, Amsterdam
  • 13. 13 Alessandro Confetti - April 13th 2018 – Codemotion, Rome
  • 14. Block 1Block … Block 2 Block 4 IPFS COMPANION PLUGIN 14 IPFS NODE IPFS NODE IPFS NODE IPFS NODE Storage IPFS 
 Compainon 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 - May 9th 2018 – Codemotion, Amsterdam HTML 
 Renderer Web Browser
  • 15. 15 Alessandro Confetti - April 13th 2018 – Codemotion, Rome
  • 16. HOW TO INSTALL DAT 16 npm install -g dat mkdir MyData cd MyData dat create dat share —-http http://localhost:8080 Alessandro Confetti - May 9th 2018 – Codemotion, Amsterdam
  • 17. 17 Alessandro Confetti - April 13th 2018 – Codemotion, Rome
  • 18. 18 Alessandro Confetti - April 13th 2018 – Codemotion, Rome
  • 19. 19 Image and article about the left-pad incident from The Register Alessandro Confetti - May 9th 2018 – Codemotion, Amsterdam
  • 20. 20 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 - May 9th 2018 – Codemotion, Amsterdam
  • 21. P2P SERVERLESS COMPUTING 21 ????IPFS/DAT Front-end code for weather app is hosted on IPFS or DAT ???? ???? Alessandro Confetti - May 9th 2018 – Codemotion, Amsterdam
  • 22. 22 Alessandro Confetti - April 13th 2018 – Codemotion, Rome
  • 23. 23 Alessandro Confetti - April 13th 2018 – Codemotion, Rome
  • 24. P2P SERVERLESS COMPUTING 24 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 - May 9th 2018 – Codemotion, Amsterdam
  • 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 # add CORS to ipfs ipfs config --json API.HTTPHeaders.Access-Control-Allow-Origin "["http:// localhost:8000"]" ipfs config --json API.HTTPHeaders.Access-Control-Allow-Credentials "["true"]" ipfs config --json API.HTTPHeaders.Access-Control-Allow-Methods "["PUT", "POST", "GET"]" Alessandro Confetti - May 9th 2018 – Codemotion, Amsterdam
  • 27. 27 Alessandro Confetti - April 13th 2018 – Codemotion, Rome EthPhoto by Mudit Bachhawat
  • 28. 28 (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 - May 9th 2018 – Codemotion, Amsterdam
  • 29. 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 VOL18 https://info.thoughtworks.com/technology-radar-subscription.html
  • 30. $ tail -f questions 30 Alessandro Confetti aconfet@thoughtworks.com twitter @zigolab 
 blog http://blog.zigolab.it