码迷,mamicode.com
首页 > 其他好文 > 详细

一、超级账本初体验

时间:2019-07-22 18:12:18      阅读:92      评论:0      收藏:0      [点我收藏+]

标签:用户   bootstrap   目录   环境安装   shel   symbol   ip配置   http   ror   

根据《深度探索区块链——Hyperledger技术与应用》的内容及实际操作进行摘要和记录。使用Ubuntu 16.04,下载Hyperledger Fabric 1.0进行学习。

1. 基本环境安装:Hyperledger Fabric 1.0依赖Docker执行智能合约,需要先安装Docker和Docker Compose的运行环境。

(1) Docker的安装和使用

     a) Ubuntu安装Docker

     方式一:终端输入  sudo apt-get install docker.io

     方式二:官方详解  https://docs.docker.com/install/linux/docker-ce/ubuntu/

     完成后可以使用docker -v查看版本信息。

     b) 用户加入到docker组

     sudo groupadd docker                       ##添加用户组

     sudo usermod -aG docker $USER     ##非root用户可以执行docker命令

     c) 重启Docker服务

    sudo service docker start

(2) Docker Compose的安装和使用

    使用通过pip进行安装

    sudo apt install python-pip

    sudo pip install docker-compose

    完成后可以使用docker-compose -v查看版本信息

    遇到问题:

    a) 要求升级pip   sudo pip install --upgrade pip

    b) 升级后执行pip命令报错:ImportError: cannot import name ‘main‘

        解决方法:打开pip配置文件   sudo gedit /usr/bin/pip

                         将文件中 from pip import main  改为 from pip._internal import main 保存

(3) 下载超级账本源代码

      超级账本源代码位于https://github.com/hyperledger/fabric中,可直接使用网页下载release-1.0或者使用git

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

      cd fabric

      git checkout -b v1.0.0

      实际使用方法为直接下载https://github.com/hyperledger/fabric/tree/release-1.0,并在文件夹中解压zip

      sudo unzip fabric-release-1.0.zip

      sudo mv  fabric-release-1.0  fabric   ##重命名

2. 超级账本部署调用

(1) 下载超级账本Docker镜像文件

#进入 fabric/scripts目录,修改文件属性
chmod +x bootstrap.sh
#直接下载Docker镜像文件
./bootstrap.sh

下载内容较多,需要等待时间较长。如下载过程中报错或未下载完成,可以再执行下载代码(./bootstrap.sh)。

完成后使用docker images,至少包括以下内容

技术图片

(2)部署超级账本网络

运行Hyperledger需要较多初始化配置,该出先绕开初始化过程,本处先用fabric-samples为例,了解网络部署。

a) 下载fabric-samples,可以直接使用网页下载fabric-samples-release-1.0或者使用git

     ##在文件夹中解压zip

     sudo unzip fabric-samples-release-1.0.zip

     sudo mv fabric-samples-release-1.0  fabric-samples   ##重命名

b) 利用docker-compose启动容器

     cd fabric-samples/basic-network

     docker-compose -f docker-compose.yml up -d

     成功启动后,可使用docker ps查看已启动的容器

技术图片

c) 切换到管理员,用户再创建通道和加入通道

##切换到root
sudo -i  
##切换环境到管理员用户的MSP,进入Peer节点容器peer0.org1.example.com
docker exec -it -e "CORE_PEER_MSPCONFIGPATH=/etc/hyperledger/msp/users/Admin@org1.example.com/msp" peer0.org1.example.com bash
#创建通道
peer channel create -o orderer.example.com:7050 -c mychannel -f /etc/hyperledger/configtx/channel.tx
#加入通道
peer channel join -b mychannel.block
#退出Peer节点容器peer0.org1.example.com
exit

##进入cli容器安装链码和实例化
docker exec -it cli /bin/bash
# 给Peer节点peer0.org1.example.com 安装链码
peer chaincode install -n mycc -v v0 -p github.com/chaincode_example02
# 实例化链码,a分为100,b分为200
peer chaincode instantiate -o orderer.example.com:7050 -C mychannel -n mycc -v v0 -c {"Args":["init","a","100","b","200"]}

(3) 链码调用和查询

a) 查询初始值,例如查询a

peer chaincode query -C mychannel -n mycc -v v0 -c ‘{"Args": ["query", "a"]}‘

技术图片

b) 调用链码,从“a”转移10到“b”

peer chaincode invoke -C mychannel -n mycc -c c0 -c ‘{"Args": ["invoke", "a", "b", "10"]}‘

技术图片

再查询a和b结果显示,"a"的值为Query Result:90,"b"的值为Query Result:210。

 

 

 

 

 

     

 

       

 

一、超级账本初体验

标签:用户   bootstrap   目录   环境安装   shel   symbol   ip配置   http   ror   

原文地址:https://www.cnblogs.com/zhangjbravo/p/11226997.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!