Just the Facts (EOS Proxy by eosratings.com)

in #eos6 years ago

EOSBPRATINGS

by @controllinghand

I thought it would be awesome to create a proxy that wasn't influenced by anyone. Just use the public data that is available to the entire EOS community. Things like BP validation provided by AlohaEOS. Things like Performance Stats provided by AlohaEOS/Teamgreymass/EOSTitan. And the value added tools rated by the community at the eosratings.com site.

Please check out the results here: https://eosratings.com/eos-bp-ratings-proxy/

Here is a little more on how the ratings work

BP performance

We collect the EOS BP Benchmarks from AlohaEOS site. They are part of the EOS Mechanics Research Group

  • Aloha EOS
  • EOS Titan
  • TeamGreymass

We assign 100 EOS BP Rating point to the best performing Block Producer. Then we assign a number between 1 and 100 to all of the other BPs. The formula we use is TopBP/OtherBP*100.

Say the best BP cpu execution time is 5ms and the next best BP time is 7ms. The second best BP would get 5/7*100= 71.43 points and so on for all the BPs that have a performance rating

Unfortunately not BPs get a performance rating because this is only giving to those BPs that have ever made it into the top 21 in the last 30 days. So, we give an arbitrating number of 50 points to all other BPs. We picked 50 because we have no way of knowing how well the BP would rate on the performance.

BP popular vote

Here we collect the total number of accounts that have voted for a BP. Instead of using the overall number of EOS votes that is currently being used today to select the top 21 BPs. We have decided to give more weight to those BPs have the most accounts voting for them.

Warning this could be an easy category to influence. If a few people wanted to they could create millions of accounts and game the system. And there is not much we can do to avoid this from happening. However, they not only would have to spend the EOS to create these accounts they would also need to make sure to keep refreshing their votes for all the wallets. I’m sure this could be automated as well.

But with the above said, we are not currently aware that this is happening today

Lastly, there are other proxies that are voting and I don’t believe that the number of accounts get counted in our numbers. This is something that will need to be looked in to more deeply to see if there is a way to address this.

The same point system is applied to this category. 100 to the top BP and a value 1-100 using the formula BP/TOP-BP*100

BP VAM

This is one category that we are very proud of. Our site already keeps track of the BPs that provide Value Added Tools to the community. https://eosratings.com/vam/

However, this too can be gamed if someone were to create multiple account and vote for their own tools. Again, if this is brought to our attention we can take appropriate measures to address this issue.

The same point system is applied to this category. 100 to the top BP and a value 1-100 using the formula BP/TOP-BP*100

BP Validation

Validation is based on accessibility of public website and validation of bp.json file in accordance with the EOS BP Information Standard.

We gather the data from https://www.alohaeos.com/feed/bpvalidate

This checks for

  • Website
  • BP Info
  • Ownership
  • Code of Conduct
  • Public API
  • Public Peer

If a BP has all of these then they get 100 points. If they only have 5/6 they get 83 points and so on down to 0/6 0 points.

BP Global Disbursement

If a Top BP based on the above 4 rating categories resides in a country they get 100 points. However, if their is a second BP in the same country they receive less points -20 so the 2nd BP would have 80 points. If there is a third they would receive 60 points and so on.

The overall goal of this category is to pick as many different countries to make EOS more globally disbursed.

We might add another sub group to this category for BPs on a continent. But for now we are only focusing on countries

After we total up all 5 categories we sort the overall points an select the top 30 BP candidates for the proxy.

Sort:  

I really like how this is coming together. I wonder though, how do you go about collecting the data you're using? Is it supplied by the BPs or do you go out and obtain it? What does the process of "We collect" look like?

I gave some ideas in a twitter thread recently on why I think @eosdac brings value and deserves a vote. I also didn't see mention of our open-source tools such as the EOS Custom Token Explorer which you can see an example of it running here for EOSDAC: https://explorer.eosdac.io/ or the Member Client demonstrated here: https://members.eosdac.io/ That's an example just from my personal perspective working with eosDAC, but I'm sure other BPs have value adds (especially many of the backups who don't get much attention) which may be hard to notice as well.

Maybe people put more value on centralized applications running on websites over open source code they can run themselves locally? Eventually our DAC tools will be available for and powering many DACs around the world. That, I think, is really valuable. You can track our progress here: https://github.com/eosdac but again, that's just me talking about what I'm involved in. How do we get everyone talking about everything they are involved in? When we start measuring things, people will make decisions based on those measurements, regardless of if all (or even enough) data has been captured. That's some challenging stuff.

Thanks again for putting this information out there and trying to help people make informed decisions regarding their EOS votes.

Hi @lukestokes,
Let me start out by saying I really like all you have done for the EOS community and Steemit. Now on to your questions.

  1. I get data feeds from Alohaeos, who are part of the EOSmechanics team. I have updated the site and talk more about this. I'm not sure when is the last time you visited? https://eosratings.com/eos-bp-ratings-proxy/
  2. So, performance, popular vote and BP validation I get from the above.
  3. The VAM I get from the eosratings.com site database that I run.
  4. As for the Global Distribution I get from the get_producers API https://api.eosnewyork.io:443/v1/chain/get_producers.
    Basically, I have multiple scripts I have created in python and dump to a mysql database then do some simple math to get the point system. It's not too complicated and could be explained over a cup of coffee.

Currently EOSDAC is ranked 12th on my list

So....

Thank you for these links and tools. Awesome progress. I have added them to the VAM. Welcome to the Matrix :-).

Keep up the great work and I hope the EOS community continue to get stronger by the moment.
Thanks,
~S

Excellent reply, thank you.

I should have clarified that I was more interested in how you collect data on things that are not easy to obtain via existing data feeds. For example, me commenting on this post may have directly impacted the knowledge readily available to you which then impacted eosDAC's rankings.

How many other projects across how many other BPs might similarly have unrepresented projects are attributes?

This is a big challenge for any of these BP ratings systems since they have the potential to send both noise and signal. If the "best" BPs are the ones that spend time contacting ratings groups to convince them of the value they bring (instead of actually putting that time into bringing more value), then we get a repeat of the types of tactics that lead to "triple A" rated mortgages, the subprime mortgage crises, and many similar centrally-controlled financial system debacles we're trying to avoid in this space.

The "controlling hand" may end up being those who run ratings websites. ;)

Thanks again for a great reply and the work you're doing to help voters and proxies make better decisions. It's not an easy task at all, but with openness, persistence, and continued effort, I think we can all continue to improve and, hopefully, get more voter engagement going to get the best BPs securing the chain.

wow excellent point. I think only the VAM is manual when it comes to adding the tools. I have no way to automatically add tools that BPs create. However, if we proposed that BPs add to their bp.json all the tools they have created I could automate that piece.

  1. Performance does not require communication to me. Although not all BPs get a performance rating because they are not in the top 21 slot. I was working on getting performance stats from the test network so we could get an idea how a BP would perform if they did slot into the top 21.
  2. Popular Vote does not require any communication to me. This is available via the chain
  3. VAM does require communication to me. But like I said above if we could get this added to the bp.json we might have something here :-). The rating system on the tools is automatic though.
  4. Validation does not require any communication to me. This is up to the BPs to keep their bp.json files upto date and websites.
  5. Global location. This is also up to the BPs and doesn't require any special communication to me.
    So... with that said. If we could somehow have the tools BPs are creating in the bp.json or into a contract on the chain then I could be 100% out of the picture. Which I would really like :-).
    Just some thoughts. Thanks for the input.

That's a fantastic idea! I just created an issue ticket on the bp.json repo for it.

I agree, it seems only the WAM is a bit subjective / manual. I agree, this could be improved. As a proxy voter, I think about the deliverables a BP supports as being quite important beyond just technical excellence as a block producer.

Unfortunately, in my 2+ years of DPoS experience, I have not yet seen a good way to measure technical excellence when it comes to block production. It's easy to become a popularity contest or a "how many whales do you know" activity. Measuring the technical competency of a block production team at doing the actual job of running reliable, secure nodes and properly evaluating code changes and (importantly) protocol consensus changes as they come up is not something very easy to score. When Block One is pushing out emergency security updates in closed conversations, for example, the wider world doesn't know which BPs have the expertise necessary to evaluate those change requests and respond to them in a timely manner. Due to the nature of those situations, the details of how they are handled should not be made public because of responsible disclosure and the importance of getting consensus witnesses patched and upgraded quickly before a vulnerability is exploited. It also means voters don't have all the information needed to make well-informed decisions.

Again, I applaud your efforts to improve the transparency of the whole ecosystem.

I just update some of my views on your post to github. I think it would be better if we had someone create a smart contract much like the eos-proxyinfo. https://github.com/AlohaEOS/eos-proxyinfo
Here are some of my thoughts:
A smart contract that BPs can use to register tool/app/education/resource etc. I'm thinking this could be something in the vain of how proxy account register today
I would like to see something like

  • EOS account name: Your EOS account name. If a BP should be the one that they use to produce blocks so they get the credit.
  • Project Name: This could be the name of the tool,app,topic etc...
  • Description: A short description of your project intended to be shown in listings.
  • Website: An http or https URL to a website, Reddit post, etc. with more information about your Project.
  • Logo: An http or https URL to an image with the size of 256 x 256 px. This should be the logo for the project not the BP's main logo
  • Project Status: Is this in Dev, Beta or Production
  • Category: This is optional I have some categories I have already created located here https://eosratings.com/top-tools/ for example, explorers, wallets, voting, resources, outreach, education, testnet, key managment, identity, account creation, chain contracts, and a host of monitors and trackers.

Congratulations @controllinghand! You have completed the following achievement on the Steem blockchain and have been rewarded with new badge(s) :

Award for the number of comments

Click on the badge to view your Board of Honor.
If you no longer want to receive notifications, reply to this comment with the word STOP

Do not miss the last post from @steemitboard:

SteemitBoard Ranking update - Resteem and Resteemed added

Support SteemitBoard's project! Vote for its witness and get one more award!