Building decentralized apps: Battle of the tech stacks

download Building decentralized apps: Battle of the tech stacks

If you can't read please download the document

Transcript of Building decentralized apps: Battle of the tech stacks

  1. 1. Building decentralized apps Battle of the tech stacks Aron van Ammers Blockstars.io
  2. 2. A bit about me Aron van Ammers Active in fintech (more "TECH" than "fin") Background: Model Driven Software engineering, University of Twente
  3. 3. A bit about me Background: CTO of I&DT, building Curasoft, SaaS for health care
  4. 4. Down the rabbit hole 2014: time for a change What's happening? Bitcoin Cryptocurrency Smart contracts Decentralization May 2014: Certinio, independent consultant
  5. 5. Down the rabbit hole Nov 2014: Blockstars.io A full-service agency dedicated to designing, developing, launching and managing Blockchain businesses Projects MoneyCircles.com AssetCha.in Several other projects in stealth
  6. 6. Perspectives Building good software is hard. Good tools help make it more achievable. I look at (de-)centralized development from a business perspective within an ethical social and environmental context.
  7. 7. The road to cryptocurrency... The road to Bitcoin
  8. 8. ...and beyond Smart contracts Smart assets Decentralized value ledgers "Computers on a blockchain" Decentralized apps (Apps) Decentralized everything
  9. 9. What's a App?
  10. 10. What's a App? https://github.com/DavidJohnstonCEO/DecentralizedApp
  11. 11. What's a App? My view: Is open source essential? Of the protocols, reference implementations and shared data, yes. But the system is open: so anyone is free to develop closed-source software or hardware clients. Is a blockchain essential? Yes, but more generically a "replicated, shared ledger" (Ripple, Stellar, Hyperledger qualify). Are tokens essential? No, see Eris.
  12. 12. A Dapp is software. Software is built on technology stacks. Some technology stacks: LAMP: Linux Apache MySQL PHP Large share of interactive websites mainly 2000-2010 Microsoft: Windows, SQL Server, ASP, .NET Oracle: Oracle DB (+MySQL), WebLogic, ... MEAN: MongoDB Express AngularJS Node.js And variations, upcoming in 2010s Used in DApps Countless others.
  13. 13. Technology stacks Core technology Storage: blockchain, databases, decentralized file storage Computation: "smart contracts" Tools Development Testing Deployment Distribution/Package management Documentation Reading material Examples Ecosystem Community Applications
  14. 14. What are some tech stacks for Apps? Bitcoin Colored coins Sidechains Counterparty Ethereum Eris Codius Maidsafe
  15. 15. Battle of the stacks Image: http://thewrittentale.com/2012/06/the-universe-of-battletech/
  16. 16. Bitcoin The largest ecosystem: Large amount of investments Large amount of development (open/closed): End user apps API's Libraries Client tools Hardware devices
  17. 17. Bitcoin "One stack to rule them all" But what about: Scalability? Speed? Wider functionality? Can Bitcoin even evolve into a software development stack? http://joel.mn/post/103546215249/the-blockchain-application-stack
  18. 18. Bitcoin: colored coins Smart assets Programmable Open standard Multiple implementations
  19. 19. Bitcoin: sidechains Supported by Blockstream, VC-backed Open source Might lead to more powerful options for Bitcoin as a DApp platform
  20. 20. Bitcoin sidechains vs "altcoins" Altcoins: "Bitcoin is limited! We do whatever we want!" Sidechains: "Your little new blockchain will fail! Everyone should build on the stability of Bitcoin!"
  21. 21. Ethereum Building a new blockchain from scratch "Computer on a blockchain" (very slow, but very trustworthy) Single, public blockchain like Bitcoin Many implementations Infinite possibilities which may or may not be practical and useful
  22. 22. Ethereum Contract development: compact programs Hard to change, important to get right Dev tools! Testing tools!
  23. 23. Ethereum: contract development http://meteor-dapp-cosmo.meteor.com/
  24. 24. Ethereum / Eris Solidity contract unit testing Very early stage https://www.youtube.com/watch?v=UsVNBGmGyYA
  25. 25. Bitcoin vs Ethereum Ethereum: "You are just a money-like informational commodity! You can do almost nothing!" Bitcoin: "You are over-ambitious, insecure, unproven, bound to fail!"
  26. 26. Counterparty Builds on Bitcoin Smart assets Added functionality Ethereum contracts can be used "just as easy" Or can they? Limitations of Bitcoin and Counterparty still exist.
  27. 27. Counterparty vs Ethereum Counterparty: "We can do all you can! We run all your contracts backed by Bitcoin!" Ethereum: "We can do all you can, In 350 lines of contract code! And BTW you're severely limited!"
  28. 28. Eris Industries Building a platform and toolchain for developers and enterprise Containing a "fork" (clone) of Ethereum Strong legal background A playful bunch of people
  29. 29. Eris Industries Not "one true blockchain", but millions of them Integrates other types of blockchains: Ethereum, Bitcoin, Tendermint Blockchains are useful for closed and open purposes Applications may or may not have a financial aspect Blockchains have permissions (and hence controllers)
  30. 30. Eris Industries: state of the platform More stable Well-documented toolset Commercial support But also early days. Ready for development, not ready for apps in production.
  31. 31. Eris vs Bitcoin Eris: "A blockchain is a database that can be used for many things! Why would anyone pay to store data in yours? BTW, we like marmots." Bitcoin: "Blockchains without tokens are bound to fail! And permissions are centralized, hence evil!"
  32. 32. Codius https://codius.org/
  33. 33. Codius Javascript in a secured environment (sandbox) Familiar Versatile No blockchain per se, but can access Consensus between nodes Decentralized hosting and billing
  34. 34. Codius But: https://codius.org/blog/codius-one-year-later/
  35. 35. Codius vs blockchain-based stacks Codius: "I can do anything a smart contract on a blockchain can, and more, using a familiar programming language!" Blockchains: "You're too centralized, you require too much trust in your nodes! Besides that, your sandbox will never be secure!"
  36. 36. Maidsafe Predates Bitcoin (2007) A fully distributed data management service Plus client applications Includes a cryptocurrency http://maidsafe.net/overview
  37. 37. Wrapping it up There are more ways than one toward decentralized apps There is healthy competition and crosspollination between initiatives None of the stacks are anywhere near the state of common tech stacks for "traditional" development You can start developing right now (prepare to learn a lot)
  38. 38. Contact @aronvanammers @blockstarsio Slides will be on: http://www.slideshare.net/Blockstarsio