EduChain is based on the parachain template.
This template is automatically updated after releases in the main Polkadot SDK monorepo.
Parachain developed and maintained by Technical Education team at Web3 Foundation. To be used for creating tutorials on a wide range of Polkadot SDK enabled features.
-
🦀 The repository is using the Rust language.
-
👉 Check the Rust installation instructions for your system.
-
🛠️ Depending on your operating system and Rust version, there might be additional packages required to compile this repository - please take note of the Rust compiler output.
🔨 Use the following command to build the node without launching it:
cargo build --release🐳 Alternatively, build the docker image:
docker build . -t polkadot-sdk-parachain-templateWe provide two scripts for generating chain specifications:
Use deploy/gen_base_chain_dev_spec.sh to generate a development chain specification for local testing:
./deploy/gen_base_chain_dev_spec.shThis script builds the project and generates a development chain spec with basic parameters suitable for local testing environments. The output file will be placed in ./artifacts/dev/dev_plain_balances.json.
When using the development chain spec, you typically don't need to modify it manually, as it comes preconfigured with development defaults.
Use deploy/gen_base_chain_spec.sh to generate a production-ready chain specification:
# Generate plain chain spec
./deploy/gen_base_chain_spec.sh
# Generate raw chain spec (must run the plain version first)
./deploy/gen_base_chain_spec.sh rawThis script generates a more configurable chain spec that applies patches from educhain.patch.json. The output file will be placed in ./artifacts/latest_plain_chain_spec.json. When run with the raw parameter, it converts the plain chain spec to a raw format suitable for validators.
After generating the chain spec, you may need to modify certain metadata fields to match your deployment requirements:
For production (live) networks, ensure the chain spec includes the following metadata:
{
"name": "Educhain Paseo",
"id": "live",
"chainType": "Live",
"bootNodes": [],
"telemetryEndpoints": null,
"protocolId": "educhain-paseo-live",
"para_id": 4883,
"relay_chain": "paseo",
"properties": {
"tokenDecimals": 10,
"tokenSymbol": "PAS"
},
// ...remaining configuration...
}For local testing networks, modify the metadata to reflect local settings:
{
"name": "Educhain Paseo Local",
"id": "local",
"chainType": "Local",
"bootNodes": [],
"telemetryEndpoints": null,
"protocolId": "educhain-paseo-local",
"para_id": 4883,
"relay_chain": "paseo-local",
"properties": {
"tokenDecimals": 10,
"tokenSymbol": "PAS"
},
// ...remaining configuration...
}If you make runtime changes and want to generate a new chainspec, first run the appropriate script, then manually verify and edit these metadata fields to ensure they match your deployment target.
This project uses pop! CLI to run a complete local setup:
pop up network pop-paseo-testnet-tomlEduNews is an educational prototype that illustrates a potential solution for verifying article authenticity and provenance using blockchain technology. This learning project combines multiple specialized chains within the Polkadot ecosystem (including EduChain):
- 🌐 You can interact with your local node using the hosted version of the Polkadot/Substrate Portal: relay chain and parachain.
Please note that if running locally, you must use the URLs given in the terminal when running pop (or Zombienet).
-
🪐 A hosted version is also available on IPFS.
-
🧑🔧 You can also find the source code and instructions for hosting your own instance in the
polkadot-js/appsrepository.
-
🔄 This template is automatically updated after releases in the main Polkadot SDK monorepo.
-
➡️ Any pull requests should be directed to this source.
-
😇 Please refer to the monorepo's contribution guidelines and Code of Conduct.
-
🧑🏫 To learn about Polkadot in general, Polkadot.network website is a good starting point.
-
🧑🔧 For technical introduction, here are the Polkadot SDK documentation resources.
-
👥 Additionally, there are GitHub issues and Substrate StackExchange.