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 to SDK stable2409 #490

Open
wants to merge 31 commits into
base: main
Choose a base branch
from

Conversation

pandres95
Copy link
Contributor

@pandres95 pandres95 commented Oct 19, 2024

Closes #457
Closes #469

Updating the runtimes to SDK version stable2409. CHANGELOG mentions all relevant changes for UI and Walletbuilders.

Checklist

  • Update SDK to stable2409
  • Update configuration for relay chains.
  • Update configuration for system parachains.
  • Update configuration for emulated chains.
  • Update configuration for Encointer (see Help wanted).
  • Update CHANGELOG.

Dependencies

This PR depends on certain PRs to be merged before it can properly work.

Impacts

The success of this PR impacts directly on the feasibility of executing certain issues, or closing certain PRs.

Help wanted

Initially, I request the help of:

  • @franciscoaguirre to help me correcting the potential conflicts that may arise when foreign assets change to XCMv4.
  • @acatangiu to help me setting up the Bridge Hubs, as well as adding the respective transition layer (a.k.a. preparing the migrations from fixed Lanes to LegacyLane-based lanes storage).
  • @clangenb to help me upgrading Encointer.
  • @Szegoo to check the parameters that changed in Coretime.

@pandres95 pandres95 changed the title Upgrade to Polkadot SDK stable2409 Update to Polkadot SDK stable2409 Oct 19, 2024
@pandres95 pandres95 changed the title Update to Polkadot SDK stable2409 Update to SDK stable2409 Oct 19, 2024
@pandres95 pandres95 force-pushed the upgrade-polkadot-stable2409 branch 3 times, most recently from f08d159 to 4b4a252 Compare October 21, 2024 02:23
- Rename `assigner_on_demand` to `on_demand` (SDK #4706)
- [BEEFY] Add runtime support for reporting fork voting (#4522)
- `SchedulerParams` moved from `polkadot_primitives::vstaging`, to `polkadot_primitives`
- `XcmFeeToAccount` -> `SendXcmFeeToAccount`
- Mock Weights
- Rename `assigner_on_demand` to `on_demand` (SDK #4706)
- [BEEFY] Add runtime support for reporting fork voting (SDK #4522)
- `SchedulerParams` moved from `polkadot_primitives::vstaging`, to `polkadot_primitives`
- `XcmFeeToAccount` -> `SendXcmFeeToAccount`
- Mock Weights
- [Assets] Call implementation for `transfer_all` (SDK #4527)
- [bridges-v2] Permissionless lanes (SDK #4949)
- add possibility to inject non-authorities session-keys in genesis (SDK #5078)
- Tx Payment: drop ED requirements for tx payments with exchangeable asset (SDK #4488)
- relax XcmFeeToAccount trait bound on AccountId (SDK #4959)
- [Assets] Call implementation for `transfer_all` (SDK #4527)
- [bridges-v2] Permissionless lanes (SDK #4949)
- add possibility to inject non-authorities session-keys in genesis (SDK #5078)
- Tx Payment: drop ED requirements for tx payments with exchangeable asset (SDK #4488)
- relax XcmFeeToAccount trait bound on AccountId (SDK #4959)
- Bridges V2 refactoring backport and pallet_bridge_messages simplifications (SDK #4935)
- [bridges-v2] Permissionless lanes (SDK #4949)
- add possibility to inject non-authorities session-keys in genesis (SDK #5078)
- Transfer Polkadot-native assets to Ethereum (SDK #5546)
- [stable2049] Backport #5546 (SDK #5710)
- `XcmFeeToAccount` -> `SendXcmFeeToAccount`
- Bridges V2 refactoring backport and pallet_bridge_messages simplifications (SDK #4935)
- [bridges-v2] Permissionless lanes (SDK #4949)
- add possibility to inject non-authorities session-keys in genesis (SDK #5078)
- Transfer Polkadot-native assets to Ethereum (SDK #5546)
- [stable2049] Backport #5546 (SDK #5710)
- `XcmFeeToAccount` -> `SendXcmFeeToAccount`
- [bh polkadot] minor: replace `DOLLARS` with `UNITS` on `BridgeDeposit` storage type
- `XcmFeeToAccount` -> `SendXcmFeeToAccount`
- add possibility to inject non-authorities session-keys in genesis (SDK #5078)
- `XcmFeeToAccount` -> `SendXcmFeeToAccount`
- add possibility to inject non-authorities session-keys in genesis (SDK #5078)
- Coretime auto-renew (SDK #4424)
- Mock Weights
- `XcmFeeToAccount` -> `SendXcmFeeToAccount`
- add possibility to inject non-authorities session-keys in genesis (SDK #5078)
- Coretime auto-renew (SDK #4424)
- Mock Weights
- `XcmFeeToAccount` -> `SendXcmFeeToAccount`
- add possibility to inject non-authorities session-keys in genesis (SDK #5078)
- `XcmFeeToAccount` -> `SendXcmFeeToAccount`
- add possibility to inject non-authorities session-keys in genesis (SDK #5078)
- add possibility to inject non-authorities session-keys in genesis (SDK #5078)
@pandres95 pandres95 marked this pull request as ready for review October 21, 2024 07:38
@clangenb
Copy link
Contributor

I can probably squeeze it in later this week. 👍

@pandres95
Copy link
Contributor Author

Opened for review with a small caveat: tests will keep failing, until #472 is merged and can be merged back to this branch.

Comment on lines 136 to 137
// TODO: What's the correct value?
pub storage BridgeDeposit: Balance = constants::currency::UNITS;
Copy link
Contributor

Choose a reason for hiding this comment

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

for testnets I used values related to the HRMP deposits from live testnets, we could use those or add some utility adapter, which would read HRMP deposit from HostConfiguration

Suggested change
// TODO: What's the correct value?
pub storage BridgeDeposit: Balance = constants::currency::UNITS;
// TODO: What's the correct value? - FAIL-CI
pub storage BridgeDeposit: Balance = constants::currency::UNITS;

Copy link
Contributor Author

Choose a reason for hiding this comment

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

I have a question: is there a specific place in runtimes where I can get the HRMP deposit value? Or somewhere in the testnet (on polkadot-sdk), maybe?

@bkontur
Copy link
Contributor

bkontur commented Oct 21, 2024

@pandres95 if you have anything related to the Bridges, just tell me, at least I can see that migrations are missing here:

	pallet_bridge_messages::migration::v1::MigrationToV1<
	bridge_to_kusama/polkadot_config::migration::StaticToDynamicLanes,  // check this for bridge_to_westend_config::migration::StaticToDynamicLanes
	frame_support::migrations::RemoveStorage<  // check bridge-hub-westend for removing BridgeRococoMessagesPalletName
		Bridge***MessagesPalletName,
		OutboundLanesCongestedSignalsKey,
		RocksDbWeight,
	>,
	pallet_bridge_relayers::migration::v1::MigrationToV1<Runtime, ()>,

and also I can help with fixing (integration) tests

@clangenb
Copy link
Contributor

clangenb commented Oct 21, 2024

Is it reasonable to assume that we are going to use 2409-1? I would update encointer directly to that version then.

@acatangiu
Copy link
Contributor

@acatangiu to help me setting up the Bridge Hubs, as well as adding the respective transition layer (a.k.a. preparing the migrations from fixed Lanes to LegacyLane-based lanes storage).

I suggest we keep this SDK as light as possible:

  • @bkontur will help with migrating existing legacy lane to work with the new SDK deps,
  • we will follow-up with a separate PR to configure and deploy the new permissionless lanes functionality (split it out of this PR).

@pandres95
Copy link
Contributor Author

@Szegoo @seadanda I just applied the changes you suggested.
@bkontur I would love to have some help on the integration tests. As of now, I think some tests will fail due to the issue of not having foreign assets with xcmv4 format in asset hubs (see #472). Once that's done, we can begin with those integration tests.

@clangenb
Copy link
Contributor

@pandres95 did you see that I opened pandres95#1 into your PR?

Copy link
Contributor

@seadanda seadanda left a comment

Choose a reason for hiding this comment

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

This is a new feature and wasn't used in any of the system parachains at genesis. If people want to inject keys for a local/dev build then they'd do that and recompile, I don't see a need for anything other than Default here

pandres95 and others added 2 commits October 23, 2024 11:53
#1)

* Revert "wip(workspace): disable Encointer"

This reverts commit 0450dd2.

* bump encointer deps

* [encointer] add non_authority_keys to session genesis config
@pandres95
Copy link
Contributor Author

pandres95 commented Oct 23, 2024

Failed to update to stable2409-1 (see commit f94520c) due to new versions of the updated crates not yet published (see polkadot-sdk#493).

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.

upgrade to polkadot sdk stable2409 chore: upgrade to polkadot sdk stable2407
6 participants