IBM Blockchain 101: Quick-start guide for developers

Join the blockchain revolution! If you’re exploring distributed ledger technology for business use and want to build a business blockchain for demos, pilots, or pre-production staging, this guide is for you. We’ll introduce you to several ways to get started now, including the IBM Blockchain Platform Starter Plan.

This guide shows you how to spin up a blockchain network based on the latest open source Hyperledger Fabric framework using either the Starter Plan or alternative methods. But let’s first review key concepts around developing a business blockchain network.

Business blockchain concepts

What is a business blockchain network?

A business blockchain network is a decentralized network that uses distributed ledger technology for the efficient and secure transfer of business assets between member organizations in the network. Assets can be physical or digital, such as vehicles, diamonds, fresh produce, or insurance records. A shared, distributed ledger records an immutable history of all asset transactions between participants in the network, and catalogs the current state (world state) of those assets. The business rules that govern transactions are agreed upon by members and encapsulated in chaincode, also known as smart contracts.

Instead of relying on a central authority or trusted intermediary, such as a bank or brokerage firm, to validate transactions, members of a blockchain network use a consensus mechanism to improve transaction processing speed, transparency, and accountability across the network. For additional confidentiality, members join one or more channels that allow for data isolation; a channel-specific ledger is shared by the authenticated peers in that channel.

A blockchain network for business is collectively owned and operated by a group of identifiable and verifiable institutions, such as businesses, universities, or hospitals. In such a permissioned network, the participants are known to each other, and transactions are processed much faster than in an non-permissioned, public network, like the Bitcoin network. In the Bitcoin network, members are anonymous, forcing the reliance on “proof-of-work” and other types of consensus mechanisms that require time-consuming computations to confirm identities and validate transactions.

Take the Blockchain essentials course. In this free 2-hour course, you’ll learn about blockchain for business and explore key ways the technology sparks innovation. Take a quiz for a badge when you complete the videos and lab exercise.

Take the IBM Blockchain foundation developer course. This free 6-hour course expands on “Blockchain essentials” and shows you how to model, build, and test a business network and create an application that can query a ledger. Take a quiz for a badge when you complete the videos and lab exercises.

The open source engine of business blockchains: Hyperledger Fabric

To meet modern business demands, IBM has joined with other companies to collaboratively develop an open source, production-ready, business blockchain framework, called Hyperledger Fabric™, one of the Hyperledger® projects hosted by The Linux Foundation®. Hyperledger Fabric supports distributed ledger solutions on permissioned networks for a wide range of industries. Its modular architecture maximizes the confidentiality, resilience, and flexibility of blockchain solutions. 159 engineers from 27 organizations contributed to Hyperledger Fabric v1.0.

IBM’s enterprise-ready platform: The IBM Blockchain Platform

Platform overview

The IBM Blockchain Platform is a blockchain software-as-a-service offering on the IBM Cloud. It’s the only fully integrated, enterprise-ready blockchain platform designed to simplify the development, governance, and operation of a decentralized, multi-institution business network. The IBM Blockchain Platform accelerates collaboration in this decentralized world by leveraging open source technology from the Hyperledger Fabric framework and Hyperledger Composer tooling.

The IBM Blockchain Platform makes it fast and easy for network members to get started developing and quickly move to a collaborative environment with the performance, privacy, and security for even the most demanding use cases and regulated industries.

Different membership plans are available to fit different ecosystem needs. You can migrate from proof-of-concept to pilot to production on a secure, high-performance, and fully scalable network that you can’t outgrow. The newest membership plan, designed as an easy and economical on-ramp to developing and testing pre-production applications, is the Starter Plan.

What’s in the Starter Plan

The easiest and most economical way for developers to get started with blockchain development is the IBM Blockchain Platform Starter Plan. This development and testing environment is ideal for developers who are exploring blockchain technology and want to build a business blockchain for demos, pilots, or pre-production staging.

Any developer — whether enterprise, start-up, academic, novice, or experienced — can experience and deploy code to a full-function, multi-organization blockchain network with the Starter Plan.

The Starter Plan provides one-click setup of a pre-configured, kick-starter network consisting of an ordering service to sequence transactions for the shared ledger, a default channel for communication between the member companies, and two companies, each with a certificate authority and peer node to validate and commit transactions to the ledger. The Starter Plan integrates all Hyperledger Fabric capabilities and the Hyperledger Composer development toolset (called IBM Blockchain Platform: Develop), with the added benefit of an intuitive UI that cuts network administration and governance time.

Develop valuable network governance and operation skills that you can seamlessly transfer to an Enterprise plan. The Starter Plan offers the same experience as the Enterprise plans, so there’s no learning curve when migrating to your full production network.

You can use the Starter Plan’s sample applications for demo purposes and for developing your own applications. To automatically deploy and run a sample application, just select, deploy, and launch it via the IBM Cloud toolchain. Or learn how to develop your own applications, step by step, by deploying and customizing the sample applications manually.

Several sample applications are available for you to experiment with and run in the default channel. For example:

The Marbles sample is a colorful demonstration of how a front-end application interacts with chaincode, as members on a network transfer virtual marbles to other members. The application is written in Node.js, and the chaincode is written in Go.

The Vehicle Manufacture sample is both an Angular web application and a tutorial that steps you through using Hyperledger Composer to model a simple network that tracks a new car from order to delivery.

The Perishable Goods sample tracks a shipment in a supply chain, stores sensor data on the blockchain, and demonstrates the use of a smart legal contract.

The Starter Plan’s intuitive UI helps you govern and monitor your network. For example, you can view your peer nodes, add organizations to your network, create new channels for data isolation and privacy for a subset of members, install chaincode on a peer and instantiate it on a channel, and set up notifications for activities that need member approval.

Starter Plan demo (video)

In this video, Don and Mark walk you through how to launch your Starter Plan network, show you cool features that you won’t find elsewhere, and let you know where to get additional help if you need it.

In short, the Starter Plan makes it easier than ever to get hands-on experience with business blockchain development, governance, and operation in a collaborative, pre-production environment. And because the same easy-to-use UI extends through the other membership plans, your learning curve is flattened when you move to production deployment.

What’s NOT in the Starter Plan

The Starter Plan is optimized for getting started with pre-production development and testing. It differs from the Enterprise plans in several ways:

In the Starter Plan, the certificate authority and ordering service are not fault tolerant. Each company in the Starter Plan network has only one certificate authority, and the network has only one ordering service, which performs SOLO consensus.

In the Starter Plan, the Hardware Security Module (HSM) is not available to safeguard and manage digital keys for strong authentication and cryptoprocessing.

In the Starter Plan, during maintenance and network updates (performed weekly on Tuesday mornings), you may experience brief outages.

The Starter Plan does not guarantee data retention with release upgrades. However, you can migrate your Starter Plan .bna files, chaincode, and applications to Enterprise plans.

What’s beyond the Starter Plan

When you’re ready to grow your network further and deploy your network definition, chaincode, and applications to a production environment with added layers of hardened security and premium support, you’ll want an Enterprise plan.

In an Enterprise plan, you get all of the Starter Plan features, plus a crash-tolerant, production-level infrastructure running in a secure cloud container on an IBM z® mainframe, complete with runtime/data isolation, high availability for the ordering service and certificate authority, and the ability to use HSM cards for secure key storage.

Why not just use open source technologies directly on your own computer?

A locally deployed blockchain based on the Hyperledger Fabric framework and built with Hyperledger Composer tools will be a terrific simulation. But without access to other member organizations, you can’t experience or test the scalability and power of a multi-organization network. Furthermore, using the open source technologies locally requires a bit more patience and dexterity with command-line coding.

Conversely, with the Starter Plan, you get a scalable, reliable, fully integrated IDE that guides you through network creation, deployment, monitoring, and governance with simple clicks, easy instructions, and extensible samples. The code and skills you develop on the Starter Plan are easily transferable to Enterprise plans, when you’re ready for a full-scale network in production.

Start now! Kick-start your blockchain network using the Starter Plan

The easiest, most economical way to learn your way around a real business blockchain and start developing blockchain skills and applications now is to sign up for the IBM Blockchain Platform Starter Plan.

Deploy a sample business network to the Starter Plan

Step-by-step, learn how to deploy a sample network (the Car Auction network) to the Starter Plan. Then you can start developing, demoing, and staging your blockchain applications on a simulated multi-organization network.

You’ll be directed to the Blockchain catalog page in the IBM Cloud. Select the Starter Membership Plan and click Sign up to Create to launch your Starter Plan network. You’ll supply a Service name for your network. Under Pricing Plans, select Starter Membership Plan, and then click Create.

When you see the Welcome screen, choose whether you want to begin by watching Don and Mark’s introductory video, by deploying sample applications, or by developing and deploying your own applications.

If you select Develop apps, you’ll be guided through a series of easy steps to install the “IBM Blockchain Platform: Develop” tools to model and deploy your network definitions to the Starter Plan. Complete details are in the Starter Plan documentation. Here’s a preview of what you’ll be guided to do:

Install the development tools (npm modules) to create and test your business network.

Create a directory containing all the components that you’ll need to define for your business network, including assets, participants, and transactions.

Package your new business network into a single deployable file called a business network archive (.bna) file.

Deploy the .bna file to the IBM Blockchain Platform Starter Plan network. When the .bna file is deployed, a REST server can be generated and build RESTful API calls so that external applications can interact with your 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 instructions for setting up Hyperledger Composer on Kubernetes. You’ll also see how to create a REST server that exposes API endpoints so developers can interact with your blockchain network.

Get help and support

For general blockchain questions: Search dW Answers. Browse questions that have already been asked, or submit a new question (include the keyword blockchain).

For help with the IBM Blockchain Platform Starter Plan: The Support section in the UI provides many resources for self-help as well as release notes. For software defects or a problem that eludes the given resources, you’ll find instructions to submit a support case in the IBM Cloud Service Portal. When you submit a support case, you get an email response within minutes.

Next steps

We’ll conclude with 5 great ways to build your blockchain skills:

Stay in the know with the Blockchain Newsletter from developerWorks. Check out the current issue and subscribe.

Stop by the Blockchain Developer Center on developerWorks. It’s your source for tools and tutorials, along with code and community support, for developing and deploying blockchain solutions for business.

Take the Blockchain essentials course for developers to learn the ins and outs of asset transfers. At the end of this free, self-paced, 2-hour course, take a quiz, get a badge, and start planning useful blockchain applications for your business network.

Advance to the IBM Blockchain foundation developer course, a free 6-hour course that expands on “Blockchain essentials” and provides a more detailed picture of the components and architecture of blockchain business networks, as well as experience building a network and creating an application.

Check out the many blockchain code patterns, which provide roadmaps for solving complex problems, and include overviews, architecture diagrams, process flows, repo pointers, and additional reading.