GOPATH/GOROOT Hyperledger fabric 链码设置
GOPATH/GOROOT setup for Hyperledger fabric chaincode
我已经在 Hyperledger Fabric 1.4.7 中完成了基本设置,并让所有节点都加入了频道。在 golang 中探索链码后,我开始尝试 chaincode install 命令,但我在这一步遇到了问题。
错误
Error: error getting chaincode code mycc: path to chaincode does not exist: /home/user899/go/src/chaincode
当我刚刚 运行 go run chaincode.go
错误
chaincode.go:7:2: cannot find package "github.com/hyperledger/fabric-chaincode-go/shim" in any of:
/usr/lib/go-1.14/src/github.com/hyperledger/fabric-chaincode-go/shim (from $GOROOT)
/home/user899/go/src/github.com/hyperledger/fabric-chaincode-go/shim (from $GOPATH)
chaincode.go:8:2: cannot find package "github.com/hyperledger/fabric-protos-go/peer" in any of:
/usr/lib/go-1.14/src/github.com/hyperledger/fabric-protos-go/peer (from $GOROOT)
/home/user899/go/src/github.com/hyperledger/fabric-protos-go/peer (from $GOPATH)
环境
echo $GOPATH
/home/user899/go
Chaincode location
/home/user899/SoloNetwork/chaincode
谁能帮忙。
谢谢
我正在回答我自己的问题。这是解决方案,我不知道在 Go 中需要遵循的 directory structure。
所以首先,我在位于 home/dev/go
下的终端中使用 go env
检查了我的 GOPATH(通常是我们可以编写所有 go 文件的工作区)
关于目录结构,应该遵循以下内容:-
$GOPATH + /src/github.com/chaincode,所以最终结构将是 home/dev/go/src/github.com/chaincode
inside chaincode。我可以放置所有的 Go 文件。
所以在从 here 获取链代码文件后,我将其放在上面的位置并执行了以下命令
go mod init
go mod tidy
然后,我能够执行 peer chaincode install commad
peer chaincode install -n mycc -p "github.com/chaincode" -v 1.0
命令中-p "github.com/chaincode"
是我创建的文件夹名称
所以最后链码路径是由这些创建的:$GOPATH + src + -p flag
如果有人遇到与二进制相关的问题,请将您的 GOROOT 路径设置为安装 go 的 bin 位置。
我已经在 Hyperledger Fabric 1.4.7 中完成了基本设置,并让所有节点都加入了频道。在 golang 中探索链码后,我开始尝试 chaincode install 命令,但我在这一步遇到了问题。
错误
Error: error getting chaincode code mycc: path to chaincode does not exist: /home/user899/go/src/chaincode
当我刚刚 运行 go run chaincode.go
错误
chaincode.go:7:2: cannot find package "github.com/hyperledger/fabric-chaincode-go/shim" in any of: /usr/lib/go-1.14/src/github.com/hyperledger/fabric-chaincode-go/shim (from $GOROOT) /home/user899/go/src/github.com/hyperledger/fabric-chaincode-go/shim (from $GOPATH) chaincode.go:8:2: cannot find package "github.com/hyperledger/fabric-protos-go/peer" in any of: /usr/lib/go-1.14/src/github.com/hyperledger/fabric-protos-go/peer (from $GOROOT) /home/user899/go/src/github.com/hyperledger/fabric-protos-go/peer (from $GOPATH)
环境
echo $GOPATH
/home/user899/go
Chaincode location
/home/user899/SoloNetwork/chaincode
谁能帮忙。
谢谢
我正在回答我自己的问题。这是解决方案,我不知道在 Go 中需要遵循的 directory structure。
所以首先,我在位于 home/dev/go
go env
检查了我的 GOPATH(通常是我们可以编写所有 go 文件的工作区)
关于目录结构,应该遵循以下内容:-
$GOPATH + /src/github.com/chaincode,所以最终结构将是 home/dev/go/src/github.com/chaincode
inside chaincode。我可以放置所有的 Go 文件。
所以在从 here 获取链代码文件后,我将其放在上面的位置并执行了以下命令
go mod init
go mod tidy
然后,我能够执行 peer chaincode install commad
peer chaincode install -n mycc -p "github.com/chaincode" -v 1.0
命令中-p "github.com/chaincode"
是我创建的文件夹名称
所以最后链码路径是由这些创建的:$GOPATH + src + -p flag
如果有人遇到与二进制相关的问题,请将您的 GOROOT 路径设置为安装 go 的 bin 位置。