Hyperledger Fabric
Saravanan Vijayakumaran
sarva@[Link]
Department of Electrical Engineering
Indian Institute of Technology Bombay
November 2, 2018
1 / 15
Hyperledger
• Collaborative blockchain effort hosted by Linux Foundation
• Mission
• Create enterprise grade, open source distributed ledger
frameworks
• Launched in 2016 with Fabric and Sawtooth
• Currently 5 frameworks and 5 tools
• Companies contribute code under Apache License
• Does not require modifications to be distributed under the same
license
2 / 15
Hyperledger Fabric
• Permissioned distributed ledger framework with smart contracts
• Originated in IBM in mid-2015 as Open Blockchain (OBC) project
• Initial implementation completed in Dec 2015
• 40K lines of Go code, smart contracts, PBFT consensus
• IBM joined Hyperledger in Feb 2016 and donated OBC code
• Main features
• Members of a Fabric network enroll through a Membership Service
Provider
• A group of participants can create a channel (shared ledger)
• Copies of the channel ledger present only with channel participants
• Each ledger contains world state and transaction log
• Transactions are used to update state
• Smart contracts (called chaincode) are written in Go
• Client SDKs available in [Link] and Java
• Querying ledger for transactions or blocks
• Installing chaincode in peer nodes
• Creating transactions calling chaincode functions
• Pluggable consensus mechanism
3 / 15
Ledger
Image credit: [Link]
release-1.3/ledger/[Link]
4 / 15
World State
Image credit: [Link]
release-1.3/ledger/[Link]
5 / 15
Blockchain
Image credit: [Link]
release-1.3/ledger/[Link]
6 / 15
Blocks
Image credit: [Link]
release-1.3/ledger/[Link]
7 / 15
Peers
Image credit: [Link]
release-1.3/peers/[Link]
8 / 15
Multiple Ledgers and Chaincodes
Image credit: [Link]
release-1.3/peers/[Link]
9 / 15
Application-Peer Interaction
Image credit: [Link]
release-1.3/peers/[Link]
• Ledger queries involve only first three steps
• Ledger updates involve all five steps
• Application needs to send proposed updates to several peers
10 / 15
Channels
Image credit: [Link]
release-1.3/peers/[Link]
11 / 15
Ledger Updates
Phase 1: Proposal
Image credit: [Link]
release-1.3/peers/[Link]
• Application sends transaction proposal to some peers for
endorsement
• Peers execute the transaction and append signatures endorsing
the proposal
• Phase 1 ends when application receives sufficient responses
12 / 15
Ledger Updates
Phase 2: Packaging
Image credit: [Link]
release-1.3/peers/[Link]
• Endorsed transaction proposals are packaged into a block by the
orderer
13 / 15
Ledger Updates
Phase 3: Validation
Image credit: [Link]
release-1.3/peers/[Link]
• Orderer distributes blocks to all peers
• Each peer checks that a block satisfies the organizational
endorsement policy and applies to ledger
14 / 15
References
• Hyperledger [Link]
• Apache License [Link]
• Fabric History [Link]
hyperledger-fabric-brief-history-binh-nguyen/
• Fabric Architecture [Link]
• Documentation [Link]
15 / 15