-
Notifications
You must be signed in to change notification settings - Fork 312
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
penumbra: update ecosystem tendermint/ibc crates #4980
Conversation
2e4ee89
to
a44f661
Compare
## Describe your changes While working on the tonic version bumps in #4980, we discovered that the HTTPS client support can break without failing CI. This PR builds on the new tests in #4979, trying to establish a baseline sanity check that "yes, the programs can talk to https endpoints" so that during a large refactor, we can easily confirm no regressions. ## Issue ticket number and link Refs * #4980 * #4979 * #4400 ## Testing and review Check out this branch, run `just integration-testnet` and confirm all checks pass. I also tacked on a commit enabling these new tests in CI, which I consider temporary, but useful for the immediate near-term. It'd also be helpful to point out any places that might use HTTPS clients that aren't covered yet. ## Checklist before requesting a review - [x] I have added guiding text to explain how a reviewer should test these changes. - [x] If this code contains consensus-breaking changes, I have added the "consensus-breaking" label. Otherwise, I declare my belief that there are not consensus-breaking changes, for the following reason: > tests/CI only, no app code changes
Continuation of #4963, into a release branch `v0.82.x` before tagging a release candidate at that version and publishing the workspace using an `alpha` version. This handles the domain type change for upgradeable channels (penumbra-zone/ibc-types#84) smoothly. It makes sure to write default values to the new fields, which avoids wire protocol changes, and makes this PR non consensus/state breaking. Includes substantial version changes to: * tendermint-rs * tonic #4400 * ibc-types #4682 * cnidarium #4956 --------- Co-authored-by: Richard Janis Goldschmidt <[email protected]>
a44f661
to
4ba03ff
Compare
Pulls in a dependency on `rustls` to configure the TLS config for HTTPS clients. Refactored the `pd_channel` logic into a reusable class method.
4ba03ff
to
30e986e
Compare
@SuperFluffy The most recent commit, fix: use rustls for https client support, shows what was necessary to restore HTTPS client functionality. The new integration tests for talking to HTTPS endpoints (#4983) were helpful in debugging, but notably they don't exercise the auto-https logic for |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
LGTM, except for the pd
behavior
@@ -24,5 +25,11 @@ async fn main() -> Result<()> { | |||
|
|||
let opt = Opt::parse(); | |||
|
|||
// Initialize HTTPS support | |||
// rustls::crypto::aws_lc_rs::default_provider().install_default(); |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
// rustls::crypto::aws_lc_rs::default_provider().install_default(); |
crates/bin/pd/src/main.rs
Outdated
// Initialize HTTPS support | ||
aws_lc_rs::default_provider() | ||
.install_default() | ||
.expect("failed to initialize rustls support, via aws-lc-rs"); |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
I think we should trace the error, but allow the full node to start
Addressing review comments by @erwanor.
// TODO: what should be done with this error? Emit a warning? | ||
Err(_err) => { | ||
attr.set_index(false); | ||
} |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Maybe we could log here, but otherwise seems fine to just not index non-utf8 attributes. We don't generate any of those, and the basic cometbft events don't contain such keys either.
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Failing for HTTPS in pclientd but not pd makes sense to me
This reverts commit 64c32ef, which constitutes the squash-merge of PR #4980. We're backing this change out strictly to simplify release engineering: we want the `main` branch to remain fully compatible with the `0.81.x` series, and we'll continue QA of significant version changes in a parallel release branch, `release/v0.82.x`. I'll handle preparing the latter shortly. See related discussion in #4988 & #4991.
) ## Describe your changes This reverts commit 64c32ef, which constitutes the squash-merge of PR #4980. We're backing this change out strictly to simplify release engineering: we want the `main` branch to remain fully compatible with the `0.81.x` series, and we'll continue QA of significant version changes in a parallel release branch, `release/v0.82.x`. I'll handle preparing the latter shortly. ## Issue ticket number and link See related discussion in #4988 & #4991. ## Testing and review This is a programmatic change, in that I simply ran `git revert 64c32ef`, wrote some notes into the commit message, and pushed it up. I also made sure to rerun `just proto` to regenerate the protos, and confirmed there are no changes. That's good, that's precisely what we wanted to see. Preferably this change would land before #4992, since #4992 changes protos. I'll regenerate protos in 4992 on top of this once it lands on main. ## Checklist before requesting a review - [x] I have added guiding text to explain how a reviewer should test these changes. - [x] If this code contains consensus-breaking changes, I have added the "consensus-breaking" label. Otherwise, I declare my belief that there are not consensus-breaking changes, for the following reason: > This commit is expressly intended to preserve protocol compatibility with 0.81.x. Future work on QA to ensure compat with 0.82 will happen in a separate branch.
…4993) This reverts commit a454870. Co-authored-by: Erwan Or <[email protected]> Co-authored-by: Erwan Or <[email protected]> Co-authored-by: Richard Janis Goldschmidt <[email protected]>
## Describe your changes Once again, we update significant dependencies on the main branch. Significantly, we've removed all git-dependencies from the workspace, which required upgrading `tonic` to upstream, which cascaded into other dependencies updates. With this change, we make the workspace nearly ready for publication to crates.io (#4978): still to come is a superficial refactor to rename the crates to `penumbra-sdk-*`, which I'll submit in a follow-up PR, to aid in review. This reverts commit a454870. ## Issue ticket number and link We've added and then removed this changeset a few times over the past week: * #4973 * #4980 * #4993 Now that we've tested it extensively, it's time to merge it into main and keep moving forward. Relevant version bumps were tracked in the following issues: * tonic #4400 * ibc-types #4682 * cnidarium #4956 * tendermint-rs (no issue) ## Testing and review In order to be certain that the changes honor protocol compatibility, I made sure to test syncing a mainnet fullnode based on this changeset from height 2622918—which is shortly after the change upgrade to 0.81.0—to 3136597, which is current height at time of writing. This gives us great confidence that the hard work toward ensuring that changes like #4682 were achieved in a compatible way. ## Checklist before requesting a review - [x] I have added guiding text to explain how a reviewer should test these changes. - [x] If this code contains consensus-breaking changes, I have added the "consensus-breaking" label. Otherwise, I declare my belief that there are not consensus-breaking changes, for the following reason: > see testing notes above: we're confident we've done the needful with this patch Co-authored-by: Erwan Or <[email protected]> Co-authored-by: Erwan Or <[email protected]> Co-authored-by: Richard Janis Goldschmidt <[email protected]>
Describe your changes
This PR re-implements the changes from #4973, which were merged into the
release/v0.82.x
branch, but never landed on main. I'm resubmitting them so that we can address the HTTPS breakage, documented below, prior to tackling the rest of the changes required for getting the workspace crates published (#4978).Continuation of #4963, into a release branch
v0.82.x
before tagging a release candidate at that version and publishing the workspace using analpha
version.This handles the domain type change for upgradeable channels (penumbra-zone/ibc-types#84) smoothly. It makes sure to write default values to the new fields, which avoids wire protocol changes, and makes this PR non consensus/state breaking.
Includes substantial version changes to:
[email protected]
#4400cnidarium
in the workspace #4956Issue ticket number and link
This PR resubmits the changes in #4973, in an attempt to isolate problematic behavior.
Testing and review
The primary motivation for this changeset was to address the following error, which occurred when I tried to sync a wallet against testnet (using an HTTPS connection):
The most recent commit on this branch addresses that problem, by
ViewServer::get_pd_channel
method throughout the codebase to handle conditional TLS configFeedback welcome on whether the new logic is clearly documented and stored in the right place.
Checklist before requesting a review
I have added guiding text to explain how a reviewer should test these changes.
If this code contains consensus-breaking changes, I have added the "consensus-breaking" label. Otherwise, I declare my belief that there are not consensus-breaking changes, for the following reason: