togettoyou/fabric-realty

compatibility mode

spider1998 opened this issue · 5 comments

您好,该系统运行后好像只和所配置的peer0.org1.blockchainrealestate.com:7051节点进行交互,orderer节点并没有将其排序并广播给其他相邻节点,其他节点也没有日志输出,看起来现在只是在与cli配置的单节点交互,orderer并给出警告:This orderer is running in compatibility mode,看起来好像是配置有问题,我将solo模式换成了kafka模式,并搭建kafka集群,是因为模式转换的问题吗?
此外,配置中并没有配置主节点、背书节点等(包括背书策略),这对后续的交易验证及广播有有影响吗?

如果您有时间,期待您的回复,感谢!

现在是只有peer0.org1.blockchainrealestate.com:7051加入了我们创建的通道中,其他节点没有加入,是因为这个原因导致排序服务不会去广播给其他节点吗?

fabric我没有继续学习下去了,所以目前无法帮助你解答,你可以参考官方的例子切换成kafka的配置。
"solo只是一种单中心化的共识机制,只用于fabric开始使用时作测试用。只有一个ordering节点向所有的客户端提供排序服务,可以说solo称不上是“共识”,仅仅作为fabric的一种辅助支撑存在。"
如果你有更好的配置建议,欢迎PR。

感谢您的回复,我也是才入门学习,您的项目给了我很大帮助。

    按照官方和网上其他示例,只有一个节点通信是因为我们创建了一个客户端并为其创建通道,并将链码安装在上面,因此通道中只有peer0节点,没有任何相邻节点供orderer节点广播,因此我加入了其他节点,并配合为其创建了客户端及counchDB,最终将其他节点加入同一个通道并为其安装链码。这样在kafka模式下,一个节点作为背书节点,当其收到消息后orderer节点会广播相邻节点,每个节点会把当前态记录在自己的数据库中。他们看起来已经正常运行了。

部分配置:

//给其他节点添加客户端
cli1: 
   container_name: cli1
   image: hyperledger/fabric-tools:1.4.2
   tty: true
   environment:
     - GOPATH=/opt/gopath
     - CORE_LOGGING_LEVEL=INFO
     - CORE_PEER_ID=cli
     - CORE_PEER_ADDRESS=peer1.org1.blockchainrealestate.com:7051
     - CORE_PEER_LOCALMSPID=Org1MSP
     - CORE_PEER_MSPCONFIGPATH=/etc/hyperledger/peer/users/Admin@org1.blockchainrealestate.com/msp
     - CORE_PEER_TLS_ENABLED=true
     - CORE_PEER_TLS_CERT_FILE=/etc/hyperledger/peer/peers/peer0.org1.blockchainrealestate.com/tls/server.crt
     - CORE_PEER_TLS_KEY_FILE=/etc/hyperledger/peer/peers/peer0.org1.blockchainrealestate.com/tls/server.key
     - CORE_PEER_TLS_ROOTCERT_FILE=/etc/hyperledger/peer/peers/peer0.org1.blockchainrealestate.com/tls/ca.crt
   working_dir: /opt/gopath/src/github.com/hyperledger/fabric/
   command: /bin/bash
   volumes:
     - ./../chaincode:/opt/gopath/src/chaincode 
     - ./config:/etc/hyperledger/config
     - ./crypto-config/peerOrganizations/org1.blockchainrealestate.com/:/etc/hyperledger/peer
     - ./crypto-config/ordererOrganizations/blockchainrealestate.com/orderers/orderer0.blockchainrealestate.com/:/etc/hyperledger/orderer

......
echo "peer1.org1加入到通道"
docker cp cli:/opt/gopath/src/github.com/hyperledger/fabric/assetschannel.block .//复制通道文件让其他节点加入通道
docker cp assetschannel.block cli1:/assetschannel.block
docker exec cli1 peer channel join -b /assetschannel.block

给所有客户端安装链码
docker exec cli peer chaincode install -n blockchain-real-estate -v 1.0.0 -l golang -p chaincode
docker exec cli1 peer chaincode install -n blockchain-real-estate -v 1.0.0 -l golang -p chaincode

您好,请问学习go语言编写链码有什么相关的资料推荐吗

您好,请问学习go语言编写链码有什么相关的资料推荐吗

网上资料看起来不多,我也是刚入门,如果您有更好的途径,可以相互交流