准备基础环境
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