* set MaxPermanentSlots and MaxTemporarySlots with a extrinsic instead of a constant
* delete the MaxPermanentSlots and MaxTemporarySlots constants from config on Rococo and Westend
* migration code for assigned slots
* remove getters
* little refactor
* set values in the GenesisConfig
* refactor in the migration, adding it in the rococo runtime
* refactor: fmt
* Minor fix
* pre_upgrade check
* add migration to mod v1
* Logs following Substrate#12873
* fix: current storage version set to 1
* use enact when try-runtime
* Vec seems to be missing
* feature gate import
* fix as per #13993
* address comments
Co-authored-by: Oliver Tale-Yazdi <oliver.tale-yazdi@parity.io>
* address comments
Co-authored-by: Oliver Tale-Yazdi <oliver.tale-yazdi@parity.io>
* benchmarking for assign_perm_parachain_slot extrinsic
* benchmark all the extrinsics of the pallet
* cargo fmt for assigned slots
* migration added for westend
* licence in benchmarking file
* BuildGenesisConfig
* assigned_slots default in genesis
* cargo fmt
* assigned_slots fix tests config
* cargo fmt
* fix benchmarking compile error
* fix benchmarking imports
* benchmark worst case scenario for validation code and head data
* add assigned_slots in frame_benchmarking on Rococo and Westend
* modify values for para_id in benchmarking
* delete the assigned_slots in westend frame_benchmarking
* fix benchmarkings and add it to westend
* cargo fmt
* ".git/.scripts/commands/bench/bench.sh" --subcommand=runtime --runtime=rococo --target_dir=polkadot --pallet=runtime_common::assigned_slots
* ".git/.scripts/commands/bench/bench.sh" --subcommand=runtime --runtime=westend --target_dir=polkadot --pallet=runtime_common::assigned_slots
* use generated weights in assigned_slots pallet
* small changes in set_max_permanent_slots and set_max_temporary_slots
* revert last commit
* address some comments
* wrap migration with VersionCheckedMigrateToV1
* add experimental feature in pallet, and assers in post_upgrade migration
* clean warnings
* clean unnecesary experimental flag
* small typo in comments
* cargo fmt
* small comments fixes
---------
Co-authored-by: al3mart <11448715+al3mart@users.noreply.github.com>
Co-authored-by: Oliver Tale-Yazdi <oliver.tale-yazdi@parity.io>
Co-authored-by: command-bot <>
* Remove superflous parameter `overseer_enable_anyways`
We don't need this flag, as we don't need the overseer enabled when the
node isn't a collator or validator.
* Rename `IsCollator` to `IsParachainNode`
`IsParachainNode` is more expressive and also encapsulates the state of
the parachain node being a full node. Some functionality like the
overseer needs to run always when the node runs alongside a parachain
node. The parachain node needs the overseer to e.g. recover PoVs. Other
things like candidate validation or pvf checking are only required for
when the node is running as validator.
* FMT
* Fix CI
- Update some places where `cargo run` was used
- Add note to error messages about `cargo build` before `cargo run`
- Fix call to `cargo install` in readme
If authority discovery is not enabled, `Overseer` is not enabled,
meaning `NetworkBridge` is not started. Validation/collation protocols
are, however, enabled even if the `NetworkBridge` is not started.
Currently this results in normal Polkadot full nodes advertising these
protocols, accepting inbound substreams and even establishing outbound
substreams for the validation protocol. Since the `NetworkBridge` is
not started and no protocol in Substrate is interested in these
protocol events, the events are relayed to all protocol handlers but
are getting discarded because no installed protocol is interested in them.
Co-authored-by: parity-processbot <>
* pvf: use test-utils feature to export test only
* adding comment to test-utils feature
* make prepare-worker and execute-worker as optional dependencies and add comments to test-utils
* remove doc hidden from pvf testing
* add prepare worker and execute worker entrypoints to test-utils feature
* pvf: add sp_tracing as optional dependency of test-utils
* add test-utils for polkadot and malus
* add test-utils feature to prepare and execute workers script
* remove required features from prepare and executing
* Try to trigger CI again to fix broken jobs
---------
Co-authored-by: Marcin S <marcin@realemail.net>
* WIP
* Add missing checkout
* Add debuggin
* Fix VAR name
* Bug fix
* Rework jobs
* Revert "Rework jobs"
This reverts commit 2bfa79fd3ae633c17403b838f9a5025f0f7fc3f3.
* Add cache
* Add temp default for testing
* Add missing checkout
* Fix patch
* Comment out the GPG check for now
* Rename polkadot_injected_release into a more appropriate polkadot_injected_debian
* Refactoring / renaming
* Introduce a generic image for binary injection
* Flag files to be deleted and changes to be done
* WIP
* Fix multi binaries images
* Add test build scripts
* Remove old file, add polkadot build-injected script
* Fix doc
* Fix tagging
* Add build of the injected container
* Fix for docker
* Remove the need for TTY
* Handling container publishing
* Fix owner and registry
* Fix vars
* Fix repo
* Fix var naming
* Fix case when there is no tag
* Fix case with no tag
* Handle error
* Fix spacings
* Fix tags
* Remove unnecessary grep that may fail
* Add final check
* Clean up and introduce GPG check
* Add doc
* Add doc
* Update doc/docker.md
Co-authored-by: Mira Ressel <mira@parity.io>
* type
Co-authored-by: Mira Ressel <mira@parity.io>
* Fix used VAR
* Improve doc
* ci: Update .build-push-image jobs to use the new build-injected.sh
* ci: fix path to build-injected.sh script
* Rename the release artifacts folder to prevent confusion due to a similar folder in the gitlab CI
* ci: check out polkadot repo in .build-push-image
This seems far cleaner than copying the entire scripts/ folder into our
job artifacts.
* feat(build-injected.sh): make PROJECT_ROOT configurable
This lets us avoid a dependency on git in our CI image.
* ci: build injected images with buildah
* ci: pass full image names to zombienet
* Add missing ignore
---------
Co-authored-by: Mira Ressel <mira@parity.io>
* PVF: Fix external workers being required for non-collator full nodes
* Fix
* Make check more precise
> This might as well be if role.is_authority() as there aren't really any nodes
> that are both authorities and collators. But if there were a node that is an
> authority and a collator, it'd probably want to validate candidates (in its
> role as an authority).
* Just seeing if this fixes zombienet CI...
* [WIP] PVF: Split out worker binaries
* Address compilation problems and re-design a bit
* Reorganize once more, fix tests
* Reformat with new nightly to make `cargo fmt` test happy
* Address `clippy` warnings
* Add temporary trace to debug zombienet tests
* Fix zombienet node upgrade test
* Fix malus and its CI
* Fix building worker binaries with malus
* More fixes for malus
* Remove unneeded cli subcommands
* Support placing auxiliary binaries to `/usr/libexec`
* Fix spelling
* Spelling
Co-authored-by: Marcin S. <marcin@realemail.net>
* Implement review comments (mostly nits)
* Fix worker node version flag
* Rework getting the worker paths
* Address a couple of review comments
* Minor restructuring
* Fix CI error
* Add tests for worker binaries detection
* Improve tests; try to fix CI
* Move workers module into separate file
* Try to fix failing test and workers not printing latest version
- Tests were not finding the worker binaries
- Workers were not being rebuilt when the version changed
- Made some errors easier to read
* Make a bunch of fixes
* Rebuild nodes on version change
* Fix more issues
* Fix tests
* Pass node version from node into dependencies to avoid recompiles
- [X] get version in CLI
- [X] pass it in to service
- [X] pass version along to PVF
- [X] remove rerun from service
- [X] add rerun to CLI
- [X] don’t rerun pvf/worker’s (these should be built by nodes which have rerun enabled)
* Some more improvements for smoother tests
- [X] Fix tests
- [X] Make puppet workers pass None for version and remove rerun
- [X] Make test collators self-contained
* Add back rerun to PVF workers
* Move worker binaries into files in cli crate
As a final optimization I've separated out each worker binary from its own crate
into the CLI crate. Before, the worker bin shared a crate with the worker lib,
so when the binaries got recompiled so did the libs and everything transitively
depending on the libs. This commit fixes this regression that was causing
recompiles after every commit.
* Fix bug (was passing worker version for node version)
* Move workers out of cli into root src/bin/ dir
- [X] Pass in node version from top-level (polkadot)
- [X] Add build.rs with rerun-git-head to root dir
* Add some sanity checks for workers to dockerfiles
* Update malus
+ [X] Make it self-contained
+ [X] Undo multiple binary changes
* Try to fix clippy errors
* Address `cargo run` issue
- [X] Add default-run for polkadot
- [X] Add note about installation to error
* Update readme (installation instructions)
* Allow disabling external workers for local/testing setups
+ [X] cli flag to enable single-binary mode
+ [X] Add message to error
* Revert unnecessary Cargo.lock changes
* Remove unnecessary build scripts from collators
* Add back missing malus commands (should fix failing ZN job)
* Some minor fixes
* Update Cargo.lock
* Fix some build errors
* Undo self-contained binaries; cli flag to disable version check
+ [X] Remove --dont-run-external-workers
+ [X] Add --disable-worker-version-check
+ [X] Remove PVF subcommands
+ [X] Redo malus changes
* Try to fix failing job and add some docs for local tests
---------
Co-authored-by: Dmitry Sinyavin <dmitry.sinyavin@parity.io>
Co-authored-by: s0me0ne-unkn0wn <48632512+s0me0ne-unkn0wn@users.noreply.github.com>
Co-authored-by: parity-processbot <>
* add rococo test and run ci every pr
* remove debug logging from ci output
* fix run command
* Update scripts/ci/gitlab/pipeline/check.yml
Co-authored-by: Alexander Samusev <41779041+alvicsam@users.noreply.github.com>
* make --checks explicit
* fix checks
* kick ci
* kick ci
* kick ci
* kick ci
---------
Co-authored-by: Alexander Samusev <41779041+alvicsam@users.noreply.github.com>
* add tests to worker common thread
* fix formatting
* move worker commons unit test from integration tests to worker file and do some improvements
* fix import on it/worker_common
* move worker commons unit test to test module
* cargo fmt
* move cpu_time_monitor_loop to test outside of thread module
* change worker thread unit test to use assert_eq
* fix formatting
* adding new methods to WaitOucome, fix pvf worker unit test
* fix formatting
* remove is_finished and is_timeout methods from WaitOutcome
* fix wait_for_threads_with_timeout_returns_outcome test
* ".git/.scripts/commands/fmt/fmt.sh"
* add common worker cond_notify_on_done_should_update_wait_outcome_when_panic test
---------
Co-authored-by: Marcin S <marcin@realemail.net>
Co-authored-by: command-bot <>