版权声明:忠于祖国,忠于人民 https://blog.csdn.net/boss2967/article/details/84205293
陈述
主要讲了怎样通过客户端操作各个节点
通过客户端操作各节点
客户端对Peer节点的操作流程:
-
创建通道, 通过客户端节点来完成
# 在宿主机 $ docker-compose ps Name Command State Ports ---------------------------------------------------------------------------------------------------- cli /bin/bash Up orderer.ydqy.com orderer Up 0.0.0.0:7050->7050/tcp peer0.orgcpp.ydqy.com peer node start Up 0.0.0.0:9051->7051/tcp, 0.0.0.0:9053->7053/tcp peer0.orggo.ydqy.com peer node start Up 0.0.0.0:7051->7051/tcp, 0.0.0.0:7053->7053/tcp peer1.orgcpp.ydqy.com peer node start Up 0.0.0.0:10051->7051/tcp, 0.0.0.0:10053->7053/tcp peer1.orggo.ydqy.com peer node start Up 0.0.0.0:8051->7051/tcp, 0.0.0.0:8053->7053/tcp # 进入到客户端对用的容器中 $ docker exec -it cli /bin/bash
-
将每个组织的每个节点都加入到通道中 -> 客户端来完成的
- 以客户端同时只能连接以peer节点
-
给每个peer节点安装智能合约 -> 链代码(程序: go, node.js, java)
-
对智能合约进行初始化 , 对应智能合约中的 Init 函数
- 只需要在任意节点初始化一次, 数据会自动同步的各个组织的各个节点
-
对数据进行查询 -> 读
-
对数据进行调用 -> 写
经过前面的讲解我们都知道, 一个客户端只能连接一个指定的节点, 如果想要该客户端连接其他节点, 那么就必须修改当前客户端中相关的环境变量
相关环境变量
# 第1个节点 Go组织的 peer0
export CORE_PEER_ADDRESS=peer0.orggo.ydqy.com:7051
export CORE_PEER_LOCALMSPID=OrgGoMSP
export CORE_PEER_MSPCONFIGPATH=/opt/gopath/src/github.com/hyperledger/fabric/peer/crypto/peerOrganizations/orggo.ydqy.com/users/[email protected]/msp
export CORE_PEER_TLS_ROOTCERT_FILE=/opt/gopath/src/github.com/hyperledger/fabric/peer/crypto/peerOrganizations/orggo.ydqy.com/peers/peer0.orggo.ydqy.com/tls/ca.crt
export CORE_PEER_TLS_CERT_FILE=/opt/gopath/src/github.com/hyperledger/fabric/peer/crypto/peerOrganizations/orggo.ydqy.com/peers/peer0.orggo.ydqy.com/tls/server.crt
export CORE_PEER_TLS_KEY_FILE=/opt/gopath/src/github.com/hyperledger/fabric/peer/crypto/peerOrganizations/orggo.ydqy.com/peers/peer0.orggo.ydqy.com/tls/server.key
# 第2个节点 Go组织的 peer1
export CORE_PEER_ADDRESS=peer1.orggo.ydqy.com:7051
export CORE_PEER_LOCALMSPID=OrgGoMSP
export CORE_PEER_MSPCONFIGPATH=/opt/gopath/src/github.com/hyperledger/fabric/peer/crypto/peerOrganizations/orggo.ydqy.com/users/[email protected]/msp
export CORE_PEER_TLS_ROOTCERT_FILE=/opt/gopath/src/github.com/hyperledger/fabric/peer/crypto/peerOrganizations/orggo.ydqy.com/peers/peer1.orggo.ydqy.com/tls/ca.crt
export CORE_PEER_TLS_CERT_FILE=/opt/gopath/src/github.com/hyperledger/fabric/peer/crypto/peerOrganizations/orggo.ydqy.com/peers/peer1.orggo.ydqy.com/tls/server.crt
export CORE_PEER_TLS_KEY_FILE=/opt/gopath/src/github.com/hyperledger/fabric/peer/crypto/peerOrganizations/orggo.ydqy.com/peers/peer1.orggo.ydqy.com/tls/server.key
# 第3个节点 Cpp组织的 peer0
export CORE_PEER_ADDRESS=peer0.orgcpp.ydqy.com:7051
export CORE_PEER_LOCALMSPID=OrgCppMSP
export CORE_PEER_MSPCONFIGPATH=/opt/gopath/src/github.com/hyperledger/fabric/peer/crypto/peerOrganizations/orgcpp.ydqy.com/users/[email protected]/msp
export CORE_PEER_TLS_ROOTCERT_FILE=/opt/gopath/src/github.com/hyperledger/fabric/peer/crypto/peerOrganizations/orgcpp.ydqy.com/peers/peer0.orgcpp.ydqy.com/tls/ca.crt
export CORE_PEER_TLS_CERT_FILE=/opt/gopath/src/github.com/hyperledger/fabric/peer/crypto/peerOrganizations/orgcpp.ydqy.com/peers/peer0.orgcpp.ydqy.com/tls/server.crt
export CORE_PEER_TLS_KEY_FILE=/opt/gopath/src/github.com/hyperledger/fabric/peer/crypto/peerOrganizations/orgcpp.ydqy.com/peers/peer0.orgcpp.ydqy.com/tls/server.key
# 第4个节点 Cpp组织的 peer1
export CORE_PEER_ADDRESS=peer1.orgcpp.ydqy.com:7051
export CORE_PEER_LOCALMSPID=OrgCppMSP
export CORE_PEER_MSPCONFIGPATH=/opt/gopath/src/github.com/hyperledger/fabric/peer/crypto/peerOrganizations/orgcpp.ydqy.com/users/[email protected]/msp
export CORE_PEER_TLS_ROOTCERT_FILE=/opt/gopath/src/github.com/hyperledger/fabric/peer/crypto/peerOrganizations/orgcpp.ydqy.com/peers/peer1.orgcpp.ydqy.com/tls/ca.crt
export CORE_PEER_TLS_CERT_FILE=/opt/gopath/src/github.com/hyperledger/fabric/peer/crypto/peerOrganizations/orgcpp.ydqy.com/peers/peer1.orgcpp.ydqy.com/tls/server.crt
export CORE_PEER_TLS_KEY_FILE=/opt/gopath/src/github.com/hyperledger/fabric/peer/crypto/peerOrganizations/orgcpp.ydqy.com/peers/peer1.orgcpp.ydqy.com/tls/server.key
创建通道的操作只要登录到客户端容器中就可以进行操作.
对peer0.OrgGo的操作
- 要保证客户端操作的是peer0.OrgGo
- 可以查看:
echo $CORE_PEER_ADDRESS
- 可以查看:
- 将当前节点加入到通道中
peer channel join -b xxx.block
- 安装链代码
peer chaincode install [flags]
- 链代码的初始化 -> 只需要做一次
peer chaincode instantiate [flag]
- 查询/调用
对peer1.OrgGo的操作
- 要保证客户端操作的是peer1.OrgGo
- 可以查看:
echo $CORE_PEER_ADDRESS
- 不是修改环境变量
- 可以查看:
- 将当前节点加入到通道中
peer channel join -b xxx.block
- 安装链代码
peer chaincode install [flags]
- 查询/调用
对peer0.OrgCpp的操作
- 要保证客户端操作的是peer1.OrgGo
- 可以查看:
echo $CORE_PEER_ADDRESS
- 不是修改环境变量
- 可以查看:
- 将当前节点加入到通道中
peer channel join -b xxx.block
- 安装链代码
peer chaincode install [flags]
- 查询/调用
对peer1.OrgCpp的操作
- 要保证客户端操作的是peer1.OrgGo
- 可以查看:
echo $CORE_PEER_ADDRESS
- 不是修改环境变量
- 可以查看:
- 将当前节点加入到通道中
peer channel join -b xxx.block
- 安装链代码
peer chaincode install [flags]
- 查询/调用