ethsociety / learn-plasma Goto Github PK
View Code? Open in Web Editor NEWLearn all about Plasma with LearnPlasma!
Home Page: https://www.learnplasma.org
License: MIT License
Learn all about Plasma with LearnPlasma!
Home Page: https://www.learnplasma.org
License: MIT License
Questions:
Many users of LearnPlasma won't know how to create GitHub issues. Although we should simultaneously provide a non-github way to ask questions, it'd be good to provide a step-by-step guide on the website itself.
Would be good to have both a contributing guide and a code of conduct, and to link both in the README.
Let's discuss possible templates in this issue.
Guide from GitHub: https://help.github.com/articles/setting-guidelines-for-repository-contributors/
Blog post from GitHub: https://blog.github.com/2012-09-17-contributing-guidelines/
Copy/pasting comments as per this ethresear.ch post.
@Mekyle
:
What sort of information would be most helpful to get a better understanding of Plasma?
Videos are great for getting a quick grasp but the biggest thing would be articles on specifics of one particular section of plasma. Creating an “Understanding Plasma” series would be the best approach.
What’s most confusing when you first interact with Plasma?
Understanding how to implement Minimum Viable Plasma in projects is difficult since there’s no step by step approach. I’m not asking for a step by step approach but breaking down MVPlasma into it’s components and explaining the logic behind it would be extremely helpful.
What’s still confusing to you about Plasma?
Understanding exiting strategies is something that still troubles me but that’s normal since it’s still being worked on.
It's been a while since we've asked this. What should we add?
Lets consider turning this:
https://www.learnplasma.org/pages/build.html
Into ➡️ https://github.com/ethsociety/awesome-plasma
The "build" page can be "build" or "ecosystem" in this site. The static generator can pull it in as a submodule or some technique similar to that.
Content:
We should update the Fast Withdrawals section of LearnPlasma to reflect the new Fast Withdrawals for Faulty Plasma Chains.
People are often confused about the difference between Plasma, payment channels, sharding, etc. It seems useful to explain these differences thoroughly.
Let's keep them in this issue until we've published the answers.
Please add your Plasma related questions to this thread so we can answer them on the website!
I think we should definitely do a deep explainer. Maybe we'll have a series for each significant Plasma spec?
Lots of new research has popped up in the last few months. Seems like a good time to add new research topics to /research
!
We've had a PR for the plasma paper annotations open here for a while: #56
I'd like to get this added to the website. A few questions to answer first:
I was thinking we could put it in the Resources
page, and use something like pdfjs
to show the paper + annotations. I'm not 100% sure about this. I'd really like to see the paper rehosted here with the annotations overlaid somehow...
Our search engine performance is frankly pretty awful right now, and it's making LP hard to find. I couldn't get LP to show up with any of the following searches:
(I use the ethereum keyword here because it's basically impossible to get plasma to show up without it - you just get literal 4th state plasma). I'm not really a web optimization person so I have no clue what's necessary to make this work - does anyone have recommendations?
As per this reddit comment, it would be useful to explore some of the possible use-cases and limitations of Plasma.
This could probably be in the form of a page comparing the pros and cons of Plasma MVP, Plasma Cash, and Plasma Debit, for now.
There are a bunch of new Plasma developments and posts that are published on Medium blogs, ETH Research, community websites, etc. The problem is that they are all from disparate sources.
It would be nice to have a page (or a section on the homepage) that aggregates and lists all of these posts in one comprehensive feed.
This feed doesn't necessarily have to be programmatically curated either (although that would be ideal). It could simply be a hand-picked list that is updated manually.
People can leave comments via GitHub, but some users might not have a GitHub account or might prefer to use feedback forms. Let's make sure we have a form as well as an email address to field questions.
The original Plasma paper is relatively confusing. Lots of stuff mentioned in the original paper (map reduce?) isn't really developed in practice. It could be useful to include an annotated version of the paper so people know what's relevant and what isn't.
What should be in this PR:
Table comparing Plasma designs https://docs.google.com/spreadsheets/d/1Hs1-ddKwLG8xrqIXFrYUJzTEH2SjsATFXhgISG1ypzI/edit?pli=1#gid=0
Another minor bug to fix! The sidebar highlighting JS is a being a little weird. You can see that if I start on one section:
And then scroll down to the next:
That the correct section is highlighted in the sidebar! This is the intended behavior.
However, if I start on one section and click on the next section in the sidebar, it isn't highlighted with the background:
Whoops. Should be an easy fix.
We're adding enough content to this website that it's probably useful to move to a framework that makes adding content easier.
Main question: is react a good fit? We're mainly adding text content.
Lots of people want to contribute to the Plasma ecosystem but don't know where to start. We should give users a central place to look for ways to help. We can separate open research topics ("Open Research Questions") from code projects ("Contribution Board").
I'm open to suggestions on the names of each of these sections :-)
The current list of implementations on /build
is a little stale. I figure we can remove the ones that haven't been touched in 3+ months and add any new implementations that have popped up since!
Should this be mainly text? Text + video? We probably can't do video this week, but I can get some recording tools and do the video when I'm back in Bangkok.
I think mainly text would be nice because it promotes as much community content as possible.
Hey contributors, if you'd like to be added to our "Contributors" page, please drop your information here. Even if you're just helping out with comments on issues or making a few commits, you should be recognized!
We need:
Just one user report stating that the actual content is not very legible due to the low contrast of the font against the background and other page elements.
Example: Make simple comparison by toggling between a Medium post and learnplasma.org
I noticed the following recently:
I believe it would be best if all three of the following redirected to https://www.learnplasma.org
Add in section under Plasma MVP on MoreVP/improved features (e.g., PoS, no confirmation signatures, youngest input exit priority, in-flight txns etc)
We're using a template, so some of the stuff on the pages are unnecessary. Let's remove anything that definitely won't be used.
The sidebar on docs
with links to each section doesn't show up on mobile. This is mainly because we're hacking the template to do something it wasn't built to do.
http://reddit.com/r/learnplasma is currently very empty!
Things left to do:
Two of the FAQs have links that currently go nowhere. I would submit a PR to fix them except I'm not confident of the exact destination the links should point to. The relevant links are in following questions:
How can I contribute to Plasma?
The link claiming bounties on Gitcoin
goes nowhere.
How can I report bugs?
The link Post it to Github!
goes nowhere.
We should just generate these automatically on build instead of requiring that they be in the folder already.
Content:
I remember such a list being mentioned as connected to learnplasma
In general, having such a list with known implementers would be incredibly helpful for Plasma and the teams/individuals learning Plasma
Copy/pasting comments as per this ethresear.ch post.
@tpmccallum
:
A resource as you have suggested would be brilliant! It would be great if this could be done at ethereum/plasma GitHub [1] so that Ethereum GitHub could carry the torch.
I think that the all-in-one resource it should cover things like:
The site is appropriately a static website but the pages are currently duplicated. Changing the layout, navigation, and maintaining consistency will be difficult as it grows.
Static site generator with templates
Benefits:
Resources
They are all compatible with Github Pages, Netlify(the current host), and S3 buckets.
Your thoughts?
Would be a good way to highlight all of the people who've helped out!
A proper structure for content will be extremely important. How should we group content?
Some possible "tracks" below? Feel free to comment and give suggestions.
Site analytics can be extremely useful. Knowing what browsers people are using to view the site can help us clean up broken content. Seeing what countries pages are accessed from can inform decisions about languages for translation. Information about popular pages can tell us what content to expand, and what to keep the same.
All of this obviously comes at a cost of privacy. Our site currently (to the best of my knowledge... maybe we should double check) doesn't include any third party tracking tools. Scripts like Google Analytics are generally invasive.
So the questions: Is this something we can do? Is this something we should do? Can this be done without an invasion of privacy?
I was thinking we might be able to have users explicitly opt-in ("Collect anonymous usage data?") but not sure that would play out. Feedback welcome.
After starting the website locally, the content of multiple sections in the "Plasma 101" (docs.html) section presents itself as unintelligible gibberish.
Example:
Challenge Period
For who thoroughly her boy estimating conviction. Removed demands expense account in outward tedious do. Particular way thoroughly unaffected projection favourable mrs can projecting own. Thirty it matter enable become admire in giving. See resolved goodness felicity shy civility domestic had but. Drawings offended yet answered jennings perceive laughing six did far.
Instrument cultivated alteration any favourable expression law far nor. Both new like tore but year. An from mean on with when sing pain. Oh to as principles devonshire companions unsatiable an delightful. The ourselves suffering the sincerity. Inhabit her manners adapted age certain. Debating offended at branched striking be subjects.
Exit strategies
Whole wound wrote at whose to style in. Figure ye innate former do so we. Shutters but sir yourself provided you required his. So neither related he am do believe. Nothing but you hundred had use regular. Fat sportsmen arranging preferred can. Busy paid like is oh. Dinner our ask talent her age hardly. Neglected collected an attention listening do abilities.
The him father parish looked has sooner. Attachment frequently terminated son. You greater nay use prudent placing. Passage to so distant behaved natural between do talking. Friends off her windows painful. Still event you being think nay for. In three if aware he point it. Effects warrant me by no on feeling settled resolve.
Other sections in Plasma by example
are also affected: Overview, Architecture, CLI Documentation
There might be more ... I stopped reading further.
We should break up the docs.html
page into smaller html elements (aka partials) in order to make documentation contribution more efficient.
An example project structure:
src/
| index.html
| assets/
| pages/
| docs.html
| faq.html
| ...
| partials/
| intro.html
| plasma-mvp.html
| plasma-cash.html
| security.html
| ...
Rather than editing the entire docs.html file every time someone wants to add content, it may be easier for contributors to work on partial html files that are then included in the docs file.
Hi, our development team uses HubFlow and think it might be a good tool to use for this project.
You don't need HubFlow to follow the proposed git flow, but it makes things much easier.
HubFlow also enforces things like tagging, changelogs, and releases. This makes it easier to develop things for the project, submit pull requests, and generate releases. We could also integrate things like commit squashing so that pull requests are compacted to a single commit [optional].
Basically, the idea is that you have a develop
branch that's the main branch by default. Then if you're working on a new feature you create a branch executing: git hf feature start my-feature
Once the branch is ready for review a pull request (can be labeled WiP) is submitted against the default branch on github. Once the PR is reviewed and approved it is merged into develop
.
A pull request must also update the ChangeLog describing the changes.
Once the release is ready the developer can tag it and merge it with master by doing: git hf release start 0.1.0
depending on the version.
This is just a suggestion based on how our team works with HubFlow. If it's too complex for this open source project please don't hesitate to close this issue.
ChangeLog: https://keepachangelog.com/en/1.0.0/
HubFlow: https://datasift.github.io/gitflow/
We have a minor bug! Anchor links aren't correctly populating the url bar when clicked. For example, try opening up the resources page (https://www.learnplasma.org/en/resources/) and clicking on one of the anchor tags:
I expect the URL bar to come up as:
But instead we get nothing:
The same problem applies when clicking links in the sidebar. Fixing this would make it much easier to share and link to content!
I was wondering if there could be a list of computer science topics that one should be well versed in before diving into plasma if not be able to contribute to research. (any metal models, paradigms that enable the right thought process if not familiarity).
Suggested additions to read.me, put together by @kfichter & myself:
LearnPlasma is a resource for information about the Plasma framework.
The primary goal of LearnPlasma is to facilitate an open ecosystem of research on blockchain scalability through Plasma frameworks. Plasma research combines technical development and cryptoeconomic incentive and mechanism design.
LearnPlasma should be a starting point, a way for developers, researchers and economists to catch up on the latest state of Plasma research and gain deeper understanding of the challenges and objectives. As well as a means for developers of decentralized applications to better understand when a Plasma chain is optimal for their scalability needs and use cases. The primary audience of LearnPlasma is therefore developers and economists interested in understanding Plasma. Although we can assume some general technical background, documentation should assume that the reader has no prior Plasma knowledge.
Primary Learn content is currently organized into the following structure:
Forthcoming Topics:
A declarative, efficient, and flexible JavaScript library for building user interfaces.
🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
An Open Source Machine Learning Framework for Everyone
The Web framework for perfectionists with deadlines.
A PHP framework for web artisans
Bring data to life with SVG, Canvas and HTML. 📊📈🎉
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
Some thing interesting about web. New door for the world.
A server is a program made to process requests and deliver data to clients.
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
Some thing interesting about visualization, use data art
Some thing interesting about game, make everyone happy.
We are working to build community through open source technology. NB: members must have two-factor auth.
Open source projects and samples from Microsoft.
Google ❤️ Open Source for everyone.
Alibaba Open Source for everyone
Data-Driven Documents codes.
China tencent open source team.