2017-11-30 5 views
0

複数のチャネルを単一の発注者が処理できますか?私は各チャネルの1つの起源ファイルを持っていると、プロパティORDERER_GENERAL_GENESISFILEはそれらのちょうど1に設定されている複数のチャネルを1人の発注者が処理できますか?

orderer_example_com: 
    container_name: orderer.example.com 
    image: hyperledger/fabric-orderer 
    environment: 
    - ORDERER_GENERAL_LOGLEVEL=debug 
    - ORDERER_GENERAL_LISTENADDRESS=0.0.0.0 
    - ORDERER_GENERAL_GENESISMETHOD=file 
    - ORDERER_GENERAL_GENESISFILE=/etc/hyperledger/configtx/genesis1.block 
    - ORDERER_GENERAL_LOCALMSPID=OrdererMSP 
    - ORDERER_GENERAL_LOCALMSPDIR=/etc/hyperledger/crypto/orderer/msp 
    - ORDERER_GENERAL_TLS_ENABLED=true 
    - ORDERER_GENERAL_TLS_PRIVATEKEY=/etc/hyperledger/crypto/orderer/tls/server.key 
    - ORDERER_GENERAL_TLS_CERTIFICATE=/etc/hyperledger/crypto/orderer/tls/server.crt 
    - ORDERER_GENERAL_TLS_ROOTCAS=[/etc/hyperledger/crypto/orderer/tls/ca.crt, /etc/hyperledger/crypto/peerOrg1/tls/ca.crt, /etc/hyperledger/crypto/peerOrg2/tls/ca.crt, /etc/hyperledger/crypto/peerOrg3/tls/ca.crt] 
    working_dir: /opt/gopath/src/github.com/hyperledger/fabric/orderers 
    command: orderer 
    ports: 
    - 7050:7050 
    volumes: 
    - ./channel:/etc/hyperledger/configtx 
    - ./channel/crypto-config/ordererOrganizations/example.com/orderers/orderer.example.com/:/etc/hyperledger/crypto/orderer 
    - ./channel/crypto-config/peerOrganizations/org1.example.com/peers/peer0.org1.example.com/:/etc/hyperledger/crypto/peerOrg1 
    - ./channel/crypto-config/peerOrganizations/org2.example.com/peers/peer0.org2.example.com/:/etc/hyperledger/crypto/peerOrg2 
    - ./channel/crypto-config/peerOrganizations/org3.example.com/peers/peer0.org3.example.com/:/etc/hyperledger/crypto/peerOrg3 
    networks: 
    chfn: 
     aliases: 
     - orderer.example.com 

これは、発注者の.yaml構成です。各チャンネルの注文者を定義する必要がありますか?

答えて

1

あなたは、実際に、このような開始するために、コンソーシアムを形成する可能性のあるすべてのブートストラップ段階で組織を知っ定義組織として、注文サービスの起源ブロックにエンコードされるすべての関連情報が含まれてconfigtx.yamlファイルの表情を取る場合チャネル。事実、configtxgenは、発注者が取引を提出しようとするピアの身元を確認したり、新しいブロックを提供するために接続したりするように、起源ブロックに組織関連の暗号材料をエンコードする。

################################################################################ 
# 
# Section: Organizations 
# 
# - This section defines the different organizational identities which will 
# be referenced later in the configuration. 
# 
################################################################################ 
Organizations: 

    # SampleOrg defines an MSP using the sampleconfig. It should never be used 
    # in production but may be used as a template for other definitions 
    - &OrdererOrg 
     # DefaultOrg defines the organization which is used in the sampleconfig 
     # of the fabric.git development environment 
     Name: OrdererOrg 

     # ID to load the MSP definition as 
     ID: OrdererMSP 

     # MSPDir is the filesystem path which contains the MSP configuration 
     MSPDir: crypto-config/ordererOrganizations/example.com/msp 

この起源ブロックは、新しいチャネルで作成された起源ブロックとは関係ありませんが。だからあなたの質問には、1つの注文サービスは、彼らが知っている組織で構成されている限り、複数のチャンネルを扱うことができます。あなたは、例えば、特定のチャンネルのためのコンソーシアムとして符号化するために、組織のリストを指定するconfigtxgenツールのプロファイルを定義することができます。

Orgs13Channel: 
    Consortium: SampleConsortium 
    Application: 
     <<: *ApplicationDefaults 
     Organizations: 
      - *Org1 
      - *Org3 

ができたのに対し、

Orgs12Channel:                                                      
    Consortium: SampleConsortium 
    Application: 
     <<: *ApplicationDefaults 
     Organizations: 
      - *Org1 
      - *Org2 

は、両組織Org1Org2のチャネルを定義しますOrg1Org3の追加チャネルを定義します。コンソーシアムを定義するサービスを注文するためのすべての設定の後、チャンネルを定義できるすべての組織をリストします。

OrdererGenesis: 
    Orderer: 
     <<: *OrdererDefaults 
     Organizations: 
      - *OrdererOrg 
    Consortiums: 
     SampleConsortium: 
      Organizations: 
       - *Org1 
       - *Org2 
       - *Org3 
0

はい。我々は、複数のチャンネルのために単一の注文をすることができます。 しかし、システムを利用可能にするためには多くの命令が必要です。

+0

オーダーサービスはすでに多数の発注者ノードで構成されています。これは、特にこのような理由から、より高いレベルの機密性を達成するために複数のオーダーサービスが必要です。 –

0

@ Artemの応答のTL; DR:はい、Hyperledger Fabricのオーダーサービスは複数のチャネルを処理できます。

発注者サービスは、PAXOS、RAFT、* BFTなどのいくつかのフォールトトレラントプロトコルによって実装されたサービスの回復力を提供するために複数のノードを持つことができます。カフカ発注者は、現在クラッシュフォールトトレランスをサポートしています。

ファブリックは、複数の異なる発注者サービスを持ち、それぞれが重複しないチャネルセットをサポートするトポロジモデルもサポートしています。

ピアノードは複数のチャネルに参加することができ、これらのチャネルにそれぞれ異なる発注者サービスによってサポートされることがあります。

関連する問題