首页 > 其他 > 详细

区块链环境搭建 基于arm-v8 CPU架构的服务器

时间:2020-01-17 20:05:02      阅读:437      评论:0      收藏:0      [点我收藏+]

服务器信息:

  cpu:华为鲲鹏

  cpu架构:arm v8

  系统:CenOS-AltArch 7.6

 技术分享图片

 

 

相关工具安装

  yum更新

yum update

  安装vim/gcc/git/curl工具软件

yum install vim
 
yum install gcc
 
yum install git
 
yum install curl

  安装pip、python-pip

    这一步根据实际提示去操作,步奏省略。博主升级了python版本到3.7 ,安装了pip3、python-pip...

    可能需要升级openssl,升级openssl可以参照这篇文章:http://www.manongjc.com/detail/14-hnvvaaujxafjzbv.html

  注意:升级python之后,使用pip指令可能报错:https协议不支持,解决如下:

 技术分享图片

 

 

  安装docker及docker-compose

    docker安装:

    yum安装跟x86平台安装一样,步奏省略...

    博主的docker安装的是最新稳定版:19.03.5

技术分享图片

 

 

  docker安装完成后,添加阿里云docker hub镜像 ,执行:

    sudo vi /etc/docker/daemon.json

  将以下内容添加到daemon.json中:

    {
      "registry-mirrors": ["https://obou6wyb.mirror.aliyuncs.com"]
    }
  执行以下命令,若不报错则添加成功,并重启docker

    systemctl daemon-reload
    systemctl restart docker

  加入开机启动:

systemctl start docker
systemctl enable docker

  

    docker-compose安装:

安装:pip install docker-compose
版本查看:docker-compose version

技术分享图片

 

 

 

  安装go

  注意:需要先找到自己CPU架构对应的go版本

  go对应版本查看:https://studygolang.com/dl

  博主安装的版本

技术分享图片

 

 

# 下载go1.13.6.linux-arm64.tar.gz并将其解压到指定目录(此处为/usr/local)

wget https://studygolang.com/dl/golang/go1.13.6.linux-arm64.tar.gz
tar xzvf go1.13.6.linux-arm64.tar.gz -C /usr/local

#修改系统环境变量

vi /etc/profile

打开文件后在最后面添加:

技术分享图片

 

 

# 使环境变量生效

source  /etc/profile

验证:go version

  安装 protobuf

  下载https://github.com/google/protobuf/releases ##Source code (zip)##

  ./autogen.sh

  ./configure

  make

  make check

  make install

  

#安装protobuf-compiler

  yum install protobuf-compiler

  go get -u github.com/golang/protobuf/protoc-gen-go

命令执行后会在$GOPATH/bin目录下发现这个工具

  安装一些依赖库

    yum install libc6-dev libltdl3-dev python-setuptools

 

至此一切准备工作就绪,下面将进行与fabric相关的开发工作。

 

 

  安装Node.js

  Node.js为选装内容,为支持Node.js的 SDK做准备。

  1. yum install nodejs
  2. yum install npm

 

Fabric环境搭建

  源码下载

    新建源码工程目录,执行

      mkdir -p $GOPATH/src/github.com/hyperledger/
    进入hyperledger目录,通过git clone fabric源代码,下载速度较慢,根据网络情况该部分代码需要下载一个小时左右。

      cd $GOPATH/src/github.com/hyperledger/
      git clone https://github.com/hyperledger/fabric.git

      注意:完成之后需要切换tag:具体操作百度自行切换,博主选择的tag是   v0.4.13

技术分享图片

 

 

    下载fabric 项目源码(fabric-samples) 

      git clone https://github.com/hyperledger/fabric-samples.git

      注意:完成之后需要切换稳定版的分支:git checkout -b sample v1.4.0
    下载docker base image镜像源码

      git clone https://github.com/hyperledger/fabric-baseimage.git
    下载fabric ca源代码

      git clone https://github.com/hyperledger/fabric-ca.git

源码编译

由于fabric官方不支持ARM内核的二进制文件以及docker镜像(docker pull 镜像失败),因此需要我们自己编译,以下内容为二进制文件和镜像编译过程,其中涉及文件修改的部分,请对照git diff截图根据上下文查看具体位置,标准行号可能会有出入。

 docker base image镜像编译

  1、cd fabric-baseimage
  2、修改Makeflie文件,在41行出增加一行:DOCKER_BASE_arm64=aarch64/ubuntu:xenial

技术分享图片

  3、修改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 .. \
技术分享图片

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

技术分享图片

 

   5、执行 make 编译docker镜像,时间较长,大约6-8个小时,中间可能会因为网络原因中断,再次执行make即可。编译成功执行docker images 查看是否编译成功。

技术分享图片

 

 

 fabric源码编译

cd fabric

修改Makefile文件,在114行处做如下修改。 

  1. #all: native docker checks
  2. all: native docker #checks

 技术分享图片

 

 执行make,大约需要1-2个小时,编译成功执行docker images 查看是否编译成功。

技术分享图片

 

 

二进制文件编译

  修改Makefile文件

  在100行最右添加:linux-arm64

 

  在350行后添加如下内容:

    release/linux-arm64: GOARCH=arm64
    release/linux-arm64: $(patsubst %,release/linux-arm64/bin/%, $(RELEASE_PKGS))
技术分享图片

 

 

执行 make release

成功之后会在release/linux-arm64/bin目录下生成二进制文件,然后把这些二进制文件拷贝到gopath/bin目录下。

 

编译fabric-ca

修改Makefile文件,在75行处做如下修改。

all: rename docker unit-tests
all: rename docker #unit-tests
技术分享图片

 

 执行make,编译成功后执行docker images 命令查看编译是否成功。

技术分享图片

 

 

编译fabric-ca的二进制文件

  这一步,博主没有操作,因为没用到fabric-ca工具,省略

结果测试

进入项目代码目录/fabric-samples/first-network,执行。

./byfn.sh up

出现以下结果,证明安装成功。

 技术分享图片

 技术分享图片

 

 

  重要采坑点:

  问题一:fabric目录下执行make指令,可能会抛出找不到某个指定的docker镜像异常

     解决:vi   Makefile

 

     在下图位置修改成跟docker镜像相同的TAG

技术分享图片

 

 技术分享图片

 

 

  问题二:在fabric目录下执行二进制编译命令:make release时,会抛出如下异常

  解决办法如下:

技术分享图片

区块链环境搭建 基于arm-v8 CPU架构的服务器

原文:https://www.cnblogs.com/Soy-technology/p/12206813.html

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!