我正在尝试按照Chaincode Development Environment上的说明在我的本地环境中设置hyperledger。
不幸的是,我对 golang 完全不熟悉。当我遇到尝试构建“ chaintool / example02 ”的错误时,我不知道如何进一步继续 - 我应该忽略这个问题还是首先要修复一些问题?例如,使用某些选项运行make等等...如何才能获得缺少的导入?
输出如下:
hyper-00:chaincode hyper$ pwd
/Users/hyper/Projects/blockchain/src/github.com/hyperledger/fabric/examples/chaincode/chaintool/example02/src/chaincode
hyper-00:chaincode hyper$ go build ./
chaincode_example02.go:24:2: cannot find package "hyperledger/cci/appinit" in any of:
/Users/hyper/Projects/blockchain/src/github.com/hyperledger/fabric/vendor/hyperledger/cci/appinit (vendor tree)
/usr/local/go/src/hyperledger/cci/appinit (from $GOROOT)
/Users/hyper/Projects/blockchain/src/hyperledger/cci/appinit (from $GOPATH)
chaincode_example02.go:25:2: cannot find package "hyperledger/cci/org/hyperledger/chaincode/example02" in any of:
/Users/hyper/Projects/blockchain/src/github.com/hyperledger/fabric/vendor/hyperledger/cci/org/hyperledger/chaincode/example02 (vendor tree)
/usr/local/go/src/hyperledger/cci/org/hyperledger/chaincode/example02 (from $GOROOT)
/Users/hyper/Projects/blockchain/src/hyperledger/cci/org/hyperledger/chaincode/example02 (from $GOPATH)
chaincode_example02.go:26:2: cannot find package "hyperledger/ccs" in any of:
/Users/hyper/Projects/blockchain/src/github.com/hyperledger/fabric/vendor/hyperledger/ccs (vendor tree)
/usr/local/go/src/hyperledger/ccs (from $GOROOT)
/Users/hyper/Projects/blockchain/src/hyperledger/ccs (from $GOPATH)
hyper-00:chaincode hyper$
我的$ GOPATH给出:
hyper-00:~ hyper$ echo $GOPATH
/Users/hyper/Projects/blockchain
<小时/> [2017-01-02编辑]
我再次重复了repo克隆程序。 我认为我的错误是我从GitHub中删除了一个错误的来源 - 可能是“ master ”,而不是“ v0.6 ”。
我做了什么,编译现在是:
$ sudo apt install golang-go
$ gedit .profile
export PATH=$PATH:/usr/local/go/bin
export GOPATH=$HOME/Projects/blockchain
$ . ~/.profile
$ mkdir -p $GOPATH/src/github.com/hyperledger/
$ cd $GOPATH/src/github.com/hyperledger
$ git clone -b v0.6 http://gerrit.hyperledger.org/r/fabric
$ cd ~/Projects/blockchain/src/github.com/hyperledger/fabric/examples/chaincode/go/chaincode_example02
$ go build
答案 0 :(得分:2)
github.com/hyperledger/fabric
应该在其vendor/
文件夹中包含所有这些依赖项,或者将示例放在带有供应商文件夹的自己的repo中,所以这看起来不像是你的问题。
您可以通过为所有缺失的软件包运行go get x y z
来修复它,或尝试使用销售工具来获取它们。
有许多选择可供出售,但没有&#34;官方&#34;选择到明年。我更喜欢govendor
。我还没试过这个特别的回购,但你可以试试:
go get -u github.com/kardianos/govendor
cd /Users/hyper/Projects/blockchain/src/github.com/hyperledger/fabric/
govendor fetch -v +missing
答案 1 :(得分:2)
HyperLedger团队提供了非常好的文档,介绍了如何以允许用户记录API(通过链代码接口或CCI)的方式使用chaintool。如果没有这个,链代码的使用者必须检查源代码以了解如何编写REST调用。好主意。
这种构建链代码的方法需要您下载github.com/hyperledger/cci和github.com/hyperledger/ccs以驻留在$ GOPATH中的github.com/hyperledger/fabric旁边。不幸的是,我没有看到任何可以下载的存储库(在github或gerrit上)。
此外,我只看到了一个例子(到目前为止)如何使用带有cci和ccs的chaintool的例子,这是一个链工具/ example02 ......并且由于这些丢失的超级包,它不能编译。
在以下位置有关于具有cci / ccs支持的chaintool的文档:
但似乎此文档已复制到以下位置,并从&#39; chaintool&#39;重新命名。 to&#39; openblockchain编译器&#39; (或OBCC)并标记为正在进行的工作&#39;:
因此,我倾向于认为chaintool / example02不是目前支持的构建链代码的方法......至少在OBCC正式可用之前。