Hyperledger fabric 1.4 + 树莓派 环境搭建

镜像下载

必须要安装64位系统,系统下载地址https://github.com/chainsx/cxcore 

初始用户:ubuntu,密码:ubuntu。登录系统后通过命令sudo passwd设置root用户密码。

 

相关工具安装

apt 更新

sudo apt-get update && sudo apt-get upgrade -y

 

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

本系统是已经安装好的,如需安装请执行

Apt-get install vim

apt-get install gcc

apt-get install git

apt-get install curl

安装python

apt-get install python-pip

安装docker

apt-get install docker

apt-get install docker-compose

 

 

添加阿里云docker hub镜像,执行

sudo vi /etc/docker/daemon.json

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

{

"registry-mirrors": ["https://obou6wyb.mirror.aliyuncs.com"]

}

执行以下命令,若不报错则添加成功,并重启docker

systemctl daemon-reload

systemctl restart docker

 

 安装go

执行以下命令,下载go压缩包。

curl -o -sSL https://storage.googleapis.com/golang/go1.12.7.linux-arm64.tar.gz

mv /root/-sSL go.tar.gz

tar -C /usr/local -xzf go.tar.gz

 

将go添加到环境变量中,并设置GOPATH。

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

建立go工作目录,并查看go是否安装成功

安装 protobuf

安装 protobuf服务,后面编译镜像的时候没有这个会报错

apt  install protobuf-compiler

安装protoc-gen-go

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

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

 

安装一些依赖库

apt-get install libc6-dev libltdl3-dev python-setuptools

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

安装Node.js

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

apt-get install nodejs

apt-get install npm

Fabric环境搭建

编译前准备

增加内存交互空间,树莓派RAM只有1G,编译会报内存不足的错误。

apt install build-essential

dd if=/dev/zero of=/swapfile count=2048 bs=1M

chmod 600 /swapfile

mkswap /swapfile

swapon /swapfile

设置开机自动启动

vi /etc/fstab

在最后添加以下内容

/swapfile   none    swap    sw    0   0

 

源码下载

新建源码工程目录,执行

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

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

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

下载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镜像编译

cd fabric-baseimage

修改Makeflie文件,在41行出增加一行, 

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

 fabric源码编译

cd fabric

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

-all: native docker checks

+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的二进制文件

修改makefile文件

在64行最后添加 linux-arm64 

-RELEASE_PLATFORMS = linux-amd64 darwin-amd64 linux-ppc64le linux-s390x windows-amd64

+RELEASE_PLATFORMS = linux-amd64 darwin-amd64 linux-ppc64le linux-s390x windows-amd64 linux-arm64

在72行左右做如下修改。

-all: rename docker unit-tests

+all: rename docker #unit-tests

 

在262行左右添加如下内容

+release/linux-arm64: GOARCH=arm64

+release/linux-arm64: GO_TAGS+= caclient

+release/linux-arm64: $(patsubst %,release/linux-arm64/bin/%, $(RELEASE_PKGS))

+release/%/bin/fabric-ca-client: $(GO_SOURCE) @echo "Building $@ for $(GOOS)-$(GOARCH)" mkdir -p $(@D)

在281行左右添加如下内容。

@@ -281,6 +285,8 @@ dist/linux-ppc64le:

        cd release/linux-ppc64le && tar -czvf hyperledger-fabric-ca-linux-ppc64le.$(PROJECT_VERSION).tar.gz *

 dist/linux-s390x:

        cd release/linux-s390x && tar -czvf hyperledger-fabric-ca-linux-s390x.$(PROJECT_VERSION).tar.gz *

+dist/linux-arm64:

+       cd release/linux-arm64 && tar -czvf hyperledger-fabric-ca-linux-arm64.$(PROJECT_VERSION).tar.gz *

在301左右处添加。

+       -@rm -rf release/linux-arm64/hyperledger-fabric-ca-linux-arm64.$(PROJECT_VERSION).tar.gz ||:

执行

make fabric-ca-server

make fabric-ca-client

 

结果测试

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

./byfn.sh up

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

 

 

 

  • 2
    点赞
  • 13
    收藏
    觉得还不错? 一键收藏
  • 5
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 5
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值