--- Log opened Tue Mar 19 00:00:31 2024 01:50 < josie> setavenger: its usable in that it works, but not for anything production ready. i would also expect changes to the API as we get more review 05:22 < setavenger> Josie: for the moment I'm just trying to get the performance up and to see what's technically possible. I did manage to get another big boost in efficiency by hacking a C++ wrapper over libsecp and importing that into the app code. 05:22 < setavenger> I think I read something about benchmarks in the PR, are they available somewhere? 05:24 < setavenger> Would be interesting to compare the performances. Maybe I can reduce it by a couple more milliseconds with better structured code. 06:00 < josie> setavenger: ended up not pursuing the benchmarks (at least for now). currently, im working on a PoC for the API that reduces the number of function calls needed. in theory, this should give some speed gains 08:14 < setavenger> Josie: I see, I think I got to a somewhat decent performance with the ECC computations now, obviously faster would be better but it's pretty fast now. Would have been nice to get a baseline or comparison. 08:14 < setavenger> Also, will do a larger scan (one month?) for bigger benchmarks but first I'll need to optimise networking. I think those numbers could be interesting as well. 09:02 < josie> setavenger: awesome, looking forward to the numbers! one number id be interested in is how long does it take to scan the whole utxo set of taproot outputs (today) and how long would it take to scan if *every* in the utxo set was a taproot output 09:14 < josie> scanning under the assumption that everything in the utxo set is taproot (and has silent payment valid inputs) is the "worst case" scenario 13:35 < setavenger> Josie: If everything is taproot: Now considering that this is hypothetical I'm going to ignore networking and comparisons against filters. This is tweak processing time only. The Current processing time on my phone for one tweak to compute the pubkey is ~703µs. Using your numbers from the BIP appendix we have ~3500txs per block and from taproot to 834761 there are 125128 blocks. 13:35 < setavenger> That gives us about 85minutes just to compute the pubKeys from the tweaks. 13:35 < setavenger> Networking depends and comparisons against the filter take ~100-300ms but that's unoptimised JS code. 13:39 < setavenger> Can probably optimise a bit more on the ~703µs but I'm not sure how much lower one can realistically push this. Networking can be parallelised to some degree but that's still WIP. Filter comparison can most likely be cut down a lot by using C/C++, just like ECC mul/add. 15:12 < setavenger> Actually now that I’m thinking about it. I’m currently calling C/C++ for every tweak. I suspect, that if I were to just pass an array of tweaks and the keys, that I could reduce the average time per tweak by a couple more µs --- Log closed Wed Mar 20 00:00:32 2024