Hands-On Hyperledger Fabric——Fabric快速体验

Fabric 模块

Fabric并不是一个单独的程序而是由一组模块组成:

  • peer:主节点模块,负责存储区块链数据,运行维护链码。
  • orderer:负责对交易进行排序,并将排序好的交易打包成区块。
  • cryptogen:组织和证书生成模块。
  • configtxgen:区块和交易生成模块。
  • configtxlator:区块和交易解析模块。

Fabric 安装和部署

从git中下载构建文件:

git clone https://github.com/hyperledger/fabric-samples
cd basic-network
docker-compose -f docker-compose.yml up -d

安装完成后,查看启动的容器:
在这里插入图片描述

部署超级网络账本

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

# 切换环境到管理员用户的MSP,进入Peer节点容器peer0.org1.example.com
[root@VM_0_5_centos basic-network]#  docker exec -it -e "CORE_PEER_MSPCONFIGPATH=/etc/hyperledger/msp/users/Admin@org1.example.com/msp" peer0.org1.example.com bash
#创建通道
root@98317516f3cc:/opt/gopath/src/github.com/hyperledger/fabric# peer channel create -o orderer.example.com:7050 -c mychannel -f /etc/hyperledger/configtx/channel.tx
2019-11-13 11:08:51.340 UTC [channelCmd] InitCmdFactory -> INFO 001 Endorser and orderer connections initialized
2019-11-13 11:08:51.372 UTC [cli.common] readBlock -> INFO 002 Received block: 0
# 加入通道
root@98317516f3cc:/opt/gopath/src/github.com/hyperledger/fabric# peer channel join -b mychannel.block
2019-11-13 11:10:09.754 UTC [channelCmd] InitCmdFactory -> INFO 001 Endorser and orderer connections initialized
2019-11-13 11:10:09.907 UTC [channelCmd] executeJoin -> INFO 002 Successfully submitted proposal to join channel
# 退出节点容器
root@98317516f3cc:/opt/gopath/src/github.com/hyperledger/fabric# exit
exit
# 进入cli容器安装链码和实例化
[root@VM_0_5_centos basic-network]# docker exec -it cli /bin/bash
# 给Peer节点peer0.org1.example.com安装链码
root@f59e01af054c:/opt/gopath/src/github.com/chaincode_example02# peer chaincode install -n mycc -v v0 -p github.com/chaincode_example02/go
2019-11-13 11:22:28.362 UTC [chaincodeCmd] checkChaincodeCmdParams -> INFO 001 Using default escc
2019-11-13 11:22:28.362 UTC [chaincodeCmd] checkChaincodeCmdParams -> INFO 002 Using default vscc
2019-11-13 11:22:28.546 UTC [chaincodeCmd] install -> INFO 003 Installed remotely response:<status:200 payload:"OK" > 
# 实例化链码
root@f59e01af054c:/opt/gopath/src/github.com/chaincode_example02# peer chaincode instantiate -o orderer.example.com:7050 -C mychannel -n mycc -v v0 -c '{"Args":["init","a","100","b","200"]}'
2019-11-13 11:23:46.126 UTC [chaincodeCmd] checkChaincodeCmdParams -> INFO 001 Using default escc
2019-11-13 11:23:46.127 UTC [chaincodeCmd] checkChaincodeCmdParams -> INFO 002 Using default vscc

在给Peer节点peer0.org1.example.com安装链码的环节按原书代码可能路径出错。

链码调用和查询

链码实例化后,可以查询初始值,同样是在cli容器里执行下面的操作:

# 查询a的值
root@f59e01af054c:/opt/gopath/src/github.com/chaincode_example02# peer chaincode query -C mychannel -n mycc  -c '{"Args":["query","a"]}'
100
# 调用链码,从a转移10到b
root@f59e01af054c:/opt/gopath/src/github.com/chaincode_example02# peer chaincode invoke -C mychannel -n mycc -c '{"Args":["invoke","a","b","10"]}'
2019-11-13 11:41:49.513 UTC [chaincodeCmd] InitCmdFactory -> INFO 001 Retrieved channel (mychannel) orderer endpoint: orderer.example.com:7050
2019-11-13 11:41:49.522 UTC [chaincodeCmd] chaincodeInvokeOrQuery -> INFO 002 Chaincode invoke successful. result: status:200 
# 再次查询a和b的值
root@f59e01af054c:/opt/gopath/src/github.com/chaincode_example02# peer chaincode query -C mychannel -n mycc  -c '{"Args":["query","a"]}'
90
root@f59e01af054c:/opt/gopath/src/github.com/chaincode_example02# peer chaincode query -C mychannel -n mycc  -c '{"Args":["query","b"]}'
210

本节零基础的介绍了如何快速体验超级账本搭建的区块链网络,我们先绕过了比较复杂的初始化配置,采用官方提供的fabric-samples提供的配置和链码实例。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值