Plan to upgrade to 0.21 ?
RCasatta opened this issue · 9 comments
Just wondering if there are plans to upgrade to bitcoin 0.21 ?
In particular, I was curious to test if there were any upgrade in verification speed in libsecp256k1
@RCasatta I had some trouble when updating to 0.21 with c/c++ compiler errors. Would be useful to get some input from someone that knows about c/c++. I just kept playing with it and got it to compile eventually master...jrawsthorne:0d4f17d2e1e052106f658cde0d8621af4c5ac85c
I am not an expert on c/c++ compiler and the reason I open an issue instead of a PR...
I had a quick look at the 0.21 branch from @jrawsthorne excluding the taproot changes after the message in this thread.
The remaining compiler warnings are because in build.rs an ancient C++ standard is used: "-std=c++11". If using "-std=c++17" instead, the warnings disappear.
The changes in that branch look more product specific than C++ specific. They look good to me without diving into every one of those flags.
A slightly updated version is here for 0.22:
https://github.com/weareseba/rust-bitcoinconsensus/tree/0.22
Hey @ulrichard, I was trying to upgrade using your branch but it breaks the "external-secp" feature, I believe its to do with this line
secp_config.compile("libsecp256k1.a");
Would I be right in thinking that if one wants to use an external secp they'd have to pass in a path to this static library?
Yes, that sounds reasonable. But maybe then other things also have to be specified.
I'ts not obvious to me how the "external-secp" feature is used, and I couldn't find any documentation for it.
@elichai git blame informs me you added this feature, are you able to point us in the right direction please?
The external-secp
feature is needed because libbitcoinconsensus exposes its own libsecp symbols.
It's not clear to me at all what's going on here. Yes, Core has moved from C++11 to C++17 (and maybe even 21 now..) so it makes sense that we'd need to bump the C++ version. But I don't understand why any stuff with libsecp needs to be touched at all.