Join GitHub today
GitHub is home to over 40 million developers working together to host and review code, manage projects, and build software together.Sign up
Node Wish List: Alert Notification for Tokenholders - 500 LPT #1
Currently, token holders have no way of knowing if their transcoder they bond to fails to call reward, and therefore you may miss out on inflationary token as a token holder without ever knowing it. In addition to knowing whether a transcoder calls reward or not, I want to know how much LPT I earned from inflation in yesterday’s round. I want to know this information every day.
I’d like to receive an alert notification every day that tells me whether my transcoder called reward or not, and how much token I earned from inflation. I would like to receive this as an email notification.
This is a broad request for a proposal, and creating a spec is the first step of the process.
To apply, comment on the issue.
Alert Notification / Staking Digest Spec
Grantee: Adam Soffer
~10 hours of work per week over the course of 7 weeks for a total of 70 hours. This is subject to change pending the results of user interviews.
Great, thanks @adamsoffer. We are pleased to grant you 2,100 LPT to complete this application as you have laid forth. We can allocate it by milestone as you have laid forth in the engineering milestone link, and it will be paid bi-weekly as it has been. Thank you Adam for this amazing preparation and proposal that has been thought out and clearly you put in a lot of work already.
Please let me know if and when you'd like to check in for feedback in Jan.
Livepeer: Alert Notification for Token Holders
The motivation behind the proposal is to deliver a positive change to the experience of token holders engaged in the Livepeer network.
The first objective is to contribute to the Livepeer ecosystem an open-source implementation for a pro-active alert notification experience that will help LPT token holders to be updated and understand how the transcoders they are delegating the tokens to are performing in near real time. The second goal is to proactively engage LPT holders on how much they’ve earned from inflation during the last days. The third goal is to proactively re-engage LPT holders who are not delegating yet or stopped delegation, so that we can positively impact target participation rate.
The service will enable token holders to sign up to receive notifications using their e-mails and/or telegram user and their Ethereum addresses . All the process will prioritize the user experience (UX).
Why is this tool required?
Currently, token holders have no easy way of knowing if the transcoder they bond to fails to call reward, and therefore one may miss out an inflationary token as a token holder without ever knowing it. Furthemore, token holders want to know how their LPT tokens are performing by having insight information on earnings.
I like to receive an alert notification every day that tells me whether my transcoder called reward or not, and how much token I earned from inflation. I would like to receive this as an email and/or telegram notification.
Note: In a later release, a user will also be able to choose to get notified about other metrics, including network status and behaviour (e.g., total bonded, total supply, bounded transcoder performance, top 10 transcoders, inflation rate, etc.).
Licensing: Open Source
The platform will be open-source under the MIT license.
The application will be built using React and other libraries from the ecosystem, such as Redux, Immutable, etc.
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.
Back end will be implemented as a RESTful API that will store the alert information and monitor the changes in the Livepeer smart contacts to notify token holders.
The application will be built using Node.js, MongoDB, a e-mail service, a Telegram Bot and Livepeer.js. The application will be initially hosted on Heroku for high availability and security.
Delivery Approach, Estimates, and Timeline
A similar Monitoring and Notification Tool Developed by Protofire
We have developed a very similar solution for MakerDAO collateralized debt position (CDP) holders. It allows a CDP holder to monitor his/her CDPs and be notified when they go out of a collateralization ratio range and run the risk of being liquidated and incurring a penalty fee of 13% of an outstanding debt.
$10k worth of LPT, split into chunks paid out over achieved deliverables.
Agile & Scrum with 1-week sprints. Every task published and tracked in github using waffle.io. Each sprint will finish with the publicly available demo or report.
Given that we are new to the Livepeer development community (Livepeer protocol, libraries and tools), our team has already started researching and implementing the application's main components (i.e.: backend integration with Livepeer through Livepeer.js, DB storage, frontend setup). The main tasks to come are related to UX/UI and the Telegram bot.
The project development status and plan is publicly accessible in this waffle board.
Development progress up to this date (12/28/2018): 40%
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.
Our team has extensive experience developing DApps, from PoCs and prototypes to MVPs and more, just to mention a few:
ProtoFire.io 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)
@adamsoffer Thanks for taking this on, and for the organization around the development process and milestones. I was unable to access the invision mockups - do you have any screenshots you could share here or elsewhere?
How "explorer integrated" is this feature? I think it will be interesting to try to thread the needle between a good in-flow UX for users onboarding to this service after they delegate, but also not introducing another infrastructure dependency on the explorer itself. Looking forward to the progress!
@mgarciap Thanks for the great proposal. I agree that an independent implementation that can cater to the user requests with value add features will be great for the ecosystem. The CDP-alert app is a great example of a single-purpose tool with clear user value.
One related idea is that I know transcoders themselves are looking for a reliable 3rd party alerting system to signal to them that reward was not called in the current round automatically. Let's say 1-2 hours after the round begins, if their node hasn't called reward yet, they would get a telegram message. Not sure if this fits in with your vision, but I'm sure you'd have some eager (possibly paying) users pretty quickly for this.
@dob Sorry about that - I didn't realize those invision links weren't public. You should be able to view them now without having to sign in to invision.
Note that one of these mockups was designed under an assumption that a decent number of delegators are bonded to multiple transcoders from multiple accounts and want to receive a single daily digest email with earning totals across multiple bonded accounts. If we find out through user interviews that in reality this is not a common use case, or that delegators prefer to receive individual daily email alerts for each bonded account (akin to what makerscan's alert system does for cdp alerts) then we can scratch that mockup or introduce it later on.
With regards to how "explorer integrated" this feature is, the only direct integration inside the explorer codebase would be the email sign up form as well as a call to action to it. However, even the form can live inside a standalone app if that's more desirable. The two major infrastructure dependencies would be a Node server + Redis database for scheduling/persisting email jobs (using this redis-based queue package), and a Sendgrid account for storing email addresses and delivering emails. Here's a flowchart on how I envision this working.
@dob Thank you for your feedback.
Regarding your comment
It fits the vision quite well. The application architecture was thought to be completely flexible so that other features such as
Each notification alarm will include the the right calls to action given its context (i.e.: direct link to call the reward).
So, we can definitively add a new actor to this app: the transcoder.
There might be features overlapping the Streamflow Staking DApp so we need to think it carefully.
Have a Happy New Year!
PS: One step further on the proactive monitoring path is to act on behalf of the user (we are currently developing a similar solution targeting MakerDAO CDP holders). The user will grant permissions to a wrapper contract (only for very specific functions) that this 3rd party solution will use to perform certain automatic tasks. This way the transcoders won't even need to follow up the alarmas and perform the
HI @mgarciap, The proposal is well written, and in theory we'd be excited to fund this with the same grant amount (2,100 LPT) as allocated to Adam. However, many of the DApps you link to as examples of other work do not function. When you go to the links, they say application error, or its a demo with dummy data, etc. It is important that the grant for the application funds both the creation but that any team or individual is interested in being a long term maintainer incentivized by the initial grant amount. Could you explain why applications like the CDP Alert, the 0x Dashboard, MakerDAO DAI app are not maintained?
The list that I've provided contains some developments related to DApps, PoCs and prototypes, as it was described.
Most of the prototypes and PoCs are not maintained. They are not meant to be for us. It's OSS free to use and continue development by anyone.
The list was used when we won a Grant from AragonDAO and it got outdated. Thank you for your feedback. I'll updated it next time.
We choose projects we believe in to build a long term commitment. Livepeer is one of them.
Please let me know if you have any additional question. I would be glad to jump into a call or provide more information here.
Its important that independent grant recipients intend to maintain the alert application over time, fixing bugs, updating and making it valuable. We're looking for partners who will be incentivized not by future payment (we wouldn't have continuous grants to keep up maintenance) but instead by the existing token they earned and will continue to earn inflation on. You would have many users depending on you to maintain and fix. From what I can tell from the above applications and explanations, we're not completely aligned in that way and so we are declining to grant you for this proposal.
Thank you very much for the time and attention here. If there are other opportunities that you feel are more aligned with your business we're happy to discuss.
I would like to introduce you to the Livepeer Alerts MVP (alpha): https://livepeer.tools
As described in the proposal #1 (comment), we've developed the following features:
A few screenshots
Token holder - account summary
Telegram Bot interaction
MVP alpha. It might have bugs. Wording should be revised. Branding can also be replaced.
Previous comment reply
@RaffiSapire , getting back to your last comment, I would like to address your concerns.
I totally agree and we are willing to do so, mainly the 'adding value' and many more tools.
The grants always help to finance the initial development. When the solution is ready there are a few options such as 1) Hand it over to Livepeer to host it and maintain it (we can ofcourse help), 2) Find an incentive for us to host it and keep developing it. It will depend on the case and we are open to both.
It is hard to explain case by case from the list of prototypes, proof of concepts and dApps we've shared in a Github comment. Sorry for that. We can chat about it.
We are very excited with the Livepeer project. We've developed this MVP at our complete risk without knowing if we would get the grant or not. It helped us to learn a lot (and also contribute to the existing tools: livepeer/livepeerjs#305).
I find this MVP to be the first step. We are ready to move on towards the Streamflow Staking dApp design and development where most of the code produced in the MVP can be used :)
Hi @mgarciap thank you for sharing this! Seems like you're on to something the community will enjoy using. Thank you again for your participation and perseverance. We are happy to award you with a grant for 2,100 LPT, which will be disbursed in increments over the next 6 months.
M1 - 500 LPT - granted today
Please let me know the ETH address to send the 500 LPT.
Thanks and have a nice weekend.
Besides the initially proposed scope of work we have added an Epic Story suggested by @dob :
The disbursement plan looks good to us.
Hi @RaffiSapire , we have finished M2 (there is only one issue, protofire/livepeer-alerts-backend#18, which was out of the scope. It is a contribution to the livepeer JS library and it is pending to be integrated. We can't do anything about it).
As for February 19th we can consider the maintenance and improvements phase to be started. Given that the agreement is already here, would you like me to remind it via email so we don't make this issue thread unnecessary longer?
PS: our LPT address is 0xABC04058E20c9CBA4f360244648FEDF30CeBc3B4
@RaffiSapire We're lookin good! The MVP is feature complete. I was actually planning on sharing a link this week, but The Graph api endpoint I published which I'm relying on to look up past earnings is down. The Graph team is looking into this, and as soon as that's resolved (hopefully within the next few days) I'll throw up a link in here
In the mean time, here's the repo if you or anyone is interested in digging into the code. https://github.com/adamsoffer/token-alert
I'm still waiting on a fix for that Subgraph API, but I wanted to share a link in the meantime. The staking alerts application, as laid out in the above spec, can be found here as a standalone application: https://livepeer.studio/staking-alerts.
I plan on testing the application on this domain with the community, implementing any feedback and ironing out any potential bugs before integrating with the Explorer itself (if that's still desirable). Also, FYI I'm thinking about using that livepeer.studio domain as a hub for sharing all future Livepeer ecosystem experiments, products, and tools I build with the community :)
Staking Alert Application Features:
A couple notes:
I will follow up as soon as the API is back up and running.
Thanks @RaffiSapire! The next steps to complete this grant would be to onboard users to the service from within the Explorer. I included a mock-up of a signup form integrated directly inside the explorer. Alternatively, we can simply link off to the standalone application. Thoughts here?
@mgarciap thank you! I've processed M2 to 0xABC04058E20c9CBA4f360244648FEDF30CeBc3B4 . https://etherscan.io/tx/0xd47b1e98f887fa9da2f013216ecc87401cdb8e9b4b7b4a38efa1e39172a8b7aa
In terms of maintenance for the M3, we would like to understand whether it makes sense to continue to maintain the app and continue the grant. How are you all doing for usage, and what KPIs would you like to work towards each month in terms of # active users, open rate, or other stats you feel represent this being a product that is continuing to benefit the community?
Hey there, I just discovered this thread and wanted to share my Telegram Transcoder Watcher bot (https://t.me/TranscoderWatcher_bot) since it seems to cover a lot of the requested features. The bot has been running without any problems since ~round 1275. Some screenshots can be found here: https://forum.livepeer.org/t/telegram-bot-transcoder-watcher/609
Initially, I've developed the bot as a notification service for my Transcoder. But as a long time staker, I was getting tired of checking daily if the transcoder claimed the rewards or decided to increase the reward cut - so it was my goal to create a tool that everyone can use to get notified about transcoder events.
If you subscribe to a transcoder (or multiple, there is no limit), you will get notified about the following events:
Whenever possible, I include the transaction link so you can be sure that no incorrect information is sent. The bot is not relying on the livepeer explorer, it reads the events directly from the smart contracts (using web3 subscriptions)
Difference to the other two solutions
I took a slightly different approach then the other two solutions: There is no need to enter your wallet address In order to use my Telegram bot. My reasoning for this was privacy. I can imagine that especially the large holders do not want their email or any other information linked to their wallet address.
Of course this means that the bot can't provide details about the amount of LPT the subscriber has earned, but I tried to mitigate this by including the total LPT earned and the total stake. So by knowing how much you're staking, you can calculate/estimate the amount of LPT earned during the round. The notification currently looks like this: Rewards claimed for round 1296 -> Transcoder 0x525419... received 114.2 LPT for a total stake of 33117 LPT (keeping 0.23 LPT due to its 0.2% reward cut).
Now I've never asked for a grant (I didn't even know this grant existed) and developed the bot purely as a free tool for the community. But of course I wouldn't mind a small LPT tip if the bot is deemed a worthy contribution :)
Hi @RaffiSapire ,
About the M3, the goal was
Another feature that we were considering are:
@RaffiSapire given your relationship with the community, do you see any pain, need, etc that would bring more value?
referenced this issue
May 8, 2019
I´m Cristian Malfesi. I am leading Protofire's contributions to Livepeer.
I'm glad to update you about the progress of the Livepeer.tools app. We made several changes, fixed a few bugs and we are currently working on some improvements.
Work in Progress
There are other ideas to improve Livepeer.tools that I will share soon.
I will keep you updated about the progress.