fabric2.2版源码改造小测验
Posted guluoogulu
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了fabric2.2版源码改造小测验相关的知识,希望对你有一定的参考价值。
测试peer节点写入文件位置
1.源码中定位到peer节点的区块写入位置
common/ledger/blkstorage/blockfile_mgr.go
cd /home/yqcong/go/src/github.com/hyperledger/fabric/common/ledger/blkstorage/blockfile_mgr.go
2.对文件进行改造,可追加语句进行追踪
fmt.Print("\\nVery Good! test for write block to file:%s \\n",deriveBlockfilePath(mgr.rootDir,mgr.blockfilesInfo.latestFileNumber))
3.源码编译
只需再fabric目录下单独编译peer模块
make peer
4.启动网络
我这里使用的是test-network测试网络
cd ~/go/src/github.com/hyperledger/fabric/fabric-samples/test-network
启动网络
./network.sh up
创建通道
./network.sh createChannel
部署链码
./network.sh deployCC -ccn basic -ccp ../asset-transfer-basic/chaincode-go -ccl go
5.与网络进行交互
确保二进制文件可用
export PATH=$PATH:$GOPATH/src/github.com/hyperledger/fabric/release/linux-amd64/bin
FABRIC_CFG_PATH设置为指向fabric-samples的core.yaml文件:
export FABRIC_CFG_PATH=$PWD/../config/
设置环境变量,以允许作为Org1操作peer CLI
# Environment variables for Org1
export CORE_PEER_TLS_ENABLED=true
export CORE_PEER_LOCALMSPID="Org1MSP"
export CORE_PEER_TLS_ROOTCERT_FILE=${PWD}/organizations/peerOrganizations/org1.example.com/peers/peer0.org1.example.com/tls/ca.crt
export CORE_PEER_MSPCONFIGPATH=${PWD}/organizations/peerOrganizations/org1.example.com/users/Admin@org1.example.com/msp
export CORE_PEER_ADDRESS=localhost:7051
初始化账本,涉及区块写入
peer chaincode invoke -o localhost:7050 --ordererTLSHostnameOverride orderer.example.com --tls --cafile ${PWD}/organizations/ordererOrganizations/example.com/orderers/orderer.example.com/msp/tlscacerts/tlsca.example.com-cert.pem -C mychannel -n basic --peerAddresses localhost:7051 --tlsRootCertFiles ${PWD}/organizations/peerOrganizations/org1.example.com/peers/peer0.org1.example.com/tls/ca.crt --peerAddresses localhost:9051 --tlsRootCertFiles ${PWD}/organizations/peerOrganizations/org2.example.com/peers/peer0.org2.example.com/tls/ca.crt -c '{"function":"InitLedger","Args":[]}'
获取通道信息(-c:指定通道名称)
peer channel getinfo -c mychannel
可再次调用链码,再次查询信息
此时并没有发现我们修改的信息
打开一个新的终端窗口
docker logs peer0.org1.example.com
在日志中发现踪迹,确实写入区块
关于peer节点的一些常见命令补充
使用newest选项获取最新的区块
peer channel fetch newest mychannel.block -c mychannel
ls -l
可以看到最新的区块是7,区块信息写入mychannel.block
获取指定的区块,如第5块,并存入默认文件夹
peer channel fetch 5 -c mychannel
结果如下
peer channel list
列出当前节点加入的通道清单
以上是关于fabric2.2版源码改造小测验的主要内容,如果未能解决你的问题,请参考以下文章
Android 插件化VirtualApp 源码分析 ( 目前的 API 现状 | 安装应用源码分析 | 安装按钮执行的操作 | 返回到 HomeActivity 执行的操作 )(代码片段