Step 1 to building a Proof of Concept for User Authority

in #utopian-io7 years ago

image.png

UserAuthority concept really has the potential to change Steem for the best, I believe it does! Introduced by @scipio in this post and that one, the UserAuthority is a new metrics working in a Google-like manner and determined by the UserAuthorities of the user's followers.

I won't get into too much details regarding why it is important to implement that, the two articles linked above will know how to convince you of that, I am sure. Rather, I will share the advancement of the project.

Step 1: creation of the followDB database collection



In order to be able to iterate and find the UserAuthority for 457,964 Steem accounts, we need to store the needed information in a local database. In the code submitted in this Pull Request , I read all the Accounts stored in the SteemData database, keep only the information needed, and store it in our local database collection followDB. We are storing the following information

  • id of user
  • name of user
  • followers an array of the names of accounts following the user
  • Storing the size of followers could be handy



To run this and get your own version of the followDB:

  • Go to the folder and create an empty data folder
  • Run mongodb in there
  • From node, npm install on the folder
  • From node still. node index

Next step will be to use this data to compute the UserAuthority.
Of course, we are now working on a proof of concept, so we take a shortcut using data from SteemData. On the production version, all data will be gathered from the blockchain.

Thanks @scipio for asking me to get onboard, we're going to make it real!

@stoodkev



Posted on Utopian.io - Rewarding Open Source Contributors

Sort:  

Nice work @stoodkev ! We'll make this happen! :-)

Do you still contend that the impact should be on rewards?

Yes, it's (currently) still my opinion the complete Steem ecosystem will benefit from vote_reward = UA * SP. And I also read you would (currently) reject this hardfork proposal of mine. But please regard the following:

  • my personal motto is don't be evil, and I always try to live by it;
  • I'm currently writing-up a new article called "How to turbo-boost the Steem blockchain"; in it I'll properly explain how the technical procedures UA is built-upon can also be used for speeding up data-retrieval of other blockchain contents, stay tuned! ;-) ;
  • we will first continue with technical development of UA. Then I will publish some UA-results (like top-10 rankings, top-10 weekly winners) for people to evaluate its usefulness. Next, I'm hoping to embed UA into the Utopian-IO voting metrics, but before that will be implemented I want to test-drive UA by comparing it with previous Utopian-IO votes (per voting-batch I want to see if the UA mechanism could improve Utopian's voting weights on an ordinal scale: which post was best, 2nd best, etc.);
  • if and when UA-JS is successfully deployed within Utopian, and/or other tools, I will then publish a somewhat formal HF proposal, and in its article I will try to mathematically and sociologically elaborate on expected community behavior. If I can "shoot a hole in it", I won't formally propose a HardFork regarding rewards (UA * SP);
  • I encourage you to follow along, and in the mean time keep neutral with respect to UA's applications and implications;
  • and PS: it's not up to me, nor you, anyway to make a community decision about my HF proposal!

Yes I've seen that somewhere before 🤔

Sure, I'm interested in any extra "intelligence" on the blockchain and ways to summarize activity, markers for suspicious or attack activity, etc. I'm following the project and look forward to what you do.

Of course the community has the say, but I have found in the past that the public debate is worth something too. Don't seem to be too many debating you on this. If I can shoot a hole in it too you'll be the first to know.

I'm actually trying to get the debate going! Please DO try to shoot a hole in it, mathematically and/or on anticipated behavior. It was your comment "be realistic" (regarding technical implementations) which pushed me forward on how to actually implement it natively steem-wide (via hashing the result index and instead embedding the hash for consensus).

Awesome 😆 I'm hoping to spend some proper time on it in the next while.

excellent work. It is a good first step. Please note that you are essentially creating a one dimensional index per person.

Extending that concept leads to categorical truth networks. For instance a network describing, authorities on comedy would not necessarily have any relation to a network describing authorities on physics - yet each person could have their own network definitions uniquely valid to them. A person having a high correlation for two network categories implies a SUBJECTIVE unity of those two categories in the mind of that person. A high correlation between two categories across a group of individuals implies an OBJECTIVE unity of those two categories for that group.

Keep that in the back of your mind as you craft the algorithm for the single dimension case. It is likely that the more general multi-dimension algorithm can be implemented without paying the full cost of the extra dimensions by using clustering similar to sparse matrices.

https://steemit.com/speakfreely/@dsonophorus/i-decide-what-is-or-isn-t-fake-news

Aahhhh, someone who actually understands matrices! Cool! :-)
PS: we are developing UA currently in the slowest possible technical environment - nodeJS - in order to blend-in well with existing APIs. For nodeJS, which I like a lot btw, is not performing "really well" on IO due to its asynchronous and non-blocking nature. But well, if we can make it work here, we can make it work..... (fill out the blanks).

Interesting. Yes, I am very keen to see the resulting data from this and more people with like minds working together for more improvements.

I'm really pumped about this. I think it's brilliant. Let me know if you need any help with dev work, I'm a software developer with several years of experience.

You are welcome indeed! :-)
Have a look, here's the brand new UA-JS repo we just got started (if you want to get involved, please contact me at Discord, the Utopian-IO chat server (invite: https://discord.gg/Pc8HG9x) and look me up there: @scipio ;-) )
Please note: I've written a step-by-step implementation procedure we need to follow strictly!

Update: I added the "implementation plan" of ua-js in the README.md

Hey @stoodkev I am @utopian-io. I have just upvoted you at 22% Power!

Achievements

  • WOW WOW WOW People loved what you did here. GREAT JOB!
  • You have less than 500 followers. Just gave you a gift to help you succeed!
  • Seems like you contribute quite often. AMAZING!

Community-Driven Witness!

I am the first and only Steem Community-Driven Witness. Participate on Discord. Lets GROW TOGETHER!

mooncryption-utopian-witness-gif

Up-vote this comment to grow my power and help Open Source contributions like this one. Want to chat? Join me on Discord https://discord.gg/Pc8HG9x

great work guys!
iam really thrilled to see how this is going to look like!
If you need help you know where to find me.
(sadly i can not work with mongo, just cant get my head around it ...)
Yours
Jan

Thanks! I ve started with mongo just for this work and yea, its not that intuitive when you re used of working with SQL queries but I think I'm starting to get it =)

Thank you for the contribution. It has been approved.

You can contact us on Discord.
[utopian-moderator]

This is a brilliant approach.... Keep up the good work....

Thx, follow along!

This is interesting. The thought that a users stake is also affected by their popularity might be something of an improvement on the model we currently have. Are followers going to be stake-weighted as well in your model, i.e. their stake will be a factor in determining the followed user's UserAuthority? I think this should be a consideration, as there are bot accounts with 6-7k followers that I don't think should have a wider voice as compared to real people.

Yes, you might want to check my two other (original) UserAuthority (UA) articles, in which I explain the math (probability distribution) backing UA.

I have no idea what this means... what the hell is a mongodb??? Does this affect me... am I still a real person?

mongoDB is the name of a database system ;-)
MySQL is a well-known relational database management system (RDBMS) and mongoDB is of another type: a NoSQL database.

I have no idea what any of that means. I write, to me this is a typewriter that lets me correct mistakes

Awesome post! I'm glad to see so many people working on this idea. I think we need checks and balances on steem. The check on steem power (bought power) would be User Authority (trust power?). You might have seen the post that I recently posted that talks about some other ideas. It's passed its payout period so not trying to spam you or anything. Just thought you might enjoy reading my ideas. https://steemit.com/steem/@littlejoeward/fixing-the-reputation-score-and-eliminating-spam-a-follow-up-to-user-authority

Good luck implementing this! I wish I could help more!