hyperledger-fabric - 无法在 AWS 上连接不同机器上的 Orderer 和 Peer 节点
问题描述
我正在尝试建立一个具有单个订购者和 3 个组织的网络,每个组织在 AWS 上都有一个具有 Hyperledger Fabric 版本 2 的对等节点。我可以使用 configtxgen 和以下命令成功地为订购者和通道配置事务生成创世块:
configtxgen -profile ThreeOrgsOrdererGenesis -channelID ordererchannel -outputBlock ./config/genesis.block
configtxgen -profile ChannelAll -outputCreateChannelTx ./config/channel.tx -channelID channelall
这是我的 configtx.yaml 文件:(这里的策略不是一个好的做法,只是在试验)
---
Organizations:
- &OrdererOrg
Name: OrdererOrg
ID: OrdererMSP
MSPDir: ./crypto-config/ordererOrganizations/example.com/msp
Policies:
Readers:
Type: Signature
Rule: "OR('OrdererMSP.member')"
Writers:
Type: Signature
Rule: "OR('OrdererMSP.member')"
Admins:
Type: Signature
Rule: "OR('OrdererMSP.member')"
- &Org1
Name: Org1MSP
ID: Org1MSP
MSPDir: ./crypto-config/peerOrganizations/org1.example.com/msp
Policies:
Readers:
Type: Signature
Rule: "OR('Org1MSP.member')"
Writers:
Type: Signature
Rule: "OR('Org1MSP.member')"
Admins:
Type: Signature
Rule: "OR('Org1MSP.member')"
Endorsement:
Type: Signature
Rule: "OR('Org1MSP.member')"
- &Org2
Name: Org2MSP
ID: Org2MSP
MSPDir: ./crypto-config/peerOrganizations/org2.example.com/msp
Policies:
Readers:
Type: Signature
Rule: "OR('Org2MSP.member')"
Writers:
Type: Signature
Rule: "OR('Org2MSP.member')"
Admins:
Type: Signature
Rule: "OR('Org2MSP.member')"
Endorsement:
Type: Signature
Rule: "OR('Org2MSP.member')"
- &Org3
Name: Org3MSP
ID: Org3MSP
MSPDir: ./crypto-config/peerOrganizations/org3.example.com/msp
Policies:
Readers:
Type: Signature
Rule: "OR('Org3MSP.member')"
Writers:
Type: Signature
Rule: "OR('Org3MSP.member')"
Admins:
Type: Signature
Rule: "OR('Org3MSP.member')"
Endorsement:
Type: Signature
Rule: "OR('Org3MSP.member')"
Capabilities:
Channel: &ChannelCapabilities
V1_3: true
Orderer: &OrdererCapabilities
V1_1: true
Application: &ApplicationCapabilities
V2_0: true
V1_3: false
V1_2: false
V1_1: false
Application: &ApplicationDefaults
Organizations:
Policies:
Readers:
Type: ImplicitMeta
Rule: "ANY Readers"
Writers:
Type: ImplicitMeta
Rule: "ANY Writers"
Admins:
Type: ImplicitMeta
Rule: "MAJORITY Admins"
LifecycleEndorsement:
Type: ImplicitMeta
Rule: "MAJORITY Endorsement"
Endorsement:
Type: ImplicitMeta
Rule: "MAJORITY Endorsement"
Capabilities:
<<: *ApplicationCapabilities
Orderer: &OrdererDefaults
OrdererType: solo
Addresses:
- orderer.example.com:7050
BatchTimeout: 2s
BatchSize:
MaxMessageCount: 300
AbsoluteMaxBytes: 99 MB
PreferredMaxBytes: 512 KB
Kafka:
Brokers:
- 127.0.0.1:9092
Organizations:
Policies:
Readers:
Type: ImplicitMeta
Rule: "ANY Readers"
Writers:
Type: ImplicitMeta
Rule: "ANY Writers"
Admins:
Type: ImplicitMeta
Rule: "MAJORITY Admins"
BlockValidation:
Type: ImplicitMeta
Rule: "ANY Writers"
Channel: &ChannelDefaults
Policies:
Readers:
Type: ImplicitMeta
Rule: "ANY Readers"
Writers:
Type: ImplicitMeta
Rule: "ANY Writers"
Admins:
Type: ImplicitMeta
Rule: "MAJORITY Admins"
Capabilities:
<<: *ChannelCapabilities
Profiles:
ThreeOrgsOrdererGenesis:
<<: *ChannelDefaults
Orderer:
<<: *OrdererDefaults
Organizations:
- *OrdererOrg
Capabilities:
<<: *OrdererCapabilities
Consortiums:
SampleConsortium:
Organizations:
- *Org1
- *Org2
- *Org3
ChannelAll:
Consortium: SampleConsortium
<<: *ChannelDefaults
Application:
<<: *ApplicationDefaults
Organizations:
- *Org1
- *Org2
- *Org3
Capabilities:
<<: *ApplicationCapabilities
当我加入peer1
我创建的频道时,我在订购者的 docker 日志中收到以下警告:
Handle -> WARN 008 Error reading from 172.31.19.174:35362: rpc error: code = Canceled desc = context canceled
起初,我只是忽略了这个警告,并将其他节点加入了频道。但是,我无法使用使用 Fabric Node SDK 的客户端程序连接到区块链,所以我相信这是问题的根本原因。
解决方案
我注意到你使用
configtxgen -profile OneOrgOrdererGenesis
而在您configtx.yaml
的个人资料部分中是ThreeOrgsOrdererGenesis
.
也许您应该尝试使用以下命令生成加密文件:
configtxgen -profile ThreeOrgsOrdererGenesis -channelID ordererchannel -outputBlock ./config/genesis.block
configtxgen -profile ChannelAll -outputCreateChannelTx ./config/channel.tx -channelID channelall
推荐阅读
- python - 如何使用python从多个文件夹中删除多个图像
- mysql - 如果下个月没有数据,则获取上个月的数据
- moodle - Moodle:是否可以仅从 javascript 访问用户
- javascript - Javascript,关闭多个设备
- java - iText 文档 - 解析符号
- javascript - 如何创建具有类似 ng 事件的 $event 的自定义事件指令
- php - 我无法从文件中读取数据,它在 php 中什么也没给我?
- r - R:metafor 的 rma 用于组合 0 和 1 之间的值
- java - mysql-connector-java-8.0.12:“马来半岛标准时间”服务器时区出现错误
- angular - 打字稿错误类型'AngularFireList
' 不可分配给类型 'AngularFireList '