Intellipaat Back

Explore Courses Blog Tutorials Interview Questions
0 votes
2 views
in Blockchain by (4.1k points)

Before I jump onto the question directly, I would like to talk about how I encountered this question.

Basically, I'm working with the IBM blockchain technology right now, not only to use the block chain service in Bluemix, but also to modify the Hyperledger peer source code. You can find the Hyperledger project from https://github.com/hyperledger/fabric. It's a Linux platform app written by GO.

After the modification, we had a testing at local vagrant VM servers. All the changes are fine.

Now I try to deploy the updated code to IBM Bluemix via CF App channel. The action failed in compile phase because the basic environment is missing.

Here come my questions:

  1. For bluemix, when I start the Block Chain service, what actually happens behind? Does bluemix start a few VM for me to run the peer nodes?
  2. Anyone has ever tried to push peer via cf app channel? How to settle the buildpack for peer node?
  3. When the peer node is running, it's listening on 3 ports other than 8080. In my local VM server it's fin. But how can I enable those ports in bluemix?

Thanks for your ideas and contribution.

1 Answer

0 votes
by (14.4k points)
edited by

Consider the idea of running the Hyperledger node as an application in Cloud Foundry. Though you can create a build pack with Go, RocksDB, executable files for Docker, there are several challenges in this configuration.

In addition to the “peer” application, the Docker demon should also be started inside the CF container. 

The CF application exposes just 1 network port by default. So, we cannot start a REST endpoint in the same container where the validation peer is started. 

Workaround - we can run “Membership service”, “Validation peer” and “REST client” as different applications in CF using -c option at application deploy time.

CF Router supports only a limited number of protocols/ On the application level, there is a problem with Enrolment Certificate (it can be issued just once), in case if CF restarts your application - Validation Peer will not be able to apply for another Enrolment certificate using the same credentials. Workaround - It possible to save Certificates in external persistent storage and load them at the start time. In any case, VP will have just 1 instance in CF (scalability will not be used)

As a result, we can hardly use such CF benefits like scalability and automatic failover without customizing to the Fabric core.

You can learn more about Blockchain through Blockchain Certification Course by Intellipaat

31k questions

32.8k answers

501 comments

693 users

Browse Categories

...