Error_0
描述:
报错:
原因:
解决:
参考:
Error_11
描述:Fabric2.2.0网络启动,创建通道后,使用命令./network.sh deployCC -ccn sacc -ccv 1 -cci init -ccp ../chaincode/sacc22 -ccl go
部署sacc链码,出现如下error
报错:Error: endorsement failure during invoke. response: status:500 message:"error in simulation: transaction returned with failure: Incorrect arguments. Expecting a key and a value"
Invoke execution on peer0.org1 peer0.org2 failed
Deploying chaincode failed
原因:部署sacc链码,需要给部署的命令中穿两个参数
解决:详细请看sacc链码的具体实现,然后尝试在命令中加入参数,具体没有操作,是这个思路。
参考:无
Error_10
描述:Error_9问题解决后,重新启动network-test网络,创建通道,安装链码后,两条链码不能成功启动。
报错:使用命令docker ps -a
查询当前容器状态,两条链码的状态为Exited (1)
,
并且使用docker logs [容器id]
查询peer的日志,发现如下告警
could not launch chaincode 'fabcar_1.0:6c5c429e8a6734ff978f54d12a1d9e5e5296663e20dcacff6dd2276bb0e8b12b': chaincode registration failed: container exited with 1
原因:经过一天的问题排查,终于发现了自己出现问题。
因为用basic链码安装时成功(命令为:./network.sh deployCC -ccn basic -ccp ../asset-transfer-basic/chaincode-go -ccl go
),所以以为使用同样的命令安装fabcar链码也可以成功(命令为:./network.sh deployCC -ccn fabcar -ccp ../fabcar/go -ccl go
),但fabcar链码安装失败,自己经过查阅博客,以及两个链码安装的对比,最后发现获取fabcar链码的go包路径错了,正确命应该是:./network.sh deployCC -ccn fabcar -ccp ../chaincode/fabcar/go -ccl go
解决:自己折腾了一天,百思不得解,回顾自己这两天的解决思路,从源头开始思考自己出现这种问题的原因,然后罗列了下面的三种解决问题的思路。
1.fabcar链码文件错误?(最后通过阅读博文:fabric2.2测试网络06:安装链码(go)),发现果然是这个原因导致。fabcar链码go包的正确路径应该是../chaincode/fabcar/go
。
2.查阅别人fabcar是如何启动的。[未来得及验证]
3.是否需要用fabcar来装链码(我需要用postman来验证我编写的代理服务是否能够调通链码)[未来得及验证]。
参考:
1.fabric2.2测试网络06:安装链码(go) [通过此博文发现链码路径错误]
2.踩坑之chaincode无法实例化-“container exited with 0”。[提供一种思路,但是没有
解决该问题]
Error_9
描述:Fabric2.2.0网络启动完成后,fabcar链码安装后,使用命令docker logs [peer容器id]
查询容器日志,报出如下错误。
并且,使用命令docker ps -a
查询容器运行状态时,在peer0.org2.example.com和peer0.org1.example.com两个节点上安装的两条链码都是Created
状态
报错:could not launch chaincode 'fabcar_1.0:6c5c429e8a6734ff978f54d12a1d9e5e5296663e20dcacff6dd2276bb0e8b12b': error starting container: error starting container: API error (404): network fabric_test not found
原因:在运行fabric环境时,特别是使用docker-compose或者运行2.3.0及以下版本的fabric-samples的test-network时,基本都会遇到这个错误。这个错误会导致在安装智能合约时发生合约无法启动,也无法调用的问题。
导致这个错误的原因是因为fabric-samples/test-network/docker/docker-compose-test-net.yaml的配置文件中有一个CORE_VM_DOCKER_HOSTCONFIG_NETWORKMODE=fabric_test
,在智能合约启动时,会获取fabric-test值,这与docker中的网络名称docker-test(使用命令docker network ls
查询的到的网络名称docker-test(查询到的) )不一致。
解决:将docker-compose-test-net.yaml中的CORE_VM_DOCKER_HOSTCONFIG_NETWORKMODE=fabric_test
配置修改成docker-test
参考:
1.提供一种思路,但是没有
解决该问题 error starting container: API error (404): network fabric_test not found“
2.fabric启动链码容器报start-could not start container: API error (404): {“message“:“network _byfn not found“}
3.Error starting container: API error (404): {“message“:“network _byfn not found“}
Error_8
描述:Fabric2.2.0网络启动完成后,执行命令peer chaincode query -C mychannel -n fabcar -c '{"Args":["queryAllCars"]}'
出现如下错误
报错:Cannot run peer because cannot init crypto, specified path "/home/lijiangtao2/go/src/github.com/hyperledger/2.2.0/fabric-samples/config/msp" does not exist or cannot be accessed: stat /home/lijiangtao2/go/src/github.com/hyperledger/2.2.0/fabric-samples/config/msp: no such file or directory
原因:需要配置msp
的路径
解决:在终端执行如下命令export CORE_PEER_MSPCONFIGPATH=${PWD}/organizations/peerOrganizations/org1.example.com/users/Admin@org1.example.com/msp
注1:此处配置的是临时环境变量,关掉终端命令窗口便失效
注2:同时还需要夹的环境变量如下
export CORE_PEER_TLS_ENABLED=true
export CORE_PEER_LOCALMSPID="Org1MSP"
export CORE_PEER_TLS_ROOTCERT_FILE=${PWD}/organizations/peerOrganizations/org1.example.com/peers/peer0.org1.example.com/tls/ca.crt
export CORE_PEER_MSPCONFIGPATH=${PWD}/organizations/peerOrganizations/org1.example.com/users/Admin@org1.example.com/msp
export CORE_PEER_ADDRESS=localhost:7051
参考:无
Error_7
描述:Fabric2.2.0网络启动完成后,执行命令peer chaincode query -C mychannel -n fabcar -c '{"Args":["queryAllCars"]}'
出现如下错误
报错:ERRO 001 Fatal error when initializing core config : Could not find config file. Please make sure that FABRIC_CFG_PATH is set to a path which contains core.yaml
原因:需要配置FABRIC_CFG_PATH
的路径
解决:在终端执行如下命令export FABRIC_CFG_PATH=$PWD/../config/
注:此处配置的是临时环境变量,关掉终端命令窗口便失效
参考:无
Error_6
描述:Fabric2.2.0,执行fabric-samples/test-network中账本交互指令的时报错,
命令如下:peer chaincode query -C mychannel -n basic -c '{"Args":["queryAllCars"]}'
报错:Error: endorsement failure during query. response: status:500 message:"Function queryAllCars not found in contract SmartContract"
原因:命令中的-c '{"Args":["queryAllCars"]}
是‘指定调用链码时所需要的参数’,参数名错误导致
解决:在basic中没有queryAllCars智能合约,queryAllCars是fabcar中的智能合约,需要重新安装fabcar智能合约。
参考:无
Error_5
描述:Fabric2.2.0,执行fabric-samples/test-network中账本交互指令的时报错,
命令如下:peer chaincode query -C mychannel -n basic -c '{"Args":["queryAllCars"]}'
报错:
2022-02-25 10:22:20.617 CST [main] InitCmd -> ERRO 001 Cannot run peer because cannot init crypto, specified path "/home/lijiangtao2/go/src/github.com/hyperledger/2.2.0(1)/fabric-samples/config/msp" does not exist or cannot be accessed: stat /home/lijiangtao2/go/src/github.com/hyperledger/2.2.0(1)/fabric-samples/config/msp: no such file or directory
原因:没有配置环境变量,以网络中的某个组织的某个节点进行交互
解决:
export CORE_PEER_TLS_ENABLED=true
export CORE_PEER_LOCALMSPID="Org1MSP"
export CORE_PEER_TLS_ROOTCERT_FILE=${PWD}/organizations/peerOrganizations/org1.example.com/peers/peer0.org1.example.com/tls/ca.crt
export CORE_PEER_MSPCONFIGPATH=${PWD}/organizations/peerOrganizations/org1.example.com/users/Admin@org1.example.com/msp
export CORE_PEER_ADDRESS=localhost:7051
参考:成功解决Cannot run peer because cannot init crypto, specified path “xxx/fabric-samples/config/msp“
Error_4
描述:Fabric2.2.0,使用命令git clone https://github.com/hyperledger/fabric.git
下载fabric版本时,
报错:Cloning into 'fabric'... fatal: unable to access 'https://github.com/hyperledger/fabric.git/': GnuTLS recv error (-54): Error in the pull function.
原因:地址有误
解决:把https改成git就可以了git clone git://github.com/hyperledger/fabric.git
参考:关于问题“fatal: unable to access ‘https://github.com/hyperledger/fabric-ca.git/‘: Failed to“解决方案
Error_3
描述:Fabric2.2.0,使用./network.sh deployCC部署链码时,会出现如下的报错
报错:No chaincode name was provided. Valid call example: ./network.sh deployCC -ccn basic -ccp ../asset-transfer-basic/chaincode-go -ccl go
原因:不晓得
解决:使用如下命令部署:./network.sh deployCC -ccn basic -ccp ../asset-transfer-basic/chaincode-go -ccl go
参考:暂无
Error_2
描述:Fabric2.2.0,使用./network.sh up
命令启动网络时,会出现如下报错:
报错:ERROR: The Compose file './docker/docker-compose-test-net.yaml' is invalid because: networks.test value Additional properties are not allowed ('name' was unexpected)
原因:根据报错,到docker-compose-test-net.yaml文件中,额外的属性不被允许。
解决:将networks.test中的属性给注释掉,即可解决问题。
参考:暂无
Error_1
描述:Fabric2.2.0部署链码时出现如下error
部署命令 ./network.sh deployCC -ccn basic -ccp ../asset-transfer-basic/chaincode-go -ccl go
报错:Error: failed to normalize chaincode path: 'go list' failed with: go: github.com/hyperledger/fabric-chaincode-go@v0.0.0-20200424173110-d7076418f212: Get "https://proxy.golang.org/github.com/hyperledger/fabric-chaincode-go/@v/v0.0.0-20200424173110-d7076418f212.mod": dial tcp 172.217.163.49:443: connect: connection refused: exit status 1 Chaincode packaging has failed
Deploying chaincode failed
原因:GO111MODULE = on 仍将强制使用 Go 模块。仍然需要 go.mod 才能正常工作。
解决:终端使用命令go env,查看 GOPROXY和GO111MODULE,将状态修改成
go env -w GOPROXY=https://goproxy.io,direct
go env -w GO111MODULE=on
随后再次执行打包链码的指令,下载依赖成功,解决报错.
参考:https://blog.csdn.net/bean_business/article/details/112259109