fix GetLatestBlock() gRPC (pure block cache) #415
Merged
Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
Fixes #397. If the block cache is still populating (lightwalletd is syncing with zcashd), behave the same as if the cache was fully populated, other than performance.
This turned out to affect only the GetLatestBlock() gRPC. Previously, it would return the height and hash of the latest block in the cache. After this commit, it queries zcashd using the getblockchaininfo, which contains both of those values.
The only possible downside to this change is if the client calls
GetLatestBlock()
very frequently; with this change, each call requires an RPC tozcashd
. But even a frequency of, say, once per second would be completely fine, and there's no reason it would be called more frequently than that (general range).GetBlock() (and GetBlockRange()) already worked correctly; if the requested block isn't in the cache, it requests it from zcashd.