From cad1ac4309493f21c4cd1340c6cfcee8e7ca39b7 Mon Sep 17 00:00:00 2001 From: DAWN KELLY Date: Thu, 19 Dec 2024 12:50:38 -0500 Subject: [PATCH 1/4] adds draft mermaid for runtime vs client --- develop/parachains/intro-polkadot-sdk.md | 26 ++++++++++++++++++++++++ 1 file changed, 26 insertions(+) diff --git a/develop/parachains/intro-polkadot-sdk.md b/develop/parachains/intro-polkadot-sdk.md index 47f08dacf..ae4aa4bf8 100644 --- a/develop/parachains/intro-polkadot-sdk.md +++ b/develop/parachains/intro-polkadot-sdk.md @@ -54,6 +54,32 @@ Every blockchain platform relies on a decentralized network of computers—calle FRAME provides the core modular and extensible components that make the Substrate SDK flexible and adaptable to different use cases. FRAME includes Rust-based libraries that simplify the development of application-specific logic. Most of the functionality that FRAME provides takes the form of plug-in modules called [pallets](/polkadot-protocol/glossary#pallet){target=\_blank} that you can add and configure to suit your requirements. +``` mermaid +graph TB + subgraph sg1[Client/Host] + direction LR + A[JSON-RPC] + B[libp2p] + C[Transaction Pool] + D[Block Builder] + E[Database] + F[Host Functions] + end + subgraph sg2[Runtime] + direction LR + G[Runtime API] + H[Executive] + I[frame_support::runtime] + subgraph sg3[Pallets] + direction TB + J[System] + K[Staking] + L[Balances] + M[GRANDPA] + end + end +``` + ### Cumulus Cumulus provides utilities and libraries to turn FRAME-based runtimes into runtimes that can be a parachain on Polkadot. Cumulus runtimes are still FRAME runtimes but contain the necessary functionality that allows that runtime to become a parachain on a relay chain. From 81817271f545e6c001b0c38521603e0eebdd5143 Mon Sep 17 00:00:00 2001 From: DAWN KELLY Date: Wed, 15 Jan 2025 10:06:18 -0500 Subject: [PATCH 2/4] creates base diagram to demonstrate adding select FRAME pallets to create a runtime --- develop/parachains/intro-polkadot-sdk.md | 33 ++++++++++-------------- 1 file changed, 13 insertions(+), 20 deletions(-) diff --git a/develop/parachains/intro-polkadot-sdk.md b/develop/parachains/intro-polkadot-sdk.md index ae4aa4bf8..057906ecb 100644 --- a/develop/parachains/intro-polkadot-sdk.md +++ b/develop/parachains/intro-polkadot-sdk.md @@ -54,30 +54,23 @@ Every blockchain platform relies on a decentralized network of computers—calle FRAME provides the core modular and extensible components that make the Substrate SDK flexible and adaptable to different use cases. FRAME includes Rust-based libraries that simplify the development of application-specific logic. Most of the functionality that FRAME provides takes the form of plug-in modules called [pallets](/polkadot-protocol/glossary#pallet){target=\_blank} that you can add and configure to suit your requirements. -``` mermaid -graph TB - subgraph sg1[Client/Host] +```mermaid +graph LR + subgraph SP["Runtime"] direction LR - A[JSON-RPC] - B[libp2p] - C[Transaction Pool] - D[Block Builder] - E[Database] - F[Host Functions] + S1[Timestamp]~~~S2[Aura]~~~S3[GRANDPA] + S4[Balances]~~~S5[Transaction Payment]~~~S6[Sudo] end - subgraph sg2[Runtime] + + subgraph AP["FRAME Pallets"] direction LR - G[Runtime API] - H[Executive] - I[frame_support::runtime] - subgraph sg3[Pallets] - direction TB - J[System] - K[Staking] - L[Balances] - M[GRANDPA] - end + A1[Aura]~~~A2[BABE]~~~A3[GRANDPA]~~~A4[Transaction Payment] + B1[Utility]~~~B2[Balances]~~~B3[Sudo]~~~B4[Multisig] + C1[Identity]~~~C2[Assets]~~~C3[Contracts]~~~C4[EVM] + D1[Collective]~~~D2[Treasury]~~~D3[Democracy]~~~D4[Membership] + E1[Randomness]~~~E2[Timestamp]~~~E3[Staking]~~~E4[and more...] end + AP --> SP ``` ### Cumulus From 81874f1432082e0190ad191bb401eef96ed50109 Mon Sep 17 00:00:00 2001 From: nhussein11 Date: Thu, 16 Jan 2025 10:48:44 -0300 Subject: [PATCH 3/4] fix: mermaid diagram styles and simplifying it a bit --- develop/parachains/intro-polkadot-sdk.md | 14 ++++++-------- 1 file changed, 6 insertions(+), 8 deletions(-) diff --git a/develop/parachains/intro-polkadot-sdk.md b/develop/parachains/intro-polkadot-sdk.md index 057906ecb..756a2a55c 100644 --- a/develop/parachains/intro-polkadot-sdk.md +++ b/develop/parachains/intro-polkadot-sdk.md @@ -56,19 +56,17 @@ FRAME provides the core modular and extensible components that make the Substrat ```mermaid graph LR - subgraph SP["Runtime"] + subgraph SP["Runtime"] direction LR S1[Timestamp]~~~S2[Aura]~~~S3[GRANDPA] - S4[Balances]~~~S5[Transaction Payment]~~~S6[Sudo] + S4[Balances]~~~S5[Transaction\nPayment]~~~S6[Sudo] end - subgraph AP["FRAME Pallets"] + subgraph AP["FRAME Pallets"] direction LR - A1[Aura]~~~A2[BABE]~~~A3[GRANDPA]~~~A4[Transaction Payment] - B1[Utility]~~~B2[Balances]~~~B3[Sudo]~~~B4[Multisig] - C1[Identity]~~~C2[Assets]~~~C3[Contracts]~~~C4[EVM] - D1[Collective]~~~D2[Treasury]~~~D3[Democracy]~~~D4[Membership] - E1[Randomness]~~~E2[Timestamp]~~~E3[Staking]~~~E4[and more...] + A1[Aura]~~~A2[BABE]~~~A3[GRANDPA]~~~A4[Transaction\nPayment] + B1[Identity]~~~B2[Balances]~~~B3[Sudo]~~~B4[EVM] + C1[Timestamp]~~~C2[Assets]~~~C3[Contracts]~~~C4[and more...] end AP --> SP ``` From 1d9a5d8219435a2dad5f3b777a090cd6a3b9fa4f Mon Sep 17 00:00:00 2001 From: DAWN KELLY Date: Wed, 22 Jan 2025 10:44:53 -0500 Subject: [PATCH 4/4] adds udpated version of diagram indicating custom config --- develop/parachains/intro-polkadot-sdk.md | 38 +++++++++++++++++++++--- 1 file changed, 34 insertions(+), 4 deletions(-) diff --git a/develop/parachains/intro-polkadot-sdk.md b/develop/parachains/intro-polkadot-sdk.md index 756a2a55c..5927f32c5 100644 --- a/develop/parachains/intro-polkadot-sdk.md +++ b/develop/parachains/intro-polkadot-sdk.md @@ -52,16 +52,46 @@ Every blockchain platform relies on a decentralized network of computers—calle ### FRAME -FRAME provides the core modular and extensible components that make the Substrate SDK flexible and adaptable to different use cases. FRAME includes Rust-based libraries that simplify the development of application-specific logic. Most of the functionality that FRAME provides takes the form of plug-in modules called [pallets](/polkadot-protocol/glossary#pallet){target=\_blank} that you can add and configure to suit your requirements. +FRAME provides the core modular and extensible components that make the Substrate SDK flexible and adaptable to different use cases. FRAME includes Rust-based libraries that simplify the development of application-specific logic. Most of the functionality that FRAME provides takes the form of plug-in modules called [pallets](/polkadot-protocol/glossary#pallet){target=\_blank} that you can add and configure to suit your requirements for a custom runtime. ```mermaid graph LR subgraph SP["Runtime"] direction LR - S1[Timestamp]~~~S2[Aura]~~~S3[GRANDPA] - S4[Balances]~~~S5[Transaction\nPayment]~~~S6[Sudo] - end + Timestamp ~~~ Aura ~~~ GRANDPA + Balances ~~~ TransactionPayment ~~~ Sudo + subgraph Timestamp["Timestamp"] + SS1[Custom Config] + end + subgraph Aura["Aura"] + SS2[Custom Config] + end + subgraph GRANDPA["GRANDPA"] + SS3[Custom Config] + end + subgraph Balances["Balances"] + SS4[Custom Config] + end + subgraph TransactionPayment["Transaction Payment"] + SS5[Custom Config] + end + subgraph Sudo["Sudo"] + SS6[Custom Config] + end + style Timestamp stroke:#FF69B4 + style Aura stroke:#FF69B4 + style GRANDPA stroke:#FF69B4 + style Balances stroke:#FF69B4 + style TransactionPayment stroke:#FF69B4 + style Sudo stroke:#FF69B4 + style SS1 stroke-dasharray: 5 + style SS2 stroke-dasharray: 5 + style SS3 stroke-dasharray: 5 + style SS4 stroke-dasharray: 5 + style SS5 stroke-dasharray: 5 + style SS6 stroke-dasharray: 5 + end subgraph AP["FRAME Pallets"] direction LR A1[Aura]~~~A2[BABE]~~~A3[GRANDPA]~~~A4[Transaction\nPayment]