繁体   English   中英

设置 Hyperledger Fabric 的开发模式时出现端口错误

[英]Port error when setting up Dev mode of Hyperledger Fabric

我正在按照 Hyperledger Fabric 官方网站上的说明设置开发环境: https://hyperledger-fabric.readthedocs.io/en/latest/peer-chaincode-devmode.html我已经成功启动了orderer:

ORDERER_GENERAL_GENESISPROFILE=SampleDevModeSolo orderer

这个命令一开始不起作用,但在我cd fabric/sampleconfig之后它起作用了

2020-12-21 11:23:15.084 CST [orderer.common.server] Main -> INFO 009 Starting orderer:  Version: 2.3.0  Commit SHA: dc2e59b3c  Go version: go1.15.6  OS/Arch: darwin/amd64 
2020-12-21 11:23:15.084 CST [orderer.common.server] Main -> INFO 00a Beginning to serve requests

但是当我使用以下方法启动对等体时:

export PATH=$(pwd)/build/bin:$PATH 
export FABRIC_CFG_PATH=$(pwd)/sampleconfig
export FABRIC_LOGGING_SPEC=chaincode=debug
export CORE_PEER_CHAINCODELISTENADDRESS=0.0.0.0:7052
peer node start --peer-chaincodedev=true

发现一个错误:

FABRIC_LOGGING_SPEC=chaincode=debug 
CORE_PEER_CHAINCODELISTENADDRESS=0.0.0.0:7052
peer node start --peer-chaincodedev=true

2020-12-21 11:25:13.047 CST [nodeCmd] serve -> INFO 001 Starting peer:  Version: 2.3.0 Commit SHA: dc2e59b3c Go version: go1.15.6 OS/Arch: darwin/amd64 Chaincode: Base Docker Label: org.hyperledger.fabric   Docker Namespace: hyperledger
2020-12-21 11:25:13.048 CST [peer] getLocalAddress -> INFO 002 Auto-detected peer address: 10.200.83.208:7051 
2020-12-21 11:25:13.048 CST [peer] getLocalAddress -> INFO 003 Host is 0.0.0.0 , falling back to auto-detected address: 10.200.83.208:7051  Error: failed to initialize operations subsystem: listen tcp 127.0.0.1:9443: bind: address already in use

这是错误:

Error: failed to initialize operations subsystem: listen tcp 127.0.0.1:9443: bind: address already in use

我检查了这个问题,这似乎是因为对等节点使用相同的端口 9443 作为同一服务的排序节点。 如何让两个节点分别运行? docker 似乎也在运行。

如果你看到你的错误,你可以很容易地跟随
Error: failed to initialize operations subsystem: listen tcp 127.0.0.1:9443: bind: address already in use
据说9443端口已经在使用了。


您似乎没有在基于 docker 的虚拟网络上将 orderer 和 peer 作为单独的容器运行,而是在主机 pc 上运行。
这最终似乎与在您的 PC 上请求一个端口 9443 的两台服务器发生冲突。\


参考下面fabric-2.3/sampleconfig的配置,可以看到每个 9443 端口都分配给了服务器。 将其中一个分配给另一个端口可以解决此问题。

fabric-2.3/sampleconfig/orderer.yaml

orderer的配置

# orderer.yaml
...
Admin:
    # host and port for the admin server
    ListenAddress: 127.0.0.1:9443
...

fabric-2.3/sampleconfig/core.yaml

对等体的配置

# core.yaml
...
operations:
    # host and port for the operations server
    # listenAddress: 127.0.0.1:9443
    listenAddress: 127.0.0.1:10443
...

这不是对端口映射/冲突问题的直接回答,但我们使用新的Kubernetes 测试网络作为在本地系统上运行的开发平台以及在 KIND 中运行的虚拟 Kubernetes 集群(Docker 中的 Kubernetes)取得了巨大成功。

在这种模式下,可以使用网关客户端(通过端口转发或入口公开)开发应用程序,并且作为服务运行的智能合约可以在集群中启动,也可以在容器、二进制文件或本地主机操作系统上运行在调试器中启动。

开发设置的文档仍然很少,但我们希望听到有关整体方法的反馈,因为它为在开发环境中使用测试网络提供了指数级更好的体验。 通常,在本地 Kubernetes 集群上工作时,使用 Compose 进行“端口杂耍”的过程不再相关。 在这种模式下,您可以在主机网络上运行服务,指示 peers/orderers/等。 连接到在主机操作系统上运行的远程进程。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM