So you’ve read and heard a lot about blockchain and you’ve gotten your head around why it makes sense. Now you’re wondering where the best place is to get started with some hands-on activity, and where can you find your “hello world” moment. There are multiple roles in a blockchain network; in this post we’ll share some of my experiences.
We’re going to assume that you’re interested in Hyperledger Fabric. If you’re interested in a different blockchain platform this post is probably not for you. But if it’s Hyperledger Fabric you’re after, let’s continue.
If you’re an operator, or a blockchain developer, or even an application developer wanting to understand how to get to your “hello world” moment on Hyperledger Fabric, this post should help get you there. Keep in mind that there are many entry points for blockchain; this is one approach.
In this post, we’ll cover a few different roles:
- Network operator: Wants to get their first network up and running. Once the network is up and running, the blockchain developer can deploy the smart contract.
- Blockchain developer: Develops the smart contracts, deploys them to a running network, and has a hands-on understanding of how the network functions.
- Application developer: Writes an application that talks to the blockchain; wants to integrate the application with an existing blockchain network.
This post is not really intended to teach; instead, it’s intended to point you to resources that you can use to understand how to get started on blockchain. There are a lot of resources out there, and we all know that the sheer number of resources can be the problem. We’ll try to point you to the ones we’ve found to be most useful but I’m open to different suggestions — don’t hesitate to share your favorites in the comments section!
Blockchain for the network operator
For those of you who are concerned with the creation and management of the underlying Hyperledger Fabric network, the following resources will help you get to the point where you have your first Hyperledger Fabric network up and running. But before we get to the list, let’s get a recap of the Hyperledger Fabric network so we can understand what it is we are setting up. At a high level, there are four major components:
- Peer: The blockchain network node that performs incoming transactions and commits changes to the ledger. Each peer has a copy of the ledger.
- Channels: A collection of peers that all have the same copy of the ledger. The ledger updates according to the transactions that were submitted.
- Certificate authority: The entity that issues and revokes identities for participants on the blockchain network.
- Ordering service: This service gathers all transactions on the channel, organizes them chronologically, and sends them out to the peers to be committed to the ledger.
For a more complete overview of the components, check out this presentation on blockchain architecture.
The next question that you need to ask yourself is “where is the network going to reside?” Whether you want your own network locally that you can play with or a development environment in the cloud that is exposed to the internet, here are some resources to get your first network up and running:
- If you would prefer to build and run your network locally, check out these instructions for setting up Hyperledger Composer and Hyperledger Fabric using Docker Compose. If you would like a detailed walk-through of how to deploy the network locally, see the IBM Code pattern Build a blockchain network.
- If you’d like to set up a network that developers can interact with, you need a network that is exposed to the internet. You can create a blockchain network that runs on a Kubernetes cluster within IBM Cloud by following these IBM Blockchain directions on GitHub. These instructions will not only show you how to get Hyperledger Composer on Kubernetes, but will also show you how to create a REST server that exposes API endpoints that allow developers to interact with your blockchain network.
- If you’re feeling brave and would like to dive head first, check out the docs for creating a Hyperledger Fabric network.
Congratulations! If you followed one of the preceding guides, you should have your very own instance of Hyperledger Fabric and Hyperledger Composer. Easy, wasn’t it?
Blockchain for the blockchain developer
As a developer, you’ll probably want to jump into the code right away. Typically in a blockchain solution, the developer is responsible for creating the logic that runs on Hyperledger Fabric and also for creating the client application that submits transactions to the blockchain network. This section covers resources that will help you get started with coding the logic that runs on Hyperledger Fabric. If you follow these resources, by the end of this section you should be able to create a business network definition that can be deployed to a blockchain network.
- The easiest way to get started with developing business networks for blockchain is to use Hyperledger Composer. Hyperledger Composer allows you to easily create business network definitions to be used on your Hyperledger Fabric network. These business network definitions will define the assets, participants, and transactions that run on the blockchain network. For a more complete introduction, check out the Hyperledger Composer documentation.
- Already know what Hyperledger Composer is and just want to get to the coding? Lucky for you there’s an online sandbox that allows you to experiment with coding business network definitions. Or, if you want to walk you through creating your first business network definition on Hyperledger Composer, see this useful tutorial.
- When you’ve begun creating your business network definition, you can check the Hyperledger Composer reference if you need help with the syntax of the files.
- If you want a detailed walkthrough on creating business network definitions, see the IBM Code pattern Create and execute blockchain smart contracts.
If all went well, you should now be the proud owner of a business network definition built using Hyperledger Composer. If you’re feeling particularly adventurous, you could even deploy your business network to a running instance of Hyperledger Fabric like the one you set up network operators section.
Blockchain for the application developer
What about developers who want to write applications that interact with an existing blockchain? This section covers the resources available on how to get started creating apps that submit transactions to a deployed blockchain network.
- First, we recommend following this tutorial on creating applications to get started. It’s a great tutorial if you’d like to use Node.js. It uses the
composer-clientNPM module to create assets, submit transactions, and more.
- If you don’t want to use Node.js, we recommend the Hyperledger Composer instructions on writing web or mobile applications. This method instead uses the
composer-rest-serverto expose APIs for creating assets, participants, and transactions. You can also find information about creating the composer-rest-server.
After following one of the preceding tutorials, you should have at least one application that can connect with the deployed business network definition.
Hopefully, the resources we’ve listed in this post will get you to your “hello world” blockchain moment. So where do you go from here? Before you head off to form your new blockchain startup, be sure to check out the more detailed blockchain courses on developerWorks. If you’re working in an enterprise and would like a quick immersive hands-on, face-to-face experience to get you started, you can work with our IBM Developer Advocates team, which has a half-day workshop. And if you’re ready to get started on blockchain and you want to accelerate innovation and transform you business, you can engage IBM’s blockchain consulting experts through the IBM Blockchain Garage.
So now you have all the tools you need. Blockchain is one of the most exciting and disruptive technologies to come along in years. Don’t miss your opportunity — it’s time to roll up your sleeves and get busy!