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

backport: merge bitcoin#6589, #7003, #7087, #7180, #7181, #7257, #7570, #7906, #8049, #8065, #8083, #8168, #8102, #7749, #8113, #8128, partial bitcoin#7136, #8038 (networking backports) #6823

Open
wants to merge 22 commits into
base: master
Choose a base branch
from

Conversation

kwvg
Copy link

@kwvg kwvg commented Jan 27, 2024

Background

In line with the deprecation of TorV2 in Sept 2020 and the removal of TorV2 capabilities from Tor Client in October 2021 (source), Bitcoin Core has implemented TorV3 support with changes culminating with bitcoin#19954, merged October 2020 and released as part of Bitcoin Core 0.21 in January 2021 (source).

Zcash Core's codebase seems to be primarily rooted in Bitcoin Core 0.13 (0.12?) with backports from future versions made to fit the needs of the project. The implementation of TorV3 in Bitcoin Core builds on top of years of development put into their networking and P2P logic, rendering any attempts at backporting those capabilities to Zcash, requiring a retrace of prior steps made upstream.

Description

This pull request is possible primarily thanks to a comment on zcash#5366. zcash#5366 shown the path needed to potentially backport the fewest possible pull requests from upstream in order to achieve TorV3 functionality and the comment summarized the pull requests from which the commits were cherry-picked.

This pull request backports the following pull requests from the list (and their dependencies):

Backport validation with upstream for reviewers is relatively frustrated due to the presence of partial and out-of-order backports present on master requiring code changes being borrowed from those PRs in the future being applied in the past in order for the backport to function as-is but hopefully that is something that can be worked with.

Additional Notes

  • This pull request is a work in progress. I am not familiar with Zcash-isms or intentional changes to networking logic required by Zcash and manual validation will be required to ensure they work as intended.
  • Backports are preferably taken from upstream but if they are taken from other Zcash PRs (like zcash#5366), they have been marked with Co-authored-by in the comment message.

kwvg and others added 21 commits February 2, 2024 16:31
note:
- such changes are already present in `maxuploadtarget.py` and
  `feature_zip239.py` and have been applied to the rest to avoid
  failures due to change in the function signature caused by backports
…and "switch" (giant if/else)

includes:
- b3caa9b

notes:
- it appears the remaining commits have already been backported at some
  point in the past
note:
- does not contain `sendheaders` due to lack of headers-first logic
note:
- does not contain `SENDHEADERS` due to lack of headers-first logic
…s so translations can be shared and reused

Co-authored-by: zancas <zancas@zingolabs.org>
…ection

Co-authored-by: str4d <jack@electriccoin.co>
includes:
- 52cbce2
- 563f375
- 9faa490

notes:
- it appears the remaining commits have already been backported at
  some point in the past
…ctures

Co-authored-by: zancas <zancas@zingolabs.org>
@kwvg kwvg changed the title backport: merge bitcoin#6589, #7003, #7087, #7129, #7180, #7181, #7257, #7570, #7906, #7868, #8049, #8065, #8083, #8168, #8102, #7749, #8113, #8128, partial bitcoin#7136, #8038 (networking backports) backport: merge bitcoin#6589, #7003, #7087, #7180, #7181, #7257, #7570, #7906, #8049, #8065, #8083, #8168, #8102, #7749, #8113, #8128, partial bitcoin#7136, #8038 (networking backports) Feb 2, 2024
@kwvg kwvg marked this pull request as ready for review February 2, 2024 17:43
@daira daira added F-tor Feature: Tor integration A-networking Area: Networking code safe-to-build Used to send PR to prod CI environment labels Feb 3, 2024
@ECC-CI ECC-CI removed the safe-to-build Used to send PR to prod CI environment label Feb 3, 2024
@kwvg
Copy link
Author

kwvg commented Feb 3, 2024

Updates:

  • Resolved HTTPRPC.FailsWithBadAuth regression on Windows CI run by dropping EXPECT_TRUE from ResolveService, explanation provided in code comments above function.

CC: @daira

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
A-networking Area: Networking code F-tor Feature: Tor integration
Projects
None yet
Development

Successfully merging this pull request may close these issues.

None yet

3 participants