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

feat: deploy tanssi container chains #296

Open
wants to merge 22 commits into
base: al3mart/feat-tanssi-container-chains
Choose a base branch
from

Conversation

al3mart
Copy link
Contributor

@al3mart al3mart commented Aug 28, 2024

This PR extends al3mart/feat-tanssi-container-chains so that container-chains can be run in a local environment without complexities added.

A Tanssi node will be launched with a chain spec that includes in its genesis the container-chain the user wants to run locally.

As per the comments below, the flow imitates the one provided by Tanssi here. And although including a custom commands for container chains might give us more flexibility, this should be good enough to verify user interest.

The limiting factor at the moment is for users to launch their container-chains locally in combination with for instance, system chains. Or other scenarios that have a combination of container-chains and non container-chains.

@AlexD10S
Copy link
Collaborator

AlexD10S commented Sep 4, 2024

Following the Tanssi guides, before spawning the network, we need to build the specs for the container chains and the tanssi-node. Instead of running the build-spec script (See the Tanssi script), I've added code to handle this by parsing the network.toml file to extract values like chain_spec_path and the collator names from it in the pop up parachain functionality.

Considerations for my approach:

1- About how to triggering Tanssi logic: My current approach is to have a hardcoded value in the pop-cli crate (frontend), and trigger the logic automatically if the Zombienet file contains a tanssi-node. See: https://github.com/r0gue-io/pop-cli/pull/296/files#diff-676bc9da9a6a8b135164d15340c548a94dcad29b8cd784ebda6a9e3ef2313622R94

Another approach could be allowing users to explicitly specify it by using a flag, like pop up parachain --container-chain, to spawn the container-chain environment. Which approach do you think is better?

2- Handling collator injection: In the build-spec script, Tanssi manually injects collator names into pallet-invulnerables and includes a comment in the Zombienet file to update the script if changes are made in the .toml file (See here: https://github.com/moondance-labs/tanssi/blob/master/test/configs/zombieTanssi.json#L51). This is a bit tricky because if user changes the name of the collators it has to be manually changed.
My current approach parses all collators from the Zombienet config and only injects those whose names start with "Collator". Thoughts on this approach?

@AlexD10S AlexD10S marked this pull request as ready for review September 4, 2024 11:45
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Projects
None yet
Development

Successfully merging this pull request may close these issues.

2 participants