准備基礎環境
1、安裝curl、git
yum install curl yum install git
2、go環境搭建
下載解壓 cd /home mkdir app cd app wget https://dl.google.com/go/go1.14.2.linux-amd64.tar.gz tar -C /usr/local -zxf go1.14.2.linux-amd64.tar.gz 配置環境變量 vim /etc/profile #go export PATH=$PATH:/usr/local/go/bin export GOROOT=/usr/local/go export GOPATH=$HOME/go export PATH=$PATH:$HOME/go/bin 使配置生效 source /etc/profile 查看版本 go version
3、java環境搭建
下載jdk壓縮包 鏈接:https://pan.baidu.com/s/1UX3qi6XbJZF8lzlpqFr9Fg 提取碼:wajb 創建安裝目錄 mkdir /usr/local/java/ 解壓至安裝目錄 tar -zxvf jdk-8u171-linux-x64.tar.gz -C /usr/local/java/
設置環境變量,打開文件 vim /etc/profile 在末尾添加 export JAVA_HOME=/usr/local/java/jdk1.8.0_211 export JRE_HOME=${JAVA_HOME}/jre export CLASSPATH=.:${JAVA_HOME}/lib:${JRE_HOME}/lib export PATH=${JAVA_HOME}/bin:$PATH 使環境變量生效 source /etc/profile 添加軟鏈接 ln -s /usr/local/java/jdk1.8.0_211/bin/java /usr/bin/java 檢查 java -version
4、maven環境搭建
下載maven壓縮包 wget https://archive.apache.org/dist/maven/maven-3/3.5.4/binaries/apache-maven-3.5.4-bin.tar.gz 創建安裝目錄 mkdir /usr/local/maven/ 解壓至安裝目錄 tar -zxvf apache-maven-3.5.4-bin.tar.gz -C /usr/local/maven/
設置環境變量,打開文件 vim /etc/profile 在末尾添加 export MAVEN_HOME=/usr/local/maven/apache-maven-3.5.4 export PATH=$PATH:$JAVA_HOME/bin:$MAVEN_HOME/bin 使環境變量生效 source /etc/profile 檢查 mvn --version
5、docker環境搭建
卸載舊版本 yum remove docker docker-client docker-client-latest docker-common docker-latest docker-latest-logrotate docker-logrotate docker-engine 安裝依賴 yum install -y yum-utils device-mapper-persistent-data lvm2 設置穩定的倉庫 yum-config-manager --add-repo https://download.docker.com/linux/centos/docker-ce.repo 安裝 Docker Engine-Community yum install docker-ce docker-ce-cli containerd.io 如果要安裝特定版本,使用如下命令查詢后安裝 yum list docker-ce --showduplicates | sort -r yum install docker-ce-<VERSION_STRING> docker-ce-cli-<VERSION_STRING> containerd.io 啟動Docker systemctl start docker 查看Docker版本 docker version
設置加速鏡像 在/etc/docker/daemon.json 中寫入如下內容(如果文件不存在請新建該文件) 騰訊雲:https://mirror.ccs.tencentyun.com 阿里雲:https://svaken38.mirror.aliyuncs.com 網易雲:http://hub-mirror.c.163.com { "registry-mirrors": ["https://svaken38.mirror.aliyuncs.com"] } sudo systemctl daemon-reload sudo systemctl restart docker
6、docker-compose環境搭建
方法一: 下載解壓 curl -L https://github.com/docker/compose/releases/download/1.26.2/docker-compose-`uname -s`-`uname -m` -o /usr/local/bin/docker-compose 賦予權限 chmod +x /usr/local/bin/docker-compose 查看版本 docker-compose version 方法二:若是github訪問太慢,可以用daocloud下載 curl -L https://get.daocloud.io/docker/compose/releases/download/1.26.2/docker-compose-`uname -s`-`uname -m` -o /usr/local/bin/docker-compose 賦予權限 chmod +x /usr/local/bin/docker-compose 查看版本 docker-compose version 方法三: 如果上面方法下載慢,可以直接在github下載最新版本,更名、解壓到/user/local/bin/下面並賦予權限 https://github.com/docker/compose/releases
安裝fabric
1、下載源碼
fabric需要go來編譯,所以放到go工作目錄下 mkdir -p ~/go/src/github.com/hyperledger cd ~/go/src/github.com/hyperledger git clone https://github.com/hyperledger/fabric.git 上述github地址下載太慢,可以嘗試下面碼雲上這個地址 https://gitee.com/luxiaojun0605/fabric.git
2、利用源碼中腳本文件下載鏡像等配置文件
下載完成后會得到一個fabric文件夾,進入fabric/scripts目錄可以看到一個bootstrap.sh腳本,直接執行bootstrap.sh腳本,就會自動進行fabric相關文件和鏡像的下載
因涉及到github上面下載包,所以此過程會很漫長,為了節省時間,我們可以拆分腳本中內容分別下載
這里下載的瓶頸主要是pullBinaries二進制文件,所以我們先把他注釋后運行bootstrap.sh腳本文件進行fabric-samples文件夾的下載和鏡像文件的拉取
注釋掉#pullBinaries以后執行bootstrap.sh文件(下載fabric-samples和docker鏡像) ./bootstrap.sh
運行最后為下載的fabric鏡像
下載的fabric-samples會在scripts文件夾下,咱們把他放到上一級目錄方便操作
mv fabric-samples ../ /root/go/src/github.com/hyperledger/fabric/fabric-samples
3、下載二進制文件
其中二進制文件在瀏覽器中下載更快一點(不同版本fabric,對應下載的二進制包版本不同),如果不能確定下載二進制文件的版本,可以通過注釋#cloneSamplesRepo和#pullDockerImages
只保留pullBinaries,然后運行./bootstrap.sh就能看到需要下載的二進制文件的版本以及下載路徑(兩個二進制文件,執行完第一次./bootstrop.sh以后需要注釋掉第一個二進制文件的下載路徑
然后再執行一次./bootstrop.sh)
把下載的倆個二進制文件傳到fabric-samples文件夾下解壓得到bin文件夾,其中包含有二進制文件
運行fabric
1、修改配置
1>修改啟動文件中的配置項,修改CC_SRC_LANGUAGE為java(默認為go安裝鏈碼)
2>如果CC_SRC_LANGUAGE為go語言的話,需要設置go env -w GOPROXY=https://goproxy.cn,direct
3>需要移除test文件夾,這是一個代碼校驗的文件(/root/go/src/github.com/hyperledger/fabric/fabric-samples/chaincode/fabcar/java/src)
2、替換自定義鏈碼
位置:/root/go/src/github.com/hyperledger/fabric/fabric-samples/chaincode/fabcar/java/src/main/java/org/hyperledger/fabric/samples/fabcar