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

Feature Request: Option to create a solochain pop new solochain #154

Open
chungquantin opened this issue May 9, 2024 · 9 comments
Open
Labels
DevEx Change to improve the Developer Experience parachain Features related to parachain functionality

Comments

@chungquantin
Copy link

Right now, pop only has an option to create a contract or a parachain with pop new parachain. From my perspective, to make POP completes, we should add an option to create a solochain pop new solochain. Then incremental steps can be added to the CLI to turn the solochain to a parachain.

- Generate a new parachain, pallet or smart contract
+ Generate a new solochain, parachain, pallet or smart contract

Usage: pop new
      pop new <COMMAND>

Commands:
  parachain  Generate a new parachain
+  solochain Generate a new solochain
  pallet     Generate a new pallet
  contract   Generate a new smart contract
  help       Print this message or the help of the given subcommand(s)
@chungquantin chungquantin changed the title Feature Request: Option to create a solochain pop up solochain Feature Request: Option to create a solochain pop new solochain May 9, 2024
@AlexD10S
Copy link
Collaborator

AlexD10S commented May 9, 2024

Thanks for the feedback! We will definitely include this. We have a discussion here #129 where we are discussing what's the best UX for this new feature you are proposing among other functionalities.

@AlexD10S AlexD10S added the parachain Features related to parachain functionality label May 22, 2024
@AlexD10S
Copy link
Collaborator

As discussed here: #129
Use the pop up chain command to run a solo chain

@AlexD10S AlexD10S added the DevEx Change to improve the Developer Experience label Jul 29, 2024
@chungquantin
Copy link
Author

Hey @AlexD10S, I received a request of this feature, wonder if it is added to the v0.3.0 release? Because I could not see it on my local.

@AlexD10S
Copy link
Collaborator

No, this feature has not been included yet. We need to discuss the UX on how to include this @brunopgalvao

@AlexD10S AlexD10S reopened this Aug 19, 2024
@brunopgalvao
Copy link
Contributor

I do agree with @chungquantin

Substrate solochain should be a complete vertical within Pop CLI.

The following should be added:

- Generate a new parachain, pallet or smart contract
+ Generate a new solochain, parachain, pallet or smart contract

Usage: pop new
      pop new <COMMAND>

Commands:
  parachain  Generate a new parachain
+  solochain Generate a new solochain
  pallet     Generate a new pallet
  contract   Generate a new smart contract
  help       Print this message or the help of the given subcommand(s)
- Launch a local network or deploy a smart contract
+ Launch a local network, run a solochain, or deploy a smart contract

Usage: pop up
      pop up <COMMAND>

Commands:
  parachain  Launch a local network
+  solochain Run a solochain
  contract   Deploy a smart contract
  help       Print this message or the help of the given subcommand(s)

As well as in the future, make solochain feature-complete in Pop CLI, meaning that when we include features such as pop add pallet for parachains, we also support solochains.

Having support for Substrate solochains will strength the Pop CLI appchain narrative, is desired by the community, and will help spread the power of Substrate to newcomers.

@brunopgalvao
Copy link
Contributor

In regards to #129, the pop up command should be able to detect the CWD and see if it is within a parachain directory, a solochain directory, or a smart contract directory (similar to pop build) and launch the appropriate configuration reading the zombienet network config file simply by running pop up [OPTIONS]. pop up parachain [OPTIONS] and pop up solochain [OPTIONS] commands would still be available incase the devs would like to specify [OPTIONS] manually through the CLI.

Additionally, there should be some reserved pop up commands w/ pre-configured network files, such as:
pop up polkadot [OPTIONS] - spins up latest version of polkadot relay chain

@chungquantin
Copy link
Author

chungquantin commented Aug 20, 2024

Additional input to the design of the solochain, we can have a template repository called base-solochain but we must reorganize the templates somehow to have everything built on top of the base-solochain:

  • base-solochain as a foundational template
  • base-parachain = base-solochain + parachain-plugin (plugin added to automatically convert the solochain to a parachain)
  • asset-solochain = base-solochain + asset-plugin
  • contract-solochain = base-solochain + contract-plugin
  • asset-parachain = base-solochain + parachain-plugin + asset-plugin

I have used pop-cli for Substrate educational purposes and pop up parachain will be a bit overkill for the newcomers of the polkadot ecosystem because they have no context of the parachain yet.

@brunopgalvao
Copy link
Contributor

I can confirm that this vertical (solochain) will be the onboarding platform for PBA students as their curriculum starts with working with Substrate solochains.

@AlexD10S
Copy link
Collaborator

AlexD10S commented Sep 4, 2024

I can confirm that this vertical (solochain) will be the onboarding platform for PBA students as their curriculum starts with working with Substrate solochains.

Technically, it shouldn't be very complex. The key question is how we want to integrate it from a UX perspective and which solochain templates we want to offer. Kian from Parity also shared the two new templates they are supporting (#238):

https://github.com/paritytech/polkadot-sdk-minimal-template
https://github.com/paritytech/polkadot-sdk-solochain-template

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
DevEx Change to improve the Developer Experience parachain Features related to parachain functionality
Projects
None yet
Development

No branches or pull requests

3 participants