Launching on Paseo
EduChain is modelled after the Polkadot SDK Parachain Template. It is a ecosystem-standard template maintained by Parity and includes the necessary configuration to deploy to a relay chain.
The Polkadot Developer Documentation offers an end-to-end tutorial for developing and launching a parachain on the Paseo Testnet.
Personalize Template
In a single shot, you can (almost) rebrand the runtime template to your own project by replacing
the occurrences of parachain-runtime
and parachain_runtime
with your project name.
You may also add, remove, or create new pallets and add them to the runtime. Adding new pallets involves correctly configuring their associated types in runtime/src/configs/lib.rs
, then adding the pallet as part of the runtime in the #[frame_support::runtime]
macro, added in the following manner:
#[runtime::pallet_index(0)]
pub type System = frame_system;
You can view more about how pallets work in the Polkadot SDK Rust docs.
Generating Build Artifacts
Genesis Configuration
The genesis config can be used to also configure the initial state of your pallets. For more information on the genesis config, see these Polkadot SDK docs. For generating a chain spec, you can either view our process here or refer to the chain spec builder docs..
It is common that most of the tutorials and templates use Alice or Bob keys for the root, collator and session keys. It is obvious that these should be replaced by custom keys. It is recommended that you use an account created on a cold wallet for the root account.
It is also important for the collator key and its session key to be different. The collator key is recommended to be created on a cold wallet and the session key can be generated from a hot wallet, as you need to enter its seed/private key into the collator's key store to start producing blocks. The session keys are rotated often for this reason.
Streamlining the process with pop! CLI
For an all-inclusive solution, you may also use pop! CLI, which takes care of deployment, local networks and runtime upgrades, generating chain specifications, WASM, and genesis state in one tool.
Collator Node Setup
You can spin up a collator on your local machine or on a cloud instance of your choice. Educhain node runs as a Digital Ocean droplet.
If you like to interact with your collator through the Polkadot JS UI, the connection needs to be secured via SSL. This requires securing a domain (such as web3educhain.xyz) and then setting up SSL to access your server instance for the RPC address to be able to interact with it using Polkadot JS UI. Securing via SSL requires a proxy setup for the RPC interfaces of your node.
See the collator section to learn more about collator node setup and launch.
Local Development
To run and test Educhain locally, pop-cli
can be used (install it here). Once installed, you can customize the Zombienet configuration included. This will spawn a relay chain node and parachain collator nodes, which can be accessed through Polkadot JS UI:
pop up network -f ./pop-paseo-testnet-toml
Block Production
Educhain is deployed on Rococo as an on-demand parachain. Transactions can be submitted to the collator node
and they enter the transaction pool. When you like to execute these transactions, an order can be placed on
Rococo relay chain for the parachain block production and validation through onDemandAssignmentProvider
pallet call.
-
To streamline the on-demand ordering process, a tool like
ondemand
can be used. -
If you intend to have a parachain that produces blocks continuously, you can purchase bulk coretime through an interface like RegionX.
For more details and tips on ordering coretime, see the ordering coretime page.