美文网首页
Fabric-CA 架构及安装

Fabric-CA 架构及安装

作者: 凡星_ | 来源:发表于2020-05-23 16:37 被阅读0次

    一、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,否则追究其法律责任

    相关文章

      网友评论

          本文标题:Fabric-CA 架构及安装

          本文链接:https://www.haomeiwen.com/subject/jnklahtx.html