GitHunt
PA

paritytech/polkadot-sdk-minimal-template

The Minimal (Testing/Learning-Only) Template From Polkadot SDK

Polkadot SDK's Minimal Template

Polkadot SDK Logo Polkadot SDK Logo

This is a minimal template for creating a blockchain based on Polkadot SDK.

This template is automatically updated after releases in the main Polkadot SDK monorepo.

Table of Contents

Intro

  • ๐Ÿค This template is a minimal (in terms of complexity and the number of components)
    template for building a blockchain node.

  • ๐Ÿ”ง Its runtime is configured with a single custom pallet as a starting point, and a handful of ready-made pallets
    such as a Balances pallet.

  • ๐Ÿ‘ค The template has no consensus configured - it is best for experimenting with a single node network.

Template Structure

A Polkadot SDK based project such as this one consists of:

  • ๐Ÿงฎ the Runtime - the core logic of the blockchain.
  • ๐ŸŽจ the Pallets - from which the runtime is constructed.
  • ๐Ÿ’ฟ a Node - the binary application (which is not part of the cargo default-members list and is not
    compiled unless building the entire workspace).

Getting Started

  • ๐Ÿฆ€ The template 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 template - please take note of the Rust compiler output.

Fetch minimal template code.

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

cd minimal-template

Starting a Minimal Template Chain

Minimal Template Node

Build both node & runtime

cargo build --workspace --release

๐Ÿณ Alternatively, build the docker image which builds all the workspace members,
and has as entry point the node binary:

docker build . -t polkadot-sdk-minimal-template

Start the minimal-template-node

The minimal-template-node has dependency on the minimal-template-runtime. It will use
the minimal_template_runtime::WASM_BINARY constant (which holds the WASM blob as a byte
array) for chain spec building, while starting.

<target/release/path/to/minimal-template-node> --tmp --consensus manual-seal-3000
# or via docker
docker run --rm polkadot-sdk-minimal-template

Zombienet with minimal-template-node

For this one we just need to have zombienet installed and run:

zombienet --provider native spawn zombienet-multi-node.toml

Connect with the Polkadot-JS Apps Front-End

  • ๐ŸŒ You can interact with your local node using the
    hosted version of the Polkadot/Substrate
    Portal
    .

  • ๐Ÿช 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/apps repository.

Takeaways

Previously minimal template's development chains:

  • โŒ Started in a multi-node setup will produce forks because minimal lacks consensus.
  • ๐Ÿงน Do not persist the state.
  • ๐Ÿ’ฐ Are pre-configured with a genesis state that includes several pre-funded development accounts.
  • ๐Ÿง‘โ€โš–๏ธ One development account (ALICE) is used as sudo accounts.

Contributing

Getting Help