1. 16 Jul, 2018 1 commit
    • Jason Yellick's avatar
      FAB-10292 Update protobuf to v1.1.0 · 03104e71
      Jason Yellick authored
      Protobuf was slated to be updated already, but there is a long list of
      incompatibilities with the current source tree.
      
      Thi CR updates protobuf to v1.1.0, and addresses those
      incompatibilities.  Most of the changes are quite rote and fall into one
      of three buckets.
      
      1. Code which uses non-keyed field initialization.  (ie, initializing a
      struct like MyStruct{value1, value2, value3}).  The newer generated
      protos produces structs which have additional non-field members.
      Structs should always be initialized with named fields, regardless of
      whether they are protos or not.
      
      2. Code which assumes that reflect.DeepEqual between two protos with the
      same fields will return true.  This has never been the case, especially
      when considering protos with slice or map fields, but with proto v1.1.0
      with the addition of caching and other members to the proto structs, it
      is even less true.  The correct call is proto.Equal.
      
      3. Code which assumes that proto fails on bad inputs -- the proto ...
      03104e71
  2. 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
  3. 26 Mar, 2018 1 commit
  4. 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
  5. 10 Jan, 2018 1 commit
  6. 06 Jan, 2018 1 commit
  7. 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
  8. 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
  9. 15 Dec, 2017 1 commit
  10. 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
  11. 02 Nov, 2017 1 commit
    • Baohua Yang's avatar
      [FAB-3603] Enable more strict code checking · dcf36eb5
      Baohua Yang authored
      
      
      * Update the linter script to checking go vet result when `make linter`;
      * Add the new created idemix path to the check list;
      * Update source code to pass the more strict checking;
      * Fix several wrong usages in Error msg.
      
      Change-Id: I1ed61745079726df00643206069b56b9846fa1c1
      Signed-off-by: default avatarBaohua Yang <yangbaohua@gmail.com>
      dcf36eb5
  12. 13 Oct, 2017 1 commit
  13. 12 Sep, 2017 1 commit
  14. 16 Aug, 2017 1 commit
  15. 05 Aug, 2017 1 commit
  16. 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
  17. 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
  18. 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
  19. 01 Jun, 2017 2 commits
    • Jay Guo's avatar
      [FAB-4114] Improve UT coverage of deliver · a5913378
      Jay Guo authored
      
      
      Added several tests to improve UT coverage of deliver. Also, some
      existing tests are renamed to be more precise.
      
      Change-Id: I03f6f2f1af9b64251b682ec30561ac27ab2ff4e0
      Signed-off-by: default avatarJay Guo <guojiannan1101@gmail.com>
      a5913378
    • 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
  20. 07 Mar, 2017 1 commit
  21. 02 Mar, 2017 2 commits
  22. 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
  23. 18 Feb, 2017 1 commit
  24. 17 Feb, 2017 2 commits
  25. 13 Feb, 2017 2 commits
  26. 12 Feb, 2017 2 commits
  27. 11 Feb, 2017 2 commits
  28. 08 Feb, 2017 1 commit
  29. 18 Jan, 2017 1 commit
  30. 17 Jan, 2017 1 commit
    • Xi Xue Jia's avatar
      [FAB-1390] Refactor ledger interface names · d58d51be
      Xi Xue Jia authored
      https://jira.hyperledger.org/browse/FAB-1390
      
      
      
      A few things changed according to FAB-1390 description and the latest NCAP
      1. renamed RawLedger interface to OrdererLedger
      2. added PeerLedger interface which keeps a bitmask to indicate invalid transactions as described in NCAP
      3. changed ledger API description in Next-Ledger-Architecture-Proposal
      4. refactored rawledger package to ordererledger in orderer directory
      
      Please notice that with this change set, there'll be cases of inconsistent package names with import path.
      This is a tradeoff to avoid stuttering path names
      These cases are listed as below.
      
      Package name, import path
      (ordererledger, github.com/hyperledger/fabric/orderer/ledger)
      (ramledger, github.com/hyperledger/fabric/orderer/ledger/ram)
      (fileledger, github.com/hyperledger/fabric/orderer/ledger/file)
      
      Change-Id: Ie9580678ee9012ff865d1dc507066f46e106f250
      Signed-off-by: default avatarXi Xue Jia <xixuejia@gmail.com>
      d58d51be
  31. 11 Jan, 2017 2 commits
  32. 10 Jan, 2017 1 commit