Skip to content
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

JSS v2 - WIP #518

Open
mochet opened this issue Dec 7, 2021 · 2 comments
Open

JSS v2 - WIP #518

mochet opened this issue Dec 7, 2021 · 2 comments
Labels
council minutes documentation Improvements or additions to documentation jsstats

Comments

@mochet
Copy link
Collaborator

mochet commented Dec 7, 2021

JSS v2

The Goal

The goal/idea: Combining the Council Leaderboard & Joystreamstats (JSS) -- and turning it into a "Governance Supertool".

  • Governance Supertool means JSS will aim to act as a crucial "handbook of data" for Council Members and all participants (including outside users) to understand everything that is happening. It will act as a data analytics and data visualization project specifically designed for Joystream -- I do not have a mockup to share because this is an idea that can already sort of be seen with the current iteration of JSS + the council leaderboard (plus all the charts that it generates)
  • It is intended to give anyone a very good view of how the platform has value.
  • Critically, this development of JSS would not attempt to replace any part of Pioneer v2--it will not have any ability to submit transactions. It is purely intended as a way to view governance and platform information in a specific way.
  • This document is aimed at trying to convey the idea, specialist technical information (such as hosting, gathering data, generating charts) is out of scope.
    • Given the intended scope, it may be that major parts of JSS as it exists currently need to be completely redesigned.
  • It is also aimed at mainnet, so information that is currently collected about Jsgenesis' role in the testnets (KPIs, fiat pool management) isn't the biggest priority.

Mainnet Scale

mainnet scale means the amount of activity we should anticipate in the months prior to mainnet launch, and after mainnet launch, while not an extensive list, this is some of the things that we should expect when designing JSS 2:

  • It is likely we will have up to 100+ proposals submitted per day
  • 1000s of videos, channels, forum posts, vNFTs, bounties, memberships etc
  • Much more highly active WGs performing far more on-chain actions (such as membership screening)
  • More WGs, far more proposal types
  • Many more storage nodes and distributor nodes
  • Additional platform modules that are yet to deploy (such as vNFTs, bounty module and membership module)
  • Likely far more Validators and Nominators
  • Elections which may have 100-200+ candidates, with thousands of votes
  • Far more transactions/economic activity

Current Products

  • https://joystreamstats.live/
    • A community created data platform that surfaces essential data covering elections, spending, proposals, mints, working groups etc shows the data in a way that is easier for users to understand
    • Some limitations
      • While the design currently works, in a mainnet scenario its design is not ideal given the expected scale.
  • The Council Leaderboard (https://docs.google.com/spreadsheets/d/1l_aFoN2GxFpxi7pZS3rUh9wCsVHUi8um4YYiNRWMBW8/edit?usp=sharing)
    • A Google Sheets spreadsheet, which includes data generated in Council Minutes reports + Council tokenomics reports. This data covers many critical areas of the platform, including measuring UGC submitted, spending, proposals, WG spending/hiring, validators, memberships & forums. It also contains several graphs which visually show the data.
    • Some limitations
      • Google Sheets has design limitations/faults which mean updating graphs is not done automatically and requires re-entering formulas for every individual graph.
      • This is completed via manual data entry from reports generated via scripts, so there are two levels of possible failure with the data entered.
  • Pioneer v1
    • This is going to be completed replace by Pioneer v2
  • Pioneer v2
    • This design includes massive improvements over Pioneer v1, however most of the design I have seen has more of a focus on current governance information rather than historical information or statistical information. There are search options available also, but there also seems to be limited statistical information shown.
    • If any parts of what are described in JSS 2 are already present in Pioneer v2, then they should be ignored.

Key Requirements

  • Gathering of all possible platform data
    • TBD how the best way of doing this would be. We will have an updated query node eventually that covers almost everything.
  • Visualization of relevant platform data
    • This is a very broad description, but we would want the design to visualize data in good ways

Site design requirements

Due to the complex nature of Joystream, a very specific type of design is critical. This design has to cater to a wide range of users and must include the ability to click through different components and pieces of data + statistics. It must be effortless for a user who is familiar with the site to obtain necessary information with speed and ease.

  • View
    • The view of some parts of the site may need to be geared either towards consumers or to governance--this is hard to define yet, and would need further discussion.
    • The view of the site needs to be optimized for rapid-fire browsing between different sections and specific information--any view a user has should have a URL that can share the exact view they have.
    • user-chosen timescale
      • The view of each part of the site should include a way to show data between a start/end time/date
        • most importantly it should also include an option that can be called Council Time--meaning viewing information covering a specific council term.
        • This is an essential part of the design goal for the project and it should be incorporated on all pages.
      • Anywhere that says "broad statistics" basically includes this.
    • Custom views would be ideal, but are not really that important to include yet. This could be something added much later on.
    • Not necessary immediately, but very good to have at some stage
      • A way to click on each membership, proposal, bounty, vNFT and show rich comparison data
        • "this video has received the bottom 0.01% of rewards"
        • "this member is in the top 300 holders"
        • "this bounty has a longer deadline than 90% of other proposals"
        • "this vNFT has been sold 53% more than all other vNFTs"
  • Memberships
    • This may just link to the Platform Module for Membership described below.
    • Membership is a key aspect of the platform, and we would want a way to see from each profile a very rich description of their activity, which will probably include the proposals they've made (% success rate), prior council membership, vNFT ownership, bounty activity, forum activity (and many other things)
    • This should include a way to click on a username on any part of JSS 2 and get a thorough description of their historic activity on the platform and current activity (such as how much they have staked overall).
    • This is an essential part of the design goal for the project and it should be incorporated on all pages.
  • Search
    • How specifically this would work isn't yet clear, but ideally you should be able to search for anything.
    • There should be some form of search type--by proposal, author etc that can produce all information (it is unclear what the functionality of this is on Pioneer v2)

Site sections components

Due to the complexity of Joystream itself, there may be some areas of what has been outline here that overlap. This is largely just due to the complexity of the platform. Coming up with a perfect description of everything would largely be impossible.

  • Dashboard/homepage
    • includes key metrics/indicators of platform activity, including but not limited to, and within 24h/48h/7d/14d windows (or also by each Council Term)
      • Tokens minted/burned (this will be a key tokenomic activity on the platform on mainnet)
      • New UGC generated (user-generated content includes all vNFTs, videos, channels, memberships, bounties, proposals & forum posts)--and any important erivative information such as how much bounties paid out, or how many videos were uploaded.
      • WG/platform spending
      • Number of workers across the platform
      • Gateway spending/activity (highlighted since this is considered a significant part of mainnet)
      • Council size/election status
      • Current amount staked and which areas this amount is staked in
      • Current number of WG openings
      • Current exchange rate (this is highly dependent on what the source of the exchange rate is)
      • Current avg. block time.
      • Key economic data (inflation, transactions etc)
      • Number of active memberships (who have completed a transaction in the past n days)
      • Each element of the page should link somehow to another deeper area of the site
      • Each element should be grouped together with other relevant elements
  • Platform Modules
    • Each platform "module" would have its own separate page on the site. The design should be done in a way that makes it trivial to navigate between them.
      • WG overview page
        • A page showing the current/historical statistics covering all working groups.
      • Tokenomics page
        • Should include all information possible pertaining to stake, rewards, spending, minting, discretionary spending from WG leads (Questions/Suggestion: Discretionary WG lead spending needs a text field  joystream#2899) + burning information
        • It doesn't feel necessary to describe this further since the current testnet already has a tokenomics page that shows how it could work
        • Pioneer v2 will include a tokenomics page, so this may not be an important thing to focus on.
      • Elections/Council (or separate pages, depending on complexity)
        • The status of any current election (including all applicants)
        • Broad statistics
          • Total number of elections, total number of applicants, total number of votes, total number of failed applicants/votes, stake information, averages of other critical information covering all elections/councils.
          • Critical to include -- the lowest amount (including own_stake & voter_stake) in each election for a successful candidacy
        • All prior elections and statistics related to each them of them individually
          • Applicants, votes, failed applicants, stake, proposals passed/failed/expired, spending
        • An extended view of each council term, including much of the same data that the Council Leaderboard currently contains.
          • Spending during the term
          • Number of workers on platform
        • Candidacy information
          • Most commented candidacy announcements
        • Vote reasoning view
      • Proposals
        • Currently active proposals
        • Most discussed proposals
        • Top proposal authors
          • With a way to click to update what is shown on the page
        • Top proposal types
          • With a way to click to update what is shown on the page
        • Broad proposal statistics
          • type/author/status/approval time etc)
          • Popular proposal tags/labels
          • Trending new tags/labels
          • Total spending from proposals
        • View
          • A way to change the type of proposals that are shown
            • This would include changing author,
      • Constitution
        • This would really just need to show each attempt at updating the constitution
          • This should ideally include both successes and failures and show the text difference between attempts in an easy/quick way that allows rapid navigation.
        • Broad statistics
          • How many times has the constitution been updated overall
          • How has the length of the document changed over time
          • Who have been the top "contributors" to the constitution
      • Forum + Forum WG
        • This doesn't require actually showing forum posts (for now), but only linking to them in some parts
        • It should show key information about the Forum WG (hirings/firings/recent history)
        • Broad forum activity statistics
          • Total posts/threads/categories + moderation actions
          • user-chosen timescale of posts/threads/categories
            • For any given time period chosen a viewer (ideally the top 5, or a number that is workable from a visual perspective)
              • What is the most popular current thread (by number of replies)
              • What forum category is the most popular
                • w/ clickthrough to show the most popular threads in that category
              • Who has posted the most
                • w/ clickthrough to see the most popular/recent threads that user has posted in.
              • Most popular forum tags
                • w/ clickthrough to see the most popular threads for that tag
              • Trending new forum tags
                • w/ clickthrough to see the most popular threads for that tag
      • Videos/Channels
        • This could be combined with the Curator WG however since videos are the core purpose of the DAO it would seem like the page should be its own thing.
        • Broad statistics
          • Number of recent moderation actions + type of actions
          • Number/size of recent uploads
          • Duration of recent uploads + avg. duration
          • Popular labels/tags
          • Popular categories
          • Popular languages (and pretty much any metadata that includes predefined values)
      • vNFTs + auctions (could be separated)
        • Current number of issued vNFTs, number of owners, relevant tag/category information, pricing information
        • Broad vNFT market information
          • Pricing information
          • Total number of auctions/sales
          • Number of active auctions/sales
          • Most popular vNFT authors
          • Most popular vNFT buyers
          • Total number of vNFT transactions
      • Bounties
        • Current number of open bounties, the potential and average amount of money available from these bounties
        • Number of completed bounties (and relevant information)
        • Top bounty authors
        • Top bounty oracles
          • This must enable a way to show the history of bounties of each Oracle's activity, including the total amount of money/work they have judged.
      • Memberships (and maybe also the membership WG)
        • Number of active memberships (who have completed a transaction in the past n days)
          • This is a critical metric to show
        • Total number of memberships
        • Number of memberships that own channels/videos/vNFTs/bounties etc
        • Number of memberships that have been on a council or applied for the council.
        • Number of suspended memberships etc
        • Created memberships over any given time period
      • Validators/Nominators
        • It is unclear whether this part really needs a lot of attention since at least some of the data isn't stored on-chain.
        • Show a good overview of stake, rewards, validator + nominator count
        • Include total slashed/recent slashed
        • The largest + smallst validators/nominators
        • Newest/olders
      • WG overview page
        • Total number of active openings
        • Total number of openings historically
        • Number of possible vacant positions
        • Number of workers across all WGs
        • Spending/stake across all groups
        • Discretionary spending across all groups
        • Each WG
          • Each WG should include the following information:
            • active/fired workers
            • hiring/openings (including active and historical)
            • stake
            • how long the lead has been in the role
            • how long the top n people have been in their roles
            • adjustments to workers payments
            • spending for workers
            • discretionary spending
          • Operations A/B/C
            • These groups do not have as much of a defined/on-chain role as other groups so it is unclear what exact information should additionally be shown
          • Storage Providers
            • It is unclear exactly what information will exist on-chain for this role, so I have not fully described this yet.
          • Distributor Providers
            • It is unclear exactly what information will exist on-chain for this role, so I have not fully described this yet.
          • Membership Curator + Screener
            • It is unclear just yet if these are both distinct WGs.
            • Membership screening/curation information + statistics, individual worker activity, lead activity (determined by on-chain actions related to the role)
            • How long each membership takes to be screened or rejected.
          • Curators WG
            • Screening/curation/category information + statistics, individual worker activity, lead activity (determined by on-chain actions related to the role)
            • How long videos take to be curated after creation
          • Gateway WG
            • It is unclear exactly what information will exist on-chain for this role, so I have not fully described this yet.
            • It should show the most expensive/cheapest gateways and the burning/reward relationships as a start.
@mochet
Copy link
Collaborator Author

mochet commented Jan 14, 2022

Examples of other sites/dashboards that are similar (none of these really describe what we need fully but can serve as inspiration):

Writing + things that can try to better describe some of what we're trying to tackle with JSS v2:

@traumschule traumschule added council minutes documentation Improvements or additions to documentation jsstats labels Feb 21, 2022
@traumschule traumschule mentioned this issue Feb 21, 2022
49 tasks
@traumschule
Copy link
Collaborator

Unlikely pioneer will support extensive member reputation (relevant for genesis block)
Joystream/pioneer#1190
https://github.com/Joystream/marketing/issues/80
Joystream/joystream#3419
Joystream/joystream#2927
Joystream/joystream#3012

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
council minutes documentation Improvements or additions to documentation jsstats
Projects
None yet
Development

No branches or pull requests

2 participants