Hyperledger fabric 在运行fabcar期间创建通道时发生容器错误(结构示例)

Hyperledger fabric 在运行fabcar期间创建通道时发生容器错误(结构示例),hyperledger-fabric,Hyperledger Fabric,快速使用Hyperledger并尝试运行Hyperledger结构教程,但每次尝试在startFabric.sh脚本中创建频道时都会出错 以下是错误: 来自守护程序的错误响应:容器3640f4fca98aef120a2069292a3fc613954a0fbe7c625a31c2843ec643462未运行 运行列出的所有先决条件和命令,克隆最新的结构示例,更新节点,尝试更长的启动时间。但是仍然有这个错误。如果有人知道我哪里出了问题,我会非常感谢你的帮助。提前谢谢 也许值得一提的是,我在Wind

快速使用Hyperledger并尝试运行Hyperledger结构教程,但每次尝试在startFabric.sh脚本中创建频道时都会出错

以下是错误:

来自守护程序的错误响应:容器3640f4fca98aef120a2069292a3fc613954a0fbe7c625a31c2843ec643462未运行

运行列出的所有先决条件和命令,克隆最新的结构示例,更新节点,尝试更长的启动时间。但是仍然有这个错误。如果有人知道我哪里出了问题,我会非常感谢你的帮助。提前谢谢

也许值得一提的是,我在Windows7上运行并使用Docker工具箱

startFabric.sh输出如下所示

$ ./startFabric.sh node

# don't rewrite paths for Windows Git Bash users
export MSYS_NO_PATHCONV=1

docker-compose -f docker-compose.yml down
Stopping ca.example.com ... done
Stopping couchdb        ... done
Removing peer0.org1.example.com ... done
Removing orderer.example.com    ... done
Removing ca.example.com         ... done
Removing couchdb                ... done
Removing network net_basic

docker-compose -f docker-compose.yml up -d ca.example.com orderer.example.com peer0.org1.example.com couchdb
Creating network "net_basic" with the default driver
Creating ca.example.com      ... done
Creating couchdb             ... done
Creating orderer.example.com ... done
Creating peer0.org1.example.com ... done

# wait for Hyperledger Fabric to start
# incase of errors when running later commands, issue export FABRIC_START_TIMEOUT=<larger number>
export FABRIC_START_TIMEOUT=10
#echo ${FABRIC_START_TIMEOUT}
sleep ${FABRIC_START_TIMEOUT}

# Create the channel
docker exec -e "CORE_PEER_LOCALMSPID=Org1MSP" -e "CORE_PEER_MSPCONFIGPATH=/etc/hyperledger/msp/users/Admin@org1.example.com/msp" peer0.org1.example.com peer channel create -o orderer.example.com:7050 -c mychannel -f /etc/hyperledger/configtx/channel.tx
Error response from daemon: Container 4ebfce361f3e71dd2d678efca1dbf1853cc5387b491f706917b8c54013ec6a80 is not running
docker ps-a输出:

$ docker ps -a
CONTAINER ID        IMAGE                        COMMAND                  CREATED             STATUS                      PORTS                                        NAMES
4ebfce361f3e        hyperledger/fabric-peer      "peer node start"        15 minutes ago      Exited (1) 15 minutes ago                                                peer0.org1.example.com
1187120cdcd0        hyperledger/fabric-orderer   "orderer"                15 minutes ago      Exited (1) 15 minutes ago                                                orderer.example.com
2d93296f3cb1        hyperledger/fabric-couchdb   "tini -- /docker-entâ¦"   15 minutes ago      Up 15 minutes               4369/tcp, 9100/tcp, 0.0.0.0:5984->5984/tcp   couchdb
6b8638d0ecaf        hyperledger/fabric-ca        "sh -c 'fabric-ca-seâ¦"   15 minutes ago      Up 15 minutes               0.0.0.0:7054->7054/tcp                       ca.example.com
试着做:

  • 移除所有容器-docker rm-f$(docker ps-aq)

  • 删除网络-docker网络修剪

  • 删除链码映像(如果存在)-docker rmi dev-peer0.org1.example.com

  • 重新启动docker

  • 再次运行startFabric.sh


希望对您有所帮助。

实际问题是无法访问位置
/etc/hyperledger/msp/peer/signcerts
。出于某种原因,Docker Toolbox似乎在主目录下查找此位置。因此,使用以下命令检查Docker VM中的主目录
echo$HOME
(在我的例子中是
C:/Users/knwny
),然后将fabric samples文件夹放在该位置。
这为我解决了问题。

通过重新运行结构安装指南,实现了这一点:

以下过程完全在具有管理员权限的windows帐户中执行

初步步骤:

  • 设置GOPATH环境变量
  • 检查Go是否正确构建可执行文件
管理模式下powershell中的所有后续步骤

  • 运行npm安装npm@5.6.0-g
  • sudo apt get install python(注意,对于我来说,这个命令失败了,但仍然有python,它似乎工作正常,因为它找不到sudo)
  • 检查是否正确安装了python 2.7
  • 设置git config--global core.autocrlf false
  • 设置git config--global core.longpaths为true
  • 运行了npm安装--全局windows生成工具
  • 运行npm安装--全局grpc
在Git Bash中运行以下命令,因为cURL在powershell中不起作用:

  • curl-sSL http://bit.ly/2ysbOFE | bash-s1.2.0
请注意,要使上述命令成功运行,我需要让Docker在shell中运行,即运行Docker Toolbox安装的start.sh脚本(我在Git Bash中运行,工作正常)

最后,在registerUser.js和enrollAdmin.js中,将本地主机更改为docker启动时声明的IP地址

fabric_ca_client = new Fabric_CA_Client('http://localhost:7054', null , '', crypto_suite);
完成这项工作后,我重新运行了织物示例1)第一个网络和2)fabcar示例,它们按预期工作!!我认为我错过了GoPath,并且在第一次尝试时没有成功安装cURL命令


感谢Nhat Duy和knwny帮助解决此问题。

对我来说,此问题是由WSL(Windows Linux子系统-可在Windows 10上使用)向Docker的卷切换引起的。使用Kitematic查看docker容器(请参见下面的屏幕截图,并注意文件夹路径是如何混乱的)。单击容器并转到“设置”和“卷”。手动更改卷可使其正常运行

在我的情况下,docker会自动将\c更改为c:

我用这个技巧解决了这个问题: WSL将windows驱动器安装在/mnt/(so/mnt/c/=c:)处。如果我们创建a/c/bind point,这允许Docker将其正确解释为c:\

过程如下:

使用以下一组命令(一次一个)将驱动器和下载结构绑定到windows用户目录

现在您应该能够成功运行Fabric

./startFabric.sh
它可能会要求您与docker共享C驱动器。你应该这样做。您可以在Kitematic中检查卷装入点和容器,如下所示


感谢您的回复。我试过你的建议,但还是有同样的问题。下面列出了两个容器错误:$docker logs peer0.org1.example.com 2018-07-02 17:09:13.682 UTC[main]main->ERRO 001无法运行peer,因为从目录/etc/hyperledger/MSP/peer/:c设置bccsp类型的MSP时出错:无法从目录/etc/hyperledger/MSP/peer/signcerts:stat/etc/hyperledger/MSP/peer/signcerts加载有效的签名者证书这是$docker的第二个错误日志order.example.com:2018-07-02 17:09:12.027 UTC[msp]getPemMaterialFromDir->DEBU 007读取目录/etc/hyperledger/msp/order/msp/signcerts 2018-07-02 17:09:12.027 UTC[orderer/common/server]initializeLocalMsp->CRIT 0 08初始化本地MSP失败:无法从m目录/etc/hyperledger/MSP/order/MSP/signcerts:stat/etc/hyperledger/ms p/order/MSP/signcerts加载有效的签名者证书:没有此类文件或目录我发现加密目录存在问题,请尝试使用generate.sh重新创建。请注意,在DoCK-Cuff.YML中,FuffigaCaServer、CAYKEYFILE=/ETC/HyLealGeGe/FabyCa Server CONFIG/{PrimaTyr}在Cuto CONFIG//Ca/{PrimaTyKi} BTW中是相同的,我想您会考虑签出结构发布1.1。它成功地为我工作!我不明白为什么/etc/hyperledger/。。。文件夹不在我的虚拟机中。当我尝试generate.sh时,我遇到了另一个问题。这里是:$./generate.sh org1.example.com。。。2018-07-03 11:52:21.878 MST[common/tools/configtxgen]main->INFO 002加载配置2018-07-03 11:52:21.879 MST[common/tools/configtxgen/localconfig]Load->CRIT 003读取配置时出错:解析配置时:yaml:引用的未知锚“orderdefaults”。。。失败的t
sudo mkdir /c

sudo mount --bind /mnt/c /c

cd /c/Users/YOUR_WINDOWS_USERNAME #(go to C:\Users to see what its called)

mkdir blockchain #(or whatever you want to call it)

cd blockchain

curl -O https://raw.githubusercontent.com/hyperledger/composer-tools/master/packages/fabric-dev-servers/fabric-dev-servers.tar.gz

tar -xvf fabric-dev-servers.tar.gz

cd ~/fabric-dev-servers

export FABRIC_VERSION=hlfv12

./downloadFabric.sh
./startFabric.sh