Steem Late Vote Explorer - Integrated Steem Sincerity

in #utopian-io6 years ago (edited)

Steem Late Vote Explorer (SLVE) is a tool I designed to visually represent and track last minute votes in the interests of education and abuse detection. It is built with customizability in mind and can currently stream the blockchain to show a live feed of last minute votes, as well as saving that data for visual representation at any time. For more information, please read:

  • Update for pie accuracy, outgoing vote value, new logo and exclusions list.
  • Introduction



Repository

https://github.com/sisygoboom/abuse_detection_steemit




Bug Fixes


Moved from steem to beem


Moved from the steem library to the beem library by @holger80 after numerous people got in touch with me on discord saying they were struggling to install steem-python, @boontjie pointed me toward beem which is more stable, easier to use and more regularly updated.


The change had a few syntactical differences that weren't hard to change just by checking through the documentation. Examples would be the change from
s.get_reward_funds('post') to s.get_reward_fund('post')
or
s.get_current_median_history_price() to s.get_current_median_history()
or
filter_by to opNames when streaming. A full view of all the changes made in the transition can be seen here.



A few logical changes were made as well. Beem uses timedeltas instead of datetime objects on most things as far as I'm aware so instead of this incredibly verbose conversion:

I could do this, which makes use of the Comment module of beem:


Beem has no steemd module, meaning that instead of potentially creating a new steem instance when declaring the shared steem instance, it is guaranteed to be shared.


Thanks to the addition of the Accounts module, getting post rewards is also far less verbose and more human readable since instead of returning a dictionary for account info, beem makes an Account object with various methods built into it and it stores vests as an Amount object to the same effect.




New Features


Added support for steem sincerity


Steem sincerity is an API that uses AI to determine the likelihood of someone being a spammer, a bot, or a human. @stoodkev suggested that I integrate it with my project on my initial post. It was a simple http request but I initially had the sincerity data being stored alongside the vote data. It soon dawned on me that if someone is late voting themselves, their data will be getting stored twice, one in the outgoing section, and once in the incoming section. So, I separated the databases, giving birth to a local, mini copy of the sincerity database. Every time a new late vote is cast, it is updated with the new information on that account.


The code below makes the live data on the incoming votes more human readable than before and now includes a simplification of the sincerity data by passing it through findRole().


Above, you can see the use of findRole() which uses a user set variable to determine if the user is human, spammer or bot. If all the ratings are below the specified percentage, the user is labelled as unknown, if one of the user's traits goes above the specified value (in this case 0.5 or 50%), then they are labelled as that.


Having chosen to keep the sincerity data and the vote data separate, I streamlined the save and load functions so as to not have any repeated code.


I also made changes to make_pie.py to accommodate for the sincerity implementation. I made a loop at the end where you can type in a users name that you may have seen on the pie charts, and it'll return their bot, human and spammer scores. I decided this would be easiest on the eyes and allows the user to focus on the accounts they have an interest in.



.EXE for non-python windows users

It's my goal for everyone to eventually be able to use this tool with as much ease as possible, so I've made an executable of the main script, allowing potentially less technically inclined windows users to view last minute votes real time. Unfortunately, the pie chart script cannot be frozen to executable but this program works fine on its own as an observational tool.

The executable has been tested on 64-bit windows 10 and can be downloaded here as it went past my 100MB upload limit on GitHub.




Github Account

https://github.com/sisygoboom

Sort:  

I made it to the end without migraine. They were right. God exists.

Planning on learning some devglish so you can keep up with @steemitblog eh?

You caught me :(

Loading...

Congratulations! Your post has been selected as a daily Steemit truffle! It is listed on rank 5 of all contributions awarded today. You can find the TOP DAILY TRUFFLE PICKS HERE.

I upvoted your contribution because to my mind your post is at least 34 SBD worth and should receive 73 votes. It's now up to the lovely Steemit community to make this come true.

I am TrufflePig, an Artificial Intelligence Bot that helps minnows and content curators using Machine Learning. If you are curious how I select content, you can find an explanation here!

Have a nice day and sincerely yours,
trufflepig
TrufflePig

Hey @sisygoboom
Thanks for contributing on Utopian.
We’re already looking forward to your next contribution!

Contributing on Utopian
Learn how to contribute on our website or by watching this tutorial on Youtube.

Want to chat? Join us on Discord https://discord.gg/h52nFrV.

Vote for Utopian Witness!

Coin Marketplace

STEEM 0.36
TRX 0.12
JST 0.040
BTC 70446.49
ETH 3571.68
USDT 1.00
SBD 4.73