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 片段问题的多个实例

如何将图像视图从改造加载的片段传递给子片段?

Android 插件化VirtualApp 源码分析 ( 目前的 API 现状 | 安装应用源码分析 | 安装按钮执行的操作 | 返回到 HomeActivity 执行的操作 )(代码片段

12. Fabric2.2 区块链农产品溯源系统 - 智能合约开发-2

区块链——Hyperledger Fabric2.2单点搭建网络