- 26 Jan, 2017 1 commit
-
-
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:
denyeart <enyeart@us.ibm.com>
-
- 17 Jan, 2017 1 commit
-
-
manish authored
https://jira.hyperledger.org/browse/FAB-1664 This changeset: - Renames package ledger/util/db to ledger/util/leveldbhelper - Implements a leveldb provider (that enables using same leveldb instance as a multiple logical dbs) in util package for being able to reuse across statedb, index, and later for historydb - Implements a provider as a single point of invocation for managing multiple block storage - Uses a single leveldb instance for block storage index - Makes the structures other than providers as private to their respective packages Change-Id: I5f0b3b9aa8ef3ac1ccdce4f3c6fa6d842b5318c1 Signed-off-by:
manish <manish.sethi@gmail.com>
-
- 16 Jan, 2017 1 commit
-
-
denyeart authored
When chaincode is deployed, it fills the peer debug log with many megabytes of binary dumps, making it difficult to troubleshoot through the noise. Change-Id: I7be1814632f0fda272b10793e7e6413b7d1de0e4 Signed-off-by:
denyeart <enyeart@us.ibm.com>
-
- 15 Jan, 2017 1 commit
-
-
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:
denyeart <enyeart@us.ibm.com>
-
- 08 Jan, 2017 1 commit
-
-
manish authored
https://jira.hyperledger.org/browse/FAB-1543 Change-Id: Ib11d1a2fc14cf81dd5380eadf93e73e1c56113e3 Signed-off-by:
manish <manish.sethi@gmail.com>
-
- 14 Dec, 2016 1 commit
-
-
manish authored
https://jira.hyperledger.org/browse/FAB-602 The refactoring allows sharing of transaction execution and validation code across goleveldb and couchdb. This refactoring also allows plugging-in different schemes for various aspects of transaction execution such as maintianing isolation during simulation, validation and commit. Change-Id: I0d3fb1cdff99c3f6f991e7b7469920173f194a87 Signed-off-by:
manish <manish.sethi@gmail.com>
-