View in context in the libbitcoin Slack #general mirror.
ultrafast and did a non-batching run to 250k without checkpoints. So this is just a basic substitution of secp256k1, which is now configurable in the vs2006 IDE against @eynhaender’s published NuGet packages. Run time (Windows maxi) to 250k confirmed was 435 secs vs. the benchmark run of 410 secs. This is live Internet and a small number of blocks/sigs, so subject to some variation. But a respectable time at +6.1%. I'll do a full run validation tonight to get a solid comparison.
WRT batching, I'm running that in CPU mode as well, but as missing something in my config, so still getting only 1 out of 64 threads in ultrafast. The fallback batching, targeting chunks of 1 million sigs is slightly faster than basic algorithm (full validation parallel by block), which is nice to see. No loss at all in the marshaling, which is non-trivial, even some slight net gain.
Still running on horizontally-aligned tables, which is the last bug piece of work. Will be swapping that out for 4 tables for ecdsa and 4 tables for schnorr. Same storage cost, just more bookkeeping. But eliminates rewriting the entire table as it streams for batching, which at .5TB is significant.
Have also integrated cancellation, so that now works on ultrafast batching as well as our fallback batch implementation over secp256k1.
I completed folding the ecdsa single and multi-sig implementations into the same table, so we're capturing over 99% of all ecdsa sigs. More significantly I also completed the implementation of schnorr threshold signature scripts, which are much more complex to capture. I don't yet have a full capture rate total yet for schnorr, But I'd estimate around 90% based on previous scans, bringing the combined ecdsa/schnorr capture rate to 98% or so.