Livepeer-Community-Node / Grant-Program

Livepeer Community Transcoder Node's Grant Program
10 stars 5 forks source link

Node Wish List: Streamflow Staking DApp #4

Open RaffiSapire opened 5 years ago

RaffiSapire commented 5 years ago

Streamflow introduces several changes into the protocol architecture that impact how token holders will stake in the network.

Context We built the Livepeer Explorer as a decentralized application to help non-technical token holders participate in the network by bonding their token towards token holders. Our goals were 1) maintain and build trust with user through intuitive experience that delivers information at the right time 2) from landing on home page to bonding successfully should take no less than 4 minutes. Josiah Savary built the explorer and he and I completed user testing.

We considered building a community-led explorer in summer 2018. We did user interviews and we created mockups. We decided not to push forward given the upcoming streamflow change. Now that we are about ~6 months from launching streamflow to main net, we want to start thinking about what the applications for token holders should and could be.

Changes to consider Tokenholders will be bonded to Orchestrators, not Transcoders. In reality, current Transcoders are doing what is similar to the Orchestrator role, and we are splitting this up. The new transcoder role will be "dumb hardware" and won't have to be connected 24/7 Orchestrators may want to have new, more formal campaigns beyond Forum Tokenholders will also be slashed if an orchestrator fails on a job, not just the orchestrator There will be 100 Orchestrators, versus 15 transcoders today Because of how Orchestrators are shifting from price per Gwei to a percent of overhead, the way token holders assess on pricing will change Parameters: round, unbending period, cost of transactions, rule of only bonding to one transcoder

Challenges to solve How do we prevent centralization around one orchestrator? How do we highlight orchestrator nodes that are benefiting the ecosystem? How do ensure that token holders can hold orchestrators accountable to do the work well? Staking is a new concept. How do we educate token holders on this concept in the DApp? How do you onboard a new user to the DApp? How do we provide customer service?

Steps to Submission Read the white paper and streamflow Review this UX sprint and user testing answers Get token and bond on Explorer to understand how the explorer app and user experience works today In your submission below, include mockups of your product and create milestones for your development. Include a detailed spec for the project along with time estimates. Questions? Jump in to discord and ask us anything! The whole team is here to help you along the way

mgarciap commented 5 years ago

Hi @RaffiSapire , I am very interested in the project and particularly in learming more about this new dApp to be developed. I've read the UX Sprint doc (New Token Holder Journey). Great insight. Thanks for sharing. Could you also share the mockups you created? Thx.

RaffiSapire commented 5 years ago

screen shot 2018-09-12 at 9 29 34 am screen shot 2018-09-12 at 9 29 31 am screen shot 2018-09-12 at 9 29 24 am screen shot 2018-09-12 at 9 29 18 am screen shot 2018-09-12 at 9 29 13 am screen shot 2018-09-12 at 9 29 04 am screen shot 2018-09-12 at 9 28 58 am screen shot 2018-09-12 at 9 28 54 am screen shot 2018-09-12 at 9 28 47 am screen shot 2018-09-12 at 9 28 23 am screen shot 2018-09-12 at 9 28 16 am screen shot 2018-09-12 at 9 28 02 am screen shot 2018-09-12 at 9 27 54 am

mgarciap commented 5 years ago

Hi @RaffiSapire, after working on the issue #1 and delivering https://livepeer.tools would love to move forward to the next challenge: the Staking dApp.

Livepeer: Streamflow Staking DApp

Abstract

The motivation behind the proposal is to maintain and build trust with user through intuitive experience that delivers information at the right time. A regular user should be able understand what Livepeer and staking is about in a very simple way. From landing page to be able to successfully participate in the network (bond to a delegate) should be fast and safe. The application will prioritize the user experience (UX).

Why is this tool required?

Currently, the only way a regular user can interact with the Livepeer protocol is through the existing explorer (https://explorer.livepeer.org) which is very useful but not straightforward to get started with. There are no other tools or dApps that can help token holders to easily view the network overall status and performance, how the different actors (Orchestrators, transcoders, delegates, broadcasters) are contributing. To understand the criteria for choosing a particular entity to stake with as well as the financial returns details, etc.

As a token holder:

Features / Pages

Wireframes

This is an initial set of wireframes to start a deeper UX/UI exploration with the Livepeer team. https://balsamiq.cloud/sxawgji/ppmiqs5

Delivery Approach, Estimates, and Timeline

Milestone Goal Scope Estimated time
1 Focus on the UI/UX development prioritizing the delegator (token holder) experience 1) Mockup & HTML/Styles implementation, UI Implementation. 2) Project initialization, repositories and tooling setup (CI/CD, testing, coverage, etc.), application workflow. 3) Home page / Dashboard, Show metrics, LPT price chart. 4) Connect with wallet modal, Metamask. 5) My Account, Show wallet balance, Status, My earnings charts, My Delegate (if bond to one) - Profile, My Delegate - Performance 3 to 4 weeks
2 Enable token holders to explore and browse delegates (Orchestrators) based on their performance and financial return 1) My Account, My Delegate - Reward and fees distribution, My Delegate - Total reward and Fees charts. 2) Delegates List, Delegate tiles details, Order and filtering, Bond / Unbond call to actions 2 to 3 weeks
3 Create the Delegate profile to allows token holders to evaluate them in more detail 1) Delegate details, Picture, Name and Status, Metrics - Total delegators, Metrics - Stake, Metrics - Missed reward calls, Info - Price and earning distribution (on reward and on fees), Average return per round chart 2 to 3 week
4 Enable delegators to create and update their profile TBD after the previous milestones with the Livepeer team TBD

Licensing: Open Source

The platform will be open-source under the MIT license or any other the Livepeer team would suggest. https://github.com/livepeer/livepeerjs/blob/master/LICENSE

Architecture

Front end

The application will be built using React and other libraries from the ecosystem, such as Redux, Immutable, etc. It will make use of the existing Livepeer tools and SDK.

Apart from coding best practices (unit tests, end-to-end tests, test coverage, code analysis coverage, etc.), the project will be configured to run in continuous integration and continuous deployment pipelines (Like livepeer.tools does).

Back end

Back end will be implemented as a RESTful API that will gather and store time series data, monitor the changes in the Livepeer smart contacts to notify token holders among other tasks.

The application will be built using Node.js, MongoDB, a e-mail service and other 3rd party services.

The application can be initially hosted on Heroku for high availability and security. To be determined with the Livepeer Team.

Development

Approach

Agile & Scrum with 2-week sprints. Every task published and tracked in github using waffle.io. Each milestone will end with a demo to the Livepeer team and a milestone delivery report.

Development Team

Role Member Availability Github/LinkedIn
Full-stack DApp developer Mariano Aguero Full-time https://github.com/mariano-aguero
Full-stack DApp developer Agustin Pane Full-time https://github.com/Agupane
Full-stack DApp developer Franco Victorio Part-time https://github.com/fvictorio
UX/UI designer Gabriel Rodriguez Part-time https://github.com/gabitoesmiapodo
Team Lead Manuel Garcia Part-time https://linkedin.com/in/mgarciap

Why this team?

Besides having the required experience and skill set developing these kind of dApps, the team has already spend a considerable amount of time learning the Livepeer technology stack (Smart Contracts, Javascript SDK and other tools) while developing https://livepeer.tools

Team Background

We are all part of ProtoFire.io. We are a team of engineers which helps token-based protocols and developer platforms accelerate growth of their ecosystems. By providing hands-on coding and contributions, Protofire specializes in supercharging developer adoption and network usage.

Protofire works exclusively with entrepreneurs who are builders of decentralized infrastructure protocols, applications, and ecosystems.

Our team has extensive experience developing DApps, from PoCs and prototypes to MVPs and more, just to mention a few:

App Description Repo
Livepeer Tools - Proactive notifications for token holders and Transcoders https://livepeer.tools - https://github.com/protofire/livepeer-alerts-frontend - https://github.com/protofire/livepeer-alerts-backend
AragonDAO - Payroll dApp for Aragon https://github.com/aragon/aragon-apps/tree/master/future-apps/payroll
FlightDelay - the first decentralized Flight Delay insurance on the Ethereum Blockchain. https://fdd.etherisc.com https://github.com/etherisc/flightDelay
Smart contracts and libraries for bzx.network, a protocol for next generation margin lending on 0x-standard relays https://github.com/bZxNetwork/bZx-monorepo
0x Launch Kit: frontend to launch a 0x relayer in under a minute with Launch Kit (WIP) https://github.com/0xProject/0x-launch-kit-frontend/tree/development
Monitoring and alerting system for MakerDAO DAI Stablecoin CDPs (Working Prototype) https://github.com/protofire/cdp-alert
POA Networks - DApp for proof of bank account (PoBA) attestation https://github.com/poanetwork/poa-poba
POA Networks - DApp for proof of physical address (PoPA) attestation for validators of POA Network https://github.com/poanetwork/poa-popa
POA Networks - A DApp to create token and crowdsale campaigns (ICO, TGE) on Ethereum compatible networks using open source Wizard. No coding skills required. Decentralized, open source, free https://github.com/poanetwork/token-wizard
POA Networks - Cross chain Bridge in NodeJS, an interoperability solution between Ethereum networks for native to ERC20 and ERC20 to ERC20 cross chain transfers https://github.com/poanetwork/bridge-nodejs
POA Networks - A DApp for POA Bridge, a cross chain bridge between POA and Ethereum networks https://github.com/poanetwork/bridge-ui

ProtoFire.io also maintains and contributes to open source projects like Solhint (Security and Style Guide validations for Smart Contract development) and eth-cli (a collection of CLI tools to help with ethereum learning and development)

Grant size

Given the agile nature of this project development and that there are many features to explore is that we want to propose to build a dedicated team. Not all the members will be working at the same time given their skill set, their allocation will depend on the specific project phase and the milestones.

Estimated average monthly burn rate: USD 30K. It can be split in DAI/USD and LPT. We are open to discuss.

Tasks breakdown, estimate, costs and allocation details can be found here: http://bit.ly/livepeer


Some Wireframes

These are a few wireframes, more can be found here. The goal is to have something to get the conversation started so we can work closely with trhe Livepeer team improving the UX/UI, running a few user experience tests and delivering in iterations.

Home Dashboard

image

Connect a Wallet

image

My Account

image

Delegate page (Orchestrator)

image


Mockups (very very draft)

Dashboard example

image

My Account example

account

Delegate (Orchestrator) profile example

delegate profile

RaffiSapire commented 5 years ago

Hi @mgarciap thank you for this proposal. Unfortunately, we are passing on this proposal. Reason being, without a history of building user applications that are working and that people use, we can't get comfortable with allocating a $30K grant to you all. The UX in some of the demos is ok but not amazing, and so if we are essentially hiring a dev team to outsource this app, I couldn't convince myself that this was the best way to go, especially because many of the projects don't have functioning applications. If you all end up building applications please do come back and let us know. We really appreciate the energy and would like to find a way to support your ideas, if there is another idea of how you all could contribute to the project, please do let us know.

mgarciap commented 5 years ago

Hi @RaffiSapire thank you for your reply.

I believe that I have miscommunicated our track history, capabilities and the work we have done. Probably because I included some Prototypes as part of our work.

Protofire is the blockchain unit of https://www.altoroslabs.com, a 17+ years old company with hundreds of projects delivered (there are testimonials in the website). We can provide our portfolio via email. Protofire has been working on Ethereum apps for 2+ years developing apps that really works for real users:

We are launching in a week the first Bidder Interface for the Gnosis DutchX protocol. The trading protocol will be promoted with 1MM usd worth of the pair DAI/ETH during 10 days (more information: https://blog.gnosis.pm/tagged/dutchx). Gnosis is one of the top blockchain companies with years of track history and they trusted in our delivery capabilities (Announcement and our interview video: https://blog.gnosis.pm/gnosis-ecosystem-fund-update-i-f64dfd185f33). We have signed a contract with MakerDAO, which I would say it is the TOP 1 crypto company in the world with use cases that impact real end-users with their DAI stable coin. We can't disclosure the project just yet. Also, by the end of March we are launching a very important component for our customer https://0x.org, another TOP project (we can't disclosure yet). Another great and big project is AragonDAO, hugh ecosystem, we've delivered the Payroll app (under auditing).

For many projects we start with very raw wireframes, and given that this project is core and didn't have detailed specs, our wireframes are just a few raw ideas. This project will require a commitment from the Livepeer team to design it and scope it out.

Probably this github thread is not the best way to have this conversation. I would be glad to jump into a call anytime and then write down the results here for transparency.

RaffiSapire commented 5 years ago

@xuan-yue, please post the app milestones here!

xuan-yue commented 5 years ago

@RaffiSapire

Staking App Milestones

Milestone No. 1: Research & Requirements

image

Milestone No. 2: Lo-fi UX

image

image

image

image

Milestone No. 3: Hi-fi prototype (current stage)

image

Milestone No. 4: Design handoff