Category Archives: Digital

Posted on Tue, Mar 19, 2019 @ 9:42 am

Good blockchain ideas don’t take off because of the most critical blockchain adoption challenge i.e bringing the blockchain business network together. IBM is leading the way in solving this challenge by bringing well-established enterprises and budding entrepreneurs together trying to build a minimum viable ecosystem needed for blockchain solutions. IBM Blockchain platform is the foundation on which these business networks are built on.

The N/W we will build in this guide

Powered by Hyperledger, IBM Blockchain Platform with its value add tools greatly ease the technicalities in establishing and operationalizing your blockchain network.

IBM Blockchain platform Technical Brief (source)

This post assumes some understanding of Blockchain and Hyperledger Fabric. Please listen to this webinar that OFS co-hosted with IBM Introducing blockchain and IBM Blockchain Platform with a demo

IBM Blockchain Platform 2.0 Beta

Early February’19 IBM unveiled the IBM Blockchain Platform 2.0 for free Beta. This release packages the following powerful features

  1. Greater deployment flexibility backed by Kubernetes cluster that you manage
  2. Multi-cloud blockchain network bringing true decentralization in where you run your nodes
  3. Dev tools integration with VS Code extension

In this post, we will see how to quickly set up a Blockchain network with two organizations in 10 simple steps.

What are we setting up?

Blockchain N/W model

If you prefer a video walkthrough of the entire setup process, please listen to this — takes 30 mins. In fact, I recommend you to do that. The remainder of this post is the abstraction of the video content. I am linking the steps to the video so that you can jump to sections of interest

Step 1: Launch your own Blockchain Instance

After you log in to IBM cloud, Blockchain Platform 2.0 will be available in the database section — start there.

Blockchain Platform 2.0

following the wizard should land you here

IBM Blockchain Platform 2.0 Console

Step 2: Create a Certificate Authority

A certificate authority is a mandatory component of your IBP network. You will need a certificate authority per MSP(Organization in the network).

Add a CA to be used by your MSP

Register users

Make sure you register two types of identities when you create the certificate authority

1.A user of type “peer” whose certificates your peers will use to communicate

2.A user of type “client” the certificate that will be used for administration

Step 3: Setup MSP

MSPs are the organizations in the network. Register your organizations and choose the certificate authority.

The organization admin should be the identity that you registered of type “client”. Enroll the identity.

Set up MSP

Enrolled ids will show up in the wallet

Pay attention to the fact that the Wallet here is ephemeral so you have to re-enroll your identities if don’t see them here, so take a back of the keys.

Enrolled Identities in Wallet

Step 4: Add Peers

Add peers and associate identity

Use the account of the type “peer” for Peer enroll id.Use CA admin for TLS.Use the account of type “client” when asked to associate identity

Peer detail view

Step 5: Add Orderer

Orderer is a key service acting as an orchestrator of the network broadcasting transactions between various peers in the network.

The configuration of the orderer is similar to that of peer configuration the orderer is usually one per organization, however, one has the flexibility to create more than one orderer when necessary.

Step 6: Create your Consortium

A consortium is your business network. You should attach your consortium to the orderer

Establish a network of organisations

Step 7: Set up a channel

Channels are created leveraging the foundational elements we established so far, channels are really a subnet of communication between two or more specific network members.

Create a channel

Please note that the newly created channel will not be listed until a peer is added to the channeleven if it is successfully added.

Step 8: Add Peers to Channel

Launch your peer and join a channel

You should know the name of the channel to add your peer to the channel

The Genesis Block

Step 9: Install and Instantiate Chaincode

Once the channel is established you can deploy smart contracts to the channel. Smart contracts are chain codes which are usually written in Javascript or GoLang

Install your Chaincode
The type of package accepted by the console is cds. The VScode plugin for IBM blockchain makes is very easy to create a cds package

Instantiate smart contract

Step 10: Your Blockchain network is ready. Rock On!!!

Up on successful installation of the smart contract, you can instantiate them. With that step, your very own IBP v2 Network is ready for consumption.

Rock On!!!

Kubernetes Dashboard

Kubernetes Pods Deployed for our N/W

Hope you found this guide helpful. Please share your comments. Thank you.

Disclaimer: This post is not intended to replace any official documentation from IBM for IBM Blockchain Platform. Also, note that the IBM Blockchain platform 2.0 is in Beta at the time of preparing this documentation, instructions might change as the platform progreses to GA

About the Author

gan

Ganeshram Ramamurthy is ObjectFrontier’s technical director and heads technology for presales. For many years, Ganesh has been designing and developing enterprise applications across various domains. He has a keen interest in emerging technologies and is now spearheading blockchain initiatives at OFS.

 

 

Posted on Wed, Apr 13, 2016 @ 6:46 am

I’m an old ­­software warhorse and wrote my first program back in 1972. Everything certainly has changed since then, but some principles endure. For example, one of my early bosses used to remark that good software was like a good axe a lumberjack used for years. Yes, the head had been changed several times and the handle was replaced a few times too, but somehow, it was still the same axe. His point was that good code should be designed and separated into components, so that as one part wears out, it can be replaced without throwing away the entire code base. Even when all the components have been replaced over time, somehow the product is still the same.

That concept of separate components with well-defined interfaces is particularly relevant in today’s digital business. As we all rush headlong into the process of digital transformation, it’s important that we don’t get so wrapped up in the latest mobile, cloud, and IoT technologies that we forget the basic notion that it will all change again. (And, like a metaphorical Yoda in the software world, I’ve lived long enough to see it change many, many times!) We can prepare for that change by moving to an API model that encapsulates our important business logic, which doesn’t change as often, from the ever-changing ways we use that logic to drive our business.

You often hear about the API economy these days, and as a veteran from the early days, I think it’s great to see us reach that nirvana of re-use we had long hoped for years ago. You no longer need to know the details of where data is stored, how it is accessed, or all the rules pertaining to it. You just call the component with an agreed-to format (API) and you instantly get the data you need to incorporate into your own program’s needs. This has given cloud-based software a tremendous boost that allows us to quickly build new software that stands on the shoulders of software already written and tested by someone else.

That same concept applies to our internal business software. If we can componentize our business rules and database access and create a set of well-defined API calls to handle things like adding a customer, calculating a payment, or giving out the current inventory level of a specific product, we are setting up our own building blocks that enable us to assemble them in new and important ways during our digital transformation efforts. Put another way, if we expect to fully participate in the API economy with other businesses, we must build our own APIs for ourselves first.

For example, APIs that record and monitor a car rental can be used by the rental agency’s website for booking purposes, by the renter’s expense management system to get the receipt and charges, and by the car’s manufacturer to provide usage information for warranty coverage.

While all this would certainly help the customer on his journey and streamline the car rental agency’s processing, it requires a lot of effort. The agency first must simplify its backend systems by getting rid of duplicate systems of record that store rental information inherited from prior acquisitions.  However, it takes years to decommission old systems of record. In the meantime, it may be necessary to design and build lower-level APIs around each of the duplicate systems and then build higher-level APIs to hide the fact that some of the data is actually stored in different systems. Neither the renter, nor his expense management system, nor the car manufacturer care one bit about which internal system the agency is using to record the transactions they need. You need to have your APIs mask all that complexity so you can offer a single view into your company and a single way to do business. This is the essence of what APIs offer to both your external customers and your own developers.

While it might be nice to try to build APIs for all your corporate data, the reality is that even if you could do it, the time and cost required would be prohibitive. You have to focus on building your APIs over time, embedding the work to do them in each of the short-term projects that our business requires. This requires some real discipline, as it always takes longer to build some APIs first than it would to just bang out the code asked for by the business.

Also, it always seems that your own staff, who are building new APIs, are the last ones to use them. However, by incenting them through carrots and sticks (like authorship awards for new APIs or penalties for not using them), you’ll create the ability to change the axehead and handle of your systems while keeping the essence of them the same.