-
Notifications
You must be signed in to change notification settings - Fork 789
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
Add development chain-spec file for minimal/parachain templates for Omni Node compatibility #6529
base: master
Are you sure you want to change the base?
Conversation
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.
Thanks @EleisonC ! Left a few comments for now.
Looking forward to the README updates & btw, have you clarified how to make a rust test for the chain specs?
Hey @iulianbarbu that is what I am looking into today. Do you have any pointers you'd like me to know as I move forward? |
From the top of my head I thought about adding an integration test. You could build a |
Hey @iulianbarbu one last question it's okay if I placed the test folder/file under the nodes folder/file. if not is there a better place |
Hmm, thought about placing it under |
Hey @iulianbarbu regarding comparing the two I am a bit stuck on what to compare. From my research I would think it's other the code or value of top |
I figured out my problem was around decoding a Hex String to bytes. I can now properly traverse the values of the Top section and find the code for that spec file |
d load its content as a
Happy to hear you've sorted it out! I've noticed that in some tests we don't compare the code portions of the generated chain specs, and that's mainly because they are not super relevant for the test case. For this test though I think that it is relevant, to ensure generated chain specs correspond to the runtimes in the CI. Some other good news is that once we'll have these chain specs we'll be able to easily run in the CI the As usual, LMK in case of blockers, happy to take a look. |
Signed-off-by: EleisonC <[email protected]>
Hey @iulianbarbu, |
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.
Can you please regenerate the dev_chain_spec.json
for minimal (for now) after building the minimal/runtime
with cargo build
? I wonder if you built the runtime with --release
and then generated the dev_chain_spec.json
. It makes sense according to the README, but we run the tests with the testnet
profile, which enables the debug symbols, and I think the chain spec code
section differs based on the profile. I would be curious to run the test again after you regenerate the dev_chain_spec.json
, and also see if regenerating on my machine results in a different code section, or chain spec altogheter.
Hey @EleisonC ! First of all, sorry for my silence, it has been the end of the year and I took some needed time off. Second of all, I have to admit I totally missed the aspect of this CI job failing at every minor change done in Generating the chain specs once in this job: https://github.com/paritytech/polkadot-sdk/blob/master/.github/workflows/misc-sync-templates.yml should be enough IMO, from the point of view of ensuring up to date chain specs (in relation to the code found in their repo), and ease the use when it comes to Lastly, wanted to say that your work here was a great learning experience for me too. Would be happy to assist and review any followup changes if you can invest some more time here. LMK your thoughts. |
Hey @iulianbarbu I agree the time-off it is needed. I did the same. It was Christmas I bet it was enough haha. Information overload can happen quickly. 😅
Based on this my Next steps are going to be to :
This can be done in another PR. Its still hints at one of the earlier solutions
This is work I am proud of and definitely committed to seeing through. Also, I appreciate your continued guidance and support it makes the process easier. |
Hey @iulianbarbu, I’d love to hear your thoughts on my approach and whether it aligns with the expectations. |
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.
Hi @EleisonC ! This is very nice and looks about done, except a few things that can be improved.
I plan to sync the templates with stable2412 release today & hopefully this will work without significant issues. Once that's done you can read every template readme as if it would be part of the dedicated template repos. This is just as FYI, I don't think you need to change more than what I suggested with this review, for this PR.
Other than this, would be great to open an issue related to the script we've discussed about, where we'll apply all this learnings about how to generate reproducible chain specs, if needed.
Can't be done yet. Sync job is still failing because it tries to update the templates' repos Cargo.toml deps versions based on the stable2412 tag, which doesn't have a commited |
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.
Looking really good, only minor nits!
Thanks again for seeing this through :)!
Co-authored-by: Iulian Barbu <[email protected]>
Co-authored-by: Iulian Barbu <[email protected]>
no need
Thank you for your guidance and feedback! I've addressed the minor nits. 😊 |
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.
Looking good to me now! @iulianbarbu please verify the introduced workflow once more when you are back, then we are ready to go!
- name: Prepare upload directory | ||
run: | | ||
mkdir -p artifacts-${{ matrix.template }} | ||
cp dev_chain_spec.json artifacts-${{ matrix.package_name }}/dev_chain_spec.json |
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.
Here you are using matrix.package_name
instead of matrix.template
, I think this is a mismatch.
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.
Thanks for the catch. I have addressed it
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.
Just felt we can make the docs a bit clearer, so left a few clarifying comments, besides a few others for the misc-sync-templates.yml
. It is mostly there :D
- uses: actions/checkout@v4 | ||
with: | ||
path: polkadot-sdk | ||
ref: "${{ github.event.inputs.stable_release_branch }}" | ||
|
||
- name: Download template artifacts | ||
uses: actions/download-artifact@v4 | ||
with: | ||
name: artifacts-${{ matrix.template }} | ||
path: templates/${{ matrix.template }}/ | ||
if: matrix.template != 'solochain' |
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.
Can we remove the first action checkout here? We're doing it once more below, after setting the git identity. I am thinking we can also move the Download template artifacts
below the actions checkout that runs after Configure git identity
. What do you think?
- 👤 The template has no consensus configured - it is best for experimenting with a single node network. | ||
|
||
|
||
- For the most up-to-date chain specification, refer to [staging-chain-spec-builder](https://crates.io/crates/staging-chain-spec-builder) |
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 would remove this note from the intro. It isn't very relevant from an introduction standpoint for the template, and the latest info for the chain spec isn't necessarily part of staging-chain-spec-builder
. I would keep the #Intro
section as before.
You don't need to add a mention about staging-chain-spec-builder
in other place either. We already have it mentioned in the steps below (e.g. under Starting a Minimal Template Chain
/Omni Node
/Install staging-chain-spec-builder
.
To simplify the process of starting the minimal template with zombienet and Omni Node, we've added a pre-configured | ||
development chain spec (dev_chain_spec.json) to the minimal template. The zombienet-omni-node.toml file of this template | ||
points to it, but you can update it to an updated path to the new chain spec generated on your machine, as shown below. |
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.
To simplify the process of starting the minimal template with zombienet and Omni Node, we've added a pre-configured | |
development chain spec (dev_chain_spec.json) to the minimal template. The zombienet-omni-node.toml file of this template | |
points to it, but you can update it to an updated path to the new chain spec generated on your machine, as shown below. | |
To simplify the process of starting the minimal template with zombienet and Omni Node, we've added a pre-configured | |
development chain spec (dev_chain_spec.json) to the minimal template. The zombienet-omni-node.toml file of this template | |
points to it, but you can update it to an updated path to the new chain spec generated on your machine. |
My initial suggestion was to move this right into the section: Update zombienet-omni-node.toml with a valid chain spec path
. It can be placed right at the beginning of the section, but then I would change the next paragraph: Before starting...
by removing the first sentence.
|
||
To simplify the process of using the parachain-template with zombienet and Omni Node, we've added a pre-configured | ||
development chain spec (dev_chain_spec.json) to the parachain template. The zombienet-omni-node.toml file of this | ||
template points to it, but you can update it to an updated chain spec generated on your machine, as shown below: |
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.
Exactly the same as for minimal
- template: parachain | ||
package_name: 'parachain-template-runtime' | ||
runtime_path: './templates/parachain/runtime' | ||
runtime_wasm_path: 'minimal-template-runtime/minimal_template_runtime.compact.compressed.wasm' |
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.
runtime_wasm_path: 'minimal-template-runtime/minimal_template_runtime.compact.compressed.wasm' | |
runtime_wasm_path: 'parachain-template-runtime/parachain_template_runtime.compact.compressed.wasm' |
Description
This PR adds development chain specs for the minimal and parachain templates. #6334
Integration
This PR adds development chain specs for the minimal and para chain template runtimes, ensuring synchronization with runtime code. It updates zombienet-omni-node.toml, zombinet.toml files to include valid chain spec paths, simplifying configuration for zombienet in the parachain and minimal template.
Review Notes
NB: Follow the templates' READMEs from the polkadot-SDK master branch. Please build the binaries and runtimes based on the polkadot-SDK master branch.
parachain-template-runtime
andminimal-template-runtime
parachain-template-node
andminimal-template-node
cargo install --path polkadot
remember from the polkadot-SDK master branch.Zombienet with Omni Node
,Zombienet with minimal-template-node
orZombienet with parachain-template-node
Include your leftover TODOs, if any, here.