超级账本fabric区块链在鲲鹏服务器上的部署

举报
中电福富 发表于 2020/07/03 10:16:53 2020/07/03
【摘要】 超级账本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

image.png


#修改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 .. \

image.png


修改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

image.png


#编译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

再次查看镜像

image.png


二进制文件编译

#修改Makefile文件  在100行最右添加
linux-arm64
#在350行后添加如下内容。
release/linux-arm64: GOARCH=arm64
release/linux-arm64: $(patsubst %,release/linux-arm64/bin/%, $(RELEASE_PKGS))

image.png


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

image.png

make

#再次查看镜像是否编译成功
docker images

image.png


测试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

看到如下界面即为成功

image.png


可能遇到的问题


SDK-java无法成功运行

如果是openjdk需要更换成oracle-java


【版权声明】本文为华为云社区用户原创内容,未经允许不得转载,如需转载请自行联系原作者进行授权。如果您发现本社区中有涉嫌抄袭的内容,欢迎发送邮件进行举报,并提供相关证据,一经查实,本社区将立刻删除涉嫌侵权内容,举报邮箱: cloudbbs@huaweicloud.com
  • 点赞
  • 收藏
  • 关注作者

评论(0

0/1000
抱歉,系统识别当前为高风险访问,暂不支持该操作

全部回复

上滑加载中

设置昵称

在此一键设置昵称,即可参与社区互动!

*长度不超过10个汉字或20个英文字符,设置后3个月内不可修改。

*长度不超过10个汉字或20个英文字符,设置后3个月内不可修改。