How to add new organization without updating the channel configuration(channel update)?error while adding new organization in hyperledger fabric -1.0HyperLedger Fabric v1.1 adding organizations to existing channelsHow to perform a transaction on a chaincode through java or node sdk which requires two organisation admins signature?Failed to reach implicit threshold of 2 sub-policies, required 1 remainingFailed to connect client peer, please check the configuration and peer statusRestricting some organizations from performing some channel and chaincode operations in Hyperledger FabricHyperledger fabric- adding the CLI and couchdb to “Balanc-transfer” exampleCAs,Enrollment,Registration for HyperLedger Fabric for multi-organizational.“Failed to join all peers to channel. cause:Error: Invalid results returned ::FORBIDDEN”Hyperledger Fabric - How to limit Org2 to install/instantiate/upgrade the chaincode to the channel?

How to find better food in airports

Why didn't Thatcher give Hong Kong to Taiwan?

Why KVM VPS is slower then OPENVZ

Meaning of "educating the ice"

Why do modes sound so different, although they are basically the same as a mode of another scale?

What is the maximal acceptable delay between pilot's input and flight control surface actuation?

Is mathematics truth?

IEEE Registration Authority mac prefix

Can a country avoid prosecution for crimes against humanity by denying it happened?

Initializing a std::array with a constant value

How could reincarnation magic be limited to prevent overuse?

In Toy Story, are toys the only inanimate objects that become alive? And if so, why?

Is there anything in the universe that cannot be compressed?

How to run a command 1 out of N times in Bash

Do we know the problems the University of Manchester's Transistor Computer was intended to solve?

When making yogurt, why doesn't bad bacteria grow as well?

If the UK government illegally doesn't ask for article 50 extension, can parliament do it instead?

What is the most likely cause of short, quick, and useless reviews?

Given a specific computer system, is it possible to estimate the actual precise run time of a piece of Assembly code

Playing boules... IN SPACE!

Would a corpse look different on an interstellar spaceship?

How to fit Schwalbe Marathon Plus 28-622 on 622-16 rim

How do I stop making people jump at home and at work?

How to align values in table according to the pm and point?



How to add new organization without updating the channel configuration(channel update)?


error while adding new organization in hyperledger fabric -1.0HyperLedger Fabric v1.1 adding organizations to existing channelsHow to perform a transaction on a chaincode through java or node sdk which requires two organisation admins signature?Failed to reach implicit threshold of 2 sub-policies, required 1 remainingFailed to connect client peer, please check the configuration and peer statusRestricting some organizations from performing some channel and chaincode operations in Hyperledger FabricHyperledger fabric- adding the CLI and couchdb to “Balanc-transfer” exampleCAs,Enrollment,Registration for HyperLedger Fabric for multi-organizational.“Failed to join all peers to channel. cause:Error: Invalid results returned ::FORBIDDEN”Hyperledger Fabric - How to limit Org2 to install/instantiate/upgrade the chaincode to the channel?






.everyoneloves__top-leaderboard:empty,.everyoneloves__mid-leaderboard:empty,.everyoneloves__bot-mid-leaderboard:empty margin-bottom:0;








0















We already have the the fabric network set up. There are ORG1 and ORG2 in the consortium defined in configtx.yaml already. Each organizations has its own Root CAs. And, ORG2 has an intermediate CA in addition.



configtx.yaml:



---
################################################################################
#
# ORGANIZATIONS
#
# This section defines the organizational identities that can be referenced
# in the configuration profiles.
#
################################################################################
Organizations:
- &OrdererOrg
Name: OrdererOrg
ID: ORDERER
MSPDir: crypto-config/ordererOrganizations/ordererorg/msp
Policies: &OrdererOrgPolicies
Readers:
Type: Signature
Rule: "OR('ORDERER.member')"
Writers:
Type: Signature
Rule: "OR('ORDERER.member')"
Admins:
Type: Signature
Rule: "OR('ORDERER.admin')"

- &ORG1
Name: ORG1
ID: ORG1
MSPDir: crypto-config/peerOrganizations/ORG1.com/msp
Policies: &Org1Policies
Readers:
Type: Signature
Rule: "OR('ORG1.member')"
Writers:
Type: Signature
Rule: "OR('ORG1.member')"
Admins:
Type: Signature
Rule: "OR('ORG1.admin')"
AnchorPeers:
- Host: peer0
Port: 7051

- &ORG2
Name: ORG2
ID: ORG2
MSPDir: crypto-config/ORG2/ORG2.com/msp
Policies: &Org2Policies
Readers:
Type: Signature
Rule: "OR('ORG2.member')"
Writers:
Type: Signature
Rule: "OR('ORG2.member')"
Admins:
Type: Signature
Rule: "OR('ORG2.admin')"
AnchorPeers:
- Host: peer1
Port: 7051

.
.
.
.
SingleMSPSolo:
<<: *ChannelDefaults
Orderer:
<<: *OrdererDefaults
Addresses:
- kiesnet-dev-orderer:7050
Organizations:
- *OrdererOrg
Consortiums:
DevConsortium:
Organizations:
- *ORG1
- *ORG2

SingleMSPChannel:
Consortium: DevConsortium
Application:
<<: *ApplicationDefaults
Organizations:
- *ORG1
- *ORG2



ORG2's root CA and the intermediate CA will have the same MSPIDs (which is "ORG2") and the end users will be only enrolled from the intermediate CA server.



Here's the problem.
in the above configtx.yaml, "MSPDir: crypto-config/ORG/ORG2.com/msp" is the the ROOT CA's msp directory path, NOT the intermediate's.



However, the end users are only enrolled from the intermediate server, and when those users are trying to query/invoke to ORG1's peer, we get this error:



Error: error endorsing query: rpc error: code = Unknown desc = access denied: channel [ORG1] creator org [ORG2] - proposal response: <nil>


If we test with the end user's certificate which was enrolled from ORG2's root CA, the user can query/invoke to ORG1's peer just fine.



How we tell the network(channel) to trust the users enrolled from the intermediate CA without doing the peer channel update or modifying the channel config file?



the business reason behind on this is that from ORG2, there can be many intermediate CA servers added in the future, so we don't want to update the channel configuration each time we have the new intermediate CAs. So once we registered the ORG2's ROOT CA(when we set up the network first time), we want to trust all users enrolled from it's intermediate CA(s).



I think there should be a way to tell the network to trust all the users enrolled from any intermediate CAs if the intermediate CA is from ORG2's root CA.










share|improve this question
































    0















    We already have the the fabric network set up. There are ORG1 and ORG2 in the consortium defined in configtx.yaml already. Each organizations has its own Root CAs. And, ORG2 has an intermediate CA in addition.



    configtx.yaml:



    ---
    ################################################################################
    #
    # ORGANIZATIONS
    #
    # This section defines the organizational identities that can be referenced
    # in the configuration profiles.
    #
    ################################################################################
    Organizations:
    - &OrdererOrg
    Name: OrdererOrg
    ID: ORDERER
    MSPDir: crypto-config/ordererOrganizations/ordererorg/msp
    Policies: &OrdererOrgPolicies
    Readers:
    Type: Signature
    Rule: "OR('ORDERER.member')"
    Writers:
    Type: Signature
    Rule: "OR('ORDERER.member')"
    Admins:
    Type: Signature
    Rule: "OR('ORDERER.admin')"

    - &ORG1
    Name: ORG1
    ID: ORG1
    MSPDir: crypto-config/peerOrganizations/ORG1.com/msp
    Policies: &Org1Policies
    Readers:
    Type: Signature
    Rule: "OR('ORG1.member')"
    Writers:
    Type: Signature
    Rule: "OR('ORG1.member')"
    Admins:
    Type: Signature
    Rule: "OR('ORG1.admin')"
    AnchorPeers:
    - Host: peer0
    Port: 7051

    - &ORG2
    Name: ORG2
    ID: ORG2
    MSPDir: crypto-config/ORG2/ORG2.com/msp
    Policies: &Org2Policies
    Readers:
    Type: Signature
    Rule: "OR('ORG2.member')"
    Writers:
    Type: Signature
    Rule: "OR('ORG2.member')"
    Admins:
    Type: Signature
    Rule: "OR('ORG2.admin')"
    AnchorPeers:
    - Host: peer1
    Port: 7051

    .
    .
    .
    .
    SingleMSPSolo:
    <<: *ChannelDefaults
    Orderer:
    <<: *OrdererDefaults
    Addresses:
    - kiesnet-dev-orderer:7050
    Organizations:
    - *OrdererOrg
    Consortiums:
    DevConsortium:
    Organizations:
    - *ORG1
    - *ORG2

    SingleMSPChannel:
    Consortium: DevConsortium
    Application:
    <<: *ApplicationDefaults
    Organizations:
    - *ORG1
    - *ORG2



    ORG2's root CA and the intermediate CA will have the same MSPIDs (which is "ORG2") and the end users will be only enrolled from the intermediate CA server.



    Here's the problem.
    in the above configtx.yaml, "MSPDir: crypto-config/ORG/ORG2.com/msp" is the the ROOT CA's msp directory path, NOT the intermediate's.



    However, the end users are only enrolled from the intermediate server, and when those users are trying to query/invoke to ORG1's peer, we get this error:



    Error: error endorsing query: rpc error: code = Unknown desc = access denied: channel [ORG1] creator org [ORG2] - proposal response: <nil>


    If we test with the end user's certificate which was enrolled from ORG2's root CA, the user can query/invoke to ORG1's peer just fine.



    How we tell the network(channel) to trust the users enrolled from the intermediate CA without doing the peer channel update or modifying the channel config file?



    the business reason behind on this is that from ORG2, there can be many intermediate CA servers added in the future, so we don't want to update the channel configuration each time we have the new intermediate CAs. So once we registered the ORG2's ROOT CA(when we set up the network first time), we want to trust all users enrolled from it's intermediate CA(s).



    I think there should be a way to tell the network to trust all the users enrolled from any intermediate CAs if the intermediate CA is from ORG2's root CA.










    share|improve this question




























      0












      0








      0








      We already have the the fabric network set up. There are ORG1 and ORG2 in the consortium defined in configtx.yaml already. Each organizations has its own Root CAs. And, ORG2 has an intermediate CA in addition.



      configtx.yaml:



      ---
      ################################################################################
      #
      # ORGANIZATIONS
      #
      # This section defines the organizational identities that can be referenced
      # in the configuration profiles.
      #
      ################################################################################
      Organizations:
      - &OrdererOrg
      Name: OrdererOrg
      ID: ORDERER
      MSPDir: crypto-config/ordererOrganizations/ordererorg/msp
      Policies: &OrdererOrgPolicies
      Readers:
      Type: Signature
      Rule: "OR('ORDERER.member')"
      Writers:
      Type: Signature
      Rule: "OR('ORDERER.member')"
      Admins:
      Type: Signature
      Rule: "OR('ORDERER.admin')"

      - &ORG1
      Name: ORG1
      ID: ORG1
      MSPDir: crypto-config/peerOrganizations/ORG1.com/msp
      Policies: &Org1Policies
      Readers:
      Type: Signature
      Rule: "OR('ORG1.member')"
      Writers:
      Type: Signature
      Rule: "OR('ORG1.member')"
      Admins:
      Type: Signature
      Rule: "OR('ORG1.admin')"
      AnchorPeers:
      - Host: peer0
      Port: 7051

      - &ORG2
      Name: ORG2
      ID: ORG2
      MSPDir: crypto-config/ORG2/ORG2.com/msp
      Policies: &Org2Policies
      Readers:
      Type: Signature
      Rule: "OR('ORG2.member')"
      Writers:
      Type: Signature
      Rule: "OR('ORG2.member')"
      Admins:
      Type: Signature
      Rule: "OR('ORG2.admin')"
      AnchorPeers:
      - Host: peer1
      Port: 7051

      .
      .
      .
      .
      SingleMSPSolo:
      <<: *ChannelDefaults
      Orderer:
      <<: *OrdererDefaults
      Addresses:
      - kiesnet-dev-orderer:7050
      Organizations:
      - *OrdererOrg
      Consortiums:
      DevConsortium:
      Organizations:
      - *ORG1
      - *ORG2

      SingleMSPChannel:
      Consortium: DevConsortium
      Application:
      <<: *ApplicationDefaults
      Organizations:
      - *ORG1
      - *ORG2



      ORG2's root CA and the intermediate CA will have the same MSPIDs (which is "ORG2") and the end users will be only enrolled from the intermediate CA server.



      Here's the problem.
      in the above configtx.yaml, "MSPDir: crypto-config/ORG/ORG2.com/msp" is the the ROOT CA's msp directory path, NOT the intermediate's.



      However, the end users are only enrolled from the intermediate server, and when those users are trying to query/invoke to ORG1's peer, we get this error:



      Error: error endorsing query: rpc error: code = Unknown desc = access denied: channel [ORG1] creator org [ORG2] - proposal response: <nil>


      If we test with the end user's certificate which was enrolled from ORG2's root CA, the user can query/invoke to ORG1's peer just fine.



      How we tell the network(channel) to trust the users enrolled from the intermediate CA without doing the peer channel update or modifying the channel config file?



      the business reason behind on this is that from ORG2, there can be many intermediate CA servers added in the future, so we don't want to update the channel configuration each time we have the new intermediate CAs. So once we registered the ORG2's ROOT CA(when we set up the network first time), we want to trust all users enrolled from it's intermediate CA(s).



      I think there should be a way to tell the network to trust all the users enrolled from any intermediate CAs if the intermediate CA is from ORG2's root CA.










      share|improve this question
















      We already have the the fabric network set up. There are ORG1 and ORG2 in the consortium defined in configtx.yaml already. Each organizations has its own Root CAs. And, ORG2 has an intermediate CA in addition.



      configtx.yaml:



      ---
      ################################################################################
      #
      # ORGANIZATIONS
      #
      # This section defines the organizational identities that can be referenced
      # in the configuration profiles.
      #
      ################################################################################
      Organizations:
      - &OrdererOrg
      Name: OrdererOrg
      ID: ORDERER
      MSPDir: crypto-config/ordererOrganizations/ordererorg/msp
      Policies: &OrdererOrgPolicies
      Readers:
      Type: Signature
      Rule: "OR('ORDERER.member')"
      Writers:
      Type: Signature
      Rule: "OR('ORDERER.member')"
      Admins:
      Type: Signature
      Rule: "OR('ORDERER.admin')"

      - &ORG1
      Name: ORG1
      ID: ORG1
      MSPDir: crypto-config/peerOrganizations/ORG1.com/msp
      Policies: &Org1Policies
      Readers:
      Type: Signature
      Rule: "OR('ORG1.member')"
      Writers:
      Type: Signature
      Rule: "OR('ORG1.member')"
      Admins:
      Type: Signature
      Rule: "OR('ORG1.admin')"
      AnchorPeers:
      - Host: peer0
      Port: 7051

      - &ORG2
      Name: ORG2
      ID: ORG2
      MSPDir: crypto-config/ORG2/ORG2.com/msp
      Policies: &Org2Policies
      Readers:
      Type: Signature
      Rule: "OR('ORG2.member')"
      Writers:
      Type: Signature
      Rule: "OR('ORG2.member')"
      Admins:
      Type: Signature
      Rule: "OR('ORG2.admin')"
      AnchorPeers:
      - Host: peer1
      Port: 7051

      .
      .
      .
      .
      SingleMSPSolo:
      <<: *ChannelDefaults
      Orderer:
      <<: *OrdererDefaults
      Addresses:
      - kiesnet-dev-orderer:7050
      Organizations:
      - *OrdererOrg
      Consortiums:
      DevConsortium:
      Organizations:
      - *ORG1
      - *ORG2

      SingleMSPChannel:
      Consortium: DevConsortium
      Application:
      <<: *ApplicationDefaults
      Organizations:
      - *ORG1
      - *ORG2



      ORG2's root CA and the intermediate CA will have the same MSPIDs (which is "ORG2") and the end users will be only enrolled from the intermediate CA server.



      Here's the problem.
      in the above configtx.yaml, "MSPDir: crypto-config/ORG/ORG2.com/msp" is the the ROOT CA's msp directory path, NOT the intermediate's.



      However, the end users are only enrolled from the intermediate server, and when those users are trying to query/invoke to ORG1's peer, we get this error:



      Error: error endorsing query: rpc error: code = Unknown desc = access denied: channel [ORG1] creator org [ORG2] - proposal response: <nil>


      If we test with the end user's certificate which was enrolled from ORG2's root CA, the user can query/invoke to ORG1's peer just fine.



      How we tell the network(channel) to trust the users enrolled from the intermediate CA without doing the peer channel update or modifying the channel config file?



      the business reason behind on this is that from ORG2, there can be many intermediate CA servers added in the future, so we don't want to update the channel configuration each time we have the new intermediate CAs. So once we registered the ORG2's ROOT CA(when we set up the network first time), we want to trust all users enrolled from it's intermediate CA(s).



      I think there should be a way to tell the network to trust all the users enrolled from any intermediate CAs if the intermediate CA is from ORG2's root CA.







      hyperledger-fabric






      share|improve this question















      share|improve this question













      share|improve this question




      share|improve this question








      edited Mar 28 at 9:31









      Vadim Kotov

      5,4187 gold badges36 silver badges49 bronze badges




      5,4187 gold badges36 silver badges49 bronze badges










      asked Mar 28 at 1:51









      Sam LeeSam Lee

      367 bronze badges




      367 bronze badges

























          0






          active

          oldest

          votes










          Your Answer






          StackExchange.ifUsing("editor", function ()
          StackExchange.using("externalEditor", function ()
          StackExchange.using("snippets", function ()
          StackExchange.snippets.init();
          );
          );
          , "code-snippets");

          StackExchange.ready(function()
          var channelOptions =
          tags: "".split(" "),
          id: "1"
          ;
          initTagRenderer("".split(" "), "".split(" "), channelOptions);

          StackExchange.using("externalEditor", function()
          // Have to fire editor after snippets, if snippets enabled
          if (StackExchange.settings.snippets.snippetsEnabled)
          StackExchange.using("snippets", function()
          createEditor();
          );

          else
          createEditor();

          );

          function createEditor()
          StackExchange.prepareEditor(
          heartbeatType: 'answer',
          autoActivateHeartbeat: false,
          convertImagesToLinks: true,
          noModals: true,
          showLowRepImageUploadWarning: true,
          reputationToPostImages: 10,
          bindNavPrevention: true,
          postfix: "",
          imageUploader:
          brandingHtml: "Powered by u003ca class="icon-imgur-white" href="https://imgur.com/"u003eu003c/au003e",
          contentPolicyHtml: "User contributions licensed under u003ca href="https://creativecommons.org/licenses/by-sa/3.0/"u003ecc by-sa 3.0 with attribution requiredu003c/au003e u003ca href="https://stackoverflow.com/legal/content-policy"u003e(content policy)u003c/au003e",
          allowUrls: true
          ,
          onDemand: true,
          discardSelector: ".discard-answer"
          ,immediatelyShowMarkdownHelp:true
          );



          );













          draft saved

          draft discarded


















          StackExchange.ready(
          function ()
          StackExchange.openid.initPostLogin('.new-post-login', 'https%3a%2f%2fstackoverflow.com%2fquestions%2f55389030%2fhow-to-add-new-organization-without-updating-the-channel-configurationchannel-u%23new-answer', 'question_page');

          );

          Post as a guest















          Required, but never shown

























          0






          active

          oldest

          votes








          0






          active

          oldest

          votes









          active

          oldest

          votes






          active

          oldest

          votes




          Is this question similar to what you get asked at work? Learn more about asking and sharing private information with your coworkers using Stack Overflow for Teams.







          Is this question similar to what you get asked at work? Learn more about asking and sharing private information with your coworkers using Stack Overflow for Teams.



















          draft saved

          draft discarded
















































          Thanks for contributing an answer to Stack Overflow!


          • Please be sure to answer the question. Provide details and share your research!

          But avoid


          • Asking for help, clarification, or responding to other answers.

          • Making statements based on opinion; back them up with references or personal experience.

          To learn more, see our tips on writing great answers.




          draft saved


          draft discarded














          StackExchange.ready(
          function ()
          StackExchange.openid.initPostLogin('.new-post-login', 'https%3a%2f%2fstackoverflow.com%2fquestions%2f55389030%2fhow-to-add-new-organization-without-updating-the-channel-configurationchannel-u%23new-answer', 'question_page');

          );

          Post as a guest















          Required, but never shown





















































          Required, but never shown














          Required, but never shown












          Required, but never shown







          Required, but never shown

































          Required, but never shown














          Required, but never shown












          Required, but never shown







          Required, but never shown







          Popular posts from this blog

          SQL error code 1064 with creating Laravel foreign keysForeign key constraints: When to use ON UPDATE and ON DELETEDropping column with foreign key Laravel error: General error: 1025 Error on renameLaravel SQL Can't create tableLaravel Migration foreign key errorLaravel php artisan migrate:refresh giving a syntax errorSQLSTATE[42S01]: Base table or view already exists or Base table or view already exists: 1050 Tableerror in migrating laravel file to xampp serverSyntax error or access violation: 1064:syntax to use near 'unsigned not null, modelName varchar(191) not null, title varchar(191) not nLaravel cannot create new table field in mysqlLaravel 5.7:Last migration creates table but is not registered in the migration table

          용인 삼성생명 블루밍스 목차 통계 역대 감독 선수단 응원단 경기장 같이 보기 외부 링크 둘러보기 메뉴samsungblueminx.comeh선수 명단용인 삼성생명 블루밍스용인 삼성생명 블루밍스ehsamsungblueminx.comeheheheh

          155 수학 과학 기타 둘러보기 메뉴eh추가해eh문서를 완성해