1. 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
  2. 27 Jan, 2017 1 commit
    • Chris Elder's avatar
      FAB-1818 Create data wrapper for state data in CouchDB · ead6705d
      Chris Elder authored
      
      
      Motivation for this change:
      Maintain the version inline with the document, without changing the
      structure/value of the stored document.  This will prevent unexpected
      data values being returned and will prevent possible name collisions
      with document values.
      
      - Create a data wrapper for ledger JSON data stored in CouchDB.
      
      - Return the version based on block number and transaction id
      
      The wrapper will be implemented as a new key named "data" which will
      contain the JSON data for the state database.
      
      Prior to change example:
      
      "doc": {
       "_id": "2",
       "_rev": "2-8ee0c31b21ad650e5b872c0b98e59ab5",
       "version":"1:2"
       "asset_name": "marble2",
       "color": "red",
       "owner": "tom",
       "size": "25"
      }
      
       Following change:
      
       "doc": {
        "_id": "2",
        "_rev": "2-8ee0c31b21ad650e5b872c0b98e59ab5",
        "version":"1:2"
        "data": {
         "asset_name": "marble2",
         "color": "red",
         "owner": "tom",
         "size": "25"
        }
       }
      
      Change-Id: I59391ea926531c46c346fc8448e3d041ca5f3fdf
      Signed-off-by: default avatarChris Elder <chris.elder@us.ibm.com>
      ead6705d
  3. 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
  4. 20 Jan, 2017 1 commit
    • denyeart's avatar
      FAB-1758 Fix CouchDB tests when run in parallel · 963042aa
      denyeart authored
      
      
      When various packages that utilize CouchDB were tested
      all together, we received intermitent test failures
      due to collisions in test envionment.  Fixed by scoping
      each test package to different CouchDB databases (chains).
      
      Change-Id: I93b9043f7a5a60b1052d74e9f5f877f9e19a29d9
      Signed-off-by: default avatardenyeart <enyeart@us.ibm.com>
      963042aa
  5. 15 Jan, 2017 1 commit
    • denyeart's avatar
      FAB-1505 and FAB-1337 Refactor CouchDB code · 9df7b0ea
      denyeart authored
      
      
      FAB-1505 refactors CouchDB code to be aligned with LevelDB structure.
      FAB-1337 applies all ledger tests written for LevelDB against CouchDB.
      
      In order to test the CouchDB refactor,
      had to implement FAB-1337 in same changeset to test.
      
      Like most refactors, this changeset touches a lot of files and code,
      since it is not feasible to do a partial refactor.
      
      Tests related to versioning and deleting have been commented out,
      these will be re-enabled in subsequent changeset when CouchDB
      has the support, in order to keep this changeset size more reasonable.
      
      Change-Id: I0d2d6cca89bd0252f6e84317457a9140b3a0d7a5
      Signed-off-by: default avatardenyeart <enyeart@us.ibm.com>
      9df7b0ea
  6. 08 Jan, 2017 1 commit
  7. 14 Dec, 2016 1 commit