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 �Cr

3.10.0-229.el7.x86_64

b)更新Centos

yum update

c)安装需要软件

yum install �Cy docker gcc gcc-c++

首先安装epel扩展源:

sudo yum -y install epel-release

然后安装python-pip

sudo yum -y install python-pip

pip install docker-compose

docker-compose �Cv #查询版本

yum -y install nodejs npm --enablerepo=epel #使用epel源安装nodejs及npm

验证npm安装:

npm install npm@latest

查看npm版本:

npm -v

二、下载源代码并创建Fabric网络

创建 Fabric 工程和项目目录

mkdir /opt/fabric

cd /opt/fabric/

下载并解压缩部署Fabric网络的相关组件 ,包括Docker Compose 脚本,通道创建/加入脚本,认证使用的加密要素等.

curl -L https://raw.githubusercontent.com/voodoo12345/polaris/master/fabpre.tar.gz -o fabpre.tar.gz 2> /dev/null; tar -xvf fabpre.tar.gz

image

三、使用Docker 创建Fabric网络 & 创建/加入通道(账本)

1)确保已经下载的docker-compose.yml文件中hyperledger/fabric-ccenv 镜像的标签是 latest,执行命令自动下载Docker镜像

docker-compose build

docker images #确认下载了三个镜像文件成功

image

2)按照docker-compose.yml文件创建Fabric网络,创建通道(正本),将Peer节点加入通道:

docker-compose up

3)查看容器:

docker ps

image

终端应该显示有6个独立运行的容器(3 个peer节点,1个 独立的 orderer,CLI 和 CA)

4)确保通道已成功创建,并且节点都成功加入:

docker exec -it cli sh #进入cli容器执行命令

5)查看通道创建/节点加入的结果:

cat results.txt

image

6)验证成功创建了创世块,执行如下命令:

ls -ltr myc1.block

image

四、下载演示程序和SDK 模块

1)创建案例程序目录

mkdir �Cp test

cd pest

下载用于部署、调用查询案例智能合约的 javascript 代码 ,同时,它也包含了node SDK 依赖的模块.

curl -OOOOOO https://raw.githubusercontent.com/hyperledger/fabric-sdk-node/master/examples/balance-transfer/{config.json,package.json}

安装node 模块:

npm install

现在已经拥有了全部Fabric网络运行需要的组件.

五、使用 node SDK 注册/登录一个用户并执行部署/调用/查询操作

1)注册/登录 & 部署智能合约 (Linux or OSX):

GOPATH=$PWD node deploy.js

2)执行一个调用操作. 从 “a” 转移一定资产到 “b”:

node invoke.js

3)查询键值 “b”:

node query.js

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

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

image_thumb5[1]

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

image_thumb6

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

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

image_thumb1

a)进入vp0容器

docker-compose exec vp0 bash

b)login

CLI方式

peer network login jim

输入密码:6avZQLwcUe9b

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

{
"enrollId": "jim",
"enrollSecret": "6avZQLwcUe9b"
}

image_thumb2

返回用户登录

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"]}'

image_thumb4

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

{
}

d)Invoke(调用

CLI方式

CORE_Security_ENABLED=true CORE_Security_PRIVACY=true peer chaincode invoke -u jim -l golang -n mycc -c '{"Args": ["invoke","10"]}'

image_thumb5

e)query(查询

CLI方式

CORE_Security_ENABLED=true CORE_Security_PRIVACY=true peer chaincode query �Cu jim -l golang -n mycc -c '{"Args": ["query","b"]}'

CORE_Security_ENABLED=true CORE_Security_PRIVACY=true peer chaincode query -u jim -l golang -n mycc -c '{"Function": "query","Args": ["b"]}'

相关文章

Centos下搭建性能监控Spotlight
CentOS 6.3下Strongswan搭建IPSec VPN
在CentOS6.5上安装Skype与QQ
阿里云基于centos6.5主机VPN配置
CentOS 6.3下配置multipah
CentOS安装、配置APR和tomcat-native