hyperledge工具-cryptogen
参考:http://baijiahao.baidu.com/s?id=1596614770784685300&wfr=spider&for=pc
cryptogen是Hyperledger Fabric提供的为网络实体生成加密材料(公私钥、证书等)的实用程序。这些证书代表一个身份,并允许在网络实体间通信和交易时进行签名和身份认证。
cryptogen使用一个包含网络拓扑的crypto-config.yaml文件,为文件中定义的组织和属于这些组织的实体生成一组证书和密钥。每个组织都配置了唯一的根证书(ca-cert),并包含了特定实体(peers和orders),这就形成了一种典型的网络结构——每个成员都有所属的CA。在hyperledger中文文档学习-4-构建第一个fabric网络这个例子中就有一个crypto-config.yaml文件,如下:
# Copyright IBM Corp. All Rights Reserved. # # SPDX-License-Identifier: Apache-2.0 ## --------------------------------------------------------------------------- # "OrdererOrgs" - Definition of organizations managing orderer nodes # --------------------------------------------------------------------------- OrdererOrgs:# ---------------------------------------------------------------------------# Orderer# ---------------------------------------------------------------------------- Name: OrdererDomain: example.com# ---------------------------------------------------------------------------# "Specs" - See PeerOrgs below for complete description# ---------------------------------------------------------------------------Specs:- Hostname: orderer # --------------------------------------------------------------------------- # "PeerOrgs" - Definition of organizations managing peer nodes # --------------------------------------------------------------------------- PeerOrgs:# ---------------------------------------------------------------------------# Org1# ---------------------------------------------------------------------------- Name: Org1Domain: org1.example.comEnableNodeOUs: true# ---------------------------------------------------------------------------# "Specs"# ---------------------------------------------------------------------------# Uncomment this section to enable the explicit definition of hosts in your# configuration. Most users will want to use Template, below## Specs is an array of Spec entries. Each Spec entry consists of two fields:# - Hostname: (Required) The desired hostname, sans the domain.# - CommonName: (Optional) Specifies the template or explicit override for# the CN. By default, this is the template:## "{{.Hostname}}.{{.Domain}}"## which obtains its values from the Spec.Hostname and# Org.Domain, respectively.# ---------------------------------------------------------------------------# Specs:# - Hostname: foo # implicitly "foo.org1.example.com"# CommonName: foo27.org5.example.com # overrides Hostname-based FQDN set above# - Hostname: bar# - Hostname: baz# ---------------------------------------------------------------------------# "Template"# ---------------------------------------------------------------------------# Allows for the definition of 1 or more hosts that are created sequentially# from a template. By default, this looks like "peer%d" from 0 to Count-1.# You may override the number of nodes (Count), the starting index (Start)# or the template used to construct the name (Hostname).## Note: Template and Specs are not mutually exclusive. You may define both# sections and the aggregate nodes will be created for you. Take care with# name collisions# ---------------------------------------------------------------------------Template:Count: 2# Start: 5# Hostname: {{.Prefix}}{{.Index}} # default# ---------------------------------------------------------------------------# "Users"# ---------------------------------------------------------------------------# Count: The number of user accounts _in addition_ to Admin# ---------------------------------------------------------------------------Users:Count: 1# ---------------------------------------------------------------------------# Org2: See "Org1" for full specification# ---------------------------------------------------------------------------- Name: Org2Domain: org2.example.comEnableNodeOUs: trueTemplate:Count: 2Users:Count: 1
声明了一个排序组织,两个节点组织,节点组织中分别一个用户带着有两个节点。在这里会为每个组织都配置一个根证书。
crypto-config.yaml是cryptogen工具使用的配置文件,cryptogen工具根据该配置文件生成加密材料。
⚠️但该文件名字并非固定,也可自定义,只需在cryptogen generate命令中指定对应文件即可。
由上面可知cryptogen是一个独立的可执行程序,源码能够在github.com/hyperledger/fabric/common/tools/cryptogen/上找到,首先在构建好的虚拟机上面查看是否成功运行了cryptogen:
vagrant@ubuntu-xenial:~/fabric-samples/first-network$ cryptogen --help cryptogen: command not found
可见并没有
那么首先我们就要编译生成该可执行文件,有两种办法:
1)在下载的hyperledger/fabric路径下运行命令:
然后就能够看见生成了文件夹./build/bin,并在该文件夹下生成了可执行文件cryptogen:
vagrant@ubuntu-xenial:/opt/gopath/src/github.com/hyperledger/fabric$ make cryptogen .build/bin/cryptogen CGO_CFLAGS=" " GOBIN=/opt/gopath/src/github.com/hyperledger/fabric/.build/bin go install -tags "" -ldflags "-X github.com/hyperledger/fabric/common/tools/cryptogen/metadata.CommitSHA=325999f" github.com/hyperledger/fabric/common/tools/cryptogen Binary available as .build/bin/cryptogen
然后运行:
vagrant@ubuntu-xenial:/opt/gopath/src/github.com/hyperledger/fabric$ cryptogen --help usage: cryptogen [<flags>] <command> [<args> ...]用于生成Hyperledger Fabric密钥文件Flags:--help 显示帮助信息--help-long 显示详细帮助信息--help-manCommands:help [<command>...]显示下面命令的帮助信息.generate [<flags>]生成密钥文件showtemplate显示默认的配置模版version显示版本信息extend [<flags>]扩展现存网络
由上面可见成功编译成功
里面的命令中最重要的是generate命令:
vagrant@ubuntu-xenial:/opt/gopath/src/github.com/hyperledger/fabric$ cryptogen help generate usage: cryptogen generate [<flags>]生成密钥证书Flags:--help Show context-sensitive help (also try --help-longand --help-man).--output="crypto-config" 指定放置证书的输出目录--config=CONFIG 指定使用的配置模版,不指定则使用cryptogen showtemplate中指定的默认模版,一般为crypto-config.yaml
最常见的命令为:
cryptogen generate --config=./crypto-config.yaml
即根据crypto-config.yaml文件的配置,生成组织信息及其密钥证书等,保存在crypto-config目录下。
2)另一种方法是直接在fabric/common/tools/cryptogen/下执行go build命令
转载于:https://www.cnblogs.com/wanghui-garcia/p/10491836.html
hyperledge工具-cryptogen相关推荐
- hyperledge工具-configtxgen
参考http://www.blockchainbrother.com/article/1339 configtxgen是Hyperledger Fabric提供的用于通道配置的实用程序,主要生成以下3 ...
- 超级账本(Hyperledger Fabric)之权限管理浅析
链客,专为开发者而生,有问必答! 此文章来自区块链技术社区,未经允许拒绝转载. 超级账本(Hyperledger Fabric)之权限管理浅析 超级账本是联盟链的代表,而其相对于共链(例如比特币,以太 ...
- fabric 启动peer_Hyperledger Fabric Peer 常用命令总结
Peer 常用命令:#peer chaincode --help #peer channel list --help --logging-level #:debug,info,notice,warni ...
- Hyperledger Fabric 2.1 BYFN 测试用例
本人也做 fabric 项目搭建.开发.浏览器.sdk.共识算法的测试.改进等工作.有问题或需要,可以加q 260261476,欢迎指导! Building Your First Network by ...
- 超级账本学习之三:创建超级账本网络
超级账本网络的创建主要包含四个步骤: 创建网络拓扑结构,创建MSP相关资料并签名 创建通道配置信息 启动网络,并创建通道 安装并实例化链码 超级账本的学习资料Build Your First Netw ...
- Hyperledger Fabric网络环境手动配置及其链码自动化部署
目录 5.1 网络环境的搭建 5.1.1 生成组织结构与身份证书 5.1.2 生成创世区块和通道 5.1.3 启动Fabric网络 5.1.4 创建Fabric-SDK-GO对象并建立通道 5.1. ...
- fabric 环境 搭建与安装
fabric环境搭建与安装 一.前期系统配置 1.安装操作系统为Ubuntu20.04的虚拟机,使用虚拟机进行fabric环境搭建与安装 2.为虚拟机配置国内源,以配置清华源为例(方便后面安装软件) ...
- 区块链汽车租赁系统设计
基于Fabric的共享汽车系统设计实现 一.项目描述 1. 项目意义 2. 项目实施阶段 第一阶段 第二阶段 二.项目设计 1.系统功能模块设计 2.证书颁发设计 3.智能合约设计 4.第二阶段设计 ...
- 关于官方的fabric-sample项目启动案例简单分析
建立一个fabric网络2个Orgnizations(每个Org包含2个peer节点)+1个solo ordering service步骤简要解析(以官方的fabric-sample项目为例) 注:官 ...
最新文章
- java 窗口开始_Java窗口(JFrame)从零开始(3)——绝对布局
- 20172304 结对编程--四则运算实验总结
- Java设计模式(二) -- 单例模式
- oracle一体机flash卡,PCIe Flash卡设备的测试
- 【总结】C++逻辑与或
- CentOS 7.2 终端安装字体
- 通俗易懂!视觉slam第三部分——slam数学表示
- 【硬件】PIC32单片机烧写器以及线序说明
- CNVD-2022-10270/CNVD-2022-03672 向日葵RCE复现
- 用 CSS 实现 AirDrop 动效
- Mac下搭建Texstudio+Textlive(Mactex)
- 基于apache实现https
- vba九九乘法表代码_用五种方法利用EXCEL制作九九乘法表
- 牛客上C++的面试题和答案
- 10月25日 c语言 读取7个数(1—50)的整数值,每读取一个值,程序打印出该值个数的*
- C++ 文件查找 _findfirst、_findnext和_fineclose的使用
- 如何区别API、REST API、RESTful API和Web Service之间的异同
- 当虚拟筛选遇上高通量筛选
- 在java中画背景图片_JAVA如何添加背景图片?
- python之爬虫神器selenium:猫眼电影榜单并进行数据可视化
热门文章
- [BZOJ3595][SCOI2014]方伯伯的OJ(裂点Splay)
- HTML5-响应式的实现方式-弹性布局浅谈
- 如何在vue里面正确的引用 jquery 和 第三方插件
- 第二冲刺站立会议01
- Android 用户界面---定制组件(Custom Components)
- Server Application Unavailable
- 关于java的对象数组
- Win64 驱动内核编程-11.回调监控进线程句柄操作
- hdu3746 KMP的next数组应用,求项链首尾项链循环
- 【Groovy】自定义 Xml 生成器 BuilderSupport ( 继承 BuilderSupport 抽象类 | 在 createNode 方法中获取节点名称、节点属性、节点值信息 )