区块链框架hyperledger Fabric1.2,win10,docker18.6,资产转移实例

区块链框架hyperledger Fabric1.2,win10,docker18.6,资产转移实例

最近在学习区块链,找了很多资料,看到的概念也很杂,关于区块链和fabric的介绍我就不多讲了,百度一搜一大把,以下是我通过查找很多资料,找到的最简易的测试方法,甚至连go语言都可以省略,
环境:

  • docker 18.06.0-ce(自带docker-compose)
  • hyperledger Fabric1.2
  • go1.10.3 windows/amd64(go语言)
  • win10企业版

环境安装

  • docker安装
    下载docker18.06 windows版本,下载地址:http://mirrors.aliyun.com/docker-toolbox/windows/docker-toolbox/
    下载成功后,傻瓜式安装,安装完成后,启动docker,并设置Shared Drives,选择盘符(可以勾选所有),点击Apply,如果点击无效,请参考 https://blog.csdn.net/u012680857/article/details/77970351 ,必须Shared Drives,如图:
    这里写图片描述
  • hyperledger Fabric1.2
    下载fabric1.2, 使用git下载:git colon https://github.com/hyperledger/fabric ;也可以直接下载zip包:
    这里写图片描述
    下载成功后,解压文件,将文件夹名称改为:fabric-samples,我的文件目录如下:
    这里写图片描述
    至此基本的环境搭建完成
  • 使用docker命令,执行测试
    本次测试,就是完成一笔简单的转账,下面开始:
    找到fabric-samples/basic-network/.env文件,打开并增加配置:COMPOSE_CONVERT_WINDOWS_PATHS=1 该配置的作用是修改为windows路径,默认为linux路径;如图:
    这里写图片描述
    配置增加后,进入cmd,进入fabric-samples/basic-network文件夹,运行:
    docker-compose -f docker-compose.yml up -d
    命令执行效果如下:
    这里写图片描述
    执行该命令,会自动下载docker的image并自动完成配置(docker-compose.yml文件中有很多配置),执行成功如下:
    这里写图片描述
    如果执行命令过程中出现以下错误,请设置Shared Drives,设置方法请参考:
    https://blog.csdn.net/u012680857/article/details/77970351
    这里写图片描述
    如果出现以下错误,请在.env文件中增加 COMPOSE_CONVERT_WINDOWS_PATHS=1 配置,上文有提及,错误如图:
    这里写图片描述
    运行fabric的docker环境基本完成,cmd中输入docker ps 命令,运行效果如下:
    这里写图片描述
    接下来开始测试fabric:
    cmd中运行
    docker exec -it -e”CORE_PEER_MSPCONFIGPATH=/etc/hyperledger/msp/users/Admin@org1.example.com/msp” peer0.org1.example.com bash
    进入peer0.org1.example.com这个images的命令行,
    创建通道,输入:
    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
    运行效果如图:
    这里写图片描述
    在cmd中,输入 :
    docker exec -it cli /bin/bash,
    进入cli的命令行,给peer节点安装链码,输入:
    peer chaincode install -n mycc -v v0 -p github.com/chaincode_example02/go
    实例化链码
    peer chaincode instantiate -o orderer.example.co:7050 -C mychannel -n mycc -v v0 -c ‘{“Args”: [“init”,”a”,”100”,”b”,”200”]}’
    运行效果如图:
    这里写图片描述
    链码实例化后,可以查询初始值,初始值是:100,同样在cli里执行以下命令:
    peer chaincode query -C mychannel -n mycc -c ‘{“Args”: [“query”,”a”]}’
    效果如下:
    这里写图片描述
    下面开始我们的转移操作,从“a”转移10到“b”,同样还是再cli里执行以下命令:
    peer chaincode invoke -C mychannel -n mycc -c ‘{“Args”: [“invoke”,”a”,”b”,”10”]}’
    查询“a”和“b”的值,分别执行以下命令:
    peer chaincode query -C mychannel -n mycc -c ‘{“Args”: [“query”,”a”]}’
    peer chaincode query -C mychannel -n mycc -c ‘{“Args”: [“query”,”b”]}’
    结果如下:
    这里写图片描述

如果能转移成功,恭喜您!

主要参考资料: 《深度探索区块链Hyperledger技术与应用》

阅读更多

更多精彩内容