1. 03 Mar, 2019 1 commit
    • yacovm's avatar
      [FAB-13363] Block verification for onboarding · b6dc844a
      yacovm authored
      
      
      This change set connects the block verification infrastructure
      for onboarding to the production code.
      
      Now, whenever an orderer onboards a channel - it also verifies the blocks
      of the application channels, by:
      
      1) Creating a bundle from the genesis block, which is derived from
         the system channel (which is verified using backward hash chain validation).
      2) Verifying blocks using the bundle.
      3) Replacing the bundle with a new bundle whenever a config block is pulled.
      
      It also adds a check in the integration test, that ensures that no errors
      are reported in the log of the onboarded OSN.
      
      Change-Id: I3c5714f9d4491cdfd78e4e47407925136906d413
      Signed-off-by: default avataryacovm <yacovm@il.ibm.com>
      Signed-off-by: default avatarArtem Barger <bartem@il.ibm.com>
      b6dc844a
  2. 28 Feb, 2019 1 commit
    • Saad Karim's avatar
      [FAB-14331] - Fix flaky Couch DB health check test · 67b42faf
      Saad Karim authored
      
      
      There is a delay between the call to stop container,
      and the container getting removed from the docker network.
      
      Modified the test to poll the health check endpoint until
      the docker container is completely removed and the health
      check returns back the expected result.
      
      Enables the Couch DB health check test [FAB-14333]
      
      Change-Id: If6da40793e63378e6fd79e1d446b66ffeb72af72
      Signed-off-by: default avatarSaad Karim <skarim@us.ibm.com>
      67b42faf
  3. 27 Feb, 2019 15 commits
    • yacovm's avatar
      [FAB-13331] Refactor metadata updates in nwo · 4f802d51
      yacovm authored
      
      
      This change set refactors metadata updates by making them
      use a function that dictates how to handle consensus metadata.
      
      Change-Id: I3aa68e4b268a24887e4cba891e02ebce1a2ec65d
      Signed-off-by: default avataryacovm <yacovm@il.ibm.com>
      4f802d51
    • Artem Barger's avatar
      [FAB-14332] disable flaky CouchDB healthcheck test · c0450096
      Artem Barger authored
      
      
      Change-Id: Ic17894d5eff66a195f93fcccacf2e3115587d7a5
      Signed-off-by: default avatarArtem Barger <bartem@il.ibm.com>
      c0450096
    • yacovm's avatar
      [FAB-13180] Orderer: auto-join existing inactive chains · 4bc13c8e
      yacovm authored
      
      
      This change set makes cluster type OSNs autonomously detect channels
      that exist and that they should be part of (the channel configuration
      has their public credentials as a consenter for the channel),
      but that they do not run chains for, or have the blocks in their ledger.
      
      This can happen from several reasons:
      - The OSN is added to an existing chain, and since it didn't participate
        in the chain so far, it didn't get the blocks that tell it is now
        part of the channel.
      - The OSN tried to detect whether it is part of a channel, but it
        wasn't able, because all OSNs of the system channel returned
        service-unavailable. This can happen if:
        - a leader election takes place
        - the network is acting up so the leadership was lost
        - a channel has been deserted (all OSNs left it).
      
      To take care of such use cases, all OSNs now:
      - Track inactive chains that they know of, but they do not participate in
      - Periodically(*) probe the system channel OSNs to see if they are now
        part of these chains or not.
      - If so, then they replicate the chains, and create instances of them,
        and replace the instances of the inactive chains in the registrar
        with the new instances of type etcdraft.
      
      (*) - 10 seconds after boot, then after 20 seconds,
            then after 40 seconds, etc. etc. eventually- every 5 minutes.
      
      Change-Id: I3c2a84e6f4f402e011e7a895345b3d3982247083
      Signed-off-by: default avataryacovm <yacovm@il.ibm.com>
      Signed-off-by: default avatarArtem Barger <bartem@il.ibm.com>
      4bc13c8e
    • yacovm's avatar
      [FAB-13332] Add cryptogen extend to integration tests · 6e34e329
      yacovm authored
      
      
      This change set adds an ability to call "cryptogen extend"
      in integration tests.
      
      Change-Id: I5db2adbdb1260bf47da33ad1b5df9022a8fb1c95
      Signed-off-by: default avataryacovm <yacovm@il.ibm.com>
      6e34e329
    • yacovm's avatar
      [FAB-13330] Rename GetConfigBlock to GetConfig in nwo · 4ba5d615
      yacovm authored
      
      
      This change sets renames the GetConfigBlock to GetConfig, to fit
      what it actually returns.
      
      Change-Id: Ica00d5e6dab91852767c1c4fd1d8af0454bd1bd5
      Signed-off-by: default avataryacovm <yacovm@il.ibm.com>
      4ba5d615
    • yacovm's avatar
      [FAB-13362] Pulling not servicing chains in onboarding · 12948f81
      yacovm authored
      
      
      An orderer might not have permission to try and probe whether it belongs
      to a certain application channel.
      In addition, since the OSNs of an application channel might be a subset
      of the system channel OSNs, they may be unreachable at the time of
      onboarding, so all we will get from other OSNs is "service unavailable".
      
      This change set addresses this by making that if we try to pull blocks
      in order to see whether we belong to the channel (by pulling the latest block)
      and we only bad responses from all OSNs that say: un-authorized, not available,
      we don't panic. Instead we just skip pulling the chain.
      
      If some orderer returns unauthorized, and the rest either not return
      anything, or return a bad request, unavailable, etc. - we return
      that we are unauthorized.
      
      If some orderer returns service unavailable, and the rest return
      anything that is not unauthorized, then we classify it as service
      unavailable.
      
      If no orderer returns unauthorized/unavailable,
      and all orderers return something bad or not return anything at all -
      we now panic as before, because it means we probably misconfigured the
      node, or we are in a network partition so we don't want to
      skip pulling blocks.
      
      This change set also enchances the reconfiguration integration test
      to include a third channel for which the onboarded OSN is not authorized.
      
      Change-Id: I6f9b0cfe3671794ef1c036b432e77e2ac55b1efd
      Signed-off-by: default avataryacovm <yacovm@il.ibm.com>
      12948f81
    • yacovm's avatar
      [FAB-13441] Properly capture OSN output · c73870ff
      yacovm authored
      
      
      The reconfiguration and onboarding integration tests ensures
      that the OSNs stop logging errors at the end of the test,
      in order to ensure there aren't any not noticed faults
      that occurred due to reconfiguration/onboarding.
      
      The function used the wrong method to obtain a buffer
      that is used to read the process's output.
      
      Change-Id: Ieadae1bb083454b195cbfe52b41582dc9dbbf80a
      Signed-off-by: default avataryacovm <yacovm@il.ibm.com>
      c73870ff
    • yacovm's avatar
      [FAB-13643] Leader crash and failover integration test · 5c3e122f
      yacovm authored
      
      
      This change set adds a test case that:
      
      1) Spawns 3 etcdraft OSNs
      2) Finds out who is the leader
      3) Kills it
      4) Makes sure one of the remaining 2 OSNs takes over.
      
      Change-Id: I6f42003ddd987b7927a0f06018682829844f3994
      Signed-off-by: default avataryacovm <yacovm@il.ibm.com>
      5c3e122f
    • yacovm's avatar
      [FAB-13415] DRY up UpdateConsensusMetadata in nwo · 86cb2d8c
      yacovm authored
      
      
      This change set makes AddConsenter and RemoveConsenter use
      a consensus specific method UpdateEtcdRaftMetadata instead
      of the generic UpdateConsensusMetadata one, to remove
      code duplication.
      
      It also addresses a few nits in etcdraft_reconfig_test.
      
      Change-Id: I86d50fd80d4985df77474c054ce916f0d2fb62e7
      Signed-off-by: default avataryacovm <yacovm@il.ibm.com>
      86cb2d8c
    • yacovm's avatar
      [FAB-13262] typo in configblock.go · f8934536
      yacovm authored
      
      
      whena --> when
      
      Change-Id: I24dd0fb741849293e13db5c1bce9cce3c27934ef
      Signed-off-by: default avataryacovm <yacovm@il.ibm.com>
      f8934536
    • yacovm's avatar
      [FAB-1337] Raft: Commit genesis blocks for non-members · c9996d64
      yacovm authored
      
      
      Currently (before this CR), an onboarded OSN doesn't pull any blocks
      for channels it doesn't participate in.
      
      Aas a result, when the OSN starts up after onboarding - it doesn't have these
      channels in its registrar, and therefore may classify channel
      creation transactions differently than its fellow OSNs that do have
      the channels it didn't pull.
      
      In order to avoid a state fork, this change set makes the OSN
      to commit the genesis block for channels it doesn't participate in.
      
      This is *NOT* done by pulling the genesis blocks, since the OSN may not have
      permissions to do that in the first place, but instead - it creates
      a genesis block from the system channel block that has the channel creation
      transaction.
      
      This change set also changes the integration test for onboarding to
      adjust to the changes, namely - ensures the OSN committed the genesis
      block for a channel it doesn't participate in, and upon Broadcast,
      returns an answer stating it doesn't participate in the channel.
      
      Also, it reduces the run time for the integration test to 50s.
      
      Change-Id: Icf5754df6cedb7725c4d7091c7366ce0b17ff1b7
      Signed-off-by: default avataryacovm <yacovm@il.ibm.com>
      Signed-off-by: default avatarArtem Barger <bartem@il.ibm.com>
      c9996d64
    • yacovm's avatar
      [FAB-13208] Raft Reconfig&Onboarding integration test · a46a55d5
      yacovm authored
      
      
      This change set adds an integration test for etcdraft orderers which:
      
      1) Spawns 3 OSNs of type etcdraft.
      2) Rotates their TLS certificates.
      3) Spawns a fourth OSN of type etcdraft.
      4) Gives it the last config block of the system channel.
      5) Ensures it sync with the channels it needs.
      6) Ensures it doesn't sync with the channels it doesn't need.
      7) Ensures it doesn't log errors to the logs of the orderers.
      
      Change-Id: I7f4cb1b6d841f51aae9f091da80797d1bac3df99
      Signed-off-by: default avataryacovm <yacovm@il.ibm.com>
      a46a55d5
    • yacovm's avatar
      [FAB-13481] Make onboarding code more idiomatic · 532b5382
      yacovm authored
      This change set addresses code review comments from
      https://gerrit.hyperledger.org/r/#/c/28391/ and from
      https://gerrit.hyperledger.org/r/#/c/28385/
      
      ,
      in an attempt to make the orderer code more idiomatic.
      
      Change-Id: I04ac7bc21ee8fc1ccda4e76d8afa53fe527f7f5e
      Signed-off-by: default avataryacovm <yacovm@il.ibm.com>
      Signed-off-by: default avatarArtem Barger <bartem@il.ibm.com>
      532b5382
    • yacovm's avatar
      [FAB-13333] Orderer config update to use orderer creds · d434416f
      yacovm authored
      
      
      This change set makes orderer config updates use orderer
      credentials.
      
      This is needed when we want to update the system channel,
      since we cannot pull blocks from the system channel
      with peer credentials.
      
      Change-Id: Ic5f5749f7ec3e5ee7012b7a9f1d764826608b7d4
      Signed-off-by: default avataryacovm <yacovm@il.ibm.com>
      Signed-off-by: default avatarArtem Barger <bartem@il.ibm.com>
      d434416f
    • yacovm's avatar
      [FAB-13150] Re-enable etcdraft for v2.0 development · 3713cc30
      yacovm authored
      
      
      This change set re-enables etcdraft to resume v2.0 development
      after v1.4 branch is cut.
      
      Change-Id: I384247a9de2763a207bbde4fa8e519d703241ad5
      Signed-off-by: default avataryacovm <yacovm@il.ibm.com>
      Signed-off-by: default avatarArtem Barger <bartem@il.ibm.com>
      3713cc30
  4. 21 Feb, 2019 1 commit
  5. 15 Jan, 2019 1 commit
  6. 14 Jan, 2019 1 commit
  7. 13 Jan, 2019 1 commit
    • Matthias Neugschwandtner's avatar
      [FAB-13593] Ledger synchronization in SBE tests · d2fbc329
      Matthias Neugschwandtner authored
      
      
      The SBE integration tests include cases where the ledger is updated,
      waiting for the event on one peer and then checking the result on
      another peer. This patch adds synchronization that waits until both
      peers have the same ledger height, i.e. the transaction has been
      delivered to both peers.
      
      This is handled similarly in the private data integration tests.
      
      Change-Id: I6b68d3cf9cfeebf6cddd75003b3a946295fb4392
      Signed-off-by: default avatarMatthias Neugschwandtner <eug@zurich.ibm.com>
      (cherry picked from commit 0de5a321b98f60ab1060a2d1e1491880e22558f6)
      d2fbc329
  8. 09 Jan, 2019 1 commit
  9. 07 Dec, 2018 1 commit
  10. 04 Dec, 2018 4 commits
  11. 02 Dec, 2018 1 commit
    • nirro's avatar
      [FAB-12181] rewrite pvtdata e2e tests. · 85262f3f
      nirro authored
      
      
      this change set is to rewrite private data e2e tests using the new test framework.
      as part of this change, will also fix pvtdata e2e tests flakes.
      
      FAB-12181 #done
      
      Change-Id: Ib01765ca76a553d960e144e736042be8b6aa9eab
      Signed-off-by: default avatarnirro <nirro@il.ibm.com>
      85262f3f
  12. 01 Dec, 2018 1 commit
  13. 30 Nov, 2018 2 commits
  14. 29 Nov, 2018 1 commit
  15. 28 Nov, 2018 1 commit
  16. 27 Nov, 2018 1 commit
  17. 22 Nov, 2018 1 commit
  18. 20 Nov, 2018 1 commit
  19. 19 Nov, 2018 3 commits
  20. 16 Nov, 2018 1 commit