Substrate MVP Blockchain Development

Job ID: 39783141

Budget: $250 – $750 CAD

BlessChain · Substrate Minimal Chain Development Requirements (MVP)
Target Audience: Backend Blockchain Engineers / DevOps / Documentation Maintainers
Version: v1.0 (For Minimal Chain Bring-up & Acceptance Testing)
1. Project Goals and Scope
• Successfully build and run the BlessChain minimal chain with minimal dependencies (local block production, transfers, export of genesis config).
• Only implement required pallets: system, balances, aura, grandpa, timestamp.
• Support GenesisConfig for initial balance allocation, export plain/raw genesis files.
• Provide basic CLI/RPC for querying balances, transfers, inserting session keys, and exporting genesis configuration.
• Excludes: smart contracts, cross-chain, complex tokenomics, frontend UI, external databases.
2. Out of Scope (Not included in this phase)
• No integration of wasm-opt-sys or substrate-wasm-builder pipelines (to avoid build instability).
• No inclusion of pallets beyond minimal chain needs.
• No production-level monitoring or external network deployment.
3. Deliverables
A. Source repository of the minimal chain (private/local).
B. Compiled binary: target/release/blesschain-node.
C. Genesis config files: blesschain-dev-plain.json, blesschain-dev-raw.json.
D. Ops scripts: sample commands to start/stop nodes.
E. Documentation: this Requirements Spec + README (with validation steps).
4. Repository Structure (Example)

blesschain/
Cargo.toml # Root workspace, [patch.crates-io], [workspace.dependencies]
blesschain-node/
Cargo.toml
src/
chain_spec.rs
service.rs
command.rs
main.rs
blesschain-runtime/
Cargo.toml
src/
lib.rs
genesis_config.rs # Optional helper module for returning GenesisConfig
local-crates/
errno-fix/ # Local patches if needed


5. Required Pallets and Config
• frame-system: Base for block/transaction/account system.
• pallet-balances: Account balances and transfers; recommend 8 decimals (aligned with BBTC).
• pallet-timestamp: Required for Aura consensus.
• pallet-aura: Block production consensus (dev/local).
• grandpa: Finality gadget (enable for local dev).
• construct_runtime! includes only the above to remain minimal.
6. Key Source Files and Required Modifications
① File: blesschain-runtime/src/lib.rs
Requirements:
- Correct construct_runtime! with System, Timestamp, Balances, Aura, Grandpa.
- Configure Balances::ExistentialDeposit, MaxLocks, Decimals=8, Symbol="BBTC" (for display, optional).
- PalletInfo implemented using frame_support::traits::PalletInfo.
② File: blesschain-runtime/Cargo.toml
Requirements:
- Dependencies unified via [workspace.dependencies]; thiserror as { workspace = true }.
③ File: blesschain-node/src/chain_spec.rs
Requirements:
- GenesisConfig setup with endowed accounts and initial balances.
- Export plain and raw chain spec JSON.
④ File: blesschain-node/src/service.rs
Requirements:
- Register Aura and Grandpa consensus in the service builder.
⑤ File: Cargo.toml (workspace root)
Requirements:
- Add [patch.crates-io] and [workspace.dependencies] for local crates (e.g. errno-fix).