際際滷

際際滷Share a Scribd company logo
Hoe bouw je een
enterprise Blockchain
implementblockchain.tech
Even introduceren
Robert van M旦lken
Blockchain / App Integratie specialist
Oracle Groundbreaker / ACE
Coder by day and Miner by night
Linkedin: linkedin.com/in/rvmolken
Blog: implementblockchain.tech
Twitter: @robertvanmolken
Blockchain, de nieuwe generatie B2B
platform?
3
How-to in 20/25 minuten
 Recap: Wat is een blockchain
(beter gezegd een DLT)?
 Wat is een decentrale applicatie?
 Public versus Permissioned,
wat moet ik kiezen?
 Wat heb ik nodig om zelf een
blockchain app te bouwen?
Hype Cycle Juli 2018  Emerging Technologies
WAT IS EEN BLOCKCHAIN?
Wat is een Blockchain?
Smart contracts + key/value
database met huidige staat
Ledger registreert
ALLE transacties
Distributed Ledger Technology
(afkorting: DLT)
Wat is een Blockchain?
Decentraal peer-to-peer
network van nodes
Transacties worden gevalideerd
door meerdere entiteiten
Public key-cryptografie
zonder centrale autoriteit
blockchain == digitaal vertrouwen
Hoe werkt een enterprise DLT (zoals blockchain)?
 Plaatsen van order
 Parameters, JSON
 Gossip protocol
 Smart contract
code incl. bedrijfsregels
 Ordenen van
transacties en
samenvoegen
tot lijst
 Opslag van
de data in ledger
 Notificatie terug
naar applicatie
Blokken in een blockchain =
paginas in een boek
Een boek is een reeks pagina's, elke pagina
bevat:
 stukken tekst: het verhaal
 informatie over zichzelf: de titel, pagina
Een blockchain is een reeks blokken, elk
blok bevat:
 de inhoud: lijst met transacties + data
 een header: technische meta informatie
Volgorde in een blockchain
WAT IS EEN DECENTRALE APPLICATIE?
Een Dapp is een blockchain enabled web-app,dat draait op een peer-to-peer network van
computers in plaats van een enkele service waar Smart Contracts het mogelijk maken om
te verbinden met de blockchain data.Het bevat zowel een front-end and back-end welke
onafhankelijk van elkaar draaien!
Waar bestaat een Dapp uit?
 Back-end == Smart Contract(s)
 Overeenkomsten tussen partijen met
geautomatiseerde uitvoering die kunnen
fungeren als aanvulling op of vervanging van
juridische contracten of zakelijke transacties
 Computerprogrammacode die de
onderhandeling over of uitvoering van een
overeenkomst kan faciliteren, uitvoeren en
afdwingen door middel van bedrijfsregels
 Voorbeeld toont contract om een bestelling
te plaatsen voor aankoop van een voertuig
en publiceert een gebeurtenis wanneer de
bestelling is geplaatst
Waar bestaat een Dapp uit?
Een decentrale applicatie bevat ook:
 Data model dat de deelnemers, assets, transacties,
en optionele notificaties beschrijft
 Autorisatie en machtigingen model
 APIs dat de front-end verbind met de back-end
 Een front-end web applicatie (kan draaien buiten
de blockchain)
PUBLIC VERSUS PERMISSIONED
Welk blockchain platform moet ik kiezen?
Verschil tussen public en permissioned
Public (permissionless) blockchains
 Iedereen in de wereld kan informatie lezen
 Iedereen in de wereld kan transactions versturen
 Iedereen ziet alle transacties die valide zijn
 Iedereen kan deelnemen in het consensus proces
 Volledig decentraal
Private (permissioned) blockchains
 Schrijf rechten worden uitgegeven door/aan een consortium van bedrijven
 Lees rechten kunnen publiek zijn of worden beperkt
 Inclusief database management, auditing, etc
 Consortium van geselecteerde node nemen deel in het consensus proces
 Gedeeltelijk decentraal
Welke platform zijn er beschikbaar?
Public Blockchains
 BitCoin, AltCoins (Single purpose)
 Ethereum (DApps & Tokens)
 NEO, IPFS & Blockstack (DApps)
 IOTA (= DLT voor o.a. IoT)
Permissioned blockchains
 Eris::Monax & R3/Corda
 Oracle Blockchain Cloud Service
 IBM Blockchain as a Service
 Hyperledger Fabric & Multichain
WAT HEB IK NODIG OM ZELF EEN
BLOCKCHAIN APP TE DRAAIEN?
Ethereum versus Hyperledger Fabric
 Decentraal Blockchain Platform (ethereum.org)
 Mainnet is publiek / globaal gedeelde infrastructuur
 Organisaties kunnen eigen (Test) netwerk opzetten
 Key features: Smart Contracts, en Digitale Valuta
 Doeleinden: ICOs, ETH Name Service, Gokken, Ads, Games
Public
Gedistribueerd ledger framework om bedrijfsapplicaties / -
processen veilig uit te breiden en transacties binnen het
ecosysteem van partners te versnellen, inclusief slimme
contracten en geautoriseerde kanalen
Permissioned
Wat is Hyperledger Fabric?
 Bestaat uit een ledger (world state + transactie log)
 Draait smart contracts (chaincode) voor koppeling data
 Systeem waarbij deelnemers hun transacties kunnen managen
 Het is een permissioned blockchain
 Aanmelden via een Membership Service Provider
 Bevat aantal inwisselbare opties
 Sla data op in meerdere formats
 Verschillende consensus mechanismen
 Mogelijkheid voor aanmaken van meerdere channels
 Maak voor bepaalde groepen aparte ledgers aan.
Wat draai je dan nu precies?
WAT HEB IK NODIG OM ZELF EEN
BLOCKCHAIN APP TE ONTWIKKELEN?
Ethereum versus Hyperledger Fabric
Ontwikkel een Ethereum Dapp
 Smart contracts kan je schrijven in:
 Solidity (be誰nvloed door C++, Python, JavaScript)
 De strictere Vyper (be誰nvloed door Python)
 Compileert naar bytecode en draait op EVM
 Code beschikbaar as adressen op blockchain
 Interface (API / SDK):
 Web3.js voor JavaScript
 Web3j voor Java/Android
 Go Ethereum for Go
 Front-end applicatie implementatie API/SDK
Ontwikkel een Fabric Dapp
 Smart contracts (chaincode) kan je schrijven in:
 Go, JavaScript (Node.js) en Java
 Maakt gebruik van Fabric Shim
 Compileert naar taal specifieke binary
 Code draait op taal eigen runtime op Docker
 Interface (API / SDK):
 SDKs voor Go, JS en Java
 Sommige cloud providers bieden REST API
 Front-end applicatie implementatie API/SDK
Vervolg Resources
 Build a Decentralized Blockchain
Application with Hyperledger Fabric and
Composer @ YT
 Smart Contracts on Ethereum with
Truffle Suite @ YT
 Implement Blockchain Tech
(developer & nieuws blog)
 Boek kopen? @ Amazon of Packt

More Related Content

Hoe bouw je een enterprise blockchain?

  • 1. Hoe bouw je een enterprise Blockchain implementblockchain.tech
  • 2. Even introduceren Robert van M旦lken Blockchain / App Integratie specialist Oracle Groundbreaker / ACE Coder by day and Miner by night Linkedin: linkedin.com/in/rvmolken Blog: implementblockchain.tech Twitter: @robertvanmolken
  • 3. Blockchain, de nieuwe generatie B2B platform? 3
  • 4. How-to in 20/25 minuten Recap: Wat is een blockchain (beter gezegd een DLT)? Wat is een decentrale applicatie? Public versus Permissioned, wat moet ik kiezen? Wat heb ik nodig om zelf een blockchain app te bouwen?
  • 5. Hype Cycle Juli 2018 Emerging Technologies
  • 6. WAT IS EEN BLOCKCHAIN?
  • 7. Wat is een Blockchain? Smart contracts + key/value database met huidige staat Ledger registreert ALLE transacties Distributed Ledger Technology (afkorting: DLT)
  • 8. Wat is een Blockchain? Decentraal peer-to-peer network van nodes Transacties worden gevalideerd door meerdere entiteiten Public key-cryptografie zonder centrale autoriteit blockchain == digitaal vertrouwen
  • 9. Hoe werkt een enterprise DLT (zoals blockchain)? Plaatsen van order Parameters, JSON Gossip protocol Smart contract code incl. bedrijfsregels Ordenen van transacties en samenvoegen tot lijst Opslag van de data in ledger Notificatie terug naar applicatie
  • 10. Blokken in een blockchain = paginas in een boek Een boek is een reeks pagina's, elke pagina bevat: stukken tekst: het verhaal informatie over zichzelf: de titel, pagina Een blockchain is een reeks blokken, elk blok bevat: de inhoud: lijst met transacties + data een header: technische meta informatie
  • 11. Volgorde in een blockchain
  • 12. WAT IS EEN DECENTRALE APPLICATIE? Een Dapp is een blockchain enabled web-app,dat draait op een peer-to-peer network van computers in plaats van een enkele service waar Smart Contracts het mogelijk maken om te verbinden met de blockchain data.Het bevat zowel een front-end and back-end welke onafhankelijk van elkaar draaien!
  • 13. Waar bestaat een Dapp uit? Back-end == Smart Contract(s) Overeenkomsten tussen partijen met geautomatiseerde uitvoering die kunnen fungeren als aanvulling op of vervanging van juridische contracten of zakelijke transacties Computerprogrammacode die de onderhandeling over of uitvoering van een overeenkomst kan faciliteren, uitvoeren en afdwingen door middel van bedrijfsregels Voorbeeld toont contract om een bestelling te plaatsen voor aankoop van een voertuig en publiceert een gebeurtenis wanneer de bestelling is geplaatst
  • 14. Waar bestaat een Dapp uit? Een decentrale applicatie bevat ook: Data model dat de deelnemers, assets, transacties, en optionele notificaties beschrijft Autorisatie en machtigingen model APIs dat de front-end verbind met de back-end Een front-end web applicatie (kan draaien buiten de blockchain)
  • 15. PUBLIC VERSUS PERMISSIONED Welk blockchain platform moet ik kiezen?
  • 16. Verschil tussen public en permissioned Public (permissionless) blockchains Iedereen in de wereld kan informatie lezen Iedereen in de wereld kan transactions versturen Iedereen ziet alle transacties die valide zijn Iedereen kan deelnemen in het consensus proces Volledig decentraal Private (permissioned) blockchains Schrijf rechten worden uitgegeven door/aan een consortium van bedrijven Lees rechten kunnen publiek zijn of worden beperkt Inclusief database management, auditing, etc Consortium van geselecteerde node nemen deel in het consensus proces Gedeeltelijk decentraal
  • 17. Welke platform zijn er beschikbaar? Public Blockchains BitCoin, AltCoins (Single purpose) Ethereum (DApps & Tokens) NEO, IPFS & Blockstack (DApps) IOTA (= DLT voor o.a. IoT) Permissioned blockchains Eris::Monax & R3/Corda Oracle Blockchain Cloud Service IBM Blockchain as a Service Hyperledger Fabric & Multichain
  • 18. WAT HEB IK NODIG OM ZELF EEN BLOCKCHAIN APP TE DRAAIEN? Ethereum versus Hyperledger Fabric
  • 19. Decentraal Blockchain Platform (ethereum.org) Mainnet is publiek / globaal gedeelde infrastructuur Organisaties kunnen eigen (Test) netwerk opzetten Key features: Smart Contracts, en Digitale Valuta Doeleinden: ICOs, ETH Name Service, Gokken, Ads, Games Public
  • 20. Gedistribueerd ledger framework om bedrijfsapplicaties / - processen veilig uit te breiden en transacties binnen het ecosysteem van partners te versnellen, inclusief slimme contracten en geautoriseerde kanalen Permissioned
  • 21. Wat is Hyperledger Fabric? Bestaat uit een ledger (world state + transactie log) Draait smart contracts (chaincode) voor koppeling data Systeem waarbij deelnemers hun transacties kunnen managen Het is een permissioned blockchain Aanmelden via een Membership Service Provider Bevat aantal inwisselbare opties Sla data op in meerdere formats Verschillende consensus mechanismen Mogelijkheid voor aanmaken van meerdere channels Maak voor bepaalde groepen aparte ledgers aan.
  • 22. Wat draai je dan nu precies?
  • 23. WAT HEB IK NODIG OM ZELF EEN BLOCKCHAIN APP TE ONTWIKKELEN? Ethereum versus Hyperledger Fabric
  • 24. Ontwikkel een Ethereum Dapp Smart contracts kan je schrijven in: Solidity (be誰nvloed door C++, Python, JavaScript) De strictere Vyper (be誰nvloed door Python) Compileert naar bytecode en draait op EVM Code beschikbaar as adressen op blockchain Interface (API / SDK): Web3.js voor JavaScript Web3j voor Java/Android Go Ethereum for Go Front-end applicatie implementatie API/SDK
  • 25. Ontwikkel een Fabric Dapp Smart contracts (chaincode) kan je schrijven in: Go, JavaScript (Node.js) en Java Maakt gebruik van Fabric Shim Compileert naar taal specifieke binary Code draait op taal eigen runtime op Docker Interface (API / SDK): SDKs voor Go, JS en Java Sommige cloud providers bieden REST API Front-end applicatie implementatie API/SDK
  • 26. Vervolg Resources Build a Decentralized Blockchain Application with Hyperledger Fabric and Composer @ YT Smart Contracts on Ethereum with Truffle Suite @ YT Implement Blockchain Tech (developer & nieuws blog) Boek kopen? @ Amazon of Packt

Editor's Notes

  • #8: Het is een digitaal grootboek systeem voor het registreren van transacties van verschillende activa (ook wel assets genoemd) in een geordende lijst die wordt gerepliceerd over beschikbare nodes in het netwerk, in plaats van te worden opgeslagen in een centrale gegevensopslag (dat wil zeggen traditionele databases). Het grootboek registreert ALLE transacties die zijn ingediend bij de blockchain. Het bevat het onbewerkte gegevensgedeelte van de transactie en enige informatie over de node of de deelnemer die de transactie heeft ingediend. De meer ontwikkelde blockchains houden ook een gescheiden key/value-database bij met de huidige status van een asset (de laatste waarden). De veel gevallen zorgen de transacties ervoor dat een smart contract functie wordt uitgevoerd en de data gereed maakt voor opslag.
  • #9: De gegevens worden op een vertrouwde manier gedistribueerd naar alle nodes met behulp van een gedecentraliseerd peer-to-peer-protocol in bijna realtime. Het maakt gebruik van een combinatie van digitale handtekeningen en cryptografie om ieders identiteit en authenticiteit te bewijzen en om lees / schrijf- en uitvoeringsmachtigingen (toegangsrechten) af te dwingen. Dit maakt het mogelijk om schrijftoegang te verlenen aan bepaalde deelnemers en om de toegang tot bepaalde deelnemers of een breder publiek, bijvoorbeeld iedereen, te lezen. Elke node verwerkt en verifieert elke transactie afzonderlijk, verwerkt de geverifieerde transacties tot een resultaat set, welke wordt gesorteerd door het consensus-algorithme en verzendt ze naar alle andere nodes in het netwerk. Met behulp van een consensusmechanisme wordt het transactieblok gevalideerd door andere knooppunten, waarbij de meerderheid het blok moet goedkeuren voordat het definitief wordt en wordt toegevoegd aan de blockchain.
  • #12: Eerste figuur toont de relatie tussen pagina's in een boek en blokken die aan elkaar zijn gekoppeld om een ketting te maken. Tweede figuur toont de voorspelbaarheid van pagina's en dat het gemakkelijk is om de volgorde ervan te kennen. Als alle pagina's uit het boek worden getrokken en op een stapel worden gelegd, is het eenvoudig om ze weer op volgorde te plaatsen. Een blockchain is slimmer, elk blok linkt terug naar het vorige blok door de vingerafdruk van het blok. De vingerafdruk wordt bepaald door de inhoud en de vingerafdruk van het vorige blok. In een boek is de volgorde van de pagina's impliciet gebouwd op de pagina waarvan het nummer een minder is. Pagina 5 volgt na pagina 4 (5 min 1), terwijl blokken worden weergegeven door vingerafdrukken of hashes die op elkaar zijn gebouwd. Blok 3 met hash 90fk5n wordt bijvoorbeeld bepaald door zijn gegevens te hashen samen met hash n58uf0 van het vorig blok.