Most Productive Steemians (featuring guest author @cristi)

Words
329
Reading
2 min
Listen
Play
10y

This article was written by Guest Author (Developer) cristi@cristi, and 50% of the Author Rewards will go to them

The article contains both information for developers, as well as interesting statistic graphs for everyone else

I wanted to see the numbers so I appealed to Python...

Here I'm going to present a classification of the most productive users on steemit sorted by the number of their posts. I also parsed the blockchain data for user reputation and posting rewards.

I'd like to thank razvanelulmarin@razvanelulmarin for hinting to the idea for the statistics and to furion@furion for some tips regarding the code. First I'll discuss the code, then we'll look into the numbers. This data is retrieved as of September 14, 2016.


The Code

  • using rpc calls to a public node; retrieving all user accounts; creating 3 dictionaries - one for post counts, one for reputation, and another one for rewards:
from steemapi.steemnoderpc import SteemNodeRPC
rpc = SteemNodeRPC('ws://node.steem.ws')
import csv

allauthors = rpc.lookup_accounts('', 1000000)
postdict = dict()
repdict = dict()
rewdict = dict()
  • counting author posts; if the author's post count is higher than 700 (blogposts and comments), it goes into postdict:
for author in allauthors:
    postcount = rpc.get_account(author)['post_count']
    if postcount > 700:
        postdict[author] = postcount
  • retrieving reputation and post rewards for the authors in postdict:
for author2 in postdict.keys():
    repcount = rpc.get_account(author2)['reputation']
    rewcount = rpc.get_account(author2)['posting_rewards']
    repdict[author2] = repcount
    rewdict[author2] = rewcount
  • creating .csv and saving results for all three dictionaries in separate files
writefile1 = open('productivesteemians-posts.csv', 'w', newline='')
writer1 = csv.writer(writefile1)

for pauth, pcount in postdict.items():
    writer1.writerow([pauth, pcount])

writefile2 = open('productivesteemians-rep.csv', 'w', newline='')
writer2 = csv.writer(writefile2)

for rpauth, rpcount in repdict.items():
    writer2.writerow([rpauth, rpcount])

writefile3 = open('productivesteemians-rew.csv', 'w', newline='')
writer3 = csv.writer(writefile3)

for rwauth, rwcount in rewdict.items():
    writer3.writerow([rwauth, rwcount])

Wrapping it all up, you can get the code (altogether) from my github. Use it at your discretion.


Current Stats

To better represent the data I removed a few non-human users and negative-reputation and low-rep users from the list (like isaac.asimov, cheetah, itay, etc.). Sorting in descending order for posts, here's how the data looks like (tabular view):

And here's a plot view of the data:

I think it's reasonable to consider the total number of posts (blogposts and comments) as relevant statistics. Looking only at the number of blogposts or the number of comments would be interesting as well, but that's the topic for another statistic.


If you liked this article, follow the guest author cristi@cristi


This article was written by Guest Author/Developer cristi@cristi - Cristi Vlad, Self-Experimenter and Author

Most Productive Steemians (featuring guest author @cristi) | Ecency