您的位置:首页 > 运维架构 > Docker

区块链hyperledger fabric 环境搭建 centos7 docker环境

2017-03-03 09:22 796 查看
运行环境Centos7 64位

 

1.       centos docker 安装

yum -y install docker-io

 

2.       启动docker服务

启动:service docker start

开机自启动:chkconfig docker on

查看docker版本:docker version

 

3. .安装容器Compose:

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

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

 

查看版本号,如果安装成功会显示版本信息:

docker-compose version

 

 

4.docker pull

mkdir /opt/fabric

cd /opt/fabric/

docker pullyeasy/hyperledger-fabric:0.6-dp    #拉取镜像 

docker tag yeasy/hyperledger-fabric:0.6-dphyperledger/fabric-peer:latest   #给镜像加标记 

docker tag yeasy/hyperledger-fabric:0.6-dp hyperledger/fabric-baseimage:latest 

docker tag yeasy/hyperledger-fabric:0.6-dp hyperledger/fabric-membersrvc:latest

 

在工作目录下创建
docker-compose.yml


内容如下:

membersrvc:

  image: hyperledger/fabric-membersrvc

  ports:

    - "7054:7054"

  command: membersrvc

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

  links:

    - membersrvc

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

运行compose镜像


docker-compose up -d

 


查看运行的镜像

docker ps

 

进入docker

docker-compose exec  dockername bash


peer chaincode deploy -p github.com/hyperledger/fabric/examples/chaincode/go/chaincode_example02 -c '{"Function":"init", "Args": ["a","100", "b", "200"]}'

(参数注释 -p:指定chaincode源码路径;-c:要执行的JSON格式shaincode代码)


如下图红框中返回了chaincode的名称hash值,就表示区域链已经建立成功了!下面可以通过CLI或POST方式进行测试与验证。



编译代码cd $GOPATH/src/github.com/hyperledger/fabric/examples/chaincode/gocp 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”字样,代表成功。




 

 

 

 

区块链测试:

我用的是火狐浏览器安装的restclient插件

1.     登录

post http://192.168.0.79:7050/registrar



"enrollId": "jim", 

"enrollSecret": "6avZQLwcUe9b" 

}

 

2.     deploy(部署)

post http://192.168.0.79:7050/chaincode
{

"jsonrpc": "2.0",

"method": "deploy",

"params": {

"type": 1,

"chaincodeID":{

"name":" mycc"

},

"ctorMsg": {

"function":"init",

"args":["a", "1000","b", "2000"]

},

"secureContext": "jim"

},

"id": 1

}

3.     Invoke(调用)

post http://192.168.0.79:7050/chaincode
{

  "jsonrpc": "2.0",

  "method": "invoke",

  "params": {

    "type": 1,

    "chaincodeID": {

      "name": "mycc"

    },

    "ctorMsg": {

      "function": "invoke",

      "args": [

        "a",

        "b",

        "100"

      ]

    },

    "secureContext": "jim"

  },

  "id": 3

}

区域信息查询

Rest方式(GET HOST:7050/chain/blocks/1):

HOST:7050/chain/blocks/0  是创世区块

HOST:7050/chain/blocks/1  第一个区块,是depoy部署时建立的

HOST:7050/chain/blocks/2  第二个区块,是invoke调用交易时建立的

 

在镜像内退出到外面而不关闭镜像:
ctrl+p+q

关闭docker

docker stop dockername

 

注意:如果以上操作出现莫名其妙的问题,先采用简单粗暴的方法重启宿主机,如果不能解决,在想其他办法。
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签:  hyperledger fabric