Skip to content

Conversation

@arminsabouri
Copy link
Collaborator

@arminsabouri arminsabouri commented Dec 29, 2025

And off my personal fork

Drafting for now. Looks like bitcoin-async-client uses reqwest with the http2 feature flag (h2 is not used from what I can tell upstream) and this causes our reqwest clients to send http2 payloads. The dir only serves http1 reqs. Need to debug further. Should be able to just require our reqwest clients in the e2e and int. tests to use http1 only.

---- e2e::send_receive_payjoin_v2 stdout ----
OHTTP relay binding to port [::]:45663
2025-12-29T14:54:29.375932Z ERROR payjoin_directory: Error serving connection: hyper::Error(Parse(VersionH2))

thread 'e2e::send_receive_payjoin_v2' (98110) panicked at payjoin-cli/tests/e2e.rs:218:9:
send_receive failed: "Bad request"
note: run with `RUST_BACKTRACE=1` environment variable to display a backtrace


Update: updated all reqwest clients to use http1 explictly.

Pull Request Checklist

Please confirm the following before requesting review:

@arminsabouri arminsabouri force-pushed the upgrade-bitcoin-async-client branch from e250d7f to 8a09e97 Compare December 29, 2025 15:49
@coveralls
Copy link
Collaborator

coveralls commented Dec 29, 2025

Pull Request Test Coverage Report for Build 20577112052

Details

  • 12 of 13 (92.31%) changed or added relevant lines in 4 files are covered.
  • No unchanged relevant lines lost coverage.
  • Overall coverage increased (+0.001%) to 82.903%

Changes Missing Coverage Covered Lines Changed/Added Lines %
payjoin/src/core/io.rs 1 2 50.0%
Totals Coverage Status
Change from base Build 20575392805: 0.001%
Covered Lines: 9669
Relevant Lines: 11663

💛 - Coveralls

@arminsabouri arminsabouri force-pushed the upgrade-bitcoin-async-client branch from 8a09e97 to 941b9e8 Compare December 29, 2025 15:54
And off my personal fork.
This commit updates all reqwests clients instantiations to use http1
explicitly. `[email protected]` uses reqwest with the h2 flag
on causing our reqs to use h2 which the directory will not serve.
@arminsabouri arminsabouri force-pushed the upgrade-bitcoin-async-client branch from 941b9e8 to baf60d4 Compare December 29, 2025 16:03
@arminsabouri arminsabouri marked this pull request as ready for review December 29, 2025 16:57
@benalleng
Copy link
Collaborator

Nice, I believe other than uniffi-dart this is our last dep pointed to a commit rev, one step closer to 1.0!

About forcing http1 should we also force this in the ohttp-relay? reqwest was added here payjoin/ohttp-relay@7bda6bd

Or is it only a problem as bitcoind-async-client already has the http2 feature forced thus requiring the explicit use of http1 where it is referenced

@arminsabouri
Copy link
Collaborator Author

Nice, I believe other than uniffi-dart this is our last dep pointed to a commit rev, one step closer to 1.0!

About forcing http1 should we also force this in the ohttp-relay? reqwest was added here payjoin/ohttp-relay@7bda6bd

Or is it only a problem as bitcoind-async-client already has the http2 feature forced thus requiring the explicit use of http1 where it is referenced

The latter
I don't think we need to force it on the relay. Its probably already defaulting to http1.

Copy link
Collaborator

@spacebear21 spacebear21 left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

utACK baf60d4

FWIW supporting HTTP2 in the directory has been discussed here and is tracked as part of #941

@spacebear21 spacebear21 merged commit 50da0d5 into payjoin:master Dec 31, 2025
9 checks passed
@arminsabouri arminsabouri deleted the upgrade-bitcoin-async-client branch December 31, 2025 15:17
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 this pull request may close these issues.

4 participants