SlideShare une entreprise Scribd logo
1  sur  69
Télécharger pour lire hors ligne
Blockchain Hyperledger Composer Workshop
Joël Viale – Solution Architect, Blockchain
IBM Global Industry Solutions Center
Joel.viale@fr.ibm.com
Meetup
October 4th 2018
Introduction on Hyperledger:
- HL Fabric
- HL Composer
What’s Next?
Lab 1 – Deploy and test a
sample business network
Lab 2 – Create your own
business network
Introduction on Hyperledger:
- HL Fabric
- HL Composer
What’s Next?
Lab 1 – Deploy and test a
sample business network
Lab 2 – Create your own
business network
4
Choosing what to share
The business network decides what to share on the ledger
• Assets are anything of value
– On the blockchain, these are represented
digitally using a pre-agreed format
• Transactions change the state of an asset and
are provably recorded on the blockchain
– e.g. transfer ownership, change color
• Transactions are underpinned by smart contracts
– Verifiable business rules that cause the
asset to change state
5
Hyperledger: A Linux Foundation project
• IBM Blockchain Platform is underpinned by technology
from the Hyperledger project
• Hyperledger is a collaborative effort created to advance
cross-industry blockchain technologies for business
• Founded February 2016; now more than 250 member
organizations
• Open source
Open standards
Open governance model
Source: https://www.hyperledger.org/members
Updated: 17 September 2018
Premier
General
Associate
Academia Associate
6
Distributed ledger
• An implementation of blockchain technology that is
a foundation for developing blockchain applications
• Emphasis on ledger, smart contracts, consensus,
confidentiality, resiliency and scalability.
• V1.2 released July 2018
– Includes significant confidentiality and
service discovery improvements
• IBM is one of the many contributing organizations
Fabric Explored
7
Ledger
…
The blockchain developer
Blockchain
Developer
D
f(abc);
Smart
Contract
Blockchain developers’ primary interests are…
They should NOT have to care about operational concerns, such as:
Peers Consensus
…and how they interact with the ledger and other systems of record:
Systems
IntegrationEvents
!
Traditional
Data
Sources
Traditional
Processing
Platforms
Application
X Security
8
A ledger often consists of two data structures
• Blockchain
o A linked list of blocks
o Each block describes a set of transactions
(e.g. the inputs to a smart contract invocation)
o Immutable – blocks cannot be tampered
• World State
o An ordinary database (e.g. key/value store)
o Stores the combined outputs of all transactions
o Not usually immutableWorld state
block
txn txn txn
Blockchain
9
Block detail (simplified)
- A blockchain is made up of a series of blocks with new blocks always added to the end
- Each block contains zero or more transactions and some additional metadata
- Blocks achieve immutability by including the result of a hash function of the previous block
- The first block is known as the “genesis” block
Block 16
Previous Block Hash:
57ec2fda71
Block Hash: 87ea2ffe94Block Hash: 57ec2fda71
Block 15
Previous Block Hash:
d68b2f0a3b
Block 17
Previous Block Hash:
87ea2ffe94
Block Hash: 44bf2efe32
Transaction
Transaction
Transaction
Transaction
TransactionTransaction
…
…
10
Working with the ledger example: a change of
ownership transaction
World state
Transaction input - sent from application
invoke(myContract, setOwner,
myCar, Matt)
…
myCar.vin = 1234
myCar.owner = Matt
myCar.make = Audi
…
World state: new contents
Smart contract implementation
setOwner(Car, newOwner) {
set Car.owner = newOwner
}
txn txn txnmyCar.vin =
1234, ...
“Invoke, myContract,
setOwner, myCar, Matt”
Application
f(abc);
Smart
Contract
11
Integrating with existing systems – possibilities
Transform
Existing
systems
1. System
events
2. Blockchain
events
3. Call into blockchain network
from existing systems
Blockchain network Existing
systems
!
!
12
Hyperledger Fabric V1 Architecture
Client
Application
SDK
(HFC)
Membership
Services
Peer
Endorser
Ledger
Committer
A
Chaincode B
!Events
Ordering-Service
O
O O
O
✓
Fabric-CA
✓
External-CA
Hyperledger Fabric Network
optionaloptional
Admin
13
Application proposes transaction
Endorsement policy:
• “E0, E1 and E2 must sign”
• (P3, P4 are not part of the policy)
Client application submits a transaction
proposal for Smart Contract A. It must
target the required peers {E0, E1, E2}
Sample transaction: Step 1/7 – Propose transaction
E0
E1
E2
Client
Application
S
D
K
Endorser Ledger
Committing
Peer
Application
Ordering Node
Smart Contract
(Chaincode)
Endorsement
Policy
Key:
Hyperledger Fabric Network
Ordering-Service
O
O O
OP
P4P3
A
B
A
B
A
B
A
D
14
Sample transaction: Step 2/7 – Execute proposal
Endorsers Execute Proposals
E0, E1 & E2 will each execute the
proposed transaction. None of these
executions will update the ledger
Each execution will capture the set of
Read and Written data, called RW sets,
which will now flow in the fabric.
Transactions can be signed & encrypted
Key:
Hyperledger Fabric Network
Ordering-Service
Endorser Ledger
Committing
Peer
Application
Ordering Node
Smart Contract
(Chaincode)
Endorsement
Policy
O
O O
O
E0
E1
E2
P
P4P3
A
B
A
B
A
B
A
D
Client
Application
S
D
K
15
Sample transaction: Step 3/7 – Proposal Response
Application receives responses
RW sets are asynchronously returned to
application
The RW sets are signed by each
endorser, and also includes each record
version number
(This information will be checked much
later in the consensus process)
Key:
Hyperledger Fabric Network
Ordering-Service
Endorser Ledger
Committing
Peer
Application
Ordering Node
Smart Contract
(Chaincode)
Endorsement
Policy
O
O O
O
E0
E1
E2
P
P4P3
A
B
A
B
A
B
A
D
Client
Application
S
D
K
16
Sample transaction: Step 4/7 – Order Transaction
Responses submitted for ordering
Application submits responses as a
transaction to be ordered.
Ordering happens across the fabric in
parallel with transactions submitted by
other applications
(other applications)
Key:
Hyperledger Fabric Network
Ordering-Service
Endorser Ledger
Committing
Peer
Application
Ordering Node
Smart Contract
(Chaincode)
Endorsement
Policy
O
O O
O
E0
E1
E2
P
P4P3
A
B
A
B
A
B
A
D
Client
Application
S
D
K
17
Hyperledger Fabric Network
Ordering-Service
Sample transaction: Step 5/7 – Deliver Transaction
Orderer delivers to committing peers
Ordering service collects transactions
into proposed blocks for distribution to
committing peers. Peers can deliver to
other peers in a hierarchy (not shown)
Different ordering algorithms available:
• SOLO (Single node, development)
• Kafka (Crash fault tolerance)
O
O O
O
*
Key:
Endorser Ledger
Committing
Peer
Application
Ordering Node
Smart Contract
(Chaincode)
Endorsement
Policy
E0
E1
E2
P
P4P3
A
B
A
B
A
B
A
D
Client
Application
S
D
K
18
Hyperledger Fabric Network
Ordering-Service
Sample transaction: Step 6/7 – Validate Transaction
Committing peers validate transactions
Every committing peer validates against
the endorsement policy. Also check RW
sets are still valid for current world state
Validated transactions are applied to the
world state and retained on the ledger
Invalid transactions are also retained on
the ledger but do not update world state
Endorser Ledger
Committing
Peer
Application
Ordering Node
Smart Contract
(Chaincode)
Endorsement
Policy
Key:
O
O O
O
E0
E1
E2
P
P4P3
A
B
A
B
A
B
A
D
Client
Application
S
D
K
* * *
*
*
19
Client
Application
S
D
K
Hyperledger Fabric Network
Ordering-Service
Sample transaction: Step 7/7 – Notify Transaction
Committing peers notify applications
Applications can register to be notified
when transactions succeed or fail, and
when blocks are added to the ledger
Applications will be notified by each peer
to which they are connected!
!
!
!
! !
Key:
Endorser Ledger
Committing
Peer
Application
Ordering Node
Smart Contract
(Chaincode)
Endorsement
Policy
O
O O
O
E0
E1
E2
P
P4P3
A
B
A
B
A
B
A
D
Introduction on Hyperledger:
- HL Fabric
- HL Composer
What’s Next?
Lab 1 – Deploy and test a
sample business network
Lab 2 – Create your own
business network
21
Business Application
Hyperledger Composer
Blockchain (Hyperledger Fabric)
– A suite of high level application abstractions for business networks
– Emphasis on business-centric vocabulary for quick solution creation
– Reduce risk, and increase understanding and flexibility
– Features
– Model your business networks, test and expose via APIs
– Applications invoke APIs transactions to interact with business network
– Integrate existing systems of record using loopback/REST
– Fully open and part of Linux Foundation Hyperledger
– Try it in your web browser now: http://composer-playground.mybluemix.net/
https://hyperledger.github.io/composer/
Hyperledger Composer: Accelerating time to value
22
• Services that interact with the
registries
• Create, delete, update,
query and invoke smart
contracts
• Implemented inside
business applications,
integration logic and
REST services
• Hosted by the Business
Application Consumer
• Implements the logic deployed to
the blockchain
• Models describe assets,
participants & transactions
• Transaction processors
provide the JavaScript
implementation of
transactions
• ACLs define privacy rules
• May also define events and
registry queries
• Provides the front-end for
the end-user
• May be several of
these applications
• Interacts with business
logic via standard
interfaces (e.g. REST)
• Composer can generate
the REST interface from
model and a sample
application
Business Logic Presentation Logic
Three main components to develop
Smart Contracts
23
Assets, Participants and Transactions
Vehicle Vehicle
Listing AuctioneerMember
Place Offer
Close Bidding
Transaction
Processors
24
– It is possible to restrict which resources can be read
and modified by which participants
– Rules are defined in an .acl file and deployed with
the rest of the model
– Transaction processors can also look up the
current user and implement rules
programmatically
– ACL rules can be simple (e.g. everybody can read all
resources) or more complex (e.g. only the owner of an
asset can do everything to it)
– Application supplies credentials (userid/secret) of the
participant when connecting to the Fabric network
– This also applies to Playground!
– Remember to grant System ACL all access if
necessary
Access Control
25
– Events allow applications to take action when a transaction occurs
– Events are defined in models
– Events are emitted by transaction processor scripts
– Events are caught by business applications
– Caught events include transaction ID and other relevant information
– Queries allow applications to perform complex registry searches
– They can be statically defined in a separate .qry file or generated
dynamically by the application
– They are invoked in the application using buildQuery() or query()
– Queries require the blockchain to be backed by CouchDB
Events and Queries
26
– Web tool for defining and testing Hyperledger
Composer models and scripts
– Designed for the application developer
– Define assets, participants and
transactions
– Implement transaction processor scripts
– Test by populating registries and
invoking transactions
– Deploy to instances of Hyperledger Fabric V1,
or simulate completely within browser
– Install on your machine or run online at
http://composer-playground.mybluemix.net
Smart Contract Development: Composer Playground
27
– Business Network Archive (.BNA) is a package of the
resources used by Fabric:
– Model files (.CTO)
– Transaction processors (.JS)
– Access Control Lists (.ACL)
– Static queries (.QRY)
– Documentation and versioning (.MD)
– It does not contain the client application
– The BNA simplifies deployment of blockchain and
promotion between environments
– c.f. TAR, WAR, EAR, JAR, BAR…
– Create BNA files from Playground or command line
– Build from filesystem or NPM module
model.cto logic.js
Business Network Archive
readme.mdqueries.qry
?
permissions.acl
composer archive create –archiveFile my.bna
--sourceType module --sourceName myNetwork
Resources are then packaged into a BNA file
28
– Manage cards from both Playground and command-line
– Create, delete, export, import, list
– Create requires userid/secret or certificate/private key
– Use cards to connect to Fabric from Playground,
command-line or from within your application
Business Network Cards
– Business Network Cards are a convenient packaging of identity and connection profile
– Contains everything you need to connect to blockchain business network
– Each card refers to a single participant and single business network
– Analogous to an ATM card
composer network install -a my.bna -c my.card
29
– Domain specific APIs very attractive to mobile and web
developers. Resources and operations are business-
meaningful
– Composer exploits Loopback framework to create REST
APIs: https://loopback.io/
– Extensive test facilities for REST methods using loopback
– Secured using JS Passport, giving >400 options for
authentication
– Composer provides back-end integration with any
loopback compatible product
– e.g. IBM Integration Bus, API Connect, StrongLoop
– Outbound and Inbound (where supported by
middleware)
Systems of Record Integration
30
– Define, Test and Deploy Business Networks
– Create domain APIs and sample applications
– Integrate existing systems and data
https://hyperledger.github.io/composer/
http://composer-playground.mybluemix.net/
Get started with Hyperledger Composer
Introduction on Hyperledger:
- HL Fabric
- HL Composer
What’s Next?
Lab 1 – Deploy and test a
sample business network
Lab 2 – Create your own
business network
32
– Connect to Composer Web Playground (Online):
– Deploy an existing sample
– Test some transactions
Access the latest Composer tutorials at:
https://hyperledger.github.io/composer/latest/tutorials/playground-tutorial.html
Lab 1 Content
33
– Open the URL: https://composer-playground.mybluemix.net
– You should see the My Business Networks screen. The My Business Networks
page shows you a summary of the business networks you can connect to, and the
identities you can use to connect to them.
– Don't worry about this too much for the time being, as you're going to test an
existing network
Step One: Open the Hyperledger Composer Playground
34
– Click “Deploy a new business network” under the Web Browser heading to get
started.
– For this first lab, you’re going to deploy an existing example
– Under “2. Model Network Starter Template”, select “carauction-network”
– This will automatically fill the required basic information of your network. You can still
override those values
– Click Deploy
Step Two: Instantiating an existing business network
35
– Now that you've created and deployed the business network, you should see a new
business network card called admin for your business network carauction-network in
your wallet. The wallet can contain business network cards to connect to multiple
deployed business networks.
– When connecting to an external blockchain, business network cards represent
everything necessary to connect to a business network. They include connection
details, authentication material, and metadata.
– To connect to our business network click Connect now under your business
network card.
Step Three: Connecting to the business network
36
– Go to the “Test” tab
– Click on “Auctioneer” on the left
– Click on “+ Create New Participant”
– Use the following payload:
{"$class": "org.acme.vehicle.auction.Auctioneer", "email": "auction@acme.org",
"firstName": "Jenny", "lastName": "Jones" }
– Click “Create New” in the bottom
Step Four: Test your business network
4.1. Create an ‘Auctioneer’
37
– Repeat the same procedure to create 2 new participants of type “Member”
– Use the following payloads:
{ "$class": "org.acme.vehicle.auction.Member", "balance": 5000, "email":
"memberA@acme.org", "firstName": "Amy", "lastName": "Williams" }
{ "$class": "org.acme.vehicle.auction.Member", "balance": 5000, "email":
"memberB@acme.org", "firstName": "Billy", "lastName": "Thompson" }
Step Four: Test your business network
4.2. Create two new ‘Member’
38
– Repeat the same procedure to create one new asset of type “Vehicle”
– Use the following payload:
{ "$class": "org.acme.vehicle.auction.Vehicle", "vin": "vin:1234", "owner":
"resource:org.acme.vehicle.auction.Member#memberA@acme.org" }
Step Four: Test your business network
4.3. Create one ‘Vehicle’
39
– Repeat the same procedure to create one new asset of type “VehicleListing”
– Use the following payload:
{ "$class": "org.acme.vehicle.auction.VehicleListing", "listingId": "listingId:ABCD",
"reservePrice": 3500, "description": "Arium Nova", "state": "FOR_SALE", "vehicle":
"resource:org.acme.vehicle.auction.Vehicle#vin:1234" }
Step Four: Test your business network
4.4. Create one ‘Vehicle’
40
– As soon as a VehicleListing has been created (and is in the FOR_SALE state)
participants can submit Offer transactions to bid on a vehicle listing.
– On the “Test” tab, click on “SubmitTransaction” in the bottom left
– Select “Offer” from the dropdown list as the Transaction Type
– Use the following payload:
{ "$class": "org.acme.vehicle.auction.Offer", "bidPrice": 2000, "listing":
"resource:org.acme.vehicle.auction.VehicleListing#listingId:ABCD", "member":
"resource:org.acme.vehicle.auction.Member#memberA@acme.org" }
– Repeat the same for:
{ "$class": "org.acme.vehicle.auction.Offer", "bidPrice": 3500, "listing":
"resource:org.acme.vehicle.auction.VehicleListing#listingId:ABCD", "member":
"resource:org.acme.vehicle.auction.Member#memberB@acme.org" }
Step Four: Test your business network
4.5. Submit an ‘Offer’ transaction
41
– To indicate the auction is now closed, submit the “CloseBidding” transaction
– Use the following payload:
{ "$class": "org.acme.vehicle.auction.CloseBidding", "listing":
"resource:org.acme.vehicle.auction.VehicleListing#listingId:ABCD" }
Step Four: Test your business network
4.6. End the auction
42
– To see the Vehicle was sold you need to click on the Vehicle asset registry to check
the owner of the car.
– The reserve price was met by owner memberB@acme.org so you should see the
owner of the vehicle is now memberB@acme.org.
– If you check the state of the VehicleListing with listingId:ABCD is should be SOLD.
– If you click on the Member asset registry you can check the balance of each User.
– You should see that the balance of the buyer memberB@acme.org has been
debited by 3500
– whilst the balance of the seller memberA@acme.org has been credited with 3500
Congratulations!
Step Four: Test your business network
4.7. See the results of the auction
43
– Now that transactions have successfully run, you can log out of the business
network, ending up at the My Business Network screen where you started.
– In the upper-right of the screen is a button labelled admin. This lists your current
identity
– To log out, click admin to open the dropdown menu, and click My Business
Networks
– You can use this to navigate back and forth between your different networks
Logging out of the business network
Introduction on Hyperledger:
- HL Fabric
- HL Composer
What’s Next?
Lab 1 – Deploy and test a
sample business network
Lab 2 – Create your own
business network
45
– Purpose of Lab 2
– Below are some recommendations on selecting the right use-case
Next step 1: Create your own business network
46
Good blockchain use-case or bad?
Food
Provenance
Know Your
Customer
Track Your
Child
Electronic
Medical
Records
Holiday
Tracking
Tool
Secure
Document
Store
47
– Identifying a good blockchain use-case is not always easy!
– However there should always be:
1. A business problem to be solved
• That cannot be more efficiently solved with other
technologies
2. An identifiable business network
• With Participants, Assets and Transactions
3. A need for trust
• Consensus, Immutability, Finality or Provenance
What makes a good blockchain use case?
48
– First use-cases are even more difficult to identify!
1. A limited scope, but still solves a real business problem
• Minimum Viable Product in a few weeks of effort
2. A smaller business network
• Usually without requiring regulators and consortia
3. Allows for scaling with more participants and scenarios
• Consider shadow chains to mitigate risks
Start small, succeed and grow fast!
What makes a good first blockchain use case?
49
1. What is the specific business problem / challenge that the first project will address?
2. What is the current way of solving this business problem?
3. Assuming the business problem is large, what specific aspects of this business problem will be addressed?
4. Who are the business network participants (organizations) involved and what are their roles?
5. Who are the specific people within the organization and what are their job roles?
6. What assets are involved and what is the key information associated with the assets?
7. What are the transactions involved, between whom, and what assets are associated with transactions?
8. What are the main steps in the current workflow and how are these executed by the business network participants?
9. What is the expected benefit of applying blockchain technology to the business problem for each of the network
participants?
10. What legacy systems are involved? What degree of integration with the legacy systems is needed?
Sample questions to ask for the selected use case:
50
It is important to ideate potential use-cases
51
– Purpose of Lab 3
Next step 2: Install the development environment and
develop from there
52
– Purpose of Lab 3
Next step 3: Create your own Blockchain HL Fabric
network in a Kubernetes cluster (or IBM Starter Plan)
Introduction on Hyperledger:
- HL Fabric
- HL Composer
What’s Next?
Lab 1 – Deploy and test a
sample business network
Lab 2 – Create your own
business network
54
– Connect to Composer Web Playground (Online)
– Create your own business network
– Test your own transactions
– This tutorial can be followed on line at:
https://hyperledger.github.io/composer/latest/tutorials/playground-tutorial.html
Lab 2 Content
55
– Open the URL: https://composer-playground.mybluemix.net
– You should see the My Business Networks screen. The My Business Networks
page shows you a summary of the business networks you can connect to, and the
identities you can use to connect to them.
– Don't worry about this too much for the time being, as you're going to create your
own network
Step One: Open the Hyperledger Composer Playground
56
– Click “Deploy a new business network” under the Web Browser heading to get
started.
– The new business network needs a name, you can call it like you want, i.e. tutorial-
network
– Optionally, you can enter a description for your business network.
– Next we must select a business network to base yours on, because you want to
build the network from scratch, click empty-business-network
– Now that our network is defined, click Deploy
Step Two: Creating a new business network
57
– Now that you've created and deployed the business network, you should see a new
business network card called admin for your business network tutorial-network in
your wallet. The wallet can contain business network cards to connect to multiple
deployed business networks.
– When connecting to an external blockchain, business network cards represent
everything necessary to connect to a business network. They include connection
details, authentication material, and metadata.
– To connect to our business network click Connect now under your business
network card.
Step Three: Connecting to the business network
58
– As you can see, we're in the Define tab right now, this tab is where you create and
edit the files that make up a business network definition, before deploying them and
testing them using the Test tab.
– As you selected an empty business network template, we need to modify the
template files provided.
– The first step is to update the model file. Model files define the assets,
participants, transactions, and events in our business network.
– For more information on the modeling language, check the documentation:
https://hyperledger.github.io/composer/latest/reference/cto_language.html
– Click the Model file to view it.
– Delete the lines of code in the model file and start creating your own lines. You can
get use the following lines as a guide:
Step Four: Adding a model file
59
/**
* My commodity trading network
*/
namespace org.example.mynetwork
asset Commodity identified by tradingSymbol {
o String tradingSymbol
o String description
o String mainExchange
o Double quantity --> Trader owner
}
participant Trader identified by tradeId {
o String tradeId
o String firstName
o String lastName
}
transaction Trade {
 Commodity commodity
 --> Trader newOwner
 }
Step Four: Adding a model file
60
– Now that the domain model has been defined, we can define the transaction logic
for the business network. Composer expresses the logic for a business network
using JavaScript functions. These functions are automatically executed when a
transaction is submitted for processing
– For more information on writing transaction processor functions, check the
documentation:
https://hyperledger.github.io/composer/latest/reference/js_scripts.html
– Click the “Add a file” button.
– Click the Script file and click Add.
– Delete the lines of code in the script file and replace it with your own code. You can
use the following as a guide:
Step Five: Adding a transaction processor script file
61
/**
*Track the trade of a commodity from one trader to another
*@param {org.example.mynetwork.Trade} trade - the trade to be processed
*@transaction
*/
async function tradeCommodity(trade) {
trade.commodity.owner = trade.newOwner;
let assetRegistry = await
getAssetRegistry('org.example.mynetwork.Commodity');
await assetRegistry.update(trade.commodity);
}
Step Five: Adding a transaction processor script file
62
– Access control files define the access control rules for business networks. Your
network should be simple, so the default access control file doesn't need editing
– The basic file gives the current participant networkAdmin full access to business
network and system-level operations.
– While you can have multiple model or script files, you can only have one access
control file in any business network.
– For more information on access control files, check the documentation:
https://hyperledger.github.io/composer/latest/reference/acl_language.html
Step Six: Access control
63
– Now that you have model, script, and access control files, we need to deploy and
test your business network.
– Click Deploy changes to upgrade the business network.
Step Seven: Deploying the updated business network
64
– Next, you need to test your business network by creating some participants, some
asset, and then submit transactions.
– Click the Test tab to get started
– Use your experience and instructions from Lab 1 to test your network
Step Eight: Testing the business network definition
A little extra…
Lab 3 – Setup your development
environment on your computer
and create a full Composer
solution
66
– You can follow the online tutorial:
https://hyperledger.github.io/composer/latest/tutorials/developer-tutorial.html
Setup your development environment locally
67
– You can follow the online tutorial:
https://ibm-blockchain.github.io/ or
https://github.com/IBM/blockchain-network-on-kubernetes
Create a Blockchain Hyperledger Fabric network in a
Kubernetes cluster
Questions? Tweet us or
go to ibm.com/blockchain
@IBMBlockchain
IBM Blockchain
IBM Blockchain
Thank you
Joël Viale
© Copyright IBM Corporation 2018. All rights reserved. The information contained in these
materials is provided for informational purposes only, and is provided AS IS without warranty
of any kind, express or implied. Any statement of direction represents IBM's current intent, is
subject to change or withdrawal, and represents only goals and objectives. IBM, the IBM
logo, and other IBM products and services are trademarks of the International Business
Machines Corporation, in the United States, other countries or both. Other company, product,
or service names may be trademarks or service marks of others.

Contenu connexe

Tendances

Hyperledger community update 20180528
Hyperledger community update 20180528Hyperledger community update 20180528
Hyperledger community update 20180528Arnaud Le Hors
 
Introduction of Hyperledger Fabric & Composer
Introduction of Hyperledger Fabric & Composer Introduction of Hyperledger Fabric & Composer
Introduction of Hyperledger Fabric & Composer Dr. Ketan Parmar
 
Blockchain explained FIATA Congress 20180910
Blockchain explained FIATA Congress 20180910Blockchain explained FIATA Congress 20180910
Blockchain explained FIATA Congress 20180910Arnaud Le Hors
 
Hyperledger Fabric & Composer
Hyperledger Fabric & Composer Hyperledger Fabric & Composer
Hyperledger Fabric & Composer Dr. Ketan Parmar
 
Hyperledger Fabric Application Development 20190618
Hyperledger Fabric Application Development 20190618Hyperledger Fabric Application Development 20190618
Hyperledger Fabric Application Development 20190618Arnaud Le Hors
 
Hyperledger Composer
Hyperledger ComposerHyperledger Composer
Hyperledger ComposerRihusoft
 
IBM Bluemix Nice Meetup - 20171120 - Hyperledger Fabric & Composer
IBM Bluemix Nice Meetup - 20171120 - Hyperledger Fabric & ComposerIBM Bluemix Nice Meetup - 20171120 - Hyperledger Fabric & Composer
IBM Bluemix Nice Meetup - 20171120 - Hyperledger Fabric & ComposerIBM France Lab
 
Hyperledger Fabric - Blockchain, sushi and supply chain
Hyperledger Fabric - Blockchain, sushi and supply chain    Hyperledger Fabric - Blockchain, sushi and supply chain
Hyperledger Fabric - Blockchain, sushi and supply chain Grant Steinfeld
 
Ethereum Smart Contracts on Hyperledger Fabric
Ethereum Smart Contracts on Hyperledger Fabric Ethereum Smart Contracts on Hyperledger Fabric
Ethereum Smart Contracts on Hyperledger Fabric Horea Porutiu
 
Gluecon 2016 Keynote: Deploying and Managing Blockchain Applications
Gluecon 2016 Keynote: Deploying and Managing Blockchain ApplicationsGluecon 2016 Keynote: Deploying and Managing Blockchain Applications
Gluecon 2016 Keynote: Deploying and Managing Blockchain ApplicationsDuncan Johnston-Watt
 
Blockchain with HyperLedger (Public version)
Blockchain with HyperLedger (Public version)Blockchain with HyperLedger (Public version)
Blockchain with HyperLedger (Public version)Benjamin Fuentes
 
Hyperledger Fabric - Blockchain for the Enterprise - FOSDEM 20190203
Hyperledger Fabric - Blockchain for the Enterprise - FOSDEM 20190203Hyperledger Fabric - Blockchain for the Enterprise - FOSDEM 20190203
Hyperledger Fabric - Blockchain for the Enterprise - FOSDEM 20190203Arnaud Le Hors
 
Hyperledger Fabric in a Nutshell
Hyperledger Fabric in a NutshellHyperledger Fabric in a Nutshell
Hyperledger Fabric in a NutshellDaniel Chan
 
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 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
 

Tendances (20)

Hyperledger community update 20180528
Hyperledger community update 20180528Hyperledger community update 20180528
Hyperledger community update 20180528
 
IBM Blockchain Overview
IBM Blockchain OverviewIBM Blockchain Overview
IBM Blockchain Overview
 
Introduction of Hyperledger Fabric & Composer
Introduction of Hyperledger Fabric & Composer Introduction of Hyperledger Fabric & Composer
Introduction of Hyperledger Fabric & Composer
 
Blockchain explained FIATA Congress 20180910
Blockchain explained FIATA Congress 20180910Blockchain explained FIATA Congress 20180910
Blockchain explained FIATA Congress 20180910
 
Hyperledger
HyperledgerHyperledger
Hyperledger
 
Hyperledger Fabric & Composer
Hyperledger Fabric & Composer Hyperledger Fabric & Composer
Hyperledger Fabric & Composer
 
Hyperledger Fabric Application Development 20190618
Hyperledger Fabric Application Development 20190618Hyperledger Fabric Application Development 20190618
Hyperledger Fabric Application Development 20190618
 
Hyperledger Composer
Hyperledger ComposerHyperledger Composer
Hyperledger Composer
 
IBM Bluemix Nice Meetup - 20171120 - Hyperledger Fabric & Composer
IBM Bluemix Nice Meetup - 20171120 - Hyperledger Fabric & ComposerIBM Bluemix Nice Meetup - 20171120 - Hyperledger Fabric & Composer
IBM Bluemix Nice Meetup - 20171120 - Hyperledger Fabric & Composer
 
Hyperledger Fabric - Blockchain, sushi and supply chain
Hyperledger Fabric - Blockchain, sushi and supply chain    Hyperledger Fabric - Blockchain, sushi and supply chain
Hyperledger Fabric - Blockchain, sushi and supply chain
 
Ethereum Smart Contracts on Hyperledger Fabric
Ethereum Smart Contracts on Hyperledger Fabric Ethereum Smart Contracts on Hyperledger Fabric
Ethereum Smart Contracts on Hyperledger Fabric
 
Gluecon 2016 Keynote: Deploying and Managing Blockchain Applications
Gluecon 2016 Keynote: Deploying and Managing Blockchain ApplicationsGluecon 2016 Keynote: Deploying and Managing Blockchain Applications
Gluecon 2016 Keynote: Deploying and Managing Blockchain Applications
 
IBM Blockchain 101
IBM Blockchain 101IBM Blockchain 101
IBM Blockchain 101
 
Blockchain with HyperLedger (Public version)
Blockchain with HyperLedger (Public version)Blockchain with HyperLedger (Public version)
Blockchain with HyperLedger (Public version)
 
Hyperledger Fabric - Blockchain for the Enterprise - FOSDEM 20190203
Hyperledger Fabric - Blockchain for the Enterprise - FOSDEM 20190203Hyperledger Fabric - Blockchain for the Enterprise - FOSDEM 20190203
Hyperledger Fabric - Blockchain for the Enterprise - FOSDEM 20190203
 
Hyperledger Fabric in a Nutshell
Hyperledger Fabric in a NutshellHyperledger Fabric in a Nutshell
Hyperledger Fabric in a Nutshell
 
Hyperledger Fabric
Hyperledger FabricHyperledger Fabric
Hyperledger Fabric
 
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 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
 
Hyperledger: Advancing Blockchain Technology for Business
Hyperledger: Advancing Blockchain Technology for BusinessHyperledger: Advancing Blockchain Technology for Business
Hyperledger: Advancing Blockchain Technology for Business
 

Similaire à IBM Cloud Côte D'Azur Meetup - 20181004 - Blockchain Hyperledger Workshop

Introduction to Hyperledger Composer
Introduction to Hyperledger ComposerIntroduction to Hyperledger Composer
Introduction to Hyperledger ComposerSimon Stone
 
IBM Blockchain Platform - Architectural Good Practices v1.0
IBM Blockchain Platform - Architectural Good Practices v1.0IBM Blockchain Platform - Architectural Good Practices v1.0
IBM Blockchain Platform - Architectural Good Practices v1.0Matt Lucas
 
Ibp technical introduction
Ibp technical introductionIbp technical introduction
Ibp technical introductionLennartF
 
Hyperledger Fabric and Tools
Hyperledger Fabric and ToolsHyperledger Fabric and Tools
Hyperledger Fabric and ToolsRihusoft
 
Blockchain architected
Blockchain architectedBlockchain architected
Blockchain architectedIBM Sverige
 
Deploy a blockchain web-app with Hyperledger Fabric 1.4 - Concepts & Code
Deploy a blockchain web-app with Hyperledger Fabric 1.4 - Concepts & CodeDeploy a blockchain web-app with Hyperledger Fabric 1.4 - Concepts & Code
Deploy a blockchain web-app with Hyperledger Fabric 1.4 - Concepts & CodeHorea Porutiu
 
Deployablockchainwebappwithhyperledgerfabricpresentation 190820170703
Deployablockchainwebappwithhyperledgerfabricpresentation 190820170703Deployablockchainwebappwithhyperledgerfabricpresentation 190820170703
Deployablockchainwebappwithhyperledgerfabricpresentation 190820170703Nevruz Mesut Sahin
 
An introduction to blockchain and hyperledger v ru
An introduction to blockchain and hyperledger v ruAn introduction to blockchain and hyperledger v ru
An introduction to blockchain and hyperledger v ruLennartF
 
[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
 
Blockchain explored
Blockchain explored Blockchain explored
Blockchain explored IBM Sverige
 
Hyperledger Fabric Technical Deep Dive 20190618
Hyperledger Fabric Technical Deep Dive 20190618Hyperledger Fabric Technical Deep Dive 20190618
Hyperledger Fabric Technical Deep Dive 20190618Arnaud Le Hors
 
Anatomy of a hyperledger application
Anatomy of a hyperledger applicationAnatomy of a hyperledger application
Anatomy of a hyperledger applicationEric Cattoir
 
Hyperledger community update Feb 20, 2018
Hyperledger community update Feb 20, 2018Hyperledger community update Feb 20, 2018
Hyperledger community update Feb 20, 2018Arnaud Le Hors
 
Doag 2018 eine_reise_durch_die_blockchain_applikationsentwicklung_final
Doag 2018 eine_reise_durch_die_blockchain_applikationsentwicklung_finalDoag 2018 eine_reise_durch_die_blockchain_applikationsentwicklung_final
Doag 2018 eine_reise_durch_die_blockchain_applikationsentwicklung_finalOPITZ CONSULTING Deutschland
 
Dejan Podgorsek - Is Hyperledger Fabric secure enough for your Business?
Dejan Podgorsek - Is Hyperledger Fabric secure enough for your Business?Dejan Podgorsek - Is Hyperledger Fabric secure enough for your Business?
Dejan Podgorsek - Is Hyperledger Fabric secure enough for your Business?Hacken_Ecosystem
 
02 - Introduction to Hyperledger Fabric
02 - Introduction to Hyperledger Fabric  02 - Introduction to Hyperledger Fabric
02 - Introduction to Hyperledger Fabric Merlec Mpyana
 

Similaire à IBM Cloud Côte D'Azur Meetup - 20181004 - Blockchain Hyperledger Workshop (20)

Introduction to Hyperledger Composer
Introduction to Hyperledger ComposerIntroduction to Hyperledger Composer
Introduction to Hyperledger Composer
 
Hyperledger
HyperledgerHyperledger
Hyperledger
 
IBM Blockchain Platform - Architectural Good Practices v1.0
IBM Blockchain Platform - Architectural Good Practices v1.0IBM Blockchain Platform - Architectural Good Practices v1.0
IBM Blockchain Platform - Architectural Good Practices v1.0
 
Ibp technical introduction
Ibp technical introductionIbp technical introduction
Ibp technical introduction
 
Hyperledger Fabric and Tools
Hyperledger Fabric and ToolsHyperledger Fabric and Tools
Hyperledger Fabric and Tools
 
Blockchain architected
Blockchain architectedBlockchain architected
Blockchain architected
 
Blockchain for the Enterprise
Blockchain for the EnterpriseBlockchain for the Enterprise
Blockchain for the Enterprise
 
Deploy a blockchain web-app with Hyperledger Fabric 1.4 - Concepts & Code
Deploy a blockchain web-app with Hyperledger Fabric 1.4 - Concepts & CodeDeploy a blockchain web-app with Hyperledger Fabric 1.4 - Concepts & Code
Deploy a blockchain web-app with Hyperledger Fabric 1.4 - Concepts & Code
 
Deployablockchainwebappwithhyperledgerfabricpresentation 190820170703
Deployablockchainwebappwithhyperledgerfabricpresentation 190820170703Deployablockchainwebappwithhyperledgerfabricpresentation 190820170703
Deployablockchainwebappwithhyperledgerfabricpresentation 190820170703
 
An introduction to blockchain and hyperledger v ru
An introduction to blockchain and hyperledger v ruAn introduction to blockchain and hyperledger v ru
An introduction to blockchain and hyperledger v ru
 
Conoscerehyperledger
ConoscerehyperledgerConoscerehyperledger
Conoscerehyperledger
 
[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 맹개발
 
Blockchain explored
Blockchain explored Blockchain explored
Blockchain explored
 
Hyperledger Fabric Technical Deep Dive 20190618
Hyperledger Fabric Technical Deep Dive 20190618Hyperledger Fabric Technical Deep Dive 20190618
Hyperledger Fabric Technical Deep Dive 20190618
 
Defrag x blockchain keynote
Defrag x blockchain keynoteDefrag x blockchain keynote
Defrag x blockchain keynote
 
Anatomy of a hyperledger application
Anatomy of a hyperledger applicationAnatomy of a hyperledger application
Anatomy of a hyperledger application
 
Hyperledger community update Feb 20, 2018
Hyperledger community update Feb 20, 2018Hyperledger community update Feb 20, 2018
Hyperledger community update Feb 20, 2018
 
Doag 2018 eine_reise_durch_die_blockchain_applikationsentwicklung_final
Doag 2018 eine_reise_durch_die_blockchain_applikationsentwicklung_finalDoag 2018 eine_reise_durch_die_blockchain_applikationsentwicklung_final
Doag 2018 eine_reise_durch_die_blockchain_applikationsentwicklung_final
 
Dejan Podgorsek - Is Hyperledger Fabric secure enough for your Business?
Dejan Podgorsek - Is Hyperledger Fabric secure enough for your Business?Dejan Podgorsek - Is Hyperledger Fabric secure enough for your Business?
Dejan Podgorsek - Is Hyperledger Fabric secure enough for your Business?
 
02 - Introduction to Hyperledger Fabric
02 - Introduction to Hyperledger Fabric  02 - Introduction to Hyperledger Fabric
02 - Introduction to Hyperledger Fabric
 

Plus de IBM France Lab

20200113 - IBM Cloud Côte d'Azur - DeepDive Kubernetes
20200113 - IBM Cloud Côte d'Azur - DeepDive Kubernetes20200113 - IBM Cloud Côte d'Azur - DeepDive Kubernetes
20200113 - IBM Cloud Côte d'Azur - DeepDive KubernetesIBM France Lab
 
20200114 - IBM Cloud Paris Meetup - DevOps
20200114 - IBM Cloud Paris Meetup - DevOps20200114 - IBM Cloud Paris Meetup - DevOps
20200114 - IBM Cloud Paris Meetup - DevOpsIBM France Lab
 
20200128 - Meetup Nice Côte d'Azur - Agile Mindset
20200128 - Meetup Nice Côte d'Azur - Agile Mindset20200128 - Meetup Nice Côte d'Azur - Agile Mindset
20200128 - Meetup Nice Côte d'Azur - Agile MindsetIBM France Lab
 
Défis de l'IA : droits, devoirs, enjeux économiques et éthiques
Défis de l'IA : droits, devoirs, enjeux économiques et éthiquesDéfis de l'IA : droits, devoirs, enjeux économiques et éthiques
Défis de l'IA : droits, devoirs, enjeux économiques et éthiquesIBM France Lab
 
Meetup ibm abakus banque postale
Meetup ibm abakus banque postaleMeetup ibm abakus banque postale
Meetup ibm abakus banque postaleIBM France Lab
 
20190613 - IBM Cloud Côte d'Azur meetup - "Cloud & Containers"
20190613 - IBM Cloud Côte d'Azur meetup - "Cloud & Containers"20190613 - IBM Cloud Côte d'Azur meetup - "Cloud & Containers"
20190613 - IBM Cloud Côte d'Azur meetup - "Cloud & Containers"IBM France Lab
 
20190613 - IBM Cloud Côte d'Azur meetup - "Cloud & Containers"
20190613 - IBM Cloud Côte d'Azur meetup - "Cloud & Containers"20190613 - IBM Cloud Côte d'Azur meetup - "Cloud & Containers"
20190613 - IBM Cloud Côte d'Azur meetup - "Cloud & Containers"IBM France Lab
 
IBM Watson IOT - Acoustic or Visual Insights
IBM Watson IOT - Acoustic or Visual InsightsIBM Watson IOT - Acoustic or Visual Insights
IBM Watson IOT - Acoustic or Visual InsightsIBM France Lab
 
Retour expérience Track & Trace - IBM using Sigfox.
Retour expérience Track & Trace - IBM using Sigfox.Retour expérience Track & Trace - IBM using Sigfox.
Retour expérience Track & Trace - IBM using Sigfox.IBM France Lab
 
20190520 - IBM Cloud Paris-Saclay Meetup - Hardis Group
20190520  - IBM Cloud Paris-Saclay Meetup - Hardis Group20190520  - IBM Cloud Paris-Saclay Meetup - Hardis Group
20190520 - IBM Cloud Paris-Saclay Meetup - Hardis GroupIBM France Lab
 
IBM Cloud Paris Meetup - 20190520 - IA & Power
IBM Cloud Paris Meetup - 20190520 - IA & PowerIBM Cloud Paris Meetup - 20190520 - IA & Power
IBM Cloud Paris Meetup - 20190520 - IA & PowerIBM France Lab
 
IBM Cloud Côte d'Azur Meetup - 20190328 - Optimisation
IBM Cloud Côte d'Azur Meetup - 20190328 - OptimisationIBM Cloud Côte d'Azur Meetup - 20190328 - Optimisation
IBM Cloud Côte d'Azur Meetup - 20190328 - OptimisationIBM France Lab
 
IBM Cloud Côte d'Azur Meetup - 20190328 - Optimisation
IBM Cloud Côte d'Azur Meetup - 20190328 - OptimisationIBM Cloud Côte d'Azur Meetup - 20190328 - Optimisation
IBM Cloud Côte d'Azur Meetup - 20190328 - OptimisationIBM France Lab
 
IBM Cloud Bordeaux Meetup - 20190325 - Software Factory
IBM Cloud Bordeaux Meetup - 20190325 - Software FactoryIBM Cloud Bordeaux Meetup - 20190325 - Software Factory
IBM Cloud Bordeaux Meetup - 20190325 - Software FactoryIBM France Lab
 
IBM Cloud Paris Meetup - 20190129 - Assima
IBM Cloud Paris Meetup - 20190129 - AssimaIBM Cloud Paris Meetup - 20190129 - Assima
IBM Cloud Paris Meetup - 20190129 - AssimaIBM France Lab
 
IBM Cloud Paris Meetup - 20190129 - Myrtea
IBM Cloud Paris Meetup - 20190129 - MyrteaIBM Cloud Paris Meetup - 20190129 - Myrtea
IBM Cloud Paris Meetup - 20190129 - MyrteaIBM France Lab
 
IBM Cloud Paris Meetup - 20181016 - L'agilité à l'échelle
IBM Cloud Paris Meetup - 20181016 - L'agilité à l'échelleIBM Cloud Paris Meetup - 20181016 - L'agilité à l'échelle
IBM Cloud Paris Meetup - 20181016 - L'agilité à l'échelleIBM France Lab
 
IBM Cloud Paris Meetup - 20180911 - Common Ledger for Public Administration
IBM Cloud Paris Meetup - 20180911 - Common Ledger for Public AdministrationIBM Cloud Paris Meetup - 20180911 - Common Ledger for Public Administration
IBM Cloud Paris Meetup - 20180911 - Common Ledger for Public AdministrationIBM France Lab
 
IBM Cloud Paris Meetup - 20180911 - Smart Citizen Bot
IBM Cloud Paris Meetup - 20180911 - Smart Citizen BotIBM Cloud Paris Meetup - 20180911 - Smart Citizen Bot
IBM Cloud Paris Meetup - 20180911 - Smart Citizen BotIBM France Lab
 
IBM Cloud Paris Meetup - 20180911 - Goal Driven Automation
IBM Cloud Paris Meetup - 20180911 - Goal Driven AutomationIBM Cloud Paris Meetup - 20180911 - Goal Driven Automation
IBM Cloud Paris Meetup - 20180911 - Goal Driven AutomationIBM France Lab
 

Plus de IBM France Lab (20)

20200113 - IBM Cloud Côte d'Azur - DeepDive Kubernetes
20200113 - IBM Cloud Côte d'Azur - DeepDive Kubernetes20200113 - IBM Cloud Côte d'Azur - DeepDive Kubernetes
20200113 - IBM Cloud Côte d'Azur - DeepDive Kubernetes
 
20200114 - IBM Cloud Paris Meetup - DevOps
20200114 - IBM Cloud Paris Meetup - DevOps20200114 - IBM Cloud Paris Meetup - DevOps
20200114 - IBM Cloud Paris Meetup - DevOps
 
20200128 - Meetup Nice Côte d'Azur - Agile Mindset
20200128 - Meetup Nice Côte d'Azur - Agile Mindset20200128 - Meetup Nice Côte d'Azur - Agile Mindset
20200128 - Meetup Nice Côte d'Azur - Agile Mindset
 
Défis de l'IA : droits, devoirs, enjeux économiques et éthiques
Défis de l'IA : droits, devoirs, enjeux économiques et éthiquesDéfis de l'IA : droits, devoirs, enjeux économiques et éthiques
Défis de l'IA : droits, devoirs, enjeux économiques et éthiques
 
Meetup ibm abakus banque postale
Meetup ibm abakus banque postaleMeetup ibm abakus banque postale
Meetup ibm abakus banque postale
 
20190613 - IBM Cloud Côte d'Azur meetup - "Cloud & Containers"
20190613 - IBM Cloud Côte d'Azur meetup - "Cloud & Containers"20190613 - IBM Cloud Côte d'Azur meetup - "Cloud & Containers"
20190613 - IBM Cloud Côte d'Azur meetup - "Cloud & Containers"
 
20190613 - IBM Cloud Côte d'Azur meetup - "Cloud & Containers"
20190613 - IBM Cloud Côte d'Azur meetup - "Cloud & Containers"20190613 - IBM Cloud Côte d'Azur meetup - "Cloud & Containers"
20190613 - IBM Cloud Côte d'Azur meetup - "Cloud & Containers"
 
IBM Watson IOT - Acoustic or Visual Insights
IBM Watson IOT - Acoustic or Visual InsightsIBM Watson IOT - Acoustic or Visual Insights
IBM Watson IOT - Acoustic or Visual Insights
 
Retour expérience Track & Trace - IBM using Sigfox.
Retour expérience Track & Trace - IBM using Sigfox.Retour expérience Track & Trace - IBM using Sigfox.
Retour expérience Track & Trace - IBM using Sigfox.
 
20190520 - IBM Cloud Paris-Saclay Meetup - Hardis Group
20190520  - IBM Cloud Paris-Saclay Meetup - Hardis Group20190520  - IBM Cloud Paris-Saclay Meetup - Hardis Group
20190520 - IBM Cloud Paris-Saclay Meetup - Hardis Group
 
IBM Cloud Paris Meetup - 20190520 - IA & Power
IBM Cloud Paris Meetup - 20190520 - IA & PowerIBM Cloud Paris Meetup - 20190520 - IA & Power
IBM Cloud Paris Meetup - 20190520 - IA & Power
 
IBM Cloud Côte d'Azur Meetup - 20190328 - Optimisation
IBM Cloud Côte d'Azur Meetup - 20190328 - OptimisationIBM Cloud Côte d'Azur Meetup - 20190328 - Optimisation
IBM Cloud Côte d'Azur Meetup - 20190328 - Optimisation
 
IBM Cloud Côte d'Azur Meetup - 20190328 - Optimisation
IBM Cloud Côte d'Azur Meetup - 20190328 - OptimisationIBM Cloud Côte d'Azur Meetup - 20190328 - Optimisation
IBM Cloud Côte d'Azur Meetup - 20190328 - Optimisation
 
IBM Cloud Bordeaux Meetup - 20190325 - Software Factory
IBM Cloud Bordeaux Meetup - 20190325 - Software FactoryIBM Cloud Bordeaux Meetup - 20190325 - Software Factory
IBM Cloud Bordeaux Meetup - 20190325 - Software Factory
 
IBM Cloud Paris Meetup - 20190129 - Assima
IBM Cloud Paris Meetup - 20190129 - AssimaIBM Cloud Paris Meetup - 20190129 - Assima
IBM Cloud Paris Meetup - 20190129 - Assima
 
IBM Cloud Paris Meetup - 20190129 - Myrtea
IBM Cloud Paris Meetup - 20190129 - MyrteaIBM Cloud Paris Meetup - 20190129 - Myrtea
IBM Cloud Paris Meetup - 20190129 - Myrtea
 
IBM Cloud Paris Meetup - 20181016 - L'agilité à l'échelle
IBM Cloud Paris Meetup - 20181016 - L'agilité à l'échelleIBM Cloud Paris Meetup - 20181016 - L'agilité à l'échelle
IBM Cloud Paris Meetup - 20181016 - L'agilité à l'échelle
 
IBM Cloud Paris Meetup - 20180911 - Common Ledger for Public Administration
IBM Cloud Paris Meetup - 20180911 - Common Ledger for Public AdministrationIBM Cloud Paris Meetup - 20180911 - Common Ledger for Public Administration
IBM Cloud Paris Meetup - 20180911 - Common Ledger for Public Administration
 
IBM Cloud Paris Meetup - 20180911 - Smart Citizen Bot
IBM Cloud Paris Meetup - 20180911 - Smart Citizen BotIBM Cloud Paris Meetup - 20180911 - Smart Citizen Bot
IBM Cloud Paris Meetup - 20180911 - Smart Citizen Bot
 
IBM Cloud Paris Meetup - 20180911 - Goal Driven Automation
IBM Cloud Paris Meetup - 20180911 - Goal Driven AutomationIBM Cloud Paris Meetup - 20180911 - Goal Driven Automation
IBM Cloud Paris Meetup - 20180911 - Goal Driven Automation
 

Dernier

CNv6 Instructor Chapter 6 Quality of Service
CNv6 Instructor Chapter 6 Quality of ServiceCNv6 Instructor Chapter 6 Quality of Service
CNv6 Instructor Chapter 6 Quality of Servicegiselly40
 
Data Cloud, More than a CDP by Matt Robison
Data Cloud, More than a CDP by Matt RobisonData Cloud, More than a CDP by Matt Robison
Data Cloud, More than a CDP by Matt RobisonAnna Loughnan Colquhoun
 
A Domino Admins Adventures (Engage 2024)
A Domino Admins Adventures (Engage 2024)A Domino Admins Adventures (Engage 2024)
A Domino Admins Adventures (Engage 2024)Gabriella Davis
 
Finology Group – Insurtech Innovation Award 2024
Finology Group – Insurtech Innovation Award 2024Finology Group – Insurtech Innovation Award 2024
Finology Group – Insurtech Innovation Award 2024The Digital Insurer
 
04-2024-HHUG-Sales-and-Marketing-Alignment.pptx
04-2024-HHUG-Sales-and-Marketing-Alignment.pptx04-2024-HHUG-Sales-and-Marketing-Alignment.pptx
04-2024-HHUG-Sales-and-Marketing-Alignment.pptxHampshireHUG
 
Raspberry Pi 5: Challenges and Solutions in Bringing up an OpenGL/Vulkan Driv...
Raspberry Pi 5: Challenges and Solutions in Bringing up an OpenGL/Vulkan Driv...Raspberry Pi 5: Challenges and Solutions in Bringing up an OpenGL/Vulkan Driv...
Raspberry Pi 5: Challenges and Solutions in Bringing up an OpenGL/Vulkan Driv...Igalia
 
08448380779 Call Girls In Friends Colony Women Seeking Men
08448380779 Call Girls In Friends Colony Women Seeking Men08448380779 Call Girls In Friends Colony Women Seeking Men
08448380779 Call Girls In Friends Colony Women Seeking MenDelhi Call girls
 
Bajaj Allianz Life Insurance Company - Insurer Innovation Award 2024
Bajaj Allianz Life Insurance Company - Insurer Innovation Award 2024Bajaj Allianz Life Insurance Company - Insurer Innovation Award 2024
Bajaj Allianz Life Insurance Company - Insurer Innovation Award 2024The Digital Insurer
 
Presentation on how to chat with PDF using ChatGPT code interpreter
Presentation on how to chat with PDF using ChatGPT code interpreterPresentation on how to chat with PDF using ChatGPT code interpreter
Presentation on how to chat with PDF using ChatGPT code interpreternaman860154
 
Understanding Discord NSFW Servers A Guide for Responsible Users.pdf
Understanding Discord NSFW Servers A Guide for Responsible Users.pdfUnderstanding Discord NSFW Servers A Guide for Responsible Users.pdf
Understanding Discord NSFW Servers A Guide for Responsible Users.pdfUK Journal
 
Apidays Singapore 2024 - Building Digital Trust in a Digital Economy by Veron...
Apidays Singapore 2024 - Building Digital Trust in a Digital Economy by Veron...Apidays Singapore 2024 - Building Digital Trust in a Digital Economy by Veron...
Apidays Singapore 2024 - Building Digital Trust in a Digital Economy by Veron...apidays
 
🐬 The future of MySQL is Postgres 🐘
🐬  The future of MySQL is Postgres   🐘🐬  The future of MySQL is Postgres   🐘
🐬 The future of MySQL is Postgres 🐘RTylerCroy
 
Strategize a Smooth Tenant-to-tenant Migration and Copilot Takeoff
Strategize a Smooth Tenant-to-tenant Migration and Copilot TakeoffStrategize a Smooth Tenant-to-tenant Migration and Copilot Takeoff
Strategize a Smooth Tenant-to-tenant Migration and Copilot Takeoffsammart93
 
GenCyber Cyber Security Day Presentation
GenCyber Cyber Security Day PresentationGenCyber Cyber Security Day Presentation
GenCyber Cyber Security Day PresentationMichael W. Hawkins
 
What Are The Drone Anti-jamming Systems Technology?
What Are The Drone Anti-jamming Systems Technology?What Are The Drone Anti-jamming Systems Technology?
What Are The Drone Anti-jamming Systems Technology?Antenna Manufacturer Coco
 
Artificial Intelligence: Facts and Myths
Artificial Intelligence: Facts and MythsArtificial Intelligence: Facts and Myths
Artificial Intelligence: Facts and MythsJoaquim Jorge
 
Driving Behavioral Change for Information Management through Data-Driven Gree...
Driving Behavioral Change for Information Management through Data-Driven Gree...Driving Behavioral Change for Information Management through Data-Driven Gree...
Driving Behavioral Change for Information Management through Data-Driven Gree...Enterprise Knowledge
 
The Role of Taxonomy and Ontology in Semantic Layers - Heather Hedden.pdf
The Role of Taxonomy and Ontology in Semantic Layers - Heather Hedden.pdfThe Role of Taxonomy and Ontology in Semantic Layers - Heather Hedden.pdf
The Role of Taxonomy and Ontology in Semantic Layers - Heather Hedden.pdfEnterprise Knowledge
 
Boost Fertility New Invention Ups Success Rates.pdf
Boost Fertility New Invention Ups Success Rates.pdfBoost Fertility New Invention Ups Success Rates.pdf
Boost Fertility New Invention Ups Success Rates.pdfsudhanshuwaghmare1
 
Histor y of HAM Radio presentation slide
Histor y of HAM Radio presentation slideHistor y of HAM Radio presentation slide
Histor y of HAM Radio presentation slidevu2urc
 

Dernier (20)

CNv6 Instructor Chapter 6 Quality of Service
CNv6 Instructor Chapter 6 Quality of ServiceCNv6 Instructor Chapter 6 Quality of Service
CNv6 Instructor Chapter 6 Quality of Service
 
Data Cloud, More than a CDP by Matt Robison
Data Cloud, More than a CDP by Matt RobisonData Cloud, More than a CDP by Matt Robison
Data Cloud, More than a CDP by Matt Robison
 
A Domino Admins Adventures (Engage 2024)
A Domino Admins Adventures (Engage 2024)A Domino Admins Adventures (Engage 2024)
A Domino Admins Adventures (Engage 2024)
 
Finology Group – Insurtech Innovation Award 2024
Finology Group – Insurtech Innovation Award 2024Finology Group – Insurtech Innovation Award 2024
Finology Group – Insurtech Innovation Award 2024
 
04-2024-HHUG-Sales-and-Marketing-Alignment.pptx
04-2024-HHUG-Sales-and-Marketing-Alignment.pptx04-2024-HHUG-Sales-and-Marketing-Alignment.pptx
04-2024-HHUG-Sales-and-Marketing-Alignment.pptx
 
Raspberry Pi 5: Challenges and Solutions in Bringing up an OpenGL/Vulkan Driv...
Raspberry Pi 5: Challenges and Solutions in Bringing up an OpenGL/Vulkan Driv...Raspberry Pi 5: Challenges and Solutions in Bringing up an OpenGL/Vulkan Driv...
Raspberry Pi 5: Challenges and Solutions in Bringing up an OpenGL/Vulkan Driv...
 
08448380779 Call Girls In Friends Colony Women Seeking Men
08448380779 Call Girls In Friends Colony Women Seeking Men08448380779 Call Girls In Friends Colony Women Seeking Men
08448380779 Call Girls In Friends Colony Women Seeking Men
 
Bajaj Allianz Life Insurance Company - Insurer Innovation Award 2024
Bajaj Allianz Life Insurance Company - Insurer Innovation Award 2024Bajaj Allianz Life Insurance Company - Insurer Innovation Award 2024
Bajaj Allianz Life Insurance Company - Insurer Innovation Award 2024
 
Presentation on how to chat with PDF using ChatGPT code interpreter
Presentation on how to chat with PDF using ChatGPT code interpreterPresentation on how to chat with PDF using ChatGPT code interpreter
Presentation on how to chat with PDF using ChatGPT code interpreter
 
Understanding Discord NSFW Servers A Guide for Responsible Users.pdf
Understanding Discord NSFW Servers A Guide for Responsible Users.pdfUnderstanding Discord NSFW Servers A Guide for Responsible Users.pdf
Understanding Discord NSFW Servers A Guide for Responsible Users.pdf
 
Apidays Singapore 2024 - Building Digital Trust in a Digital Economy by Veron...
Apidays Singapore 2024 - Building Digital Trust in a Digital Economy by Veron...Apidays Singapore 2024 - Building Digital Trust in a Digital Economy by Veron...
Apidays Singapore 2024 - Building Digital Trust in a Digital Economy by Veron...
 
🐬 The future of MySQL is Postgres 🐘
🐬  The future of MySQL is Postgres   🐘🐬  The future of MySQL is Postgres   🐘
🐬 The future of MySQL is Postgres 🐘
 
Strategize a Smooth Tenant-to-tenant Migration and Copilot Takeoff
Strategize a Smooth Tenant-to-tenant Migration and Copilot TakeoffStrategize a Smooth Tenant-to-tenant Migration and Copilot Takeoff
Strategize a Smooth Tenant-to-tenant Migration and Copilot Takeoff
 
GenCyber Cyber Security Day Presentation
GenCyber Cyber Security Day PresentationGenCyber Cyber Security Day Presentation
GenCyber Cyber Security Day Presentation
 
What Are The Drone Anti-jamming Systems Technology?
What Are The Drone Anti-jamming Systems Technology?What Are The Drone Anti-jamming Systems Technology?
What Are The Drone Anti-jamming Systems Technology?
 
Artificial Intelligence: Facts and Myths
Artificial Intelligence: Facts and MythsArtificial Intelligence: Facts and Myths
Artificial Intelligence: Facts and Myths
 
Driving Behavioral Change for Information Management through Data-Driven Gree...
Driving Behavioral Change for Information Management through Data-Driven Gree...Driving Behavioral Change for Information Management through Data-Driven Gree...
Driving Behavioral Change for Information Management through Data-Driven Gree...
 
The Role of Taxonomy and Ontology in Semantic Layers - Heather Hedden.pdf
The Role of Taxonomy and Ontology in Semantic Layers - Heather Hedden.pdfThe Role of Taxonomy and Ontology in Semantic Layers - Heather Hedden.pdf
The Role of Taxonomy and Ontology in Semantic Layers - Heather Hedden.pdf
 
Boost Fertility New Invention Ups Success Rates.pdf
Boost Fertility New Invention Ups Success Rates.pdfBoost Fertility New Invention Ups Success Rates.pdf
Boost Fertility New Invention Ups Success Rates.pdf
 
Histor y of HAM Radio presentation slide
Histor y of HAM Radio presentation slideHistor y of HAM Radio presentation slide
Histor y of HAM Radio presentation slide
 

IBM Cloud Côte D'Azur Meetup - 20181004 - Blockchain Hyperledger Workshop

  • 1. Blockchain Hyperledger Composer Workshop Joël Viale – Solution Architect, Blockchain IBM Global Industry Solutions Center Joel.viale@fr.ibm.com Meetup October 4th 2018
  • 2. Introduction on Hyperledger: - HL Fabric - HL Composer What’s Next? Lab 1 – Deploy and test a sample business network Lab 2 – Create your own business network
  • 3. Introduction on Hyperledger: - HL Fabric - HL Composer What’s Next? Lab 1 – Deploy and test a sample business network Lab 2 – Create your own business network
  • 4. 4 Choosing what to share The business network decides what to share on the ledger • Assets are anything of value – On the blockchain, these are represented digitally using a pre-agreed format • Transactions change the state of an asset and are provably recorded on the blockchain – e.g. transfer ownership, change color • Transactions are underpinned by smart contracts – Verifiable business rules that cause the asset to change state
  • 5. 5 Hyperledger: A Linux Foundation project • IBM Blockchain Platform is underpinned by technology from the Hyperledger project • Hyperledger is a collaborative effort created to advance cross-industry blockchain technologies for business • Founded February 2016; now more than 250 member organizations • Open source Open standards Open governance model Source: https://www.hyperledger.org/members Updated: 17 September 2018 Premier General Associate Academia Associate
  • 6. 6 Distributed ledger • An implementation of blockchain technology that is a foundation for developing blockchain applications • Emphasis on ledger, smart contracts, consensus, confidentiality, resiliency and scalability. • V1.2 released July 2018 – Includes significant confidentiality and service discovery improvements • IBM is one of the many contributing organizations Fabric Explored
  • 7. 7 Ledger … The blockchain developer Blockchain Developer D f(abc); Smart Contract Blockchain developers’ primary interests are… They should NOT have to care about operational concerns, such as: Peers Consensus …and how they interact with the ledger and other systems of record: Systems IntegrationEvents ! Traditional Data Sources Traditional Processing Platforms Application X Security
  • 8. 8 A ledger often consists of two data structures • Blockchain o A linked list of blocks o Each block describes a set of transactions (e.g. the inputs to a smart contract invocation) o Immutable – blocks cannot be tampered • World State o An ordinary database (e.g. key/value store) o Stores the combined outputs of all transactions o Not usually immutableWorld state block txn txn txn Blockchain
  • 9. 9 Block detail (simplified) - A blockchain is made up of a series of blocks with new blocks always added to the end - Each block contains zero or more transactions and some additional metadata - Blocks achieve immutability by including the result of a hash function of the previous block - The first block is known as the “genesis” block Block 16 Previous Block Hash: 57ec2fda71 Block Hash: 87ea2ffe94Block Hash: 57ec2fda71 Block 15 Previous Block Hash: d68b2f0a3b Block 17 Previous Block Hash: 87ea2ffe94 Block Hash: 44bf2efe32 Transaction Transaction Transaction Transaction TransactionTransaction … …
  • 10. 10 Working with the ledger example: a change of ownership transaction World state Transaction input - sent from application invoke(myContract, setOwner, myCar, Matt) … myCar.vin = 1234 myCar.owner = Matt myCar.make = Audi … World state: new contents Smart contract implementation setOwner(Car, newOwner) { set Car.owner = newOwner } txn txn txnmyCar.vin = 1234, ... “Invoke, myContract, setOwner, myCar, Matt” Application f(abc); Smart Contract
  • 11. 11 Integrating with existing systems – possibilities Transform Existing systems 1. System events 2. Blockchain events 3. Call into blockchain network from existing systems Blockchain network Existing systems ! !
  • 12. 12 Hyperledger Fabric V1 Architecture Client Application SDK (HFC) Membership Services Peer Endorser Ledger Committer A Chaincode B !Events Ordering-Service O O O O ✓ Fabric-CA ✓ External-CA Hyperledger Fabric Network optionaloptional Admin
  • 13. 13 Application proposes transaction Endorsement policy: • “E0, E1 and E2 must sign” • (P3, P4 are not part of the policy) Client application submits a transaction proposal for Smart Contract A. It must target the required peers {E0, E1, E2} Sample transaction: Step 1/7 – Propose transaction E0 E1 E2 Client Application S D K Endorser Ledger Committing Peer Application Ordering Node Smart Contract (Chaincode) Endorsement Policy Key: Hyperledger Fabric Network Ordering-Service O O O OP P4P3 A B A B A B A D
  • 14. 14 Sample transaction: Step 2/7 – Execute proposal Endorsers Execute Proposals E0, E1 & E2 will each execute the proposed transaction. None of these executions will update the ledger Each execution will capture the set of Read and Written data, called RW sets, which will now flow in the fabric. Transactions can be signed & encrypted Key: Hyperledger Fabric Network Ordering-Service Endorser Ledger Committing Peer Application Ordering Node Smart Contract (Chaincode) Endorsement Policy O O O O E0 E1 E2 P P4P3 A B A B A B A D Client Application S D K
  • 15. 15 Sample transaction: Step 3/7 – Proposal Response Application receives responses RW sets are asynchronously returned to application The RW sets are signed by each endorser, and also includes each record version number (This information will be checked much later in the consensus process) Key: Hyperledger Fabric Network Ordering-Service Endorser Ledger Committing Peer Application Ordering Node Smart Contract (Chaincode) Endorsement Policy O O O O E0 E1 E2 P P4P3 A B A B A B A D Client Application S D K
  • 16. 16 Sample transaction: Step 4/7 – Order Transaction Responses submitted for ordering Application submits responses as a transaction to be ordered. Ordering happens across the fabric in parallel with transactions submitted by other applications (other applications) Key: Hyperledger Fabric Network Ordering-Service Endorser Ledger Committing Peer Application Ordering Node Smart Contract (Chaincode) Endorsement Policy O O O O E0 E1 E2 P P4P3 A B A B A B A D Client Application S D K
  • 17. 17 Hyperledger Fabric Network Ordering-Service Sample transaction: Step 5/7 – Deliver Transaction Orderer delivers to committing peers Ordering service collects transactions into proposed blocks for distribution to committing peers. Peers can deliver to other peers in a hierarchy (not shown) Different ordering algorithms available: • SOLO (Single node, development) • Kafka (Crash fault tolerance) O O O O * Key: Endorser Ledger Committing Peer Application Ordering Node Smart Contract (Chaincode) Endorsement Policy E0 E1 E2 P P4P3 A B A B A B A D Client Application S D K
  • 18. 18 Hyperledger Fabric Network Ordering-Service Sample transaction: Step 6/7 – Validate Transaction Committing peers validate transactions Every committing peer validates against the endorsement policy. Also check RW sets are still valid for current world state Validated transactions are applied to the world state and retained on the ledger Invalid transactions are also retained on the ledger but do not update world state Endorser Ledger Committing Peer Application Ordering Node Smart Contract (Chaincode) Endorsement Policy Key: O O O O E0 E1 E2 P P4P3 A B A B A B A D Client Application S D K * * * * *
  • 19. 19 Client Application S D K Hyperledger Fabric Network Ordering-Service Sample transaction: Step 7/7 – Notify Transaction Committing peers notify applications Applications can register to be notified when transactions succeed or fail, and when blocks are added to the ledger Applications will be notified by each peer to which they are connected! ! ! ! ! ! Key: Endorser Ledger Committing Peer Application Ordering Node Smart Contract (Chaincode) Endorsement Policy O O O O E0 E1 E2 P P4P3 A B A B A B A D
  • 20. Introduction on Hyperledger: - HL Fabric - HL Composer What’s Next? Lab 1 – Deploy and test a sample business network Lab 2 – Create your own business network
  • 21. 21 Business Application Hyperledger Composer Blockchain (Hyperledger Fabric) – A suite of high level application abstractions for business networks – Emphasis on business-centric vocabulary for quick solution creation – Reduce risk, and increase understanding and flexibility – Features – Model your business networks, test and expose via APIs – Applications invoke APIs transactions to interact with business network – Integrate existing systems of record using loopback/REST – Fully open and part of Linux Foundation Hyperledger – Try it in your web browser now: http://composer-playground.mybluemix.net/ https://hyperledger.github.io/composer/ Hyperledger Composer: Accelerating time to value
  • 22. 22 • Services that interact with the registries • Create, delete, update, query and invoke smart contracts • Implemented inside business applications, integration logic and REST services • Hosted by the Business Application Consumer • Implements the logic deployed to the blockchain • Models describe assets, participants & transactions • Transaction processors provide the JavaScript implementation of transactions • ACLs define privacy rules • May also define events and registry queries • Provides the front-end for the end-user • May be several of these applications • Interacts with business logic via standard interfaces (e.g. REST) • Composer can generate the REST interface from model and a sample application Business Logic Presentation Logic Three main components to develop Smart Contracts
  • 23. 23 Assets, Participants and Transactions Vehicle Vehicle Listing AuctioneerMember Place Offer Close Bidding Transaction Processors
  • 24. 24 – It is possible to restrict which resources can be read and modified by which participants – Rules are defined in an .acl file and deployed with the rest of the model – Transaction processors can also look up the current user and implement rules programmatically – ACL rules can be simple (e.g. everybody can read all resources) or more complex (e.g. only the owner of an asset can do everything to it) – Application supplies credentials (userid/secret) of the participant when connecting to the Fabric network – This also applies to Playground! – Remember to grant System ACL all access if necessary Access Control
  • 25. 25 – Events allow applications to take action when a transaction occurs – Events are defined in models – Events are emitted by transaction processor scripts – Events are caught by business applications – Caught events include transaction ID and other relevant information – Queries allow applications to perform complex registry searches – They can be statically defined in a separate .qry file or generated dynamically by the application – They are invoked in the application using buildQuery() or query() – Queries require the blockchain to be backed by CouchDB Events and Queries
  • 26. 26 – Web tool for defining and testing Hyperledger Composer models and scripts – Designed for the application developer – Define assets, participants and transactions – Implement transaction processor scripts – Test by populating registries and invoking transactions – Deploy to instances of Hyperledger Fabric V1, or simulate completely within browser – Install on your machine or run online at http://composer-playground.mybluemix.net Smart Contract Development: Composer Playground
  • 27. 27 – Business Network Archive (.BNA) is a package of the resources used by Fabric: – Model files (.CTO) – Transaction processors (.JS) – Access Control Lists (.ACL) – Static queries (.QRY) – Documentation and versioning (.MD) – It does not contain the client application – The BNA simplifies deployment of blockchain and promotion between environments – c.f. TAR, WAR, EAR, JAR, BAR… – Create BNA files from Playground or command line – Build from filesystem or NPM module model.cto logic.js Business Network Archive readme.mdqueries.qry ? permissions.acl composer archive create –archiveFile my.bna --sourceType module --sourceName myNetwork Resources are then packaged into a BNA file
  • 28. 28 – Manage cards from both Playground and command-line – Create, delete, export, import, list – Create requires userid/secret or certificate/private key – Use cards to connect to Fabric from Playground, command-line or from within your application Business Network Cards – Business Network Cards are a convenient packaging of identity and connection profile – Contains everything you need to connect to blockchain business network – Each card refers to a single participant and single business network – Analogous to an ATM card composer network install -a my.bna -c my.card
  • 29. 29 – Domain specific APIs very attractive to mobile and web developers. Resources and operations are business- meaningful – Composer exploits Loopback framework to create REST APIs: https://loopback.io/ – Extensive test facilities for REST methods using loopback – Secured using JS Passport, giving >400 options for authentication – Composer provides back-end integration with any loopback compatible product – e.g. IBM Integration Bus, API Connect, StrongLoop – Outbound and Inbound (where supported by middleware) Systems of Record Integration
  • 30. 30 – Define, Test and Deploy Business Networks – Create domain APIs and sample applications – Integrate existing systems and data https://hyperledger.github.io/composer/ http://composer-playground.mybluemix.net/ Get started with Hyperledger Composer
  • 31. Introduction on Hyperledger: - HL Fabric - HL Composer What’s Next? Lab 1 – Deploy and test a sample business network Lab 2 – Create your own business network
  • 32. 32 – Connect to Composer Web Playground (Online): – Deploy an existing sample – Test some transactions Access the latest Composer tutorials at: https://hyperledger.github.io/composer/latest/tutorials/playground-tutorial.html Lab 1 Content
  • 33. 33 – Open the URL: https://composer-playground.mybluemix.net – You should see the My Business Networks screen. The My Business Networks page shows you a summary of the business networks you can connect to, and the identities you can use to connect to them. – Don't worry about this too much for the time being, as you're going to test an existing network Step One: Open the Hyperledger Composer Playground
  • 34. 34 – Click “Deploy a new business network” under the Web Browser heading to get started. – For this first lab, you’re going to deploy an existing example – Under “2. Model Network Starter Template”, select “carauction-network” – This will automatically fill the required basic information of your network. You can still override those values – Click Deploy Step Two: Instantiating an existing business network
  • 35. 35 – Now that you've created and deployed the business network, you should see a new business network card called admin for your business network carauction-network in your wallet. The wallet can contain business network cards to connect to multiple deployed business networks. – When connecting to an external blockchain, business network cards represent everything necessary to connect to a business network. They include connection details, authentication material, and metadata. – To connect to our business network click Connect now under your business network card. Step Three: Connecting to the business network
  • 36. 36 – Go to the “Test” tab – Click on “Auctioneer” on the left – Click on “+ Create New Participant” – Use the following payload: {"$class": "org.acme.vehicle.auction.Auctioneer", "email": "auction@acme.org", "firstName": "Jenny", "lastName": "Jones" } – Click “Create New” in the bottom Step Four: Test your business network 4.1. Create an ‘Auctioneer’
  • 37. 37 – Repeat the same procedure to create 2 new participants of type “Member” – Use the following payloads: { "$class": "org.acme.vehicle.auction.Member", "balance": 5000, "email": "memberA@acme.org", "firstName": "Amy", "lastName": "Williams" } { "$class": "org.acme.vehicle.auction.Member", "balance": 5000, "email": "memberB@acme.org", "firstName": "Billy", "lastName": "Thompson" } Step Four: Test your business network 4.2. Create two new ‘Member’
  • 38. 38 – Repeat the same procedure to create one new asset of type “Vehicle” – Use the following payload: { "$class": "org.acme.vehicle.auction.Vehicle", "vin": "vin:1234", "owner": "resource:org.acme.vehicle.auction.Member#memberA@acme.org" } Step Four: Test your business network 4.3. Create one ‘Vehicle’
  • 39. 39 – Repeat the same procedure to create one new asset of type “VehicleListing” – Use the following payload: { "$class": "org.acme.vehicle.auction.VehicleListing", "listingId": "listingId:ABCD", "reservePrice": 3500, "description": "Arium Nova", "state": "FOR_SALE", "vehicle": "resource:org.acme.vehicle.auction.Vehicle#vin:1234" } Step Four: Test your business network 4.4. Create one ‘Vehicle’
  • 40. 40 – As soon as a VehicleListing has been created (and is in the FOR_SALE state) participants can submit Offer transactions to bid on a vehicle listing. – On the “Test” tab, click on “SubmitTransaction” in the bottom left – Select “Offer” from the dropdown list as the Transaction Type – Use the following payload: { "$class": "org.acme.vehicle.auction.Offer", "bidPrice": 2000, "listing": "resource:org.acme.vehicle.auction.VehicleListing#listingId:ABCD", "member": "resource:org.acme.vehicle.auction.Member#memberA@acme.org" } – Repeat the same for: { "$class": "org.acme.vehicle.auction.Offer", "bidPrice": 3500, "listing": "resource:org.acme.vehicle.auction.VehicleListing#listingId:ABCD", "member": "resource:org.acme.vehicle.auction.Member#memberB@acme.org" } Step Four: Test your business network 4.5. Submit an ‘Offer’ transaction
  • 41. 41 – To indicate the auction is now closed, submit the “CloseBidding” transaction – Use the following payload: { "$class": "org.acme.vehicle.auction.CloseBidding", "listing": "resource:org.acme.vehicle.auction.VehicleListing#listingId:ABCD" } Step Four: Test your business network 4.6. End the auction
  • 42. 42 – To see the Vehicle was sold you need to click on the Vehicle asset registry to check the owner of the car. – The reserve price was met by owner memberB@acme.org so you should see the owner of the vehicle is now memberB@acme.org. – If you check the state of the VehicleListing with listingId:ABCD is should be SOLD. – If you click on the Member asset registry you can check the balance of each User. – You should see that the balance of the buyer memberB@acme.org has been debited by 3500 – whilst the balance of the seller memberA@acme.org has been credited with 3500 Congratulations! Step Four: Test your business network 4.7. See the results of the auction
  • 43. 43 – Now that transactions have successfully run, you can log out of the business network, ending up at the My Business Network screen where you started. – In the upper-right of the screen is a button labelled admin. This lists your current identity – To log out, click admin to open the dropdown menu, and click My Business Networks – You can use this to navigate back and forth between your different networks Logging out of the business network
  • 44. Introduction on Hyperledger: - HL Fabric - HL Composer What’s Next? Lab 1 – Deploy and test a sample business network Lab 2 – Create your own business network
  • 45. 45 – Purpose of Lab 2 – Below are some recommendations on selecting the right use-case Next step 1: Create your own business network
  • 46. 46 Good blockchain use-case or bad? Food Provenance Know Your Customer Track Your Child Electronic Medical Records Holiday Tracking Tool Secure Document Store
  • 47. 47 – Identifying a good blockchain use-case is not always easy! – However there should always be: 1. A business problem to be solved • That cannot be more efficiently solved with other technologies 2. An identifiable business network • With Participants, Assets and Transactions 3. A need for trust • Consensus, Immutability, Finality or Provenance What makes a good blockchain use case?
  • 48. 48 – First use-cases are even more difficult to identify! 1. A limited scope, but still solves a real business problem • Minimum Viable Product in a few weeks of effort 2. A smaller business network • Usually without requiring regulators and consortia 3. Allows for scaling with more participants and scenarios • Consider shadow chains to mitigate risks Start small, succeed and grow fast! What makes a good first blockchain use case?
  • 49. 49 1. What is the specific business problem / challenge that the first project will address? 2. What is the current way of solving this business problem? 3. Assuming the business problem is large, what specific aspects of this business problem will be addressed? 4. Who are the business network participants (organizations) involved and what are their roles? 5. Who are the specific people within the organization and what are their job roles? 6. What assets are involved and what is the key information associated with the assets? 7. What are the transactions involved, between whom, and what assets are associated with transactions? 8. What are the main steps in the current workflow and how are these executed by the business network participants? 9. What is the expected benefit of applying blockchain technology to the business problem for each of the network participants? 10. What legacy systems are involved? What degree of integration with the legacy systems is needed? Sample questions to ask for the selected use case:
  • 50. 50 It is important to ideate potential use-cases
  • 51. 51 – Purpose of Lab 3 Next step 2: Install the development environment and develop from there
  • 52. 52 – Purpose of Lab 3 Next step 3: Create your own Blockchain HL Fabric network in a Kubernetes cluster (or IBM Starter Plan)
  • 53. Introduction on Hyperledger: - HL Fabric - HL Composer What’s Next? Lab 1 – Deploy and test a sample business network Lab 2 – Create your own business network
  • 54. 54 – Connect to Composer Web Playground (Online) – Create your own business network – Test your own transactions – This tutorial can be followed on line at: https://hyperledger.github.io/composer/latest/tutorials/playground-tutorial.html Lab 2 Content
  • 55. 55 – Open the URL: https://composer-playground.mybluemix.net – You should see the My Business Networks screen. The My Business Networks page shows you a summary of the business networks you can connect to, and the identities you can use to connect to them. – Don't worry about this too much for the time being, as you're going to create your own network Step One: Open the Hyperledger Composer Playground
  • 56. 56 – Click “Deploy a new business network” under the Web Browser heading to get started. – The new business network needs a name, you can call it like you want, i.e. tutorial- network – Optionally, you can enter a description for your business network. – Next we must select a business network to base yours on, because you want to build the network from scratch, click empty-business-network – Now that our network is defined, click Deploy Step Two: Creating a new business network
  • 57. 57 – Now that you've created and deployed the business network, you should see a new business network card called admin for your business network tutorial-network in your wallet. The wallet can contain business network cards to connect to multiple deployed business networks. – When connecting to an external blockchain, business network cards represent everything necessary to connect to a business network. They include connection details, authentication material, and metadata. – To connect to our business network click Connect now under your business network card. Step Three: Connecting to the business network
  • 58. 58 – As you can see, we're in the Define tab right now, this tab is where you create and edit the files that make up a business network definition, before deploying them and testing them using the Test tab. – As you selected an empty business network template, we need to modify the template files provided. – The first step is to update the model file. Model files define the assets, participants, transactions, and events in our business network. – For more information on the modeling language, check the documentation: https://hyperledger.github.io/composer/latest/reference/cto_language.html – Click the Model file to view it. – Delete the lines of code in the model file and start creating your own lines. You can get use the following lines as a guide: Step Four: Adding a model file
  • 59. 59 /** * My commodity trading network */ namespace org.example.mynetwork asset Commodity identified by tradingSymbol { o String tradingSymbol o String description o String mainExchange o Double quantity --> Trader owner } participant Trader identified by tradeId { o String tradeId o String firstName o String lastName } transaction Trade {  Commodity commodity  --> Trader newOwner  } Step Four: Adding a model file
  • 60. 60 – Now that the domain model has been defined, we can define the transaction logic for the business network. Composer expresses the logic for a business network using JavaScript functions. These functions are automatically executed when a transaction is submitted for processing – For more information on writing transaction processor functions, check the documentation: https://hyperledger.github.io/composer/latest/reference/js_scripts.html – Click the “Add a file” button. – Click the Script file and click Add. – Delete the lines of code in the script file and replace it with your own code. You can use the following as a guide: Step Five: Adding a transaction processor script file
  • 61. 61 /** *Track the trade of a commodity from one trader to another *@param {org.example.mynetwork.Trade} trade - the trade to be processed *@transaction */ async function tradeCommodity(trade) { trade.commodity.owner = trade.newOwner; let assetRegistry = await getAssetRegistry('org.example.mynetwork.Commodity'); await assetRegistry.update(trade.commodity); } Step Five: Adding a transaction processor script file
  • 62. 62 – Access control files define the access control rules for business networks. Your network should be simple, so the default access control file doesn't need editing – The basic file gives the current participant networkAdmin full access to business network and system-level operations. – While you can have multiple model or script files, you can only have one access control file in any business network. – For more information on access control files, check the documentation: https://hyperledger.github.io/composer/latest/reference/acl_language.html Step Six: Access control
  • 63. 63 – Now that you have model, script, and access control files, we need to deploy and test your business network. – Click Deploy changes to upgrade the business network. Step Seven: Deploying the updated business network
  • 64. 64 – Next, you need to test your business network by creating some participants, some asset, and then submit transactions. – Click the Test tab to get started – Use your experience and instructions from Lab 1 to test your network Step Eight: Testing the business network definition
  • 65. A little extra… Lab 3 – Setup your development environment on your computer and create a full Composer solution
  • 66. 66 – You can follow the online tutorial: https://hyperledger.github.io/composer/latest/tutorials/developer-tutorial.html Setup your development environment locally
  • 67. 67 – You can follow the online tutorial: https://ibm-blockchain.github.io/ or https://github.com/IBM/blockchain-network-on-kubernetes Create a Blockchain Hyperledger Fabric network in a Kubernetes cluster
  • 68. Questions? Tweet us or go to ibm.com/blockchain @IBMBlockchain IBM Blockchain IBM Blockchain Thank you Joël Viale
  • 69. © Copyright IBM Corporation 2018. All rights reserved. The information contained in these materials is provided for informational purposes only, and is provided AS IS without warranty of any kind, express or implied. Any statement of direction represents IBM's current intent, is subject to change or withdrawal, and represents only goals and objectives. IBM, the IBM logo, and other IBM products and services are trademarks of the International Business Machines Corporation, in the United States, other countries or both. Other company, product, or service names may be trademarks or service marks of others.