Most Productive Steemians (featuring guest author @cristi)
This article was written by Guest Author (Developer)
@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 for hinting to the idea for the statistics and to
@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
This article was written by Guest Author/Developer @cristi - Cristi Vlad, Self-Experimenter and Author