1. 30 Oct, 2017 1 commit
    • manish's avatar
      [FAB-6779] Allow rebuilding block storage indexes · 1daabff7
      manish authored
      
      
      This CR allows building of block storage indexes.
      For rebuilding the indexes, existing index folder would need to be dropped.
      However, please note that this would drop (and rebuild) the indexes for all
      the chains because they share the underlying leveldb.
      
      Also, enabled the flush/synch of batch writting to leveldb (statedb, block indexes, and historydb).
      
      Change-Id: I6a926ab765df4bbb6543d6a3960359d95d60fd68
      Signed-off-by: default avatarmanish <manish.sethi@gmail.com>
      1daabff7
  2. 10 Aug, 2017 1 commit
    • manish's avatar
      [FAB-5654] SideDB - Tx simulation/validation/commit · 8a87b8ae
      manish authored
      
      
      This CR modifies the tranaction simulation, validation, and commit
      code and delivers the end-to-end transaction flow that treats the
      private data in a special manner. This CR mainly leverages the earlier
      submitted independent CRs for sidedb feature for accomplishing this behavior.
      
      This CR also allows ledger to receive the blocks and the pvt data from
      another peer on the same channel (i.e., a peer catching up via state)
      
      This CR is exceptionally large becasue of manily two reasons
      
      1) The way currently the code (and specially the tests) is organized in
      simulation/validation/commit flow, its not easy to submit such kind
      of changes independently that cuase the change in the whole transaction
      processing flow.
      
      2) This CR causes a change in the existing ledger APIs which are used widely
      across other packages (specially in the tests) and hence many files are included
      for fixing the broken dependencies
      
      Change-Id: Id29575176575f4c01793efd3476b68f8364cb592
      Signed-off-by: default avatarmanish <manish.sethi@gmail.com>
      8a87b8ae
  3. 23 May, 2017 1 commit
  4. 22 Apr, 2017 1 commit
    • Will Lahti's avatar
      [FAB-2351] Update loggers to flogging.MustGetLogger · 7132dd54
      Will Lahti authored
      
      
      This CR updates all loggers throughout the code base to use
      `flogging.MustGetLogger`. This function wraps `logging.MustGetLogger`
      and tracks the logger modules defined in the system. This enables the
      ability to set log levels for modules using regular expressions.
      and make it easy to change the levels for any module and all its
      submodules with a single command (e.g. gossip, ledger, msp).
      
      Change-Id: If5d3229ea2312adb56fc21bfdafbed3d967cf1df
      Signed-off-by: default avatarWill Lahti <wtlahti@us.ibm.com>
      7132dd54
  5. 11 Apr, 2017 1 commit
  6. 31 Mar, 2017 1 commit
    • manish's avatar
      Use proto messages for Read-write set · 7d553a69
      manish authored
      https://jira.hyperledger.org/browse/FAB-2810
      
      
      
      This CR:
      - Introduces proto messages
      - Removes custom types for read-write set in package kvledger/txmgmt/rwset
      - Renames the package kvledger/txmgmt/rwset to kvledger/txmgmt/rwsetutil
        and rwset.go to rwset_builder_test.go in order to reflect the purpose
        of the remaining code better
      - Modifies the other packages to use rwset from protos
        and utilities from rwsetutil package
      
      Change-Id: Id01be87903ad30f0eea34ef4033195b17bec3e71
      Signed-off-by: default avatarmanish <manish.sethi@gmail.com>
      7d553a69
  7. 01 Mar, 2017 1 commit
  8. 27 Feb, 2017 1 commit
    • denyeart's avatar
      Clean up peer logging - serviceability · b39b8a8f
      denyeart authored
      
      
      Clean up peer logging for improved serviceability.
      
      INFO level log had a lot of debug information, making it impossible
      to find important INFO information and errors through the noise.
      Changed most of the debug information to use DEBUG level.
      
      After this change, during normal transaction processing there
      will be a single entry in info log per block with messages
      like this:
      
      Channel [myc1]: Created block [1] with 43 transaction(s)
      Channel [myc1]: Created block [2] with 14 transaction(s)
      Channel [myc1]: Created block [3] with 26 transaction(s)
      
      This will make it easy to spot any anomilies in the logs, while
      still tracking block progress.
      
      Confirmed there are good INFO messages for important events
      such as peer initialization and channel creation.
      
      Removed data content from debug messages for enhanced privacy.
      
      Change-Id: I3a0b2f3a07d5c7dcf388a609d11cfa3bcf7bb065
      Signed-off-by: default avatardenyeart <enyeart@us.ibm.com>
      b39b8a8f
  9. 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
  10. 18 Feb, 2017 1 commit
    • Luis Sanchez's avatar
      [FAB-2214] 1st block in chain is block 0, not 1 · e49f25fc
      Luis Sanchez authored
      
      
      Made the following changes to fsblkstorage provider:
      
      * Block numbers start at 0, not 1.
      
      * Blockchain height should be last block number + 1.
      
      * A block's Block.Header.Number should be equal to
        the Blockchain height when AddBlock() is called.
      
      * Updated ledger tests to use random temporary dir.
      
      * Update core endorser tests to generate valid block
        numbers.
      
      Change-Id: I0208cd6a4b9da462c29d06126fa651f4c0dcd2fc
      Signed-off-by: default avatarLuis Sanchez <sanchezl@us.ibm.com>
      e49f25fc
  11. 11 Feb, 2017 1 commit
  12. 09 Feb, 2017 1 commit
    • denyeart's avatar
      [FAB-2052] Finish ledger API GetHistoryForKey() · 9d90fdf6
      denyeart authored
      
      
      Finish the implementation for ledger API GetHistoryForKey().
      
      Lookup the history of key updates by blockNum:tranNum.
      
      For each history record, retrieve the txID and key value
      from block storage. This requires passing a block storage handle
      into the history query executor, and exposing the block storage
      test environment to other packages. Historic txID and key value
      is returned to client to enable simple provenance scenarios.
      
      Added tests for GetHistoryForKey() including recovery scenarios.
      One test required a fix to block storage syncIndex().
      Also tested end-to-end with peer.
      
      Change-Id: I988130e9682f5d8d707c4ec37753bc0e7e297269
      Signed-off-by: default avatardenyeart <enyeart@us.ibm.com>
      9d90fdf6
  13. 03 Feb, 2017 1 commit
    • manish's avatar
      Move Blockstorage code under /fabric/common package · 2a16532c
      manish authored
      https://jira.hyperledger.org/browse/FAB-2022
      
      
      
      This changes introduced by this CR
      - Moves the block storage code from package
      core/ledger/blkstorage to common/ledger/blkstorage
      
      - Splits the ledger_interface.go so as to move common interfaces
      and data type to common/ledger package
      
      - Moves some of the util functions to common/ledger package
      
      - Moves core/ledger/ordererledger package to orderer/ledger/fsledger
      orderer folks can futher rename/refactor this as seems suitable to them
      
      Change-Id: I759e16f00dc2ec9bb62196121083cf48eae76948
      Signed-off-by: default avatarmanish <manish.sethi@gmail.com>
      2a16532c
  14. 27 Jan, 2017 1 commit
    • denyeart's avatar
      Fix history panic on config blocks · cb466969
      denyeart authored
      
      
      Getting a panic error when committer receives a config block
      and attempts to write the tran to history db.
      Fixed by only writing to history db for endorsement transactions.
      
      Change-Id: I32d5e414199d85355eeae84f3e1ae680fe0811f0
      Signed-off-by: default avatardenyeart <enyeart@us.ibm.com>
      cb466969
  15. 26 Jan, 2017 1 commit
    • denyeart's avatar
      [FAB-1762] Refactor couchdb history db to leveldb. · 2c982629
      denyeart authored
      
      
      - Utilize leveldb for history of keys instead of couchdb
      
      - Single leveldb database serves all chains to optimize
        footprint (same structure as leveldb block index database
        and leveldb state database)
      
      - Block commit writes a history key for each key/value
        that is updated in a tran, in the form:
         ns~key~blocknum~trannum
      
      - History database is an index for history of key writes
        over time.  The key values are not included to reduce
        size of database.
      
      - GetHistoryForKey() finds all records starting with ~ns~key
        and returns the transactions that updated the key.
      
      - Subsequent changeset will lookup and return the txid
        and historic value from the block storage.  Client can
        then GetTransactionById to see the historic transactions.
      
      - Since history db size is much reduced, it is now enabled
        by default in core.yaml.
      
      - Upon crash recovery, ledger initialization will ensure
        that both state db and history db in sync with block storage
      
      Reused existing test logic, therefore the changeset
      is relatively large to ensure tests still pass.
      
      Change-Id: I79103aa39957f58d246de5b5295fb40a4b9c033b
      Signed-off-by: default avatardenyeart <enyeart@us.ibm.com>
      2c982629