-
Notifications
You must be signed in to change notification settings - Fork 67
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
Create plan for use of IPFS Camp content in ProtoSchool #261
Comments
Adding a bit more detail to this one. :) We plan to evaluate the content from IPFS Camp and see what would fit nicely into ProtoSchool in a variety of ways:
If you have ideas on specific ways we could adapt IPFS Camp content into ProtoSchool, please share them in this issue! |
Hi Teri, Great idea! I didn't get the chance to attend the IPFS Camp but going through the camp-content-first-batch release - there's a gold mine of content that i think would make great Protoschool tutorials. At Protoschool Nairobi, we're taking ipfs enthusiasts through the tutorials as a weekly study guide and some of the content we can add to the course include:
Let me what you think and how I can hekp to get started with these if you agree. |
@realChainLife Thank you so much for your offer to help with new content, and apologies for the delay in getting back to you! I'm still working my way through the camp content, but both of these topics you're proposing sound interesting and I'd love to hear more about what you have in mind! I've been working on some clearer documentation for the process of building effective tutorials, not just how to build the tutorial in our repo (already documented here) but how to create great learning experiences and what features are supported by our platform. The easiest way to see my new additions (still very much a work in progress) is to check out the diff here. To get started, I'd recommend that you read through both sets of instructions linked above, check out the existing new tutorial proposals to see if there's any overlap, then open issues for each new tutorial proposal that doesn't already have an issue to add to. (Based on a quick glance through existing issues, I expect you'd be adding two new issues, one of each of your bulleted suggestions.) If you spotted specific content from IPFS Camp (repo) that's relevant and could help inform either of these tutorials, you should definitely include links in your issue, along with links to any other helpful documentation that could be drawn on for the content. You'll see in the reference materials about building tutorials that there are a few different types of lessons available: code challenges (with or without file upload), text-only lessons, and multiple-choice lessons (new feature). I'd love to hear more in your issues about which formats you think would be most relevant for this content. We can use each issue as a place to solicit input from peers before you get started building and ensure there's a solid content outline that fits cohesively into the ProtoSchool curriculum and supports a beginner-friendly learning experience with appropriate scaffolding. I'm really excited to learn more about the content you have in mind! 🎉 Please let me know if you have any questions about the documentation or would like to schedule some time to chat. |
Core Course A: Understanding How IPFS Deals with Files (led by @alanshaw & @mikeal):
Potential uses in ProtoSchool:
|
Elective F |Starting, Growing, and Stewarding your IPFS Community | Course Repo, Slides (Google Slides)| Video| Nothing here to add as tutorial content, but...
Elective C | Cat roulette | Course Repo | Video
|
Core Course D: The lifecycle of data in the DWeb
This one addresses a lot of very common questions about what happens after you add file to IPFS. More than some other resources it also focuses on blocks specifically as opposed to files (which our MFS and Files tutorials focus on). The lecture format used at IPFS Camp would lend itself well to a text or multiple choice format but likely not coding challenges. There are also lots of helpful graphics in the deck that would be great to incorporate. Potential uses in ProtoSchool:
|
Core B: Solving distributed networking problems with libp2p
Because of the hands-on format of this workshop, which asked participants to build a chat app on their local machine, it doesn't lend itself directly to a ProtoSchool tutorial. However, there are plenty of nuggets in the slide deck that could be taught. There are probably a couple of options here: Either of these options would require support from the libp2p team. Some of the key concepts covered in slides/speaker notes that might be relevant:
Note that there's a lot of overlap here between DHT coverage in Core Course D (Lifecycle of Data in the DWeb) and this course. Is there any reason that IPFS-flavored DHT education and libp2p-flavored DHT education would need to be distinct from each other? @jacobheun as the lead for this IPFS Camp course and the author of issue #229 on adding validation support, I'd love your input on what feels most feasible for incorporating your content into ProtoSchool. Note that there's new documentation available on the platform capabilities/limitations. What feels like the right starting point? |
Core C: Developing Apps with IPFS API
There are a lot of great nuggets in here that haven't yet been taught in ProtoSchool, but the hands-on workshop format used at IPFS Camp may not lend itself well to the current platform capabilities/limitations, such as doing everything in-browser in js-ipfs. We could certainly add some relevant content in reading / multiple-choice lessons even if we're not able to replicate the coding challenges of building an app. Some key topics covered in the slide deck:
@lidel @hugomrdias I'd love your input on whether any of this content could work well as coding challenges (using in-browser js-ipfs) or if we should hone in on text/multiple-choice options for teaching about how IPFS can be used inside applications (or honing in specifically on IPNS). |
Elective A: Identity on the DWeb
This session introduced Identity Manager (IDM) and walked people through the process of integrating IDM to provide authentication and signing into a simple decentralized chat app. There's some very interesting content here, but I'm not sure if Identity Manager/Nomios are far enough along in development to be taught yet. As best I can tell the concepts here would be most appropriate for text / multiple-choice lessons if they were implemented in ProtoSchool. (However, docs say "there will be a reference IDM Wallet written in JavaScript, suitable to use inside a browser" so perhaps some coding challenges would be possible if useful.) Key concepts:
@dominguesgm I know you've worked on IDM in the past so I'd love your take on what seems like it could fit well in ProtoSchool. |
Elective B: Managing pinsets with IPFS Cluster
This course was very much a command-line based hands-on workshop on operating and using IPFS Cluster to orchestrate a common pinset among multiple IPFS nodes. My impression is that the format of this workshop doesn't lend itself well to ProtoSchool (where we can either do text/multiple-choice lessons or js-ipfs coding challenges in the browser) because I don't see a clear JS implementation at first glance and assume we wouldn't be able to replicate the experience of connecting to multiple peers from within ProtoSchool, but I'd love for folks more familiar to correct me if I'm wrong. It would certainly be possible to teach about some of the benefits of Cluster in text/multiple-choice format, but as noted in the prereqs for the workshop, that would require first teaching IPFS concepts such as pinning (likely to be included in the output from Core Course D) and libp2p peers and swarm (no libp2p content at present and coding challenges would require the addition of libp2p validation under the hood). My gut is that we should continue down the road of adding IPFS and libp2p content mentioned above, then circle back with the Cluster team to see whether there's additional content that would be useful and feasible once that scaffolding is in place. @lanzafame @hsanjuan I'd love your thoughts. |
@terichadbourne your gut is right. The main contribution that could come from our side to something like Protoschool is about dynamic data and [Merkle]-crdts . That would be something cool to do once you know all the basics... Something for the future though |
Elective D: Building DApps with Textile, the iCloud for the DWeb
This hands-on, command line workshop use Textile's developer suite to introduce participants to tools and techniques that facilitate building real-world apps and libraries on top of IPFS. Topics covered include: seeds, wallets, threads, schemas, mills, DAGs, etc. Based on the format of this preso in building a full dapp, I don't think it would lend itself easily to ProtoSchool's capabilities, and the Textile team has great documentation on their site for the basic concepts taught here. I'd recommend skipping Textile content in our immediate efforts but would be very happy to consider proposals from folks who'd like to add it down the road where relevant, especially after we have more of our core IPFS content covered to provide more scaffolding. |
Theory would be mostly text based. A subset of coding challenges that relied on js-ipfs running on a page could be translated into ProtoSchool format, but I don't believe IPNS changes landed yet (@hugomrdias and @aschmahmann work on it). We also probably don't want to invest time in teaching people how to use centralized ws-star when we plan to deprecate it. Hope this helps. |
Elective E: Deplying IPFS Infrastructure The course covers how to create an IPFS cluster in the cloud. It is mostly command line based. Some non IPFS specific topics are covered in the first half of the session, like creating Digital Ocean droplets, using ssh and creating a key to use ssh. This course uses Digital Ocean in order to host an IPFS infrastructure, which may be an issue given it requires creating an account on Digital Ocean and providing payment information. IPFS related information (installation and work) starts at the 26 minute mark. Some IPFS node settings are discussed, such as:
At the current stage for ProtoSchool, with no tutorials on command line IPFS, the contents on this course seem to be too advanced to be relevant to be included here. |
Elective G: Managing Datasets with QRI This course gives an introduction to QRI for managing datasets and how it interacts with IPFS. It's a pratical, command line based course which teaches the basic usage of QRI, how it handles adding and querying datasets, as well as how updates are managed. This elective seems to be indirectly related to IPFS contentwise, in a way where I don't feel like there is content that could be extracted for use in ProtoSchool. It can, however, be showcased as a relevant IPFS usage "in the wild" if we end up creating some sort of Resources page for relevant projects, to show users what can be built with IPFS. |
Elective H: Making the Browser a True User Agent This course discusses the browsers place in the distributed web, and how a browser can be adapted or created in such a way that it can make use of the distributed web. Some of the approaches discussed are:
One disadvantage for analyzing this elective course is that we do not have a video recording of the session, and can only base ourselves off of the course slides. The slides mention a practical section of the course. Personally, I don't see a way in which the content of this elective course could be applied to ProtoSchool. The format of the practical section would not lend itself well to ProtoSchool's format and the theoretical section at the beginning is more of an exploration of what could be the browser's place in the future of the DWeb and not any particular learnable concept. |
Closing out this survey issue in favor of the individual issues now created for all actionable proposals: Core Course A
Core Course D
Elective Course F
@johnnymatthews flagging this issue as complete so you snag any useful notes for docs site updates. There'll be more content that's useful for you than us since you don't have all of our formatting limitations. |
Review IPFS Camp content and determine what would fit well within ProtoSchool and whether it makes sense as new tutorials or additions to existing materials.
Camp content to review
For some of these it will become quickly apparent that the content won't translate well to ProtoSchool, either due to the format or the conent (for example, vendor-specific content if there aren't extractable IPFS tidbits), but we'll at least note that quickly in this issue before moving on. Please check off below when the course has been reviewed and suggestions have been added to a new comment in this issue.
Core A | Understanding how the InterPlanetary File System deals with Files | Course Repo, Slides (PDF)| Video |
Core B | Solving distributed networking problems with libp2p | Course Repo, Slides (Google Slides)| Video |
Core C | Developing Apps with IPFS API | Course Repo, Slides (PDF, Google Slides)| Video|
Core D | The lifecycle of data in DWeb. | Course Repo, Slides (Google Slides, PDF) | Video|
Elective A | Identity on the DWeb | Course Repo, Slides (Google Slides)| Video|
Elective B |Managing pinsets with IPFS Cluster | Course Repo, Slides (PDF) | Video |
Elective C |TBA (But will have cats with lasers...) | Course Repo | Video |
Elective D |Building DApps with Textile, the iCloud for the DWeb | Course Repo | Video |
Elective E |Deploying IPFS Infrastructure | Course Repo | Video |
Elective F |Starting, Growing, and Stewarding your IPFS Community | Course Repo, Slides (Google Slides)| Video|
Elective G |Managing Datasets with QRI | Course Repo | Video |
Elective H |Making the Browser a True User Agent | Course Repo, Slides (HackMD) | N/A |
The text was updated successfully, but these errors were encountered: