1. Building decentralized apps Battle of the tech stacks Aron
van Ammers Blockstars.io
2. A bit about me Aron van Ammers Active in fintech (more
"TECH" than "fin") Background: Model Driven Software engineering,
University of Twente
3. A bit about me Background: CTO of I&DT, building
Curasoft, SaaS for health care
4. Down the rabbit hole 2014: time for a change What's
happening? Bitcoin Cryptocurrency Smart contracts Decentralization
May 2014: Certinio, independent consultant
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. 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. The road to cryptocurrency... The road to Bitcoin
8. ...and beyond Smart contracts Smart assets Decentralized
value ledgers "Computers on a blockchain" Decentralized apps (Apps)
Decentralized everything
9. What's a App?
10. What's a App?
https://github.com/DavidJohnstonCEO/DecentralizedApp
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. 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. 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. What are some tech stacks for Apps? Bitcoin Colored coins
Sidechains Counterparty Ethereum Eris Codius Maidsafe
15. Battle of the stacks Image:
http://thewrittentale.com/2012/06/the-universe-of-battletech/
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. 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. Bitcoin: colored coins Smart assets Programmable Open
standard Multiple implementations
19. Bitcoin: sidechains Supported by Blockstream, VC-backed
Open source Might lead to more powerful options for Bitcoin as a
DApp platform
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. 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. Ethereum Contract development: compact programs Hard to
change, important to get right Dev tools! Testing tools!
23. Ethereum: contract development
http://meteor-dapp-cosmo.meteor.com/
24. Ethereum / Eris Solidity contract unit testing Very early
stage https://www.youtube.com/watch?v=UsVNBGmGyYA
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. 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. 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. 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. 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. 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. 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. Codius https://codius.org/
33. Codius Javascript in a secured environment (sandbox)
Familiar Versatile No blockchain per se, but can access Consensus
between nodes Decentralized hosting and billing
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. Maidsafe Predates Bitcoin (2007) A fully distributed data
management service Plus client applications Includes a
cryptocurrency http://maidsafe.net/overview
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. Contact @aronvanammers @blockstarsio Slides will be on:
http://www.slideshare.net/Blockstarsio