我是hyperledger&的新手尝试修改结构样本中的现有余额转移示例。我正在做的改变就是更改名称& orderer&的领域 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工具生成加密材料&amp;容器正在起床。使用 docker ps ,我可以看到所有容器。在注册用户时出现以下错误:
[DEBUG] Helper - [FileKeyValueStore.js]:FileKeyValueStore.js - 构造函数[ERROR] Helper - 无法获得注册用户:Jim, 错误:TypeError:无法读取属性&#39; setStateStore&#39;未定义的 at hfc.newDefaultKeyValueStore.then(/home/ubuntu/fabric-samples/balance-transfer/app/helper.js:208:9)
请告诉我这是什么原因。
答案 0 :(得分:1)
根据 app / helper.js 文件(第38行),
这是if (key.indexOf('org') === 0) {
组织名称必须以&#39; org &#39;开头。关键字。
例如,组织名称可以是 orgDemo ,但 不能 演示
答案 1 :(得分:0)
我不知道余额转移,但大多数示例都在docker configs中为docker容器安装本地目录,以指向本地文件系统上的加密。您需要修改它们以指向新的加密路径或将新的加密复制到现有的dirs中。
此外,必须使用相同的组织和加密创建创世块和通道创建。我不知道平衡转移是否会重建创世块和通道以匹配与否。在docker定义中指定的对等和域名通常也需要与configtx.yaml中的那些匹配。
用户必须先注册CA,然后才能注册。即使以上所有内容都是正确的,如果脚本不适合您,您仍可能需要手动注册Jim。
Jim未注册,或者您没有指向正确的CA容器名称或加密路径,或者创世块仍在使用原始组织名称和加密路径等。您可以使用 configtxgen -inspectBlock genesisblockfilename和 configtxgen -inspectChannelCreateTx channelfilename以查看包含的Orgs。