我是Hyperleger Fabric的新手,正在try 做Using the Fabric test network个文档中的例子.我被困在通道上启动链码的阶段.即使我正确地调整了路径,我也得到了下面的错误.我无法从类似的问题中找出解决方案.
该命令如下:
Sudo./network.sh部署CC-c通道1-CCN BASIC-CCP../ASSET-TRANSFER-BASIC/chaincode-go-ccl Go
以下是输出:
> Using docker and docker-compose
deploying chaincode on channel 'channeluk1'
executing with the following
> - CHANNEL_NAME: channeluk1
> - CC_NAME: basic
> - CC_SRC_PATH: ../asset-transfer-basic/chaincode-go
> - 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
> Vendoring Go dependencies at ../asset-transfer-basic/chaincode-go
~/go/src/github.com/umitkilic/fabric-samples/asset-transfer-basic/chaincode-go ~/go/src/github.com/umitkilic/fabric-samples/test-network
scripts/deployCC.sh: line 59: go: command not found
~/go/src/github.com/umitkilic/fabric-samples/test-network
> Finished vendoring Go dependencies
> + peer lifecycle chaincode package basic.tar.gz --path ../asset-transfer-basic/chaincode-go --lang golang --label basic_1.0
> + res=1
> ++ peer lifecycle chaincode calculatepackageid basic.tar.gz
Error: failed to read chaincode package at 'basic.tar.gz': open basic.tar.gz: no such file or directory
> + PACKAGE_ID=
> Error: failed to normalize chaincode path: failed to determine module root: exec: "go": executable file not found in $PATH
Chaincode packaging has failed
Deploying chaincode failed
我知道错误是说GO路径有问题,但路径没有问题.以下是围棋的一些输出.
命令:
转到环境
输出:
GO111MODULE=""
GOARCH="amd64"
GOBIN=""
GOCACHE="/home/umitkilic/.cache/go-build"
GOENV="/home/umitkilic/.config/go/env"
GOEXE=""
GOFLAGS=""
GOHOSTARCH="amd64"
GOHOSTOS="linux"
GONOPROXY=""
GONOSUMDB=""
GOOS="linux"
GOPATH="/home/umitkilic/go"
GOPRIVATE=""
GOPROXY="https://proxy.golang.org,direct"
GOROOT="/home/umitkilic/go"
GOSUMDB="sum.golang.org"
GOTMPDIR=""
GOTOOLDIR="/home/umitkilic/go/pkg/tool/linux_amd64"
GCCGO="gccgo"
AR="ar"
CC="gcc"
CXX="g++"
CGO_ENABLED="1"
GOMOD="/home/umitkilic/go/src/go.mod"
CGO_CFLAGS="-g -O2"
CGO_CPPFLAGS=""
CGO_CXXFLAGS="-g -O2"
CGO_FFLAGS="-g -O2"
CGO_LDFLAGS="-g -O2"
PKG_CONFIG="pkg-config"
GOGCCFLAGS="-fPIC -m64 -pthread -fmessage-length=0 -fdebug-prefix-map=/tmp/go-build952499924=/tmp/go-build -gno-record-gcc-switches"
命令:
哪里go 了?
输出:
Go:/home/umitkiic/go/bin/go
(In 转到环境 output, GOPATH="/home/umitkilic/go" but in 哪里go 了? output it says Go:/home/umitkiic/go/bin/go. I'm not sure if these are in coherent.)
在我的~/.bashrc文件中,我有以下几行:
出口GOPATH=$HOME/GO 导出路径=$PATH:$GOPATH/bin
我的 struct 示例目录为Home/umitkilic/go/src/github.com/umitkilic/fabric-samples
我的GO版本是go1.13.15 Linux/AMD64.
我try 在/usr/local/go中安装GO语言,但结果是相同的错误.
你能帮帮我吗?
Update: 我按照他们的指示使用了之前的最新版本,比如official website版的go1.20.4.结果是同样的错误.
顺便说一句,我使用以下命令打印Fabric对等版本:
docker exec -it cli bash
root@bb4a6d6eed2f:/opt/gopath/src/github.com/hyperledger/fabric/peer# peer version
输出为:
peer:
Version: v2.5.0
Commit SHA: bd8e248
Go version: go1.20.2
OS/Arch: linux/amd64
Chaincode:
Base Docker Label: org.hyperledger.fabric
Docker Namespace: hyperledger
它说Go的版本是go1.20.2,但我从来没有下载和安装过这个版本的Go.也许这会自动与Docker中的织物样本一起安装.我不确定这是否与这个错误有关.