hyperledger fabric-----1系统搭建

2017-11-08  本文已影响0人  y9g

hyperledger fabric是IBM的区块链项目,本文着重讲其技术实现,有不对的地方还希望各位指正。

fabric我从一个例子开始讲起,这样更有逻辑性,框架的层面后续会补充。



1.    fabric系统的搭建

1.1 安装go

到https://golang.org/doc/install网址去下载对应的go版本,我自己用的是1.8,其他没测过

安装完毕后设置GOPATH和GOROOT

export GOROOT=/usr/local/go

export GOPATH=/opt/gopath

1.2. 安装git

如果需要进行源码编译的,那么需要下载git,因为fabric更新非常快,需要实时跟进他的代码,所以最好是安装git去同步

git的安装可以到https://git-scm.com/book/en/v2/Getting-Started-Installing-Git网址

1.3. 下载源代码

安装完毕后,可以到fabric官网或者我们自己的git去下载源代码

fabric官方源码是https://github.com/hyperledger/fabric

创建文件夹 mkdir -P /opt/gopath/src/github.com/hyperledger/

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

1.4. 下载docker并启动

智能合约是通过docker来进行包装的,所以需要运行docker环境。

不同的系统需要下载不同的docker,这里仅做参考,具体请到docker官网查看

安装docker,运行下面命令

apt-get install -y linux-image-extra-$(uname -r) apparmor docker-engine

安装 docker-compose,这个docker-compose也需要安装下,也许某天通过他来启动n个peer

curl -L https://github.com/docker/compose/releases/download/1.8.1/docker-compose-`uname -s`-`uname -m` > /usr/local/bin/docker-compose

chmod +x /usr/local/bin/docker-compose

配置docker,运行下面命令

DOCKER_OPTS="-s=${DOCKER_STORAGE_BACKEND_STRING} -r=true --api-cors-header='*' -H tcp://0.0.0.0:2375 -H unix:///var/run/docker.sock ${DOCKER_OPTS}"

sed -i.bak '/^DOCKER_OPTS=/{h;s|=.*|=\"'"${DOCKER_OPTS}"'\"|};${x;/^$/{s||DOCKER_OPTS=\"'"${DOCKER_OPTS}"'\"|;H};x}' /etc/default/docker

重启docker,运行下面命令

service docker restart

usermod -a -G docker ubuntu # Add ubuntu user to the docker group

1.5. 导入依赖的docker image

docker pull hyperledger/fabric-baseimage:x86_64-0.3.2

docker pull hyperledger/fabric-baseos:x86_64-0.3.2

1.6. 执行Makefile

请到$GOPATH/src/github.com/hyperledger/fabric目录下执行make all

编译完毕后运行docker images命令,可以得到fabric的相关镜像

$GOPATH/src/github.com/hyperledger/fabric/build/bin下的可执行文件如下:

chaintool  configtxgen  configtxlator  cryptogen  orderer  peer

1.7. 运行example

请到$GOPATH/src/github.com/hyperledger/fabric/examples/e2e_cli目录下,先生成对应的msp目录

运行./generateArtifacts.sh

再执行./network_setup.sh up 

就可以看到节点的启动,智能合约的部署,交易及查询了

1.8. 可能遇到的问题

A.在 mac os 下出现如下错误:

Error processing tar file(bzip2 data invalid: bad magic value in continuation file):

解决办法 ,更新gnu-tar

brew install gnu-tar --with-default-names

B. 在 mac os 下出现'ltdl.h' file not found错误

brew install libtool openssl

上一篇下一篇

猜你喜欢

热点阅读