Hyperledger Fabric By Example: Part 1
2019 feels like it is the year to learn about distributed ledger technologies, aka. blockchain.
What / Why Hyperledger Fabric?
Hyperledger Fabric is an open source enterprise-grade permissioned distributed ledger technology (DLT) platform, designed for use in enterprise contexts, that delivers some key differentiating capabilities over other popular distributed ledger or blockchain platforms.
— Hyperledger Fabric — Introduction
As for why; “You are only as good as your team.”
Why This Series?
In learning Hyperledger Fabric, I started by reading Hyperledger Fabric’s conceptual documentation. With my head spinning with new concepts, I dove into their hands-on tutorial, Writing Your First Application.
It did not go well; I struggled to connect the hands-on steps back to the concepts. In this series, we will revisit the hands-on tutorial; this time exploring the concepts and software components in detail as we go.
note: Contrary its appearance, the fabric-samples installation also includes the Hyperledger Fabric binaries (command-line tools and Docker images).
In going through the documentation, one fundamental challenge was determining the boundary between their (Hyperledger Fabric) software and mine (operator / developer); e.g., their hands-on tutorials heavily depended on shell scripts (theirs or mine?)
In preparing to write this series, I came to a working assumption on their software components (will revise later if I learn otherwise).
Their server software is delivered through Docker images available on Docker Hub, e.g., hyperledger/fabric-peer.
Command-Line-Interface (CLI) Tools
The fabric-samples installation provides a number of command-line-interface tools; used to control the Docker images; through configuration files or API calls.
Hyperledger Fabric SDKs (NPM packages)
The Hyperledger Fabric SDKs (we will focus on the Node.js SDK) control the Docker images in much the same way as the CLI tools do. They are delivered through two NPM packages fabric-client and fabric-client-ca.
Chaincode Interface (NPM package)
The first step in the Writing Your First Application tutorial is:
— Hyperledger Fabric — Writing Your First Application
What?!? There is quite a bit of magic here. So much so, I needed to break out of character and use one of my favorite images as it perfectly captures my feelings around magic.
Rather, we will dissect startFabric.sh and (hopefully) tie everything back to the concepts and software components.
1/19/2019 Update: After dissecting startFabric.sh, it appears that they took some undocumented short-cuts; switching to dissecting the similarly magical byfn.sh script in the separate Hyperledger Fabric Building Your First Network tutorial. In this tutorial, they dive a bit more into what the script actually does (and hopefully do not take the same undocumented short-cuts).
In the next article, Hyperledger Fabric By Example: Part 2 , we begin to dive into the details