# Fabric 1.0源代码笔记 之 cryptogen(生成组织关系和身份证书)
## 1、cryptogen概述
cryptogen,用于生成组织关系和身份证书。
命令为:cryptogen generate --config=./crypto-config.yaml --output ./crypto-config
## 2、crypto-config.yaml文件示例
```bash
OrdererOrgs:
- Name: Orderer
Domain: example.com
Specs:
- Hostname: orderer
PeerOrgs:
- Name: Org1
Domain: org1.example.com
Template:
Count: 2
Users:
Count: 1
- Name: Org2
Domain: org2.example.com
Template:
Count: 2
Users:
Count: 1
```
## 3、组织关系和身份证书目录结构(简略版)
```bash
tree -L 5 crypto-config
crypto-config
├── ordererOrganizations
│   └── example.com
│   ├── ca
│   │   ├── 1366fb109b24c50e67c28b2ca4dca559eff79a85d53f833c8b9e89efdb4f4818_sk
│   │   └── ca.example.com-cert.pem
│   ├── msp
│   │   ├── admincerts
│   │   │   └── Admin@example.com-cert.pem
│   │   ├── cacerts
│   │   │   └── ca.example.com-cert.pem
│   │   └── tlscacerts
│   │   └── tlsca.example.com-cert.pem
│   ├── orderers
│   │   └── orderer.example.com
│   │   ├── msp
│   │   └── tls
│   ├── tlsca
│   │   ├── 1a1c0f88ee3c8c49c4a48c711ee7467675ce34d92733b02fbf221834eab4053b_sk
│   │   └── tlsca.example.com-cert.pem
│   └── users
│   └── Admin@example.com
│   ├── msp
│   └── tls
└── peerOrganizations
├── org1.example.com
│   ├── ca
│   │   ├── ca.org1.example.com-cert.pem
│   │   └── db8cc18ebcac9670df5ec1c1e7fcdc359d70a0b1d82adeab012eea9f5131850b_sk
│   ├── msp
│   │   ├── admincerts
│   │   │   └── Admin@org1.example.com-cert.pem
│   │   ├── cacerts
│   │   │   └── ca.org1.example.com-cert.pem
│   │   └── tlscacerts
│   │   └── tlsca.org1.example.com-cert.pem
│   ├── peers
│   │   ├── peer0.org1.example.com
│   │   │   ├── msp
│   │   │   └── tls
│   │   └── peer1.org1.example.com
│   │   ├── msp
│   │   └── tls
│   ├── tlsca
│   │   ├── 57dcbe74092cb46f126f1e9a58f9fd225d728a1b9b5b87383ece059476d48b40_sk
│   │   └── tlsca.org1.example.com-cert.pem
│   └── users
│   ├── Admin@org1.example.com
│   │   ├── msp
│   │   └── tls
│   └── User1@org1.example.com
│   ├── msp
│   └── tls
└── org2.example.com
├── ca
│   ├── 8a2b52e8deda65a3a6e16c68d86aa8c4a25f0c35921f53ce2959e9f2bca956cc_sk
│   └── ca.org2.example.com-cert.pem
├── msp
│   ├── admincerts
│   │   └── Admin@org2.example.com-cert.pem
│   ├── cacerts
│   │   └── ca.org2.example.com-cert.pem
│   └── tlscacerts
│   └── tlsca.org2.example.com-cert.pem
├── peers
│   ├── peer0.org2.example.com
│   │   ├── msp
│   │   └── tls
│   └── peer1.org2.example.com
│   ├── msp
│   └── tls
├── tlsca
│   ├── acd26c09f5c89d891d3806c8d1d71e2c442ee9a58521d981980a1d45ab4ba666_sk
│   └── tlsca.org2.example.com-cert.pem
└── users
├── Admin@org2.example.com
│   ├── msp
│   └── tls
└── User1@org2.example.com
├── msp
└── tls
59 directories, 21 files
```
## 4、组织关系和身份证书目录结构(完整版)
```bash
tree crypto-config
crypto-config
├── ordererOrganizations
│   └── example.com
│   ├── ca
│   │   ├── 1366fb109b24c50e67c28b2ca4dca559eff79a85d53f833c8b9e89efdb4f4818_sk
│   │   └── ca.example.com-cert.pem
│   ├── msp
│   │   ├── admincerts
│   │   │   └── Admin@example.com-cert.pem
│   │   ├── cacerts
│   │   │   └── ca.example.com-cert.pem
│   │   └── tlscacerts
│   │   └── tlsca.example.com-cert.pem
│   ├── orderers
│   │   └── orderer.example.com
│   │   ├── msp
│   │   │   ├── admincerts
│   │   │   │   └── Admin@example.com-cert.pem
│   │   │   ├── cacerts
│   │   │   │   └── ca.example.com-cert.pem
│   │   │   ├── keystore
│   │   │   │   └── 71a37b3827738ec705ae92cc69adcaee1661d2445501b4189c576db9443c1edd_sk
│   │   │   ├── signcerts
│   │   │   │   └── orderer.example.com-cert.pem
│   │   │   └── tlscacerts
│   │   │   └── tlsca.example.com-cert.pem
│   │   └── tls
│   │   ├── ca.crt
│   │   ├── server.crt
│   │   └── server.key
│   ├── tlsca
│   │   ├── 1a1c0f88ee3c8c49c4a48c711ee7467675ce34d92733b02fbf221834eab4053b_sk
│   │   └── tlsca.example.com-cert.pem
│   └── users
│   └── Admin@example.com
│   ├── msp
│   │   ├── admincerts
│   │   │   └── Admin@example.com-cert.pem
│   │   ├── cacerts
│   │   │   └── ca.example.com-cert.pem
│   │   ├── keystore
│   │   │   └── 0830c91efdcf15869e4c8b1cb9de5774376eff5ef1b447f1c5642b8c4ebef9d5_sk
│   │   ├── signcerts
│   │   │   └── Admin@example.com-cert.pem
│   │   └── tlscacerts
│   │   └── tlsca.example.com-cert.pem
│   └── tls
│   ├── ca.crt
│   ├── server.crt
│   └── server.key
└── peerOrganizations
├── org1.example.com
│   ├── ca
│   │   ├── ca.org1.example.com-cert.pem
│   │   └── db8cc18ebcac9670df5ec1c1e7fcdc359d70a0b1d82adeab012eea9f5131850b_sk
│   ├── msp
│   │   ├── admincerts
│   │   │   └── Admin@org1.example.com-cert.pem
│   │   ├── cacerts
│   │   │   └── ca.org1.example.com-cert.pem
│   │   └── tlscacerts
│   │   └── tlsca.org1.example.com-cert.pem
│   ├── peers
│   │   ├── peer0.org1.example.com
│   │   │   ├── msp
│   │   │   │   ├── admincerts
│   │   │   │   │   └── Admin@org1.example.com-cert.pem
│   │   │   │   ├── cacerts
│   │   │   │   │   └── ca.org1.example.com-cert.pem
│   │   │   │   ├── keystore
│   │   │   │   │   └── 840f933728d2d1e2406768147f1c50d0f64fa0fd01901e5bb07f622462fd6ab6_sk
│   │   │   │   ├── signcerts
│   │   │   │   │   └── peer0.org1.example.com-cert.pem
│   │   │   │   └── tlscacerts
│   │   │   │   └── tlsca.org1.example.com-cert.pem
│   │   │   └── tls
│   │   │   ├── ca.crt
│   │   │   ├── server.crt
│   │   │   └── server.key
│   │   └── peer1.org1.example.com
│   │   ├── msp
│   │   │   ├── admincerts
│   │   │   │   └── Admin@org1.example.com-cert.pem
│   │   │   ├── cacerts
│   │   │   │   └── ca.org1.example.com-cert.pem
│   │   │   ├── keystore
│   │   │   │   └── 19b17095ed9a62378004727148aa5dfb70dfcd1275ce9a77d187fb84d1703971_sk
│   │   │   ├── signcerts
│   │   │   │   └── peer1.org1.example.com-cert.pem
│   │   │   └── tlscacerts
│   │   │   └── tlsca.org1.example.com-cert.pem
│   │   └── tls
│   │   ├── ca.crt
│   │   ├── server.crt
│   │   └── server.key
│   ├── tlsca
│   │   ├── 57dcbe74092cb46f126f1e9a58f9fd225d728a1b9b5b87383ece059476d48b40_sk
│   │   └── tlsca.org1.example.com-cert.pem
│   └── users
│   ├── Admin@org1.example.com
│   │   ├── msp
│   │   │   ├── admincerts
│   │   │   │   └── Admin@org1.example.com-cert.pem
│   │   │   ├── cacerts
│   │   │   │   └── ca.org1.example.com-cert.pem
│   │   │   ├── keystore
│   │   │   │   └── 2cb5be9ab061194b10d558302be57699516493dbe5b567e5ccadcd8157462601_sk
│   │   │   ├── signcerts
│   │   │   │   └── Admin@org1.example.com-cert.pem
│   │   │   └── tlscacerts
│   │   │   └── tlsca.org1.example.com-cert.pem
│   │   └── tls
│   │   ├── ca.crt
│   │   ├── server.crt
│   │   └── server.key
│   └── User1@org1.example.com
│   ├── msp
│   │   ├── admincerts
│   │   │   └── User1@org1.example.com-cert.pem
│   │   ├── cacerts
│   │   │   └── ca.org1.example.com-cert.pem
│   │   ├── keystore
│   │   │   └── 32c9696f3572dfc03eddb240ea4f0e8962a171ff86e60c42993b7f68eaaab123_sk
│   │   ├── signcerts
│   │   │   └── User1@org1.example.com-cert.pem
│   │   └── tlscacerts
│   │   └── tlsca.org1.example.com-cert.pem
│   └── tls
│   ├── ca.crt
│   ├── server.crt
│   └── server.key
└── org2.example.com
├── ca
│   ├── 8a2b52e8deda65a3a6e16c68d86aa8c4a25f0c35921f53ce2959e9f2bca956cc_sk
│   └── ca.org2.example.com-cert.pem
├── msp
│   ├── admincerts
│   │   └── Admin@org2.example.com-cert.pem
│   ├── cacerts
│   │   └── ca.org2.example.com-cert.pem
│   └── tlscacerts
│   └── tlsca.org2.example.com-cert.pem
├── peers
│   ├── peer0.org2.example.com
│   │   ├── msp
│   │   │   ├── admincerts
│   │   │   │   └── Admin@org2.example.com-cert.pem
│   │   │   ├── cacerts
│   │   │   │   └── ca.org2.example.com-cert.pem
│   │   │   ├── keystore
│   │   │   │   └── 309fdb2f24b215f4cb097ade93b5b4c4dbda517fc646ddec572b3d8e24fa3b6c_sk
│   │   │   ├── signcerts
│   │   │   │   └── peer0.org2.example.com-cert.pem
│   │   │   └── tlscacerts
│   │   │   └── tlsca.org2.example.com-cert.pem
│   │   └── tls
│   │   ├── ca.crt
│   │   ├── server.crt
│   │   └── server.key
│   └── peer1.org2.example.com
│   ├── msp
│   │   ├── admincerts
│   │   │   └── Admin@org2.example.com-cert.pem
│   │   ├── cacerts
│   │   │   └── ca.org2.example.com-cert.pem
│   │   ├── keystore
│   │   │   └── 97b1fdcaab782d0f768dbd9ef867fafe246c27fd471782330cba0d0e36898516_sk
│   │   ├── signcerts
│   │   │   └── peer1.org2.example.com-cert.pem
│   │   └── tlscacerts
│   │   └── tlsca.org2.example.com-cert.pem
│   └── tls
│   ├── ca.crt
│   ├── server.crt
│   └── server.key
├── tlsca
│   ├── acd26c09f5c89d891d3806c8d1d71e2c442ee9a58521d981980a1d45ab4ba666_sk
│   └── tlsca.org2.example.com-cert.pem
└── users
├── Admin@org2.example.com
│   ├── msp
│   │   ├── admincerts
│   │   │   └── Admin@org2.example.com-cert.pem
│   │   ├── cacerts
│   │   │   └── ca.org2.example.com-cert.pem
│   │   ├── keystore
│   │   │   └── ea0f817adb699880824dbcefb7f88d439ee590c09e64a2f42ff39473c5cc1ea9_sk
│   │   ├── signcerts
│   │   │   └── Admin@org2.example.com-cert.pem
│   │   └── tlscacerts
│   │   └── tlsca.org2.example.com-cert.pem
│   └── tls
│   ├── ca.crt
│   ├── server.crt
│   └── server.key
└── User1@org2.example.com
├── msp
│   ├── admincerts
│   │   └── User1@org2.example.com-cert.pem
│   ├── cacerts
│   │   └── ca.org2.example.com-cert.pem
│   ├── keystore
│   │   └── db11744d4c4a66ee04f783498d896099b275bd2cd2e2e2c188bde880041d8b1e_sk
│   ├── signcerts
│   │   └── User1@org2.example.com-cert.pem
│   └── tlscacerts
│   └── tlsca.org2.example.com-cert.pem
└── tls
├── ca.crt
├── server.crt
└── server.key
109 directories, 101 files
```
目录结构解读:
* 每个组织下,都包括ca、tlsca、msp、peers(或orderers)、users5个目录。如下以peer为例。
* 每个组织下,有3种身份,组织本身、节点、用户。
* 组织本身,包括ca、tlsca、msp三种信息,即组织的根证书、组织的根TLS证书、组织的身份信息。
* 其中ca、和tlsca,均包括根证书和私钥。
* 组织本身msp目录,包括ca根证书、tlsca根证书、管理员证书。
* 每个节点目录下,包括msp和tls两个目录,即节点的身份信息,以及tls相关的证书和私钥。
* 其中msp目录包括5种信息,cacerts、tlscacerts、signcerts为根证书、tls根证书和管理员证书,keystore、signcerts为节点的签名私钥和节点证书。
* 其中tls目录,包括tls根证书,以及tls版本节点证书和私钥。
* 每个用户目录下,也包括msp和tls两个目录,即用户的身份信息,以及tls版本用户身份信息。
* 其中msp目录下包括5种信息,cacerts、tlscacerts、signcerts为根证书、tls根证书和管理员证书,keystore、signcerts为用户的签名私钥和节点证书。
* 其中tls目录,包括tls根证书,以及tls版本用户证书和私钥。

网址:http://www.qukuailianxueyuan.io/

欲领取造币技术与全套虚拟机资料

区块链技术交流QQ群:756146052  备注:CSDN

尹成学院微信:备注:CSDN

网址:http://www.qukuailianxueyuan.io/

欲领取造币技术与全套虚拟机资料

区块链技术交流QQ群:756146052  备注:CSDN

尹成学院微信:备注:CSDN

Fabric 1.0源代码分析(12)cryptogen(生成组织关系和身份证书)相关推荐

  1. 区块链教程Fabric1.0源代码分析配置交易-生成通道配置二

    兄弟连区块链教程Fabric1.0源代码分析配置交易-生成通道配置二.Generator接口实现,即bootstrapper. type bootstrapper struct {channelGro ...

  2. Fabric 1.0源代码分析(7)configtx(配置交易) #configtxgen(生成通道配置)

    # Fabric 1.0源代码笔记 之 configtx(配置交易) #configtxgen(生成通道配置) ## 1.configtxgen概述 configtxgen,用于生成通道配置,具体有如 ...

  3. Fabric 1.0源代码分析(46)ECDSA(椭圆曲线数字签名算法)

    # Fabric 1.0源代码笔记 之 ECDSA(椭圆曲线数字签名算法) ## 1.椭圆曲线算法概述 ### 1.1.无穷远点.无穷远直线.射影平面 * 平行线相交于无穷远点: * 直线上有且只有一 ...

  4. Fabric 1.0源代码分析(25) Orderer

    # Fabric 1.0源代码笔记 之 Orderer ## 1.Orderer概述 Orderer,为排序节点,对所有发往网络中的交易进行排序,将排序后的交易安排配置中的约定整理为块,之后提交给Co ...

  5. Fabric 1.0源代码分析(43) Tx(Transaction 交易)

    # Fabric 1.0源代码笔记 之 Tx(Transaction 交易) ## 1.Tx概述 Tx,即Transaction,交易或事务. Tx代码分布目录结构如下: * protos/commo ...

  6. Fabric 1.0源代码分析(15)gossip(流言算法)

    # Fabric 1.0源代码笔记 之 gossip(流言算法) ## 1.gossip概述 gossip,翻译为流言蜚语,即为一种可最终达到一致的算法.最终一致的另外的含义就是,不保证同时达到一致. ...

  7. Fabric 1.0源代码分析(32)Peer #peer根命令入口及加载子命令

    # Fabric 1.0源代码笔记 之 Peer #peer根命令入口及加载子命令 ## 1.加载环境变量配置和配置文件 Fabric支持通过环境变量对部分配置进行更新,如:CORE_LOGGING_ ...

  8. Fabric 1.0源代码分析(24)MSP(成员关系服务提供者)

    # Fabric 1.0源代码笔记 之 MSP(成员关系服务提供者) ## 1.MSP概述 MSP,全称Membership Service Provider,即成员关系服务提供者,作用为管理Fabr ...

  9. Fabric 1.0源代码分析(28) Orderer #localconfig(Orderer配置文件定义)

    # Fabric 1.0源代码笔记 之 Orderer #localconfig(Orderer配置文件定义) ## 1.配置文件定义 ```bash General: #通用配置 LedgerTyp ...

最新文章

  1. junit、hamcrest、eclemma的安装与使用
  2. 测试linux写文件系统,linux下各主要文件系统的读写性能测试
  3. pandas按照字典格式替换dataframe的值
  4. windows操作系统下载tomcat,并与eclipse进行整合
  5. Out of memory error : GC overhead limit exceeded
  6. iOS常用的第三方类库
  7. copy 和mutaleCopy
  8. python ImportError: No module named spiders
  9. 巨杉数据库基于mysql_【巨杉数据库SequoiaDB】巨杉Tech |巨杉数据库的HTAP场景实践...
  10. 聊一聊前端性能优化 CRP
  11. 有关lua,luci的介绍
  12. DPR300 超声波高压脉冲发生/接收器
  13. 新笔记本安装网卡驱动出现The Realtek Ethernet Controller was not found.If Deep Sleep Mode is enabled
  14. 做百度快照入门_如何为您的博客文章拍摄屏幕快照(入门指南)
  15. 易经中的企业管理思想[转帖] 来源: 中大管理论坛 梁育民
  16. 在vsc中运行html
  17. 大型ERP系统在线体验账号
  18. 【投屏】Scrcpy源码分析二(Client篇-连接阶段)
  19. 关于个微IPAD协议api
  20. 2021-05-23unity【组件的Enable / Disable】(组件的启用/禁用)-(即可控制组件显示/隐藏)

热门文章

  1. html中边框与边框距离,css边框border与margin属性
  2. 四元数——为何使用四元数
  3. AI域名与建站完全指南
  4. 038医疗项目-模块四:采购单模块—采购单数据模型
  5. chariot iperf使用_网络性能测试软件Iperf与ixChariot有什么区别
  6. 每日新闻:中国移动OPhone手机下周全面亮相(8月28日)
  7. 磁场对计算机设备的影响,雷电对电子设备的危害有哪些?
  8. 哈夫曼树建树编码解码
  9. Spring改变版本号命名规则:此举对非英语国家很友好
  10. https默认端口443_为什么选择80作为默认HTTP端口,选择443作为默认HTTPS端口?