一、超级账本初体验

根据《深度探索区块链——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。

 

 

 

 

 

     

 

       

 

转载于:https://www.cnblogs.com/zhangjbravo/p/11226997.html

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值