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

Building decentralized apps: Battle of the tech stacks

  • 1.
    Building decentralized apps Battleof the tech stacks Aron van Ammers Blockstars.io
  • 2.
    A bit aboutme ● Aron van Ammers ● Active in fintech (more "TECH" than "fin") ● Background: Model Driven Software engineering, University of Twente
  • 3.
    A bit aboutme ● Background: CTO of I&DT, building Curasoft, SaaS for health care
  • 4.
    Down the rabbithole ● 2014: time for a change ● What's happening? – Bitcoin – Cryptocurrency – Smart contracts – Decentralization ● May 2014: Certinio, independent consultant
  • 5.
    Down the rabbithole ● 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 goodsoftware 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 tocryptocurrency... ● The road to Bitcoin
  • 8.
    ...and beyond ● Smartcontracts ● Smart assets ● Decentralized value ledgers ● "Computers on a blockchain" ● Decentralized apps (ÐApps) ● Decentralized everything
  • 9.
  • 10.
  • 11.
    What's a ÐApp? Myview: ● 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 issoftware. 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 ● Coretechnology – 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 sometech stacks for ÐApps? ● Bitcoin – Colored coins – Sidechains – Counterparty ● Ethereum ● Eris ● Codius ● Maidsafe
  • 15.
    Battle of thestacks 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 torule 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 ● Supportedby 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 anew 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: compactprograms ● Hard to change, important to get right ● Dev tools! ● Testing tools!
  • 23.
  • 24.
    Ethereum / Eris Solidity contract unittesting ● 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 onBitcoin ● 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 ● Buildinga 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: stateof 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.
  • 33.
    Codius ● Javascript ina secured environment (sandbox) – Familiar – Versatile ● No blockchain per se, but can access ● Consensus between nodes ● Decentralized hosting and billing
  • 34.
  • 35.
    Codius vs blockchain-basedstacks 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 beon: http://www.slideshare.net/Blockstarsio