Commit Graph

14840 Commits

Author SHA1 Message Date
gupnik cd8741c8b5 Moves all test runtimes to use derive_impl (#2409)
Step in https://github.com/paritytech/polkadot-sdk/issues/171

This PR adds `derive_impl` on all `frame_system` config impls for mock
runtimes. The overridden configs are maintained as of now to ensure
minimal changes.

---------

Co-authored-by: Oliver Tale-Yazdi <oliver.tale-yazdi@parity.io>
2023-11-28 14:13:57 +01:00
Vladimir Istyufeev 6a417eb9c2 Increase cargo-check-each-crate-macos timeout (#2519) 2023-11-28 13:02:10 +02:00
Liam Aharon 6dc3e6c909 Set frame_system::LastRuntimeUpgrade after running try-runtime migrations (#2515)
Sets `frame_system::LastRuntimeUpgrade` after running try-runtime
migrations to better emulate real behavior.

This fixes an issue where migrations using the spec version to determine
whether to execute can incorrectly fail idempotency checks.

@s0me0ne-unkn0wn noticed this issue with the session key migration
introduced in https://github.com/paritytech/polkadot-sdk/pull/2265.
2023-11-28 21:02:48 +11:00
André Silva 58a1f9c53d polkadot: disable block authoring backoff on production networks (#2510)
Currently the polkadot node will backoff from block authoring if
finality starts lagging. This PR disables this mechanism on production
networks (polkadot and kusama) and adds a flags to optionally force
enabling it.
2023-11-28 11:18:26 +02:00
Svyatoslav Nikolsky 0f7ffc66a5 Added NetworkId::PolkadotBulletin variant (#2517)
We're going to bridge Polkadot Bridge Hub with [Polkadot Bulletin
chain](https://github.com/zdave-parity/polkadot-bulletin-chain) soon
(and Rococo Bridge Hub with 1:1 copy of Polkadot Bulletin chain even
sooner), so we need a variant for that chain in `NetworkId`. As
suggested, I'm adding a new variant for it to the `NetworkId` (we may
have used `ByGenesis(_)`, but decision was made to have a dedicated
variant for that).
2023-11-28 11:14:50 +02:00
Ross Bulat 75062717de Pools: Add ability to configure commission claiming permissions (#2474)
Addresses #409.

This request has been raised by multiple community members - the ability
for the nomination pool root role to configure permissionless commission
claiming:

> Would it be possible to have a claim_commission_other extrinsic for
claiming commission of nomination pools permissionless?

This PR does not quite introduce this additional call, but amends
`do_claim_commission` to check a new `claim_permission` field in the
`Commission` struct, configured by an enum:

```
enum CommissionClaimPermission {
   Permissionless,
   Account(AccountId),
}
```
This can be optionally set in a bonded pool's
`commission.claim_permission` field:

```
struct BondedPool {
   commission: {
      <snip>
      claim_permission: Option<CommissionClaimPermission<T::AccountId>>,
   },
   <snip>
}
```

This is a new field and requires a migration to add it to existing
pools. This will be `None` on pool creation, falling back to the `root`
role having sole access to claim commission if it is not set; this is
the behaviour as it is today. Once set, the field _can_ be set to `None`
again.

#### Changes
- [x] Add `commision.claim_permission` field.
- [x] Add `can_claim_commission` and amend `do_claim_commission`.
- [x] Add `set_commission_claim_permission` call.
- [x] Test to cover new configs and call.
- [x] Add and amend benchmarks.
- [x] Generate new weights + slot into call
`set_commission_claim_permission`.
- [x] Add migration to introduce `commission.claim_permission`, bump
storage version.
- [x] Update Westend weights.
- [x] Migration working.

---------

Co-authored-by: command-bot <>
2023-11-28 09:19:49 +02:00
Gonçalo Pestana 2ac23d247d Fixes cumulus README instructions (#2442)
README instructions fixes to be compatible with the `polkadot-prepare`
and `polkadot-execute` binary split.
2023-11-28 08:11:46 +01:00
Liam Aharon db29099765 CI: Fix build-and-attach-release-runtimes.yml (#2471)
Incorporate suggestion from release team to get this workflow working.

edit: worked on this test GH release:
https://github.com/paritytech/polkadot-sdk/releases/tag/liam-debug-ghw.
let's try it.
2023-11-28 16:42:14 +11:00
Ross Bulat 838a534da8 Staking: chill_other takes stash instead of controller (#2501)
The `chill_other` call is the only staking call that explicitly requires
`controller` in its signature. This PR changes the controller arg to be
the stash instead, with `StakingLedger` then fetching the controller
from storage.

This is not a breaking change per se - the call types do not change, but
is noteworthy as UIs will now want to pass the stash account into
`chill_other` calls, & metadata will reflect this.

Note: This is very low impact. `chill_other` has [hardly ever been
used](https://polkadot.subscan.io/extrinsic?address=&module=staking&call=chill_other&result=all&signedChecked=signed%20only&startDate=&endDate=&startBlock=&timeType=date&version=9431&endBlock=)
on Polkadot - notwithstanding the one called 11 days ago at block
18177457 that was a part of test I did, the last call was made 493 days
ago. Only 2 calls have ever been successful.

Addresses controller deprecation #2500

---------

Co-authored-by: command-bot <>
Co-authored-by: Gonçalo Pestana <g6pestana@gmail.com>
2023-11-27 16:42:04 +02:00
Vladimir Istyufeev fd1ed403c9 Remove the timestamp handler (#2506) 2023-11-27 15:50:38 +02:00
Adrian Catangiu 4298bc608f asset-hub-westend-integration-tests: add more asset transfers tests (#2488)
Just adds more tests.
2023-11-27 14:22:13 +02:00
Koute 2610450a18 Build the standard library crates when building the runtimes (#2217)
Our executor currently only supports the WASM MVP feature set, however
nowadays when compiling WASM the Rust compiler has more features enabled
by default.

We do set the `-C target-cpu=mvp` flag to make sure that *our* code gets
compiled in a way that is compatible with our executor, however this
doesn't affect Rust's standard library crates (`std`, `core` and
`alloc`) which are by default precompiled and still can make use of
these extra features.

So in this PR we force the compiler to also compile the standard library
crates for us to make sure that they also only use the MVP features.

I've added the `WASM_BUILD_STD` environment variable which can be used
to disable this behavior if set to `0`.

Unfortunately this *will* slow down the compile times when building
runtimes, but there isn't much that we can do about that.

Fixes https://github.com/paritytech/polkadot-sdk/issues/1755

---------

Co-authored-by: Bastian Köcher <git@kchr.de>
2023-11-27 12:40:27 +02:00
Javier Bullrich 0317501758 Decomissioned PR-Custom-Review (#2503)
This PR decomissions
[`PR-Custom-Review`](https://github.com/paritytech/pr-custom-review) in
replacement for
[`Review-bot`](https://github.com/paritytech/review-bot).
2023-11-27 12:33:36 +02:00
Maciej dc69dbba72 Zombienet tests - disputes on finalized blocks (#2184)
**Overview:**
Adding an extra malus variant focusing on disputing finalized blocks. It
will:
- wrap around approval-voting
- listen to `OverseerSignal::BlockFinalized` and when encountered start
a dispute for the `dispute_offset`th ancestor
- simply pass through all other messages and signals

Add zombienet tests testing various edgecases:
- disputing freshly finalized blocks
- disputing stale finalized blocks
- disputing eagerly pruned finalized blocks (might be separate PR)

**TODO:**
- [x] Register new malus variant
- [x] Simple pass through wrapper (approval-voting)
- [x] Simple network definition
- [x] Listen to block finalizations
- [x] Fetch ancestor hash
- [x] Fetch session index
- [x] Fetch candidate
- [x] Construct and send dispute message
- [x] zndsl test 1 checking that disputes on fresh finalizations resolve
valid Closes #1365
- [x] zndsl test 2 checking that disputes for too old finalized blocks
are not possible Closes #1364
- [ ] zndsl test 3 checking that disputes for candidates with eagerly
pruned relay parent state are handled correctly #1359 (deferred to a
separate PR)
- [x] Unit tests for new malus variant (testing cli etc)
- [x] Clean/streamline error handling
- [ ] ~~Ensure it tests properly on session boundaries~~

---------

Co-authored-by: Javier Viola <javier@parity.io>
Co-authored-by: Marcin S. <marcin@realemail.net>
Co-authored-by: Tsvetomir Dimitrov <tsvetomir@parity.io>
2023-11-27 10:30:13 +01:00
Chevdor 4f8048b9c7 New runtime spec_version format + backport of the bump to 1.4.0 (#2468)
## Overview

This PR aligns the `spec_version` formatting to the [recent
changes](https://github.com/polkadot-fellows/runtimes/pull/26/files#diff-efa4caeb17487ecb13d8f5eb7863c3241d84afa2e73fbf25909a2ca89df0f362R142)
made for the Polkadot/Kusama runtimes.

It also backports the latest version `v1.4.0` bumps as `1_004_000`.

## Details

During the switch from `v0.9` to `v1.x`, the format of the
`spec_version` was modified from: `(M)m_ppp` for a runtime considered on
version `M.m.pp`. For instance `0.9.42` had a `spec_version` of `9420`.

With the transition to `v1.x`, the format was changed to a bigger number
(still `u32`) formatted as `MM_mm_ppp` where `1.2.3` would be stored as
`01_02_003`.

This PR aligns the format with that has been introduced in the
fellowship repo: `MMM_mmm_ppp`.

---------

Co-authored-by: Bastian Köcher <git@kchr.de>
2023-11-27 11:16:35 +02:00
Marcin S cfa19c37e6 PVF: remove audit log access (#2461) 2023-11-25 18:03:58 +02:00
Wil Wade 73ff1c3647 Update documentation for SafeMode and TxPause Pallets (#2413)
# Description

Documentation for the TxPause and SafeMode pallets.

Based on reading and the notes from the following related PRs:
- https://github.com/paritytech/substrate/pull/12092

I believe this also completes the checklist to be able to close the
related PRs:
- Close #302 
- Close #274

---------

Co-authored-by: joe petrowski <25483142+joepetrowski@users.noreply.github.com>
2023-11-25 11:30:57 +01:00
Michal Kucharczyk d5d15a1802 polkadot-parachain: one chain-spec for all (#2457)
This PR removes some `ChainSpec` types which are not necessary
(left-overs from #1256). Currently `ChainSpec` does not have to be
generic over the specific `RuntimeGenesisConfig`, it is enough to use
single type for all:

https://github.com/paritytech/polkadot-sdk/blob/9f787018857660440182142adc806954d7d07709/cumulus/polkadot-parachain/src/chain_spec/mod.rs#L53-L54


related to: https://github.com/paritytech/polkadot-sdk/issues/25

---------

Co-authored-by: command-bot <>
2023-11-25 09:56:17 +01:00
Javier Viola ffc64fd255 Zombienet: add polkadot-debug image publish as needs for cumulus tests (#2493)
Add `build-push-image-polkadot-debug` job to needs since we changed to
use the polkadot-debug image from the current branch for cumulus test
and we need to be sure that the image is ready. Fix issues like
https://gitlab.parity.io/parity/mirrors/polkadot-sdk/-/jobs/4481059

cc: @bkchr

Co-authored-by: Bastian Köcher <git@kchr.de>
2023-11-25 01:42:20 +02:00
Bastian Köcher 5e27342198 Do not pollute global base path with export genesis/wasm (#2487)
Otherwise the user may runs into weird errors if there is already a db.
2023-11-25 00:22:52 +01:00
Javier Viola 63f1210d08 bump zombienet version v1.3.83 (#2492)
Include fix for `0002-parachains-upgrade-smoke-test` test.
2023-11-25 00:02:27 +01:00
Oliver Tale-Yazdi 81638d4d5e Add missing workspace members (#2491)
The following members have been added:

```pre
cumulus/parachains/integration-tests/emulated/chains/parachains/testing/penpal
cumulus/parachains/testnets-common
polkadot/node/tracking-allocator
substrate/frame/examples/frame-crate
```

CI check can be added after
https://github.com/paritytech/pipeline-scripts/pull/105 is merged.

---------

Signed-off-by: Oliver Tale-Yazdi <oliver.tale-yazdi@parity.io>
Co-authored-by: Bastian Köcher <git@kchr.de>
2023-11-24 18:22:28 +01:00
Dónal Murray d07186b8e3 Remove RuntimeApi dependency on system parachain runtime code (#2455)
The last issue blocking the removal of the Polkadot and Kusama system
parachains from the repo in #1737 is the dependency on the runtime code
through the RuntimeApi in `polkadot-parachain`.

This PR introduces two fake runtimes to satisfy the build requirements
and changes the `new_partial` function to make it not be generic over
the runtimes.
The reason for the second runtime is the different Aura keys used in
Polkadot Asset Hub, as the impl for AuraApi depends on this type.
If this changes the `RuntimeApi` generic could be removed completely
from all functions in `services.rs` and and generic type parameters in
`services.rs` and specified as a concrete type to TFullClient`.

---------

Co-authored-by: Bastian Köcher <git@kchr.de>
2023-11-24 18:48:56 +02:00
Ankan 8af61d03b6 [NPoS] Use EraInfo to manipulate exposure in fast-unstake tests (#2459)
The FastUnstake pallet tests were previously directly modifying storage
items in the pallet-staking to alter exposure. However, due to the
introduction of the [new paged exposure
feature](https://github.com/paritytech/polkadot-sdk/pull/1189) these
tests were not testing against correct storage items. This issue
resulted in a bug that I didn't catch, which has been addressed in [this
fix](https://github.com/paritytech/polkadot-sdk/pull/2369).

This PR introduces a modification to how the pallet-fast-unstake handles
exposure. It now utilizes `pallet-staking::EraInfo` to set or mutate
Exposures.
2023-11-24 16:31:20 +01:00
Adrian Catangiu 90488ff7e3 pallet-xcm: fix benchmarking (#2489)
Use non-zero weight limit in benchmarking `pallet_xcm::execute()` so the
given XCM actually executes.
2023-11-24 17:30:25 +02:00
Nazar Mokrynskyi 07ea6da2d8 Derive MaxEncodedLen on SlotDuration (#2484)
# Description

Needed this in my code as part of the larger data structure.

---------

Co-authored-by: command-bot <>
2023-11-24 15:21:10 +01:00
Bastian Köcher 803ea76059 Improve UnpinHandleInner debug (#2485)
Printing the `unpin_worker_sender` included the entire stacktrace and
that is a little bit too verbose.
2023-11-24 15:20:21 +01:00
Michal Kucharczyk 891628a7f1 relay-chain-consensus: set a fork_choice (#2462)
After #2001 the `fork_choice` strategy may remain uninitialized in the
block import pipeline which uses relay-chain verifier.
Refer to
https://github.com/paritytech/polkadot-sdk/pull/2430#issuecomment-1823979813
for some further discussion.
2023-11-24 14:06:19 +01:00
Liam Aharon 7554f53f9e Remove dmp-queue pallet from Rococo Asset Hub and Bridge Hub (#2483)
DMP queue migration is complete and the pallet should be removed to fix
the check runtime upgrade CI.

<img width="1501" alt="Screenshot 2023-11-24 at 16 05 37"
src="https://github.com/paritytech/polkadot-sdk/assets/16665596/ee1da6bb-2756-4423-8085-1e4c73553ad5">

<img width="1501" alt="Screenshot 2023-11-24 at 16 06 44"
src="https://github.com/paritytech/polkadot-sdk/assets/16665596/03f3e88f-aed8-4eaa-aab6-7998f72258be">
2023-11-24 14:06:01 +01:00
Sebastian Kunert 471eafcb8d Disable any peer connections for parachain nodes in pov-recovery zombienet test (#2475)
I noticed that this test broke at some point. The parachain nodes should
only acquire their blocks from the relay chain. But they were connecting
to their peers and started fetching blocks from there.

In this test I now take additional measures so we check that each nodes
really uses pov-recovery to get the blocks.
2023-11-24 13:52:55 +01:00
Julian Eager e3242d2c1e Adapt test worker to profile flag (#2450)
closes #2194 

cc @mrcnski

---------

Co-authored-by: Bastian Köcher <git@kchr.de>
2023-11-24 12:32:43 +02:00
Gonçalo Pestana f086d540ae pallet-staking: Converts all math operations to safe (#2435)
This PR converts unsafe math operations to safe in the staking pallet.
 
Closes https://github.com/paritytech/polkadot-sdk/issues/2431

---------

Co-authored-by: Ankan <10196091+Ank4n@users.noreply.github.com>
2023-11-24 10:36:22 +01:00
Xiliang Chen 4163152506 pallet-xcm: ensure xcm outcome is always complete, revert effects otherwise (#2405)
On extrinsics/call, ensure local XCM execution is complete/successful.
Otherwise, fail the extrinsic so that state changes don't get committed
to the db.

Added regression tests that fail without the fix.

fixes #2237

---------

Co-authored-by: Adrian Catangiu <adrian@parity.io>
2023-11-24 11:13:57 +02:00
Lulu a00a767604 Make publish CI consistant and bump to v0.3.0 (#2453) 2023-11-24 10:07:35 +01:00
Ross Bulat c29b74dc36 Amend staking docs to account for state of controller deprecation (#2451)
Amends some staking pallet docs, and deprecation comment, to adjust to
the latest controller deprecation state.

Note, do we need the `README.md` file, which is a duplicate of the
pallet docs? Docs would be easier to maintain, and less ambiguity for
devs to refer to, if we had one source of truth in the generated pallet
docs.
2023-11-24 00:14:59 +07:00
André Silva 19c05e8d43 Fix trait imports from sp-api (#2472)
Broken after #2446.
2023-11-23 18:00:54 +01:00
Bastian Köcher 21f1811c66 sp-api: Move macro related re-exports to __private (#2446)
This moves the macro related re-exports to `__private` to make it more
obvious for downstream users that they are using an internal api.

---------

Co-authored-by: command-bot <>
2023-11-23 14:52:46 +01:00
Liam Aharon 12062f6a3a CI: Disable runtime upgrade spec name check on Westend Asset Hub and fix Staking pallet migration (#2447)
Westend Asset Hub currently failing because the spec name is being
changed next runtime upgrade
(https://gitlab.parity.io/parity/mirrors/polkadot-sdk/-/jobs/4413125).

This also fixes an idempotency issue with a staking pallet migration.
Similar issues will be caught automatically now that we've also updated
to try-runtime-cli v0.5.0 which checks for idempotency issues.

This also enables try-state checks running in the CI.
2023-11-23 14:52:06 +01:00
Liam Aharon 2d09e83d07 Add on-chain-release-build feature for Collectives Westend (#2463)
Collectives Westend is missing an `on-chain-release-build` feature flag.
2023-11-23 13:18:24 +02:00
Joshy Orndorff ec18933384 Remove #[macro_use] annotation from mod service in all nodes. (#2456)
This PR removes `#[macro_use]` from the service module in each of the
Substrate nodes in the repo.

* Parachain Template
* Polkadot Parachain
* Minimal Node
* Node Template
* Kitchen Sink Node

IDK why this annotation was present, maybe from when we had the
`new_partial!` macro?

---------

Co-authored-by: Joshy Orndorff <git-user-email.h0ly5@simplelogin.com>
2023-11-23 00:21:20 +02:00
Michal Kucharczyk 49874882cf polkadot-node-subsystems: ChainApiBackend added + polkadot-debug image version fixed (#2411)
The out-dated version (bad tag) of [polkadot
image](https://github.com/paritytech/polkadot-sdk/blob/ede4a362622dfa69eb167eaa876246b1289f4b41/.gitlab/pipeline/zombienet/cumulus.yml#L31)
([docker
info](https://hub.docker.com/layers/paritypr/polkadot-debug/master/images/sha256:adb1658052cf671b50c90d5cece5c7a131efa1a95978249bd5cb85a5ad654f7a?context=explore))
was used. This PR fixes this.

See also:
https://github.com/paritytech/polkadot-sdk/pull/2411#issuecomment-1822632724

Also adds an abstraction that allows asynchronous backends to be passed to `ChainApiSubsystem`
---------

Co-authored-by: Sebastian Kunert <skunert49@gmail.com>
2023-11-22 19:24:11 +01:00
girazoki 0956357b60 work with additional key values (#1757)
Add the possibility to inject additional key-values in the
sproof-builder that generates the relay root that gets stored in
parachain-system.

Rationale: pallets that verify additional storage items (not those
verified by parachain-system) from the relay should be able to proof
against the relay root that gets stored in parachain-system. This PR
allows to create provide additional nibles that can later be used for
verifiability in other pallets
2023-11-22 19:29:06 +02:00
James Wilson 0d6dcb3f48 Make TypeInfo for SkipCheckIfFeeless transparent, too (#2449)
The `SkipCheckifFeeless::IDENTIFIER` became transparent (ie was whatever
the inner signed ext was). This PR just makes the `TypeInfo` transparent
too, so that libraries that use said info to decode the data (ie subxt)
can behave identically whether or not the `SkipCheckifFeeless` wrapper
is used or not.

---------

Co-authored-by: Oliver Tale-Yazdi <oliver.tale-yazdi@parity.io>
2023-11-22 17:27:53 +00:00
Marcin S 408af9b32d PVF: Fix unshare "no such file or directory" error (#2426) 2023-11-22 15:45:52 +01:00
gupnik 98f9e2ea9d Fixes import path in benchmark macro (#2437)
Fully-qualified path was not being used in benchmark macro for one of
the cases. This PR fixes this and removes the unnecessary import in a
couple of files, which I believe was done to fix this issue.
2023-11-22 13:02:49 +01:00
Alexander Samusev a9ba1e540f Revert docker images tag naming to <prnum-shortsha> (#2434)
Docker images from paritypr are also used in testnets. PR reverts docker
tags naming to a more convenient.

cc @PierreBesson
2023-11-22 10:29:56 +01:00
Ross Bulat 7a32f4be48 Deprecate RewardDestination::Controller (#2380)
Deprecates `RewardDestination::Controller` variant.

- [x] `RewardDestination::Controller` annotated with `#[deprecated]`.
- [x] `Controller` variant is now handled the same way as `Stash` in
`payout_stakers`.
- [x] `set_payee` errors if `RewardDestination::Controller` is provided.
- [x] Added `update_payee` call to lazily migrate
`RewardDestination::Controller` `Payee` storage entries to
`RewardDestination::Account(controller)` .
- [x] `payout_stakers_dead_controller` has been removed from benches &
weights - was not used.
- [x] Tests no longer use `RewardDestination::Controller`.

---------

Co-authored-by: command-bot <>
Co-authored-by: Gonçalo Pestana <g6pestana@gmail.com>
Co-authored-by: georgepisaltu <52418509+georgepisaltu@users.noreply.github.com>
2023-11-22 11:22:28 +02:00
Michal Kucharczyk 2183669d05 cumulus-test-service: block import fix (#2430)
This is follow-up for:
https://github.com/paritytech/polkadot-sdk/pull/2001

Block import queue for `test-parachain` (`cumulus-test-service`) shall
use delayed best block feature.

This should fixed broken zombienet tests.
2023-11-21 20:03:55 +01:00
Sophia Gold 50811d6b42 Update tick collator for async backing (#1497)
This updates the tick runtime and polkadot-parachain collator to use
async backing.
2023-11-21 11:34:05 -05:00
Javier Bullrich f5ad32e406 added action to pass review bot on merge queue (#2414)
This action will trigger when a merge queue is created and will add a
positive status check under the `review-bot` account, allowing the PR to
pass the required check for the merge.

---------

Co-authored-by: Chevdor <chevdor@users.noreply.github.com>
2023-11-21 17:49:47 +02:00