Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

What exactly Membership Service Provider (MSP) is in Hyperledger Fabric?

While reading the documentation on Hyperledger Fabric I couldn't understand what MSP is. It is really unclear to me what an MSP exactly is and how it differs from CA?

What I understand is CA issue certificates and MSP says which of these are valid and belong to a certain organization. But, what exactly it is?

Is the MSP some kind of a server that has some kind of an interface, that other peers and orderers use, or is it a bunch of directories that contain configuration, or what exactly it is? How can I view it?

The documentation describes what its role is and how it fits into the blockchain network. But not what exactly what it is.

When I run a simple dev fabric network, decker contains a process for peer, orderer, and a CA. Where is the MSP?

I've checked these questions but none of them explains what MSP actually is.

  • Hyperledger Fabric docs on Membership Service Provider - Questions
  • Hyperledger fabric understanding MSP
  • What is the difference between MSP and Fabric CA?
like image 713
Adelin Avatar asked Jun 09 '19 11:06

Adelin


People also ask

What do you mean by MSP in blockchain?

The MSP is the mechanism that enables you to participate on a permissioned blockchain network. To transact on a Fabric network a member needs to: Have an identity issued by a CA that is trusted by the network. Become a member of an organization that is recognized and approved by the network members.


3 Answers

OK, so I was able, hopefully, to answer my question. I will answer it in the form of points.

  • The name "MSP" is, in my opinion, a poorly chosen name. The word "service" implies having a working process/program/server in place, like Web Service, Rest Service etc. The word "Provider" also implies that it provides the membership service and finally I imagine that this is some kind of an OAuth or LDAP Server or something alike, it is not. It a bunch of directories with digital certificates. Probably a better name would be Members Certificates Directory (MCD) or Members Certificates Registry (MCR).
  • After realizing that these are directories from the documentation

To set up a local MSP (for either a peer or an orderer), the administrator should create a folder (e.g. $MY_PATH/mspconfig) that contains six subfolders and a file

Also set up implies starting and configure a process/server or something alike.

  • So I entered the peer container of the Dev Servers created for Hyperledger Composer development and searched for a $FABRIC_CFG_PATH

enter image description here

  • the /msp DIRECTORY is the MSP directory and it contains directories explained in the docs And it is configured as required by the documents:

The path to the mspconfig folder is expected to be relative to FABRIC_CFG_PATH and is provided as the value of parameter mspConfigPath for the peer, and LocalMSPDir for the orderer

enter image description here

enter image description here

I hope this clears uncertainty for others as it did for me and the docs of fabric updated for more clarity.

like image 146
Adelin Avatar answered Oct 28 '22 13:10

Adelin


Hyperledger fabric 2.2. documentation explains it as per the accepted answer.

https://hyperledger-fabric.readthedocs.io/en/release-2.2/membership/membership.html

What is MSP

Despite its name, the Membership Service Provider does not actually provide anything. Rather, the implementation of the MSP requirement is a set of folders that are added to the configuration of the network... Whereas Certificate Authorities generate the certificates that represent identities, the MSP contains a list of permissioned identities.

Two types of MSP :

Local MSPs are represented as a folder structure on the file system

Channel MSPs are described in a channel configuration.

like image 23
Sumit Arora Avatar answered Oct 28 '22 12:10

Sumit Arora


The confusion may come from the fact HLF is both defining the MSP as an abstraction layer and providing a simplistic implementation (using directories).

MSP documentation -link above- clearly states In the rest of this document we elaborate on the setup of the MSP **implementation** supported by Hyperledger Fabric

like image 39
MonoThreaded Avatar answered Oct 28 '22 13:10

MonoThreaded