Hyperledger环境变量传递给运行链码

时间:2016-10-14 06:22:43

标签: security blockchain hyperledger hyperledger-fabric

我对通过docker-compose文件传递的环境变量有疑问。

我有链代码,在启用安全性时会执行安全检查。它检查是否通过core.SecurityEnabled()api启用了安全性。我使用docker-compose env启用/禁用安全性。变量CORE_SECURITY_ENABLED。

这在开发模式下工作正常。但是,当我在非开发模式下部署链代码时,我将core.SecurityEnabled()视为false,尽管我的env变量传递为true。我检查了码头工人的容器。 Docker容器运行peer,在env命令上返回env变量CORE_SECURITY_ENABLED = true。但是,运行chaincode的docker容器没有env变量CORE_SECURITY_ENABLED。它将从core.yaml中获取值,该值设置为false。

这是按照设计吗?在生产模式中我们应该在core.yaml文件中进行更改而不是依赖于通过docker-compose传递的env变量吗?

1 个答案:

答案 0 :(得分:0)

我正在使用如下所示的docker-compose来获取 CORE_SECURITY_ENABLED = true / false 。您是否尝试过以这种方式指定环境变量?

    membersrvc:
      image: hyperledger/fabric-membersrvc
      ports:
        - "7054:7054"
      command: membersrvc
    vp0:
      image: hyperledger/fabric-peer
      ports:
        - "8085:7050"
        - "8080:7053"
        - "30303:30303"
        - "30304:30304"
      environment:
        - CORE_PEER_ADDRESSAUTODETECT=true
        - CORE_SECURITY_ENABLED=true
        - CORE_SECURITY_PRIVACY=true
        - CORE_VM_ENDPOINT=http://172.17.0.1:2375
        - CORE_PEER_PKI_ECA_PADDR=membersrvc:7054
        - CORE_PEER_PKI_TCA_PADDR=membersrvc:7054
        - CORE_PEER_PKI_TLSCA_PADDR=membersrvc:7054
        - CORE_LOGGING_LEVEL=DEBUG
        - CORE_PEER_ID=vp0
        - CORE_SECURITY_ENROLLID=test_vp0
        - CORE_SECURITY_ENROLLSECRET=MwYpmSRjupbT
      links:
        - membersrvc
      command: sh -c "sleep 35; peer node start  --logging-level=DEBUG"

如果您从FAB jira回答了您的查询,请忽略此帖。