fedimint / fedimint

Federated E-Cash Mint
https://fedimint.org/
MIT License
536 stars 209 forks source link

Update rust-bitcoin #2356

Closed jkitman closed 2 weeks ago

jkitman commented 1 year ago

It's one of our main crypto libs we are a few versions behind.

edit (justinmoon): edited this to be "update rust-bitcoin" from "update secp256k1"

elsirion commented 1 year ago

This will have to happen in lock step with rust-bitcoin, miniscript, all the BTC clients using rust-bitcoin structs (bitcoind, esplora, electrum) and possibly some other crates. We need to make sure that all required ones support the same secp version.

EDIT: I don't consider this necessary for alpha btw, it's probably mostly API changes, I doubt any serialization changed. One thing that migth be relevant for alpha: MuSig2 with normal compressed instead of x-only public keys #1458.

elsirion commented 10 months ago

This will likely be part of #2667.

m1sterc001guy commented 7 months ago

This is also blocked on the lightning and lightning-invoice crates. They do not support bitcoin 0.30.1 or secp256k1 0.27.0 yet.

https://crates.io/crates/lightning/0.0.116/dependencies https://crates.io/crates/lightning-invoice/0.24.0/dependencies

benthecarman commented 5 months ago

Latest LDK release is now on 0.30

https://github.com/lightningdevkit/rust-lightning/releases/tag/v0.0.119

EthnTuttle commented 5 months ago

Latest LDK release is now on 0.30

https://github.com/lightningdevkit/rust-lightning/releases/tag/v0.0.119

https://github.com/lightningdevkit/rust-lightning/pull/2799

justinmoon commented 5 months ago

lightningdevkit/rust-lightning#2799

If this is the only regression, I think we can still integrate because the only part of LDK that currently runs in WASM is lightning_invoice and the regression this PR fixes is elsewhere.

I propose we update on master but don't backport it.

tvolk131 commented 4 months ago

If no one's currently working on this, I can give it a shot!

m1sterc001guy commented 4 months ago

I have a broken branch attempting to do this here: https://github.com/m1sterc001guy/fedimint/tree/update_rust_bitcoin

These updates touch a lot of files and some structs in rust-bitcoin removed their Encodable and Decodable traits.

justinmoon commented 3 months ago

Relevant TODO https://github.com/fedimint/fedimint/blob/47eb296afc274c9526163993141edc42f8c8c9d1/fedimint-core/src/session_outcome.rs#L70-L78

tvolk131 commented 2 weeks ago

Unless anyone knows of more work to do for this issue, I think we can mark this as done!

m1sterc001guy commented 2 weeks ago

@tvolk131 is going to make a separate issue for removing bitcoin 29 from the codebase.

benthecarman commented 2 weeks ago

congrats!