3. HyperLedger Fabric
• Hyperledger fabric is a blockchain framework hosted by Linux
Foundation
• Permissioned distributed ledger technology platform(DLT)
• Supports smart-contracts authored in general programming
languages like go, java and node.js’
• Pluggable consensus protocol
• IBM and Azure have implemented Hyperledger fabric blockchain
framework
• Permissioned or permission-less blockchain
4. Permissionless blockchain
• Anyone can participate, and everyone is
anonymous
• No trust other than the state of the blockchain
• Typically employ a “mined” currency or transaction
fee (gas) to incentivize
• High cost of participation using Byzantine fault
tolerant consensus like Proof-of-Work (POW)
5. Permissioned Blockchain
• Operate among known, identified and vetted
participants,
• Secures interactions among the group with a common
goal but may not fully trust each other
• Relies on the identities of the participants
• Does not require mining
• All transactions and participant identities are recorded,
reducing the risk of malicious code injection
6. Smart Contract (Chaincode)
• It is the business logic of the blockchain application
• Many smart contracts can run concurrently in a network
• They could be deployed dynamically
• Application code should be treated as untrusted
• Many smart contracts follow order-execute architecture, eg. Ethereum, using Solidity
• Validates and orders transactions and propagate to all peers
• Each peer will execute the transactions sequentially
• Fabric uses execute-order-validate
• Executes a transaction to check for correctness
• Order transactions via a consensus protocol, and
• Validates the transactions against policy before committing to the ledger
7. Modular elements
• Ordering service - establishes consensus on the order of transactions and
then broadcast to peers
• Membership service - responsible for associating entities in the network
with identities (crypto)
• Peer-to-peer gossip service (channel) - responsible for disseminating
blocks from ordering service to other peers
• Smart contracts (chaincode) - run within the container environment (eg.
Docker) for isolation. Does not have access to the ledger state
• The ledger configured to support DBMS
• Pluggable endorsement and validation policy independently configured by
application