Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Update Bitcoin core? #66

Closed
panicfarm opened this issue Nov 24, 2023 · 26 comments · Fixed by #93
Closed

Update Bitcoin core? #66

panicfarm opened this issue Nov 24, 2023 · 26 comments · Fixed by #93

Comments

@panicfarm
Copy link

As I understand, the bitcoin core version in the dependencies is currently 0.20? That is pre-taproot. When do you plan to update to a more modern version, such as 0.25, that includes taproot?

@tcharding
Copy link
Member

I can push this up my todo list for you. I can't remember what happened before when I tried but I know I got stuck

#42

@panicfarm
Copy link
Author

I can push this up my todo list for you. I can't remember what happened before when I tried but I know I got stuck

#42

It would be great to get this updated, but I do not understand why the latest bitcoinconsensus lib still doesn't have Taproot (we need taproot). Aren't they compiling it from the same bitcoin core code, that has had taproot since 0.22?

@tcharding
Copy link
Member

cc #68

@panicfarm
Copy link
Author

panicfarm commented Dec 7, 2023

Question: It seems that the current libconsensus doesn't have taproot support, they are still working on it. Isn't libconsensus from bitcoin core compiled from the same code as the core itself? Core had taproot since 0.22. Which version are you going to vendor?

cc #68

@tcharding
Copy link
Member

I can't talk for how Bitcoin Core dev works, no clue why bitcoin/bitcoin#21133 has a merge date of October 17 this year?

Which version are you going to vendor?

My intention, and I don't speak for the whole project but just what I have in mind, is to upgrade this lib to the newest version of Core and then, on the way, maintain an LTS for the last 4 versions.

@apoelstra
Copy link
Member

I don't speak for the whole project

This sounds great to me. Thank you for spearheading this and let me know how I can support.

@tcharding
Copy link
Member

If you can just review and smash out the releases then I think we can get there pretty quick (assuming the vendoring script in #70 is correct).

@panicfarm
Copy link
Author

I can't talk for how Bitcoin Core dev works, no clue why bitcoin/bitcoin#21133 has a merge date of October 17 this year?

Here's the answer . Looks like it's finally there?

@tcharding
Copy link
Member

Thanks man, lets keep pushing then to get this lib up to the current version of Core quick as we can.

@Davidson-Souza
Copy link

Davidson-Souza commented Dec 23, 2023

26 released taproot on libbitcoinconsensus. If we want taproot we need to go straight to 26. Any reason why we need to do previous releases?

My intention, and I don't speak for the whole project but just what I have in mind, is to upgrade this lib to the newest version of Core and then, on the way, maintain an LTS for the last 4 versions.

Strong Concept ACK. Let-me know if you need some help.

Edit: link to 26's release notes with:

A new bitcoinconsensus_SCRIPT_FLAGS_VERIFY_TAPROOT flag is available in libconsensus that will verify scripts with the Taproot spending rules.

@panicfarm
Copy link
Author

panicfarm commented Dec 23, 2023

I would suggest going straight to 0.26 with Taproot . This is the main reason why we, for example , need the crate update. Evidently 0.25 did not include taproot

@apoelstra
Copy link
Member

26 released taproot on libbitcoinconsensus. If we want taproot we need to go straight to 26. Any reason why we need to do previous releases?

For completeness, and to practice our new vendoring scheme.

We should be able to bang out every release within a day or two once we get our process working and when it stops being the Christmas/New Year week.

@panicfarm
Copy link
Author

Do you guys have any ETA on the release vendoring v26 core with taproot support?

@tcharding
Copy link
Member

No ETA but we can push a bit harder. It should be trivial now to get to v25 then the 26 release will take a bit of work to add the two new arguments to verify_script.

@Davidson-Souza
Copy link

Perhaps we should also start planning for #29189? Maybe archive this repo once the deprecation lands and move efforts to a libbitcoinkernel binding?

@tcharding
Copy link
Member

Sounds reasonable, I personally hadn't gotten any further than thinking about getting this lib to Bitcoin Core v25.

@apoelstra
Copy link
Member

We'll archive the repo when it's actually dropped from Core.

I had a half-baked idea to replace bitcoinconsensus with bitcoinkernel here .. but you're probably right that the correct approach is to restart in a new crate.

@panicfarm
Copy link
Author

We are very close to open-sourcing a large project. We are using bitcoinconsensus::verify_with_flags() for all inputs. Not having support for Taproot verification is a showstopper for us. We understand the longer-term plans discussed above, but it looks like libbitcoinkernel could take a while on the Bitcoin Core side, and then it will take additional time to wrap it into rust-bitcoin. Is it feasible to update bitcoinconsensus to Bitcoin Core v0.26 for now, so that it includes Taproot support?

@apoelstra
Copy link
Member

@panicfarm have you noticed #79 #80 #83 #85 #87?

I appreciate you are time constrained but we are working on this and will be at Core 26 in two more versions.

@panicfarm
Copy link
Author

@panicfarm have you noticed #79 #80 #83 #85 #87?

I appreciate you are time constrained but we are working on this and will be at Core 26 in two more versions.

Great, I was just concerned that you might archive it before ever getting to Core 26. Do you know approximately when it will be released?

@apoelstra
Copy link
Member

apoelstra commented Feb 7, 2024

Ah, no worries. No, we plan to go up to Bitcoin 26. In 27, Core migrates to CMake but doesn't bring libbitcoinconsensus along. Probably we'll still be able to build it here in 27. In 28+, even if it "builds", it will do so in a weird form where we're just compiling random files from Core in an unsupported combination, so I don't think we should do that even if it seems to work :).

So we'll archive in 26 or 27.

I'll bet we can do it in the next 72 hours. @tcharding wanna push on this? We have 24 out so it's just two more revs.

@panicfarm
Copy link
Author

panicfarm commented Feb 7, 2024

I'll bet we can do it in the next 72 hours. @tcharding wanna push on this? We have 24 out so it's just two more revs.

Thanks! We don't need it that fast, as long as you don't archive it just yet... If you can release it sometime this month, it would be awesome!

@tcharding
Copy link
Member

wanna push on this?

lets go!

@tcharding
Copy link
Member

I think this issue has served its purpose, we are working on the Core v26 release at the moment (#93).

@tcharding
Copy link
Member

tcharding commented Feb 29, 2024

Re-opening because I'm totally stuck doing the v26.0 upgrade and its taking way longer than expected for that reason.

@apoelstra
Copy link
Member

Sorry, I've had the tab open for a week but haven't taken the time to dig into this yet.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging a pull request may close this issue.

4 participants