
Native方式运行Fabric(非Docker方式)
发布日期:2025-04-19 03:32:22
浏览次数:3
分类:精选文章
本文共 4184 字,大约阅读时间需要 13 分钟。
编译 Fabric 源码并搭建单个 Peer 节点网络
一、编译 Fabric 源码
1. 下载及解压源码
在 $GOPATH/src/github.com/hyperledger
目录下创建并进入目录:
mkdir -p $GOPATH/src/github.com/hyperledgercd $GOPATH/src/github.com/hyperledgerwget https://github.com/hyperledger/fabric/archive/v1.1.0-preview.tar.gztar -zxvf v1.1.0-preview.tar.gzmv fabric-1.1.0-preview fabric
2. 编译可执行程序
进入编译目录并执行以下命令:
cd fabricmake test-cmd
获取 -ldflags
选项的取值后,按照以下命令编译每个可执行程序:
go build -gcflags "-N -l" \ -X github.com/hyperledger/fabric/common/metadata.Version=1.1.0-preview \ -X github.com/hyperledger/fabric/common/metadata.BaseVersion=0.4.2 \ -X github.com/hyperledger/fabric/common/metadata.BaseDockerLabel=org.hyperledger.fabric \ -X github.com/hyperledger/fabric/common/metadata.DockerNamespace=hyperledger \ -X github.com/hyperledger/fabric/common/metadata.BaseDockerNamespace=hyperledger \ -X github.com/hyperledger/fabric/common/metadata.Experimental=false \ github.com/hyperledger/fabric/orderer
同样方式编译 peer
和 cryptogen
等程序。
二、搭建单个 Peer 节点网络
1. 创建目录结构
创建以下目录结构:
mkdir -p ~/fabric-1.1.0-preview-demo/binmkdir -p ~/fabric-1.1.0-preview-demo/networksmkdir -p ~/fabric-1.1.0-preview-demo/chaincodes
2. 生成证书
下载并解压 crypto-config.yaml
并执行以下命令:
export PATH=$(pwd)/bin:$PATHcryptogen generate --config=networks/single-dev-env/config/crypto-config.yaml --output=networks/single-dev-env/config/crypto-config
3. 生成创世纪块
执行以下命令生成创世纪块:
export FABRIC_CFG_PATH=$(pwd)/networks/single-dev-env/config/configtxgen -outputBlock networks/single-dev-env/config/genesis.block -profile SingleSoloOrdererGenesis
4. 创建通道配置交易
执行以下命令创建通道配置交易:
export CHANNEL_NAME=mychannelconfigtxgen -outputCreateChannelTx networks/single-dev-env/config/channel-artifacts/channel.tx -profile SingleSoloChannel -channelID $CHANNEL_NAME
5. 启动 Orderer 和 Peer 节点
启动 Orderer 节点:
export rootDir=$(pwd)export PATH=$rootDir/bin:$PATHexport ORDERER_GENERAL_LOGLEVEL=DEBUGexport ORDERER_GENERAL_TLS_ENABLED=falseexport ORDERER_GENERAL_PROFILE_ENABLED=falseexport ORDERER_GENERAL_LISTENADDRESS=0.0.0.0export ORDERER_GENERAL_LISTENPORT=7050export ORDERER_GENERAL_GENESISMETHOD=fileexport ORDERER_GENERAL_GENESISFILE=$rootDir/networks/single-dev-env/config/genesis.blockexport ORDERER_GENERAL_LOCALMSPDIR=$rootDir/networks/single-dev-env/config/crypto-config/ordererOrganizations/example.com/orderers/orderer.example.com/mspexport ORDERER_GENERAL_LOCALMSPID=OrdererMSPexport ORDERER_FILELEDGER_LOCATION=$rootDir/networks/single-dev-env/data/ordererorderer
启动 Peer 节点:
export rootDir=$(pwd)export PATH=$rootDir/bin:$PATHexport CORE_PEER_ID=example_orgexport CORE_CHAINCODE_MODE=devexport CORE_PEER_CHAINCODELISTENADDRESS=0.0.0.0:7052export CORE_PEER_NETWORKID=devexport CORE_LOGGING_LEVEL=INFOexport CORE_PEER_TLS_ENABLED=falseexport CORE_PEER_PROFILE_ENABLED=falseexport CORE_PEER_ADDRESS=0.0.0.0:7051export CORE_PEER_LISTENADDRESS=0.0.0.0:7051export CORE_PEER_GOSSIP_ENDPOINT=0.0.0.0:7051export CORE_PEER_EVENTS_ADDRESS=0.0.0.0:7053export CORE_PEER_LOCALMSPID=OrgMSPexport CORE_LEDGER_STATE_STATEDATABASE=goleveldbexport CORE_PEER_MSPCONFIGPATH=$rootDir/networks/single-dev-env/config/crypto-config/peerOrganizations/example.com/peers/peer.example.com/mspexport CORE_PEER_FILESYSTEMPATH=$rootDir/networks/single-dev-env/data/peerpeer node start -o 127.0.0.1:7050 --peer-chaincodedev=true
6. 创建通道
执行以下命令创建通道:
peer channel create -o 127.0.0.1:7050 -c mychannel -f networks/single-dev-env/config/channel-artifacts/channel.tx
7. 加入通道
执行以下命令加入通道:
peer channel join -b mychannel.block
8. 部署及调用链码
部署链码并调用示例:
export CORE_CHAINCODE_ID_NAME=mycc:1.0export CORE_PEER_ADDRESS=peer.example.com:7052go run $GOPATH/src/github.com/hyperledger/fabric/examples/chaincode/go/chaincode_example02/chaincode_example02.go
安装链码:
peer chaincode install -n mycc -v 1.0 -p github.com/hyperledger/fabric/examples/chaincode/go/chaincode_example02
实例化链码:
peer chaincode instantiate -o orderer.example.com:7050 -C mychannel -n mycc -v 1.0 -c "{\"Args\":[\"init\",\"a\", \"100\", \"b\", \"200\"]}" -P "OR('OrgMSP.member')"
调用链码:
peer chaincode invoke -o orderer.example.com:7050 -C mychannel -n mycc -c "{\"Args\":[\"invoke\",\"a\",\"b\",\"10\"]}"
查询链码状态:
peer chaincode query -C mychannel -n mycc -c "{\"Args\":[\"query\",\"a\"]}"
发表评论
最新留言
感谢大佬
[***.8.128.20]2025年04月15日 20时39分35秒
关于作者

喝酒易醉,品茶养心,人生如梦,品茶悟道,何以解忧?唯有杜康!
-- 愿君每日到此一游!
推荐文章
2017CS231n笔记5.CNN
2019-03-15
Linux系统安装Nodejs
2019-03-15
vue项目报错集合
2019-03-15
图片链接
2019-03-15
LINUX-WIFI无线接入的一些东西
2019-03-15
word文档手写字母总会大写问题
2019-03-15
Redis中的key
2019-03-15
Andriod进阶之路 - DataBinding的简单使用
2019-03-15
juc-09-控制并发流程工具类
2019-03-15
第一节 docker安装
2019-03-15
Linux系统时间与硬件时间及时间同步
2019-03-15
Spring 和 DI 依赖注入
2019-03-15
中序线索二叉树的遍历
2019-03-15
文字策略游戏 android studio(学习intent,textview,等等)
2019-03-15
laravel server error 服务器内部错误
2019-03-15
17_注册Github账号
2019-03-15
Linux驱动实现GPIO模拟I2C读写操作
2019-03-15
iJ配置Maven环境详解
2019-03-15
仿QQ登陆界面
2019-03-15