Launching on Paseo
OpenZeppelin Polkadot Generic Runtime Template was chosen as a candidate for launching Educhain. They crafted the pallet list to be as minimalistic and preserved important pallets that are used in the Polkadot ecosystem. Their docs along with POP network docs serve as a good starting point to understand the launch process of a parachain on Polkadot testnet Paseo.
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 and ensuring they are a part of the construct_runtime!
macro.
You can view more about how pallets work in the Polkadot SDK docs.
Set Genesis Config
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.
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 buider docs.
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 parachain -f ./zombienet-config/devnet.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. If you intend to have a parachain that produces blocks continously, you can purchase bulk
coretime through awesome interfaces from Lastic or RegionX.
For more details and tips on ordering coretime, see the ordering coretime page.