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 dependencies to v0.9.8 series #587

Merged
merged 18 commits into from
Jul 12, 2021
Merged

Update dependencies to v0.9.8 series #587

merged 18 commits into from
Jul 12, 2021

Conversation

tgmichel
Copy link
Contributor

@tgmichel tgmichel commented Jul 8, 2021

paritytech/substrate#8953 introduced a change where block are not initialized in runtime api calls anymore. That change affects our trace runtime apis, so in this PR we also include an explicit initialization for this calls.

@girazoki
Copy link
Collaborator

girazoki commented Jul 8, 2021

AFAICT we dont need runtime mgirations right? Based on #586

Copy link
Contributor

@JoshOrndorff JoshOrndorff left a comment

Choose a reason for hiding this comment

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

Although the tests here are green, there is a slot prediction issue in this nimbus branch. It will result in nodes incorrectly predicting the slots in which they are eligible which has two consequences:

  • not authoring when you should -> slower network aggregate block production
  • authoring hen you shouldn't -> Bad Mandatory error (but no other side effects)

I've made the fix and pushed it to thejoshy-np098 branch of cumulus. So to move forward we could either use my branch (which also includes a few other not-that-significant changes to nimbus) or get the changes into the current nimbus-polkadot-v0.9.8 branch.

After that we need to make a slight change to the author filter api in each runtime.

⚠️ Because this changes the signature of a runtime API it means that we will need to upgrade the client simultaneously with the on-chain runtime upgrade. If we don't the client will not call the runtime correctly.

@JoshOrndorff JoshOrndorff added A0-pleasereview Pull request needs code review. A1-needsburnin Pull request needs to be tested on a live validator node before merge. B2-breaksapi B5-clientnoteworthy Changes should be mentioned in any downstream projects' release notes B7-runtimenoteworthy Changes should be noted in any runtime-upgrade release notes C9-critical Elevates a release containing this PR to "critical priority". dependencies Pull requests that update a dependency file labels Jul 9, 2021
@@ -99,6 +100,10 @@ macro_rules! impl_runtime_apis_plus_common {
use moonbeam_evm_tracer::{CallListTracer, RawTracer};
use moonbeam_rpc_primitives_debug::single::TraceType;

// Explicit initialize.
// Needed because https://github.com/paritytech/substrate/pull/8953
Executive::initialize_block(header);
Copy link
Contributor

Choose a reason for hiding this comment

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

👍

runtime/moonbeam/Cargo.toml Outdated Show resolved Hide resolved
@JoshOrndorff
Copy link
Contributor

JoshOrndorff commented Jul 9, 2021

⚠️

The change in the author prediction api means that the client should be upgraded along with the runtime. Any client that does not upgrade will not reliably predict slot eligibility.

Failing to upgrade would not be catastrophic, but would lead to reduced block production because collators would sometimes predict ineligibility and therefore not author when in fact they were eligible. Any node operator who doesn't upgrade will see BadMandatory occasionally, when they predict that they will be eligible, but in fact are not.

Might be worth editing that into the PR description.

# Conflicts:
#	runtime/moonbase/src/lib.rs
#	runtime/moonbeam/src/lib.rs
#	runtime/moonshadow/src/lib.rs
# Conflicts:
#	client/rpc/debug/src/lib.rs
#	client/rpc/trace/src/lib.rs
#	primitives/rpc/debug/Cargo.toml
#	runtime/evm_tracer/Cargo.toml
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
A0-pleasereview Pull request needs code review. A1-needsburnin Pull request needs to be tested on a live validator node before merge. B5-clientnoteworthy Changes should be mentioned in any downstream projects' release notes B7-runtimenoteworthy Changes should be noted in any runtime-upgrade release notes C9-critical Elevates a release containing this PR to "critical priority". dependencies Pull requests that update a dependency file
Projects
None yet
Development

Successfully merging this pull request may close these issues.

5 participants