PEP-7: The Sand Walker -- a Pocket reward explorer

Attributes

  • Author(s): SkillZ team
  • Recipient(s): SkillZ team
  • Category: Reimbursement
  • Fulfills: RFP-8: Node Monitoring Tools
  • Related Installments: none
  • Asking Amount: 15,000 POKT

Summary

We would like to ask the community and the DAO for funds for the development and hosting of the Sand Walker, a POKT rewards calculator with a user-friendly interface.

Abstract

We open-source, improve and host the Sand Walker, an explorer for POKT rewards based on live data from the blockchain.

Budget

15,000 POKT one time payment.

Rationale

We have chosen to focus on a single aspect of monitoring and provide a definitive answer to “How many POKT did I earn over this period of time?”, answering RFP-8: Node Monitoring Tools.

In the spirit of Node Pilot, we’ve chosen to build an user interface for the POKT Rewards Calculator to lower the barrier of adoption for running POKT nodes by enabling anyone to access aggregated chain data, as a source of truth, to compute rewards for their nodes over a time period of their choosing.

Community members running nodes won’t have to rely on someone technical to get quality information about their operations, no matter which product or method they chose to deploy their nodes, solving a major pain point we’ve observed in the community.

Also in the interest of user experience, we provide hosting for this application. No local install, no CLI needed, anyone can enter node addresses and get information about their rewards; tools & code of the frontend to run your own stack will be open sourced.

The Sand Walker provides a summary of the rewards earned by a node with a monthly breakdown of all rewards with the corresponding block. We developed a frontend for the sake of accessibility, under the hood is a database filled by an instrumented Pocket node that is connected to the blockchain: the data we expose can be traced down to the blockchain.

Dissenting Opinions

We’re open to dissenting opinions. We built this because we needed it so we will improve it as we need anyway. If the community finds the POKT Rewards Calculator useful, we are open to opening the code, adding additional features and maintaining it online.

Deliverable(s)

Currently available:

  • Current Sand Walker frontend available at: https://sandwalker.sbrk.org/
    • Summary of rewards earned by a node,
    • By-month breakdown of all rewards with the corresponding block,
    • Currently uses a stalled database (with data up to block 24828),
    • Mobile-friendly web user interface.

To be delivered:

  • Open-source code (MIT ):
    • Python/Flask frontend built on top of a SQLite database,
    • Fork of a Pocket node with custom instrumentation that fills the database in real-time from the blockchain, there is no weird logic behind the computing of rewards, we directly use the mechanisms of Pocket nodes (this means it will automatically handle incoming DAO changes per block, or tricky logics and corner cases),
    • Tools and instructions to run your own stack (currently using docker-compose),
  • Features to come:
    • JSON/HTTP API that can be used to directly get the history of rewards of a node,
    • Ability to query history from a batch of addresses (currently, history can only be browse one address at a time),
    • CSV export,
    • Mechanism to offer a daily export of the database (SQLite), which will be helpful to anyone who wants to develop tools around, without having to set-up their own stack. This database will contain all rewards from all nodes from block 0 to the current block height at the time of the dump,
  • Hosting of the service on SkillZ:
    • Publicly available,
    • Real-time information from the blockchain,
    • Regular updates of the backend to follow Pocket’s changes (to ensure the instrumentation follows Pocket upgrades).

Contributor(s)

The SkillZ team.

Copyright

Copyright and related rights waived via CC0.

6 Likes

I think that a monitoring tool of this nature would be extremely beneficial to the network. And I would love to see more initiatives like this.

I can’t comment on whether the proposed cost is too much or too little as I’m not technical enough to build this myself. So, comments from other members of the community in that regard would be helpful.

Otherwise, I back the Skillz team to deliver a great product for the community.

@tdephuoc what kind of timeline are we talking about in terms of the deliverable?

3 Likes

Hello,

Thanks for the interest!

  • We can have it publicly available with real-time data from the blockchain quickly with the current set of features (a few days likely),
  • Open-sourcing it can be done quickly as well,
  • Developing & rolling-out features listed here would likely take 2 to 4 weeks (we expect most of the time there to be spend in providing a production-ready stack that can be started by anyone who wants to fiddle with it, or adapt it to other needs),
  • We are open to add features depending on demands/needs and feasibility,
  • Regarding the cost, it is estimated with a long-term maintenance in mind: keeping it up-to-date with new versions of Pocket (as it depends on Pocket’s code), ensuring the daily dump of the database is fine, having monitoring in place to ensure the data is real-time, etc.

At the current OTC price of POKT, I feel the ask is appropriate.

Ability to query history from a batch of addresses (currently, history can only be browse one address at a time),

With this feature you open up some interesting possibilities for monitoring a large group of nodes. I’d love to see some metrics around the group – like a simple dashboard that shows you how your node group income has done over all time and what it has done in the past 24 hours / 1 week.

Also what is very interesting is that you have ALL nodes data in your data base and can make comparisons! Show me how a node is doing vs. all active nodes in terms of rewards. That is super interesting.

I don’t believe the minting records on the Pocket chain tell you what relay chain ID was served, do they? Including the relay chain ID data would be interesting if possible since now that more chains are switching to paid, the rewards per node will start to vary based on chains supported.

In summary, I find this a useful tool and will support the funding. As a node operator, however, I’d find it more interesting if it operated like a real time dashboard I can monitor vs. a history of things that have happened in the past.

1 Like

This is great. Thanks for doing this guys. @adam made the point that this will be great for taxes.

I have no issues with the asking amount for the grant itself.

A couple comments:

  • Can you change the rewards text to POKT instead of PKT?
  • Seems to not work with an address in all caps.

I don’t believe the minting records on the Pocket chain tell you what relay chain ID was served, do they?

Looking at Pocket’s code, it is something that can be added easily (will have to rebuild from block 0 so it may take ~3 days to get it), but it is trivial to add, I’ll do it.

I’d find it more interesting if it operated like a real time dashboard I can monitor vs. a history of things that have happened in the past

The current setup is using a stalled database we’ve built for the POC, but this database will be populated in real-time when we deploy it to a production environment (tools to do your own live setup will be there as well) ; adding a real-time dashboard would mostly be a UI thing, I’ll check what javascript libraries can be used there.

Can you change the rewards text to POKT instead of PKT?

Sure! Sorry about this :wink: just fixed it.

Seems to not work with an address in all caps.

Yup, thanks! Fixed as well.