Optimize Zerocoin processing during block validation (batch writes + accumulator fast-path) #1052
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.
Summary
This PR improves block validation and sync performance by reducing unnecessary Zerocoin database work during chain synchronization, while remaining fully consensus-safe and compatible with existing wallets.
The changes focus on:
No protocol rules, data formats, or wallet behavior are changed.
Technical Details
1. Zerocoin DB batching
WriteBlockZerocoinData()to write spends, mints, and pubcoin spends in a single LevelDB batch.2. Accumulator validation optimization
3. Safety and compatibility
Performance Results
Observed improvements during sync testing:
Exact gains vary by hardware, but improvements are consistent across systems.
Testing
Testers may optionally compare against the previous Zerocoin batching PR to observe the incremental improvement from the fast-path and accumulator changes.
Notes
This PR is designed to benefit all users automatically.
No configuration flags or user action is required.