Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

[Draft] Polkadot Development Overview (build) #4810

Merged
merged 21 commits into from
Jun 30, 2023
Merged

Conversation

CrackTheCode016
Copy link
Contributor

@CrackTheCode016 CrackTheCode016 commented May 17, 2023

Creating a development "funnel" that clarifies the paths one can take in order to start developing on Polkadot. It is not meant to be a guide for everything, rather a concise series of pointers to necessary content oriented for builders.

This PR was created mainly because there has been a lack of clarity for some of those who are new to the ecosystem but wish to either simply tinker with Polkadot or dive into it at a more professional level.

Broad goals:

  • Clarify the role of Polkadot versus parachains from a dev POV
  • Discuss the various paradigms and provide direction depending on the paradigm chosen
  • Clarify the differences and relationships between key development tools within the Polkadot ecosystem:
    • Substrate, Cumulus, and FRAME clarity and the output of each component
    • Creating parachains versus solo chains
    • Direct pallet versus smart contract comparison
  • Links galore - provide links to everything
  • Graphics / diagrams to showcase the differences and outcomes of each choice

@kianenigma
Copy link
Contributor

kianenigma commented May 23, 2023

I would love to review this when final. The message here is crucial and we should adjust. This type of low level work can also use the opinion of a multitude of people, as it will be an important message. Who is --sort of-- the master mind behind the existing plan?

On which page of the Polkadot website will this be hosted?

Looking at the figure, one issue that I can spot is that you are using Slot instead of Core.

@CrackTheCode016
Copy link
Contributor Author

I would love to review this when final. The message here is crucial and we should adjust. This type of low level work can also use the opinion of a multitude of people, as it will be an important message. Who is --sort of-- the master mind behind the existing plan?

I believe it was one of the previous TechEd for the most current iteration, although I believe there were several peopel working on it over the years (@DrW3RK could clarify more probably).

On which page of the Polkadot website will this be hosted?

For reference, this page currently lives here: https://wiki.polkadot.network/docs/build-guide. My hope is that it can serve as as good reference for any other pages which may benefit from defining these paths to development.

I would love to review this when final. The message here is crucial and we should adjust. This type of low level work can also use the opinion of a multitude of people

@kianenigma Once it is final, I'll request a review :) I agree, it is something that needs a lot more input and thought from everyone! And thank you for those resources, will implement them accordingly.

@CrackTheCode016
Copy link
Contributor Author

CrackTheCode016 commented May 24, 2023

Added some more content, removed repetitive stuff, and added the notion of four tracks:

  1. [Building Parachains]
  2. [Building a Pallet] (incomplete)
  3. [Developing Smart Contracts]
  4. [Developing a dApp] (incomplete)

Generally, I think a developer who (assuming knows nothing) could now more easily discern where they should go for learning depending on their goals.

Some more graphics would be nice, as well as making sure it flows well.

Copy link
Contributor

@filippoweb3 filippoweb3 left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Added conditional rendering, I noticed that there are still places with "Polkadot or Kusama". As the page is used for both wikis we need to make sure cponditional rendering is present.

docs/build/build-guide.md Outdated Show resolved Hide resolved
docs/build/build-guide.md Outdated Show resolved Hide resolved
docs/build/build-guide.md Outdated Show resolved Hide resolved
docs/build/build-guide.md Outdated Show resolved Hide resolved
docs/build/build-guide.md Outdated Show resolved Hide resolved
Copy link
Contributor

@filippoweb3 filippoweb3 left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Added conditional rendering, I noticed that there are still places with "Polkadot or Kusama". As the page is used for both wikis we need to make sure cponditional rendering is present.


## Development Ecosystem Overview

![Path to Building a Parachain](../assets/parachain-development.png)
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

I find this figure a bit convoluted. Especially the lines linking things to the cumulus box is unclear to me. Can you explain further?

Copy link
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

The idea was to sort of show the relationships between various components, and how one could morph from one to another. Pallets make up your custom runtime -> Which are used by FRAME -> Which are both built on Substrate.

The Cumulus part was to also show that really, they are all concluded as a runtime no matter the path you take (parachain or solo chain).

I'll work on making t clearer, probably a top-down approach is better 👍

Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Any updates on this?

Copy link
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

I will be working on it early next week - the education repo has been taking my time :)

I'll request your review when I complete the last set of changes 👍

Copy link
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Actually, it seems a lot of that repo may be relevant here! I'll probably tag you in some of the diagrams I'm putting together over there :) Mostly to do with frame and their relationship with Substrate core libraries, that kind of stuff

Copy link
Contributor Author

@CrackTheCode016 CrackTheCode016 Jun 22, 2023

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Working diagram - I think it's clearer than the other one so far. Goal was to make it super clear what does what, and how they relate to one another

Screenshot 2023-06-22 at 12 51 27 PM

Copy link
Contributor Author

@CrackTheCode016 CrackTheCode016 Jun 22, 2023

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

If something like this is good, then I can theme it

edit: themed.

Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

I am seeing this with a lot of delay, but the outcome is great, thanks!

Kusama, or even as a basis to form a conventional layer one solo chain.

Currently, the most streamlined way of utilizing Substrate is
[FRAME](https://docs.substrate.io/learn/runtime-development/#frame), which conveniently allows for a
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

In the future, we should try and gradually reduce links to docs.substrate.io and instead rely more and more on our RUST-docs in the short term, and in the long term (paritytech.github.io) on the new doc portal.

Copy link
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

That'd be awesome. Right now, the only equivalent to those docs in the Rust docs is this one as far as I know 😅 https://paritytech.github.io/substrate/master/frame_support/macro.construct_runtime.html

Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Once https://github.com/paritytech/substrate/pull/14137/files is done, we can use it here :)

Substrate chains. It consists of a development server and fluent API, which facilitates multichain
interactions without compromising either performance or ease of use. </TabItem>

<TabItem value="subxt"> Submit extrinsics (transactions) to a Substrate node via RPC using Rust.
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

👍

@CrackTheCode016
Copy link
Contributor Author

@filippoweb3 addressed

CrackTheCode016 and others added 15 commits June 20, 2023 10:57
Co-authored-by: Filippo <110459737+filippoweb3@users.noreply.github.com>
Co-authored-by: Filippo <110459737+filippoweb3@users.noreply.github.com>
Co-authored-by: Filippo <110459737+filippoweb3@users.noreply.github.com>
Co-authored-by: Filippo <110459737+filippoweb3@users.noreply.github.com>
Co-authored-by: Filippo <110459737+filippoweb3@users.noreply.github.com>
@CrackTheCode016
Copy link
Contributor Author

@kianenigma @DrW3RK @filippoweb3 I have polished and simplified this page and have a working diagram for the overall ecosystem development path.

Some things to consider:

  • There is a lot of info. Is there too much info? Do you think it should be more concise?
  • Do the current tracks need changing? Are these what people should be looking for / to do when first coming to Polkadot?
  • Who else could weigh in on an opinion here, as mentioned, this should and does require more than one party's input.

Copy link
Contributor

@filippoweb3 filippoweb3 left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

lgtm, but I am probably not the best person to approve this PR as I still lack some knowledge about dev. Leaving final approval to Kian or Radha here.

@CrackTheCode016 CrackTheCode016 added A2 - Please Review Pull request is ready for review. and removed A1 - In Progress Not ready for review yet. labels Jun 23, 2023
@DrW3RK
Copy link
Member

DrW3RK commented Jun 30, 2023

This is very resourceful. Thank you, Bader! Let's merge this and share the readable Wiki doc to the relevant teams at Parity for feedback.

@CrackTheCode016
Copy link
Contributor Author

@filippoweb3 psst, needs your approval (changes were addressed!) :)

@filippoweb3 filippoweb3 merged commit ae6c09f into master Jun 30, 2023
3 checks passed
@filippoweb3 filippoweb3 deleted the polkadot-development branch June 30, 2023 14:15
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
A2 - Please Review Pull request is ready for review.
Projects
None yet
Development

Successfully merging this pull request may close these issues.

4 participants