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 install –y  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 –v   #查询版本

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
技术分享

 

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

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

docker-compose build

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

技术分享

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

docker-compose up

3)查看容器:

docker ps

技术分享

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

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

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

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

cat results.txt

技术分享

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

ls -ltr myc1.block

技术分享

 

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

1)创建案例程序目录

mkdir –p test

cd pest

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

curl -OOOOOO https://raw.githubusercontent.com/hyperledger/fabric-sdk-node/master/examples/balance-transfer/{config.json,deploy.js,helper.js,invoke.js,query.js,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插件安装

技术分享

重启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"]}‘

技术分享

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", "a", "b", "10"]}‘

技术分享

e)query(查询)

CLI方式

CORE_SECURITY_ENABLED=true CORE_SECURITY_PRIVACY=true peer chaincode query –u 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"]}‘

文章来自:http://newthink.blog.51cto.com/872263/1900328
© 2021 jiaocheng.bubufx.com  联系我们
ICP备案:鲁ICP备09046678号-3