I'm having a problem running the "configtxgen" command to generate the genesis block. I'm following this specific guide and in the part where you have to run this command, the following errors come out:
$ configtxgen -profile IstumNetworkProfile -channelID system-channel -configPath ${PWD}/config -outputBlock ./system-genesis-block/genesis.block
2023-01-31 11:38:54.354 CET [common/tools/configtxgen] main -> INFO 001 Loading configuration
2023-01-31 11:38:54.378 CET [common/tools/configtxgen/localconfig] Load -> CRIT 002 Error unmarshaling config into struct: 4 error(s) decoding:
* 'Orderer' has invalid keys: EtcdRaft
* 'Organizations[0]' has invalid keys: OrdererEndpoints
* 'Profiles[IstumNetworkProfile].Orderer' has invalid keys: EtcdRaft
* 'Profiles[IstumNetworkProfile].Orderer.Organizations[0]' has invalid keys: OrdererEndpoints
2023-01-31 11:38:54.379 CET [common/tools/configtxgen] func1 -> CRIT 003 Error unmarshaling config into struct: 4 error(s) decoding:
* 'Orderer' has invalid keys: EtcdRaft
* 'Organizations[0]' has invalid keys: OrdererEndpoints
* 'Profiles[IstumNetworkProfile].Orderer' has invalid keys: EtcdRaft
* 'Profiles[IstumNetworkProfile].Orderer.Organizations[0]' has invalid keys: OrdererEndpoints
panic: Error unmarshaling config into struct: 4 error(s) decoding:
* 'Orderer' has invalid keys: EtcdRaft
* 'Organizations[0]' has invalid keys: OrdererEndpoints
* 'Profiles[IstumNetworkProfile].Orderer' has invalid keys: EtcdRaft
* 'Profiles[IstumNetworkProfile].Orderer.Organizations[0]' has invalid keys: OrdererEndpoints [recovered]
panic: Error unmarshaling config into struct: 4 error(s) decoding:
* 'Orderer' has invalid keys: EtcdRaft
* 'Organizations[0]' has invalid keys: OrdererEndpoints
* 'Profiles[IstumNetworkProfile].Orderer' has invalid keys: EtcdRaft
* 'Profiles[IstumNetworkProfile].Orderer.Organizations[0]' has invalid keys: OrdererEndpoints
My cryptogen version is :
$ cryptogen version
cryptogen:
Version: 1.2.0
Commit SHA: cae2ad4
Go version: go1.10
OS/Arch: linux/amd64
And this is my configtx.yaml file. Can you check if it is correct?
Organizations:
- &OrdererOrg
Name: OrdererOrg
ID: OrdererMSP # Consente agli altri partecipanti alla rete l'identificazione di questa entità.
MSPDir: ../crypto-material/ordererOrganizations/istum.com/msp
Policies: # Configurazione del tipo di ruoli a cui si è autorizzati a fare
Readers:
Type: Signature
Rule: "OR('OrdererMSP.member')"
Writers:
Type: Signature
Rule: "OR('OrdererMSP.member')"
Admins:
Type: Signature
Rule: "OR('OrdererMSP.admin')"
OrdererEndpoints:
- orderer0.istum.com:7050
- &Org1
Name: Org1
ID: Org1MSP # Consente agli altri partecipanti alla rete l'identificazione di questa entità.
MSPDir: ../crypto-material/peerOrganizations/org1.istum.com/msp
Policies: # Configurazione del tipo di ruoli a cui si è autorizzati a fare
Readers:
Type: Signature
Rule: "OR('Org1MSP.member')"
Writers:
Type: Signature
Rule: "OR('Org1MSP.member')"
Admins:
Type: Signature
Rule: "OR('Org1MSP.admin')"
Endorsement:
Type: Signature
Rule: "OR('Org1MSP.member')"
AnchorPeers: # Gateway peer da un'organizzazione all'Anchor Peer di un'altra organizzazione
- Host: peer0.org1.istum.com
Port: 7051
- &Org2
Name: Org2
ID: Org2MSP # Consente agli altri partecipanti alla rete l'identificazione di questa entità.
MSPDir: ../crypto-material/peerOrganizations/org2.istum.com/msp
Policies: # Configurazione del tipo di ruoli a cui si è autorizzati a fare
Readers:
Type: Signature
Rule: "OR('Org2MSP.member')"
Writers:
Type: Signature
Rule: "OR('Org2MSP.member')"
Admins:
Type: Signature
Rule: "OR('Org2MSP.admin')"
Endorsement:
Type: Signature
Rule: "OR('Org2MSP.member')"
AnchorPeers: # Gateway peer da un'organizzazione all'Anchor Peer di un'altra organizzazione
- Host: peer0.org2.istum.com
Port: 8051
- &Org3
Name: Org3
ID: Org3MSP # Consente agli altri partecipanti alla rete l'identificazione di questa entità.
MSPDir: ../crypto-material/peerOrganizations/org3.istum.com/msp
Policies: # Configurazione del tipo di ruoli a cui si è autorizzati a fare
Readers:
Type: Signature
Rule: "OR('Org3MSP.member')"
Writers:
Type: Signature
Rule: "OR('Org3MSP.member')"
Admins:
Type: Signature
Rule: "OR('Org3MSP.admin')"
Endorsement:
Type: Signature
Rule: "OR('Org3MSP.member')"
AnchorPeers: # Gateway peer da un'organizzazione all'Anchor Peer di un'altra organizzazione
- Host: peer0.org2.istum.com
Port: 8052
# Nelle Capabilities *Channel* definisce il set di funzionalità di Hyperledger che viene utilizzato solo dai peer,
# mentre *Orderer* definisce il set di funzionalità che è rilevante (lo indovini) solo per gli ordini.
# L'*applicazione* , d'altra parte, definisce il set di funzionalità, che è rilevante per tutti i peer E tutti gli ordinatori e quindi definisce il minimo comune denominatore per l'intera rete.
Capabilities:
Channel: &ChannelCapabilities
V2_0: true
Orderer: &OrdererCapabilities
V2_0: true
Application: &ApplicationCapabilities
V2_0: true
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: etcdraft
EtcdRaft:
Options:
TickInterval: 500ms
ElectionTick: 10
HeartbeatTick: 1
MaxInflightBlocks: 5
SnapshotIntervalSize: 20971520
Consenters:
- Host: orderer0.istum.com
Port: 7050
ClientTLSCert: ../crypto-material/ordererOrganizations/istum.com/orderers/orderer0.istum.com/tls/server.crt
ServerTLSCert: ../crypto-material/ordererOrganizations/istum.com/orderers/orderer0.istum.com/tls/server.crt
BatchTimeout: 2s # Definiscono alcune specifiche riguardanti il tempo dopo il quale un blocco dovrebbe essere
BatchSize: # costruito e quante transazioni dovrebbe contenere al massimo
MaxMessageCount: 10
AbsoluteMaxBytes: 99 MB
PreferredMaxBytes: 512 KB
Organizations:
Policies: # Configurazione del tipo di ruoli a cui si è autorizzati a fare (in questo caso per l'intera rete)
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 #Si definisce qui quali criteri di canale predefiniti sono impostati per il canale
Policies:
Readers:
Type: ImplicitMeta
Rule: "ANY Readers"
Writers:
Type: ImplicitMeta
Rule: "ANY Writers"
Admins:
Type: ImplicitMeta
Rule: "MAJORITY Admins"
Capabilities:
<<: *ChannelCapabilities
Profiles:
IstumNetworkProfile:
<<: *ChannelDefaults
Orderer:
<<: *OrdererDefaults #definiscono chi sarà in grado di modificare ( Admins ) la nostra rete o semplicemente leggere / scrivere ( Readers / Writers ) sulla nostra rete.
Organizations: # Qui definiamo da quali organizzazioni provengono i nostri ordinatori
- *OrdererOrg
Capabilities:
<<: *OrdererCapabilities
Consortiums:
IstumConsortium:
Organizations: # Quali organizzazioni sono autorizzate a unirsi alla rete e creare canali ecc..?
- *Org1
- *Org2
- *Org3
IstumChannelProfile:
Consortium: IstumConsortium
<<: *ChannelDefaults
Application:
<<: *ApplicationDefaults
Organizations:
- *Org1
- *Org2
- *Org3
Capabilities:
<<: *ApplicationCapabilities
Thanks a lot to whoever will help me!!
EDIT I resolved by downgrade my Hyperledger Binaries to 1.4.7 version!!