Fabric CA
默认使用SQLite
数据库,这是一种嵌入式的文件数据库,如果需要将在集群中部署Fabric CA
,那么就需要使用PostgreSQL
或者MySQL
数据库,支持的最低版本如下:
PostgreSQL: 9.5.5
MySQL: 5.7(但是使用5.7以上的版本也会有问题,这个后面会详细说明)
单机版搭建
首先创建ca.yaml
文件(需要注意文件中的一些目录需要根据情况做修改),文件内容如下:
# Copyright IBM Corp. All Rights Reserved.
#
# SPDX-License-Identifier: Apache-2.0
#
version: '2'
services:
ca0:
image: hyperledger/fabric-ca:$IMAGE_TAG
environment:
- FABRIC_CA_HOME=/etc/hyperledger/fabric-ca-server
- FABRIC_CA_SERVER_CA_NAME=ca-org1
- FABRIC_CA_SERVER_TLS_ENABLED=true
- FABRIC_CA_SERVER_TLS_CERTFILE=/etc/hyperledger/fabric-ca-server-config/ca.org1.example.com-cert.pem
- FABRIC_CA_SERVER_TLS_KEYFILE=/etc/hyperledger/fabric-ca-server-config/7550a33dfd82fb96b16f209cff24eeeedb85a8ee4288bd434fa947d98b90356f_sk
ports:
- "7054:7054"
command: sh -c 'fabric-ca-server start --ca.certfile /etc/hyperledger/fabric-ca-server-config/ca.org1.example.com-cert.pem --ca.keyfile /etc/hyperledger/fabric-ca-server-config/7550a33dfd82fb96b16f209cff24eeeedb85a8ee4288bd434fa947d98b90356f_sk -b admin:adminpw -d'
volumes:
- ./crypto-config/peerOrganizations/org1.example.com/ca/:/etc/hyperledger/fabric-ca-server-config
# 将ca服务的目录映射到主机目录中
- /var/hyperledger/ca/:/etc/hyperledger/fabric-ca-server
container_name: ca0_peerOrg1
文件创建完成之后就可以启动ca
服务了,docker-compose -f ca.yaml up -d
。
docker ps -a
命令运行结果如下:
这时候可以发现我们映射到的主机目录下生成了一系列文件:
[root@bd226 ca]# tree
.
├── fabric-ca-server-config.yaml
├── fabric-ca-server.db
├── IssuerPublicKey
├── IssuerRevocationPublicKey
└── msp
└── keystore
├── 7550a33dfd82fb96b16f209cff24eeeedb85a8ee4288bd434fa947d98b90356f_sk
├── IssuerRevocationPrivateKey
└── IssuerSecretKey
2 directories, 7 files
fabric-ca-server.db
:SQLite数据库
存储数据的文件。
fabric-ca-server-config.yaml
:CA服务
的配置文件。
其他文件都是公钥密钥之类的文件。
修改配置文件
首先修改ca.yaml
文件。
修改后的内容如下:
version: '2'
services:
ca0:
image: hyperledger/fabric-ca:$IMAGE_TAG
environment:
- FABRIC_CA_HOME=/etc/hyperledger/fabric-ca-server
- FABRIC_CA_SERVER_CA_NAME=ca-org1
- FABRIC_CA_SERVER_TLS_ENABLED=true
- FABRIC_CA_SERVER_TLS_CERTFILE=/etc/hyperledger/fabric-ca-server-config/ca.org1.example.com-cert.pem
- FABRIC_CA_SERVER_TLS_KEYFILE=/etc/hyperledger/fabric-ca-server-config/7550a33dfd82fb96b16f209cff24eeeedb85a8ee4288bd434fa947d98b90356f_sk
ports:
- "7054:7054"
command: sh -c 'fabric-ca-server start --ca.certfile /etc/hyperledger/fabric-ca-server-config/ca.org1.example.com-cert.pem --ca.keyfile /etc/hyperledger/fabric-ca-server-config/7550a33dfd82fb96b16f209cff24eeeedb85a8ee4288bd434fa947d98b90356f_sk -b admin:adminpw -d'
volumes:
- ./crypto-config/peerOrganizations/org1.example.com/ca/:/etc/hyperledger/fabric-ca-server-config
- /var/hyperledger/ca/:/etc/hyperledger/fabric-ca-server
container_name: ca0_peerOrg1
ca1:
image: hyperledger/fabric-ca:$IMAGE_TAG
environment: