peer0.org1 上的 Hyperledger Fabric 链码安装失败
Hyperledger Fabric chaincode installation on peer0.org1 has failed
我正在尝试按照最新版本 (v2.2.1) 的教程 Using the Fabric test network 进行操作,一切正常,直到我尝试使用 ./network.sh deployCC
插入链码。
我得到以下输出:
deploying chaincode on channel 'mychannel'
executing with the following
- CHANNEL_NAME: mychannel
- CC_NAME: basic
- CC_SRC_PATH: NA
- CC_SRC_LANGUAGE: go
- CC_VERSION: 1.0
- CC_SEQUENCE: 1
- CC_END_POLICY: NA
- CC_COLL_CONFIG: NA
- CC_INIT_FCN: NA
- DELAY: 3
- MAX_RETRY: 5
- VERBOSE: false
Determining the path to the chaincode
asset-transfer-basic
Vendoring Go dependencies at ../asset-transfer-basic/chaincode-go/
~/fabric-samples/asset-transfer-basic/chaincode-go ~/fabric-samples/test-network
~/fabric-samples/test-network
Finished vendoring Go dependencies
Using organization 1
+ peer lifecycle chaincode package basic.tar.gz --path ../asset-transfer-basic/chaincode-go/ --lang golang --label basic_1.0
+ res=0
Chaincode is packaged on peer0.org1
Installing chaincode on peer0.org1...
Using organization 1
+ peer lifecycle chaincode install basic.tar.gz
+ res=1
Error: chaincode install failed with status: 500 - failed to invoke backing implementation of 'InstallChaincode': could not build chaincode: docker build failed: docker image build failed: docker build failed: Error returned from build: 1 "go: inconsistent vendoring in /chaincode/input/src:
github.com/golang/protobuf@v1.3.2: is explicitly required in go.mod, but not marked as explicit in vendor/modules.txt
github.com/hyperledger/fabric-chaincode-go@v0.0.0-20200424173110-d7076418f212: is explicitly required in go.mod, but not marked as explicit in vendor/modules.txt
github.com/hyperledger/fabric-contract-api-go@v1.1.0: is explicitly required in go.mod, but not marked as explicit in vendor/modules.txt
github.com/hyperledger/fabric-protos-go@v0.0.0-20200424173316-dd554ba3746e: is explicitly required in go.mod, but not marked as explicit in vendor/modules.txt
github.com/stretchr/testify@v1.5.1: is explicitly required in go.mod, but not marked as explicit in vendor/modules.txt
run 'go mod vendor' to sync, or use -mod=mod or -mod=readonly to ignore the vendor directory
"
Chaincode installation on peer0.org1 has failed
Deploying chaincode failed
如果我尝试建议的 go mod vendor
,我会得到 go: no dependencies to vendor
作为答案。
附加信息:
虚拟机:Oracle VM VirtualBox
主持人:Windows 10
Linux版本: Distributor ID: Ubuntu Description: Ubuntu 20.04.1 LTS Release: 20.04 Codename: focal
转到版本:
go version go1.13.8 linux/amd64
尝试在您的对等配置中添加 GODEBUG: "netdns=go"
请检查并更改以下文件中的go版本:
../fabric-samples/asset-transfer-basic/chaincode-go/go.mod
从
更改设置go版本的行
go 1.14
至
go 1.13
这解决了我的问题。
尝试
go mod tidy
go mod vendor
看看是否有帮助。看起来 mod 可能将文件放在一个目录中并在其他地方寻找它们。默认情况下,Go 现在在 $Home/go 目录中查找 Go 项目。可能是 Go 正在以 $home/go/pkg 或其他方式出售项目,而这不在您的道路上,也许?
我正在尝试按照最新版本 (v2.2.1) 的教程 Using the Fabric test network 进行操作,一切正常,直到我尝试使用 ./network.sh deployCC
插入链码。
我得到以下输出:
deploying chaincode on channel 'mychannel'
executing with the following
- CHANNEL_NAME: mychannel
- CC_NAME: basic
- CC_SRC_PATH: NA
- CC_SRC_LANGUAGE: go
- CC_VERSION: 1.0
- CC_SEQUENCE: 1
- CC_END_POLICY: NA
- CC_COLL_CONFIG: NA
- CC_INIT_FCN: NA
- DELAY: 3
- MAX_RETRY: 5
- VERBOSE: false
Determining the path to the chaincode
asset-transfer-basic
Vendoring Go dependencies at ../asset-transfer-basic/chaincode-go/
~/fabric-samples/asset-transfer-basic/chaincode-go ~/fabric-samples/test-network
~/fabric-samples/test-network
Finished vendoring Go dependencies
Using organization 1
+ peer lifecycle chaincode package basic.tar.gz --path ../asset-transfer-basic/chaincode-go/ --lang golang --label basic_1.0
+ res=0
Chaincode is packaged on peer0.org1
Installing chaincode on peer0.org1...
Using organization 1
+ peer lifecycle chaincode install basic.tar.gz
+ res=1
Error: chaincode install failed with status: 500 - failed to invoke backing implementation of 'InstallChaincode': could not build chaincode: docker build failed: docker image build failed: docker build failed: Error returned from build: 1 "go: inconsistent vendoring in /chaincode/input/src:
github.com/golang/protobuf@v1.3.2: is explicitly required in go.mod, but not marked as explicit in vendor/modules.txt
github.com/hyperledger/fabric-chaincode-go@v0.0.0-20200424173110-d7076418f212: is explicitly required in go.mod, but not marked as explicit in vendor/modules.txt
github.com/hyperledger/fabric-contract-api-go@v1.1.0: is explicitly required in go.mod, but not marked as explicit in vendor/modules.txt
github.com/hyperledger/fabric-protos-go@v0.0.0-20200424173316-dd554ba3746e: is explicitly required in go.mod, but not marked as explicit in vendor/modules.txt
github.com/stretchr/testify@v1.5.1: is explicitly required in go.mod, but not marked as explicit in vendor/modules.txt
run 'go mod vendor' to sync, or use -mod=mod or -mod=readonly to ignore the vendor directory
"
Chaincode installation on peer0.org1 has failed
Deploying chaincode failed
如果我尝试建议的 go mod vendor
,我会得到 go: no dependencies to vendor
作为答案。
附加信息:
虚拟机:Oracle VM VirtualBox
主持人:Windows 10
Linux版本: Distributor ID: Ubuntu Description: Ubuntu 20.04.1 LTS Release: 20.04 Codename: focal
转到版本:
go version go1.13.8 linux/amd64
尝试在您的对等配置中添加 GODEBUG: "netdns=go"
请检查并更改以下文件中的go版本:
../fabric-samples/asset-transfer-basic/chaincode-go/go.mod
从
更改设置go版本的行go 1.14
至
go 1.13
这解决了我的问题。
尝试
go mod tidy
go mod vendor
看看是否有帮助。看起来 mod 可能将文件放在一个目录中并在其他地方寻找它们。默认情况下,Go 现在在 $Home/go 目录中查找 Go 项目。可能是 Go 正在以 $home/go/pkg 或其他方式出售项目,而这不在您的道路上,也许?