安裝hyperledger fabric V1.0.1 (安裝docker和docker-compose)

安裝文檔位置:node

https://github.com/hyperledger/fabric   fabric代碼託管地址linux

https://hyperledger-fabric.readthedocs.io/en/latest/  在線文檔地址git

https://github.com/hyperledger/fabric/archive/v1.0.0.tar.gz fabric1.0.0源代碼包地址github

 

安裝環境:golang

    Vmware + CentOS7 64位 1611版本docker

 

安裝前準備:npm

  • 安裝配置好虛擬機,須要保證curl命令可用
  • 關閉centos自動升級,省得安裝時提示yum被鎖定

即將/etc/yum/pluginconf.d/langpacks.conf 中的 enable=1改成enable=0json

sed -i 's/enabled=1/enabled=0/g' /etc/yum/pluginconf.d/langpacks.conf
yum update
  • 使用yum install 安裝tree(方便查看目錄結構),git(用於下載代碼)
  • 安裝docker和docker-compose

     https://download.daocloud.io/  找到docker和docker-compose的安裝指導。咱們選擇在線安裝根據指導執行命令便可。版本更新後指導也會更新,安裝時最好去網站上獲取最新的命令bootstrap

     安裝dockercentos

複製代碼
sudo yum install -y yum-utils
sudo yum-config-manager \
    --add-repo \
    https://download.daocloud.io/docker/linux/centos/docker-ce.repo
sudo yum install -y -q --setopt=obsoletes=0 docker-ce-17.03.1.ce*
sudo systemctl enable docker
sudo systemctl start docker
sudo service docker status
複製代碼

                   docker --version

                  輸出:Docker version 17.03.1-ce, build c6d412e

 

        安裝docker-compose

curl -L https://get.daocloud.io/docker/compose/releases/download/1.12.0/docker-compose-`uname -s`-`uname -m` > /usr/local/bin/docker-compose
chmod +x /usr/local/bin/docker-compose

                 docker-compose --version

                 輸出:docker-compose version 1.12.0, build b31ff33

 

         使用阿里雲進行鏡像加速(若是能FQ就不用加速了)

         https://dev.aliyun.com  註冊一個賬號。而後查看Docker Hub 鏡像站點。指導文檔寫的很清楚。拷貝其中的內容執行便可。內容以下:

          https後面的應該是你本身的鏡像地址

複製代碼
sudo mkdir -p /etc/docker
sudo tee /etc/docker/daemon.json <<-'EOF'
{
  "registry-mirrors": ["https://du8c1in9.mirror.aliyuncs.com"]
}
EOF
sudo systemctl daemon-reload
sudo systemctl restart docker
複製代碼

 

  • 安裝nodejs和NPM(須要V6 LTS版本。不支持V7或者V8)

      https://nodejs.org   nodejs網站,能夠下載安裝包進行安裝,這裏下載了node-v6.11.4-linux-x64.tar.xz解壓包

      將這個包放到/opt/nodejs目錄下,看成安裝目錄

                進行解壓:

複製代碼

cd /opt
mkdir nodejs
cd nodejs
curl -o node-v6.11.4-linux-x64.tar.xz https://nodejs.org/dist/v6.11.4/node-v6.11.4-linux-x64.tar.xz
xz -d node-v6.11.4-linux-x64.tar.xz
tar -xvf node-v6.11.4-linux-x64.tar

複製代碼

                創建軟鏈接,後續替換版本方便

ln -s /opt/nodejs/node-v6.11.4-linux-x64/bin/node /usr/local/bin/node
ln -s /opt/nodejs/node-v6.11.4-linux-x64/bin/npm /usr/local/bin/npm

             也能夠經過設置nodejs環境變量的方式,在/etc/profile文件的
             export PATH USER LOGNAME MAIL HOSTNAME HISTSIZE HISTCONTROL 一行的上面添加以下內容:

#set for nodejs
export NODE_HOME=/opt/nodejs/node-v6.11.0-linux-x64
export PATH=$NODE_HOME/bin:$PATH

               升級NPM工具,刷新會很慢。但好像不執行也沒有什麼問題

npm install npm@latest -g

 

  • 安裝go語句環境

      https://golang.org/dl/   go的主頁下載地址,能夠到這裏尋找最新版本

複製代碼
cd /opt
mkdir golang
cd golang curl -O https://storage.googleapis.com/golang/go1.8.3.linux-amd64.tar.gz tar -zxvf go1.8.3.linux-amd64.tar.gz
cd /opt
mkdir gopath
複製代碼

       在/etc/profile中配置go的環境變量

export GOROOT=/opt/golang/go
export PATH=$GOROOT/bin:$PATH
export GOPATH=/opt/gopath

       修改完source /etc/profile 刷新一下,使用 go version查看版本,也可使用go env查看環境變量信息

下載fabric1.0.1源代碼: 

將源代碼下載gopath下,/opt/gopath/src/github.com/hyperledger/fabric目錄下,若沒有可手工建立

curl -O https://github.com/hyperledger/fabric/archive/v1.0.1.tar.gz
tar -zxvf v1.0.1.tar.gz

 目錄結構以下:

 

下載fabric-sample鏡像並啓動:

       首先找一個目錄作爲臨時安裝目錄,這裏用的是/opt/fabricinstall.

       從剛纔的源代碼目錄拷貝安裝腳本過來,並執行,運行腳本時,會下載一個bin目錄,裏邊有後續部署時會用的工具

cp /opt/gopath/src/github.com/hyperledger/fabric/scripts/bootstrap-1.0.1.sh /opt/fabricinstall/
cd /opt/fabricinstall/
sh bootstrap-1.0.1.sh

        

     執行後就要開始等待鏡像下載了,下載完成後,能夠用如下命令,查看下載的鏡像

docker images | grep hyperledger*

     用阿里鏡像很快裝完了,若是使用鏡像須要加上版本號,這裏自動轉成了latest就不用輸入版本號了。因此每一個鏡像都有兩行。

 

準備運行e2e_cli的例子

例子的腳本放在源代碼目錄中,須要拷貝過來。而例子腳本的路徑都是寫死的,因此要按照腳本里邊的相對路徑,建立整個運行目錄。

以前使用bootstrap-1.0.1.sh腳本下載的執行文件,也須要拷貝到例子目錄中,例子的腳本會調用這些執行文件。

如下是生成目錄結構的腳本:

複製代碼

mkdir /opt/fabricinstall/release
mkdir /opt/fabricinstall/release/e2ecli
mkdir /opt/fabricinstall/release/linux-amd64
cd /opt/fabricinstall/release/e2ecli/
cp -R /opt/gopath/src/github.com/hyperledger/fabric/examples/e2e_cli/* /opt/fabricinstall/release/e2ecli/ 
cp -R /opt/fabricinstall/bin/ /opt/fabricinstall/release/linux-amd64/ 

mkdir /opt/fabricinstall/release/chaincode
mkdir /opt/fabricinstall/release/chaincode/go
cp -R /opt/gopath/src/github.com/hyperledger/fabric/examples/chaincode/go/* /opt/fabricinstall/release/chaincode/go 
./network_setup.sh up

複製代碼

注意:e2ecli目錄是固定的,啓動後會建立一個docker network以此爲名字,若是修改該目錄,要到//opt/fabricinstall/release/e2ecli/base/peer-base.yaml文件中修改如下配置選項

- CORE_VM_DOCKER_HOSTCONFIG_NETWORKMODE=e2ecli_default


若是容器已經生成了,可使用以下命令清理後,在進行network_set.

docker stop $(docker ps -q) & docker rm $(docker ps -aq)

 

出現如下字樣,沒有報錯。估計是成功了。

 

     能夠經過docker ps查詢啓動的容器,啓動前是沒有任何容器的。

 

     

      這個過程當中會建立一個例子,並將須要的容器都拉起來

      能夠看到看到啓動了三個mycc(系統給出的例子)  一個cli(工具) 一個orderer(選舉)  四個peer(客戶端)

      固然這個過程也能夠手工進行,後續會專門寫一個文檔講解。

 

關閉例子

開一個新窗口,而後在對應目錄下,執行關閉指令就能夠了。

./network_setup.sh down

 

 

 

啓用couchdb

     上面的例子中,咱們沒法看到存儲內容,因此改用couchdb作爲pee交易的存儲     使用couchdb能夠經過網頁查看狀態內容

      因此先關閉掉以前的系統,使用如下命令進行從新進行啓動

./network_setup.sh up mycc 10000 couchdb

     一共四個參數  1.啓動或中止  2.通道名稱  3.cli等待時間  4.使用couchdb。  若是關閉的話,把up改爲down就能夠了。

 

     啓動後訪問http://192.168.101.23:5984/_utils/ 就能夠看到頁面了。IP記得換成本身的

      

      點進mycc看一下

相關文章
相關標籤/搜索