Hyperledger fabric MSP成员管理
Hyperledger fabric 1.0 基于 PKI(Public Key Infrastructure)体系,引入了MSP模块(Membership Service Provider): 成员管理服务提供商,生成数字证书来标识和管理成员的身份。
Fabirc的成员身份基于标准的X.509证书,密钥使用的是ECDSA算法,利用PKI体系给每个成员颁发数字证书,通道内只有相同MSP内的节点才可以通过Gossip协议进行数据分发。
证书类型
每个MSP只有一个根CA证书,从根CA证书到最终用户证书形成一个证书信任链(chain of trust)
根CA证书(Root Certifiate):自签名的证书,用根CA签名生成的证书可以签发新的证书,形成树型结构 (必须配置)
中间CA证书(Intermediate Certificate):由其他CA证书签发的证书,可以利用自己的私钥签发新的证书 (可选配置)
MSP管理员证书: 有根CA的证书路径,有权限修改channel配置 (必须配置) – 创建channel,加入channel等请求都需要管理员私钥进行签名
TLS根CA证书:自签名的证书,用于TLS(Transport Layer Security, 安全传输层协议)传输 (必须配置)
MSP目录
分析fabric v1.1示例中的crypto-config目录,网络中共有1个orderer节点和4个peer节点(分为两个组织org1,org2),该目录利用cryptogen工具生成。目录下有ordererOrganizations和peerOrgnizations两个子目录,分别表示orderer节点和peer节点MSP配置。这里分析org1的MSP配置,为了方便节点的部署,目录中有很多冗余存储。
org1.example.com
├── ca                    # 根CA的私钥和证书
│   ├── 0e729224e8b3f31784c8a93c5b8ef6f4c1c91d9e6e577c45c33163609fe40011_sk
│   └── ca.org1.example.com-cert.pem
├── msp                   # MSP配置目录
│   ├── admincerts                              # MSP管理员证书
│   │   └── Admin@org1.example.com-cert.pem
│   ├── cacerts                                 # MSP根CA证书(与ca目录下的证书一致)
│   │   └── ca.org1.example.com-cert.pem
│   └── tlscacerts                              # TLS根CA证书
│       └── tlsca.org1.example.com-cert.pem
├── peers                  # peer节点的MSP配置私钥
│   ├── peer0.org1.example.com    # peer0节点配置
│   │   ├── msp
│   │   │   ├── admincerts                      # 管理员证书
│   │   │   │   └── Admin@org1.example.com-cert.pem
│   │   │   ├── cacerts                         # 根CA证书
│   │   │   │   └── ca.org1.example.com-cert.pem
│   │   │   ├── keystore                        # 节点的私钥
│   │   │   │   └── 27db82c96b1482480baa1c75f80e5cce249beaab27b70c741bb0e2554355957e_sk
│   │   │   ├── signcerts                       # 节点的证书
│   │   │   │   └── peer0.org1.example.com-cert.pem
│   │   │   └── tlscacerts                      # TLS根CA证书
│   │   │       └── tlsca.org1.example.com-cert.pem
│   │   └── tls
│   │       ├── ca.crt                           # TLS根CA证书
│   │       ├── server.crt                       # 节点用的TLS证书
│   │       └── server.key                       # 节点的TLS私钥
│   └── peer1.org1.example.com
│       ├── msp
│       │   ├── admincerts
│       │   │   └── Admin@org1.example.com-cert.pem
│       │   ├── cacerts
│       │   │   └── ca.org1.example.com-cert.pem
│       │   ├── keystore
│       │   │   └── fdee12a3510fde3155c37128cfec26090ae249bfbca28f884e60c21338493edd_sk
│       │   ├── signcerts
│       │   │   └── peer1.org1.example.com-cert.pem
│       │   └── tlscacerts
│       │       └── tlsca.org1.example.com-cert.pem
│       └── tls
│           ├── ca.crt
│           ├── server.crt
│           └── server.key
├── tlsca       # TLS根CA证书和私钥
│   ├── 945092d936f5838c5a6f6484db974d857933706737d00d04bf65f74e3976f9f8_sk
│   └── tlsca.org1.example.com-cert.pem
└── users       # 默认生成的用户配置,一般会包含1个管理员和1个普通成员
    ├── Admin@org1.example.com                   # MSP管理员
    │   ├── msp
    │   │   ├── admincerts                       # 管理员证书
    │   │   │   └── Admin@org1.example.com-cert.pem
    │   │   ├── cacerts                          # CA根证书
    │   │   │   └── ca.org1.example.com-cert.pem
    │   │   ├── keystore                         # 管理员私钥
    │   │   │   └── 5890f0061619c06fb29dea8cb304edecc020fe63f41a6db109f1e227cc1cb2a8_sk
    │   │   ├── signcerts                        # 管理员证书
    │   │   │   └── Admin@org1.example.com-cert.pem
    │   │   └── tlscacerts                       # TLS根证书
    │   │       └── tlsca.org1.example.com-cert.pem
    │   └── tls
    │       ├── ca.crt                           # TLS根证书
    │       ├── server.crt                       # 管理员的TLS证书
    │       └── server.key                       # 管理员的TLS私钥
    └── User1@org1.example.com
        ├── msp
        │   ├── admincerts
        │   │   └── User1@org1.example.com-cert.pem
        │   ├── cacerts
        │   │   └── ca.org1.example.com-cert.pem
        │   ├── keystore
        │   │   └── 73cdc0072c7203f1ec512232c780fc84acc9752ef30ebc16be1f4666c02b614b_sk
        │   ├── signcerts
        │   │   └── User1@org1.example.com-cert.pem
        │   └── tlscacerts
        │       └── tlsca.org1.example.com-cert.pem
        └── tls
            ├── ca.crt
            ├── server.crt
            └── server.key
												
											Hyperledger fabric MSP成员管理的更多相关文章
- Hyperledger Fabric MSP Identity Validity Rules——MSP身份验证规则
		
MSP Identity Validity Rules——MSP身份验证规则 正如Hyperledger Fabric Membership Service Providers (MSP)——成员服务 ...
 - Hyperledger Fabric 1.0 从零开始(九)——Fabric多节点集群生产启动
		
7:Fabric多节点集群生产启动 7.1.多节点服务器配置 在生产环境上,我们沿用4.1.配置说明中的服务器各节点配置方案. 我们申请了五台生产服务器,其中四台服务器运行peer节点,另外一台服务器 ...
 - Hyperledger Fabric CouchDB as the State Database
		
使用CouchDB作为状态数据库 状态数据库选项 状态数据库包括LevelDB和CouchDB.LevelDB是嵌入在peer进程中的默认键/值状态数据库,CouchDB是一个可选的外部状态数据库.与 ...
 - HyperLedger Fabric 1.1 手动部署单机单节点
		
手动部署单机单节点 之前发布过官方的e2e部署方案,由于环境或是访问权限等各种问题,还是有相当一部分码友无法成功跑起来,故此,本章将来一次纯手动操作的集群部署. 主要需要的步骤如下: 1:环境整理 2 ...
 - Centos7 HyperLedger Fabric 1.4 生产环境部署
		
Kafka生产环境部署案例采用三个排序(orderer)服务.四个kafka.三个zookeeper和四个节点(peer)组成,共准备八台服务器,每台服务器对应的服务如下所示: kafka案例网络拓扑 ...
 - Hyperledger fabric 1.3版本的安装部署(原创多机多Orderer部署
		
首先,我们在安装前,要考虑一个问题 Hyperledger Fabric,通过指定的节点进行背书授权,才能完成交易的存储 延伸开来,就是为了实现容错.高并发.易扩展,需要zookeeper来选择排序引 ...
 - Hyperledger Fabric CouchDB as the State Database——使用CouchDB
		
使用CouchDB作为状态数据库 状态数据库选项 状态数据库包括LevelDB和CouchDB.LevelDB是嵌入在peer进程中的默认键/值状态数据库,CouchDB是一个可选的外部状态数据库.与 ...
 - 搭建基于hyperledger fabric的联盟社区(三) --生成公私钥证书及配置文件
		
一.生成公私钥和证书 Fabric中有两种类型的公私钥和证书,一种是给节点之前通讯安全而准备的TLS证书,另一种是用户登录和权限控制的用户证书.这些证书本来应该是由CA来颁发,但是目前只有两个社区,所 ...
 - HyperLedger Fabric 1.4 kafka生产环境部署(11.1)
		
11.1 Kafka模式简介 上一章介绍的Solo模式只存在一个排序(orderer)服务,是一种中心化结构,一旦排序(orderer)服务出现了问题,整个区块链网络将会崩溃,为了能在正式 ...
 
随机推荐
- QT bug ig9icd64.dll
			
QT bug ig9icd64.dll bugintel ig9icd64.dll 处有未经处理的异常 遇到了一个 奇奇怪怪的bug, 一般的QT程序中 在main.cpp 中初始化一个窗口进行显示后 ...
 - Scala教程之:深入理解协变和逆变
			
文章目录 函数的参数和返回值 可变类型的变异 在之前的文章中我们简单的介绍过scala中的协变和逆变,我们使用+ 来表示协变类型:使用-表示逆变类型:非转化类型不需要添加标记. 假如我们定义一个cla ...
 - @SessionAttributes 和 @SessionAttribute的区别
			
@SessionAttributes 和 @SessionAttribute的区别 Spring MVC中有两个长得非常像的注解:@SessionAttributes 和 @SessionAttrib ...
 - tcpdump常用抓包命令
			
主要语法 过滤主机/IP: tcpdump -i eth1 host 172.16.7.206 抓取所有经过网卡1,目的IP为172.16.7.206的网络数据 过滤端口: tcpdump -i ...
 - 47000名开发者每月产生30000个漏洞 微软是如何用AI排查的
			
目前微软共有 47000 多名开发人员,每月会产生将近 30000 个漏洞,而这些漏洞会存储在 100 多个 AzureDevOps 和 GitHub 仓库中,以便于在被黑客利用之前快速发现关键的漏洞 ...
 - Rust 1.31正式发布,首次引入Rust 2018新功能
			
Rust 1.31是第一个实现了Rust 2018独有新功能并且不保证与现有代码库兼容的版本.Rust 2018相关工作正在进行中,而Rust 1.31只是整个三年开发周期的开始,这个开发周期将对这门 ...
 - Vue项目中实现图片懒加载
			
个人网站 https://iiter.cn 程序员导航站 开业啦,欢迎各位观众姥爷赏脸参观,如有意见或建议希望能够不吝赐教! ---对于图片过多的页面,为了加速页面加载速度,所以很多时候我们需要将页面 ...
 - caffe学习笔记(1)安装 - Ubuntu 15.04
			
官方安装手册 备注:使用系统 - Ubuntu 15.04 64位操作系统(若系统位于虚拟机上,在安装CUDA后,Ubuntu将无法进入图形界面) /************************* ...
 - NodeJS实现websocket代理机制
			
使用的模块 ws http http-proxy 主要通过htt-proxy实现中转 启动websocket服务 var WebSocketServer = require('ws').Server; ...
 - H5 -- 取消a标签在点击时的背景颜色
			
原文链接:点我 1.取消a标签在移动端点击时的蓝色 a { -webkit-tap-highlight-color: rgba(255, 255, 255, 0); -webkit-user-sele ...