2016-12-21 7 views
0

Я пытаюсь выполнить инструкции по Chaincode Development Environment, чтобы настроить гиперссылку в моей локальной среде.Не удается построить «chaintool/example02»

К сожалению, я совершенно новый для 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]

Я повторил репо повторное клонирование. Я думаю, что моя ошибка заключалась в том, что я вытащил неправильный источник из GitHub - возможно, «мастер», а не «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

Вы проверили свой '$ GOPATH'? –

+0

У меня он установлен в моем .profile. Я добавил его на свой пост в конце. – gvlax

+0

в 'example02', код попытается импортировать' shim' из '' github.com/hyperledger/fabric/core/chaincode/shim'', который не находится в вашем '$ GOPATH'. Вот почему вы получили эту ошибку. –

ответ

2

github.com/hyperledger/fabric должен включать в себя всю эту зависимость в своей папке vendor/ или положить примеры их собственной репо с папкой поставщика, так это выглядит, как их проблема не ваша.

Вы можете исправить это, запустив go get x y z для всех недостающих пакетов или попробуйте использовать инструмент для их получения.

Существует множество вариантов для поставщиков, но нет «официального» варианта до следующего года. Я предпочитаю govendor. я попытался нету его с этой конкретной репо, но вы можете попробовать:

go get -u github.com/kardianos/govendor 
cd /Users/hyper/Projects/blockchain/src/github.com/hyperledger/fabric/ 
govendor fetch -v +missing 
2

Команда HyperLedger предоставила очень хорошую документацию о том, как использовать chaintool таким образом, что позволяет пользователям документировать API-интерфейсы (через Цепной код интерфейса, или CCI). Без этого потребители цепочного кода должны проверять исходный код, чтобы понять, как составить вызов REST. Отличная идея.

Этот подход к строительному цепочному коду требует скачивания github.com/hyperledger/cci и github.com/hyperledger/ccs для размещения рядом с github.com/hyperledger/fabric в пределах вашего $ GOPATH. К сожалению, я не вижу никакого репозитория (на github или gerrit), где это можно загрузить.

Кроме того, я видел только один пример использования chaintool с cci и ccs, который является chaintool/example02 ... и он не компилируется из-за этих отсутствующих пакетов гиперссылок.

Существует документация по chaintool с CCI/CCS поддержка по следующему адресу:

Но, похоже, эта документация была скопирована в следующую папку и переименован из «chaintool» в 'openblockchain компилятора' (или OBCC) и помечен как 'незавершенный':

Как таковой, я склонен полагать, что chaintool/example02 не поддерживается в настоящее время при построении кода цепи ... по крайней мере до тех пор, пока OBCC не станет официально доступным.

Смежные вопросы