## Navigating Polkdot's Opensource Stack --- ## Agenda - An overview of the most important repositories on Polkadot - An update on where to find documentation for these Polkadot projects - How to approach a problem in Polkadot (hint: Read code!) - How to start contributing - Where to reach out! --- ### The Heart of Polkadot - `polkadot-sdk` - Used to be three repositories, now is a monorepo - Includes Substrate, Cumulus, and Polkadot. - Does **not** include ink! (for now...) --- ## The "Levels" of Polkadot ### It's a lot like a tall building... --- ```mermaid %%{ init: { 'theme': 'base', 'themeVariables': { 'fontFamily': 'Unbounded', 'primaryColor': '#E6007A', 'fontSize': '16px', 'primaryTextColor': '#fff', 'primaryBorderColor': '#7C0000', 'lineColor': '#140523', 'secondaryColor': '#552BBF', 'tertiaryColor': '#fff' } } }%% flowchart LR subgraph LOW["CONTENT"] ART["Articles"] WIK["Wiki"] DOC["Documentation"] TUT["Tutorials"] end subgraph LOWER["APPS"] SOCIAL["Subsocial (onchain social media)"] POLKA_ASSEMB["Polkassembly"] WALLETS["Wallets"] end subgraph DEV["Developer Tooling & Libraries"] SUBXT["SubXT"] PJS["Polkadot JS"] end subgraph MIDDLE["Pallets & Runtimes"] PARACHAINS["Parachains"] PAL["Pallets"] INK["ink!"] EVM["Solidity"] end subgraph TOP["Protocol Level (Polkadot)"] DOT["Polkadot"] SUB["Substrate"] FRA["FRAME"] PAR["Cumulus"] end ``` --- # Polkadot is OSS. ### Contributions are important, from READMEs to core protocol changes. --- #### Don't forget about these! - `Polkadot JS` - Javascript/Typescript library - `subxt` - Rust client library for Substrate based chains --- #### And these! (templates galore) --- <sup>Before contributing, it may help to build something first!</sup> - `substrate-node-template` - Solo chain template - `extended-parachain-template` - Extended parachain template (Cumulus) - `frontier` - EVM compatible chain --- *(from [Build - Polkadot Wiki](https://wiki.polkadot.network/docs/build-guide))* ```mermaid %%{ init: { 'theme': 'base', 'themeVariables': { 'fontFamily': 'Unbounded', 'primaryColor': '#E6007A', 'fontSize': '16px', 'primaryTextColor': '#fff', 'primaryBorderColor': '#7C0000', 'lineColor': '#140523', 'secondaryColor': '#552BBF', 'tertiaryColor': '#fff' } } }%% flowchart TB subgraph PL ["Protocol Side (Parachains, Smart Contracts)"] subgraph SCD ["Smart Contract Development"] direction LR SC["Use Smart Contract Parachain"] SC --> ink! SC --> Solidity end subgraph PSL ["Build a Blockchain"] direction LR PS["Polkadot SDK"] --> R[WASM Runtime - Substrate & FRAME] R -->Parachain["Parachain"]-->SSC["Shared Security - Cumulus"] R -->SoloChain[Solo Chain]-->NSS["No Shared Security"] end end PL-->| Develop apps| CS subgraph CS ["Client Side (dApps/uApps)"] UA[UApp - Smoldot] UA --> PAPI[Polkadot API] UA --> PJS[Polkadot JS] UA --> SubXT SubXT end ``` --- - **Protocol Layer** - core development, often touches deeper compsci issues. - **Pallets & Runtimes** - Business logic of chains, sometimes includes things like Frontier. - **Developer tooling & libraries** - ways to *consume* the above. - **Apps** - User-land/facing applications, web apps that use the above! - **Content** - Explainations, tutorials, demonstrative examples --- ## How do I contribute? --- Mentor issues on the `polkadot-sdk`: ![Screenshot 2023-12-13 at 7.49.36 PM](https://hackmd.io/_uploads/BJyEbRv8a.png) --- - Great place to start if you have a strong Rust background - Diverse set of tasks - from docs, to core development. - Get to know the core protocol - a very involved one at that! - Learn from the engineers themselves. --- There is lots of oppurtunity in OSS, take advantage of it! - To learn more about the core protocol and its various concepts, explore the [Rust docs.](https://paritytech.github.io/polkadot-sdk/master/polkadot_sdk_docs/index.html) --- If you want to be well informed, GitHub is the best place to be for a developer. --- Don't know Rust well? No problem! Contributing takes many forms... --- Build something cool, and write about it. Post on places like Hackernoon or Medium, then on Twitter and the Polkadot Forum. --- ### Inspiration: Take a look at existing dApps/parachains. --- ## Don't forget about Polkadot's parachains, either! #### If a parachain "speaks" to you, look to contributing to it! --- The Polkadot Wiki could use _you!_ - See something unclear or outdated? **Please** make a PR! - Have an idea for a new section, or something to improve development experience? Create an issue! --- ## Reaching out for help --- - Create GitHub issues if needed (with caution, of course) - If you're working on a mentor issue (or really any) you probably be in touch with the maintainers for that code. - If you have a deeper proposed change that you wish to discuss, take to the forum. --- ## :fork_and_knife: Happy Contributing! You can find me on via: - [GitHub - `CrackTheCode016`](https://github.com/CrackTheCode016) - [Twitter/X - `baderyo_o`](https://twitter.com/baderyo_o) - Discord - `.badery`
{"description":"View the slide with \"Slide Mode\".","contributors":"[{\"id\":\"22ed08ca-5c11-4b15-a8e6-a0991cde1f3f\",\"add\":6333,\"del\":676}]","title":"Navigating Polkadot's Opensource Stack"}
    485 views