Hyperledger fabric安装指南

Hyperledger fabric安装指南

先切换到root用户

一、安装前的准备工作

参考这篇文章https://blog.csdn.net/shengsikandan/article/details/107656060

首先安装一些必要的依赖:

sudo apt install libtool libltdl-dev

去https://studygolang.com/dl下载go的安装包

wget https://studygolang.com/dl/golang/go1.16.linux-amd64.tar.gz
tar -zxvf go1.16.linux-amd64.tar.gz -C /usr/local
#打开环境变量
vi ~/.bashrc

#添加
export GOPATH=$HOME/go
export GOROOT=/usr/local/go
export PATH=$PATH:$GOROOT/bin:$GOPATH/bin

#保存退出后刷新
source ~/.bashrc

#查看版本
go version

#go代理进行更换
go env -w GOPROXY=https://goproxy.io,direct
go env -w GO111MODULE=on

安装docker-ce

# step 1: 安装必要的一些系统工具
sudo apt-get update
sudo apt-get -y install apt-transport-https ca-certificates curl software-properties-common
# step 2:安装GPG证书:
curl -fsSL http://mirrors.aliyun.com/docker-ce/linux/ubuntu/gpg | sudo apt-key add -
# step 3:写入软件源信息
sudo add-apt-repository "deb [arch=amd64] http://mirrors.aliyun.com/docker-ce/linux/ubuntu $(lsb_release -cs) stable"
# step 4:更新并安装Docker-CE
sudo apt-get -y update
sudo apt-get -y install docker-ce

#将当前用户添加到docker用户组
# step 1: 创建docker用户组
sudo groupadd docker
# step 2:将当前用户添加到docker用户组
sudo usermod -aG docker $USER
#退出当前终端
exit

如果不行的话离线安装docker-ce

https://download.docker.com/linux/ubuntu/dists/bionic/pool/stable/amd64/

按序安装docker-ce-cli、containerd、docker-ce

sudo dpkg -i docker-ce-cli

然后安装docker-compose

curl -L https://github.com/docker/compose/releases/download/1.28.0-rc1/docker-compose-`uname -s`-`uname -m` -o /usr/local/bin/docker-compose

sudo chmod +x /usr/local/bin/docker-compose
#完成后查看版本
docker-compose -v

二、安装fabric

参考这篇文章https://blog.csdn.net/qq_43681877/article/details/110896678

官方测试文档可参考https://hyperledger-fabric.readthedocs.io/zh_CN/release-2.2/test_network.html

cd
mkdir -p go/src/github.com/hyperledger/
#进入刚刚创建的文件夹内
cd go/src/github.com/hyperledger/
#下载文件,然后修改名称
git clone "https://github.com/hyperledger/fabric.git"
#查看版本
cd fabric/
git branch -a
#切换版本
git checkout release-2.3
#进入脚本执行命令,此环境最好有外网环境,要不然就根据上面那篇文章的方法来
cd scripts/
./bootstrap.sh
#然后去测试
cd fabric-samples/test-network
#先关闭一遍网络
./network.sh down
#用启动脚本打开网络
./network.sh up
#查看当前使用的镜像
docker ps -a
#创建通道
./network.sh createChannel # 默认名称为mychannel
./network.sh createChannel -c channel1 #自定义名称
#也可以启动的时候同时创建通道
./network.sh up createChannel
#在通道上启动链码
./network.sh deployCC -ccn basic -ccp ../asset-transfer-basic/chaincode-go -ccl go
./network.sh deployCC -ccn basics -ccp ../asset-transfer-basic/chaincode-javascript -ccl javascript
./network.sh deployCC -ccn basic -ccp ../commercial-paper/chaincode-token -ccl javascript

三、将fabcar智能合约部署到通道

参考文档:

https://hyperledger-fabric.readthedocs.io/zh_CN/release-2.2/deploy_chaincode.html#invoking-the-chaincode

1、启动网络

./network.sh down
./network.sh up createChannel

打包智能合约略过

2、创建chaincode包(js版本)

peer lifecycle chaincode package fabcar.tar.gz --path ../chaincode/fabcar/javascript/ --lang node --label fabcar_1

3、安装chaincode包

需要在两个组织上安装

#先装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 lifecycle chaincode install fabcar.tar.gz

#然后安装org2
export CORE_PEER_LOCALMSPID="Org2MSP"
export CORE_PEER_TLS_ROOTCERT_FILE=${PWD}/organizations/peerOrganizations/org2.example.com/peers/peer0.org2.example.com/tls/ca.crt
export CORE_PEER_MSPCONFIGPATH=${PWD}/organizations/peerOrganizations/org2.example.com/users/Admin@org2.example.com/msp
export CORE_PEER_ADDRESS=localhost:9051

peer lifecycle chaincode install fabcar.tar.gz

4、批准链码定义

找到链码的程序包ID

peer lifecycle chaincode queryinstalled

复制ID,进行输出

export CC_PACKAGE_ID=fabcar_1:babcdc7acdf9048793efac15bd4a7128c8d33f7da33d9e5bc86e95d86565ebdf

进行批准

peer lifecycle chaincode approveformyorg -o localhost:7050 --ordererTLSHostnameOverride orderer.example.com --channelID mychannel --name fabcar --version 1.0 --package-id $CC_PACKAGE_ID --sequence 1 --tls --cafile ${PWD}/organizations/ordererOrganizations/example.com/orderers/orderer.example.com/msp/tlscacerts/tlsca.example.com-cert.pem

再对org1进行批准

export CORE_PEER_LOCALMSPID="Org1MSP"
export CORE_PEER_MSPCONFIGPATH=${PWD}/organizations/peerOrganizations/org1.example.com/users/Admin@org1.example.com/msp
export CORE_PEER_TLS_ROOTCERT_FILE=${PWD}/organizations/peerOrganizations/org1.example.com/peers/peer0.org1.example.com/tls/ca.crt
export CORE_PEER_ADDRESS=localhost:7051

peer lifecycle chaincode approveformyorg -o localhost:7050 --ordererTLSHostnameOverride orderer.example.com --channelID mychannel --name fabcar --version 1.0 --package-id $CC_PACKAGE_ID --sequence 1 --tls --cafile ${PWD}/organizations/ordererOrganizations/example.com/orderers/orderer.example.com/msp/tlscacerts/tlsca.example.com-cert.pem

5、将链码定义提交给通道

#检查通道成员是否已经批准相同的链码定义
peer lifecycle chaincode checkcommitreadiness --channelID mychannel --name fabcar --version 1.0 --sequence 1 --tls --cafile ${PWD}/organizations/ordererOrganizations/example.com/orderers/orderer.example.com/msp/tlscacerts/tlsca.example.com-cert.pem --output json

将链码定义提交给通道

peer lifecycle chaincode commit -o localhost:7050 --ordererTLSHostnameOverride orderer.example.com --channelID mychannel --name fabcar --version 1.0 --sequence 1 --tls --cafile ${PWD}/organizations/ordererOrganizations/example.com/orderers/orderer.example.com/msp/tlscacerts/tlsca.example.com-cert.pem --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

查看是否已经被提交了peerAddresses

peer lifecycle chaincode querycommitted --channelID mychannel --name fabcar --cafile ${PWD}/organizations/ordererOrganizations/example.com/orderers/orderer.example.com/msp/tlscacerts/tlsca.example.com-cert.pem

6、调用链码

使用以下命令在分类账上创建一组初始汽车

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 fabcar --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":[]}'

查询功能来读取由链码创建的汽车的集合

peer chaincode query -C mychannel -n fabcar -c '{"Args":["queryAllCars"]}'
暂无评论

发送评论 编辑评论


				
|´・ω・)ノ
ヾ(≧∇≦*)ゝ
(☆ω☆)
(╯‵□′)╯︵┴─┴
 ̄﹃ ̄
(/ω\)
∠( ᐛ 」∠)_
(๑•̀ㅁ•́ฅ)
→_→
୧(๑•̀⌄•́๑)૭
٩(ˊᗜˋ*)و
(ノ°ο°)ノ
(´இ皿இ`)
⌇●﹏●⌇
(ฅ´ω`ฅ)
(╯°A°)╯︵○○○
φ( ̄∇ ̄o)
ヾ(´・ ・`。)ノ"
( ง ᵒ̌皿ᵒ̌)ง⁼³₌₃
(ó﹏ò。)
Σ(っ °Д °;)っ
( ,,´・ω・)ノ"(´っω・`。)
╮(╯▽╰)╭
o(*////▽////*)q
>﹏<
( ๑´•ω•) "(ㆆᴗㆆ)
😂
😀
😅
😊
🙂
🙃
😌
😍
😘
😜
😝
😏
😒
🙄
😳
😡
😔
😫
😱
😭
💩
👻
🙌
🖕
👍
👫
👬
👭
🌚
🌝
🙈
💊
😶
🙏
🍦
🍉
😣
Source: github.com/k4yt3x/flowerhd
颜文字
Emoji
小恐龙
花!
上一篇
下一篇