fabric安装

  1. 环境安装
    1. sudo apt-get update
    2. sudo apt install ssh
    3. sudo apt install golang-go (1.12.x+)
    4. sudo apt install git
    5. sudo apt install nodejs
    6. sudo apt install npm
    7. sudo npm install [email protected] -g
    8. sudo npm install -g cnpm --registry=https://registry.npm.taobao.org
    9. npm install -g n
    10. sudo n v8.11.2
    11. sudo apt install docker (17.06.2+)https://docs.docker.com/install/linux/docker-ce/ubuntu/
    12. sudo apt install docker-compose ( 1.14.0+ https://docs.docker.com/compose/install/
    13. sudo apt install curl
    14. sudo apt install vim
    15. sudo apt-get install postgresql (9.5+)
    16. sudo apt install jq
  2. 环境配置
    1. export GOPATH=/opt/gopath
    2. export PATH=$PATH:$GOPATH/bin
    3. source /etc/profile
    4. 添加docker组
      1. sudo groupadd docker
      2. 将当前的用户添加进docker
      3. sudo usermod -aG docker $USER
      4. 退出然后在登陆回来
      5. 验证不用sudo也能运行docker命令
      6. docker run hello-world
      7. 通过修改daemon配置文件/etc/docker/daemon.json来使用加速器:

sudo mkdir -p /etc/docker

sudo tee /etc/docker/daemon.json <<-'EOF'

{

  "registry-mirrors": ["https://wnlrybca.mirror.aliyuncs.com"]

}

EOF

sudo systemctl daemon-reload

sudo systemctl restart docker

    1. 设置npm源为淘宝
      1. npm config set registry https://registry.npm.taobao.org
    2. 验证
      1. npm config get registry
  • Samples 二进制执行文件 docker 镜像 源码
    1. git clone https://github.com/hyperledger/fabric-samples.git
    2. 检出指定版本
    3. git checkout v1.4.2
    4. https://nexus.hyperledger.org/content/repositories/releases/org/hyperledger/fabric/hyperledger-fabric (手动在里面找适合的二进制执行文件,上传,用流量)
    5. 在下载到的bin中有镜像下载脚本运行即可
    6. git clone https://github.com/hyperledger/fabric.git (太慢手动下载上传到/opt/soft/go/src/github.com/hyperledger/下)
  • 修改 sudo vim /etc/hosts 为本机

10.0.8.93 localhost

10.0.8.93 orderer.example.com

10.0.8.93 peer0.org1.example.com

10.0.8.93 peer1.org1.example.com

10.0.8.93 peer0.org2.example.com

10.0.8.93 peer1.org2.example.com

  1. 第一个网络
    1. 在fabric-sample下
    2. cd fabric-samples/first-network
    3. 开启ca
      1. vim byfn.sh
      2. CERTIFICATE_AUTHORITIES=true
    4. 生成证书,创世块
    5. ./byfn.sh generate
    6. 启动
      1. ./byfn.sh up ./byfn.sh up -l node (使用-l 指定链码语言 java 还是node )
    7. 关闭网络
      1. ./byfn.sh down
    8. 修改/home/wei/fabric-samples/first-network/connection-org1.json 把路径配成绝对路径有节点发现机制不用全配
    9. 修改fabcar中的函数名和参数,就可以注册用户,使用查询和执行文件了。
    10. 证书的配置文件 crypto-config.yaml
    11. 自己配置生成证书
      1. ../bin/cryptogen generate --config=./crypto-config.yaml
    12. 指定配置文件目录
      1. export FABRIC_CFG_PATH=$PWD
    13. 生成证书
      1. ../bin/configtxgen -profile TwoOrgsOrdererGenesis -outputBlock ./channel-artifacts/genesis.block
    14. 通道配置
    15. 生成通道
      1. export CHANNEL_NAME=mychannel && ../bin/configtxgen -profile TwoOrgsChannel -outputCreateChannelTx ./channel-artifacts/channel.tx -channelID $CHANNEL_NAME
    16. 锚定节点 org1
      1. ../bin/configtxgen -profile TwoOrgsChannel -outputAnchorPeersUpdate ./channel-artifacts/Org1MSPanchors.tx -channelID $CHANNEL_NAME -asOrg Org1MSP
    17. 锚定节点 org2
      1. ../bin/configtxgen -profile TwoOrgsChannel -outputAnchorPeersUpdate ./channel-artifacts/Org2MSPanchors.tx -channelID $CHANNEL_NAME -asOrg Org2MSP
    18. 开始网络
      1. docker-compose -f docker-compose-cli.yaml up -d
    19. 环境变量(可以配置在docker-compose-base.yaml)

CORE_PEER_MSPCONFIGPATH=/opt/gopath/src/github.com/hyperledger/fabric/peer/crypto/peerOrganizations/org1.example.com/users/[email protected]/msp

CORE_PEER_ADDRESS=peer0.org1.example.com:7051

CORE_PEER_LOCALMSPID="Org1MSP"

CORE_PEER_TLS_ROOTCERT_FILE=/opt/gopath/src/github.com/hyperledger/fabric/peer/crypto/peerOrganizations/org1.example.com/peers/peer0.org1.example.com/tls/ca.crt

    1. 启动cli
      1. docker exec -it cli bash
    2. 配置peer0环境变量

export CORE_PEER_MSPCONFIGPATH=/opt/gopath/src/github.com/hyperledger/fabric/peer/crypto/peerOrganizations/org1.example.com/users/[email protected]/msp

export CORE_PEER_ADDRESS=peer0.org1.example.com:7051

export CORE_PEER_LOCALMSPID="Org1MSP"

export CORE_PEER_TLS_ROOTCERT_FILE=/opt/gopath/src/github.com/hyperledger/fabric/peer/crypto/peerOrganizations/org1.example.com/peers/peer0.org1.example.com/tls/ca.crt

    1. 创建通道
      1. export CHANNEL_NAME=mychannel
      2. peer channel create -o orderer.example.com:7050 -c $CHANNEL_NAME -f ./channel-artifacts/channel.tx --tls --cafile /opt/gopath/src/github.com/hyperledger/fabric/peer/crypto/ordererOrganizations/example.com/orderers/orderer.example.com/msp/tlscacerts/tlsca.example.com-cert.pem
    2. peer0.org1.example.com加入通道
      1. peer channel join -b mychannel.block
    3. peer0.org2.example.com加入通道
      1. CORE_PEER_MSPCONFIGPATH=/opt/gopath/src/github.com/hyperledger/fabric/peer/crypto/peerOrganizations/org2.example.com/users/[email protected]/msp CORE_PEER_ADDRESS=peer0.org2.example.com:7051 CORE_PEER_LOCALMSPID="Org2MSP" CORE_PEER_TLS_ROOTCERT_FILE=/opt/gopath/src/github.com/hyperledger/fabric/peer/crypto/peerOrganizations/org2.example.com/peers/peer0.org2.example.com/tls/ca.crt peer channel join -b mychannel.block
    4. 更新锚定节点
      1. peer channel update -o orderer.example.com:7050 -c $CHANNEL_NAME -f ./channel-artifacts/Org1MSPanchors.tx --tls --cafile /opt/gopath/src/github.com/hyperledger/fabric/peer/crypto/ordererOrganizations/example.com/orderers/orderer.example.com/msp/tlscacerts/tlsca.example.com-cert.pem
      2. CORE_PEER_MSPCONFIGPATH=/opt/gopath/src/github.com/hyperledger/fabric/peer/crypto/peerOrganizations/org2.example.com/users/[email protected]/msp CORE_PEER_ADDRESS=peer0.org2.example.com:7051 CORE_PEER_LOCALMSPID="Org2MSP" CORE_PEER_TLS_ROOTCERT_FILE=/opt/gopath/src/github.com/hyperledger/fabric/peer/crypto/peerOrganizations/org2.example.com/peers/peer0.org2.example.com/tls/ca.crt peer channel update -o orderer.example.com:7050 -c $CHANNEL_NAME -f ./channel-artifacts/Org2MSPanchors.tx --tls --cafile /opt/gopath/src/github.com/hyperledger/fabric/peer/crypto/ordererOrganizations/example.com/orderers/orderer.example.com/msp/tlscacerts/tlsca.example.com-cert.pem
    5. 安装链码
      1. peer chaincode install -n mycc -v 1.0 -p github.com/chaincode/chaincode_example02/go/
    6. 实例化
      1. peer chaincode instantiate -o orderer.example.com:7050 --tls --cafile /opt/gopath/src/github.com/hyperledger/fabric/peer/crypto/ordererOrganizations/example.com/orderers/orderer.example.com/msp/tlscacerts/tlsca.example.com-cert.pem -C $CHANNEL_NAME -n mycc -v 1.0 -c '{"Args":["init","a", "100", "b","200"]}' -P "AND ('Org1MSP.peer','Org2MSP.peer')"
    7. 查询
      1. peer chaincode query -C $CHANNEL_NAME -n mycc -c '{"Args":["query","a"]}'
    8. 看交易日志
      1. docker logs -f cli
    9. 看容器日志
      1. docker logs dev-peer0.org2.example.com-mycc-1.0
  • 查看所有容器 docker ps -a
  • 删除所有镜像 docker rmi -f $(docker images -q)
  • 删除所有容器 docker rm -f $(docker ps -aq)
  • 关闭集群 docker-compose -f docker-compose-cli.yaml down --volumes --remove-orphans
  • 删除映射卷 docker volume prune 清除缓存 docker network prune

调用中出现未找到链码是因为在查询的节点中没有安装链码

猜你喜欢

转载自blog.csdn.net/qq_25944759/article/details/107921999