To clarify, I wasn’t contesting using checkpoints, I was contesting trusting the data within checkpoints to be accurate.
Zebra requires a checkpoint shortly after Canopy, because it lets us skip implementing some legacy consensus rules.
So Zebra is not currently usable to verify the historical blockchain, solely the current blockchain as defined by social consensus, trusting old proofs to have been valid for the time because of their inclusion in social consensus. That’s… unfortunate, yet I understand why. Is implementing this verification planned?
Using checkpoints for older blocks is more secure than full verification,
While I agree checkpoints increase security, I do not believe trusting old blocks to have been correct is more secure than so trusting them, especially when one of the main points of an independent implementation is to detect implementation faults. By not performing an independent implementation of the legacy blockchain, it’s trusting the traditional Zcash software to have been correct, and trusting the social consensus of the current blockchain to only have included technically valid blocks. That last part is something I’m explicitly unappreciative of.
Is there a specific reason you want to turn off checkpoints? Or is it just to compare performance using the same operations?
I asked here as I thought it’d be optimal to understand performance. Now, as a person and not as a potential integrator, I’m shifting to discussing it for the purposes of actually independently verifying the Zcash protocol. While social consensus does have Zebra following the correct protocol, without verifying old blocks, Zebra is unable to verify social consensus was properly formed in the past, leaving room for uncaught inconsistency between the technical consensus and social consensus, which, at worst, would demonstrate a prior undiscovered protocol break (not that I believe that likely).
Re: block intake, not to dismiss that as a solid optimization (full support to it), my intention was to figure out memory usage during real-time operations (where blocks are intaked once every few minutes). I believe your logs are still during the sync process? As I’m unsure how else it would have had 3 new blocks within that time frame. Thank you for them though. A few hundred ms of CPU load is manageable.
And thank you for the rough memory information. Now I just have to find the numbers for Zcashd