hyperledger fabric1.0 vagrant 環境搭建過程記錄

環境提前準備

  • vagrant 1.7.4 或以上

預備好golang/x/tools 庫

在執行vagrant up過程中,會執行fabric/devenv目錄下的setup.sh腳本,其中有一項make clean gotools,會去go get golang/x/tools下的一些庫,這些庫無法下載,可使用github上的替換。

修改setup.sh,在83行下增加

#down x/tools first
cat << EOF
down x/tools first
EOF

tools=$GOPATH'/src/github.com/golang/tools'
echo "tools path "$tools
if [ ! -d "$tools" ]
then
    cd $GOPATH/src/github.com/golang
    git clone https://github.com/golang/tools.git
else
    echo "x/tools already exist"
fi

修改 fabric目錄下Makefile,在175行下添加

-v /opt/gopath:/opt/gopath \

修改 fabric/gotools 目錄下的Makefile,在44行下方增加

gotool.goimports:
    @echo "Building golang.org/x/tools/cmd/goimports -> goimports"
    @GOPATH=$(abspath $(TMP_GOPATH)) go install golang.org/x/tools/cmd/goimports

$(GOBIN)/%: 下增加

@echo "copy x/tools resource"
@mkdir -p $(TMP_GOPATH)/src/golang.org/x
@cp -R $(GOPATH)/src/github.com/golang/tools $(TMP_GOPATH)/src/golang.org/x

下載fabric和fabric-ca

fabric 代碼托管在gerrit 上,登錄需要一個Linux Foundation ID。注冊地址 https://identity.linuxfoundation.org/

在我的windows上安裝好git,clone 代碼選擇clone with commit-msg hook,選擇ssh方式。其中LFD是Linux Foundation ID賬號。

git config --global core.autocrlf false
git clone ssh://LFID@gerrit.hyperledger.org:29418/fabric && scp -p -P 29418 shiyouRan@gerrit.hyperledger.org:hooks/commit-msg fabric/.git/hooks/
git clone ssh://LFID@gerrit.hyperledger.org:29418/fabric-ca && scp -p -P 29418 shiyouRan@gerrit.hyperledger.org:hooks/commit-msg fabric-ca/.git/hooks/

進入到fabric/devenv目錄 vagrant up, 會顯示下載fabric的virtualbox.box,下載速度非常慢,可事先用其它下載工具把該box下載下來,下載地址就是上面顯示的地址。

如果使用單獨下載的box,完成后添加box到本地 vagrant box add $box_path$box_path 是下載的virtualbox.box的路徑, 同時需要設置環境變量USE_LOCAL_BASEIMAGE=1

vagrant up 再次啟動。最后執行成功,在虛擬機環境沒有 /etc/motd 這個文件。

配置docker環境

docker version 查看版本是1.13,需要配置docker的配置文件路徑:

vi /lib/systemd/system/docker.service,在 [Service] 下增加

EnvironmentFile=/etc/default/docker
ExecStart=/usr/bin/dockerd -H fd:// $DOCKER_OPTS

修改vi /etc/default/docker,設置

DOCKER_OPTS="$DOCKER_OPTS -H tcp://0.0.0.0:2375 -H unix:///var/run/docker.sock --api-cors-header='*'"

重啟docker

sudo systemctl daemon-reload
sudo systemctl restart docker

編譯

cd /opt/gopath/src/github.com/hyperledger/fabric
make all
cd /opt/gopath/src/github.com/hyperledger/fabric-ca
make all

如果中途下載基礎鏡像不成功,包括 hyperledger/fabric-baseimagehyperledger/fabric-baseos,則把鏡像名和tag粘貼下來,先直接docker pull把他們下載下來,再繼續 make all

成功之后會得到所有的鏡像

hyperledger/fabric-testenv-orderer
hyperledger/fabric-ca             
hyperledger/fabric-couchdb        
hyperledger/fabric-kafka          
hyperledger/fabric-zookeeper      
hyperledger/fabric-testenv        
hyperledger/fabric-buildenv       
hyperledger/fabric-orderer        
hyperledger/fabric-peer           
hyperledger/fabric-javaenv        
hyperledger/fabric-ccenv

整個開發環境就搭建好了。

附錄

參考 http://hyperledger-fabric.readthedocs.io/en/latest/dev-setup/devenv.html

最后編輯于
?著作權歸作者所有,轉載或內容合作請聯系作者
平臺聲明:文章內容(如有圖片或視頻亦包括在內)由作者上傳并發布,文章內容僅代表作者本人觀點,簡書系信息發布平臺,僅提供信息存儲服務。

推薦閱讀更多精彩內容