- 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>
-
- 02 Dec, 2016 1 commit
-
-
Mari Wade authored
Move the couchDB common code to util directory for use by both the state and history database functionality. Change-Id: Ia6ce37a6ae576fdc9faf46666b4ff1a0269bc1f5 Signed-off-by:
Mari Wade <mariwade@us.ibm.com>
-
- 30 Nov, 2016 1 commit
-
-
Mari Wade authored
Add config option in core.yaml for history database to store the transaction history. The history database will be a queryable database such as CouchDB. The default will be false. If set to false, the transaction history will not be persisted in the history database. Move the ledger config directory up one level to ledger to be the config for state and history databases as well as any other ledger functionality that needs a config option. Change-Id: If4607047082b686dd903d8b3805362d0c05e1c64 Signed-off-by:
Mari Wade <mariwade@us.ibm.com>
-