Successfully reported this slideshow.
We use your LinkedIn profile and activity data to personalize ads and to show you more relevant ads. You can change your ad preferences anytime.

Learn how to build decentralized and serverless html5 applications with embark js, ethereum, dat and ipfs

24 views

Published on

Codemotion, Amsterdam 09/05/2018

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, DAT 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, IPFS and DAT distributed storage.

Discover more at http://blog.zigolab.it

Published in: Internet
  • Be the first to comment

  • Be the first to like this

Learn how to build decentralized and serverless html5 applications with embark js, ethereum, dat and ipfs

  1. 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. 2 image from the work of Paul Baran, On Distributed Communications Networks 1964 Alessandro Confetti - May 9th 2018 – Codemotion, Amsterdam
  3. 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. 4 Images from Evolving terminology pt. 2: topology vs ownership January 10, 2016 Alessandro Confetti - May 9th 2018 – Codemotion, Amsterdam
  5. 5. AWS LAMBDA SERVERLESS COMPUTING 5 Image from AWS Lambda official page Alessandro Confetti - May 9th 2018 – Codemotion, Amsterdam
  6. 6. WEB SERVER Storage 1990 STATIC WEB-SITE 6 CLIENT http Index.html Alessandro Confetti - May 9th 2018 – Codemotion, Amsterdam
  7. 7. LOAD BALANCER WEB SERVER Storage WEB SERVER Storage 2000 STATIC WEB-SITE 7 CLIENT http Index.html Alessandro Confetti - May 9th 2018 – Codemotion, Amsterdam
  8. 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. 9. P2P SERVERLESS COMPUTING 9 ???? Alessandro Confetti - May 9th 2018 – Codemotion, Amsterdam
  10. 10. 10 Alessandro Confetti - April 13th 2018 – Codemotion, Rome
  11. 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. 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. 13 Alessandro Confetti - April 13th 2018 – Codemotion, Rome
  14. 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. 15 Alessandro Confetti - April 13th 2018 – Codemotion, Rome
  16. 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. 17 Alessandro Confetti - April 13th 2018 – Codemotion, Rome
  18. 18. 18 Alessandro Confetti - April 13th 2018 – Codemotion, Rome
  19. 19. 19 Image and article about the left-pad incident from The Register Alessandro Confetti - May 9th 2018 – Codemotion, Amsterdam
  20. 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. 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. 22 Alessandro Confetti - April 13th 2018 – Codemotion, Rome
  23. 23. 23 Alessandro Confetti - April 13th 2018 – Codemotion, Rome
  24. 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. 25 Alessandro Confetti - April 13th 2018 – Codemotion, Rome
  26. 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. 27 Alessandro Confetti - April 13th 2018 – Codemotion, Rome EthPhoto by Mudit Bachhawat
  28. 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. 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. 30. $ tail -f questions 30 Alessandro Confetti aconfet@thoughtworks.com twitter @zigolab 
 blog http://blog.zigolab.it

×