主题
fabric-ca · 配置
本章只列源码中显式定义的结构体与 def: 标签默认值。运行时实际加载的 YAML 字段名由 viper 处理;具体绑定规则 [未核]。
ServerConfig
| 项 | 字段 | 默认值 | 出处 |
|---|---|---|---|
| 端口 | Port | 7054 | lib/serverconfig.go:16,31 |
| 监听地址 | Address | 0.0.0.0 | lib/serverconfig.go:19,33 |
| CORS | CORS | CORS{Enabled, Origins} | lib/serverconfig.go:35,64-67 |
| 调试 | Debug | false | lib/serverconfig.go:37 |
| 日志级别 | LogLevel | — | 同 |
| TLS | TLS | — | 同(类型 tls.ServerTLSConfig) |
| 默认 CA | CAcfg | — | 同(类型 CAConfig) |
| 额外 CA 文件 | CAfiles | []string | 同 |
| CA 数量 | CAcount | 0 | 同 |
| CRL 大小限制 | CRLSizeLimit | 512000 | 同 |
CAConfig
来源:lib/caconfig.go:81-98。
| 字段 | 类型 |
|---|---|
Version | string(skip) |
Cfg | CfgOptions |
CA | CAInfo |
Signing | *config.Signing(skip,cfssl) |
CSR | api.CSRInfo |
Registry | CAConfigRegistry |
Affiliations | map[string]interface{} |
LDAP | ldap.Config(lib/server/ldap) |
DB | CAConfigDB |
CSP | *factory.FactoryOpts(yaml bccsp) |
Client | *ClientConfig(skip) |
Intermediate | IntermediateCA |
CRL | CRLConfig |
Idemix | idemix.Config |
具体 sub-struct 字段 [未核],需读相应文件。
CAConfigDB
来源:lib/caconfig.go:127-131。
| 字段 | 默认值 |
|---|---|
Type | sqlite3 |
Datasource | fabric-ca-server.db |
TLS | tls.ClientTLSConfig(无默认) |
支持的 Type:sqlite3 / postgres / mysql(对应 lib/server/db/{sqlite,postgres,mysql}/)。
ClientConfig
来源:lib/clientconfig.go:33-50。
| 字段 | 类型 / 默认值 |
|---|---|
URL | http://localhost:7054 |
MSPDir | msp |
TLS | tls.ClientTLSConfig |
Enrollment | api.EnrollmentRequest |
CSR | api.CSRInfo |
ID | api.RegistrationRequest |
Revoke | api.RevocationRequest |
CAInfo | api.GetCAInfoRequest |
CAName | string(无默认) |
CSP | *factory.FactoryOpts(mapstructure bccsp) |
Debug / LogLevel | bool / string |
Idemix | api.Idemix |
MySkFile / MyCertFile / MyCACertFile | string(可选,MSP 目录内路径) |
启动身份
registry.identities 字段中预置的 admin 等身份在源码哪里被解析与写入 DB [未核],需读 Server.Init / CA.init 链路。
环境变量覆盖
fabric-ca 使用 viper(参见 cmd/fabric-ca-server/servercmd.go:39-54 的 myViper 字段),通常意味着 YAML 键可被 env 覆盖。具体绑定规则(前缀、大小写、分隔符)[未核]。
TLS
lib/server.go:673-680 配置了 TLS 1.2-1.3 与 stls.DefaultCipherSuites。具体的密码套件清单需查 fabric-lib-go 的 stls 包 [未核]。
配置文件加载
加载流程的具体函数与默认搜索路径 [未核]。viper 的 homeDirectory / cfgFileName 字段定义于 cmd/fabric-ca-server/servercmd.go:39-54。
TIP
更详细的字段语义、完整 YAML 模板与官方推荐值,请参考 Hyperledger Fabric CA 官方文档,本仓库源码不重复这些内容。