Remove the storage/ directory (sqlite3.go) in favor of storing the most recent N blocks in memory. Remove the transaction table in favor of making queries directly to zcashd (no caching). This is made performant enough by the usage of Insight indices (addressindex, enabled by zcashd --insightexplroer).
If a request for a block from before the cache, the request is sent to zcashd directly. The result is returned to the client but not cached. Possible security issue here, are we exposing interest in blocks to network observes at the lightwalletd and zcashd levels?
Also, remove the cmd/ingest directory, so that there is no ingest executable (leaving only the server executable). Move the block ingestor functionality into the server, and handle reorgs there. This needs careful review.
Criteria:
Remove the
storage/directory (sqlite3.go) in favor of storing the most recent N blocks in memory. Remove the transaction table in favor of making queries directly tozcashd(no caching). This is made performant enough by the usage of Insight indices (addressindex, enabled byzcashd --insightexplroer).If a request for a block from before the cache, the request is sent to zcashd directly. The result is returned to the client but not cached. Possible security issue here, are we exposing interest in blocks to network observes at the lightwalletd and zcashd levels?
Also, remove the
cmd/ingestdirectory, so that there is noingestexecutable (leaving only theserverexecutable). Move the block ingestor functionality into the server, and handle reorgs there. This needs careful review.Criteria: