Polkadot-Blockchain-Academy / pba-content

An intensive academic program teaching Blockchain, Substrate, and Polkadot.
https://polkadot-blockchain-academy.github.io/pba-content/
MIT License
57 stars 29 forks source link

Substrate - Feedback and local tweaks from UCB run-of-show incoperated #761

Open nuke-web3 opened 1 year ago

nuke-web3 commented 1 year ago

TODO before we close out the UCB cohort & tag the content repo

JoshOrndorff commented 1 year ago

Regarding this FAQ about "why is consensus not part of the runtime?" I think it is misleading to first give these weaker answers like "it is not often customized". Of course that is a true statement, but it gives the impression we could have put consensus in the runtime if we wanted to which is false. You only get to the real answer at the end which is that it is not possible to put consensus in your runtime; consensus is the tool that helps humans reach agreement about which history of the runtime is the real one. It is necessarily and fundamentally outside the runtime.

nuke-web3 commented 1 year ago

we ask students to build substrate, I am assuming main - should we rather capture a version to be safe as we move through the Academy together? Perhaps a for just for us, tagged for each cohort as the "canonical" one we used.

Edit: indeed https://github.com/Polkadot-Blockchain-Academy/pba-ucb-frameles-node-template/pull/2 // https://github.com/Polkadot-Blockchain-Academy/frameless-node-template--master/pull/2 illustrates this well :upside_down_face:

nuke-web3 commented 1 year ago

See also: #764

kianenigma commented 1 year ago

Now that it is almost over, I briefly went over the student feedback and want to paste a few of them here:

Good:

It was so powerful to see the wasm blob upgrading as a storage entry on the database and getting demonstrated on Polkadot.js apps.

Bad: Two comments said that I oversimplify things, which is correct, and perhaps I do it too much.

Bad:

specifications were incomplete, unclear or even ambiguous and the assignment lacked proper test cases.

Middle:

The assignment, even though it was chaotic and the instructions ambiguous, it was a very effective way of learning and understanding a Substrate runtime

Good: Overall good feedback on the Client/Runtime/Wasm stuff, but that can always be improved:

Understanding the architecture of building a blockchain and how substrate in particular aims to do it in a modular, upgradable way.

Suggestion: Multiple people asked for Substrate/FRAME cheat sheet. Not sure what we can come up with, but a good idea.

Substrate Cheat Sheet about Storage and encoding

Suggestion: more people seem to want live coding. FRAMELess exercise could have this in it as well, if time permits.

Based comment in general:

  1. Implement a proper balance between theory and practice at the academy. 2. Ensure high quality of assignments and only provide them when they are ready. There is no excuse for Cambridgy or unclear assignments. 3. Do the FRAME lectures before the substrate lectures. 4. Abolish the substrate assignment and turn it into a blockchain-from-scratch style exercise to accompany substrate lectures. 5. Have a two week long FRAME assignment where students will have to implement a real use case in FRAME. This could be done either individually or in groups.

Bad: multiple people asked for consensus related content

I would've like to see the consensus part in the assignment or some hands-on exercise. I see pallets for consensus but currently have no idea where they go in substrate or FRAME.

Good: People in general liked the in-class FRAME testing + benchmarking + RPC exercises.