The SOLO default configuration for Hyperledger Composer
Hi there. I have had a hard time trying to understand Hyperledger Composer underlying default Fabric configuration. I followed all the steps in the official tutorial. Although I am very sure more than once found a problem trying to understand the architecture especially if you don't have an understanding of fabric. That’s why I compared the fabric default. The following picture is a Fabric Architecture by IBM:
I could not find some diagram similar to this in Hyperledger Composer to understand the configuration with the Hyperledger Fabric it uses. I just found some information in the following link:
According to that official documentation, Hyperledger Composer defines its network properties in that connection profile but is still a little bit confusing to know how many peers, ordering service, client connection configuration or channels Composer has. Therefore I tried to find the docker-composer.ylm file in fabric version hlfv12(The fabric servers that you download in the installation of Composer). In that file we can see clearly that the default configuration could be seen as follows:
From that .yml file we can assume that hlfv12 is using the following for composer:
- 1 Single organization(Hyperledger Composer Application) and one single client connection configuration(timeouts, connection type, etc).
- 1 single ordering service with SOLO configuration. (More information about the possible configurations here). It means that kafka is disabled and requires more settings for using it. At the moment the system is not BFT.
- 1 peer with endorsing and committing roles. This single peer holds the chain-code, interacts with the ordering service, and finally validates the transaction. Moreover, the peer is configured to use CouchDB as the state database. It means that the docker that represents the peer uses CouchDB.
- 1 single channel. This is important: ‘Hyperledger Composer can only work with 1 channel, so you need to ensure that only a single channel is defined in this section even though the document can support multiple channel definitions’.(reference)
- 1 single Certificate Authority. I am assuming this certificate has to do with the permission you can modify in the permissions.acl file.
Overall Hyperledger Composer is a good enough framework to use for jumping in quickly into the development of the application but if you want to understand the architecture and have more options, it could be confusing using a JSON connection profile. I would suggest modifying instead of the docker-composer.ylm instead once the Fabric architecture is understood.
Any comment is welcome if I missed something so we can build the next generation of Blockchain together :)
Victoria, BC, Canada, December 17, 2018
…
If you want to know more about me and my projects follow me in my social media: