lotus/blockstore
Raúl Kripalani 3795cc2bd2 segregate chain and state blockstores.
This paves the way for better object lifetime management.

Concretely, it makes it possible to:
- have different stores backing chain and state data.
- having the same datastore library, but using different parameters.
- attach different caching layers/policies to each class of data, e.g.
  sizing caches differently.
- specifying different retention policies for chain and state data.

This separation is important because:
- access patterns/frequency of chain and state data are different.
- state is derivable from chain, so one could never expunge the chain
  store, and only retain state objects reachable from the last finality
  in the state store.
2021-02-28 22:49:44 +00:00
..
badger segregate chain and state blockstores. 2021-02-28 22:49:44 +00:00
api.go rename blockstores for consistency. 2021-01-29 23:17:25 +00:00
blockstore.go address review comments. 2021-02-28 19:44:02 +00:00
buffered.go remove unnecessary View casting. 2021-02-28 22:20:29 +00:00
cached.go consolidate all blockstores in blockstore package. 2021-01-29 20:01:00 +00:00
doc.go refine docs. 2021-01-29 23:24:44 +00:00
fallback.go segregate chain and state blockstores. 2021-02-28 22:49:44 +00:00
ipfs.go Merge branch 'master' into refactor/lib/blockstore 2021-02-28 19:55:23 +00:00
mem.go consolidate all blockstores in blockstore package. 2021-01-29 20:01:00 +00:00
metrics.go segregate chain and state blockstores. 2021-02-28 22:49:44 +00:00
sync.go rename blockstores for consistency. 2021-01-29 23:17:25 +00:00
timed_test.go rename blockstores for consistency. 2021-01-29 23:17:25 +00:00
timed.go fix TimedCacheBlockstore#View. 2021-02-28 22:39:00 +00:00