-
Notifications
You must be signed in to change notification settings - Fork 379
Asynchronous-backing compatible Aura, not plugged in #2573
Conversation
3323f80
to
4117852
Compare
4117852
to
bbce10e
Compare
&claim, | ||
None, | ||
(parachain_inherent_data, other_inherent_data), | ||
// TODO [https://github.com/paritytech/cumulus/issues/2439] |
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.
Perhaps we can get rid of this TODO. Seems that you handled authoring_duration in the collator params of lookahead.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.
Unfortunately, that doesn't really work for the 'basic' collator as the time limitations are very strict (and this PR just maintains behavior as this code is becoming obsolete)
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.
👍 Only nits and questions from me.
} | ||
} | ||
|
||
fn slot_now(slot_duration: SlotDuration) -> Slot { |
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.
You're probably aware, but it seems the changes to Slot derivation in #2658 will require changes here. That is, assuming 2658 gets merged first.
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.
This logic works, as it's only meant to be a rough representation of "now". The Aura slot is calculated as the relay-chain slot, converted to a timestamp, converted into the parachain slot. Given that the timestamp->slot conversion rounds down, this implementation gives attackers slightly more lenience in creating blocks in the future, but no more than 1 relay-chain slot's worth.
@seunlanlege Implements a slightly more general version of Perhaps his could be incorporated. |
// Build in a loop until not allowed. Note that the authorities can change | ||
// at any block, so we need to re-claim our slot every time. |
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 know it isn't plugged in, but
- Are we supposed to check that velocity isn't exceeded? Otherwise, it could cause a panic in the runtime. (I assume it will be part of
can_build_upon
) - Doesn't it affect parachain block times?
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.
- Yes,
can_build_upon
would be intended to check this. A runtime panic is not really a problem, as it's a panic in an illegal-to-author block (same as if you tried to create a block with the wrong author for the slot). The panic would not happen on legal blocks, so all we have to do is make sure that collators can tell what's legal to author and what's not. - The overall mechanism here does affect parachain block times, in that blocks when the unincluded segment is empty will come faster as we build up the segment and slower when the segment is full. Is that what you mean, or something else?
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.
Is that what you mean, or something else?
Yes. Concern is this behavior might not be something parachains would expect.
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.
There is really no other option - either you produce blocks at a constant rate, and never build a backlog, or you build an infinite backlog. We do need to communicate these properties, I agree, but based on conversations and other socialization of the concept that it's pretty uncontroversial.
* rough draft of potential parent search * get things compiling * fmt * add new function to all RelayChainInterface implementations * fix compilation * set slot and timestamp based on relay parent, prepare for find-parent * skeleton of new aura logic * fmt * introduce a collator module in the Aura crate * extract different implementations into own modules * make interface more convenient * docs and todos for lookahead * refactor basic collator to use new collator utility * some more refactoring * finish most of the control flow for new aura * introduce backend as parameter * fix compilation * fix a couple more TODOs * add an `announce_block` function to collator service * announce with barrier * rename block announcement validator to be more specific * fmt * clean up unused import errors * update references to BlockAnnounceValidator * rename unstable_reimpl * add AuraUnincludedSegmentApi * finish rename * integrate AuraUnincludedSegmentApi * add a new block announcement validator for backwards compatibility * add some naive equivocation defenses * rustfmt * clean up remaining TODO [now]s * fmt * try to fix inprocess-interface * actually fix compilation * ignored -> rejected rephrase * fix test compilation * fmt * clippy
* Update substrate dependecies * Bump serde from 1.0.167 to 1.0.168 (#2848) Bumps [serde](https://github.com/serde-rs/serde) from 1.0.167 to 1.0.168. - [Release notes](https://github.com/serde-rs/serde/releases) - [Commits](serde-rs/serde@v1.0.167...v1.0.168) --- updated-dependencies: - dependency-name: serde dependency-type: direct:production update-type: version-update:semver-patch ... Signed-off-by: dependabot[bot] <support@github.com> Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> * Asynchronous-backing compatible Aura, not plugged in (#2573) * rough draft of potential parent search * get things compiling * fmt * add new function to all RelayChainInterface implementations * fix compilation * set slot and timestamp based on relay parent, prepare for find-parent * skeleton of new aura logic * fmt * introduce a collator module in the Aura crate * extract different implementations into own modules * make interface more convenient * docs and todos for lookahead * refactor basic collator to use new collator utility * some more refactoring * finish most of the control flow for new aura * introduce backend as parameter * fix compilation * fix a couple more TODOs * add an `announce_block` function to collator service * announce with barrier * rename block announcement validator to be more specific * fmt * clean up unused import errors * update references to BlockAnnounceValidator * rename unstable_reimpl * add AuraUnincludedSegmentApi * finish rename * integrate AuraUnincludedSegmentApi * add a new block announcement validator for backwards compatibility * add some naive equivocation defenses * rustfmt * clean up remaining TODO [now]s * fmt * try to fix inprocess-interface * actually fix compilation * ignored -> rejected rephrase * fix test compilation * fmt * clippy * Bump substrate (because of failing asset-hub-westend benchmarks) (#2853) * Bump substrate (because of failing asset-hub-westend benchmarks) * Cargo.lock * Update to compatible substrate vs polkadot * Companion for removal of execution strategies (#2836) * Companion for removal of execution strategies paritytech/substrate#14387 * Update Cargo.lock * Remove patches * Delete file again * update lockfile for {"polkadot", "substrate"} * Fix * FMT --------- Co-authored-by: parity-processbot <> * `GenesisBuild<T,I>` deprecated. `BuildGenesisConfig` added (#2757) * GenesisBuild<T,I> deprecated. BuildGenesisConfig added * ".git/.scripts/commands/fmt/fmt.sh" * integration-tests/emulated: ..Default::default added to genesis configs * Cargo.lock updated * Cargo.lock updated * update lockfile for {"polkadot", "substrate"} * clippy fixes * clippy fixes * clippy fixes again --------- Co-authored-by: command-bot <> * Moves `Block` to `frame_system` instead of `construct_runtime` and removes `Header` and `BlockNumber` (#2790) * Fixes * Removes unused import * Uses Block and removes BlockNumber/Header from Chain * Fixes bridges * Fixes * Removes unused import * Fixes build * Uses correct RelayBlock * Minor fix * Fixes glutton-kusama * Uses correct RelayBlock * Minor fix * Fixes benchmark for pallet-bridge-parachains * Adds appropriate constraints * Minor fixes * Removes unused import * Fixes integrity tests * Minor fixes * Updates trait bounds * Uses custom bound for AsPrimitive * Fixes trait bounds * Revert "Fixes trait bounds" This reverts commit 0b0f42f. * Revert "Uses custom bound for AsPrimitive" This reverts commit 838e528. * No AsPrimitive trait bound for now * Removes bounds on Number * update lockfile for {"substrate", "polkadot"} * Formatting * ".git/.scripts/commands/fmt/fmt.sh" * Minor fix --------- Co-authored-by: parity-processbot <> * Replace Index for Nonce (#2740) * replace Index for Nonce * update lockfile for {"substrate", "polkadot"} --------- Co-authored-by: parity-processbot <> * Bump clap from 4.3.11 to 4.3.12 (#2873) Bumps [clap](https://github.com/clap-rs/clap) from 4.3.11 to 4.3.12. - [Release notes](https://github.com/clap-rs/clap/releases) - [Changelog](https://github.com/clap-rs/clap/blob/master/CHANGELOG.md) - [Commits](clap-rs/clap@v4.3.11...v4.3.12) --- updated-dependencies: - dependency-name: clap dependency-type: direct:production update-type: version-update:semver-patch ... Signed-off-by: dependabot[bot] <support@github.com> Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> * Bump proc-macro2 from 1.0.63 to 1.0.64 (#2849) Bumps [proc-macro2](https://github.com/dtolnay/proc-macro2) from 1.0.63 to 1.0.64. - [Release notes](https://github.com/dtolnay/proc-macro2/releases) - [Commits](dtolnay/proc-macro2@1.0.63...1.0.64) --- updated-dependencies: - dependency-name: proc-macro2 dependency-type: direct:production update-type: version-update:semver-patch ... Signed-off-by: dependabot[bot] <support@github.com> Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> * Bump syn from 2.0.23 to 2.0.25 (#2847) Bumps [syn](https://github.com/dtolnay/syn) from 2.0.23 to 2.0.25. - [Release notes](https://github.com/dtolnay/syn/releases) - [Commits](dtolnay/syn@2.0.23...2.0.25) --- updated-dependencies: - dependency-name: syn dependency-type: direct:production update-type: version-update:semver-patch ... Signed-off-by: dependabot[bot] <support@github.com> Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> * Bump serde from 1.0.168 to 1.0.171 (#2855) Bumps [serde](https://github.com/serde-rs/serde) from 1.0.168 to 1.0.171. - [Release notes](https://github.com/serde-rs/serde/releases) - [Commits](serde-rs/serde@v1.0.168...v1.0.171) --- updated-dependencies: - dependency-name: serde dependency-type: direct:production update-type: version-update:semver-patch ... Signed-off-by: dependabot[bot] <support@github.com> Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> * Bump serde_json from 1.0.100 to 1.0.102 (#2859) Bumps [serde_json](https://github.com/serde-rs/json) from 1.0.100 to 1.0.102. - [Release notes](https://github.com/serde-rs/json/releases) - [Commits](serde-rs/json@v1.0.100...v1.0.102) --- updated-dependencies: - dependency-name: serde_json dependency-type: direct:production update-type: version-update:semver-patch ... Signed-off-by: dependabot[bot] <support@github.com> Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> * Fix duplication issue * Update polkadot and substrate deps * Removed `--execution wasm` (#2857) --------- Signed-off-by: dependabot[bot] <support@github.com> Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> Co-authored-by: asynchronous rob <rphmeier@gmail.com> Co-authored-by: Branislav Kontur <bkontur@gmail.com> Co-authored-by: Bastian Köcher <git@kchr.de> Co-authored-by: Michal Kucharczyk <1728078+michalkucharczyk@users.noreply.github.com> Co-authored-by: gupnik <17176722+gupnik@users.noreply.github.com> Co-authored-by: Juan <juangirini@gmail.com>
* Update substrate dependecies * Bump serde from 1.0.167 to 1.0.168 (#2848) Bumps [serde](https://github.com/serde-rs/serde) from 1.0.167 to 1.0.168. - [Release notes](https://github.com/serde-rs/serde/releases) - [Commits](serde-rs/serde@v1.0.167...v1.0.168) --- updated-dependencies: - dependency-name: serde dependency-type: direct:production update-type: version-update:semver-patch ... Signed-off-by: dependabot[bot] <support@github.com> Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> * Asynchronous-backing compatible Aura, not plugged in (#2573) * rough draft of potential parent search * get things compiling * fmt * add new function to all RelayChainInterface implementations * fix compilation * set slot and timestamp based on relay parent, prepare for find-parent * skeleton of new aura logic * fmt * introduce a collator module in the Aura crate * extract different implementations into own modules * make interface more convenient * docs and todos for lookahead * refactor basic collator to use new collator utility * some more refactoring * finish most of the control flow for new aura * introduce backend as parameter * fix compilation * fix a couple more TODOs * add an `announce_block` function to collator service * announce with barrier * rename block announcement validator to be more specific * fmt * clean up unused import errors * update references to BlockAnnounceValidator * rename unstable_reimpl * add AuraUnincludedSegmentApi * finish rename * integrate AuraUnincludedSegmentApi * add a new block announcement validator for backwards compatibility * add some naive equivocation defenses * rustfmt * clean up remaining TODO [now]s * fmt * try to fix inprocess-interface * actually fix compilation * ignored -> rejected rephrase * fix test compilation * fmt * clippy * Bump substrate (because of failing asset-hub-westend benchmarks) (#2853) * Bump substrate (because of failing asset-hub-westend benchmarks) * Cargo.lock * Update to compatible substrate vs polkadot * Companion for removal of execution strategies (#2836) * Companion for removal of execution strategies paritytech/substrate#14387 * Update Cargo.lock * Remove patches * Delete file again * update lockfile for {"polkadot", "substrate"} * Fix * FMT --------- Co-authored-by: parity-processbot <> * `GenesisBuild<T,I>` deprecated. `BuildGenesisConfig` added (#2757) * GenesisBuild<T,I> deprecated. BuildGenesisConfig added * ".git/.scripts/commands/fmt/fmt.sh" * integration-tests/emulated: ..Default::default added to genesis configs * Cargo.lock updated * Cargo.lock updated * update lockfile for {"polkadot", "substrate"} * clippy fixes * clippy fixes * clippy fixes again --------- Co-authored-by: command-bot <> * Moves `Block` to `frame_system` instead of `construct_runtime` and removes `Header` and `BlockNumber` (#2790) * Fixes * Removes unused import * Uses Block and removes BlockNumber/Header from Chain * Fixes bridges * Fixes * Removes unused import * Fixes build * Uses correct RelayBlock * Minor fix * Fixes glutton-kusama * Uses correct RelayBlock * Minor fix * Fixes benchmark for pallet-bridge-parachains * Adds appropriate constraints * Minor fixes * Removes unused import * Fixes integrity tests * Minor fixes * Updates trait bounds * Uses custom bound for AsPrimitive * Fixes trait bounds * Revert "Fixes trait bounds" This reverts commit 0b0f42f. * Revert "Uses custom bound for AsPrimitive" This reverts commit 838e528. * No AsPrimitive trait bound for now * Removes bounds on Number * update lockfile for {"substrate", "polkadot"} * Formatting * ".git/.scripts/commands/fmt/fmt.sh" * Minor fix --------- Co-authored-by: parity-processbot <> * Replace Index for Nonce (#2740) * replace Index for Nonce * update lockfile for {"substrate", "polkadot"} --------- Co-authored-by: parity-processbot <> * Bump clap from 4.3.11 to 4.3.12 (#2873) Bumps [clap](https://github.com/clap-rs/clap) from 4.3.11 to 4.3.12. - [Release notes](https://github.com/clap-rs/clap/releases) - [Changelog](https://github.com/clap-rs/clap/blob/master/CHANGELOG.md) - [Commits](clap-rs/clap@v4.3.11...v4.3.12) --- updated-dependencies: - dependency-name: clap dependency-type: direct:production update-type: version-update:semver-patch ... Signed-off-by: dependabot[bot] <support@github.com> Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> * Bump proc-macro2 from 1.0.63 to 1.0.64 (#2849) Bumps [proc-macro2](https://github.com/dtolnay/proc-macro2) from 1.0.63 to 1.0.64. - [Release notes](https://github.com/dtolnay/proc-macro2/releases) - [Commits](dtolnay/proc-macro2@1.0.63...1.0.64) --- updated-dependencies: - dependency-name: proc-macro2 dependency-type: direct:production update-type: version-update:semver-patch ... Signed-off-by: dependabot[bot] <support@github.com> Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> * Bump syn from 2.0.23 to 2.0.25 (#2847) Bumps [syn](https://github.com/dtolnay/syn) from 2.0.23 to 2.0.25. - [Release notes](https://github.com/dtolnay/syn/releases) - [Commits](dtolnay/syn@2.0.23...2.0.25) --- updated-dependencies: - dependency-name: syn dependency-type: direct:production update-type: version-update:semver-patch ... Signed-off-by: dependabot[bot] <support@github.com> Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> * Bump serde from 1.0.168 to 1.0.171 (#2855) Bumps [serde](https://github.com/serde-rs/serde) from 1.0.168 to 1.0.171. - [Release notes](https://github.com/serde-rs/serde/releases) - [Commits](serde-rs/serde@v1.0.168...v1.0.171) --- updated-dependencies: - dependency-name: serde dependency-type: direct:production update-type: version-update:semver-patch ... Signed-off-by: dependabot[bot] <support@github.com> Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> * Bump serde_json from 1.0.100 to 1.0.102 (#2859) Bumps [serde_json](https://github.com/serde-rs/json) from 1.0.100 to 1.0.102. - [Release notes](https://github.com/serde-rs/json/releases) - [Commits](serde-rs/json@v1.0.100...v1.0.102) --- updated-dependencies: - dependency-name: serde_json dependency-type: direct:production update-type: version-update:semver-patch ... Signed-off-by: dependabot[bot] <support@github.com> Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> * Fix duplication issue * Update polkadot and substrate deps * Removed `--execution wasm` (#2857) --------- Signed-off-by: dependabot[bot] <support@github.com> Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> Co-authored-by: asynchronous rob <rphmeier@gmail.com> Co-authored-by: Branislav Kontur <bkontur@gmail.com> Co-authored-by: Bastian Köcher <git@kchr.de> Co-authored-by: Michal Kucharczyk <1728078+michalkucharczyk@users.noreply.github.com> Co-authored-by: gupnik <17176722+gupnik@users.noreply.github.com> Co-authored-by: Juan <juangirini@gmail.com>
* Update substrate dependecies * Bump serde from 1.0.167 to 1.0.168 (#2848) Bumps [serde](https://github.com/serde-rs/serde) from 1.0.167 to 1.0.168. - [Release notes](https://github.com/serde-rs/serde/releases) - [Commits](serde-rs/serde@v1.0.167...v1.0.168) --- updated-dependencies: - dependency-name: serde dependency-type: direct:production update-type: version-update:semver-patch ... Signed-off-by: dependabot[bot] <support@github.com> Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> * Asynchronous-backing compatible Aura, not plugged in (#2573) * rough draft of potential parent search * get things compiling * fmt * add new function to all RelayChainInterface implementations * fix compilation * set slot and timestamp based on relay parent, prepare for find-parent * skeleton of new aura logic * fmt * introduce a collator module in the Aura crate * extract different implementations into own modules * make interface more convenient * docs and todos for lookahead * refactor basic collator to use new collator utility * some more refactoring * finish most of the control flow for new aura * introduce backend as parameter * fix compilation * fix a couple more TODOs * add an `announce_block` function to collator service * announce with barrier * rename block announcement validator to be more specific * fmt * clean up unused import errors * update references to BlockAnnounceValidator * rename unstable_reimpl * add AuraUnincludedSegmentApi * finish rename * integrate AuraUnincludedSegmentApi * add a new block announcement validator for backwards compatibility * add some naive equivocation defenses * rustfmt * clean up remaining TODO [now]s * fmt * try to fix inprocess-interface * actually fix compilation * ignored -> rejected rephrase * fix test compilation * fmt * clippy * Bump substrate (because of failing asset-hub-westend benchmarks) (#2853) * Bump substrate (because of failing asset-hub-westend benchmarks) * Cargo.lock * Update to compatible substrate vs polkadot * Companion for removal of execution strategies (#2836) * Companion for removal of execution strategies paritytech/substrate#14387 * Update Cargo.lock * Remove patches * Delete file again * update lockfile for {"polkadot", "substrate"} * Fix * FMT --------- Co-authored-by: parity-processbot <> * `GenesisBuild<T,I>` deprecated. `BuildGenesisConfig` added (#2757) * GenesisBuild<T,I> deprecated. BuildGenesisConfig added * ".git/.scripts/commands/fmt/fmt.sh" * integration-tests/emulated: ..Default::default added to genesis configs * Cargo.lock updated * Cargo.lock updated * update lockfile for {"polkadot", "substrate"} * clippy fixes * clippy fixes * clippy fixes again --------- Co-authored-by: command-bot <> * Moves `Block` to `frame_system` instead of `construct_runtime` and removes `Header` and `BlockNumber` (#2790) * Fixes * Removes unused import * Uses Block and removes BlockNumber/Header from Chain * Fixes bridges * Fixes * Removes unused import * Fixes build * Uses correct RelayBlock * Minor fix * Fixes glutton-kusama * Uses correct RelayBlock * Minor fix * Fixes benchmark for pallet-bridge-parachains * Adds appropriate constraints * Minor fixes * Removes unused import * Fixes integrity tests * Minor fixes * Updates trait bounds * Uses custom bound for AsPrimitive * Fixes trait bounds * Revert "Fixes trait bounds" This reverts commit 0b0f42f. * Revert "Uses custom bound for AsPrimitive" This reverts commit 838e528. * No AsPrimitive trait bound for now * Removes bounds on Number * update lockfile for {"substrate", "polkadot"} * Formatting * ".git/.scripts/commands/fmt/fmt.sh" * Minor fix --------- Co-authored-by: parity-processbot <> * Replace Index for Nonce (#2740) * replace Index for Nonce * update lockfile for {"substrate", "polkadot"} --------- Co-authored-by: parity-processbot <> * Bump clap from 4.3.11 to 4.3.12 (#2873) Bumps [clap](https://github.com/clap-rs/clap) from 4.3.11 to 4.3.12. - [Release notes](https://github.com/clap-rs/clap/releases) - [Changelog](https://github.com/clap-rs/clap/blob/master/CHANGELOG.md) - [Commits](clap-rs/clap@v4.3.11...v4.3.12) --- updated-dependencies: - dependency-name: clap dependency-type: direct:production update-type: version-update:semver-patch ... Signed-off-by: dependabot[bot] <support@github.com> Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> * Bump proc-macro2 from 1.0.63 to 1.0.64 (#2849) Bumps [proc-macro2](https://github.com/dtolnay/proc-macro2) from 1.0.63 to 1.0.64. - [Release notes](https://github.com/dtolnay/proc-macro2/releases) - [Commits](dtolnay/proc-macro2@1.0.63...1.0.64) --- updated-dependencies: - dependency-name: proc-macro2 dependency-type: direct:production update-type: version-update:semver-patch ... Signed-off-by: dependabot[bot] <support@github.com> Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> * Bump syn from 2.0.23 to 2.0.25 (#2847) Bumps [syn](https://github.com/dtolnay/syn) from 2.0.23 to 2.0.25. - [Release notes](https://github.com/dtolnay/syn/releases) - [Commits](dtolnay/syn@2.0.23...2.0.25) --- updated-dependencies: - dependency-name: syn dependency-type: direct:production update-type: version-update:semver-patch ... Signed-off-by: dependabot[bot] <support@github.com> Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> * Bump serde from 1.0.168 to 1.0.171 (#2855) Bumps [serde](https://github.com/serde-rs/serde) from 1.0.168 to 1.0.171. - [Release notes](https://github.com/serde-rs/serde/releases) - [Commits](serde-rs/serde@v1.0.168...v1.0.171) --- updated-dependencies: - dependency-name: serde dependency-type: direct:production update-type: version-update:semver-patch ... Signed-off-by: dependabot[bot] <support@github.com> Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> * Bump serde_json from 1.0.100 to 1.0.102 (#2859) Bumps [serde_json](https://github.com/serde-rs/json) from 1.0.100 to 1.0.102. - [Release notes](https://github.com/serde-rs/json/releases) - [Commits](serde-rs/json@v1.0.100...v1.0.102) --- updated-dependencies: - dependency-name: serde_json dependency-type: direct:production update-type: version-update:semver-patch ... Signed-off-by: dependabot[bot] <support@github.com> Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> * Fix duplication issue * Update polkadot and substrate deps * Removed `--execution wasm` (#2857) --------- Signed-off-by: dependabot[bot] <support@github.com> Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> Co-authored-by: asynchronous rob <rphmeier@gmail.com> Co-authored-by: Branislav Kontur <bkontur@gmail.com> Co-authored-by: Bastian Köcher <git@kchr.de> Co-authored-by: Michal Kucharczyk <1728078+michalkucharczyk@users.noreply.github.com> Co-authored-by: gupnik <17176722+gupnik@users.noreply.github.com> Co-authored-by: Juan <juangirini@gmail.com>
#2963) * [Backport] missing fellowship prs (#2891) * Update substrate dependecies * Bump serde from 1.0.167 to 1.0.168 (#2848) Bumps [serde](https://github.com/serde-rs/serde) from 1.0.167 to 1.0.168. - [Release notes](https://github.com/serde-rs/serde/releases) - [Commits](serde-rs/serde@v1.0.167...v1.0.168) --- updated-dependencies: - dependency-name: serde dependency-type: direct:production update-type: version-update:semver-patch ... Signed-off-by: dependabot[bot] <support@github.com> Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> * Asynchronous-backing compatible Aura, not plugged in (#2573) * rough draft of potential parent search * get things compiling * fmt * add new function to all RelayChainInterface implementations * fix compilation * set slot and timestamp based on relay parent, prepare for find-parent * skeleton of new aura logic * fmt * introduce a collator module in the Aura crate * extract different implementations into own modules * make interface more convenient * docs and todos for lookahead * refactor basic collator to use new collator utility * some more refactoring * finish most of the control flow for new aura * introduce backend as parameter * fix compilation * fix a couple more TODOs * add an `announce_block` function to collator service * announce with barrier * rename block announcement validator to be more specific * fmt * clean up unused import errors * update references to BlockAnnounceValidator * rename unstable_reimpl * add AuraUnincludedSegmentApi * finish rename * integrate AuraUnincludedSegmentApi * add a new block announcement validator for backwards compatibility * add some naive equivocation defenses * rustfmt * clean up remaining TODO [now]s * fmt * try to fix inprocess-interface * actually fix compilation * ignored -> rejected rephrase * fix test compilation * fmt * clippy * Bump substrate (because of failing asset-hub-westend benchmarks) (#2853) * Bump substrate (because of failing asset-hub-westend benchmarks) * Cargo.lock * Update to compatible substrate vs polkadot * Companion for removal of execution strategies (#2836) * Companion for removal of execution strategies paritytech/substrate#14387 * Update Cargo.lock * Remove patches * Delete file again * update lockfile for {"polkadot", "substrate"} * Fix * FMT --------- Co-authored-by: parity-processbot <> * `GenesisBuild<T,I>` deprecated. `BuildGenesisConfig` added (#2757) * GenesisBuild<T,I> deprecated. BuildGenesisConfig added * ".git/.scripts/commands/fmt/fmt.sh" * integration-tests/emulated: ..Default::default added to genesis configs * Cargo.lock updated * Cargo.lock updated * update lockfile for {"polkadot", "substrate"} * clippy fixes * clippy fixes * clippy fixes again --------- Co-authored-by: command-bot <> * Moves `Block` to `frame_system` instead of `construct_runtime` and removes `Header` and `BlockNumber` (#2790) * Fixes * Removes unused import * Uses Block and removes BlockNumber/Header from Chain * Fixes bridges * Fixes * Removes unused import * Fixes build * Uses correct RelayBlock * Minor fix * Fixes glutton-kusama * Uses correct RelayBlock * Minor fix * Fixes benchmark for pallet-bridge-parachains * Adds appropriate constraints * Minor fixes * Removes unused import * Fixes integrity tests * Minor fixes * Updates trait bounds * Uses custom bound for AsPrimitive * Fixes trait bounds * Revert "Fixes trait bounds" This reverts commit 0b0f42f. * Revert "Uses custom bound for AsPrimitive" This reverts commit 838e528. * No AsPrimitive trait bound for now * Removes bounds on Number * update lockfile for {"substrate", "polkadot"} * Formatting * ".git/.scripts/commands/fmt/fmt.sh" * Minor fix --------- Co-authored-by: parity-processbot <> * Replace Index for Nonce (#2740) * replace Index for Nonce * update lockfile for {"substrate", "polkadot"} --------- Co-authored-by: parity-processbot <> * Bump clap from 4.3.11 to 4.3.12 (#2873) Bumps [clap](https://github.com/clap-rs/clap) from 4.3.11 to 4.3.12. - [Release notes](https://github.com/clap-rs/clap/releases) - [Changelog](https://github.com/clap-rs/clap/blob/master/CHANGELOG.md) - [Commits](clap-rs/clap@v4.3.11...v4.3.12) --- updated-dependencies: - dependency-name: clap dependency-type: direct:production update-type: version-update:semver-patch ... Signed-off-by: dependabot[bot] <support@github.com> Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> * Bump proc-macro2 from 1.0.63 to 1.0.64 (#2849) Bumps [proc-macro2](https://github.com/dtolnay/proc-macro2) from 1.0.63 to 1.0.64. - [Release notes](https://github.com/dtolnay/proc-macro2/releases) - [Commits](dtolnay/proc-macro2@1.0.63...1.0.64) --- updated-dependencies: - dependency-name: proc-macro2 dependency-type: direct:production update-type: version-update:semver-patch ... Signed-off-by: dependabot[bot] <support@github.com> Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> * Bump syn from 2.0.23 to 2.0.25 (#2847) Bumps [syn](https://github.com/dtolnay/syn) from 2.0.23 to 2.0.25. - [Release notes](https://github.com/dtolnay/syn/releases) - [Commits](dtolnay/syn@2.0.23...2.0.25) --- updated-dependencies: - dependency-name: syn dependency-type: direct:production update-type: version-update:semver-patch ... Signed-off-by: dependabot[bot] <support@github.com> Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> * Bump serde from 1.0.168 to 1.0.171 (#2855) Bumps [serde](https://github.com/serde-rs/serde) from 1.0.168 to 1.0.171. - [Release notes](https://github.com/serde-rs/serde/releases) - [Commits](serde-rs/serde@v1.0.168...v1.0.171) --- updated-dependencies: - dependency-name: serde dependency-type: direct:production update-type: version-update:semver-patch ... Signed-off-by: dependabot[bot] <support@github.com> Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> * Bump serde_json from 1.0.100 to 1.0.102 (#2859) Bumps [serde_json](https://github.com/serde-rs/json) from 1.0.100 to 1.0.102. - [Release notes](https://github.com/serde-rs/json/releases) - [Commits](serde-rs/json@v1.0.100...v1.0.102) --- updated-dependencies: - dependency-name: serde_json dependency-type: direct:production update-type: version-update:semver-patch ... Signed-off-by: dependabot[bot] <support@github.com> Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> * Fix duplication issue * Update polkadot and substrate deps * Removed `--execution wasm` (#2857) --------- Signed-off-by: dependabot[bot] <support@github.com> Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> Co-authored-by: asynchronous rob <rphmeier@gmail.com> Co-authored-by: Branislav Kontur <bkontur@gmail.com> Co-authored-by: Bastian Köcher <git@kchr.de> Co-authored-by: Michal Kucharczyk <1728078+michalkucharczyk@users.noreply.github.com> Co-authored-by: gupnik <17176722+gupnik@users.noreply.github.com> Co-authored-by: Juan <juangirini@gmail.com> * Backport missing PR's to fix compilation issues * Update bridges subtree (#2903) * Squashed 'bridges/' changes from 0417308a48..3c4ada921b 3c4ada921b Update dependecies (#2277) (#2281) 3e195c9e76 GRANDPA: optimize votes_ancestries when needed (#2262) (#2264) 7065bbabc6 Implement RuntimeDebug for GrandpaJustification (#2254) 8c9e59bcbc Define generate_grandpa_key_ownership_proof() (#2247) (#2248) 0b46956df7 Deduplicate Grandpa consensus log reading logic (#2245) (#2246) 96c9701710 Fix deps from Cumulus (#2244) git-subtree-dir: bridges git-subtree-split: 3c4ada921bbdbdba945c3aa85d76ce316f7baab3 * removed extra files * post-merge fixes * also post-merge fixes --------- Signed-off-by: dependabot[bot] <support@github.com> Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> Co-authored-by: asynchronous rob <rphmeier@gmail.com> Co-authored-by: Branislav Kontur <bkontur@gmail.com> Co-authored-by: Bastian Köcher <git@kchr.de> Co-authored-by: Michal Kucharczyk <1728078+michalkucharczyk@users.noreply.github.com> Co-authored-by: gupnik <17176722+gupnik@users.noreply.github.com> Co-authored-by: Juan <juangirini@gmail.com> Co-authored-by: Svyatoslav Nikolsky <svyatonik@gmail.com>
…2964) * [Backport] missing fellowship prs (#2891) * Update substrate dependecies * Bump serde from 1.0.167 to 1.0.168 (#2848) Bumps [serde](https://github.com/serde-rs/serde) from 1.0.167 to 1.0.168. - [Release notes](https://github.com/serde-rs/serde/releases) - [Commits](serde-rs/serde@v1.0.167...v1.0.168) --- updated-dependencies: - dependency-name: serde dependency-type: direct:production update-type: version-update:semver-patch ... Signed-off-by: dependabot[bot] <support@github.com> Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> * Asynchronous-backing compatible Aura, not plugged in (#2573) * rough draft of potential parent search * get things compiling * fmt * add new function to all RelayChainInterface implementations * fix compilation * set slot and timestamp based on relay parent, prepare for find-parent * skeleton of new aura logic * fmt * introduce a collator module in the Aura crate * extract different implementations into own modules * make interface more convenient * docs and todos for lookahead * refactor basic collator to use new collator utility * some more refactoring * finish most of the control flow for new aura * introduce backend as parameter * fix compilation * fix a couple more TODOs * add an `announce_block` function to collator service * announce with barrier * rename block announcement validator to be more specific * fmt * clean up unused import errors * update references to BlockAnnounceValidator * rename unstable_reimpl * add AuraUnincludedSegmentApi * finish rename * integrate AuraUnincludedSegmentApi * add a new block announcement validator for backwards compatibility * add some naive equivocation defenses * rustfmt * clean up remaining TODO [now]s * fmt * try to fix inprocess-interface * actually fix compilation * ignored -> rejected rephrase * fix test compilation * fmt * clippy * Bump substrate (because of failing asset-hub-westend benchmarks) (#2853) * Bump substrate (because of failing asset-hub-westend benchmarks) * Cargo.lock * Update to compatible substrate vs polkadot * Companion for removal of execution strategies (#2836) * Companion for removal of execution strategies paritytech/substrate#14387 * Update Cargo.lock * Remove patches * Delete file again * update lockfile for {"polkadot", "substrate"} * Fix * FMT --------- Co-authored-by: parity-processbot <> * `GenesisBuild<T,I>` deprecated. `BuildGenesisConfig` added (#2757) * GenesisBuild<T,I> deprecated. BuildGenesisConfig added * ".git/.scripts/commands/fmt/fmt.sh" * integration-tests/emulated: ..Default::default added to genesis configs * Cargo.lock updated * Cargo.lock updated * update lockfile for {"polkadot", "substrate"} * clippy fixes * clippy fixes * clippy fixes again --------- Co-authored-by: command-bot <> * Moves `Block` to `frame_system` instead of `construct_runtime` and removes `Header` and `BlockNumber` (#2790) * Fixes * Removes unused import * Uses Block and removes BlockNumber/Header from Chain * Fixes bridges * Fixes * Removes unused import * Fixes build * Uses correct RelayBlock * Minor fix * Fixes glutton-kusama * Uses correct RelayBlock * Minor fix * Fixes benchmark for pallet-bridge-parachains * Adds appropriate constraints * Minor fixes * Removes unused import * Fixes integrity tests * Minor fixes * Updates trait bounds * Uses custom bound for AsPrimitive * Fixes trait bounds * Revert "Fixes trait bounds" This reverts commit 0b0f42f. * Revert "Uses custom bound for AsPrimitive" This reverts commit 838e528. * No AsPrimitive trait bound for now * Removes bounds on Number * update lockfile for {"substrate", "polkadot"} * Formatting * ".git/.scripts/commands/fmt/fmt.sh" * Minor fix --------- Co-authored-by: parity-processbot <> * Replace Index for Nonce (#2740) * replace Index for Nonce * update lockfile for {"substrate", "polkadot"} --------- Co-authored-by: parity-processbot <> * Bump clap from 4.3.11 to 4.3.12 (#2873) Bumps [clap](https://github.com/clap-rs/clap) from 4.3.11 to 4.3.12. - [Release notes](https://github.com/clap-rs/clap/releases) - [Changelog](https://github.com/clap-rs/clap/blob/master/CHANGELOG.md) - [Commits](clap-rs/clap@v4.3.11...v4.3.12) --- updated-dependencies: - dependency-name: clap dependency-type: direct:production update-type: version-update:semver-patch ... Signed-off-by: dependabot[bot] <support@github.com> Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> * Bump proc-macro2 from 1.0.63 to 1.0.64 (#2849) Bumps [proc-macro2](https://github.com/dtolnay/proc-macro2) from 1.0.63 to 1.0.64. - [Release notes](https://github.com/dtolnay/proc-macro2/releases) - [Commits](dtolnay/proc-macro2@1.0.63...1.0.64) --- updated-dependencies: - dependency-name: proc-macro2 dependency-type: direct:production update-type: version-update:semver-patch ... Signed-off-by: dependabot[bot] <support@github.com> Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> * Bump syn from 2.0.23 to 2.0.25 (#2847) Bumps [syn](https://github.com/dtolnay/syn) from 2.0.23 to 2.0.25. - [Release notes](https://github.com/dtolnay/syn/releases) - [Commits](dtolnay/syn@2.0.23...2.0.25) --- updated-dependencies: - dependency-name: syn dependency-type: direct:production update-type: version-update:semver-patch ... Signed-off-by: dependabot[bot] <support@github.com> Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> * Bump serde from 1.0.168 to 1.0.171 (#2855) Bumps [serde](https://github.com/serde-rs/serde) from 1.0.168 to 1.0.171. - [Release notes](https://github.com/serde-rs/serde/releases) - [Commits](serde-rs/serde@v1.0.168...v1.0.171) --- updated-dependencies: - dependency-name: serde dependency-type: direct:production update-type: version-update:semver-patch ... Signed-off-by: dependabot[bot] <support@github.com> Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> * Bump serde_json from 1.0.100 to 1.0.102 (#2859) Bumps [serde_json](https://github.com/serde-rs/json) from 1.0.100 to 1.0.102. - [Release notes](https://github.com/serde-rs/json/releases) - [Commits](serde-rs/json@v1.0.100...v1.0.102) --- updated-dependencies: - dependency-name: serde_json dependency-type: direct:production update-type: version-update:semver-patch ... Signed-off-by: dependabot[bot] <support@github.com> Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> * Fix duplication issue * Update polkadot and substrate deps * Removed `--execution wasm` (#2857) --------- Signed-off-by: dependabot[bot] <support@github.com> Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> Co-authored-by: asynchronous rob <rphmeier@gmail.com> Co-authored-by: Branislav Kontur <bkontur@gmail.com> Co-authored-by: Bastian Köcher <git@kchr.de> Co-authored-by: Michal Kucharczyk <1728078+michalkucharczyk@users.noreply.github.com> Co-authored-by: gupnik <17176722+gupnik@users.noreply.github.com> Co-authored-by: Juan <juangirini@gmail.com> * Backport missing PR's to fix compilation issues * Update bridges subtree (#2903) * Squashed 'bridges/' changes from 0417308a48..3c4ada921b 3c4ada921b Update dependecies (#2277) (#2281) 3e195c9e76 GRANDPA: optimize votes_ancestries when needed (#2262) (#2264) 7065bbabc6 Implement RuntimeDebug for GrandpaJustification (#2254) 8c9e59bcbc Define generate_grandpa_key_ownership_proof() (#2247) (#2248) 0b46956df7 Deduplicate Grandpa consensus log reading logic (#2245) (#2246) 96c9701710 Fix deps from Cumulus (#2244) git-subtree-dir: bridges git-subtree-split: 3c4ada921bbdbdba945c3aa85d76ce316f7baab3 * removed extra files * post-merge fixes * also post-merge fixes --------- Signed-off-by: dependabot[bot] <support@github.com> Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> Co-authored-by: asynchronous rob <rphmeier@gmail.com> Co-authored-by: Branislav Kontur <bkontur@gmail.com> Co-authored-by: Bastian Köcher <git@kchr.de> Co-authored-by: Michal Kucharczyk <1728078+michalkucharczyk@users.noreply.github.com> Co-authored-by: gupnik <17176722+gupnik@users.noreply.github.com> Co-authored-by: Juan <juangirini@gmail.com> Co-authored-by: Svyatoslav Nikolsky <svyatonik@gmail.com>
Closes #841
This PR prepares the logic for Aura for asynchronous backing according to #2476 but we will still require some updates to how the Polkadot node receives collations in order to fully activate.
The implementation listens for new relay-chain blocks and finds the best parachain block currently descending from the included block as-of that chain. It also selects the slot and timestamp according to the relay-parent's BABE slot (and modifies the relay-driven variant to do the same).
While I originally thought that we'd introduce new block announcement logic, I've decided to go with a different approach:
The main reasons for this are that equivocation detection isn't best done at the block announcement stage, nor is it safe to deny blocks just because they are equivocations (other authors might receive those equivocations in a different order and build on top of them). This is also more congruent to what is done in Substrate Aura/BABE.
The bulk of the diff comes from refactoring - lots of functionality is common to the async-backing logic and the backwards-compatible collation logic.
TODO: