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

Bake in chain specs #169

Merged
merged 26 commits into from
Jan 17, 2021
Merged

Bake in chain specs #169

merged 26 commits into from
Jan 17, 2021

Conversation

JoshOrndorff
Copy link
Contributor

@JoshOrndorff JoshOrndorff commented Jan 7, 2021

What does it do?

  1. Includes the raw chain specs for well-known public chains such as Alphanet directly in the binary.
  2. Removes the use of json-based spec templates that can become out of sync with the code, replacing them with Rust-base specs that the compiler will not allow to be out of sync.

What important points reviewers should know?

The baked-in specs currently on this PR are mocks. They are just the default rococo-local and moonbead dev specs. I suggest we merge this PR with the mock specs once we are happy with the code and the process around it. Then when we are ready to release moonbeam v0.5, we make one more commit with the real alphanet specs.

This process is already precedented in popular live Substrate-based chains like Polkadot, Kulupu, and Edgeware.

What value does it bring to blockchain users?

Users who run their own nodes on common networks like alphanet, moonriver and moonrock will not have to manually specify chain specs on their CLI.

Proposed Network Launch Process

Baking specs into the binary is a big win for moonbase operators and support staff. However it does require a coordinate release process. The release process would look roughly like this.

  1. Dev team decides the software is ready to make a new release, and communicates the commit to the Ops team. (Possibly by tagging with something like v0.5.0-rc1.
  2. Ops team takes the built software, generates relay and parachain spec files, launches the networks, and establishes bootnode addresses.
  3. Someone (could be ops or devs) includes the bootnode addresses into the spec files. (This can happen after network launch, but doesn't have to.)
  4. Dev team makes one more commit baking the spec files and boot nodes into the binary.
  5. This latest commit (from step 4) is tagged as a final release (eg v0.5.0).

Checklist

  • Does it require a purge of the network?
  • You bumped the runtime version if there are breaking changes in the runtime ?
  • Does it require changes in documentation/tutorials ?

specs/README.md Outdated Show resolved Hide resolved
JoshOrndorff and others added 3 commits January 7, 2021 22:17
Co-authored-by: Amar Singh <asinghchrony@protonmail.com>
Copy link
Collaborator

@crystalin crystalin left a comment

Choose a reason for hiding this comment

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

I'm concerned about the relay spec template being removed, otherwise it looks good

scripts/generate-parachain-specs.sh Show resolved Hide resolved
scripts/generate-relay-specs.sh Show resolved Hide resolved
@crystalin crystalin merged commit 12986bb into master Jan 17, 2021
@crystalin crystalin deleted the joshy-prune-json-specs branch January 17, 2021 19:07
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.

None yet

4 participants