Giter Club home page Giter Club logo

learn-plasma's People

Contributors

enigmatic331 avatar flada-auxv avatar gschmuck avatar iamonuwa avatar jakublipinski avatar jeremyschlatter avatar jet86 avatar ldct avatar maurelian avatar mul53 avatar okwme avatar parthgargava avatar paulperegud avatar paulrberg avatar pumpkingwok avatar qbig avatar ro5s avatar shogochiai avatar smartcontracts avatar tcrowe avatar thec00n avatar therevoltingx avatar tpmccallum avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

learn-plasma's Issues

Add a guide to creating GitHub issues

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.

Comments by mekyle

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.

Gather a list of FAQs

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!

Add a page for Plasma Cash

I think we should definitely do a deep explainer. Maybe we'll have a series for each significant Plasma spec?

Figure out how to add plasma paper annotations

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:

  • Where on the website should this be featured?
  • How should we actually present the annotations?

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...

Improve our SEO

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:

  • "what is plasma ethereum"
  • "ethereum plasma"
  • "ethereum plasma explained"
  • "ethereum plasma eli5"

(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?

🛠 RSS feed for latest posts

Background

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.

Proposal

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.

Notes

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.

Add a feedback form

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.

Add a page for Plasma paper annotations

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:

  • Notes on the original document, not an entirely new document.
  • Point out anything confusing.
  • Point out what's currently being worked on and what isn't.
  • Give links to other explanations about topics in the paper if they exist.

Sidebar highlighting bug

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:

screen shot 2018-10-28 at 9 55 04 am

And then scroll down to the next:

screen shot 2018-10-28 at 9 55 12 am

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:

screen shot 2018-10-28 at 9 55 22 am

Whoops. Should be an easy fix.

Move to a react app (or something)

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.

Add a Contribution Board

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 :-)

Determine content type

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.

Contributors, drop your information here

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:

  • Name (or pseudonym, username, whatever you'd like).
  • Link to your github profile (optional)
  • Affiliation (school, company, etc.; optional; default="Unaffiliated")

The low contrast <p> font difficult to read

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

Get `docs` sidebar to show up on mobile

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.

Links in FAQ section are broken

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.

Add a page for Plasma Debit

Content:

  • How it relates to Plasma Cash
  • Stuff on payment channels
  • Why it's important to be able to transfer payment channels

Link to curated list of known Plasma implementers?

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

Comments by tpmccallum

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:

  • terminology for the root chain. This is because the root chain can also be called the base layer protocol, or the parent chain etc
  • terminology for the side chains. This is because the side chains can also be called child chains, layer 2 … layer n and so forth
  • cover the fact that Plasma is an abstract design, not a product
  • cover the fact that implementations that adhere to the general Plasma designs can be deeper than one level. This is because the side chains can have their own side chains and so on
    cover the fact that these second layer solutions do not use PoW but still produce blocks in other ways introduce block-producers and validators to the design ecosystem - for example how do block-producers jump from chain to chain to perform their work. Can this be automated in the future?
  • get some sort of advice/guidance from @vbuterin and/or @jcp about whether future developers (who code up concrete implementations of the abstract Plasma design patterns) should use the word “Plasma”. Perhaps we could give developers more appropriate descriptors like:
    a) Second Layer Side Chain (SLSC) or
    b) Second Layer Peg Zone (SLPZ) or
    c) Second Layer Lightning Network (SLLN) and so forth.
    This would leave room for more acronyms as the design patterns progress. It is my guess that there will be a lot more implementations and that they will all have different attributes and operations. Only problem is that there might be overlap i.e. Side Chain and State Channel are both “SC”. Perhaps someone can come up with a better idea of how to describe implementations without overusing the word “Plasma”.

🛠 Refactor with static site generator

Reasoning

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.

Proposal

Static site generator with templates

Benefits:

  • Pages authored as simple markdown
  • More easily maintainable
  • Ecosystem of plugins
  • Many open source developers know how to use them

Resources

They are all compatible with Github Pages, Netlify(the current host), and S3 buckets.


Your thoughts?

Figure out how to structure content

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.

  • Plasma 101
  • Plasma MVP in-depth (problem, solution)
  • "Learn Plasma by building one"

Should we include any form of analytics?

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.

Content in multiple sections in docs.html is corrupted

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.

Modularize Docs HTML into partials

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.

Using Hubflow

Using HubFlow

Why?

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].

Details

Starting a New Feature

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

Submitting a Pull Request

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.

Generating a Release

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.

Notes

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.

Resources

ChangeLog: https://keepachangelog.com/en/1.0.0/
HubFlow: https://datasift.github.io/gitflow/

Anchor links not being copied to URL bar

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:

screen shot 2018-10-28 at 9 45 10 am

I expect the URL bar to come up as:

screen shot 2018-10-28 at 9 47 25 am

But instead we get nothing:

screen shot 2018-10-28 at 9 46 03 am

The same problem applies when clicking links in the sidebar. Fixing this would make it much easier to share and link to content!

Pre-requisite / recommended knowledge for learning plasma

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).

Add LearnPlasma Objectives & Content Plan to readme

Suggested additions to read.me, put together by @kfichter & myself:

LearnPlasma Content Plan

LearnPlasma is a resource for information about the Plasma framework.

Goals

  • Allow users to understand the motivation and benefits of Plasma scalability frameworks
  • Allow users to easily find and explore content
  • Provide an in-depth exploration of every aspect of Plasma
  • Clarify confusing concepts or terminology to better explain Plasma
  • Create short, canonical documentation for key Plasma concepts
  • Encourage community Plasma research and implementation

Audience

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.

Website Structure

  • FAQ
  • Learn
  • Build
  • Research
  • Misc
  • Contact
  • Contributors

Content Structure

Primary Learn content is currently organized into the following structure:

  • Introduction
  • The Plasma Framework
  • Plasma MVP
  • Plasma Cash
  • Plasma Debit

Forthcoming Topics:

  • Plasma Comparison
  • Inter-Plasma Chain Transactions
  • Plasma Integration with other L1/L2 Scalability Solutions
    - Payment Channels
    - Casper+Sharding
  • Plasma Use Cases: Opportunities & Limitations
  • User Experience & Plasma

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.