• Hyperledger Fabric1.4 手动搭建过程


    1、生成证书:

    #路径需要更改为自己的路径
    cd ~/go/src/github.com/hyperledger/fabric/scripts/fabric-samples/first-network/  
    
    #在这里可能会报错,通常是权限问题,可以添加sudo重新执行
    cryptogen generate --config=./crypto-config.yaml
    #执行完毕后,当前文件夹下会出现一个新的文件夹:crypto-config,在该文件夹下就是刚刚生成的证书.

    2、Orderer服务 生成创世区块,通道配置,锚节点配置文件

    #路径需要更改为自己的路径
    cd ~/go/src/github.com/hyperledger/fabric/scripts/fabric-samples/first-network/ 
    生成创世区块
    configtxgen -profile TwoOrgsOrdererGenesis -outputBlock ./channel-artifacts/genesis.block

      生成通道配置信息

    export CHANNEL_NAME=mychannel
    configtxgen -profile TwoOrgsChannel -outputCreateChannelTx ./channel-artifacts/channel.tx -channelID $CHANNEL_NAME

      生成两个组织的锚节点配置文件

    configtxgen -profile TwoOrgsChannel -outputAnchorPeersUpdate ./channel-artifacts/Org1MSPanchors.tx -channelID $CHANNEL_NAME -asOrg Org1MSP
    
    configtxgen -profile TwoOrgsChannel -outputAnchorPeersUpdate ./channel-artifacts/Org2MSPanchors.tx -channelID $CHANNEL_NAME -asOrg Org2MSP

    成功后在channel-artifacts有四个文件:
    channel.tx  genesis.block  Org1MSPanchors.tx  Org2MSPanchors.tx

    -- 初始区块(genesis.block)和通道配置事务(channel.tx、
    Org1MSPanchors.tx..

    -profile :configtx.yaml中的Profiles配置项,用于指定生成初始区块还是通道交易配置文件。
    -asOrg:用于指定有权设置的写集中的值的Org组织名称。

    3、启动fabric网络

    sudo docker-compose -f docker-compose-cli.yaml up -d

    进入cli容器

    sudo docker exec -it cli bash

    4、创建通道

    export CHANNEL_NAME=mychannel
    export ORDERER_CA=/opt/gopath/src/github.com/hyperledger/fabric/peer/crypto/ordererOrganizations/example.com/orderers/orderer.example.com/msp/tlscacerts/tlsca.example.com-cert.pem
    peer channel create -o orderer.example.com:7050 -c $CHANNEL_NAME -f ./channel-artifacts/channel.tx --tls true --cafile $ORDERER_CA

    -o 指定Orderer节点地址
    -c 指定要创建的应用通道名称
    -f 指定创建应用通道时所使用的应用通道交易配置文件
    --tls 开启tls验证
    --cafile 指定tls_ca证书的所在路径

    5、将节点加入应用通道

    peer channel join -b mychannel.block 

    6、更新锚节点

    Org1更新锚节点:
    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 
    CORE_PEER_MSPCONFIGPATH=/opt/gopath/src/github.com/hyperledger/fabric/peer/crypto/peerOrganizations/org1.example.com/users/Admin@org1.example.com/msp 
    CORE_PEER_ADDRESS=peer0.org1.example.com:7051
    ORDERER_CA=/opt/gopath/src/github.com/hyperledger/fabric/peer/crypto/ordererOrganizations/example.com/orderers/orderer.example.com/msp/tlscacerts/tlsca.example.com-cert.pem
    
    peer channel update -o orderer.example.com:7050 -c $CHANNEL_NAME -f ./channel-artifacts/Org1MSPanchors.tx --tls true --cafile $ORDERER_CA
    Org2更新锚节点:
    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 
    CORE_PEER_MSPCONFIGPATH=/opt/gopath/src/github.com/hyperledger/fabric/peer/crypto/peerOrganizations/org2.example.com/users/Admin@org2.example.com/msp 
    CORE_PEER_ADDRESS=peer0.org2.example.com:7051
    
    peer channel update -o orderer.example.com:7050 -c $CHANNEL_NAME -f ./channel-artifacts/Org2MSPanchors.tx --tls true --cafile $ORDERER_CA

    7、安装示例链码

    先切换到peer0.org1这个节点
    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 
    CORE_PEER_MSPCONFIGPATH=/opt/gopath/src/github.com/hyperledger/fabric/peer/crypto/peerOrganizations/org1.example.com/users/Admin@org1.example.com/msp 
    CORE_PEER_ADDRESS=peer0.org1.example.com:7051
    使用peer chaincode install命令可以安装指定的ChainCode并对其命名:
    
    peer chaincode install -n mycc -v 1.0 -p github.com/chaincode/chaincode_example02/go

    8、实例化链码

    peer chaincode instantiate -o orderer.example.com:7050 --tls true --cafile $ORDERER_CA -C $CHANNEL_NAME -n mycc -v 1.0 -c '{"Args":["init","a","100","b","200"]}' -P "OR('Org1MSP.member','Org2MSP.member')"

    9、查询并发起交易

    peer chaincode query -C mychannel -n mycc -c '{"Args":["query","a"]}'
    在另一个节点查询交易
    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 
    CORE_PEER_MSPCONFIGPATH=/opt/gopath/src/github.com/hyperledger/fabric/peer/crypto/peerOrganizations/org2.example.com/users/Admin@org2.example.com/msp 
    CORE_PEER_ADDRESS=peer0.org2.example.com:7051
    
    peer chaincode query -C mychannel -n mycc -c '{"Args":["query","a"]}'

    10、查看日志

    docker logs -f peer0.org1.example.com

  • 相关阅读:
    Vue Hooks
    React初识-Hooks
    React-JSX初识
    css基础知识
    发布-订阅者模式
    Map和Set
    数据类型
    tcp三次握手以及tcp三次握手一句话总结
    网页布局相关
    浏览器渲染页面的流程
  • 原文地址:https://www.cnblogs.com/zhanghh/p/11595923.html
Copyright © 2020-2023  润新知