Gluecon 2016 Keynote: Deploying and Managing Blockchain Applications

35
Overview of Hyperledger Introduction to the Linux Foundation’s Hyperledger Project May 2016 @duncanjw

Transcript of Gluecon 2016 Keynote: Deploying and Managing Blockchain Applications

Page 1: Gluecon 2016 Keynote: Deploying and Managing Blockchain Applications

Overview of HyperledgerIntroduction to the Linux Foundation’s Hyperledger ProjectMay 2016

@duncanjw

Page 2: Gluecon 2016 Keynote: Deploying and Managing Blockchain Applications

@duncanjw

21st Century Alchemy

Open Source

A seemingly magical process of transformation, creation, or combination …

Page 3: Gluecon 2016 Keynote: Deploying and Managing Blockchain Applications

The Problem with Traditional Databases

@hyperledger

Page 4: Gluecon 2016 Keynote: Deploying and Managing Blockchain Applications

The Problem with Traditional Databases

@hyperledger

Page 5: Gluecon 2016 Keynote: Deploying and Managing Blockchain Applications

How Blockchain Solves This

@hyperledger

Page 6: Gluecon 2016 Keynote: Deploying and Managing Blockchain Applications

Existing Blockchains

Limited Throughput

Slow Transaction

Confirmations

No Privacy Anonymous Processors

Designed for Cryptocurrency

Poor Governance

No Settlement Finality

@hyperledger

Page 7: Gluecon 2016 Keynote: Deploying and Managing Blockchain Applications

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

Page 8: Gluecon 2016 Keynote: Deploying and Managing Blockchain Applications

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

Page 9: Gluecon 2016 Keynote: Deploying and Managing Blockchain Applications

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

Page 10: Gluecon 2016 Keynote: Deploying and Managing Blockchain Applications

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

Page 11: Gluecon 2016 Keynote: Deploying and Managing Blockchain Applications

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

Page 12: Gluecon 2016 Keynote: Deploying and Managing Blockchain Applications
Page 13: Gluecon 2016 Keynote: Deploying and Managing Blockchain Applications

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

Page 14: Gluecon 2016 Keynote: Deploying and Managing Blockchain Applications

Election Announcements

Blythe MastersCEO

Board Chair: TSC Chair: General Member Board Representatives:

Chris FerrisCTO Open Technology

Craig YoungCTO

Charles CascarillaCEO

@hyperledger

Page 15: Gluecon 2016 Keynote: Deploying and Managing Blockchain Applications

Hyperledger Governing Board

KireetiReddy

Robert Palatnick

Santiago Suarez

StefanTeis

Todd McDonald

ToshiyaCho

Yoshinobu Sawano

Blythe Masters

Chad Cascarilla

ChrisFerris

CraigYoung

DavidTreat

DirkHohndel

JerryCuomo

@hyperledger

Page 16: Gluecon 2016 Keynote: Deploying and Managing Blockchain Applications

Technical Steering Committee

Emmanuel Viale

MicBowman

Stanislav Liberman

Pardha Vishnumolakala

DaveVoell

StefanTeis

Richard G. Brown

Satoshi Oshima

Hart Montgomery

ChrisFerris

Tamás Blummer

@hyperledger

Page 17: Gluecon 2016 Keynote: Deploying and Managing Blockchain Applications

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

Page 18: Gluecon 2016 Keynote: Deploying and Managing Blockchain Applications

@hyperledger

Page 19: Gluecon 2016 Keynote: Deploying and Managing Blockchain Applications

6 Proposed Code contributions

@hyperledger

Page 20: Gluecon 2016 Keynote: Deploying and Managing Blockchain Applications

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

Page 21: Gluecon 2016 Keynote: Deploying and Managing Blockchain Applications

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

Page 22: Gluecon 2016 Keynote: Deploying and Managing Blockchain Applications

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

Page 23: Gluecon 2016 Keynote: Deploying and Managing Blockchain Applications

Hyperledger DemoDeploying and managing a blockchain application with Cloudsoft AMPMay 2016

@duncanjw

Page 24: Gluecon 2016 Keynote: Deploying and Managing Blockchain Applications

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

Page 25: Gluecon 2016 Keynote: Deploying and Managing Blockchain Applications

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

Page 26: Gluecon 2016 Keynote: Deploying and Managing Blockchain Applications

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

Page 27: Gluecon 2016 Keynote: Deploying and Managing Blockchain Applications
Page 28: Gluecon 2016 Keynote: Deploying and Managing Blockchain Applications
Page 29: Gluecon 2016 Keynote: Deploying and Managing Blockchain Applications

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

Page 30: Gluecon 2016 Keynote: Deploying and Managing Blockchain Applications

Cloud Application Management Platform (AMP)

Runtime ManagementBlueprint Library Cloud Foundry

Integration

Blueprint Designer

Runtime VisualizationITSM

Target LocationsConfiguration Management

OperationsBilling & Metering

@duncanjw

Page 31: Gluecon 2016 Keynote: Deploying and Managing Blockchain Applications

Topology

https://github.com/hyperledger/fabric/blob/master/docs/protocol-spec.md#222-multiple-validating-peers

@duncanjw

Page 32: Gluecon 2016 Keynote: Deploying and Managing Blockchain Applications

Open Source

@duncanjw

Page 33: Gluecon 2016 Keynote: Deploying and Managing Blockchain Applications

All locations are connected via fully meshed private network

Page 34: Gluecon 2016 Keynote: Deploying and Managing Blockchain Applications

Too big to be owned by a single entity

@duncanjw

Page 35: Gluecon 2016 Keynote: Deploying and Managing Blockchain Applications

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/