Open shawntabrizi opened 1 year ago
Some ideas for new lesson plan here:
https://github.com/Polkadot-Blockchain-Academy/pba-content/issues/592#issuecomment-1522553910
Another suggestion for a potential new lesson Plan:
I like the outline you right above this. I think of the deep dives that you listed, parachain Validation is most important. If we have too much content, I would prefer to demote erasure coding.
I like your outline Shawn. I'm in the process of attempting to match content to people. There are topics we may want to cover in more or less depth based on access to SMEs. Examples:
Tomorrow I'll be trying to refine our schedule, figuring out how many of these topics we have time to cover and making a first pass at assigning them time slots.
I will tentatively mark the lesson plan in this thread as the layout for the academy.
As for distribution of work:
Obviously people who are not me need to agree to do this work, but this makes sense to me based on knowledge
Re: Erasure Coding
It is currently part of the cryptography "exotic primitives" section. I can definitely continue to teach it (no math, of course) and give it some context in the cryptography section, as we feel is appropriate. That way, the erasure coding theory would be covered on the cryptography side, and the polkadot module could really just go over the application (and the economic protocols around it).
@naterarmstrong i think covering erasure encoding is useful and interesting. I think it is fine to go over it in cryptography rather than Polkadot. In the Polkadot section, we should cover how we use erasure encoding, and the impacts it has on the protocol.
For example:
This might be much less than a full presentation worth of content, and thus can be rolled up into some higher level story.
I feel comfortable taking on the execution cores talk. My focus has been async backing for a while now, and elastic scaling/core allocation is one of the big considerations that went into our async backing implementation.
I don't know of any parachain validation (PVF/POV) SME who will be on site at Berkeley. I could consult with said SMEs on my team to create content, which I'd be willing to present.
Also, last academy I presented the OpenGov lecture. So I'm happy to handle that again if needed.
As for exercises, Joshy and I had a discussion yesterday resulting in a tentative plan of action. I'll summarize it briefly here for visibility and feedback:
For context, Andronik and I delivered three exercises and one demonstration for the Buenos Aires academy. These covered:
Joshy had the idea of combining at least the first three of these exercises. Students would each end up running a relay chain validator and a collator for their custom parachain. They would each reserve a paraId, win an auction, and initialize their parachain.
After thinking on it farther I suggest we run the shared relay chain remotely rather than having the students run nodes. Pierre helped Andronik and I do this last time for the slot auction exercise and it worked great. The resulting network would be much more stable and predictable imo. We could still have the students connect a parachain to their own local relay chain as a side task if we want them to experience running a validator.
I don't think I'm a suitable person to talk about the message passing protocols unfortunately. I don't know nearly enough of it to explain the concepts behind it. Would anyone from Rob H's team be able to help instead?
@KiChjang I thought someone on FRAME had been working on updating all the message queuing? Was it Oliver?
@BradleyOlson64 Regarding deep dives, there might be other topics that you might suggest which I have not included simply because I am not aware of the details below the functionality. Feel free to suggest or alter the topics we cover.
I think @JoshOrndorff might be willing to investigate into, and do a deep dive into Parachain Validation. It might be that we don't have an exclusive deep dive on this topic, but instead the details are included in the Parachain Protocol overview.
@BradleyOlson64 how long was your OpenGov presentation?
@shawntabrizi My OpenGov presentation also covered the Fellowship and was about an hour long.
Here are a couple deep dive ideas:
@shawntabrizi If you're talking about just messaging queuing, then yes, it's Oliver, but XCMP is more than just the queuing part -- there's also the part where the bytes of the message is actually sent from one location to another, and I have absolutely no knowledge how that works. I am not sure if Oliver has adequate understanding there as well.
@naterarmstrong @shawntabrizi I'm re-watching Andronik's presentation about erasure coding, reed solomon codes, etc. I think this detail should absolutely go in cryptography. When we get to polkadot, (after maybe a 5min refresh on erasure coding) explain that it is used to split up PoVs and make sure they are available. IMO we should not have slides about computations modulus a large prime number in the middle of Polkadot.
This level of detail is a distraction when we're already trying to explain the relatively complicated steps of getting a parachain block finalized. At risk of drifting too far off topic, @naterarmstrong I think there should be an exercise about erasure coding in module 1. Either in class or part of the assignment. At minimum, recommend a crate and have students split up and reassemble some simple strings. Or if you wanna get fancy, maybe have students implement a simple reed solomon encoding (if that is possible).
So back on topic, my point is that we shouldn't be explaining how erasure coding works in the polkadot module. Students should know how it works from mod 1, and we should explain that it is used for PoV availability.
I'd like to get a shared understanding of our vision for hands-on exercises in this module. In the Blockchain module, I strived to do 45 min lecture and 45 min hands-on activity alternating for the entire module. I would love to do that here because I think it really helps keep student engagement high, but I'm also open to other ideas.
As Bradley mentioned, I have an idea that I think can compose several good activities into one cohesive module-long activity that can be adjusted for time availability dynamically. I can sketch in this out in as much detail as anyone wants, but for now I'll give a high-level overview.
This also partially addresses the complaints about long compile time by re-using the same network and artifacts throughout the module as much as possible.
This also reminds me that in Shawn's content outline sketched above, there is no mention of cumulus. I think there should be, right?
@JoshOrndorff Definitely we should pull that detail out of the polkadot unit. I honestly don't think that level of mathy detail really fits anywhere in the academy curriculum, because it's very likely to be completely unhelpful for most students. I may go over (on a high-level) the names of the different options for encodings / commitments / etc and their properties.
I will definitely make erasure coding a larger emphasis in the cryptography unit though. Most likely it'll end up grouped together with Shamir secret sharing or something similar. I added it to the crypto tracking issue, so any follow up will be there.
@JoshOrndorff A (short) cumulus lecture sounds good. I added it before XCMP.
Would be good to describe at a high level:
As for the exercise, sounds good. All of the items you describe above seem reasonable, but it would help me to frame the "goal" that students should reach at the end of the exercise. Could be as simple as "Have students feel comfortable navigating the live Polkadot network via Polkadot JS and other common tooling". I think it will be good to anchor to some high level goals.
I can do "Introduction to the Parachains Protocol" and possibly one other more general talk -- I was thinking something like "Parachains vs. Other Types of Rollups". I'm assuming these would be something along the lines of at most a one hour lecture, including q&a, and no exercises.
For deep dives, I'll suggest we just base it on whatever people present can speak to and have capacity for rather than feeling like we have to cover certain topics. I don't expect students to retain a whole lot about parachain consensus in this time period so don't think there's a reason to force it. Better to pare things down and do it well.
@Sophia-Gold, @JoshOrndorff had asked to create the introduction to the parachains protocol presentation. See: https://github.com/Polkadot-Blockchain-Academy/pba-content/discussions/595#discussioncomment-5767218
Perhaps you can work together, but generally would have you coordinate ownership and stuff with Joshy.
On the other hand, would love for you to take ownership of "Parachains vs Other Types of Rollups", which I had envisioned to be the very last presentation, and would also cover other key blockchain scaling decisions:
Blockchain Decisions and Scalability
- Review and discuss other blockchain scaling solutions in the ecosystem
- ZK and Optimistic Rollups
- Homogeneous Shards
I think @rphmeier and @pepyakin are among the main experts we have at Parity who can help paint a comprehensive picture here.
Some other resources for you:
For deep dives, I'll suggest we just base it on whatever people present can speak to and have capacity for rather than feeling like we have to cover certain topics
I pretty strongly disagree here. The deep dives should not be some loose "we talk about whatever we can talk about". It should actually cover and go deep into the topics which are most relevant for the students to have a strong understanding of Polkadot from the perspective of a Parachain Developer.
If we do not have the experts we need to present this material, we should accumulate the information we need beforehand, and create new topic experts who can present for the academy.
On the other hand, would love for you to take ownership of "Parachains vs Other Types of Rollups", which I had envisioned to be the very last presentation, and would also cover other key blockchain scaling decisions:
Blockchain Decisions and Scalability - Review and discuss other blockchain scaling solutions in the ecosystem - ZK and Optimistic Rollups - Homogeneous Shards
Okay, that sounds good. I was unclear whether you intended these topics to be part of one presentation or several; I think just one makes sense as this would be one of the most general talks, although possibly supported by content from earlier modules. I would also add restaking to the list, although it's not a scaling solution.
This fits nicely with other work I'm doing around marketing some of the features on our roadmap and I've already spoken with Rob recently about the comparison to rollups and restaking. I'm less up to speed on homogeneous sharding solutions, but spent some time yesterday reminding myself of how Plasma worked and reading about Nightshade. That will be good for me too.
Polkadot Module Schedule: V3 (Changes made since V1: Gave Cumulus lecture to Joshy, switched order of Shawn's Ecosystem/Economy lectures, Split Sophia's lecture in two, added the possibility of Rob's contribution in lectures corresponding to his talks from last academy)
Afternoon Lecture - Introduction to Polkadot (1 hr) @shawntabrizi or @rphmeier if on site Exercise - Explore a shared chain (30 m) @JoshOrndorff Coffee Break (15 m) Lecture - Shared Security and Blockspace (1 hr) @shawntabrizi or perhaps @rphmeier if on site Lecture - Introduction to the Parachains Protocol (1 hr) @JoshOrndorff
Morning Lecture - Ecosystem / Economy 1, Staking + treasury + other (1 hr) @shawntabrizi Exercise - Nominating, Validating (45 m) @JoshOrndorff Coffee Break (15 m) Lecture - Deep dive: Execution cores (1hr) @BradleyOlson64
Afternoon Lecture - Ecosystem / Economy 2, Governance + Fellowship + other (1 hr) @shawntabrizi Exercise - Referenda, delegation, and voting on class chain (45 m) @JoshOrndorff Coffee Break (15 m) Lecture - Deep dive: Cumulus (1 hr) @JoshOrndorff Could reuse Andronik’s “Introduction to Cumulus” slides Lecture - Deep dive: Asynchronous Backing (1 hr) @BradleyOlson64
Morning Lecture - Deep dive: Perspectives on the Chain (1 hr) @BradleyOlson64 Exercise - Adder parachain + register parachains (45 m) @JoshOrndorff Coffee Break (15 m) Lecture - Cross-Chain Message Passing (1 hr) @shawntabrizi or perhaps @rphmeier if on site
Afternoon Lecture - Polkadot vs Other Security/Scaling Part 1 (45 m) @Sophia-Gold Exercise - Upgrade chains to parachains, register through auctions (45 m) @JoshOrndorff Coffee Break (15 m) Lecture - Polkadot vs Other Security/Scaling Part 2 (45 m) @Sophia-Gold Lectures - Guest content. (1-1.5 hr) Perhaps zombienet. Perhaps Gabriele’s Platform Agnostic Bytecode lecture.
Assumptions:
Lecture - Deep dive: Cumulus (1 hr) Speaker undecided. Could reuse Andronik’s “Introduction to Cumulus” slides
:raising_hand: Me please!
I suggest that we extend " Lecture - Polkadot vs Other Security/Scaling (1 hr) @Sophia-Gold"
And turn it into a full class exercise, discussion, etc...
Perhaps even break down into 2x 45 min sessions, covering separately different topics, with opportunities for questions and discussion between them. I feel this is where a lot of value can be gained by students.
I am fine with breaking down the Ecosystem and Economy, but I would switch the order so I can cover first: DOT Token, DOT Utilities, Staking, Treasury, then cover Governance and Fellowship second.
I would also suggest, if it is possible, and getting students really to participate in exercises, to find a way if possible to put DOT tokens in the hands of the students, and have them actually vote for, delegate, nominate, etc on the real polkadot / kusama network.
EDIT: Also will @rphmeier be around during this time? I feel we should integrate him in the lectures.
@JoshOrndorff Glad you’re up to tackle Cumulus 👍
@shawntabrizi Both suggestions sound good to me. The expansion of @Sophia-Gold’s content sounds like a big value add if she’s up for it.
I’ll adjust the schedule post to reflect changes once we hear from her.
@BradleyOlson64 @Sophia-Gold @pepyakin
Some coordination needed here: https://github.com/Polkadot-Blockchain-Academy/pba-content/issues/610#issuecomment-1549102668
Looks like this matches the topics for the final day, but how we split it up, who speaks, and slots etc need to be decided.
I suggest that we extend " Lecture - Polkadot vs Other Security/Scaling (1 hr) @Sophia-Gold"
And turn it into a full class exercise, discussion, etc...
Perhaps even break down into 2x 45 min sessions, covering separately different topics, with opportunities for questions and discussion between them. I feel this is where a lot of value can be gained by students.
I don’t think an exercise makes sense, definitely think more discussion would be valuable, and am ambivalent about doubling the lecture.
I feel like I could cover everything in half an hour and the more I stretch it out the more opinion I’d likely add wrt the trade offs with Polkadot, which could be good or bad. I haven’t watched past lectures yet, so that would probably give me more of an idea.
The break for discussion in between is definitely a benefit of that format, though.
@shawntabrizi
EDIT: Also will @rphmeier be around during this time? I feel we should integrate him in the lectures.
I think his presence mostly depends on whether all loose ends are tied up for Async Backing by that point. He's discovered more necessary Cumulus + Substrate refactors than expected. Also the audits could turn up new issues. The PBA Faculty page has this to say.
{Rob H (Parity-async)} @rphmeier (UCB req. dates: TBD) Not owning any content formally unless he requests to and is on site. Planning on a public facing social event for him to speak at a minimum if he is on site anytime for the PBA.
Oh, it seems that whatever I proposed in #610 would fit into "Polkadot vs Other Security/Scaling" or its extension, and that is already claimed by @Sophia-Gold. Haven't had a chance to meet yet, but from some glimpses here & there, there seems to be no need to worry about delivery & material quality.
Now, this was my only contribution idea so far, making my presence, AFAIU, not really required. Don't take that as an attempt to bail though - always happy to share my knowledge, just a bit uncertain about how that would fit into what I can realistically commit to prepare. LMK if I misunderstood the situation, or if you have any suggestions. [^1]
[^1]: FWIW and for whom it may concern, my element handle is @pepyakin:parity.io
. I am on hiatus from work rn, but I will try to check element every now and then. I might answer way faster at @pepyakin
in telegram if you are fancy that.
@Sophia-Gold: I could cover everything in half an hour
A little surprising to me as I thought these topics would actually be quite dense, but looking forward to seeing the drafts.
@pepyakin: Now, this was my only contribution idea so far, making my presence, AFAIU, not really required.
Feels like you would be an extremely valuable TA and writer for the contracts and polkadot sections.
Oh, it seems that whatever I proposed in #610 would fit into "Polkadot vs Other Security/Scaling" or its extension, and that is already claimed by @Sophia-Gold. Haven't had a chance to meet yet, but from some glimpses here & there, there seems to be no need to worry about delivery & material quality.
Thanks!
@Sophia-Gold: I could cover everything in half an hour
A little surprising to me as I thought these topics would actually be quite dense, but looking forward to seeing the drafts.
Well, I think without actually doing a dry run through my time estimates are mostly bs. If we need to finalize the schedule sooner than later, I'd err on the longer side. As mentioned, I think there are other benefits of splitting it in two.
To give an example of the level of granularity I'm thinking, I wouldn't cover the intricate details of fraud proofs like @pepyakin suggested since the purpose would be a comparison with Polkadot. It would, however, help to know what related topics would be covered in earlier modules. I'm assuming students would be basically familiar with zero knowledge proofs, for example. But what about things like fraud proofs or data availability sampling or different kinds of PoS consensus mechanisms and the theory behind them?
To give more of an idea, I'd break it down by topic something like:
Okay, after writing that out maybe two lectures is better :)
I think that looks like an awesome list of topics. 🚀
I am sure timing will come as the material develops.
I would only add that these are all pretty deep topics, and it is fair that we mostly cover them surface level, but we must also give students time to digest the material and have conversations.
Honestly really looking forward to the content.
@Sophia-Gold I just came across the concept of a Validium https://ethereum.org/en/developers/docs/scaling/validium/ It might fit nicely into your presentation.
At least in terms of categorizing the various scaling solutions and the tradeoffs they make.
@Sophia-Gold I just came across the concept of a Validium https://ethereum.org/en/developers/docs/scaling/validium/ It might fit nicely into your presentation.
At least in terms of categorizing the various scaling solutions and the tradeoffs they make.
I was aware of this in a StarkEx context. Iirc STARKs might have been what started the DA discussion since they were too large to also fit the calldata on-chain (not sure what has changed that they can do this now in StarkEx "rollup mode") so I'll definitely mention it for that reason.
I think his presence mostly depends on whether all loose ends are tied up for Async Backing by that point. He's discovered more necessary Cumulus + Substrate refactors than expected. Also the audits could turn up new issues. The PBA Faculty page has this to say.
Thanks Bradley - to clarify I haven't made any formal commitment to the PBA this time around beyond coming by and delivering a couple of lectures, which I hope can be the same as or similar to the ones I gave last time around. I also have some timing conflicts as for when I could come by. After 24/25 July I am free to join. I haven't been actively following the discussions and don't intend to, but if there are specific things we should talk about for content please reach me directly via other channels to alert me.
edit @shawntabrizi I see the checklist you made a few comments back and I should be clear about the level of commitment I've made to this iteration of the academy. I'd like to do more but I've been consistent with Pauline & Dan about what I can realistically take on given the other things I'm juggling. All I have committed to do is create content for a couple of lectures and deliver those lectures.
@rphmeier can you list those lectures and where they fit into the academy?
For example, I assume you will give the introduction to Polkadot lecture?
Happy to plan around you.
Here's what Rob presented on last time:
Three of these roughly match up to Shawn's talks, so I added Rob as a possible alternate speaker for those. Would be particularly great for Rob to give his XCMP lecture again, as that fills a hole in our speaker expertise base.
@shawntabrizi I really liked the visuals you created for your shared security slides. What tools did you use to make them? I'd like to use a similar style.
@BradleyOlson64 as I mentioned here, just Google Slides and Google Draw.
Any other images just pulled from google search, and potentially edited with Photopea.
If you have any requests for assets you would like help with, or for me to create, I can do that. You just need to give me a specification or something.
Ah, my bad! And much appreciated. I’d like to develop some proficiency making visual aids myself for the future. That said, I may take you up on your offer once I’ve decided which concepts need to be captured in each graphic.
@shawntabrizi and @BradleyOlson64 I need to schedule my dry run (remotely, two hours in total) and would ideally like both of you there to give feedback as well as anyone else with knowledge in the topic I'm covering.
This should be either the week of the 12th or 19th. I believe you'll both be in Lisbon at some point during that time, so perhaps best if you can propose some dates and times that work and possible other participants. I'm in EDT.
I'd also like to see Sophia's dry run, will be in Lisbon, and am in EDT.
@Sophia-Gold I’ll be home from Lisbon on the 16th. Any date from the 17th forward I’d be happy to attend your dry run.
I am on a similar schedule to everyone else. I think after the 17th is best, or perhaps just have it happen while we are in Lisbon?
I am on a similar schedule to everyone else. I think after the 17th is best, or perhaps just have it happen while we are in Lisbon?
I would decide whether you want to do it when you're in Lisbon and also think of other people you might want to attend. If it's then you'd need to do it later in your day.
If it's the following week I can propose some times and send calendar invites. I'll open it up to anyone on my team who wants to attend and also @burdges who I trust to fact check me.
@Sophia-Gold i propose you pick a time that is best for you, and those that can attend will, and you should do a recording for those that can't.
Otherwise, we should start to include a formal scheduling app with people to mark when they are available. Everything else is too loose.
Gav Feedback:
Gav Feedback:
Polkadot provides: validity & availability, (connectivity too) & finality
- other protocols provide validity without availability, polkadot provides both
- cosmos has connectivity, but not the others
- ethereum has validity, but availability is super expensive, no connectivity
- with ethereum smart contracts and stuff, you really need availability, not just validity
- Scalability isnt what polkadot is exactly offering
This is somewhat how I'm comparing things in the second part of my talk, which is focused on rollups. Except I say "ordering" instead of "validity". A rollup bridge alone doesn't really provide validity without a healthy network of off-chain block proposers or watchtowers. Both Celestia and Ethereum with Danksharding provide ordering and cheap availability, but not validity. You also have to keep the data available for much longer due to ORU challenge periods.
@JoshOrndorff Dry Run Feedback:
Things I would love:
@Sophia-Gold feedback from dry run
I've opened a PR with my slides: https://github.com/Polkadot-Blockchain-Academy/pba-content/pull/657
cc @BradleyOlson64 @Sophia-Gold @JoshOrndorff
Related and needs feedback integrated:
TODO: