wait for zebrad or zcashd to reach sapling activation height #490
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.
This has been broken for a long time. If, when starting up,
lightwalletd
discovers that the backend node (zebrad
orzcashd
) has not yet synced to the Sapling activation height (419200 for mainnet, 280000 for testnet), it should wait until that happens, then sync along with the backend node. But instead,lightwalletd
gets stuck indefinitely. The only way to escape the hang is to stop and restartlightwalletd
(after the backend has passed Sapling activation).This commit fixes the problem; the block ingestor retries every 2 minutes (which was always the intention), rather than trying once and then giving up.
This bug isn't activated often; usually when
lightwalletd
starts, the backend node has already synced beyond the Sapling activation height. (That's why this bug wasn't noticed until now; I noticed it while testinglightwalletd
withzebrad
for a different PR.)I tested this PR on both mainnet and testnet.