-
Notifications
You must be signed in to change notification settings - Fork 3
Commit
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
Merge pull request #2 from CocDap/feat/polkadot-sdk-roadmap
feat: Add Polkadot SDK roadmap
- Loading branch information
Showing
18 changed files
with
363 additions
and
0 deletions.
There are no files selected for viewing
19 changes: 19 additions & 0 deletions
19
src/data/roadmaps/polkadot-sdk/content/1-1-1-why-substrate.md
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,19 @@ | ||
# Why Substrate? | ||
|
||
|
||
1. **Modular and Flexible Framework**: | ||
Substrate is a highly modular and flexible framework that lets you build a blockchain by selecting and customizing the infrastructure components that best fit your project. | ||
|
||
2. **Upgradable State Transition Logic**: | ||
- Substrate is designed to be upgradeable. The state transition logic, known as the Substrate runtime, is a self-contained WebAssembly object. | ||
- You can change this runtime completely whenever you need to introduce new features or update existing ones. | ||
|
||
3. **OpenSource and Community**: | ||
- Substrate is an open-source project, with all libraries and tools available under open-source licensing. | ||
- Substrate also has a large, active, and supportive builder community contributing to the ecosystem. | ||
|
||
4. **Cross-Consensus Messaging (XCM)**: | ||
Substrate supports cross-consensus messaging (XCM), allowing different systems to communicate with each other. | ||
|
||
|
||
|
18 changes: 18 additions & 0 deletions
18
src/data/roadmaps/polkadot-sdk/content/1-1-what-is-substrate.md
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,18 @@ | ||
|
||
# What is Substrate? | ||
|
||
- Substrate (PolkadotSDK) is an SDK using Rust libraries to help build custom blockchains with modular components. Substrate provides default blockchain infrastructure components, allowing developers to focus on application logic | ||
|
||
|
||
## There are two directions for chain development | ||
- These blockchains can operate independently (Standalone Chain/ Permissionless Chain) | ||
- Benefiting from Polkadot's shared security( Parachain) | ||
|
||
|
||
|
||
Resources: | ||
|
||
- [@official@Substrate Documentation](https://docs.substrate.io/learn/welcome-to-substrate/) | ||
|
||
- [@official@Substrate Documentation](https://docs.substrate.io/quick-start/substrate-at-a-glance/) | ||
|
5 changes: 5 additions & 0 deletions
5
src/data/roadmaps/polkadot-sdk/content/1-2-1-blockchain-basic.md
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,5 @@ | ||
|
||
# Blockchain Basic | ||
|
||
Resources: | ||
- [@official@Blockchain Basic](https://docs.substrate.io/learn/blockchain-basics/) |
6 changes: 6 additions & 0 deletions
6
src/data/roadmaps/polkadot-sdk/content/1-2-2-client-and-runtime-architecture.md
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,6 @@ | ||
|
||
# Client and Runtime Architecture | ||
|
||
Resources: | ||
- [@official@Client and Runtime](https://docs.substrate.io/learn/architecture/) | ||
- [@official@Runtime Development](https://docs.substrate.io/learn/runtime-development/) |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,20 @@ | ||
|
||
# Consensus | ||
|
||
Resources: | ||
1. AURA | ||
- [@article@AURA Consensus](https://openethereum.github.io/Aura.html) | ||
- [@official@AURA Consensus](https://docs.substrate.io/learn/consensus/) | ||
|
||
2. BABE | ||
- [@official@BABE Consensus](https://docs.substrate.io/learn/consensus/) | ||
- [@official@BABE Consensus](https://polkadot.network/blog/polkadot-consensus-part-3-babe/) | ||
- [@official@BABE Consensus](https://spec.polkadot.network/sect-block-production) | ||
|
||
3. GRANDPA | ||
|
||
- [@official@GRANDPA Consensus](https://docs.substrate.io/learn/consensus/) | ||
- [@official@GRANDPA Consensus](https://spec.polkadot.network/sect-finality) | ||
- [@official@GRANDPA Consensus](https://wiki.polkadot.network/docs/learn-consensus#finality-gadget-grandpa) | ||
|
||
|
2 changes: 2 additions & 0 deletions
2
src/data/roadmaps/polkadot-sdk/content/1-2-substrate-node-architecture.md
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,2 @@ | ||
|
||
# Substrate Node Architecture |
44 changes: 44 additions & 0 deletions
44
src/data/roadmaps/polkadot-sdk/content/1-3-1-what-is-frame-pallet.md
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,44 @@ | ||
|
||
# What is frame pallet? | ||
|
||
|
||
- FRAME provides modular, extensible components that enhance the flexibility of the Substrate SDK for various use cases. It includes Rust-based programs and libraries that simplify developing application-specific logic. | ||
|
||
- Most functionalities in FRAME are delivered through plug-in modules called pallets, which can be added and configured to meet specific requirements. | ||
|
||
## #[pallet] | ||
The #[pallet] macro is required to declare a pallet.This attribute macro is an attribute of the pallet module (`mod pallet`). | ||
|
||
Within the pallet module, the #[pallet] macro serves as an entry point for additional #[pallet::*] macros that describe the attributes used to identify the specific items the pallet requires | ||
|
||
## #[pallet::config] | ||
|
||
The [`#[pallet::config]`](https://paritytech.github.io/substrate/master/frame_support/attr.pallet.html#config-trait-palletconfig-mandatory) macro is required to define the generic data types that the pallet uses. | ||
|
||
This macro provides the constants that are part of the system-level [`Config` trait](https://paritytech.github.io/substrate/master/frame_system/pallet/trait.Config.html) for the pallet | ||
|
||
|
||
## #[pallet::event] | ||
|
||
The #[pallet::event] macro allows you to define event types for a pallet | ||
|
||
## #[pallet::error] | ||
|
||
The #[pallet::error] macro allows you to define the error types that can be returned from the function calls dispatched to the runtime. The error information is included in the runtime metadata | ||
|
||
## #[pallet::storage] | ||
The #[pallet::storage] macro enables you to define abstract storage inside runtime storage and to set metadata for that storage. This attribute macro can be used multiple times. | ||
|
||
## #[pallet::call] | ||
|
||
The #[pallet::call] is required to implement the functions that can be dispatched to the runtime for a pallet | ||
|
||
## #[pallet::hooks] | ||
|
||
The #[pallet::hooks] macro lets you declare optional hooks for specific logic during the block-making process. Using this macro, you can implement the Hooks trait to execute code at key points, such as when a block is initialized or finalized, or during runtime upgrades | ||
|
||
|
||
|
||
Resources: | ||
- [@official@FRAME](https://docs.substrate.io/reference/frame-pallets/) | ||
|
33 changes: 33 additions & 0 deletions
33
src/data/roadmaps/polkadot-sdk/content/1-3-2-rust-libraries.md
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,33 @@ | ||
|
||
# Rust Libraries | ||
|
||
|
||
## Core Client | ||
|
||
Libraries that enable a Substrate node to handle its network responsibilities, including consensus and block execution, are Rust crates prefixed with `sc_` | ||
|
||
[@official@sc_](https://github.com/paritytech/polkadot-sdk/tree/master/substrate/client) | ||
|
||
## Core FRAME | ||
|
||
The libraries for building runtime logic and encoding/decoding information in Substrate are Rust crates prefixed with `frame_` | ||
|
||
- [@official@frame_](https://github.com/paritytech/polkadot-sdk/tree/master/substrate/frame/system) | ||
- [@official@frame_](https://github.com/paritytech/polkadot-sdk/tree/master/substrate/frame/support) | ||
- [@official@frame_](https://github.com/paritytech/polkadot-sdk/tree/master/substrate/frame/benchmarking) | ||
- [@official@frame_](https://github.com/paritytech/polkadot-sdk/tree/master/substrate/frame/executive) | ||
|
||
## Primitives | ||
At the core of the Substrate architecture are primitive libraries that manage underlying operations and facilitate communication between core client services and the runtime. These libraries are Rust crates prefixed with `sp_` | ||
|
||
[@official@sp_](https://github.com/paritytech/polkadot-sdk/tree/master/substrate/primitives) | ||
|
||
|
||
## Pallets | ||
|
||
In the Substrate SDK, pallets are modular components that provide specific functionality to a blockchain. They are like plug-in modules that can be added, configured, and reused to build custom blockchains | ||
|
||
[@official@pallets](https://github.com/paritytech/polkadot-sdk/tree/master/substrate/frame) | ||
|
||
Resoures: | ||
[@official@Rust Libraries](https://docs.substrate.io/learn/rust-basics/) |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,3 @@ | ||
|
||
# FRAME | ||
|
37 changes: 37 additions & 0 deletions
37
src/data/roadmaps/polkadot-sdk/content/1-4-substrate-development-tool.md
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,37 @@ | ||
|
||
# Substrate Development Tool | ||
|
||
## Polkadot JS Explorer | ||
Provides a view and interaction with blockchain node from a browser | ||
|
||
Resoures: | ||
[@official@polkadotjs-explorer](https://polkadot.js.org/apps/#/explorer) | ||
|
||
## Polkadot JS API | ||
This library offers a streamlined wrapper for all methods exposed by a Polkadot/Substrate network client and defines all node-exposed types | ||
|
||
Resoures: | ||
- [@official@polkadotjs-api](https://github.com/polkadot-js/api) | ||
- [@official@polkadotjs-api](https://polkadot.js.org/docs/) | ||
|
||
|
||
## Substrate API Sidecar | ||
REST service simplifying interaction with blockchain nodes built on Substrate's FRAME framework | ||
|
||
Resources: | ||
- [@official@substrate-api-sidecar](https://github.com/paritytech/substrate-api-sidecar) | ||
|
||
|
||
## Pop CLI | ||
The CLI tool is likely designed to simplify interactions with Substrate-based blockchain networks | ||
|
||
- Querying blockchain data | ||
- Sending transactions | ||
- Interacting with smart contracts (if applicable) | ||
- Managing keys and accounts | ||
- Create template | ||
|
||
Resources: | ||
- [@official@pop-cli](https://github.com/r0gue-io/pop-cli) | ||
|
||
|
6 changes: 6 additions & 0 deletions
6
src/data/roadmaps/polkadot-sdk/content/2-1-1-parachain-architecture.md
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,6 @@ | ||
|
||
# Parachain Architecture | ||
|
||
Resoures: | ||
|
||
- [@official@parachain-architecture](https://wiki.polkadot.network/docs/learn-parachains) |
28 changes: 28 additions & 0 deletions
28
src/data/roadmaps/polkadot-sdk/content/2-1-2-parachain-pallet.md
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,28 @@ | ||
|
||
# Parachain Pallets | ||
|
||
Prebuilt pallets offering features tailored for blockchains intended to connect to a relay chain | ||
|
||
## Provides AURA consensus for parachains | ||
|
||
- [@official@aura-ext](https://github.com/paritytech/polkadot-sdk/tree/master/cumulus/pallets/aura-ext) | ||
|
||
## Manages collators in a parachain | ||
|
||
- [@official@collector-selection](https://github.com/paritytech/polkadot-sdk/tree/master/cumulus/pallets/collator-selection) | ||
|
||
## Implements a message queue for receiving messages from the relay chain | ||
|
||
- [@official@dmp-queue](https://github.com/paritytech/polkadot-sdk/tree/master/cumulus/pallets/dmp-queue) | ||
|
||
## Provides basic functionality for cumulus-based parachains | ||
|
||
- [@official@parachain-system](https://github.com/paritytech/polkadot-sdk/tree/master/cumulus/pallets/parachain-system) | ||
|
||
## Adds support for cross-chain message passing (XCMP) to a parachain | ||
|
||
- [@official@xcm](https://github.com/paritytech/polkadot-sdk/tree/master/cumulus/pallets/xcm) | ||
|
||
## Enables the XCMP transport layer to handle both incoming and outgoing message sending and dispatch, queuing, signalling | ||
|
||
- [@official@xcmp-queue](https://github.com/paritytech/polkadot-sdk/tree/master/cumulus/pallets/xcmp-queue) |
15 changes: 15 additions & 0 deletions
15
src/data/roadmaps/polkadot-sdk/content/2-1-3-relaychain-and-parachain.md
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,15 @@ | ||
|
||
|
||
# Relaychain and Parachain | ||
|
||
## Run Relay chain and Parachain | ||
|
||
- [@official@run-relay-chain](https://docs.substrate.io/tutorials/build-a-parachain/prepare-a-local-relay-chain/) | ||
- [@official@run-parachain](https://docs.substrate.io/tutorials/build-a-parachain/connect-a-local-parachain/) | ||
- [@official@register-slot](https://docs.substrate.io/tutorials/build-a-parachain/acquire-a-testnet-slot/) | ||
|
||
## Transfer Assets Relay ↔ Parachain | ||
|
||
- [@official@open-channel](https://docs.substrate.io/tutorials/build-a-parachain/open-message-passing-channels/) | ||
- [@official@transfer-assets](https://docs.substrate.io/tutorials/build-a-parachain/transfer-assets-with-xcm/) | ||
|
7 changes: 7 additions & 0 deletions
7
src/data/roadmaps/polkadot-sdk/content/2-1-4-cross-chain-message.md
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,7 @@ | ||
# Cross-chain Messaging | ||
|
||
The Cross-Consensus Message Format (XCM) serves as both a messaging format and a language used for communication between different consensus systems | ||
|
||
|
||
Resources: | ||
- [@official@xcm](https://wiki.polkadot.network/docs/learn-xcm) |
10 changes: 10 additions & 0 deletions
10
src/data/roadmaps/polkadot-sdk/content/2-1-develop-a-parachain.md
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,10 @@ | ||
|
||
|
||
# Develop a Parachain | ||
|
||
These are libraries and tools designed specifically for connecting blockchains to Polkadot, referred to as parachains | ||
|
||
Resoures: | ||
|
||
- [@official@parachain](https://github.com/paritytech/polkadot-sdk/tree/master/cumulus) | ||
|
14 changes: 14 additions & 0 deletions
14
src/data/roadmaps/polkadot-sdk/content/2-2-cumulus-development-tool.md
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,14 @@ | ||
# Cumulus Development Tool | ||
|
||
## Zombienet | ||
|
||
Zombienet aims to serve as a testing framework for Substrate-based blockchains. It offers a straightforward CLI tool for spawning and testing ephemeral networks. Tests can include assertions on on-chain storage, metrics, logs, and custom JavaScript scripts that interact with the chain. | ||
|
||
- [@official@zombienet](https://github.com/paritytech/zombienet) | ||
|
||
|
||
|
||
## XCM Simulator | ||
|
||
- [@official@xcm-simulator-github](https://github.com/paritytech/polkadot/tree/master/xcm/xcm-simulator) | ||
- [@official@xcm-simulator](https://wiki.polkadot.network/docs/learn/xcm/quickstart-simulator) |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,86 @@ | ||
[ | ||
{ | ||
"phase_id": "1", | ||
"phase_name": "Substrate", | ||
"topics": [ | ||
{ | ||
"topic_id": "1-1-what-is-substrate", | ||
"topic_name": "What is Substrate?", | ||
"subtopics": [ | ||
{ | ||
"subtopic_id": "1-1-1-why-substrate", | ||
"subtopic_name": "Why Substrate?" | ||
} | ||
] | ||
}, | ||
{ | ||
"topic_id": "1-2-substrate-node-architecture", | ||
"topic_name": "Substrate Node Architecture", | ||
"subtopics": [ | ||
{ | ||
"subtopic_id": "1-2-1-blockchain-basic", | ||
"subtopic_name": "Blockchain Basic" | ||
}, | ||
{ | ||
"subtopic_id": "1-2-2-client-and-runtime-architecture", | ||
"subtopic_name": "Client And Runtime Architecture" | ||
}, | ||
{ | ||
"subtopic_id": "1-2-3-consensus", | ||
"subtopic_name": "Consensus" | ||
} | ||
] | ||
}, | ||
{ | ||
"topic_id": "1-3-FRAME", | ||
"topic_name": "FRAME Runtime", | ||
"subtopics": [ | ||
{ | ||
"subtopic_id": "1-3-1-what-is-frame-pallet", | ||
"subtopic_name": "What is FRAME pallet?" | ||
}, | ||
{ | ||
"subtopic_id": "1-3-2-rust-libraries", | ||
"subtopic_name": "Rust Libraries" | ||
} | ||
] | ||
}, | ||
{ | ||
"topic_id": "1-4-substrate-development-tool", | ||
"topic_name": "Substrate Development Tool" | ||
} | ||
] | ||
}, | ||
{ | ||
"phase_id": "2", | ||
"phase_name": "Cumulus", | ||
"topics": [ | ||
{ | ||
"topic_id": "2-1-develop-a-parachain", | ||
"topic_name": "Develop a parachain", | ||
"subtopics": [ | ||
{ | ||
"subtopic_id": "2-1-1parachain-architecture", | ||
"subtopic_name": "Parachain Architecture" | ||
}, | ||
{ | ||
"subtopic_id": "2-1-2-parachain-pallet", | ||
"subtopic_name": "Parachain Pallet" | ||
}, | ||
{ | ||
"subtopic_id": "2-1-3-relaychain-and-parachain", | ||
"subtopic_name": "Relaychain and Parachain" | ||
}, | ||
{ | ||
"subtopic_id": "2-1-4-cross-chain-message", | ||
"subtopic_name": "Cross-chain Message" | ||
} | ||
] | ||
}, | ||
{ | ||
"topic_id": "2-2-cumulus-development-tool", | ||
"topic_name": "Cumulus Development Tool" | ||
} | ||
] | ||
} | ||
] |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,10 @@ | ||
--- | ||
title: "Polkadot SDK Roadmap" | ||
briefTitle: "Polkadot SDK" | ||
description: "The Polkadot SDK is a modular library for building Layer-1 blockchains, enabling developers to create application-specific chains while abstracting away the complexities of low-level architecture." | ||
tags: ["protocol"] | ||
order: 1 | ||
isHidden: false | ||
github: "https://github.com/paritytech/polkadot-sdk" | ||
documentationLink: "https://docs.substrate.io/" | ||
--- |