搭建基于hyperledger fabric--生成公私钥证书及配置文件

参考链接:https://www.cnblogs.com/preminem/p/7729723.html

 

一、生成公私钥和证书

Fabric中有两种类型的公私钥和证书,一种是给节点之前通讯安全而准备的TLS证书,另一种是用户登录和权限控制的用户证书。这些证书本来应该是由CA来颁发,但是目前只有两个社区,所以目前暂时没有启用CA节点,但是Fabric帮我们提供了一个crytogen工具来生成证书。

1.1编译cryptogen

编译生成 cryptogen之前我们需要安装一个软件包,否则编译时会报错

sudo apt install libtool libltdl3-dev

Fabric提供了专门编译cryptogen的入口,我们只需要运行以下命令即可:

cd ~/go/src/github.com/hyperledger/fabric
make cryptogen

运行后系统返回如下结果即代表编译成功了

build/bin/cryptogen
CGO_CFLAGS=" " GOBIN=/home/bit/go/src/github.com/hyperledger/fabric/build/bin go install -tags "" -ldflags "-X github.com/hyperledger/fabric/common/tools/cryptogen/metadata.Version=1.0.0" github.com/hyperledger/fabric/common/tools/cryptogen
Binary available as build/bin/cryptogen

我们在build/bin文件夹下就可以看到编译出来的cryptogen程序

1.2配置crypto-config.yaml

examples/e2e_cli/crypto-config.yaml已经提供了一个Orderer Org和两个Peer Org的配置,该模板中也对字段进行了注释。我们可以把配置修改一下:

OrdererOrgs:
 
  
  - Name: Orderer
    Domain: example.com
    
    
    Specs:
      - Hostname: orderer

PeerOrgs:
  
  - Name: Org1
    Domain: org1.example.com
     
    Template:
      Count: 1
      
    Users:
      Count: 1
  
  - Name: Org2
    Domain: org2.example.com
    Template:
      Count: 1
    Users:
      Count: 1

Name和Domain就是关于这个组织的名字和域名,这主要是用于生成证书的时候,证书内会包含该信息。而Template Count=1是说我们要生成1套公私钥和证书,因为我们一个组织只需要一个peer节点。最后Users. Count=1是说每个Template下面会有几个普通User(注意,Admin是Admin,不包含在这个计数中),这里配置了1,也就是说我们只需要一个普通用户User1@org2.example.com 我们可以根据实际需要调整这个配置文件,增删Org Users等。

1.3生成公司钥和证书

我们配置好crypto-config.yaml文件后,就可以用cryptogen去读取该文件,并生成对应的公私钥和证书了:

cd examples/e2e_cli/
../../build/bin/cryptogen generate --config=./crypto-config.yaml

生成的文件都保存到crypto-config文件夹,我们可以进入该文件夹查看生成了哪些文件:

tree crypto-config

显示结果如下:(文件太长,仅仅截取一部分)

 

二.生成创世区块和Channel配置区块

2.1编译生成configtxgen

与前面1.1说到的类似,我们可以通过make命令生成configtxgen程序

cd ~/go/src/github.com/hyperledger/fabric

make configtxgen

运行结果如下:

build/bin/configtxgen
CGO_CFLAGS=" " GOBIN=/home/bit/go/src/github.com/hyperledger/fabric/build/bin go install -tags "nopkcs11" -ldflags "-X github.com/hyperledger/fabric/common/configtx/tool/configtxgen/metadata.Version=1.0.0" github.com/hyperledger/fabric/common/configtx/tool/configtxgen
Binary available as build/bin/configtxgen

2.2配置configtx.yaml

官方提供的examples/e2e_cli/configtx.yaml这个文件里面配置了由2个Org参与的Orderer共识配置TwoOrgsOrdererGenesis,以及由2个Org参与的Channel配置:TwoOrgsChannel。Orderer可以设置共识的算法是Solo还是Kafka,以及共识时区块大小,超时时间等,我们使用默认值即可,不用更改。而Peer节点的配置包含了MSP的配置,锚节点的配置。如果我们有更多的Org,或者有更多的Channel,那么就可以根据模板进行对应的修改。

2.3生成创世区块

配置修改好后,我们就用configtxgen 生成创世区块。并把这个区块保存到本地channel-artifacts文件夹中:

cd examples/e2e_cli/

../../build/bin/configtxgen -profile TwoOrgsOrdererGenesis -outputBlock ./channel-artifacts/genesis.block

2.4生成Channel配置区块

../../build/bin/configtxgen -profile TwoOrgsChannel -outputCreateChannelTx ./channel-artifacts/channel.tx -channelID mychannel

另外关于锚节点的更新,我们也需要使用这个程序来生成文件:

../../build/bin/configtxgen -profile TwoOrgsChannel -outputAnchorPeersUpdate ./channel-artifacts/Org1MSPanchors.tx -channelID mychannel -asOrg Org1MSP

../../build/bin/configtxgen -profile TwoOrgsChannel -outputAnchorPeersUpdate ./channel-artifacts/Org2MSPanchors.tx -channelID mychannel -asOrg Org2MSP

最终,我们在channel-artifacts文件夹中,应该是能够看到4个文件,结果如图所示:

cd channel-artifacts/
ls

 channel-artifacts/ 
├── channel.tx 
├── genesis.block 
├── Org1MSPanchors.tx 
└── Org2MSPanchors.tx

三.配置docker-compose文件

前面对节点和用户的公私钥以及证书,还有创世区块都生成完毕,接下来我们就可以分别为两个peer和一个orderer配置docker-compose的yaml文件,分别分发给三台虚拟机以后就可以启动Fabric的Docker环境了。

3.1 修改基础配置文件

peer和orderder的基础配置文件在base文件里面。

因为我们只有两个组织,每个组织只有一个peer,所以只需修改base/docker-compose-base.yaml文件,删除peer1.org1.example.com和peer1.org2.example.com。另外在单击模式下,4个peer会映射主机不同的端口,但是我们在多机部署的时候是不需要映射不同端口的,所以将所有peer的端口映射都改为相同的,修改完成的docker-compose-base.yaml文件如下:

 

 

 

 

 

  • 1
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
### 回答1: hyperledger-fabric-linux-amd64-2.2.0.tar.gz 是一个开源的区块链平台Hyperledger Fabric的最新版本软件包,可以在Linux系统的AMD64处理器上运行。这个软件包包含了Hyperledger Fabric平台的所有核心组件和工具,如Peer、Ordering Service等,以及一些示例链码和应用程序。用户可以通过下载该软件包并按照相关文档进行安装和部署来使用Hyperledger Fabric平台搭建自己的区块链网络。 Hyperledger Fabric平台是一个开放且可扩展的企业级区块链解决方案,它提供了高度灵活的合约机制和身份管理机制,支持多个链码、多个共识算法等特性,能够满足广泛的区块链应用需求。同时,它还支持跨组织、跨区块链网络的交互,并提供了完备的监管和审计机制,帮助企业构建安全、透明、高效的区块链应用。 总之,从技术角度来看,hyperledger-fabric-linux-amd64-2.2.0.tar.gz是一个具有广泛应用前景的区块链平台的软件包,对于希望构建企业级区块链应用的开发者和企业来说,具有重要的意义和价值。 ### 回答2: Hyperledger Fabric是一个开源区块链平台,该平台由Linux Foundation主导,集成了智能合约、无状态认证、加密等多种功能,可以用于开发分布式应用程序。Hyperledger Fabric的最新版本是2.2.0,其中hyperledger-fabric-linux-amd64-2.2.0.tar.gz是针对Linux操作系统平台的二进制文件,可以用于安装和运行Hyperledger Fabric。该文件包含了Hyperledger Fabric的所有组件和依赖项,包括peer节点、orderer节点、CA节点、CouchDB等。在安装过程中,只需要解压该文件,并根据文档中的指引进行配置和启动即可。该版本的Hyperledger Fabric增强了智能合约的安全性和可扩展性,提高了性能和稳定性,同时新增了对隐私保护和多租户支持等特性的支持,更好地适用于企业级区块链应用场景。使用Hyperledger Fabric可以构建高效、安全、可靠的分布式应用程序,是企业级区块链开发的首选平台之一。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值