更改订购者和同行的名称和域后,用户未注册到 hyperledger fabric
After changing name & domain of orderer & peers user is not getting enrolled in hyperledger fabric
我是 hyperledger 的新手,正在尝试修改结构样本中现有的余额转移示例。我正在做的更改是更改 cryptogen.yaml 文件中订购者和同行的名称和域。还在 configtx.yaml 和 docker-compose.yaml 文件中进行了相应的更改。这是 cryptogen.yaml 文件中的更改:
OrdererOrgs:
- Name: Orderer
Domain: say.com
Specs:
- Hostname: orderer
PeerOrgs:
- Name: Customer1
Domain: customer1.say.com
CA:
Hostname: ca
Template:
Count: 2
SANS:
- "localhost"
Users:
Count: 1
- Name: Customer2
Domain: customer2.say.com
CA:
Hostname: ca
Template:
Count: 2
SANS:
- "localhost"
Users:
Count: 1
这是 configtx.yaml 文件:
Profiles:
TwoOrgsOrdererGenesis:
Orderer:
<<: *OrdererDefaults
Organizations:
- *OrdererOrg
Consortiums:
SampleConsortium:
Organizations:
- *Customer1
- *Customer2
TwoOrgsChannel:
Consortium: SampleConsortium
Application:
<<: *ApplicationDefaults
Organizations:
- *Customer1
- *Customer2
Organizations:
- &OrdererOrg
Name: OrdererMSP
ID: OrdererMSP
MSPDir: crypto-config/ordererOrganizations/say.com/msp
- &Customer1
Name: Customer1MSP
ID: Customer1MSP
MSPDir: crypto-config/peerOrganizations/customer1.say.com/msp
AnchorPeers:
- Host: peer0.customer1.say.com
Port: 7051
- &Customer2
Name: Customer2MSP
ID: Customer2MSP
MSPDir: crypto-config/peerOrganizations/customer2.say.com/msp
AnchorPeers:
- Host: peer0.customer2.say.com
Port: 7051
Orderer: &OrdererDefaults
OrdererType: solo
Addresses:
- orderer.say.com:7050
BatchTimeout: 2s
BatchSize:
MaxMessageCount: 10
AbsoluteMaxBytes: 98 MB
PreferredMaxBytes: 512 KB
Kafka:
Brokers:
- 127.0.0.1:9092
Organizations:
Application: &ApplicationDefaults
Organizations:
我能够使用 cryptogen 工具生成加密材料并且容器正在启动。使用 docker ps 我可以看到所有容器。在注册用户时出现以下错误:
[DEBUG] Helper - [FileKeyValueStore.js]: FileKeyValueStore.js -
constructor [ERROR] Helper - Failed to get registered user: Jim,
error: TypeError: Cannot read property 'setStateStore' of undefined
at hfc.newDefaultKeyValueStore.then (/home/ubuntu/fabric-samples/balance-transfer/app/helper.js:208:9)
请告诉我出现此问题的原因。
根据 app/helper.js 文件(第 38 行),
这是 if (key.indexOf('org') === 0) {
组织名称必须以“org”关键字开头。
例如,组织名称可以是 orgDemo 但 不能是 演示
我不知道余额转移,但大多数示例在 docker 配置中为 docker 容器安装本地目录,以指向本地文件系统上的加密。您需要修改它们以指向您的新加密路径或将您的新加密复制到现有目录中。
此外,创世块和通道创建必须使用相同的组织和加密货币创建。我不知道余额转移是否会重新创建创世块和通道以匹配。 docker 定义中通常还指定了几个对等点和域名,需要与 configtx.yaml 中的定义相匹配。
用户必须在 CA 注册后才能注册。即使以上所有内容都正确,如果脚本没有为您注册 Jim,您可能仍需要手动注册。
Jim 未注册,或者您没有指向正确的 CA 容器名称或加密路径,或者创世块仍在使用原始组织名称和加密路径等。您可以使用
configtxgen -inspectBlock genesisblockfilename 和
configtxgen -inspectChannelCreateTx channelfilename 以查看包含哪些组织。
我是 hyperledger 的新手,正在尝试修改结构样本中现有的余额转移示例。我正在做的更改是更改 cryptogen.yaml 文件中订购者和同行的名称和域。还在 configtx.yaml 和 docker-compose.yaml 文件中进行了相应的更改。这是 cryptogen.yaml 文件中的更改:
OrdererOrgs:
- Name: Orderer
Domain: say.com
Specs:
- Hostname: orderer
PeerOrgs:
- Name: Customer1
Domain: customer1.say.com
CA:
Hostname: ca
Template:
Count: 2
SANS:
- "localhost"
Users:
Count: 1
- Name: Customer2
Domain: customer2.say.com
CA:
Hostname: ca
Template:
Count: 2
SANS:
- "localhost"
Users:
Count: 1
这是 configtx.yaml 文件:
Profiles:
TwoOrgsOrdererGenesis:
Orderer:
<<: *OrdererDefaults
Organizations:
- *OrdererOrg
Consortiums:
SampleConsortium:
Organizations:
- *Customer1
- *Customer2
TwoOrgsChannel:
Consortium: SampleConsortium
Application:
<<: *ApplicationDefaults
Organizations:
- *Customer1
- *Customer2
Organizations:
- &OrdererOrg
Name: OrdererMSP
ID: OrdererMSP
MSPDir: crypto-config/ordererOrganizations/say.com/msp
- &Customer1
Name: Customer1MSP
ID: Customer1MSP
MSPDir: crypto-config/peerOrganizations/customer1.say.com/msp
AnchorPeers:
- Host: peer0.customer1.say.com
Port: 7051
- &Customer2
Name: Customer2MSP
ID: Customer2MSP
MSPDir: crypto-config/peerOrganizations/customer2.say.com/msp
AnchorPeers:
- Host: peer0.customer2.say.com
Port: 7051
Orderer: &OrdererDefaults
OrdererType: solo
Addresses:
- orderer.say.com:7050
BatchTimeout: 2s
BatchSize:
MaxMessageCount: 10
AbsoluteMaxBytes: 98 MB
PreferredMaxBytes: 512 KB
Kafka:
Brokers:
- 127.0.0.1:9092
Organizations:
Application: &ApplicationDefaults
Organizations:
我能够使用 cryptogen 工具生成加密材料并且容器正在启动。使用 docker ps 我可以看到所有容器。在注册用户时出现以下错误:
[DEBUG] Helper - [FileKeyValueStore.js]: FileKeyValueStore.js - constructor [ERROR] Helper - Failed to get registered user: Jim, error: TypeError: Cannot read property 'setStateStore' of undefined at hfc.newDefaultKeyValueStore.then (/home/ubuntu/fabric-samples/balance-transfer/app/helper.js:208:9)
请告诉我出现此问题的原因。
根据 app/helper.js 文件(第 38 行),
这是 if (key.indexOf('org') === 0) {
组织名称必须以“org”关键字开头。
例如,组织名称可以是 orgDemo 但 不能是 演示
我不知道余额转移,但大多数示例在 docker 配置中为 docker 容器安装本地目录,以指向本地文件系统上的加密。您需要修改它们以指向您的新加密路径或将您的新加密复制到现有目录中。
此外,创世块和通道创建必须使用相同的组织和加密货币创建。我不知道余额转移是否会重新创建创世块和通道以匹配。 docker 定义中通常还指定了几个对等点和域名,需要与 configtx.yaml 中的定义相匹配。
用户必须在 CA 注册后才能注册。即使以上所有内容都正确,如果脚本没有为您注册 Jim,您可能仍需要手动注册。
Jim 未注册,或者您没有指向正确的 CA 容器名称或加密路径,或者创世块仍在使用原始组织名称和加密路径等。您可以使用 configtxgen -inspectBlock genesisblockfilename 和 configtxgen -inspectChannelCreateTx channelfilename 以查看包含哪些组织。