Decomposing applications for deployability and scalability #gluecon
Gluecon 2016 Keynote: Deploying and Managing Blockchain Applications
-
Upload
duncan-johnston-watt -
Category
Technology
-
view
1.145 -
download
0
Transcript of Gluecon 2016 Keynote: Deploying and Managing Blockchain Applications
Overview of HyperledgerIntroduction to the Linux Foundation’s Hyperledger ProjectMay 2016
@duncanjw
@duncanjw
21st Century Alchemy
Open Source
A seemingly magical process of transformation, creation, or combination …
The Problem with Traditional Databases
@hyperledger
The Problem with Traditional Databases
@hyperledger
How Blockchain Solves This
@hyperledger
Existing Blockchains
Limited Throughput
Slow Transaction
Confirmations
No Privacy Anonymous Processors
Designed for Cryptocurrency
Poor Governance
No Settlement Finality
@hyperledger
Introducing Hyperledger
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
Project GoalsCreate an enterprise grade, open source distributed ledger framework and code base, upon which users can build and run robust, industry-specific applications, platforms and hardware systems to support business transactions.
Create an open source, technical community to benefit the ecosystem of Hyperledger solution providers and users, focused on blockchain and shared ledger use cases that will work across a variety of industry solutions.
Promote participation of leading members of the ecosystem, including developers, service and solution providers and end users.
Host the infrastructure for Hyperledger, establishing a neutral home for community infrastructure, meetings, events and collaborative discussions and providing structure around the business and technical governance of Hyperledger.
@hyperledger
Modular Framework
Requirements for blockchains vary greatly across different use-cases, there will not be a one size fits all solution.
As such, Hyperledger is being designed to be highly modular, with pluggable options to suit different needs.
@hyperledger
About The Linux Foundation
The Linux Foundation is the organization of choice for the world's top developers and companies to build ecosystems that accelerate open technology development and commercial adoption. Together with the worldwide open source community, it is solving the hardest technology problems by creating the largest shared technology investment in history. Founded in 2000, The Linux Foundation today provides tools, training and events to scale any open source project, which together deliver an economic impact not achievable by any one company.
The Linux Foundation has 16 years experience of providing governance structure and infrastructure to support the development of large scale, successful open source projects such as:
@linuxfoundation
Successful Launch
30members
>$6mfunding
2,300membership requests
5xmore requests than next largest in LF
history
14Additions
since
Wired - "Tech and Banking Giants Ditch Bitcoin for Their Own Blockchain"
Fortune - "IBM, J.P. Morgan, and Others Build a New Blockchain for Business"
Financial News - “Another day, another blockchain consortium update –this time from the Hyperledger Project”
International Business Times -- “Linux Foundation's Hyperledger Projecttrumpets code contributions from across 30 founder members”
@linuxfoundation
Project Team – Executive Director
Brian Behlendorf
Behlendorf was a primary developer of the Apache Web server, the most popular web server software on the Internet, and a founding member of the Apache Software Foundation. He has also served on the board of the Mozilla Foundation since 2003 and the Electronic Frontier Foundation since 2013. He was the founding CTO of CollabNet and CTO of the World Economic Forum. Most recently, Behlendorf was a managing director at Mithril Capital Management LLC, a global technology investment firm.
@brianbehlendorf
Election Announcements
Blythe MastersCEO
Board Chair: TSC Chair: General Member Board Representatives:
Chris FerrisCTO Open Technology
Craig YoungCTO
Charles CascarillaCEO
@hyperledger
Hyperledger Governing Board
KireetiReddy
Robert Palatnick
Santiago Suarez
StefanTeis
Todd McDonald
ToshiyaCho
Yoshinobu Sawano
Blythe Masters
Chad Cascarilla
ChrisFerris
CraigYoung
DavidTreat
DirkHohndel
JerryCuomo
@hyperledger
Technical Steering Committee
Emmanuel Viale
MicBowman
Stanislav Liberman
Pardha Vishnumolakala
DaveVoell
StefanTeis
Richard G. Brown
Satoshi Oshima
Hart Montgomery
ChrisFerris
Tamás Blummer
@hyperledger
Project Scope
Shared Ledger
Code execution environmentLedger data structures
Modular consensus frameworkModular identity services
Network peers
Core APIs
API libraries and GUIsSpecialized extensions
Specialized consensus algosMembership policies
GatewayOperations dashboard
Custom Applications
Value Added
Systems
App Layer
Out of scope
In-scope
@hyperledger
@hyperledger
6 Proposed Code contributions
@hyperledger
60+ Developers Attended First HackathonJ.P. Morgan hosted the first Hyperledger hackathon, a 4 day event in Brooklyn, New York.
There were four focusses:● Whitepaper working group
○ Evolved the whitepaper from IBM’s● Requirements and Use Cases working group
○ Gathered financial and non-financial requirements
● Chaincode development group○ Created an example application in
Chaincode to emulates the exchange of shares
● Integration working group○ Focused on integrating the code proposals
from IBM, Digital Asset, and Blockstream
@hyperledger
Successfully Demonstrated Integrated Codebase
By the end of the hackathon, the integration team successfully demonstrated a proof of concept showing different parts of three code bases communicating:
● Transaction Validation from Blockstream’s Elements Project● Implementing the UTXO model in IBM’s OBC Chaincode● Client communication with Digital Asset’s HLP-Candidate
The simple proof of concept showed the ability to retrieve the chain height and transactions from the blockchain, executing a transaction, and listening to an account to be notified of balance changes.
@hyperledger
Two Projects Accepted into Incubation
hyperledger/fabric hyperledger/sawtooth-lake
“Proof of Elapsed Time”Consensus Algorithm
More potential contributions being discussed
https://github.com/hyperledger
@hyperledger
Hyperledger DemoDeploying and managing a blockchain application with Cloudsoft AMPMay 2016
@duncanjw
Membership
Smart Contract Systems Management
Events
Consensus Network
Wallet
Shared Ledgercontains the current world state of the ledger and a Blockchain of transaction invocations
encapsulates business network transactions in code. transaction invocations result in gets and sets of ledger state
a collection of network data and processing peers forming a Blockchain network. Responsible for maintaining a consistently replicated ledger
manages identity and transaction certificates, as well as other aspects of permissioned access
creates notifications of significant operations on the Blockchain (e.g. a new block), as well as notifications related to smart contracts. Does not include event distribution.
provides the ability to create, change and monitor Blockchain components
securely manages a user’s security credentials
responsible for integrating Blockchain bi-directionally with external systems. Not part of Blockchain, but used with it.
Systems Integration
Technical TerminologySource: Anthony O’Dowd, STSM IBM Blockchain Labs
ValidatingNode B
Validating Node C
ValidatingNode A
ValidatingNode D
ValidatingNode E Blockchain Network A chain network that services
solutions built for a particular industry.
Shared Ledger: Records all transactions across business network
Consensus: Transaction validation & commitment
Non- ValidatingNode
Chaincode
StateLogicChaincode
Chaincode
Chaincode
ValidatingNode X
ValidatingNode Y
Proprietor(s) setup and define the purpose of a chain network. They are the stakeholders of a network.
Auditors(s): Individuals or organizations with the permission to interrogate transactions and the blockchain network.
Solution Users: end users typically initiate transactions on a chain network through applications made available by solutions providers.
Non-Validating node: Constructs transactions and forwards them to validating nodes. Peer nodes keep a copy of all transaction records so that solution providers can query them locally.
Solution Provider: Organizations that develop mobile/web applications for solution users to access chain networks., they own either NV or Validating node. Public transactions:
transactions with its payload in the clear
Membership Service (PKI)
ECA TCA TLS-CAReg. A
Registration Authority: Assigns registration username & registration password pairs to network participants. This username/password pair will be used to acquire enrollment certificate from ECA.
Enrollment CA (ECA): Issues enrollment certificates (ECert) to network participants that have already registered with a membership service. ECerts are long term certificates used to identify individual entities participating in one or more networks.
Transaction CA (TCA): Issues transaction certificates (TCerts) to ECert owners. An infinite number of TCerts can be derived from each ECert. TCerts are used by network participants to send transactions.
TLS CA: Issues TLS certificates to systems that transmit messages in a chain network. TLS certificates are used to secure the communication channel between systems.
Chaincode (Smart Contract): Application logics stored and executed on the blockchain.
Chaincode State: Chaincodes access internal state storage through state APIs. States are created and updated by transactions calling chaincode functions with state accessing logic.
Confidential transactions: transactions where its payload is encrypted and is only visible to stakeholders of this transaction
Confidential chaincode: chaincodes that only pre-defined subset of validators can view and execute
The Blockchain NetworkSource: Sharon Weed
Demo – Asset Management
The asset management chaincode (asset_management.go) is a very simple chaincode designed to show how to exercise access control at the chaincode level as described in this document: https://github.com/hyperledger/fabric/blob/master/docs/tech/application-ACL.md
The chaincode exposes the following functions:
init(user): Initialize the chaincode assigning to user the role of administrator;assign(asset, user): Assigns the ownership of asset to user. Notice that, this function can be invoked only by an administrator;transfer(asset, user): Transfer the ownership of asset to user Notice that this function ca be invoked only by the owner ofasset;query(asset): Returns the identifier of the owner of asset
https:// https://github.com/hyperledger/fabric/tree/master/examples/chaincode/go/asset_management
Demo – Asset Management
In particular, we consider a scenario in which we have the following parties:
Alice is the chaincode deployerBob is the chaincode administratorCharlie and Bob are asset owners
that interact in the following way:
Alice deploys and assigns the administrator role to BobBob assigns the asset 'Picasso' to CharlieCharlie transfers the ownership of 'Picasso' to Dave
Women of Algiers - $179m
https:// https://github.com/hyperledger/fabric/tree/master/examples/chaincode/go/asset_management
@duncanjw
Cloud Application Management Platform (AMP)
Runtime ManagementBlueprint Library Cloud Foundry
Integration
Blueprint Designer
Runtime VisualizationITSM
Target LocationsConfiguration Management
OperationsBilling & Metering
@duncanjw
Topology
https://github.com/hyperledger/fabric/blob/master/docs/protocol-spec.md#222-multiple-validating-peers
@duncanjw
Open Source
@duncanjw
All locations are connected via fully meshed private network
Too big to be owned by a single entity
@duncanjw
More Information
hyperledger.orghyperledger.org/community
github.com/hyperledgergithub.com/hyperledger-incubator
developer.ibm.com/open/events/dw-open-tech-talk-open-blockchain/ github.com/cloudsoft/brooklyn-hyperledger
www.altoros.com/blog/technical-introduction-to-hyperledger-fabric/