超级账本fabric区块链在鲲鹏服务器上的部署
【摘要】 超级账本Hyperledger Fabric v1.4.2区块链在鲲鹏服务器上的部署。目前fabric还不支持arm64v8的prebuild,所以只能自己build。
#基础环境
CentOS7 arm64尝试部署不成功。故操作系统为Ubuntu18.04 arm64。
安装依赖
#docker 安装 sudo apt-get update && sudo apt-get upgrade -y #都选yes,和install local apt-get install vim gcc git curl -y apt-get install python-pip -y apt install docker.io -y docker -v apt-get install docker-compose -y docker-compose -v sudo vi /etc/docker/daemon.json systemctl daemon-reload systemctl restart docker #安装go wget https://dl.google.com/go/go1.13.5.linux-arm64.tar.gz tar -C /usr/local -xzf go1.13.5.linux-arm64.tar.gz sudo vi ~/.profile export PATH=$PATH:/usr/local/go/bin export GOROOT=/usr/local/go export GOPATH=$HOME/go export PATH=$PATH:$GOPATH/bin source ~/.profile cp /usr/local/go/bin/go /usr/bin/go go version #安装编译工具 apt install protobuf-compiler -y go get -u github.com/golang/protobuf/protoc-gen-go apt-get install libc6-dev libltdl3-dev python-setuptools -y #安装node apt-get install nodejs npm -y node -v npm -v
#编译源码
mkdir -p $GOPATH/src/github.com/hyperledger/ cd $GOPATH/src/github.com/hyperledger/ git clone -b v1.4.2 https://github.com/hyperledger/fabric.git #或者解压提前准备好的该版本压缩包 tar xvf fabric.tar #编译基础镜像 git clone -b v0.4.15 https://github.com/hyperledger/fabric-baseimages.git cd fabric-baseimage/ git checkout -b v0.4.15 vi Makefile #新增 DOCKER_BASE_arm64=aarch64/ubuntu:xenial
#修改images/couchdb/Dockerfile.in文件,在112行处增加如下内容。 && chmod +w bin/rebar \ && mv bin/rebar bin/rebar-orig \ && cd bin \ && curl -fSL https://github.com/rebar/rebar/wiki/rebar --output rebar \ && chmod +x rebar \ && cd .. \
修改scripts/common/setup.sh文件,在73行处做如下修改: 注释掉 NODE_PKG=node-v$NODE_VER-linux-$ARCH.tar.gz 添加 NODE_PKG=node-v$NODE_VER-linux-arm64.tar.gz
修改后执行make,预计很久。。失败了就再次make
make
查看镜像
docker images
#编译fabric其他镜像 cd .. cd fabric vi Makefile 修改Makefile文件,在114行处做如下修改。 all: native docker checks改为 all: native docker #checks go get github.com/golang/protobuf/protoc-gen-go cd $GOPATH/src/github.com/golang/protobuf/ make all cd $GOPATH/src/github.com/hyperledger/fabric cp $GOPATH/bin/protoc-gen-go build/docker/gotools/bin/ cp $GOPATH/bin/protoc-gen-go .build/docker/gotools/bin/ make
再次查看镜像
二进制文件编译
#修改Makefile文件 在100行最右添加 linux-arm64 #在350行后添加如下内容。 release/linux-arm64: GOARCH=arm64 release/linux-arm64: $(patsubst %,release/linux-arm64/bin/%, $(RELEASE_PKGS))
make release
cp release/linux-arm64/bin/* /root/go/bin/
编译fabric-ca
cd $GOPATH/src/github.com/hyperledger/ git clone -b v1.4.2 https://github.com/hyperledger/fabric-ca.git cd fabric-ca #修改Makefile文件,在75行处做如下修改。 -all: rename docker unit-tests +all: rename docker #unit-tests
make #再次查看镜像是否编译成功 docker images
测试fabric-samples
cd $GOPATH/src/github.com/hyperledger/ git clone -b v1.4.2 https://github.com/hyperledger/fabric-samples.git cd $GOPATH/src/github.com/hyperledger/fabric-samples/first-network/ ./byfn.sh generate ./byfn.sh up
看到如下界面即为成功
可能遇到的问题
SDK-java无法成功运行
如果是openjdk需要更换成oracle-java
【版权声明】本文为华为云社区用户原创内容,未经允许不得转载,如需转载请自行联系原作者进行授权。如果您发现本社区中有涉嫌抄袭的内容,欢迎发送邮件进行举报,并提供相关证据,一经查实,本社区将立刻删除涉嫌侵权内容,举报邮箱:
cloudbbs@huaweicloud.com
- 点赞
- 收藏
- 关注作者
评论(0)