fabric2.2版源码改造小测验(1)

本文档详细介绍了如何定位Hyperledger Fabric peer节点的区块写入位置,并通过改造源码添加追踪信息。步骤包括源码编译、启动test-network测试网络、链码部署及交互,以及查看peer节点日志来验证区块写入。同时,补充了常用peer节点命令,如区块获取和通道管理。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

测试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

列出当前节点加入的通道清单
在这里插入图片描述

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值