- Hyperledger Fabric now supports Ethereum smart contracts through integration with the Ethereum Virtual Machine (EVM). This will allow Ethereum developers to work with Hyperledger Fabric and migrate smart contracts and decentralized apps between the platforms.
- Hyperledger is an open source blockchain project hosted by the Linux Foundation. It includes various blockchain frameworks and tools including Fabric, Sawtooth, and Composer. Fabric is the most widely adopted Hyperledger blockchain framework.
- Hyperledger blockchain applications interact with peers to access and update the shared ledger. The ledger contains a growing list of immutable transaction records organized into blocks.
1. An Introduction to Blockchain and
Hyperledger
Lennart Frantzell
IBM Developer Advocate
San Francisco
alf@us.ibm.com
V1.2 February 1 2019
Blockchain Explored Series
IBM Blockchain Platform Explored
Fabric Explored
Composer Explored
What’s New
Architectures Explored
3. 3
Breaking News: Hyperledger Fabric Now Supports
Ethereum Smart Contracts
• Enterprise blockchain Hyperledger Fabric has introduced support for Ethereum smart contracts. Fabric is designed
to be modular with four main components. These are the main ledger, the consensus mechanism, identity
management, and smart contracts called chaincode. The latest announcement provides an alternative to chaincode.
• Ethereum’s large pool of developers are comfortable with its Solidity smart contract language, so the integration
should make Fabric more appealing to Ethereum developers. Additionally, many coders use Web3 a Node.js set of tools to
build Ethereum decentralized apps (Dapps). By integrating with the EVM, these developers can work with Fabric and
even migrate smart contracts and Dapps over to Hyperledger Fabric.
• https://www.ledgerinsights.com/hyperledger-fabric-integrates-ethereum-smart-contracts-evm-blockchain/
7. 7
The Ledger problem
inefficient, expensive, vulnerable
Participant A’s records Participant B’s records Bank records
Insurer records Regulator records Auditor records
8. 8
Blockchain
Participant A’s records Participant B’s records Bank records
Insurer records Regulator records Auditor records
The Ledger Solution
A shared, replicated, permissioned ledger…
…with consensus, provenance, immutability and finality
10. 10
Linux Foundation Open Source Hyperledger
•
App Layer: Hyperledger Sawtooth
Supply Chain
Cargill
https://sawtooth.hyperledger.org/examples/seafood.html
In December 2015, the Linux Foundation announced the creation of the Hyperledger Project.
Visual Studio Code
11. Roadmap
• Channels
• Selective endorsement
• SOLO/Kafka orderers
• LevelDB or CouchDB
• Javascript chaincode
• Connection profile
• Encryption library
• Attribute access control
• CouchDB indexes
• Channel based events
• ACLs
• Service discovery
• Pluggable endorsement and validation
• Private Data Collections
• State based endorsement
• Java chaincode
• CouchDB pagination
• Identity Mixer
• Local collections
• SDK improvements
• Lifecycle changes
• Revocation for Idemixer
• Tokenisation
• RAFT
• Operational metrics and logging
• SDK and SHIM improvements
• Burrow EVM
• Long Term Service (LTS) support
07/17 03/18 06/18 10/18 4Q/18
*
1Q/19
*
Based on https://wiki.hyperledger.org/projects/fabric/roadmap - Dates determined by the Hyperledger community - (*) Subject to change
v1
v1.1
v1.2
v1.3
v1.4
v2.0
13. 13
Pluggable Consensus
• https://www.slideshare.net/MattLucas3/blockchain-whats-new-in-hyperledger-fabric-oct-2018
• This modular architecture allows the platform to rely on well-established toolkits for
CFT (crash fault-tolerant) or BFT (byzantine fault-tolerant) ordering.
• In the currently available releases, Fabric offers a CFT ordering service implemented
with Kafka and Zookeeper. Kafka is fault tolerant, but not Byzantine fault tolerant
• In subsequent releases, Fabric will deliver a Raft consensus ordering service
implemented with etcd/Raft and a fully decentralized BFT ordering service.
15. 15
IBM Blockchain Platform
Platform Architecture Overview
Application SDK
Membership
Services
Peer
Endorser
Ledger
Committer
A
Chaincode B
!Events
Ordering-Service
O
O
O
Fabric-CAExternal-CA
optionaloptional Admin
Users
CACA
Hardware
Security
Module(*)
IBP UI
(*) Enterprise Plan
Certificate
Authority
IBM Blockchain
Platform
16. 16
The Ledger, Blockchain and World State Database
https://hyperledger-fabric.readthedocs.io/en/release-1.4/ledger/ledger.html#example-ledger-fabcar
world state – a database that holds a cache of
the current values of a set of ledger states.
The world state makes it easy for a program
to directly access the current value of a state
rather than having to calculate it by traversing
the entire transaction log (= Blockchain).
17. 17
Hyperledger Fabric components
• Hyperledger has three components:
– membership services – which manages digital certificates and access,
– ordering service – which keeps the peers in alignment,
– and peers – which hold the ledger.
• A peer is also where chaincode, also known as smart contracts, are executed.
• Membership and ordering services align well to being centralized.
– Peers, on the other hand, can be distributed and placed anywhere you desire in the
world.
– Each member of the Hyperledger network should have their own peer.
– The channels (databases) that a peer subscribes to, and transacts against, determines
the member’s role and capabilities in the blockchain network.
https://www.ibm.com/blogs/systems/blockchain-how-should-you-organize-your-peers/
18. 18IBM Blockchain Platform
How applications interact with the IBM Blockchain
Platform
Blockchain
Developer
Develops
Chaincode
Submits
0 1 2 3
Ledger
Blockchain WorldState
Get, Put, Delete
Record
SDK
Application
!
Emits
Emits
!
Peer
Accesses
20. 20
What makes a good Blockchain Use Case?
•
• A Business problem that cannot easily be solved
with existing techniques
• An identifiable business network
• With a shared ledger
• With Participants, Assets and Transactions
• A need for embedded trust but no Trusted Third
Party
24. 24
3) Re-use IBM Code Patterns for Blockchain
• IBM Code Patterns for Blockchain: https://developer.ibm.com/patterns/category/blockchain/
• 10 Lessons: Design Thinking for Blockchain
https://www.ibm.com/blogs/insights-on-business/government/10-lessons-design-thinking-blockchain/
26. 26
On-chain/Off-chain/Oracles
Accessing existing data off-chain
https://developer.ibm.com/tutorials/cl-extend-blockchain-smart-contracts-trusted-oracle/
https://developer.ibm.com/tutorials/cl-extend-blockchain-
smart-contracts-trusted-oracle/
Oracles
• Augur
• Prediction Market
• Game Theory
• Human Oracles
27. 27
Introducing a trusted oracle
• The architectural approach described in the previous section provides a reliable
means to externalize complex decision rules. However, in the case of volatile
information (such as interest rate), how can you reliably enrich a smart contract with
such information?
• One possibility is to delegate this responsibility to the client application: The client
application retrieves the current interest rate and includes it in its payload to the
smart contract. But why would the network trust the client application to always
provide such information reliably and accurately? Hence, instead of delegating this
responsibility to the client application, a better option is to:
• Delegate the processing for obtaining volatile information to a third-party known as
the oracle
• Deterministically agree on the value to use for a volatile piece of information
https://developer.ibm.com/articles/cl-extend-blockchain-smart-contracts-trusted-oracle/
30. 30
Step 4: Trade-offs Between Non-Functional
Requirements
Consider the trade-offs between
performance, security and resiliency!
Performance
o The amount of data being shared
o Number and location of peers
o Latency and throughput
o Batching characteristics
Security
o Type of data being shared, and with whom
o How is identity achieved
o Confidentiality of transaction queries
o Who verifies (endorses) transactions
Resiliency
o Resource failure
o Malicious activity
o Non-determinism
46. 46
Where do we go from here?
LinkedIn: lennartfrantzell
IBM Blockchain: https://www.ibm.com/blockchain
Build for free on IBM Cloud: https://ibm.biz/Bd2L5W
https://developer.ibm.com/startups/
Startup with IBM. Build. Scale. Win.
With $120,000 in free IBM Cloud credits, Startup with IBM can
put your business on the path to transformative growth. Disrupt
your industry with IBM.