在哪里可以找到Hyperledger Fabric对等命令的可能环境变量?

chr*_*ris 5 hyperledger hyperledger-fabric

配置对等节点运行时,示例docker-compose文件中包含许多环境变量。我可以找到所有记录在案的地方吗?

例如

environment:
  - CORE_VM_ENDPOINT=unix:///host/var/run/docker.sock
  - CORE_PEER_ID=peer0.org1.example.com
  - CORE_LOGGING_PEER=debug
  - CORE_CHAINCODE_LOGGING_LEVEL=DEBUG
  - CORE_PEER_LOCALMSPID=Org1MSP
  - CORE_PEER_MSPCONFIGPATH=/etc/hyperledger/msp/peer/
  - CORE_PEER_ADDRESS=peer0.org1.example.com:7051
Run Code Online (Sandbox Code Playgroud)

Art*_*ger 6

Hyperledger Fabric 提供了一个名为core.yaml的配置文件,您可以在对等容器中的文件夹 /etc/hyperledger/fabric/ 中找到该文件

Fabric 使用Viper作为配置框架,它提供了通过环境变量覆盖配置文件值的能力。基本上它初始化如下:

// used to prefix config keys to prevent possible collisions
viper.SetEnvPrefix("core") 

// enforces to check values configured via environmental variables first
viper.AutomaticEnv()
Run Code Online (Sandbox Code Playgroud)

这使得 viper 在以CORE字符串为前缀的环境变量中寻找所有配置键。

现在,例如,如果我们查看示例配置中的对等部分(已更新):

peer:            
    id: jdoe            
    networkId: dev    
    listenAddress: 0.0.0.0:7051    
    address: 0.0.0.0:7051
Run Code Online (Sandbox Code Playgroud)

这些值中的任何一个都可以通过导出适当的环境变量来覆盖,例如对等网络 ID:

export CORE_PEER_NETWORKID=mypeerID
Run Code Online (Sandbox Code Playgroud)

同样也适用于其他部分,例如,如果我们想控制不同组件的日志记录级别:

logging:

    peer:       info
    cauthdsl:   warning
    gossip:     warning
    ledger:     info
    msp:        warning
    policies:   warning
    grpc: error
Run Code Online (Sandbox Code Playgroud)

要使 msp 组件记录调试级别消息,我们需要导出以下变量:

export PEER_LOGGING_MSP=debug
Run Code Online (Sandbox Code Playgroud)

请注意,这仅在对等启动之前导出时才会生效。