Upgrade to Pro — share decks privately, control downloads, hide ads and more …

Blockchain and Brooklyn

Blockchain and Brooklyn

Distributed Ledgers and Smart Contracts with Apache Brooklyn and Hyperledger. Lightning talk given at Cloudsoft in October 2017.

Andrew Kennedy

October 16, 2017
Tweet

More Decks by Andrew Kennedy

Other Decks in Programming

Transcript

  1. Blockchain & Brooklyn Distributed Ledgers and Smart Contracts with Apache

    Brooklyn and Hyperledger Andrew Donald Kennedy, October 2017
  2. What is Blockchain The Hyperledger Project Available Distributions from Hyperledger

    Some Example Blockchain Use Cases Apache Brooklyn and Hyperledger Introduction @grkvlt
  3. Blockchain A new kind of transactional database. @grkvlt

  4. Blockchain? A new way of charging 10x as much for

    a transactional database. @grkvlt
  5. Blockchain "Blockchain is a technology for a new generation of

    transactional applications that establishes trust, accountability and transparency while streamlining business processes." Or... "Blockchain is a distributed, cryptographically secure ledger of transactions." @grkvlt
  6. Blockchain "A blockchain is a fully-distributed, peer-to-peer software network which

    makes use of cryptography to securely host applications, store data, and easily transfer digital instruments of value that represent real-world money. " — Dannen, Chris; Introducing Ethereum and Solidity; DOI 10.1007/978-1-4842-2535-6_1 @grkvlt
  7. Blockchain Overview @grkvlt

  8. Blockchain Properties Transactions Security Privacy Reliability Resilience @grkvlt

  9. Blockchain Use Cases @grkvlt

  10. Hyperledger

  11. The Hyperledger Project is a collaborative effort created to advance

    Blockchain technology by identifying and addressing important features for a cross- industry open standard for Distributed Ledgers that can transform the way business Transactions are conducted globally. Hyperledger Fabric @grkvlt
  12. • Open Source • Originally IBM Blockchain • Graduated to

    become first Hyperledger Foundation Incubator project • Linux Foundation Collaboration Hyperledger Fabric @grkvlt
  13. Hyperledger’s Modular Umbrella Approach Tools Typically built for one framework,

    and through common license and community of communities approach, ported to other frameworks Hyperledger Indy Hyperledger Fabric Hyperledger Iroha Hyperledger Sawtooth Hyperledger Burrow Hyperledger CloudFoundry Node.js Cloud Native Infrastructure Technical, Legal, Marketing, Organizational Ecosystems that accelerate open development and commercial adoption Frameworks Meaningfully differentiated approaches to business blockchain frameworks developed by a growing community of communities from the entire industry Hyperledger Composer Hyperledger Explorer Hyperledger Cello @grkvlt
  14. None
  15. Hyperledger Fabric Hyperledger Burrow Hyperledger Sawtooth Monax Hyperledger Cello and

    Composer Hyperledger Distributions @grkvlt
  16. Brooklyn Blockchain Blueprints Hyperledger Fabric 1.0 Framework Hyperledger Burrow Framework

    Hyperledger Sawtooth Framework Blockchain Asset Management Application Blockchain Certificate Authority Smart Contract Deployment @grkvlt
  17. Cloudsoft Blockchain Service • Deploy Hyperledger Frameworks to virtually any

    environment • Currently Hyperledger Fabric included in AMP • Hyperledger Burrow and Sawtooth in progress • Let developers focus on creating Chaincode or Smart Contracts, not the infrastructure and plumbing • Accelerate Time to Value for enterprises interested in Blockchain • Cloudsoft Blockchain Service is available via the IBM Marketplace • Cloudsoft is a Founder Member of the IBM Blockchain Ecosystem and a member of the Hyperledger Foundation @grkvlt
  18. Blueprints

  19. Cloudsoft Blockchain Service @grkvlt

  20. • Identity • Privacy • Confidentiality • Auditability Hyperledger Fabric

    @grkvlt
  21. Hyperledger Application Fabric The Hyperledger Application Fabric is a group

    of Clusters of Docker Engines spread across different regions, giving a global deployment that can be easily scaled and extended. Hyperledger components are Docker containers providing Blockchain services. @grkvlt
  22. Hyperledger and Kubernetes With the current popularity of Kubernetes as

    a container platform, it would be very useful to be able to deploy Hyperledger there. Kubernetes Pods are the unit of deployment for containers, and are defined as YAML resource files. The Cloudsoft AMP Container Service allows deployment of these Kubernetes resources, and we are in the process of developing Pods for the Hyperledger components. This feature will be part of the next release of the Cloudsoft HLF in AMP 5.0. @grkvlt
  23. 23

  24. 24

  25. 25

  26. San Jose Tokyo London Global private cloud Dedicated locations connected

    via fully meshed private network @grkvlt
  27. Hyperledger Fabric @grkvlt

  28. Hyperledger Fabric @grkvlt

  29. Hyperledger Fabric @grkvlt

  30. Simple Blueprint Extract the essential components from the previous architecture

    diagram: 1. Web Application • Node.js Server and Redis Store 2. Chaincode (or Smart Contract) • Reducing Complexity • Simple Brooklyn concepts • Dozen lines of YAML… @grkvlt
  31. Simple Blueprint location: prod-kubernetes-europe services: - id: webapp type: nodejs-server

    brooklyn.config: webapp.archive.url: "file://src.zip" metadata.endpoint: $brooklyn:entity("metadata") .attributeWhenReady("datastore.url") hyperledger.endpoint: $brooklyn:config("assetmgmt.endpoint") - id: metadata type: redis-server - id: asset-management type: hyperledger-chaincode brooklyn.config: chaincode.url: $brooklyn:config("assetmgmt.archive") hyperledger.url: $brooklyn:config("assetmgmt.endpoint") @grkvlt
  32. Simple Blueprint location: prod-kubernetes-europe services: - id: webapp type: nodejs-server

    brooklyn.config: webapp.archive.url: "file://src.zip" metadata.endpoint: $brooklyn:entity("metadata") .attributeWhenReady("datastore.url") hyperledger.endpoint: $brooklyn:config("assetmgmt.endpoint") - id: metadata type: redis-server - id: asset-management type: hyperledger-chaincode brooklyn.config: chaincode.url: $brooklyn:config("assetmgmt.archive") hyperledger.url: $brooklyn:config("assetmgmt.endpoint") @grkvlt
  33. Simple Blueprint location: prod-kubernetes-europe services: - id: webapp type: nodejs-server

    brooklyn.config: webapp.archive.url: "file://src.zip" metadata.endpoint: $brooklyn:entity("metadata") .attributeWhenReady("datastore.url") hyperledger.endpoint: $brooklyn:config("assetmgmt.endpoint") - id: metadata type: redis-server - id: asset-management type: hyperledger-chaincode brooklyn.config: chaincode.url: $brooklyn:config("assetmgmt.archive") hyperledger.url: $brooklyn:config("assetmgmt.endpoint") @grkvlt
  34. Simple Blueprint location: prod-kubernetes-europe services: - id: webapp type: nodejs-server

    brooklyn.config: webapp.archive.url: "file://src.zip" metadata.endpoint: $brooklyn:entity("metadata") .attributeWhenReady("datastore.url") hyperledger.endpoint: $brooklyn:config("assetmgmt.endpoint") - id: metadata type: redis-server - id: asset-management type: hyperledger-chaincode brooklyn.config: chaincode.url: $brooklyn:config("assetmgmt.archive") hyperledger.url: $brooklyn:config("assetmgmt.endpoint") @grkvlt
  35. Simple Blueprint location: prod-kubernetes-europe services: - id: webapp type: nodejs-server

    brooklyn.config: webapp.archive.url: "file://src.zip" metadata.endpoint: $brooklyn:entity("metadata") .attributeWhenReady("datastore.url") hyperledger.endpoint: $brooklyn:config("assetmgmt.endpoint") - id: metadata type: redis-server - id: asset-management type: hyperledger-chaincode brooklyn.config: chaincode.url: $brooklyn:config("assetmgmt.archive") hyperledger.url: $brooklyn:config("assetmgmt.endpoint") @grkvlt
  36. Simple Blueprint location: prod-kubernetes-europe services: - id: webapp type: nodejs-server

    brooklyn.config: webapp.archive.url: "file://src.zip" metadata.endpoint: $brooklyn:entity("metadata") .attributeWhenReady("datastore.url") hyperledger.endpoint: $brooklyn:config("assetmgmt.endpoint") - id: metadata type: redis-server - id: asset-management type: hyperledger-chaincode brooklyn.config: chaincode.url: $brooklyn:config("assetmgmt.archive") hyperledger.url: $brooklyn:config("assetmgmt.endpoint") @grkvlt
  37. Simple Blueprint location: prod-kubernetes-europe services: - id: webapp type: nodejs-server

    brooklyn.config: webapp.archive.url: "file://src.zip" metadata.endpoint: $brooklyn:entity("metadata") .attributeWhenReady("datastore.url") hyperledger.endpoint: $brooklyn:config("assetmgmt.endpoint") - id: metadata type: redis-server - id: asset-management type: hyperledger-chaincode brooklyn.config: chaincode.url: $brooklyn:config("assetmgmt.archive") hyperledger.url: $brooklyn:config("assetmgmt.endpoint") @grkvlt
  38. Hyperledger Sample Application We can demonstrate an asset management Chaincode

    application that spins up a Non-Validating Peer in a Docker container, deploys the Chaincode onto the Validating Peer Cluster and then performs the following Transactions: 1. Assigns an asset to Alice 2. Transfers to Bob and verifies ownership 3. Transfers to Charlie and verifies ownership 4. Transfers to Dave and verifies ownership @grkvlt
  39. ?