1. 11 Mar, 2019 1 commit
    • Jason Yellick's avatar
      FAB-14502 Clarify deliver 'Errored' message · c141d798
      Jason Yellick authored
      
      
      The deliver service is currently quite ambiguous about the error
      condition when the channel returned by Errored() closes.  This is likely
      because this message could be returned by a peer or orderer.  However,
      in reality, the only time this condition ever occurs is because of a
      consenter error.  In the interest of serviceability, this CR makes the
      error message more specific, making a note that we should handle
      generalizing it if the peer ever implements this function.
      
      Change-Id: I5c2dfb8fa4ba32c34660b69b5facf90291ee17f3
      Signed-off-by: default avatarJason Yellick <jyellick@us.ibm.com>
      c141d798
  2. 29 Nov, 2018 1 commit
  3. 30 Oct, 2018 1 commit
  4. 10 Oct, 2018 1 commit
  5. 19 Sep, 2018 1 commit
  6. 21 Jun, 2018 1 commit
    • Jason Yellick's avatar
      FAB-10799 Cancel iterator with context · 7aff3f7a
      Jason Yellick authored
      
      
      Presently, if in the middle of a deliver request, the server will block
      indefinitely waiting for block creation or internal error before
      returning.  This means that if the client requests blocks forever, then
      hangs up, the client resources, including the ledger iterator and the
      gRPC stack will not be released until a block is produced.
      
      Change-Id: Ie8d9069ed4ad4dca436e388bebc23012b83eb7e9
      Signed-off-by: default avatarJason Yellick <jyellick@us.ibm.com>
      7aff3f7a
  7. 13 Apr, 2018 1 commit
  8. 26 Mar, 2018 1 commit
  9. 11 Jan, 2018 1 commit
    • Artem Barger's avatar
      [FAB-7419] Filtering block to leverage deliver impl. · 4b821a16
      Artem Barger authored
      
      
      This commit adds a new service API to handle the deliver request to
      obtain filtered blocks while still leveraging existing implementation of
      the deliver service which was initially introduced inside
      AtomicBroadcast RPC service. This commit takes care to preserve clear
      separation of concerns by abstracting out common deliver logic making it
      possible to specify delivery content while concentrating on concrete
      implementation.
      
      Change-Id: I93c49c8358ff765d50b4acc717907be2182976dd
      Signed-off-by: default avatarArtem Barger <bartem@il.ibm.com>
      4b821a16
  10. 10 Jan, 2018 1 commit
  11. 06 Jan, 2018 1 commit
  12. 05 Jan, 2018 1 commit
    • Will Lahti's avatar
      [FAB-7604] Peer deliver unusable when pol. not defined · 5fa00ffc
      Will Lahti authored
      
      
      After FAB-7521, the peer deliver service is unusable because the
      BLOCKEVENT policy is not set by default. This CR uses the aclmgmt
      package, which will check for the policy and, if not set, use the
      default value (in this case, channel readers). It also restores the
      behave tests to their previous state to ensure peer deliver remains
      usable by default.
      
      Change-Id: I46e71853881271539e28a110ce8b81d3bd248d19
      Signed-off-by: default avatarWill Lahti <wtlahti@us.ibm.com>
      5fa00ffc
  13. 03 Jan, 2018 1 commit
    • Artem Barger's avatar
      [FAB-7521] Lookup correct policy name · b4a1ec82
      Artem Barger authored
      
      
      While reusing deliverer API as a blocks event source at peer we need to
      lookup for correct policy name based on the RSCC resource API definition
      name. This commit adds a factory method which introduces level of
      indirection to allow lookup of correct policy name based on the deliver
      API initialization handler.
      
      Change-Id: Ib896736793722549f035cca9e0b6a4c871050615
      Signed-off-by: default avatarArtem Barger <bartem@il.ibm.com>
      b4a1ec82
  14. 15 Dec, 2017 1 commit
  15. 07 Dec, 2017 2 commits
    • Will Lahti's avatar
      [FAB-7273] Update deliver to facilitate usage on peer · c39d69bd
      Will Lahti authored
      
      
      This CR updates the deliver functionality to facilitate its usage on
      a peer as well as an orderer.
      
      This required:
      - modifying the signal logic for when a new block is available due to
       the difference in addition of blocks to the ledger between the orderer
       and the peer. The signal logic is now handled using the iterator
       itself, which signals when it finds a new block
      - adding a policy variable to the deliver handler to ensure the peer
      and orderer each can control access to deliver
      
      Change-Id: Iebb6c25a8c5ac32d65f909eb0519f26bfde0dc31
      Signed-off-by: default avatarWill Lahti <wtlahti@us.ibm.com>
      c39d69bd
    • Will Lahti's avatar
      [FAB-7048] Move deliver from orderer to fabric/common · 0dfe4f35
      Will Lahti authored
      
      
      This CR moves deliver from the orderer to fabric/common. This is being
      done to support the future implementation of deliver on the peer.
      
      Change-Id: If077f2c05b5a10fdeb4e6ac315111495304e4c5e
      Signed-off-by: default avatarWill Lahti <wtlahti@us.ibm.com>
      0dfe4f35
  16. 26 Nov, 2017 1 commit
    • yacovm's avatar
      [FAB-7105] Move orderer/common/util to common/util · 943f0ce5
      yacovm authored
      
      
      The orderer/common/util only contains 1 file (net.go)
      that contains only 1 function (ExtractRemoteAddress).
      
      This function can be used by any gRPC service, and therefore
      its place should be in common/util.
      
      Change-Id: Ie0fc7890a9091337ba4f85f113de9807e346da34
      Signed-off-by: default avataryacovm <yacovm@il.ibm.com>
      943f0ce5
  17. 27 Sep, 2017 1 commit
    • Jason Yellick's avatar
      [FAB-6294] Fix stale reference to policy manager · 44170d32
      Jason Yellick authored
      
      
      The policy manager used to be stateful, and it was safe to retain a
      reference to it.  However, this added considerable complexity and
      introduced the possibility for subtle races so it was turned into an
      immutable structure.
      
      The orderer signature filter was not updated to pull a fresh reference
      on each invocation, but instead still retains only a reference to the
      original policy manager.  This CR updates the signature filter to fetch
      a fresh reference upon each invocation.
      
      Change-Id: Ibaf8a18cc992feaf737047c87ce8973450aa1d19
      Signed-off-by: default avatarJason Yellick <jyellick@us.ibm.com>
      44170d32
  18. 12 Sep, 2017 1 commit
  19. 16 Aug, 2017 1 commit
  20. 04 Aug, 2017 1 commit
    • Jason Yellick's avatar
      [FAB-5445] Consolidate filters into msgprocessor · cc5ca309
      Jason Yellick authored
      
      
      The individual filters are currently in subpackages of the msgprocessor
      package.  However, the filters are simple enough this is probably no
      longer warranted.
      
      Additionally, in order to return more sane status codes, it's necessary
      to have shared error definitions, which is difficult to do without
      import cycles with the sub-package structure.
      
      This CR moves the individual filter code to msgprocessor.
      
      Change-Id: I6617f9b053345446d4636e1b62b7daf2280dee42
      Signed-off-by: default avatarJason Yellick <jyellick@us.ibm.com>
      cc5ca309
  21. 27 Jul, 2017 3 commits
    • Jason Yellick's avatar
      [FAB-5317] Cleanup filters package cruft · d139caea
      Jason Yellick authored
      
      
      The filters package has been changed significantly over the course of
      development, and especially so with the recent removal of the committers
      concept.  This has left a lot of cruft which actually makes the package
      less usable and less testable.
      
      This CR removes all that cruft, resulting in a significant decrease in
      lines of code, while improving the quality of the tests.
      
      Change-Id: I3dc131b5775bde3b198b6f33438a076041a38ed0
      Signed-off-by: default avatarJason Yellick <jyellick@us.ibm.com>
      d139caea
    • Jason Yellick's avatar
      [FAB-5270] Remove filters from multichannel · 204f0f40
      Jason Yellick authored
      
      
      The only consumer of the filters framework is now the msgprocessor
      package.
      
      This CR removes all of the filter references from multichannel, and
      moves the filter code from fabric/orderer/common to
      fabric/orderer/common/msgprocessor.
      
      Change-Id: I73a562887776086c62212167c71bd72c8894b286
      Signed-off-by: default avatarJason Yellick <jyellick@us.ibm.com>
      204f0f40
    • Jason Yellick's avatar
      [FAB-5269] Rm filter committers entirely · 9018aea8
      Jason Yellick authored
      
      
      The filter committers are no longer needed, as the blockcutter no longer
      returns them.
      
      This CR moves the small bit of remaining logic from the filter
      committers into chainsupport.go and then removes the entire concept of
      the filter.Committer from the codebase.
      
      Change-Id: I4471ebe4b26c17669afc53fcef30b4a393276f14
      Signed-off-by: default avatarJason Yellick <jyellick@us.ibm.com>
      9018aea8
  22. 19 Jul, 2017 1 commit
    • Jason Yellick's avatar
      [FAB-5263] Reorganize orderer dir · 45da2580
      Jason Yellick authored
      
      
      The orderer directory has been overdue for being organized for some time
      now.
      
      With the change series of FAB-5258 there is a significant amount of code
      being rearranged already, so it makes sense to organize the directory at
      the same time, as the imports etc. will already be changing.
      
      The new structure is very simple:
      
      fabric/orderer - Contains the startup/main code
      
      fabric/orderer/consensus - Contains the individual consensus plugins for
      the orderer - ie Kafka/Solo, and eventually SBFT
      
      fabric/orderer/common - Contains the common code which feeds
      transactions to the consensus plugin, and satisfies the orderer
      atomicbroadcast API definition
      
      Change-Id: I112044dd5ade212378dab6c176265b76eb68ca80
      Signed-off-by: default avatarJason Yellick <jyellick@us.ibm.com>
      45da2580
  23. 12 Jul, 2017 1 commit
    • Luis Sanchez's avatar
      [FAB-2669] use fs ledger's blockstore iterator · e87c8157
      Luis Sanchez authored
      
      
      - Updated the orderer's file ledger to use it's underlying
        blockstore ledger impl's iterator APIs.
      - Blockstore iterators must be explicitly closed to avoid
        leaking resources, so now orderer/ledger.Iterator must
        also be explicitly closed. Added Close() to the
        orderer/ledger.Iterator interface.
      
      Change-Id: Id838a661a11bf5b64a0cbb57d75a27d69d251269
      Signed-off-by: default avatarLuis Sanchez <sanchezl@us.ibm.com>
      e87c8157
  24. 15 Jun, 2017 1 commit
  25. 11 Jun, 2017 1 commit
    • Jason Yellick's avatar
      [FAB-4538] Disconnect deliver clients after revoke · 177fb342
      Jason Yellick authored
      
      
      If a client of the Deliver interface requests to seek until max_uint64,
      then this client will stay connected receiving blocks indefinitely.
      
      If that client's access is revoked, either by removing the organization
      from the channel, or the client's certificate is revoked, then this
      client is not disconnected, and will continue to receive blocks
      indefinitely.
      
      This CR causes the Deliver code to check the configuration sequence
      number before each block is delivered.  If the configuration sequence
      has been incremented, then the client's authorization is checked once
      more and ejected if the new configuration does not permit the client's
      request.
      
      Change-Id: Ie852a9a8d435917ef1e7dce2025122c791fc9248
      Signed-off-by: default avatarJason Yellick <jyellick@us.ibm.com>
      177fb342
  26. 08 Jun, 2017 1 commit
    • Jason Yellick's avatar
      [FAB-4431] Orderer multichain api consenter errors · 2590cce8
      Jason Yellick authored
      
      
      The orderer multichain consenter API currently does not provide a
      mechanism to provide feedback for a channel when the consenter is out of
      sync or is otherwise not producing data for that channel.
      
      This CR adds an Errored() method to the common consenter Chain
      interface, and consumes that API via the Deliver common code.
      
      It provides only a skeleton implementation for the consenter
      implementatinos (Kafka and Solo).  The Kafka implementation will provide
      a more robust implementation of the API in the near future.
      
      Change-Id: I22863f2a8b37932a5ecbd5241372e2a5c512571d
      Signed-off-by: default avatarJason Yellick <jyellick@us.ibm.com>
      2590cce8
  27. 01 Jun, 2017 1 commit
    • Jay Guo's avatar
      [FAB-4201] Fix error validation in deliver · a14912f2
      Jay Guo authored
      
      
      This patch fixes several issues in error validation of deliver:
      1. EOF is now caught as normal hangup of gRPC connection, hence
      exit without returning error.
      2. Error of inverse seek position was not caught, which results
      in undesired behavior. Now it returns BAD_REQUEST status.
      3. Some errors were not logged.
      4. Explicit logging level checks are removed, i.e. `isEnabledFor`
      This was intended to improve the performance by reducing memory
      allocations caused by passing in string arguments. However, the
      performance gain is not significant (~ns) and we prefer cleaner
      code.
      
      On the other hand, common logic in tests are extracted into a
      reusable function.
      
      Change-Id: Ib2ff52cd1d9ef767f0918728084ec31c075cc38a
      Signed-off-by: default avatarJay Guo <guojiannan1101@gmail.com>
      a14912f2
  28. 24 Apr, 2017 1 commit
  29. 08 Mar, 2017 1 commit
  30. 07 Mar, 2017 1 commit
  31. 02 Mar, 2017 2 commits
  32. 21 Feb, 2017 1 commit
    • Alessandro Sorniotti's avatar
      [FAB-1392] - Use bytes for headers · 011cd41b
      Alessandro Sorniotti authored
      
      
      This change set ensures that the protobuf representation for headers be in
      bytes. This makes sure that if ever protobuf marshalling is non-deterministic,
      we do not have problems because whenever we hash a header, we do that over
      the serialized version we receive.
      
      Change-Id: I838e0d5dec2f79f88fab63d92bdfb51d92c2f069
      Signed-off-by: default avatarAlessandro Sorniotti <ale.linux@sopit.net>
      011cd41b
  33. 17 Feb, 2017 2 commits
  34. 11 Feb, 2017 2 commits