Click here to load reader
View
139
Download
0
Embed Size (px)
Citation preview
1
Hyperledger Fabric
Hyperledger Fabric – What is it?
2
Originally developed by IBM/DAH and donated to Linux
foundation
More of a framework with default implementations
Smart contracts are known as chaincode invoked
through Protobuf
Chaincode runs inside a Docker container as its
sandbox
Provides table-like storage using RocksDB
(RocksDB is by Facebook and originally forked from
LevelDB by Google, so its scalability is okay ;-)
Implemented in anything that can be run through the
chaincode compiler
currently, Go and Java
We will be using v0.6
Architecture
Fabric has several framework
components:
Membership services for security:
audit, registration & identity
management
Blockchain services: Consensus,
Storage & transactions
Chaincode services: Secure
container & registry
For the hackathon we will focus on
the container and blockchain
storage
3
Chaincode
REST ENDPOINTS
Hyperledger-java API
Application code
Validating P
eer
Node
Docker
conta
iner
RocksDB storage
Other Validating
PeersREST
Consensus
Consensus
Consensus
Fabric Vs Ethereum – Key Differences
Storage Model RocksDB allows for a table of data with primary key lookup (think Excel, not Sybase!)
Data structures (maps, lists etc) held in smart contracts
Sandbox/ execution
Java or Golang turned into chaincode for remote execution in Docker containers of validating peer nodes
Ethereum Virtual machine and Soliditysmart contracts
Permissions Model
Roles/groups and digital signatures ofaccounts that are enrolled into the membership services
Application-specific, no permissions model as-yet
Consensus Mechanism
Consensus can be ignored, or batch PBFT Usually Ethash/Proof of Work
4
Fabric - The Pros & Cons
✔ Any and all Java development tooling is
available
✔ The Docker paradigm is familiar
✔ Learning curve is quite shallow
✔ Often in blockchain prototypes, all we want
is immutable storage
✔ No restrictions on what can be
implemented
✔ Not tied to a currency
5
❌ Platform is still maturing
❌ Deployment experience is a bit fiddly
(especially when compared to Ethereum),
nothing you can’t surmount though
❌ Debugging through Docker containers can
also be painful
“So, should I choose Fabric?”
Fabric is a good choice, if:
✔ Your main development language is Java/Golang
✔ All you want/need is immutable storage
✔ Your project is more of a consortium/permissioned design
✔ Your prototype is largely throwaway
6
Next steps
A step-by-step guide to deploying your first Hello World chaincode onto Hyperledger
Fabric click on the link below:
http://www.slideshare.net/Excelian/excelian-hyperledger-walkthroughfeb17
7
Thank you
www.excelian.com