SlideShare ist ein Scribd-Unternehmen logo
1 von 21
Downloaden Sie, um offline zu lesen
1Page
Hyperledger Composer architecture
Simon Stone, Maintainer
@mrsimonstone
2
Hyperledger Composer
• Hyperledger Composer is a framework to accelerate the development of
applications built on top of Blockchain platforms:
– Start from the business level; model network assets, participants, and transactions
– Applications use business centric APIs to invoke transactions that create, delete, and
update assets and transfer them between participants
– Assets, participants, and transactions are recorded in the world state in registries
– Easily integrate Blockchain with existing business processes and systems of record
– Emphasis on quick solution creation and business-centric vocabulary
3
Business network definition
• A business network definition is the collection of user developed source
artefacts that describe the resources and logic in a business network:
– Model files describe assets, participants, and transactions.
– Access control lists define rules for sharing and privacy.
– Transaction processors implement additional business requirements.
– The business network has a name (org.acme.biznet) and a version number (1.0.2).
– Can be packaged into a business network archive, or a banana (.bna) file.
4
Deployment to a Blockchain platform
• The business network definition can then be deployed to a Blockchain platform
along with the Hyperledger Composer runtime.
– The runtime is the generic chaincode/smart contract supplied as part of Hyperledger
Composer that hosts and understands the business network.
– There is no chaincode/smart contract code generation at work here!
– The runtime exposes operations on the deployed business network to client
applications via a set of APIs.
• The majority of the runtime code is Blockchain platform independent, and can be
run anywhere that can host a JavaScript virtual machine:
– Currently only Hyperledger Fabric v0.6 and v1.0 are supported.
– Can also be run in a web browser or in Node.js for development/test purposes.
5
Multiple components
6
Client side components
• The majority of the components are client side components, and provide
functionality for developing solutions with Hyperledger Composer:
– Playground for developing and testing business networks from a browser.
– Client/Admin APIs
– Command line interface
– REST API generation using LoopBack (http://loopback.io)
– Code generation using Yeoman (http://yeoman.io)
– Editor plugins for Atom (http://atom.io) and VS Code (https://code.visualstudio.com)
• These components make calls to the Blockchain platform in order to interact with
the deployed business network (by calling the generic chaincode/smart contract).
7
Blockchain side components
• The rest of the components are Blockchain side components, and provide
functionality for running a deployed business network:
– Persistence of resources (assets, participants, transactions) into registries, which are
backed by the underlying world state provided by the Blockchain platform.
– Access control enforcement by using the identity (certificate) of the participant who
submitted the request.
– Execution of user developed transaction processor functions, and the publishing and
recording of any business events.
• These components expose a set of APIs that can be called by client components
to interact with the deployed business network (by calling the generic
chaincode/smart contract).
8
composer-common
• JavaScript module used by all other modules:
– https://github.com/hyperledger/composer/tree/master/packages/composer-common
• Provides:
– Logging APIs used by the rest of Hyperledger Composer.
– Parsing and validating APIs for the parts of a business network definition – model files,
access control lists, and transaction processor functions.
– APIs for creating and loading business network definitions/archives.
– Connection profile manager API, for describing connections to Blockchain platforms.
– Connector API, for building connectors which connect to Blockchain platforms.
– Code generation for JSON Schemas, LoopBack models, UML diagrams, etc.
9
composer-runtime
Core runtime
• Blockchain platform independent JavaScript module:
– https://github.com/hyperledger/composer/tree/master/packages/composer-runtime
• Provides:
– Management of the deployed business network.
– Persistence of resources (assets, participants, transactions) into registries.
– Access control enforcement.
– Execution of user developed transaction processor functions.
– APIs for exposing the deployed business network.
• The runtime must be hosted in a runtime container that provides a set of
services which bind the runtime code to the underlying Blockchain platform.
10
composer-runtime-<platform>
Runtime container implementations
• Blockchain platform specific module:
– https://github.com/hyperledger/composer/tree/master/packages/composer-runtime-hlfv1
– https://github.com/hyperledger/composer/tree/master/packages/composer-runtime-web
• This is the chaincode/smart contract implementation, that provides a platform
specific set of services to the platform independent runtime code:
– Loading and execution of JavaScript core runtime.
– Routing of API calls from client into core runtime.
– Logging
– Data persistence using the world state.
– Identifying the participant/certificate used to submit the transaction.
• The runtime container can be written in any language, for example Golang.
11
Runtime, runtime container, and Blockchain platform
12
composer-connector-<platform>
Connector implementations
• Blockchain platform specific module:
– https://github.com/hyperledger/composer/tree/master/packages/composer-connector-hlfv1
– https://github.com/hyperledger/composer/tree/master/packages/composer-connector-web
• Provides clients with a standardized interface (the connector API) that they can
use to interact with a business network, regardless of the a Blockchain platform.
• Wraps the underlying Blockchain platform client.
• Connector implementation selected by connection profile type, and can be
dynamically loaded at runtime.
13
Connector and Blockchain platform
14
Connection profile
• Connection profile determines which connector implementation to use:
{
"type": "hlfv1",
"orderers": [
{
"url": "grpcs://ldn1-zbc6a.2.secure.blockchain.ibm.com:21505",
},
{
"url": "grpcs://ldn1-zbc6b.2.secure.blockchain.ibm.com:21505",
},
{
"url": "grpcs://ldn1-zbc6c.2.secure.blockchain.ibm.com:21505",
}
],
"peers": [
{
Type used to select connector implementation
Rest of properties are handed to connector at connect
15
composer-client
For building client applications
• Blockchain platform independent JavaScript module:
– https://github.com/hyperledger/composer/tree/master/packages/composer-client
• Uses a connector to interact with the Blockchain platform and send requests to
the deployed business network.
• Provides APIs for working with a deployed business network:
– CRUD APIs for assets, participants, and registries.
– Transaction submission.
– Issuing and revoking identities.
• Performs client side data validation before serializing requests and sending them
to the runtime running on the target Blockchain platform.
16
composer-admin
For building administrative or operational applications
• Blockchain platform independent JavaScript module:
– https://github.com/hyperledger/composer/tree/master/packages/composer-admin
• Uses a connector to interact with the Blockchain platform and send requests to
the deployed business network.
• Provides APIs for managing business networks:
– First time deployment to the Blockchain platform (deploying the chaincode/smart
contract).
– Updating of a deployed business network definition.
– Upgrading of the core runtime code (upgrading the chaincode/smart contract).
– Undeploying a deployed business network.
17
composer-cli
For automation and scripting
• Blockchain platform independent JavaScript module:
– https://github.com/hyperledger/composer/tree/master/packages/composer-cli
• Install with npm install –g composer-cli
• Provides a CLI application composer that exposes functionality in the composer-
admin and composer-client modules to scripting languages:
– Deploy, update, upgrade, and undeploy business networks.
– CRUD operations for assets, participants, and registries.
– Submit transactions.
– Issue and revoke identities.
18
composer-playground
For developing and testing business networks in a browser
• Blockchain platform independent JavaScript module:
– https://github.com/hyperledger/composer/tree/master/packages/composer-playground
• Install with npm install –g composer-playground or Docker!
• Public playground hosted online: http://composer-playground.mybluemix.net
• Built in Angular 2 and TypeScript.
• Uses the standard composer-client and composer-admin APIs.
• Uses the “web” connector and runtime container to simulate a Blockchain
platform running in the web browser.
• Can use any connector implementation to work with business networks on a
“real” Blockchain platform.
19
loopback-connector-composer
For building REST APIs for a business network
• Blockchain platform independent JavaScript module:
– https://github.com/hyperledger/composer/tree/master/packages/loopback-connector-composer
• LoopBack (http://loopback.io) is a framework for exposing backend systems
such as databases via REST API.
• The Hyperledger Composer LoopBack connector exposes a deployed business
network to LoopBack so it can generate a REST API for the assets, participants,
and transactions in that business network.
• The LoopBack connector uses the composer-client APIs.
• The composer-rest-server module provides an easy to use CLI application for
users who don’t need to understand LoopBack to create a REST API.
20
generator-hyperledger-composer
For generating skeleton applications
• Blockchain platform independent JavaScript module:
– https://github.com/hyperledger/composer/tree/master/packages/generator-hyperledger-composer
• Yeoman (http://yeoman.io) is a framework for generating skeleton applications
for use by developers as starting points.
• The Hyperledger Composer Yeoman generator can generate a CLI or Angular 2
application that demonstrates to the developer how they can interact with a
deployed business network.
• Can generate an application from a deployed business network or business
network archive.
• Easy to plug in generators for other application frameworks, such as React.
21Page
Thank you!

Weitere ähnliche Inhalte

Was ist angesagt?

Hyperledger Fabric & Composer
Hyperledger Fabric & Composer Hyperledger Fabric & Composer
Hyperledger Fabric & Composer Dr. Ketan Parmar
 
Hyperleger Composer Architecure Deep Dive
Hyperleger Composer Architecure Deep DiveHyperleger Composer Architecure Deep Dive
Hyperleger Composer Architecure Deep DiveDan Selman
 
Hyperledger community update February 2018
Hyperledger  community update   February 2018Hyperledger  community update   February 2018
Hyperledger community update February 2018Christopher Ferris
 
Hyperledger Composer
Hyperledger ComposerHyperledger Composer
Hyperledger ComposerRihusoft
 
Hyperledger Lightning Talk
Hyperledger Lightning TalkHyperledger Lightning Talk
Hyperledger Lightning TalkAndrew Kennedy
 
Fabric Composer - London Hyperledger Meetup - March 2017
Fabric Composer - London Hyperledger Meetup - March 2017Fabric Composer - London Hyperledger Meetup - March 2017
Fabric Composer - London Hyperledger Meetup - March 2017Simon Stone
 
Hyperledger Fabric and Tools
Hyperledger Fabric and ToolsHyperledger Fabric and Tools
Hyperledger Fabric and ToolsRihusoft
 
Blockchain - HyperLedger Fabric
Blockchain - HyperLedger FabricBlockchain - HyperLedger Fabric
Blockchain - HyperLedger FabricAraf Karsh Hamid
 
Hyperledger Fabric: A Custom Blockchain Solution for Corporate Use
Hyperledger Fabric: A Custom Blockchain Solution for Corporate UseHyperledger Fabric: A Custom Blockchain Solution for Corporate Use
Hyperledger Fabric: A Custom Blockchain Solution for Corporate UseRobert Tochman-Szewc
 
Defrag X Keynote: Deploying and managing Global Blockchain Network
Defrag X Keynote: Deploying and managing Global Blockchain NetworkDefrag X Keynote: Deploying and managing Global Blockchain Network
Defrag X Keynote: Deploying and managing Global Blockchain NetworkDuncan Johnston-Watt
 
Hyperledger Composer overview - Hyperledger Budapest Meetup
Hyperledger Composer overview - Hyperledger Budapest MeetupHyperledger Composer overview - Hyperledger Budapest Meetup
Hyperledger Composer overview - Hyperledger Budapest MeetupImre Kocsis
 
Introduction of Hyperledger Fabric & Composer
Introduction of Hyperledger Fabric & Composer Introduction of Hyperledger Fabric & Composer
Introduction of Hyperledger Fabric & Composer Dr. Ketan Parmar
 
Trading Derivatives on Hyperledger
Trading Derivatives on HyperledgerTrading Derivatives on Hyperledger
Trading Derivatives on HyperledgerLF Events
 
Introduction to Blockchain and the Hyperledger Project
Introduction to Blockchain and the Hyperledger ProjectIntroduction to Blockchain and the Hyperledger Project
Introduction to Blockchain and the Hyperledger ProjectManuel Garcia
 

Was ist angesagt? (20)

IBM Blockchain Overview
IBM Blockchain OverviewIBM Blockchain Overview
IBM Blockchain Overview
 
Hyperledger Fabric & Composer
Hyperledger Fabric & Composer Hyperledger Fabric & Composer
Hyperledger Fabric & Composer
 
Conoscerehyperledger
ConoscerehyperledgerConoscerehyperledger
Conoscerehyperledger
 
Hyperledger
HyperledgerHyperledger
Hyperledger
 
Hyperleger Composer Architecure Deep Dive
Hyperleger Composer Architecure Deep DiveHyperleger Composer Architecure Deep Dive
Hyperleger Composer Architecure Deep Dive
 
Hyperledger community update February 2018
Hyperledger  community update   February 2018Hyperledger  community update   February 2018
Hyperledger community update February 2018
 
Hyperledger Composer
Hyperledger ComposerHyperledger Composer
Hyperledger Composer
 
Hyperledger Lightning Talk
Hyperledger Lightning TalkHyperledger Lightning Talk
Hyperledger Lightning Talk
 
Fabric Composer - London Hyperledger Meetup - March 2017
Fabric Composer - London Hyperledger Meetup - March 2017Fabric Composer - London Hyperledger Meetup - March 2017
Fabric Composer - London Hyperledger Meetup - March 2017
 
Hyperledger Fabric and Tools
Hyperledger Fabric and ToolsHyperledger Fabric and Tools
Hyperledger Fabric and Tools
 
Excelian hyperledger walkthrough-feb17
Excelian hyperledger walkthrough-feb17Excelian hyperledger walkthrough-feb17
Excelian hyperledger walkthrough-feb17
 
Blockchain - HyperLedger Fabric
Blockchain - HyperLedger FabricBlockchain - HyperLedger Fabric
Blockchain - HyperLedger Fabric
 
Hyperledger Fabric: A Custom Blockchain Solution for Corporate Use
Hyperledger Fabric: A Custom Blockchain Solution for Corporate UseHyperledger Fabric: A Custom Blockchain Solution for Corporate Use
Hyperledger Fabric: A Custom Blockchain Solution for Corporate Use
 
Defrag X Keynote: Deploying and managing Global Blockchain Network
Defrag X Keynote: Deploying and managing Global Blockchain NetworkDefrag X Keynote: Deploying and managing Global Blockchain Network
Defrag X Keynote: Deploying and managing Global Blockchain Network
 
Hyperledger Composer overview - Hyperledger Budapest Meetup
Hyperledger Composer overview - Hyperledger Budapest MeetupHyperledger Composer overview - Hyperledger Budapest Meetup
Hyperledger Composer overview - Hyperledger Budapest Meetup
 
Hyperledger fabric 3
Hyperledger fabric 3Hyperledger fabric 3
Hyperledger fabric 3
 
Introduction of Hyperledger Fabric & Composer
Introduction of Hyperledger Fabric & Composer Introduction of Hyperledger Fabric & Composer
Introduction of Hyperledger Fabric & Composer
 
Trading Derivatives on Hyperledger
Trading Derivatives on HyperledgerTrading Derivatives on Hyperledger
Trading Derivatives on Hyperledger
 
Excelian hyperledger fabric-feb17
Excelian hyperledger fabric-feb17Excelian hyperledger fabric-feb17
Excelian hyperledger fabric-feb17
 
Introduction to Blockchain and the Hyperledger Project
Introduction to Blockchain and the Hyperledger ProjectIntroduction to Blockchain and the Hyperledger Project
Introduction to Blockchain and the Hyperledger Project
 

Ähnlich wie Hyperledger Composer architecture

Ibm blockchain - Hyperledger 15.02.18
Ibm blockchain - Hyperledger 15.02.18Ibm blockchain - Hyperledger 15.02.18
Ibm blockchain - Hyperledger 15.02.18TelecomValley
 
IBM Bluemix OpenWhisk: Serverless Conference 2016, London, UK: The Future of ...
IBM Bluemix OpenWhisk: Serverless Conference 2016, London, UK: The Future of ...IBM Bluemix OpenWhisk: Serverless Conference 2016, London, UK: The Future of ...
IBM Bluemix OpenWhisk: Serverless Conference 2016, London, UK: The Future of ...OpenWhisk
 
Hyperledger Fabric update Meetup 20181101
Hyperledger Fabric update Meetup 20181101Hyperledger Fabric update Meetup 20181101
Hyperledger Fabric update Meetup 20181101Arnaud Le Hors
 
Blockchin Architecture on Azure-Part-3
Blockchin Architecture on Azure-Part-3Blockchin Architecture on Azure-Part-3
Blockchin Architecture on Azure-Part-3Mohammad Asif
 
[Call for code] IBM 블록체인을 활용하여 투명하게 구호기금 관리하기 - Hyperledger Fabric v1.1 by 맹개발
[Call for code] IBM 블록체인을 활용하여 투명하게 구호기금 관리하기 - Hyperledger Fabric v1.1 by 맹개발 [Call for code] IBM 블록체인을 활용하여 투명하게 구호기금 관리하기 - Hyperledger Fabric v1.1 by 맹개발
[Call for code] IBM 블록체인을 활용하여 투명하게 구호기금 관리하기 - Hyperledger Fabric v1.1 by 맹개발 Yunho Maeng
 
IBM BP Session - Multiple CLoud Paks and Cloud Paks Foundational Services.pptx
IBM BP Session - Multiple CLoud Paks and Cloud Paks Foundational Services.pptxIBM BP Session - Multiple CLoud Paks and Cloud Paks Foundational Services.pptx
IBM BP Session - Multiple CLoud Paks and Cloud Paks Foundational Services.pptxGeorg Ember
 
Wwc developing hyperledger applications v4
Wwc  developing hyperledger applications v4Wwc  developing hyperledger applications v4
Wwc developing hyperledger applications v4LennartF
 
Wwc developing hyperledger applications v2
Wwc  developing hyperledger applications v2Wwc  developing hyperledger applications v2
Wwc developing hyperledger applications v2LennartF
 
Microservices & Serverless Architecture Principles Applied - Cisco Live Orlan...
Microservices & Serverless Architecture Principles Applied - Cisco Live Orlan...Microservices & Serverless Architecture Principles Applied - Cisco Live Orlan...
Microservices & Serverless Architecture Principles Applied - Cisco Live Orlan...Cisco DevNet
 
.NET Core Apps: Design & Development
.NET Core Apps: Design & Development.NET Core Apps: Design & Development
.NET Core Apps: Design & DevelopmentGlobalLogic Ukraine
 
The next step from Microsoft - Vnext (Srdjan Poznic)
The next step from Microsoft - Vnext (Srdjan Poznic)The next step from Microsoft - Vnext (Srdjan Poznic)
The next step from Microsoft - Vnext (Srdjan Poznic)Geekstone
 
Asynchrone Echtzeitanwendungen für SharePoint mit SignalR und knockout.js
Asynchrone Echtzeitanwendungen für SharePoint mit SignalR und knockout.jsAsynchrone Echtzeitanwendungen für SharePoint mit SignalR und knockout.js
Asynchrone Echtzeitanwendungen für SharePoint mit SignalR und knockout.jsChristian Heindel
 
Wwc developing hyperledger applications v4
Wwc  developing hyperledger applications v4Wwc  developing hyperledger applications v4
Wwc developing hyperledger applications v4LennartF
 
Effective administration of IBM Integration Bus - Sanjay Nagchowdhury
Effective administration of IBM Integration Bus - Sanjay NagchowdhuryEffective administration of IBM Integration Bus - Sanjay Nagchowdhury
Effective administration of IBM Integration Bus - Sanjay NagchowdhuryKaren Broughton-Mabbitt
 
Brushing skills on SignalR for ASP.NET developers
Brushing skills on SignalR for ASP.NET developersBrushing skills on SignalR for ASP.NET developers
Brushing skills on SignalR for ASP.NET developersONE BCG
 
JDO 2019: What you should be aware of before setting up kubernetes on premise...
JDO 2019: What you should be aware of before setting up kubernetes on premise...JDO 2019: What you should be aware of before setting up kubernetes on premise...
JDO 2019: What you should be aware of before setting up kubernetes on premise...PROIDEA
 
MNAssociationEnterpriseArchitectsCloudFoundryJuly2017
MNAssociationEnterpriseArchitectsCloudFoundryJuly2017MNAssociationEnterpriseArchitectsCloudFoundryJuly2017
MNAssociationEnterpriseArchitectsCloudFoundryJuly2017Andrew Ripka
 
Phonegap android angualr material design
Phonegap android angualr material designPhonegap android angualr material design
Phonegap android angualr material designSrinadh Kanugala
 

Ähnlich wie Hyperledger Composer architecture (20)

Ibm blockchain - Hyperledger 15.02.18
Ibm blockchain - Hyperledger 15.02.18Ibm blockchain - Hyperledger 15.02.18
Ibm blockchain - Hyperledger 15.02.18
 
IBM Bluemix OpenWhisk: Serverless Conference 2016, London, UK: The Future of ...
IBM Bluemix OpenWhisk: Serverless Conference 2016, London, UK: The Future of ...IBM Bluemix OpenWhisk: Serverless Conference 2016, London, UK: The Future of ...
IBM Bluemix OpenWhisk: Serverless Conference 2016, London, UK: The Future of ...
 
Hyperledger Fabric update Meetup 20181101
Hyperledger Fabric update Meetup 20181101Hyperledger Fabric update Meetup 20181101
Hyperledger Fabric update Meetup 20181101
 
Blockchin Architecture on Azure-Part-3
Blockchin Architecture on Azure-Part-3Blockchin Architecture on Azure-Part-3
Blockchin Architecture on Azure-Part-3
 
[Call for code] IBM 블록체인을 활용하여 투명하게 구호기금 관리하기 - Hyperledger Fabric v1.1 by 맹개발
[Call for code] IBM 블록체인을 활용하여 투명하게 구호기금 관리하기 - Hyperledger Fabric v1.1 by 맹개발 [Call for code] IBM 블록체인을 활용하여 투명하게 구호기금 관리하기 - Hyperledger Fabric v1.1 by 맹개발
[Call for code] IBM 블록체인을 활용하여 투명하게 구호기금 관리하기 - Hyperledger Fabric v1.1 by 맹개발
 
IBM BP Session - Multiple CLoud Paks and Cloud Paks Foundational Services.pptx
IBM BP Session - Multiple CLoud Paks and Cloud Paks Foundational Services.pptxIBM BP Session - Multiple CLoud Paks and Cloud Paks Foundational Services.pptx
IBM BP Session - Multiple CLoud Paks and Cloud Paks Foundational Services.pptx
 
Wwc developing hyperledger applications v4
Wwc  developing hyperledger applications v4Wwc  developing hyperledger applications v4
Wwc developing hyperledger applications v4
 
Wwc developing hyperledger applications v2
Wwc  developing hyperledger applications v2Wwc  developing hyperledger applications v2
Wwc developing hyperledger applications v2
 
Microservices & Serverless Architecture Principles Applied - Cisco Live Orlan...
Microservices & Serverless Architecture Principles Applied - Cisco Live Orlan...Microservices & Serverless Architecture Principles Applied - Cisco Live Orlan...
Microservices & Serverless Architecture Principles Applied - Cisco Live Orlan...
 
.NET Core Apps: Design & Development
.NET Core Apps: Design & Development.NET Core Apps: Design & Development
.NET Core Apps: Design & Development
 
The next step from Microsoft - Vnext (Srdjan Poznic)
The next step from Microsoft - Vnext (Srdjan Poznic)The next step from Microsoft - Vnext (Srdjan Poznic)
The next step from Microsoft - Vnext (Srdjan Poznic)
 
Asynchrone Echtzeitanwendungen für SharePoint mit SignalR und knockout.js
Asynchrone Echtzeitanwendungen für SharePoint mit SignalR und knockout.jsAsynchrone Echtzeitanwendungen für SharePoint mit SignalR und knockout.js
Asynchrone Echtzeitanwendungen für SharePoint mit SignalR und knockout.js
 
Wwc developing hyperledger applications v4
Wwc  developing hyperledger applications v4Wwc  developing hyperledger applications v4
Wwc developing hyperledger applications v4
 
Effective administration of IBM Integration Bus - Sanjay Nagchowdhury
Effective administration of IBM Integration Bus - Sanjay NagchowdhuryEffective administration of IBM Integration Bus - Sanjay Nagchowdhury
Effective administration of IBM Integration Bus - Sanjay Nagchowdhury
 
Brushing skills on SignalR for ASP.NET developers
Brushing skills on SignalR for ASP.NET developersBrushing skills on SignalR for ASP.NET developers
Brushing skills on SignalR for ASP.NET developers
 
JDO 2019: What you should be aware of before setting up kubernetes on premise...
JDO 2019: What you should be aware of before setting up kubernetes on premise...JDO 2019: What you should be aware of before setting up kubernetes on premise...
JDO 2019: What you should be aware of before setting up kubernetes on premise...
 
Sergey Stoyan 2016
Sergey Stoyan 2016Sergey Stoyan 2016
Sergey Stoyan 2016
 
Sergey Stoyan 2016
Sergey Stoyan 2016Sergey Stoyan 2016
Sergey Stoyan 2016
 
MNAssociationEnterpriseArchitectsCloudFoundryJuly2017
MNAssociationEnterpriseArchitectsCloudFoundryJuly2017MNAssociationEnterpriseArchitectsCloudFoundryJuly2017
MNAssociationEnterpriseArchitectsCloudFoundryJuly2017
 
Phonegap android angualr material design
Phonegap android angualr material designPhonegap android angualr material design
Phonegap android angualr material design
 

Kürzlich hochgeladen

Digital magic. A small project for controlling smart light bulbs.
Digital magic. A small project for controlling smart light bulbs.Digital magic. A small project for controlling smart light bulbs.
Digital magic. A small project for controlling smart light bulbs.francesco barbera
 
UWB Technology for Enhanced Indoor and Outdoor Positioning in Physiological M...
UWB Technology for Enhanced Indoor and Outdoor Positioning in Physiological M...UWB Technology for Enhanced Indoor and Outdoor Positioning in Physiological M...
UWB Technology for Enhanced Indoor and Outdoor Positioning in Physiological M...UbiTrack UK
 
Computer 10: Lesson 10 - Online Crimes and Hazards
Computer 10: Lesson 10 - Online Crimes and HazardsComputer 10: Lesson 10 - Online Crimes and Hazards
Computer 10: Lesson 10 - Online Crimes and HazardsSeth Reyes
 
Using IESVE for Loads, Sizing and Heat Pump Modeling to Achieve Decarbonization
Using IESVE for Loads, Sizing and Heat Pump Modeling to Achieve DecarbonizationUsing IESVE for Loads, Sizing and Heat Pump Modeling to Achieve Decarbonization
Using IESVE for Loads, Sizing and Heat Pump Modeling to Achieve DecarbonizationIES VE
 
Linked Data in Production: Moving Beyond Ontologies
Linked Data in Production: Moving Beyond OntologiesLinked Data in Production: Moving Beyond Ontologies
Linked Data in Production: Moving Beyond OntologiesDavid Newbury
 
Salesforce Miami User Group Event - 1st Quarter 2024
Salesforce Miami User Group Event - 1st Quarter 2024Salesforce Miami User Group Event - 1st Quarter 2024
Salesforce Miami User Group Event - 1st Quarter 2024SkyPlanner
 
9 Steps For Building Winning Founding Team
9 Steps For Building Winning Founding Team9 Steps For Building Winning Founding Team
9 Steps For Building Winning Founding TeamAdam Moalla
 
NIST Cybersecurity Framework (CSF) 2.0 Workshop
NIST Cybersecurity Framework (CSF) 2.0 WorkshopNIST Cybersecurity Framework (CSF) 2.0 Workshop
NIST Cybersecurity Framework (CSF) 2.0 WorkshopBachir Benyammi
 
Comparing Sidecar-less Service Mesh from Cilium and Istio
Comparing Sidecar-less Service Mesh from Cilium and IstioComparing Sidecar-less Service Mesh from Cilium and Istio
Comparing Sidecar-less Service Mesh from Cilium and IstioChristian Posta
 
UiPath Community: AI for UiPath Automation Developers
UiPath Community: AI for UiPath Automation DevelopersUiPath Community: AI for UiPath Automation Developers
UiPath Community: AI for UiPath Automation DevelopersUiPathCommunity
 
Do we need a new standard for visualizing the invisible?
Do we need a new standard for visualizing the invisible?Do we need a new standard for visualizing the invisible?
Do we need a new standard for visualizing the invisible?SANGHEE SHIN
 
Machine Learning Model Validation (Aijun Zhang 2024).pdf
Machine Learning Model Validation (Aijun Zhang 2024).pdfMachine Learning Model Validation (Aijun Zhang 2024).pdf
Machine Learning Model Validation (Aijun Zhang 2024).pdfAijun Zhang
 
Videogame localization & technology_ how to enhance the power of translation.pdf
Videogame localization & technology_ how to enhance the power of translation.pdfVideogame localization & technology_ how to enhance the power of translation.pdf
Videogame localization & technology_ how to enhance the power of translation.pdfinfogdgmi
 
KubeConEU24-Monitoring Kubernetes and Cloud Spend with OpenCost
KubeConEU24-Monitoring Kubernetes and Cloud Spend with OpenCostKubeConEU24-Monitoring Kubernetes and Cloud Spend with OpenCost
KubeConEU24-Monitoring Kubernetes and Cloud Spend with OpenCostMatt Ray
 
Bird eye's view on Camunda open source ecosystem
Bird eye's view on Camunda open source ecosystemBird eye's view on Camunda open source ecosystem
Bird eye's view on Camunda open source ecosystemAsko Soukka
 
Connector Corner: Extending LLM automation use cases with UiPath GenAI connec...
Connector Corner: Extending LLM automation use cases with UiPath GenAI connec...Connector Corner: Extending LLM automation use cases with UiPath GenAI connec...
Connector Corner: Extending LLM automation use cases with UiPath GenAI connec...DianaGray10
 
Introduction to Matsuo Laboratory (ENG).pptx
Introduction to Matsuo Laboratory (ENG).pptxIntroduction to Matsuo Laboratory (ENG).pptx
Introduction to Matsuo Laboratory (ENG).pptxMatsuo Lab
 
Cybersecurity Workshop #1.pptx
Cybersecurity Workshop #1.pptxCybersecurity Workshop #1.pptx
Cybersecurity Workshop #1.pptxGDSC PJATK
 
UiPath Studio Web workshop series - Day 8
UiPath Studio Web workshop series - Day 8UiPath Studio Web workshop series - Day 8
UiPath Studio Web workshop series - Day 8DianaGray10
 
UiPath Solutions Management Preview - Northern CA Chapter - March 22.pdf
UiPath Solutions Management Preview - Northern CA Chapter - March 22.pdfUiPath Solutions Management Preview - Northern CA Chapter - March 22.pdf
UiPath Solutions Management Preview - Northern CA Chapter - March 22.pdfDianaGray10
 

Kürzlich hochgeladen (20)

Digital magic. A small project for controlling smart light bulbs.
Digital magic. A small project for controlling smart light bulbs.Digital magic. A small project for controlling smart light bulbs.
Digital magic. A small project for controlling smart light bulbs.
 
UWB Technology for Enhanced Indoor and Outdoor Positioning in Physiological M...
UWB Technology for Enhanced Indoor and Outdoor Positioning in Physiological M...UWB Technology for Enhanced Indoor and Outdoor Positioning in Physiological M...
UWB Technology for Enhanced Indoor and Outdoor Positioning in Physiological M...
 
Computer 10: Lesson 10 - Online Crimes and Hazards
Computer 10: Lesson 10 - Online Crimes and HazardsComputer 10: Lesson 10 - Online Crimes and Hazards
Computer 10: Lesson 10 - Online Crimes and Hazards
 
Using IESVE for Loads, Sizing and Heat Pump Modeling to Achieve Decarbonization
Using IESVE for Loads, Sizing and Heat Pump Modeling to Achieve DecarbonizationUsing IESVE for Loads, Sizing and Heat Pump Modeling to Achieve Decarbonization
Using IESVE for Loads, Sizing and Heat Pump Modeling to Achieve Decarbonization
 
Linked Data in Production: Moving Beyond Ontologies
Linked Data in Production: Moving Beyond OntologiesLinked Data in Production: Moving Beyond Ontologies
Linked Data in Production: Moving Beyond Ontologies
 
Salesforce Miami User Group Event - 1st Quarter 2024
Salesforce Miami User Group Event - 1st Quarter 2024Salesforce Miami User Group Event - 1st Quarter 2024
Salesforce Miami User Group Event - 1st Quarter 2024
 
9 Steps For Building Winning Founding Team
9 Steps For Building Winning Founding Team9 Steps For Building Winning Founding Team
9 Steps For Building Winning Founding Team
 
NIST Cybersecurity Framework (CSF) 2.0 Workshop
NIST Cybersecurity Framework (CSF) 2.0 WorkshopNIST Cybersecurity Framework (CSF) 2.0 Workshop
NIST Cybersecurity Framework (CSF) 2.0 Workshop
 
Comparing Sidecar-less Service Mesh from Cilium and Istio
Comparing Sidecar-less Service Mesh from Cilium and IstioComparing Sidecar-less Service Mesh from Cilium and Istio
Comparing Sidecar-less Service Mesh from Cilium and Istio
 
UiPath Community: AI for UiPath Automation Developers
UiPath Community: AI for UiPath Automation DevelopersUiPath Community: AI for UiPath Automation Developers
UiPath Community: AI for UiPath Automation Developers
 
Do we need a new standard for visualizing the invisible?
Do we need a new standard for visualizing the invisible?Do we need a new standard for visualizing the invisible?
Do we need a new standard for visualizing the invisible?
 
Machine Learning Model Validation (Aijun Zhang 2024).pdf
Machine Learning Model Validation (Aijun Zhang 2024).pdfMachine Learning Model Validation (Aijun Zhang 2024).pdf
Machine Learning Model Validation (Aijun Zhang 2024).pdf
 
Videogame localization & technology_ how to enhance the power of translation.pdf
Videogame localization & technology_ how to enhance the power of translation.pdfVideogame localization & technology_ how to enhance the power of translation.pdf
Videogame localization & technology_ how to enhance the power of translation.pdf
 
KubeConEU24-Monitoring Kubernetes and Cloud Spend with OpenCost
KubeConEU24-Monitoring Kubernetes and Cloud Spend with OpenCostKubeConEU24-Monitoring Kubernetes and Cloud Spend with OpenCost
KubeConEU24-Monitoring Kubernetes and Cloud Spend with OpenCost
 
Bird eye's view on Camunda open source ecosystem
Bird eye's view on Camunda open source ecosystemBird eye's view on Camunda open source ecosystem
Bird eye's view on Camunda open source ecosystem
 
Connector Corner: Extending LLM automation use cases with UiPath GenAI connec...
Connector Corner: Extending LLM automation use cases with UiPath GenAI connec...Connector Corner: Extending LLM automation use cases with UiPath GenAI connec...
Connector Corner: Extending LLM automation use cases with UiPath GenAI connec...
 
Introduction to Matsuo Laboratory (ENG).pptx
Introduction to Matsuo Laboratory (ENG).pptxIntroduction to Matsuo Laboratory (ENG).pptx
Introduction to Matsuo Laboratory (ENG).pptx
 
Cybersecurity Workshop #1.pptx
Cybersecurity Workshop #1.pptxCybersecurity Workshop #1.pptx
Cybersecurity Workshop #1.pptx
 
UiPath Studio Web workshop series - Day 8
UiPath Studio Web workshop series - Day 8UiPath Studio Web workshop series - Day 8
UiPath Studio Web workshop series - Day 8
 
UiPath Solutions Management Preview - Northern CA Chapter - March 22.pdf
UiPath Solutions Management Preview - Northern CA Chapter - March 22.pdfUiPath Solutions Management Preview - Northern CA Chapter - March 22.pdf
UiPath Solutions Management Preview - Northern CA Chapter - March 22.pdf
 

Hyperledger Composer architecture

  • 1. 1Page Hyperledger Composer architecture Simon Stone, Maintainer @mrsimonstone
  • 2. 2 Hyperledger Composer • Hyperledger Composer is a framework to accelerate the development of applications built on top of Blockchain platforms: – Start from the business level; model network assets, participants, and transactions – Applications use business centric APIs to invoke transactions that create, delete, and update assets and transfer them between participants – Assets, participants, and transactions are recorded in the world state in registries – Easily integrate Blockchain with existing business processes and systems of record – Emphasis on quick solution creation and business-centric vocabulary
  • 3. 3 Business network definition • A business network definition is the collection of user developed source artefacts that describe the resources and logic in a business network: – Model files describe assets, participants, and transactions. – Access control lists define rules for sharing and privacy. – Transaction processors implement additional business requirements. – The business network has a name (org.acme.biznet) and a version number (1.0.2). – Can be packaged into a business network archive, or a banana (.bna) file.
  • 4. 4 Deployment to a Blockchain platform • The business network definition can then be deployed to a Blockchain platform along with the Hyperledger Composer runtime. – The runtime is the generic chaincode/smart contract supplied as part of Hyperledger Composer that hosts and understands the business network. – There is no chaincode/smart contract code generation at work here! – The runtime exposes operations on the deployed business network to client applications via a set of APIs. • The majority of the runtime code is Blockchain platform independent, and can be run anywhere that can host a JavaScript virtual machine: – Currently only Hyperledger Fabric v0.6 and v1.0 are supported. – Can also be run in a web browser or in Node.js for development/test purposes.
  • 6. 6 Client side components • The majority of the components are client side components, and provide functionality for developing solutions with Hyperledger Composer: – Playground for developing and testing business networks from a browser. – Client/Admin APIs – Command line interface – REST API generation using LoopBack (http://loopback.io) – Code generation using Yeoman (http://yeoman.io) – Editor plugins for Atom (http://atom.io) and VS Code (https://code.visualstudio.com) • These components make calls to the Blockchain platform in order to interact with the deployed business network (by calling the generic chaincode/smart contract).
  • 7. 7 Blockchain side components • The rest of the components are Blockchain side components, and provide functionality for running a deployed business network: – Persistence of resources (assets, participants, transactions) into registries, which are backed by the underlying world state provided by the Blockchain platform. – Access control enforcement by using the identity (certificate) of the participant who submitted the request. – Execution of user developed transaction processor functions, and the publishing and recording of any business events. • These components expose a set of APIs that can be called by client components to interact with the deployed business network (by calling the generic chaincode/smart contract).
  • 8. 8 composer-common • JavaScript module used by all other modules: – https://github.com/hyperledger/composer/tree/master/packages/composer-common • Provides: – Logging APIs used by the rest of Hyperledger Composer. – Parsing and validating APIs for the parts of a business network definition – model files, access control lists, and transaction processor functions. – APIs for creating and loading business network definitions/archives. – Connection profile manager API, for describing connections to Blockchain platforms. – Connector API, for building connectors which connect to Blockchain platforms. – Code generation for JSON Schemas, LoopBack models, UML diagrams, etc.
  • 9. 9 composer-runtime Core runtime • Blockchain platform independent JavaScript module: – https://github.com/hyperledger/composer/tree/master/packages/composer-runtime • Provides: – Management of the deployed business network. – Persistence of resources (assets, participants, transactions) into registries. – Access control enforcement. – Execution of user developed transaction processor functions. – APIs for exposing the deployed business network. • The runtime must be hosted in a runtime container that provides a set of services which bind the runtime code to the underlying Blockchain platform.
  • 10. 10 composer-runtime-<platform> Runtime container implementations • Blockchain platform specific module: – https://github.com/hyperledger/composer/tree/master/packages/composer-runtime-hlfv1 – https://github.com/hyperledger/composer/tree/master/packages/composer-runtime-web • This is the chaincode/smart contract implementation, that provides a platform specific set of services to the platform independent runtime code: – Loading and execution of JavaScript core runtime. – Routing of API calls from client into core runtime. – Logging – Data persistence using the world state. – Identifying the participant/certificate used to submit the transaction. • The runtime container can be written in any language, for example Golang.
  • 11. 11 Runtime, runtime container, and Blockchain platform
  • 12. 12 composer-connector-<platform> Connector implementations • Blockchain platform specific module: – https://github.com/hyperledger/composer/tree/master/packages/composer-connector-hlfv1 – https://github.com/hyperledger/composer/tree/master/packages/composer-connector-web • Provides clients with a standardized interface (the connector API) that they can use to interact with a business network, regardless of the a Blockchain platform. • Wraps the underlying Blockchain platform client. • Connector implementation selected by connection profile type, and can be dynamically loaded at runtime.
  • 14. 14 Connection profile • Connection profile determines which connector implementation to use: { "type": "hlfv1", "orderers": [ { "url": "grpcs://ldn1-zbc6a.2.secure.blockchain.ibm.com:21505", }, { "url": "grpcs://ldn1-zbc6b.2.secure.blockchain.ibm.com:21505", }, { "url": "grpcs://ldn1-zbc6c.2.secure.blockchain.ibm.com:21505", } ], "peers": [ { Type used to select connector implementation Rest of properties are handed to connector at connect
  • 15. 15 composer-client For building client applications • Blockchain platform independent JavaScript module: – https://github.com/hyperledger/composer/tree/master/packages/composer-client • Uses a connector to interact with the Blockchain platform and send requests to the deployed business network. • Provides APIs for working with a deployed business network: – CRUD APIs for assets, participants, and registries. – Transaction submission. – Issuing and revoking identities. • Performs client side data validation before serializing requests and sending them to the runtime running on the target Blockchain platform.
  • 16. 16 composer-admin For building administrative or operational applications • Blockchain platform independent JavaScript module: – https://github.com/hyperledger/composer/tree/master/packages/composer-admin • Uses a connector to interact with the Blockchain platform and send requests to the deployed business network. • Provides APIs for managing business networks: – First time deployment to the Blockchain platform (deploying the chaincode/smart contract). – Updating of a deployed business network definition. – Upgrading of the core runtime code (upgrading the chaincode/smart contract). – Undeploying a deployed business network.
  • 17. 17 composer-cli For automation and scripting • Blockchain platform independent JavaScript module: – https://github.com/hyperledger/composer/tree/master/packages/composer-cli • Install with npm install –g composer-cli • Provides a CLI application composer that exposes functionality in the composer- admin and composer-client modules to scripting languages: – Deploy, update, upgrade, and undeploy business networks. – CRUD operations for assets, participants, and registries. – Submit transactions. – Issue and revoke identities.
  • 18. 18 composer-playground For developing and testing business networks in a browser • Blockchain platform independent JavaScript module: – https://github.com/hyperledger/composer/tree/master/packages/composer-playground • Install with npm install –g composer-playground or Docker! • Public playground hosted online: http://composer-playground.mybluemix.net • Built in Angular 2 and TypeScript. • Uses the standard composer-client and composer-admin APIs. • Uses the “web” connector and runtime container to simulate a Blockchain platform running in the web browser. • Can use any connector implementation to work with business networks on a “real” Blockchain platform.
  • 19. 19 loopback-connector-composer For building REST APIs for a business network • Blockchain platform independent JavaScript module: – https://github.com/hyperledger/composer/tree/master/packages/loopback-connector-composer • LoopBack (http://loopback.io) is a framework for exposing backend systems such as databases via REST API. • The Hyperledger Composer LoopBack connector exposes a deployed business network to LoopBack so it can generate a REST API for the assets, participants, and transactions in that business network. • The LoopBack connector uses the composer-client APIs. • The composer-rest-server module provides an easy to use CLI application for users who don’t need to understand LoopBack to create a REST API.
  • 20. 20 generator-hyperledger-composer For generating skeleton applications • Blockchain platform independent JavaScript module: – https://github.com/hyperledger/composer/tree/master/packages/generator-hyperledger-composer • Yeoman (http://yeoman.io) is a framework for generating skeleton applications for use by developers as starting points. • The Hyperledger Composer Yeoman generator can generate a CLI or Angular 2 application that demonstrates to the developer how they can interact with a deployed business network. • Can generate an application from a deployed business network or business network archive. • Easy to plug in generators for other application frameworks, such as React.

Hinweis der Redaktion

  1. This presentation assumes that the audience has seen Blockchain Explained (https://ibm.box.com/v/BlockchainExplained)