Fabric-CA 架构及安装

一、Fabric-CA架构

官方手册给的图示

根据自己理解整理的图示

总结:

  • Hyperledger Fabric CA由服务端和客户端组件组成

  • Fabric CA Server服务端由一个树形结构的服务器集群组成,有一个ROOT节点(Root Server)和诺干个不同层级的中间节点(Intermediate Server)组成,如节点A,B是同级关系,它的上级为ROOT节点,而节点C,D的上级是节点B,因此中间CA节点上级可以是ROOT节点,也可以是其它中间节点。

  • 与Hyperledger Fabric CA服务端进行交互的方式有两种:通过Hyperledger Fabric CA的Client客户端或通过Fabric SDK之一,并且与服务端的所有通信都是通过REST API完成

  • Client客户端或者SDK程序是通过HA代理实现负载均衡,连接到集群中的某一个中间CA节点,可能是A,也可以是BCD节点

  • 所有的中间CA节点的数据都保存到同一个集群共享数据库里,,以便跟踪身份和证书。数据库可以是MySQL、LDAP、PostgresSQL或者SQLite,当然在集群环境中不推荐使用SQLite,否则有IO瓶颈问题。如果配置了LDAP,则将标识信息保存在LDAP中而不是数据库中。

  • 使用SDK程序既可以操作CA,也可以操作peer节点

二、安装使用

安装环境准备

可以按本教程第一章节先完整环境软件的安装

Fabric运行环境配置

安装Fabric-CA

在本章前面几节其实已经使用fabric-samples中的test-network测试网络脚本,实现了Fabric-CA自动安装。这里我们再学习下单独安装Fabric-CA。

由于之前已经执行test-network安装过Fabric-CA,hyperledger目录下已经存在fabric-ca,如果直接执行安装命令会报下面的错误

# cd E:\go\src\github.com\hyperledger\fabric-ca; git pull --ff-only
fatal: not a git repository (or any of the parent directories): .git
package github.com/hyperledger/fabric-ca/cmd/...: exit status 128

我们先把fabric-ca目录改名为fabric-ca2,以作备份下。

官方建议的安装命令:

go get -u github.com/hyperledger/fabric-ca/cmd/...

上面的命令是将fabric-ca-server 和fabric-ca-client二进制文件下载到$GOPATH/bin目录,并克隆fabric-ca源码到$GOPATH/src/github.com/hyperledger/fabric-ca/目录下

如果你像我一样还遇到下面的错误

# github.com/hyperledger/fabric-ca/vendor/github.com/mattn/go-sqlite3
exec: "gcc": executable file not found in %PATH%

需要根据这个教程安装gcc:https://www.cnblogs.com/zsy/p/5958170.html

安装成功后可以在git base中查看fabric-ca-server版本

fabric-ca-server version
# 返回 :
# fabric-ca-server:
#  Version: 1.4.6
#  Go version: go1.13.4
#  OS/Arch: windows/amd64

如果报下面的错误

panic: Version is not setfor fabric-ca library

这是因为fabric-ca在运行时要调用lib/metadta/version.go,其中的version变量在初始化启动时默认没有赋值,因此可以通过编译二进制文件时指定版本:

go get -v-ldflags "-X github.com/hyperledger/fabric-ca/lib/metadata.Version=1.1.0" github.com/hyperledger/fabric-ca/cmd/...

启动Fabric-CA服务端

启动有两种方式,本地启动和docker启动

本地启动

使用下面命令是使用默认参数启动fabric-ca-server服务

fabric-ca-server start -b admin:adminpw

-b admin:adminpw 选项是使用一个管理员账号启动服务,如果未使用ldap.enabled设置启用LDAP,这个则是必需的。

该命令将在本地目录中创建一个名为fabric-ca-server-config.yaml的默认配置文件,我们也可以对其进行自定义配置参数。

docker启动

先打开https : //hub.docker.com/r/hyperledger/fabric-ca/tags/查看你要下载的fabric-ca版本,由于我们目前运行的是最新版本Fabirc,因此fabric-ca版本也选择最新版本就行,默认就是最新版(latest)。

如果你一定要指定使用哪个版本,可以使用编辑器打开$GOPATH/src/github.com/hyperledger/fabric-ca/docker/server 目录下的docker-compose.yml文件。把fabric-ca版本号由:

fabric-ca-server:
  image: hyperledger/fabric-ca

修改为(假如要指定的版本为1.4)

fabric-ca-server:
  image: hyperledger/fabric-ca:1.4

上面的配置我这边就不修改了,使用默认就好,接着在git base工具中进入到docker-compse.yml所在的目录中

cd $GOPATH/src/github.com/hyperledger/fabric-ca/docker/server

执行拉取fabric-ca镜像命令

docker-compose up -d

它会自动判断latest版本的fabric-ca镜像是否存在,不存在就会先下载,然后再启动fabric-ca-server服务

扩展:构建自己的docker镜像

我们可以通过Docker Compose只构建和启动fabric-ca-server服务

cd $GOPATH/src/github.com/hyperledger/fabric-ca
make docker
cd docker/server
docker-compose up -d

也可以使用下面的命令让hyperledger/fabric-ca安装的Docker镜像包含了fabric-ca-server和fabric-ca-client两部分的服务

cd $GOPATH/src/github.com/hyperledger/fabric-ca
FABRIC_CA_DYNAMIC_LINK=true make docker
cd docker/server
docker-compose up -d

本文由小韦云原创,转载请注明出处:https://www.bctos.cn/doc/4/1834,否则追究其法律责任

  • 1
    点赞
  • 6
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值