0

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!!

AlexCav
  • 21
  • 5

0 Answers0