You are on page 1of 11

BLOCKCHAINS

ARCHITECTURE, DESIGN AND USE CASES


PRAVEEN JAYACHANDRAN
SANDIP CHAKRABORTY IBM RESEARCH,
COMPUTER SCIENCE AND ENGINEERING, INDIA
IIT KHARAGPUR

1
Image courtesy: http://beetfusion.com/

HYPERLEDGER FABRIC DETAILS

2
Ordering Service

The ordering service packages transactions into blocks to be delivered to peers.


Communication with the service is via channels.

Different configuration options for the ordering service include:


O O – SOLO
• Single node for development
– Kafka : Crash fault tolerant consensus
O O
• 3 nodes minimum
Ordering-Service • Odd number of nodes recommended

3
Channels
Channels provide privacy between different ledgers

– Ledgers exist in the scope of a channel


E0 O O
• Channels can be shared across an entire network of peers
• Channels can be permissioned for a specific set of participants
– Chaincode is installed on peers to access the worldstate
O O – Chaincode is instantiated on specific
E1 – Peers can participate in multiple channels
Ordering-Service
– Concurrent execution for performance and scalability

4
Single Channel Network
• All peers connect to the same system
channel (blue).
Client
Application
S
D
K
E0 E2 • All peers have the same chaincode and
maintain the same ledger
A
B O O B
A
• Endorsement by peers E0, E1, E2 and E3
P

O O
E1 E3 Key:

Endorser Ledger
Ordering-Service
A A
B B Committing Peer Application

Hyperledger Fabric Network Ordering Node

Smart Contract Endorsement


(Chaincode) Policy

5
Multi-Channel Network
• Peers E0 and E3 connect to the red
channel for chaincodes Y and Z
E0 E2
Client S
Application D
K

Peers E1 and E2 connect to the blue


Y
Z O O B
A

channel for chaincodes A and B
P P

O O
Client
Application
S
D
K
E1 E3 Key:

Endorser Ledger
Ordering-Service
A Y
B Z Committing Peer Application

Hyperledger Fabric Network Ordering Node

Smart Contract Endorsement


(Chaincode) Policy

6
Fabric Peer
A
– Each peer:
– Connects to one or more channels Chaincode
– Maintains one or more ledgers for each Channels Peer
channel B
– Chaincodes are instantiated in separate
docker containers Events !

– Chaincodes are shared across channels (no Local


MSP
state is stored in chaincode container)
– Local MSP (Membership Services Provider)
provides crypto material
– Emits events to the client application 0 1 2 3
Ledger
Blockchain WorldState

7
Client Application

– Each client application uses Fabric SDK to:


– Connects over channels to one or more peers
– Connects over channels to one or more orderer
nodes
Client SDK Channels
Application (HFC)
– Receives events from peers
– Local MSP provides client crypto material ! Events

– Client can be written in different languages


Local
(Node.js, Go, Java, Python?) MSP

8
Fabric Certificate Authority

• Default (optional) Certificate Authority within


Fabric-CA
Fabric network for issuing Ecerts (long-term
identity) 
• Supports clustering for HA characteristics
• Supports LDAP for user authentication
• Supports HSM for security
• Can be configured as an intermediate CA

DB LDAP HSM

Root High Authenticate Secure


Certificate Authority Availability Enroll ID,
secret

9
Fun Reading
• Certificate Authority, Wikipedia article:
https://en.wikipedia.org/wiki/Certificate_authority
• Fabric Architecture Deep Dive: http://hyperledger-
fabric.readthedocs.io/en/release-1.0/arch-deep-dive.html
• Fabric CA Documentation: http://hyperledger-fabric-ca.readthedocs.io/en/latest/

10
11

You might also like