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

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 HATFOSDEM 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 2009MOSP 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 2018Building 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 HTML5Create 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, PodsNetworks, Linux, Containers, Pods
Networks, Linux, Containers, Pods
Matt Turner
 
Istio - The life of a packet
Istio - The life of a packetIstio - The life of a packet
Istio - The life of a packet
Matt Turner
 
FOSDEM 2012 vcsh talk
FOSDEM 2012 vcsh talkFOSDEM 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 2020Teledoom 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 BernittCI For Embedded Software - Lucas Jenss & Folker Bernitt
CI For Embedded Software - Lucas Jenss & Folker Bernitt
Thoughtworks
 
【IoTLT一関】IoT機器のコーディングをVSCode Remoteで快適にする
【IoTLT一関】IoT機器のコーディングをVSCode Remoteで快適にする【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)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...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 HATFOSDEM 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 2018Building 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 HTML5Create 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, PodsNetworks, Linux, Containers, Pods
Networks, Linux, Containers, Pods
Matt Turner
 
Istio - The life of a packet
Istio - The life of a packetIstio - The life of a packet
Istio - The life of a packet
Matt Turner
 
FOSDEM 2012 vcsh talk
FOSDEM 2012 vcsh talkFOSDEM 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 2020Teledoom 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 BernittCI For Embedded Software - Lucas Jenss & Folker Bernitt
CI For Embedded Software - Lucas Jenss & Folker Bernitt
Thoughtworks
 
【IoTLT一関】IoT機器のコーディングをVSCode Remoteで快適にする
【IoTLT一関】IoT機器のコーディングをVSCode Remoteで快適にする【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)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...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 EmbarkJS, Ethereum, IPFS and DAT - Alessandro Confetti - Codemotion Rome 2018 (20)

Learn how to build decentralized and serverless html5 applications with Embar...
Learn how to build decentralized and serverless html5 applications with Embar...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...Alessandro Confetti - Learn how to build decentralized and serverless html5 a...
Alessandro Confetti - Learn how to build decentralized and serverless html5 a...
Codemotion
 
Docker opens the Doors for IoT
Docker opens the Doors for IoTDocker opens the Doors for IoT
Docker opens the Doors for IoT
Dieter Reuter
 
Beyond Web Interfaces
Beyond Web InterfacesBeyond Web Interfaces
Beyond Web Interfaces
ciacchi
 
OpenStack Murano introduction
OpenStack Murano introductionOpenStack Murano introduction
OpenStack Murano introduction
Victor Zhang
 
Create a-strong-two-factors-authentication-device-for-less-than-chf-100
Create a-strong-two-factors-authentication-device-for-less-than-chf-100Create a-strong-two-factors-authentication-device-for-less-than-chf-100
Create a-strong-two-factors-authentication-device-for-less-than-chf-100
Cyber Security Alliance
 
carrow - Go bindings to Apache Arrow via C++-API
carrow - Go bindings to Apache Arrow via C++-APIcarrow - Go bindings to Apache Arrow via C++-API
carrow - Go bindings to Apache Arrow via C++-API
Yoni Davidson
 
Blockchain Software for Hardware: The Canaan AvalonMiner Open Source Embedded...
Blockchain Software for Hardware: The Canaan AvalonMiner Open Source Embedded...Blockchain Software for Hardware: The Canaan AvalonMiner Open Source Embedded...
Blockchain Software for Hardware: The Canaan AvalonMiner Open Source Embedded...
Mike Qin
 
Webrtc plugins for Desktop Browsers
Webrtc plugins for Desktop BrowsersWebrtc plugins for Desktop Browsers
Webrtc plugins for Desktop Browsers
Alexandre Gouaillard
 
Internet innovation with Multipath TCP
Internet innovation with Multipath TCPInternet innovation with Multipath TCP
Internet innovation with Multipath TCP
Olivier Bonaventure
 
Docker containers : introduction
Docker containers : introductionDocker containers : introduction
Docker containers : introduction
rinnocente
 
Programming IoT with Docker: How to Start?
Programming IoT with Docker: How to Start?Programming IoT with Docker: How to Start?
Programming IoT with Docker: How to Start?
msyukor
 
InterPlanetary File System (IPFS)
InterPlanetary File System (IPFS)InterPlanetary File System (IPFS)
InterPlanetary File System (IPFS)
Gene Leybzon
 
Automotive Grade Linux on Raspberry Pi: How Does It Work?
Automotive Grade Linux on Raspberry Pi: How Does It Work?Automotive Grade Linux on Raspberry Pi: How Does It Work?
Automotive Grade Linux on Raspberry Pi: How Does It Work?
Leon Anavi
 
Ethereum introduction
Ethereum introductionEthereum introduction
Ethereum introduction
kesavan N B
 
Encode polkadot club
Encode polkadot club  Encode polkadot club
Encode polkadot club
Vanessa Lošić
 
Web3 File Storage Options
Web3 File Storage OptionsWeb3 File Storage Options
Web3 File Storage Options
Gene Leybzon
 
Scaleable PHP Applications in Kubernetes
Scaleable PHP Applications in KubernetesScaleable PHP Applications in Kubernetes
Scaleable PHP Applications in Kubernetes
Robert Lemke
 
Frontend Performance: De débutant à Expert à Fou Furieux
Frontend Performance: De débutant à Expert à Fou FurieuxFrontend Performance: De débutant à Expert à Fou Furieux
Frontend Performance: De débutant à Expert à Fou Furieux
Philip Tellis
 
Protocol Labs, David Dias, TADSummit 2018
Protocol Labs, David Dias, TADSummit 2018Protocol Labs, David Dias, TADSummit 2018
Protocol Labs, David Dias, TADSummit 2018
Alan Quayle
 
Learn how to build decentralized and serverless html5 applications with Embar...
Learn how to build decentralized and serverless html5 applications with Embar...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...Alessandro Confetti - Learn how to build decentralized and serverless html5 a...
Alessandro Confetti - Learn how to build decentralized and serverless html5 a...
Codemotion
 
Docker opens the Doors for IoT
Docker opens the Doors for IoTDocker opens the Doors for IoT
Docker opens the Doors for IoT
Dieter Reuter
 
Beyond Web Interfaces
Beyond Web InterfacesBeyond Web Interfaces
Beyond Web Interfaces
ciacchi
 
OpenStack Murano introduction
OpenStack Murano introductionOpenStack Murano introduction
OpenStack Murano introduction
Victor Zhang
 
Create a-strong-two-factors-authentication-device-for-less-than-chf-100
Create a-strong-two-factors-authentication-device-for-less-than-chf-100Create a-strong-two-factors-authentication-device-for-less-than-chf-100
Create a-strong-two-factors-authentication-device-for-less-than-chf-100
Cyber Security Alliance
 
carrow - Go bindings to Apache Arrow via C++-API
carrow - Go bindings to Apache Arrow via C++-APIcarrow - Go bindings to Apache Arrow via C++-API
carrow - Go bindings to Apache Arrow via C++-API
Yoni Davidson
 
Blockchain Software for Hardware: The Canaan AvalonMiner Open Source Embedded...
Blockchain Software for Hardware: The Canaan AvalonMiner Open Source Embedded...Blockchain Software for Hardware: The Canaan AvalonMiner Open Source Embedded...
Blockchain Software for Hardware: The Canaan AvalonMiner Open Source Embedded...
Mike Qin
 
Webrtc plugins for Desktop Browsers
Webrtc plugins for Desktop BrowsersWebrtc plugins for Desktop Browsers
Webrtc plugins for Desktop Browsers
Alexandre Gouaillard
 
Internet innovation with Multipath TCP
Internet innovation with Multipath TCPInternet innovation with Multipath TCP
Internet innovation with Multipath TCP
Olivier Bonaventure
 
Docker containers : introduction
Docker containers : introductionDocker containers : introduction
Docker containers : introduction
rinnocente
 
Programming IoT with Docker: How to Start?
Programming IoT with Docker: How to Start?Programming IoT with Docker: How to Start?
Programming IoT with Docker: How to Start?
msyukor
 
InterPlanetary File System (IPFS)
InterPlanetary File System (IPFS)InterPlanetary File System (IPFS)
InterPlanetary File System (IPFS)
Gene Leybzon
 
Automotive Grade Linux on Raspberry Pi: How Does It Work?
Automotive Grade Linux on Raspberry Pi: How Does It Work?Automotive Grade Linux on Raspberry Pi: How Does It Work?
Automotive Grade Linux on Raspberry Pi: How Does It Work?
Leon Anavi
 
Ethereum introduction
Ethereum introductionEthereum introduction
Ethereum introduction
kesavan N B
 
Web3 File Storage Options
Web3 File Storage OptionsWeb3 File Storage Options
Web3 File Storage Options
Gene Leybzon
 
Scaleable PHP Applications in Kubernetes
Scaleable PHP Applications in KubernetesScaleable PHP Applications in Kubernetes
Scaleable PHP Applications in Kubernetes
Robert Lemke
 
Frontend Performance: De débutant à Expert à Fou Furieux
Frontend Performance: De débutant à Expert à Fou FurieuxFrontend Performance: De débutant à Expert à Fou Furieux
Frontend Performance: De débutant à Expert à Fou Furieux
Philip Tellis
 
Protocol Labs, David Dias, TADSummit 2018
Protocol Labs, David Dias, TADSummit 2018Protocol Labs, David Dias, TADSummit 2018
Protocol Labs, David Dias, TADSummit 2018
Alan Quayle
 
Ad

More from Codemotion (20)

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

Recently uploaded (20)

The Changing Compliance Landscape in 2025.pdf
The Changing Compliance Landscape in 2025.pdfThe Changing Compliance Landscape in 2025.pdf
The Changing Compliance Landscape in 2025.pdf
Precisely
 
Vaibhav Gupta BAML: AI work flows without Hallucinations
Vaibhav Gupta BAML: AI work flows without HallucinationsVaibhav Gupta BAML: AI work flows without Hallucinations
Vaibhav Gupta BAML: AI work flows without Hallucinations
john409870
 
Manifest Pre-Seed Update | A Humanoid OEM Deeptech In France
Manifest Pre-Seed Update | A Humanoid OEM Deeptech In FranceManifest Pre-Seed Update | A Humanoid OEM Deeptech In France
Manifest Pre-Seed Update | A Humanoid OEM Deeptech In France
chb3
 
Unlocking Generative AI in your Web Apps
Unlocking Generative AI in your Web AppsUnlocking Generative AI in your Web Apps
Unlocking Generative AI in your Web Apps
Maximiliano Firtman
 
Hybridize Functions: A Tool for Automatically Refactoring Imperative Deep Lea...
Hybridize Functions: A Tool for Automatically Refactoring Imperative Deep Lea...Hybridize Functions: A Tool for Automatically Refactoring Imperative Deep Lea...
Hybridize Functions: A Tool for Automatically Refactoring Imperative Deep Lea...
Raffi Khatchadourian
 
HCL Nomad Web – Best Practices and Managing Multiuser Environments
HCL Nomad Web – Best Practices and Managing Multiuser EnvironmentsHCL Nomad Web – Best Practices and Managing Multiuser Environments
HCL Nomad Web – Best Practices and Managing Multiuser Environments
panagenda
 
MINDCTI revenue release Quarter 1 2025 PR
MINDCTI revenue release Quarter 1 2025 PRMINDCTI revenue release Quarter 1 2025 PR
MINDCTI revenue release Quarter 1 2025 PR
MIND CTI
 
Web and Graphics Designing Training in Rajpura
Web and Graphics Designing Training in RajpuraWeb and Graphics Designing Training in Rajpura
Web and Graphics Designing Training in Rajpura
Erginous Technology
 
Challenges in Migrating Imperative Deep Learning Programs to Graph Execution:...
Challenges in Migrating Imperative Deep Learning Programs to Graph Execution:...Challenges in Migrating Imperative Deep Learning Programs to Graph Execution:...
Challenges in Migrating Imperative Deep Learning Programs to Graph Execution:...
Raffi Khatchadourian
 
Heap, Types of Heap, Insertion and Deletion
Heap, Types of Heap, Insertion and DeletionHeap, Types of Heap, Insertion and Deletion
Heap, Types of Heap, Insertion and Deletion
Jaydeep Kale
 
How to Install & Activate ListGrabber - eGrabber
How to Install & Activate ListGrabber - eGrabberHow to Install & Activate ListGrabber - eGrabber
How to Install & Activate ListGrabber - eGrabber
eGrabber
 
Linux Professional Institute LPIC-1 Exam.pdf
Linux Professional Institute LPIC-1 Exam.pdfLinux Professional Institute LPIC-1 Exam.pdf
Linux Professional Institute LPIC-1 Exam.pdf
RHCSA Guru
 
Play It Safe: Manage Security Risks - Google Certificate
Play It Safe: Manage Security Risks - Google CertificatePlay It Safe: Manage Security Risks - Google Certificate
Play It Safe: Manage Security Risks - Google Certificate
VICTOR MAESTRE RAMIREZ
 
GyrusAI - Broadcasting & Streaming Applications Driven by AI and ML
GyrusAI - Broadcasting & Streaming Applications Driven by AI and MLGyrusAI - Broadcasting & Streaming Applications Driven by AI and ML
GyrusAI - Broadcasting & Streaming Applications Driven by AI and ML
Gyrus AI
 
Webinar - Top 5 Backup Mistakes MSPs and Businesses Make .pptx
Webinar - Top 5 Backup Mistakes MSPs and Businesses Make   .pptxWebinar - Top 5 Backup Mistakes MSPs and Businesses Make   .pptx
Webinar - Top 5 Backup Mistakes MSPs and Businesses Make .pptx
MSP360
 
Hybridize Functions: A Tool for Automatically Refactoring Imperative Deep Lea...
Hybridize Functions: A Tool for Automatically Refactoring Imperative Deep Lea...Hybridize Functions: A Tool for Automatically Refactoring Imperative Deep Lea...
Hybridize Functions: A Tool for Automatically Refactoring Imperative Deep Lea...
Raffi Khatchadourian
 
Make GenAI investments go further with the Dell AI Factory
Make GenAI investments go further with the Dell AI FactoryMake GenAI investments go further with the Dell AI Factory
Make GenAI investments go further with the Dell AI Factory
Principled Technologies
 
UiPath Automation Suite – Cas d'usage d'une NGO internationale basée à Genève
UiPath Automation Suite – Cas d'usage d'une NGO internationale basée à GenèveUiPath Automation Suite – Cas d'usage d'une NGO internationale basée à Genève
UiPath Automation Suite – Cas d'usage d'une NGO internationale basée à Genève
UiPathCommunity
 
Reimagine How You and Your Team Work with Microsoft 365 Copilot.pptx
Reimagine How You and Your Team Work with Microsoft 365 Copilot.pptxReimagine How You and Your Team Work with Microsoft 365 Copilot.pptx
Reimagine How You and Your Team Work with Microsoft 365 Copilot.pptx
John Moore
 
Enterprise Integration Is Dead! Long Live AI-Driven Integration with Apache C...
Enterprise Integration Is Dead! Long Live AI-Driven Integration with Apache C...Enterprise Integration Is Dead! Long Live AI-Driven Integration with Apache C...
Enterprise Integration Is Dead! Long Live AI-Driven Integration with Apache C...
Markus Eisele
 
The Changing Compliance Landscape in 2025.pdf
The Changing Compliance Landscape in 2025.pdfThe Changing Compliance Landscape in 2025.pdf
The Changing Compliance Landscape in 2025.pdf
Precisely
 
Vaibhav Gupta BAML: AI work flows without Hallucinations
Vaibhav Gupta BAML: AI work flows without HallucinationsVaibhav Gupta BAML: AI work flows without Hallucinations
Vaibhav Gupta BAML: AI work flows without Hallucinations
john409870
 
Manifest Pre-Seed Update | A Humanoid OEM Deeptech In France
Manifest Pre-Seed Update | A Humanoid OEM Deeptech In FranceManifest Pre-Seed Update | A Humanoid OEM Deeptech In France
Manifest Pre-Seed Update | A Humanoid OEM Deeptech In France
chb3
 
Unlocking Generative AI in your Web Apps
Unlocking Generative AI in your Web AppsUnlocking Generative AI in your Web Apps
Unlocking Generative AI in your Web Apps
Maximiliano Firtman
 
Hybridize Functions: A Tool for Automatically Refactoring Imperative Deep Lea...
Hybridize Functions: A Tool for Automatically Refactoring Imperative Deep Lea...Hybridize Functions: A Tool for Automatically Refactoring Imperative Deep Lea...
Hybridize Functions: A Tool for Automatically Refactoring Imperative Deep Lea...
Raffi Khatchadourian
 
HCL Nomad Web – Best Practices and Managing Multiuser Environments
HCL Nomad Web – Best Practices and Managing Multiuser EnvironmentsHCL Nomad Web – Best Practices and Managing Multiuser Environments
HCL Nomad Web – Best Practices and Managing Multiuser Environments
panagenda
 
MINDCTI revenue release Quarter 1 2025 PR
MINDCTI revenue release Quarter 1 2025 PRMINDCTI revenue release Quarter 1 2025 PR
MINDCTI revenue release Quarter 1 2025 PR
MIND CTI
 
Web and Graphics Designing Training in Rajpura
Web and Graphics Designing Training in RajpuraWeb and Graphics Designing Training in Rajpura
Web and Graphics Designing Training in Rajpura
Erginous Technology
 
Challenges in Migrating Imperative Deep Learning Programs to Graph Execution:...
Challenges in Migrating Imperative Deep Learning Programs to Graph Execution:...Challenges in Migrating Imperative Deep Learning Programs to Graph Execution:...
Challenges in Migrating Imperative Deep Learning Programs to Graph Execution:...
Raffi Khatchadourian
 
Heap, Types of Heap, Insertion and Deletion
Heap, Types of Heap, Insertion and DeletionHeap, Types of Heap, Insertion and Deletion
Heap, Types of Heap, Insertion and Deletion
Jaydeep Kale
 
How to Install & Activate ListGrabber - eGrabber
How to Install & Activate ListGrabber - eGrabberHow to Install & Activate ListGrabber - eGrabber
How to Install & Activate ListGrabber - eGrabber
eGrabber
 
Linux Professional Institute LPIC-1 Exam.pdf
Linux Professional Institute LPIC-1 Exam.pdfLinux Professional Institute LPIC-1 Exam.pdf
Linux Professional Institute LPIC-1 Exam.pdf
RHCSA Guru
 
Play It Safe: Manage Security Risks - Google Certificate
Play It Safe: Manage Security Risks - Google CertificatePlay It Safe: Manage Security Risks - Google Certificate
Play It Safe: Manage Security Risks - Google Certificate
VICTOR MAESTRE RAMIREZ
 
GyrusAI - Broadcasting & Streaming Applications Driven by AI and ML
GyrusAI - Broadcasting & Streaming Applications Driven by AI and MLGyrusAI - Broadcasting & Streaming Applications Driven by AI and ML
GyrusAI - Broadcasting & Streaming Applications Driven by AI and ML
Gyrus AI
 
Webinar - Top 5 Backup Mistakes MSPs and Businesses Make .pptx
Webinar - Top 5 Backup Mistakes MSPs and Businesses Make   .pptxWebinar - Top 5 Backup Mistakes MSPs and Businesses Make   .pptx
Webinar - Top 5 Backup Mistakes MSPs and Businesses Make .pptx
MSP360
 
Hybridize Functions: A Tool for Automatically Refactoring Imperative Deep Lea...
Hybridize Functions: A Tool for Automatically Refactoring Imperative Deep Lea...Hybridize Functions: A Tool for Automatically Refactoring Imperative Deep Lea...
Hybridize Functions: A Tool for Automatically Refactoring Imperative Deep Lea...
Raffi Khatchadourian
 
Make GenAI investments go further with the Dell AI Factory
Make GenAI investments go further with the Dell AI FactoryMake GenAI investments go further with the Dell AI Factory
Make GenAI investments go further with the Dell AI Factory
Principled Technologies
 
UiPath Automation Suite – Cas d'usage d'une NGO internationale basée à Genève
UiPath Automation Suite – Cas d'usage d'une NGO internationale basée à GenèveUiPath Automation Suite – Cas d'usage d'une NGO internationale basée à Genève
UiPath Automation Suite – Cas d'usage d'une NGO internationale basée à Genève
UiPathCommunity
 
Reimagine How You and Your Team Work with Microsoft 365 Copilot.pptx
Reimagine How You and Your Team Work with Microsoft 365 Copilot.pptxReimagine How You and Your Team Work with Microsoft 365 Copilot.pptx
Reimagine How You and Your Team Work with Microsoft 365 Copilot.pptx
John Moore
 
Enterprise Integration Is Dead! Long Live AI-Driven Integration with Apache C...
Enterprise Integration Is Dead! Long Live AI-Driven Integration with Apache C...Enterprise Integration Is Dead! Long Live AI-Driven Integration with Apache C...
Enterprise Integration Is Dead! Long Live AI-Driven Integration with Apache C...
Markus Eisele
 

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

  • 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