安装基础环境
Git
sudo apt-get install git
cURL
sudo apt-get install curl
Docker
sudo apt-get -y install docker-compose
检查安装情况
$ docker --version
Docker version 20.10.21, build 20.10.21-0ubuntu1~22.04.2
$ docker-compose --version
docker-compose version 1.29.2, build unknown
下面是启动代码
sudo systemctl start docker
Ps.如果需要Docker自启动可以运行下面的代码
sudo systemctl enable docker
sudo usermod -a -G docker <username>
username是自己的用户名,记得替换
JQ
sudo apt-get install jq
克隆代码以及安装对应文件
下面这个可选
go get github.com/hyperledger/fabric
这个必须
go get github.com/hyperledger/fabric-samples
进入fabric-samples目录,执行下面代码,需要安装一段时间
curl -sSLO https://raw.githubusercontent.com/hyperledger/fabric/main/scripts/install-fabric.sh && chmod +x install-fabric.sh
之后执行
sudo ./install-fabric.sh docker samples binary
启动测试网络
进入文件夹
cd test-network
启动测试网络
sudo ./network.sh up
可以运行下面的命令查看容器情况
sudo docker ps -a
创建通道
sudo ./network.sh createChannel
安装链码
./network.sh deployCC -ccn basic -ccp ../asset-transfer-basic/chaincode-go -ccl go
Ps. 可以执行sudo chmod -R 777 ../test-network
来避免使用sudo出错的情况。
执行链码
环境设置
export PATH=${PWD}/../bin:$PATH
export FABRIC_CFG_PATH=$PWD/../config/
使用组织1调用链码
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":[]}'
查询
peer chaincode query -C mychannel -n basic -c '{"Args":["GetAllAssets"]}'
关闭网络
sudo ./network.sh down