HyperLedger-fabric V0.6 for CentOS7.2环境搭建

BlockChain联盟链中的Hyperledger项目中的Fabrica项目是商业联盟应用区块链的基石之作,现在来搭建一个运行环境,进行技术验证。

安装组件如下:

1.Docker-compose:Docker 容器管理;    
2.Go lang SDK:Go 语言开发、编译环境;    
3.Git:git 镜像克隆与提交;    
4.Rest Client: rest API 测试;    
容器主要运行有:MemberSrv 和Peer;

一、HyperLedger Fabric环境资源准备

1、docker的安装

a)检查版本

$ uname –r

3.10.0-229.el7.x86_64

b)更新Centos

$ sudo yum update

c)安装需要软件

yum install –y  docker

d)把服务设备成开机启动并启动服务

systemctl enable docker.service

systemctl start docker

e)验证 docker正确安装(通过运行一个测试镜像,当容器运行时,它打印一个信息性消息并退出。)

docker run hello-world

2、Docker Compose安装

Compose 定位是 “定义和运行多个 Docker 容器的应用”,可以很方便的从官方拉下来一些镜像,在此基础上再进行改造。它允许用户通过一个单独的 dockercompose.yml 模板文件(YAML 格式)来定义一组相关联的应用容器为一个项目(project)。

a).安装容器Compose(使用官方提供的方法,安装1.10.1版本):

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

docker-compose version

b).从 DockerHub上拉取镜像

mkdir /opt/fabric

cd /opt/fabric/

docker pull hyperledger/fabric-peer:latest  #拉取peer的镜像

docker pull hyperledger/fabric-membersrvc:latest   #拉取memberserver的镜像

docker images     #确认镜像拉取成功

c).在新建的/opt/fabric目录下建立Docker-compose.yml文件

vim  docker-compose.yml

内容如下:

#定义第一台虚拟机名称为membersrvc

membersrvc:

#指定镜像
 
  image: hyperledger/fabric-membersrvc

#暴露端口信息,  使用宿主:容器 格式,

ports:
 
    - "7054:7054"

##覆盖容器启动后默认执行的命令

command: membersrvc
 
#定义第二台虚拟机名称为vp0

vp0:
 
  image: hyperledger/fabric-peer

ports:

- "7050:7050"

- "7051:7051"

- "7053:7053"

#设置环境变量

environment:
 
    - CORE_PEER_ADDRESSAUTODETECT=true

- CORE_VM_ENDPOINT=unix:///var/run/docker.sock

- CORE_LOGGING_LEVEL=DEBUG

- CORE_PEER_ID=vp0

- CORE_PEER_PKI_ECA_PADDR=membersrvc:7054

- CORE_PEER_PKI_TCA_PADDR=membersrvc:7054

- CORE_PEER_PKI_TLSCA_PADDR=membersrvc:7054

- CORE_SECURITY_ENABLED=true

- CORE_SECURITY_ENROLLID=test_vp0

- CORE_SECURITY_ENROLLSECRET=MwYpmSRjupbT

#数据卷所挂载路径设置。可以设置宿主机路径( HOST:CONTAINER ),该指令中路径支持相对路径

volumes:
 
      - /var/run/:/var/run/

#链接到其它服务中的容器

links:
 
    - membersrvc

#覆盖容器启动后默认执行的命令
 
  command:

sh -c "sleep 5; peer node start --peer-chaincodedev"

d)运行docker-compose up 命令启动2个容器(MemberServer和Peer.到此,我们可以具备启动和运行chaincode,并进行权限管理的Fabric(虽然只有一个Peer)):

docker-compose up –d  #在后台运行容器

直到启动日志显示如下内容,说明启动成功:

使用Ctrl+z停止当前日志的显示后,运行docker-compose ps 可以看到服务和对应的端口映射:

可以做些常用操作:

docker-compose logs -f vp0      #查看vp0的日志

docker-compose exec vp0 bash       #进入到vp0执行它的bash,exit命令可以退出,Ctrl+z退出而不停止容器。

docker-compose exec membersrvc bash   #进入到membersrvc执行它的bash,exit命令可以退出。

3、运行与发布Chaincode

a)进入vp0的bash,运行如下命令

docker-compose exec vp0 bash

cd $GOPATH/src/github.com/hyperledger/fabric/examples/chaincode/go

cp chaincode_example02/chaincode_example02.go $GOPATH/src/    #复制目录里面的例2到$GOPATH/src/ 进行编译

cd $GOPATH/src/

go build ./chaincode_example02.go     #编译成功会在GOPATH/src目录生成chaincode_example02文件

(chaincode_example02.go 源码链接https://raw.githubusercontent.com/hyperledger/fabric/master/examples/chaincode/go/chaincode_example02/chaincode_example02.go

b)发布chaincode在GOPATH/src 下运行

CORE_CHAINCODE_ID_NAME=mycc CORE_PEER_ADDRESS=0.0.0.0:7051 ./chaincode_example02

直至出现“Received REGISTERED”字样,代表成功。

使用exit命令或Ctrl+z退出终端。

4、firefox中安装POST接口测试工具:

在firefox的附加组件中下载Restclient插件安装

重启firefox后,打开RESTClient,进行POST测试

5、系统环境测试:deploy(部署),invoke(调用),query(查询) chaincode(智能合约)(vp0中peer的用户名和密码在 membersrvc.yaml 文件里为jim: 6avZQLwcUe9b)

已经建成的环境架构,目前Farbric Peer只有一个vp0

a)进入vp0容器

docker-compose exec vp0 bash

b)login

CLI方式

peer network login jim

输入密码:6avZQLwcUe9b

Rest方式(在Body中放入如下代码):

{
 
"enrollId": "jim",

"enrollSecret": "6avZQLwcUe9b"

}

返回用户已登录。

c)deploy(部署)

CLI方式

CORE_SECURITY_ENABLED=true CORE_SECURITY_PRIVACY=true peer chaincode deploy -u jim -n mycc -c ‘{"Args": ["init", "a","100", "b", "200"]}‘

d)Invoke(调用)

CLI方式

CORE_SECURITY_ENABLED=true CORE_SECURITY_PRIVACY=true peer chaincode invoke -u jim -l golang -n mycc -c ‘{"Args": ["invoke", "a", "b", "10"]}‘

e)query(查询)

CLI方式

CORE_SECURITY_ENABLED=true CORE_SECURITY_PRIVACY=true peer chaincode query -u jim -l golang -n mycc -c ‘{"Function": "query", "Args": ["b"]}‘

后记:Fabric V0.6和V1.0的架构完全不一样,也就是说在V0.6环境下开发的应用,没法在V1.0上运行,V0.6注定是一个过渡版本,期待V1.0在2017-3月能正式发布。

时间: 2024-10-02 08:46:07

HyperLedger-fabric V0.6 for CentOS7.2环境搭建的相关文章

(一)Hyperledger Fabric 1.1安装部署-基础环境搭建

在学习和开发hyperledger fabric的时候遇到了一些坑,现将自己的一些总结和心得整理如下,以期对大家有所帮助.本次使用的宿主机环境:ubuntu,版本:Ubuntu 16.04.3 LTS.运行hyperledger fabric,建议至少4GB的内存. 更改aptget源:初装ubuntu的Aptget源很慢,国内提供的源有很多,可以找一个适合自己的,我采用的是阿里的源.更改aptget阿里源的方法:1 复制原文件备份 sudo cp /etc/apt/sources.list /

Hyperledger Fabric V1.0 for Centos7.2 开发环境搭建

区块链技术大有可为, 安装组件如下: 1.Docker-compose:Docker 容器管理: 2.Go lang SDK:Go 语言开发.编译环境: 3.Git:git 镜像克隆与提交: 4.Rest Client: rest API 测试: 容器主要运行有:MemberSrv 和Peer; 一.HyperLedger Fabric环境准备 a)检查版本 $ uname –r 3.10.0-229.el7.x86_64 b)更新Centos yum update c)安装需要软件 yum i

Centos6.5和Centos7 php环境搭建如何实现呢

首先我们先查看下centos的版本信息 代码如下: #适用于所有的linux lsb_release -a#或者cat /etc/redhat-release#又或者rpm -q centos-release 以上三种任意一种均可查看centos的版本信息. 这里我们分别在centos6.5和centos7上进行安装,安装过程中也仅仅是部分linux命令不同而已,为了方便起见,采用yum的方式进行安装,当然,如此一来安装的软件版本可能就会因为yum源的问题而不同,如果你想安装指定版本,我们后面也

Centos7 ftp环境搭建

没玩过linux,折腾了半天的ftp,好不容易亲测通过了.不容易啊. 操作环境:vm虚拟机 centos7 首先:搞定网络问题:默认情况下使用ifconfig可以看到虚拟机下是无网络的.(注:虚拟机网络设置为NAT或桥接模式都是可以的) 输入命令nmtui 打开网络配置 回车->回车 将倒数第二项 Automatically connect 勾上 然后就有网络了 然后更新系统:yum update 查看vsftpd是否已安装:vsftpd -v  (默认都是没安装的) 安装vsftpd:yum

ASp.NET Core Centos7运行环境搭建

在CentOS 7中运行搭建ASp.NET Core运行环境 1.环境 这里演示的环境是CentOS7,64bit 2.安装.NET Core SDK sudo yum update mkdir dn_cli cd dn_clisudo yum install libunwind libicu sudo yum install libunwind libicu wget https://dotnetcli.blob.core.windows.net/dotnet/beta/Binaries/La

【Linux】Linux服务器(centos7)环境搭建java/python3/nginx

1. 用的服务器是阿里云服务器,系统是CentOS7,远程连接工具是 Xshell 和 Xftp 2. 搭建java环境,我用的是jdk1.8 需要 jdk-8u181-linux-x64.tar.gz,在自己电脑上下载,然后用Xftp传到服务器上,保存在usr/local文件夹下,解压.我试过用wget下载,不知道为什么解压的时候提示文件损坏. cd usr/local tar -zxvf jdk-8u181-linux-x64.tar.gz 添加环境变量 vim /etc/profile 在

CentOS7开发环境搭建

BIOS开启VT支持 查询笔记本进入BIOS的按键,启动BIOS的虚拟化设置 假设安装360卫士,那么请永久关闭Intel-VT核晶防护引擎 CentOS DNS配置 Linux 下设置DNS位置有3处,其生效顺序例如以下: /etc/hosts 网卡配置文件DNSserver地址 /etc/resolv.conf 通过设置主机表地址进行特定主机的解析,优先DNSserver地址,/etc/hosts: 127.0.0.1 localhost localhost.localdomain loca

linux之CentOS-7.0环境搭建

此文作为新手安装centos-7的图文教程.  一.  前言 最近,师兄要进行实验室架构搭建,需要学习docker.而docker是完全依赖于linux系统的.所以,有了这篇文章. linux有很多发行版本,如最著名的RedHat,Ubuntu,centos,Gentoo等.Ubuntu的桌面系统相比其他的好看,而作为服务器使用当然首先RedHat,但其是商用版.所以选择了CentOs. 二. centos简介 CentOS(Community Enterprise Operating Syst

CentOS7 mysql 环境搭建

一. 安装 1.yum install mariadb-server -y   // 在线安装数据库 2.systemctl start mariadb.service  // 启动数据库服务 3.systemctl enable mariadb.service  // 设置开机启动 二. 访问设置:关闭防火墙 systemctl stop firewalld.service #停止firewall systemctl disable firewalld.service #禁止firewall开