Есть два варианта:
Если вы не используете Docker изображение, чтобы начать свои узлы, то вы должны развернуть chaincode, указав полный путь, другими словами, вы должны установить параметр при развертывании:
-p /home/user/my/awesome/chaincode
Если вы работаете ваши узлы/сверстникам в Докер изображения (например, инструкции, то вы следуете к настроить сеть развития), то у вас есть два варианта:
первый - это указать код цепи внутри папки на пути $GOPATH/src/github.com/hyperledger/fabric/peer
. Затем вы можете создать свое изображение (go test -run BuildImage_Peer
).
Теперь изображение докеры будет иметь цепочный код в его файловой системе (вы можете проверить его, выполнив навигацию с помощью docker run --rm -it -e CORE_VM_ENDPOINT=http://172.17.0.1:2375 -e CORE_PEER_ID=vp0 -e CORE_PEER_ADDRESSAUTODETECT=true hyperledger-peer /bin/bash
).
Наконец, чтобы развернуть цепочный код, вы должны установить путь (параметр -p) в папку, содержащую ваш код цепи, относительно $GOPATH/src/
. Этот путь будет следующим: github.com/hyperledger/fabric/peer/yourfolderwiththecc
.
второй вариант аналогичен (еще не проверен), но он использует shared filesystem между докером и бродягой для доступа к цепочке. Идея состоит в том, чтобы запустить докер с чем-то вроде -v local-dev:localdev
, так что папка локального dev в изображении докера связана с папкой локального dev-vagrant (где вы должны поместить свой код цепочки), а с -e GOPATH=/local-dev
вы устанавливаете GOPATH так, чтобы относительный путь может начинаться с папки/local-dev.
Наблюдение: путь с github.com может сбивать с толку, потому что кажется, что он получает в chaincode от Github, но это только имя папки.
Важно: для развертывания цепочного кода только один одноранговый узел должен иметь доступ к файлу сетевого кода (тот, где отправляется развертывание), поскольку консенсус отвечает за трансляцию сетевого кода.
Кредиты @ghaskins за его помощь в определении того, как это сделать.
Следует отметить, что $ GOPATH является типичной переменной окружения PATH и может иметь несколько путей. Следовательно, если вы используете $ GOPATH/src/github.com/...с $ GOPATH, который имеет несколько значений, вы не можете получить ожидаемый результат. – christo4ferris