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 to Substrate master and Parachains V1 #102

Merged
merged 79 commits into from
Dec 11, 2020
Merged

Conversation

JoshOrndorff
Copy link
Contributor

@JoshOrndorff JoshOrndorff commented Nov 9, 2020

Overview

This PR is primarily an update of four key Moonbeam dependencies, Substrate, Cumulus, Polkadot, and Frontier. For a while Moonbeam has been using old versions of Substrate, Cumulus, and Polkadot, and backporting Frontier for compatability. This PR updates to the master branch of all of those.1

New Features

Although no new features are added directly to moonbeam with this upgrade, we gain several new features or fixes from upstream.

  • Parachains v1 (Polkadot)
  • Full multi collator support (Cumulus)
  • Weight gas mapping (Frontier)
  • More rpc endpoints (Frontier)
  • Rename trait Trait to trait Config (Substrate)
  • Estimate gas from EVM (Frontier)

Hotfix Status

Two hotfixes were removed. We no longer use a patched Frontier runtime API. Because of the Substrate update, we no longer use a non-standard ref_count type.

Two hotfixes remain, but were moved to Moonbeam as drop-in replacements for their upstream counterparts. This allows us to depend on the stock Frontier, and keep better track of hotfixes because they live in the Moonbeam repo. Specifically the EthApi was moved (@tgmichel could you please review this part?).This includes two orthogonal patches:

  • The backend optimization
  • The headers patch

Roadmap Moonbase Alpha v0.4

This PR is the main change slated for the v0.4 release. The code is mostly complete, but there is still much to be done.

  • CI green
  • Local realy-para network appears stable
  • Kubernetes Deployment reliable
  • Anemone passes
  • Mario's tests pass
  • Polkadot JS Apps updated. @joelamouche did prep work, need to update RefCount for spec version 5. (why 5?)
  • Testnet stable for more than 24 hours

Deployment

These updates introduced several changes in the process of compiling, launching, and registering a relay-para network. I've documented this process in my launch notes.

Tasks for followups

  • De-alias crate names
  • Add Anemone to CI

1: We're actually ahead of Frontier master now :) Hopefully my update PR will be merged.

@crystalin crystalin added A6-seemsok Pull request had a shallow review, but should have a follow up before merge. B7-runtimenoteworthy Changes should be noted in any runtime-upgrade release notes C7-high Elevates a release containing this PR to "high priority". labels Dec 8, 2020
@crystalin
Copy link
Collaborator

Awesome work. That's a huge step for Moonbeam

@joelamouche
Copy link
Contributor

OK that's probably a dumb question but this update is focused on the parachain. However the current testnet is from standalone (right?). So if I'm updating apps types, does it mean the testnet will be replaced by a parachain? Does it mean the tests will also be using the parachain from now on?

@crystalin
Copy link
Collaborator

crystalin commented Dec 8, 2020

OK that's probably a dumb question but this update is focused on the parachain. However the current testnet is from standalone (right?). So if I'm updating apps types, does it mean the testnet will be replaced by a parachain? Does it mean the tests will also be using the parachain from now on?

The alphanet is currently running the parachain version of moonbeam. It was the parachains v0 with a bug preventing multiple collators which should be fully solve by this PR

@tgmichel
Copy link
Contributor

tgmichel commented Dec 9, 2020

@JoshOrndorff massive update! it looks great, I have one question about the rpc replacement. You added the http api but what about the ws (pubsub) one? Are you planning to add it also?

@JoshOrndorff
Copy link
Contributor Author

what do you mean exactly by "We currently don't support EthSigners" pls

Frontier recently added a feature where node operators can store account keys in the node. Then when they want to transact, the users can send just transaction call and parameters, and the signing happns in the node directly (as opposed to in metamask or a hardware wallet, or whatever). It is really convenient for debugging and testnets and stuff.

But we've decided we don't want to encourage node operators to keep accout keys hot in their nodes, so we are not using this feature.

node/rpc/src/lib.rs Outdated Show resolved Hide resolved
@JoshOrndorff JoshOrndorff merged commit 2afb91d into master Dec 11, 2020
@JoshOrndorff JoshOrndorff deleted the joshy-parachains-v1 branch December 11, 2020 14:33
@crystalin crystalin added A9-buythat(wo)manabeer Pull request is reviewed well and worth buying the author a beer. and removed A6-seemsok Pull request had a shallow review, but should have a follow up before merge. labels Dec 11, 2020
@crystalin
Copy link
Collaborator

Awesome 👍

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
A9-buythat(wo)manabeer Pull request is reviewed well and worth buying the author a beer. B7-runtimenoteworthy Changes should be noted in any runtime-upgrade release notes C7-high Elevates a release containing this PR to "high priority".
Projects
None yet
Development

Successfully merging this pull request may close these issues.

4 participants