超级账本(hyperledger fabric) MSP介绍

       成员服务提供者(MSP)是一个为超级账本提供成员管理服务的组件。Msp抽象出了发行证书,验证证书,身份认证背后的加密机制和协议。一个MSP可以定义自身,以及验证与签名规则。

        一个Hyperledger Fabric区块链网络可以被一个或多个MSP管理。并提供了模块化的成员操作,以及兼容不同成员标准与架构之间的操作。

        接下来我们将详细说明MSP的实现步骤,以及最佳实践。

        MSP配置

        首先需要为MSP命名( MSP ID),以便在网络中使用 (例如 msp1、org2、org3.divA)。这个被命名的MSP可以代表在网络中的联盟、组织和组织分工。 在同一网络中MSP ID必须唯一,否则网络启动会失败。

        MSP的默认实现,需要指定一组参数来进行身份(证书)验证与签名验证。这些参数来自RFC5280,具体包括:

        1. 一组根证书以构成信任源

        2. 一组中级证书,用于证书的校验。这些证书应该被信任源的一个证书所认证;此参数可选。

        3. 一组可信任的X.509证书列表,以表示该MSP的管理员。管理员可以更改MSP的配置(例如根CA,中间CA)

       4.  一组组织单元列表。此参数可选。例如:使用相同根证书和中级证书的多个组织,会为它们的成员设置OU字段。

       5. 一组由根证书或中级证书所发布的证书吊销列表;此参数可选。

       6.  一组根证书列表(满足X.509标准)以构成TLS信任源,服务于TLS证书

       7. 一组中级TLS证书列表;此参数可选。

      有效的MSP实例满足以下条件:

        1. 它们应符合X.509证书标准,且具有一条可验证的路径(该路径通往根证书);

        2. 它们没有包含在任何CRL中;

        3. 它们在证书的OU字段中设置一个或多个MSP配置的组织单元;

       关于当前MSP实现过程中身份验证的更多信息,我们推荐各位读者阅读MSP Identity Validity Rules

       除了验证相关参数,节点使用MSP来签名和认证, 需要指定:

       1. 用于节点签名的签名密钥(目前只支持ECDSA密钥);

       2. 节点的X.509证书,对MSP验证参数机制而言是一个有效的身份 ;

        值得注意的是,MSP身份永远不会过期;它们只能通过添加到合适的CRL上来被撤销。此外,现阶段不支持吊销TLS证书。

       如何创建MSP所需证书和签名KEY

       1.  要想生成满足MSP配置的X.509证书,应用程序可以使用Openssl。我们必须强调:在Hyperledger Fabric中,不支持包括RSA密钥在内的证书。

      2.  另一个选择是使用cryptogen工具,其操作方法详见快速入门章节。

      3.   Hyperledger Fabric CA也可用于生成配置MSP所需的密钥及证书。

      在Peer和Orderer节点里启用MSP

        A. 要想(为peer节点或orderer节点)建立本地MSP,管理员应创建一个文件夹(如$MY_PATH/mspconfig)并在其下包含6个子文件夹与一个文件:

        1. 文件夹admincerts包含如下PEM文件:每个PEM文件对应于一个管理员证书

        2. 文件夹cacerts包含如下PEM文件:每个PEM文件对应于一个根CA的证书

        3. (可选)文件夹intermediatecerts包含如下PEM文件:每个PEM文件对应于一个中级证书

        4. (可选)一个用于支持组织单元和成员分组的config.yaml文件。

        5. (可选)文件夹crls包含相关CRL

        6.  一个keysotre文件夹保存了该节点签名所用的key ;我们必须强调:现阶段还不支持RSA密钥

        7. 一个signcerts文件夹保存了该节点的证书。

        8.(可选)文件夹tlscacerts包含如下PEM文件:每个PEM文件对应于一个根TLS 证书。

        9. (可选)文件夹tlsintermediatecerts包含如下PEM文件:每个PEM文件对应于一个中级TLS 证书。

        B. 在节点的配置文件中 (peer节点使用core.yaml ,orderer节点使用 orderer.yaml),需要指定到mspconfig文件夹的路径,以及节点的MSP ID 。在peer里使用mspConfigPath字段,在orderer里使用LocalMSPDir字段指定mspconfig文件夹的路径。该路径是FABRIC_CFG_PATH环境变量的相对路径。在peer节点的localMspId,orderer节点的LocalMSPID设置MSP ID。 也可以使用 环境变量CORE_PEER_LOCALMSPID(peer),ORDERER_GENERAL_LOCALMSPID(orderer)来设置 。对于orderer节点,还需要为system channel(系统通道)生成genesis block (创世区块) 。

      组织单元

        在config.yaml文件中配置组织单元信息。例如:

        OrganizationalUnitIdentifiers:

                   - Certificate:"cacerts/cacert1.pem"

                     OrganizationalUnitIdentifier:"commercial"

                  - Certificate:"cacerts/cacert2.pem"

                    OrganizationalUnitIdentifier:"administrators"

         在上面这个例子中,我们配置了两个组织commercial和administrators。Certificate字段 设置了 根证书或者中级证书的路径 。

       成员分组

        MSP可以通过设置证书的OU字段,进一步把节点分为client节点和peer节点。client节点用于发起事物和查询,peer节点用于背书和提交事物。同时,config.yaml需要做如下配置:

                  NodeOUs:

                           Enable:true

                           ClientOUIdentifier:

                                   Certificate:"cacerts/cacert.pem"

                                   OrganizationalUnitIdentifier:"client"

                           PeerOUIdentifier:

                                   Certificate:"cacerts/cacert.pem"

                                   OrganizationalUnitIdentifier:"peer"

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 217,277评论 6 503
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 92,689评论 3 393
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 163,624评论 0 353
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 58,356评论 1 293
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 67,402评论 6 392
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 51,292评论 1 301
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 40,135评论 3 418
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 38,992评论 0 275
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 45,429评论 1 314
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 37,636评论 3 334
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 39,785评论 1 348
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 35,492评论 5 345
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 41,092评论 3 328
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 31,723评论 0 22
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 32,858评论 1 269
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 47,891评论 2 370
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 44,713评论 2 354