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 way of charging 10x as much for

    a transactional database. @grkvlt
  4. 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
  5. 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
  6. 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
  7. • Open Source • Originally IBM Blockchain • Graduated to

    become first Hyperledger Foundation Incubator project • Linux Foundation Collaboration Hyperledger Fabric @grkvlt
  8. 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
  9. 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
  10. 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
  11. 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
  12. 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
  13. 23

  14. 24

  15. 25

  16. 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
  17. 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
  18. 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
  19. 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
  20. 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
  21. 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
  22. 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
  23. 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
  24. 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
  25. ?