Launching on Rococo

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 serve as a good starting point to understand the launch process of a parachain on Polkadot testnet Rococo.

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.