본문 바로가기

IT/Block Chain(Hyperledger)

hyperledger 2.0 go:unknown subcommand "mod"

2.0으로 체인코드 설치를 진행하다 아래와 같은 문제가 발생하였다.

$./network.sh deployCC
deploying chaincode on channel 'mychannel'

Vendoring Go dependencies ...
/opt/gopath/src/github.com/hyperledger/fabric-samples/chaincode/fabcar/go /opt/gopath/src/github.com/hyperledger/fabric-samples/test-network
go: unknown subcommand "mod"
Run 'go help' for usage.
/opt/gopath/src/github.com/hyperledger/fabric-samples/test-network
Finished vendoring Go dependencies
Using organization 1
++ peer lifecycle chaincode package fabcar.tar.gz --path ../chaincode/fabcar/go/ --lang golang --label fabcar_1
++ res=1
++ set +x
Error: error getting chaincode bytes: listing deps for package ../chaincode/fabcar/go/ failed: exit status 2
!!!!!!!!!!!!!!! Chaincode packaging on peer0.org1 has failed !!!!!!!!!!!!!!!!

ERROR !!! Deploying chaincode failed

 

원인은 Golang 버전 이슈.

Go언어를 1.14버전으로 다시 설치해준다.

설치를 위해선 기존 버전을 지워주고 해야된다.(필자의 go dir은 /opt/go)

cd /usr/local/
sudo wget https://storage.googleapis.com/golang/go1.14.linux-amd64.tar.gz
sudo rm -rf /opt/go
sudo tar -C /opt -xzf go1.14.linux-amd64.tar.gz
go version
go version go1.14 linux/amd64

sudo vi /etc/profile

export GOPATH="/opt/gopath"
export GOROOT="/opt/go"
export PATH=$GOROOT/bin:$GOPATH/bin:$PATH

 

설치하고 디시 시도하면 정상 동작하는 것을 확인할 수 있다.

$ ./network.sh deployCC
deploying chaincode on channel 'mychannel'

Vendoring Go dependencies ...
/opt/gopath/src/github.com/hyperledger/fabric-samples/chaincode/fabcar/go /opt/gopath/src/github.com/hyperledger/fabric-samples/test-network
go: downloading github.com/hyperledger/fabric-contract-api-go v1.0.0
go: downloading github.com/hyperledger/fabric-chaincode-go v0.0.0-20200128192331-2d899240a7ed
go: downloading github.com/hyperledger/fabric-protos-go v0.0.0-20200124220212-e9cfc186ba7b
go: downloading github.com/go-openapi/spec v0.19.4
go: downloading github.com/gobuffalo/packr v1.30.1
go: downloading github.com/xeipuuv/gojsonschema v1.2.0
go: downloading github.com/go-openapi/jsonreference v0.19.2
go: downloading github.com/go-openapi/swag v0.19.5
go: downloading github.com/go-openapi/jsonpointer v0.19.3
go: downloading github.com/gobuffalo/packd v0.3.0
go: downloading github.com/gobuffalo/envy v1.7.0
go: downloading github.com/mailru/easyjson v0.0.0-20190626092158-b2ccc519800e
go: downloading gopkg.in/yaml.v2 v2.2.2
go: downloading github.com/xeipuuv/gojsonreference v0.0.0-20180127040603-bd5ef7bd5415
go: downloading github.com/PuerkitoBio/purell v1.1.1
go: downloading github.com/rogpeppe/go-internal v1.3.0
go: downloading github.com/PuerkitoBio/urlesc v0.0.0-20170810143723-de5bf2ad4578
go: downloading github.com/joho/godotenv v1.3.0
go: downloading google.golang.org/grpc v1.23.0
go: downloading golang.org/x/text v0.3.2
go: downloading github.com/golang/protobuf v1.3.2
go: downloading golang.org/x/net v0.0.0-20190827160401-ba9fcec4b297
go: downloading github.com/xeipuuv/gojsonpointer v0.0.0-20180127040702-4e3ac2762d5f
go: downloading google.golang.org/genproto v0.0.0-20180831171423-11092d34479b
go: downloading golang.org/x/sys v0.0.0-20190710143415-6ec70d6a5542
/opt/gopath/src/github.com/hyperledger/fabric-samples/test-network
Finished vendoring Go dependencies
Using organization 1
++ peer lifecycle chaincode package fabcar.tar.gz --path ../chaincode/fabcar/go/ --lang golang --label fabcar_1
++ res=0
++ set +x
===================== Chaincode is packaged on peer0.org1 =====================