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

Fix auto-pause xcm: incoming XCMP messages where dropped when auto-pause #2913

Merged
merged 10 commits into from
Aug 30, 2024

Conversation

librelois
Copy link
Collaborator

@librelois librelois commented Aug 23, 2024

What does it do?

  • Add the RPC method test_skipRelayBlocks only available in dev mode that allow to alter the relay mock to skip a given number of relay blocks
  • Create a dev-test that use test_skipRelayBlocks to simulate a chain stall and ensure that xcm is automatically paused
  • Include a moonkit fix, incoming XCMP messages where dropped when xcm auto-pause
  • Add auto-pause XCM feature to moonriver and moonbeam

What important points reviewers should know?

Is there something left for follow-up PRs?

What alternative implementations were considered?

Are there relevant PRs or issues in other repositories (Substrate, Polkadot, Frontier, Cumulus)?

Moonsong-Labs/moonkit#53

What value does it bring to the blockchain users?

@librelois librelois added B7-runtimenoteworthy Changes should be noted in any runtime-upgrade release notes D3-trivial PR contains trivial changes in a runtime directory that do not require an audit not-breaking Does not need to be mentioned in breaking changes labels Aug 23, 2024
Copy link
Contributor

github-actions bot commented Aug 23, 2024

Coverage Report

@@                     Coverage Diff                      @@
##           master   elois-test-autopause-xcm      +/-   ##
============================================================
+ Coverage   80.93%                     80.94%   +0.01%     
  Files         284                        284              
+ Lines       81715                      81731      +16     
============================================================
+ Hits        66136                      66150      +14     
+ Misses      15579                      15581       +2     
Files Changed Coverage
/node/service/src/lib.rs 61.87% (+0.23%) 🔼
/node/service/src/rpc.rs 85.00% (+0.10%) 🔼
/runtime/moonbeam/src/lib.rs 46.85% (-0.07%) 🔽
/runtime/moonriver/src/lib.rs 47.07% (-0.07%) 🔽

Coverage generated Tue Aug 27 16:40:52 UTC 2024

@RomarQ
Copy link
Contributor

RomarQ commented Aug 27, 2024

The changes look good to me, just added a few remarks about the test.

Copy link
Contributor

WASM runtime size check:

Compared to target branch

Moonbase runtime: 2160 KB (no changes) ✅

Moonbeam runtime: 2124 KB (no changes) ✅

Moonriver runtime: 2120 KB (no changes) ✅

Compared to latest release (runtime-3100)

Moonbase runtime: 2160 KB (+144 KB compared to latest release) ⚠️

Moonbeam runtime: 2124 KB (+148 KB compared to latest release) ⚠️

Moonriver runtime: 2120 KB (+152 KB compared to latest release) ⚠️

@librelois librelois merged commit 146e363 into master Aug 30, 2024
40 checks passed
@librelois librelois deleted the elois-test-autopause-xcm branch August 30, 2024 10:26
gonzamontiel pushed a commit that referenced this pull request Sep 4, 2024
…use (#2913)

* chore: rename crate manual-xcm-rpc -> moonbeam-dev-rpc

* add RPC method test_skipRelayBlocks

* allow Root to resume XCM execution

* update moonkit pin

* add dev-test that trigger auto-pause of xcm

* prettier

* dev test auto-pause xcm: remove unused imports & improve test scenario

* add pallet-emergency-para-xcm to moonriver

* add pallet-emergency-para-xcm to moonbeam

* apply review suggestions
librelois added a commit that referenced this pull request Oct 2, 2024
* point dependencies to moonbeam-polkadot-sdk-stable2407

* bump packages versions to match polkadot-sdk

* apply TransactionPov changes

* update runtime configs (wip)

* update imports

* mute hrmp channel moonriver - Litmus (#2914)

* Add step to Build workflow to check for WASM runtime sizes (#2888)

* add simple wasm size check

* only run on pull requests

* add Github token to env

* fix download dir name

* try comparing previous and current runtimes

* change master branch with dynamic target branch ref

* add comparison to latest release

* test with older release

* download from release instead of workflow artifact

* debug release tag not saved to env

* debug some more

* use gh cli to get releases instead of git tag

* use gh api instead of releases

* remove get build id & fix awk parsing

* build runtimes with _, releases with -

* add comment to PR and format msg

* use markdown report & replace comment

* cat report & fix comment formatting

* add twiggy diff reports as artifacts

* use upload v4 & create reports dir

* rm: deprecated ::set-output cmd

* add log event (#2918)

* Extract Storage Read costs for dev tests involved in #2786 (#2915)

* add: storage read cost constant

* update test-pov

* update xcm-v3 tests

* update xcm-v4 tests

* add storage read gas cost to constants

* update test-precompile

* load constant in beforeAll

* replace gas cost with weight to gas ratio

* Fix auto-pause xcm: incoming XCMP messages where dropped when auto-pause (#2913)

* chore: rename crate manual-xcm-rpc -> moonbeam-dev-rpc

* add RPC method test_skipRelayBlocks

* allow Root to resume XCM execution

* update moonkit pin

* add dev-test that trigger auto-pause of xcm

* prettier

* dev test auto-pause xcm: remove unused imports & improve test scenario

* add pallet-emergency-para-xcm to moonriver

* add pallet-emergency-para-xcm to moonbeam

* apply review suggestions

* Set the block size to 60mln gas for moonbeam (#2921)

* set the block size to 60mln gas for moonbeam

* update mbip-5 value in test

* Add pallet_parameters (moonbase only) (#2923)

* add pallet parameters

* XcmFeesAccount

* add copyrights

* add FeesTreasuryProportion
---------

Co-authored-by: Rodrigo Quelhas <22591718+RomarQ@users.noreply.github.com>

* make moonbeam compile

* remove cumulus_pallet_dmp_queue

* remove unused import

* add proper para_id to MockValidationDataInherentDataProvider

* update config for tests

* add MockTimestampInherentDataProvider to simulate consistent and sequential relay slots

* Revert "apply TransactionPov changes"

This reverts commit 4382107.

* update cargo lock pins

* remove import of deleted TransacionPoV

* Make cargo test compile
* Add XcmRecorder to XcmConfig
* Add VersionWrapper to hrmp::COnfig
* Remove code from deprecated pallet treasury
* Remove code from deprecated DmpQueue
* Remove code from deprecated XCMV2

* remove deprecated tresury pallet tests, add some for the new functionality

* fix tests

* fix remaining dev tests

* fix licenses

* fix lazy loading backend for stable

* remove unused patch

* fix linters

* fix cargo test with benchmarking and tracing enabled

* fix lazy loading

* fix command for lazy loading

* update frontier pin

* support new 'stableYYMM' versioning for polkadot

* update polkadot sdk pin

* fix download-polkadot script

* simplify script

* Replace thread_local with AtomicU64 (as per review request)

* remove deprecated test code

* use latest version of nextest

* Update precompiles/collective/src/mock.rs

Co-authored-by: Rodrigo Quelhas <22591718+RomarQ@users.noreply.github.com>

* apply review suggestions

* Revert "apply review suggestions"

This reverts commit 6daef57.

* apply review suggestions

* fix lazy-loading

* re add reset_issuance

* add missing weights

* remove unused var

* fix download correct binaries

* cargo fmt

* make polkadot worker binearies executable

* configure XcmRecorder for mocks

---------

Co-authored-by: Éloïs <c@elo.tf>
Co-authored-by: pablito テ <pablitolabarta@gmail.com>
Co-authored-by: Rodrigo Quelhas <22591718+RomarQ@users.noreply.github.com>
Co-authored-by: Andrea Giacobino <no.andrea@gmail.com>
Co-authored-by: Tarek Mohamed Abdalla <tarekkma@gmail.com>
Co-authored-by: Rodrigo Quelhas <rodrigo_quelhas@outlook.pt>
Co-authored-by: Agusrodri <agusrodriguez2456@gmail.com>
Agusrodri added a commit that referenced this pull request Oct 2, 2024
…#2980)

* point dependencies to moonbeam-polkadot-sdk-stable2407

* bump packages versions to match polkadot-sdk

* apply TransactionPov changes

* update runtime configs (wip)

* update imports

* mute hrmp channel moonriver - Litmus (#2914)

* Add step to Build workflow to check for WASM runtime sizes (#2888)

* add simple wasm size check

* only run on pull requests

* add Github token to env

* fix download dir name

* try comparing previous and current runtimes

* change master branch with dynamic target branch ref

* add comparison to latest release

* test with older release

* download from release instead of workflow artifact

* debug release tag not saved to env

* debug some more

* use gh cli to get releases instead of git tag

* use gh api instead of releases

* remove get build id & fix awk parsing

* build runtimes with _, releases with -

* add comment to PR and format msg

* use markdown report & replace comment

* cat report & fix comment formatting

* add twiggy diff reports as artifacts

* use upload v4 & create reports dir

* rm: deprecated ::set-output cmd

* add log event (#2918)

* Extract Storage Read costs for dev tests involved in #2786 (#2915)

* add: storage read cost constant

* update test-pov

* update xcm-v3 tests

* update xcm-v4 tests

* add storage read gas cost to constants

* update test-precompile

* load constant in beforeAll

* replace gas cost with weight to gas ratio

* Fix auto-pause xcm: incoming XCMP messages where dropped when auto-pause (#2913)

* chore: rename crate manual-xcm-rpc -> moonbeam-dev-rpc

* add RPC method test_skipRelayBlocks

* allow Root to resume XCM execution

* update moonkit pin

* add dev-test that trigger auto-pause of xcm

* prettier

* dev test auto-pause xcm: remove unused imports & improve test scenario

* add pallet-emergency-para-xcm to moonriver

* add pallet-emergency-para-xcm to moonbeam

* apply review suggestions

* Set the block size to 60mln gas for moonbeam (#2921)

* set the block size to 60mln gas for moonbeam

* update mbip-5 value in test

* Add pallet_parameters (moonbase only) (#2923)

* add pallet parameters

* XcmFeesAccount

* add copyrights

* add FeesTreasuryProportion
---------

Co-authored-by: Rodrigo Quelhas <22591718+RomarQ@users.noreply.github.com>

* make moonbeam compile

* remove cumulus_pallet_dmp_queue

* remove unused import

* add proper para_id to MockValidationDataInherentDataProvider

* update config for tests

* add MockTimestampInherentDataProvider to simulate consistent and sequential relay slots

* Revert "apply TransactionPov changes"

This reverts commit 4382107.

* update cargo lock pins

* remove import of deleted TransacionPoV

* Make cargo test compile
* Add XcmRecorder to XcmConfig
* Add VersionWrapper to hrmp::COnfig
* Remove code from deprecated pallet treasury
* Remove code from deprecated DmpQueue
* Remove code from deprecated XCMV2

* remove deprecated tresury pallet tests, add some for the new functionality

* fix tests

* fix remaining dev tests

* fix licenses

* fix lazy loading backend for stable

* remove unused patch

* fix linters

* fix cargo test with benchmarking and tracing enabled

* fix lazy loading

* fix command for lazy loading

* update frontier pin

* support new 'stableYYMM' versioning for polkadot

* update polkadot sdk pin

* fix download-polkadot script

* simplify script

* Replace thread_local with AtomicU64 (as per review request)

* remove deprecated test code

* use latest version of nextest

* add DryRunApi and LocationToAccountApi

* Update precompiles/collective/src/mock.rs

Co-authored-by: Rodrigo Quelhas <22591718+RomarQ@users.noreply.github.com>

* apply review suggestions

* Revert "apply review suggestions"

This reverts commit 6daef57.

* apply review suggestions

* fix lazy-loading

* re add reset_issuance

* add missing weights

* remove unused var

* add TS tests

* cleanup

* fmt

* fix download correct binaries

* cargo fmt

* make polkadot worker binearies executable

* configure XcmRecorder for mocks

---------

Co-authored-by: Gonza Montiel <gon.montiel@gmail.com>
Co-authored-by: Éloïs <c@elo.tf>
Co-authored-by: pablito テ <pablitolabarta@gmail.com>
Co-authored-by: Rodrigo Quelhas <22591718+RomarQ@users.noreply.github.com>
Co-authored-by: Andrea Giacobino <no.andrea@gmail.com>
Co-authored-by: Tarek Mohamed Abdalla <tarekkma@gmail.com>
Co-authored-by: Rodrigo Quelhas <rodrigo_quelhas@outlook.pt>
Co-authored-by: Gonza Montiel <gonzamontiel@users.noreply.github.com>
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
B7-runtimenoteworthy Changes should be noted in any runtime-upgrade release notes D3-trivial PR contains trivial changes in a runtime directory that do not require an audit not-breaking Does not need to be mentioned in breaking changes
Projects
None yet
Development

Successfully merging this pull request may close these issues.

3 participants