IBM Blockchain Platform Integration

Hint

These instructions assume that you already have a Hyperledger Fabric network running on IBM Blockchain Platform. Don't have a running network? Click here to get one running!

If you do not already have an organization created, go to the Creating an Organization page and then come back here.

Configuring your network in BlocWatch

1) Start by creating a set of API credentials in the IBM UI. You can click on the credential once created to get your API Key and API Endpoint values.

The output above is the result from expanding a set of credentials (from IBM Console). You will need the values api_endpoint and apikey for step #3.

2) In order for BlocWatch to connect to one of your nodes, you need to utilize a valid identity. IBM allows you to export an Identity File that contains the credentials to authenticate communication to a node. To get the file from IBM, first open the Blockchain Platform Console for your network. Decide on a node that you would like to connect to. Go into the Certificate Authority associated with that node and enroll a new identity from a user that has Type admin.

Note

If you already have an identity you would like to use, you can skip enrolling a new one.

The newly enrolled identity is the one that you are using to connect to the node. Now, navigate to the Wallet page. From there, select the Identity that you just enrolled.

Click on Export Identity on the right hand side (see above). Save the file to a location that you can easily access. You need this file for step #6.

Note

The identity you use needs to have permission to communicate with the node(s) and see the channel. Under the field Subject, the identity should have the value OU=admin.

3) Now that we have everything we need from IBM, we have to create the blockchain in the BlocWatch application. Navigate into your organization that will host the blockchain and select the option to Register a new blockchain.

4) At the bottom of the list, select IBM Blockchain Platform (Fabric). Input the values (apikey and api_endpoint) from step #1 into the boxes on this page and then select CONNECT TO IBM.

5) BlocWatch will run a scan to detect all MSP IDs, Channels, and Nodes available to connect to. From each list (MSP and Channel), select the values that match the MSP ID and Channel for the node(s) that you want to connect to.

Note

The gif below shows a user running through steps 3 to 5 with their credentials.

6) Once you have chosen the MSP and Channel Name from the listings, you need to upload the identity file from step #2. Next to the Identity box, there is a wrench icon. Click on the wrench and select the file from the location you saved it to.

7) Finally, you have to chose what nodes you want to connect to. At the bottom part of the page, you will see all the nodes listed that were detected. The ones that show are members of the channel and of the MSP that you have picked.

Note

If any of the nodes have Mutual TLS enabled (aka Peer to Peer TLS or Client TLS), click on the Client TLS slider to input your Client crendentials. To generate the TLS certificates, refer to this guide.

8) When you are done configuring your chain, complete the blockchain creation wizard. Once your blockchain is created in BlocWatch, proceed to the Create Agent Deployment section.

Create Agent Deployment

At this point, you should have already gone through the steps described in Configuring your network in BlocWatch and you are now ready to deploy the agent. You can have BlocWatch auto-generate a kubernetes yaml for you by following the steps below.

1) Open the navigation menu, click on Settings and proceed to the Agents page. With your mouse cursor, hover over the orange plus button and select the option Add Agent with IBM. Give a name for your agent and select Continue. Do the same for the service account. Select the name(s) of the blockchain you created in the Configuring your network in BlocWatch section and proceed to the next step of the wizard.

2) The final step of the wizard is to download your template by clicking on the orange DOWNLOAD button. Save the file to a location that you can easily access (the file is named blocwatch-agent-deployment.yaml).

3) To deploy the agent into your network, you have two options:

Using the Kubernetes dashboard on IBM Cloud

1) In the IBM Cloud Dashboard page, open the navigation menu and proceed into the Kubernetes section.

2) Pick the cluster that your blockchain is running in.

3) Select the blue Kubernetes Dashboard button in the top right corner of the page.

4) Click on the blue + Create button in the top right corner of the page.

5) Select the CREATE FROM FILE option and pick the file (e.g blocwatch-agent-deployment.yaml) you downloaded in step #2.

Using kubectl and the command line

In order to use this method, you need to make sure that your kubectl and ibmcloud are configured properly. Once configured, you can create the deployment using the file from step #2:

$ kubectl apply -f blocwatch-agent-deployment.yaml

Congratulations! You have successfully configured the BlocWatch agent to monitor you IBM Blockchain Platform network. To confirm that it is working, you can look at the dashboard and you will see blocks begin to load in.