List of Steem active users (#0)steemCreated with Sketch.

in #utopian-io6 years ago

Steem Active Users

Github repository

Introduction:

These are regularly updated lists of active Steem users. These were initially made for the My Steemversary bot but anyone is allowed to use this data for his own project/Dapp on the Steem blockchain. Each time a different filter was used on the previous list thus 3 filtered lists were gathered.

I made this list public because the initial list of Steem user contain over 1 million accounts and the majority of them are inactive so it would take quite a long time and energy to go through them all. It's hard to define what's meant by an active user so I made my own criteria (if you have a better suggestion, please let me know). I encountered this problem in both of my projects (My Steemversary and Steem Voice) because I don't have a server. Using multiprocessing, I manged to cut the time to almost 3 hours for each filter.

Scope:

These lists were collected over 3 days starting on December/21. Each day I used a different filter and I left the code running overnight.

Findings:

The first step was to gather the list of all the Steem users so I used steem-python'sget_all_usernames tool to do so which left me with this list.

Then, I applied the first filter which removes the users whom didn't comment in the last two months. Here's the second list.

Next, I used @themarkymark's Global Blacklist API to gather all the blacklisted users from the following communities:

  • BuildAWhale
  • SteemCleaners
  • Utopian-IO
  • Redeemer
  • MinnowBooster
  • Actifit

I removed those from the list. Here's the third list.

Finally, I applied another filter to the list. This filter removes users whom didn't upvote a post/comment in this month. Here's the final list.

Results:

The initial list started with 1184109 users. The first filter left me with 600772 users almost 50.7% that of the initial list.

The second filter left me with 577491 users which is 96% of the second list meaning that 23281 of those users are blacklisted which is almost 2% of the initial list.

The third filter removed 277242 users leaving me with just 300249 active users that's hardly 25.4% of the total users!

I made a graph showing the different numbers:

Conclusion:

Besides the usage of these lists in a project, these results could also give us an idea about the future of Steem. People are abandoning Steem now more than ever. There's is hardly 25% active users. If we want Steem to succeed we have to bring more people to the platform. I started this bot to reward users for staying and I encourage you to do something for Steem. Make a project, create an app or simply tell everyone you know about Steem. Any help would be appreciated.

Tools and Scripts:

The following python code was used to generate the lists:

from steem import Steem
from steem.account import Account
import json, time
import threading, psutil 

s = Steem()

def filter(lastvt):
    intdate = '2018-11-18T00:00:00'
    intdate = time.strptime(intdate, "%Y-%m-%dT%H:%M:%S")
    date = time.strptime(lastvt, "%Y-%m-%dT%H:%M:%S")   
    return(date>intdate)

def work(listusers,v):

    localdata = s.get_accounts(listusers)
    for i in range(len(listusers)):
        if not(filter(localdata[i]["last_post"])):
            v.append(localdata[i]['name'])
    return v

with open('allusers.json', 'r') as f:
    users = json.load(f)
    print('Done Importing')

jobs =[]
if __name__ == "__main__":
    count = len(users)
    print (count)
    fifs = int(count/10000)
    other = count%10000
    c = 0
    c2 = 0
    c3 = 0

    for j in range(fifs):
        start_time = time.time()
        a1=[]
        a2=[]
        a3=[]
        a4=[]
        a=[]
        jobs.append(threading.Thread(target=work, args=(users[c:c+2500],a1,)))
        c=c+2500
        jobs.append(threading.Thread(target=work, args=(users[c:c+2500],a2,)))
        c=c+2500
        jobs.append(threading.Thread(target=work, args=(users[c:c+2500],a3,)))
        c=c+2500
        jobs.append(threading.Thread(target=work, args=(users[c:c+2500],a4,)))
        c=c+2500
        for i in range(4):
            jobs[c2].start()
            c2 = c2+1
        for i in range(4):
            jobs[c3].join()
            c3 = c3+1
        a = a1+a2+a3+a4
        for x in a:
            users.remove(x)
        print(count-c,' Users are left')
        print("--- %s seconds ---" % (time.time() - start_time))

    for j in range(other/227):
        start_time = time.time()
        a1=[]
        jobs.append(threading.Thread(target=work, args=(users[c:c+227],a1,)))
        c=c+227
        jobs[c2].start()
        c2 = c2+1
        jobs[c3].join()
        c3 = c3+1
        for x in a1:
            users.remove(x)
        print(count-c,' Users are left')
        print("--- %s seconds ---" % (time.time() - start_time))

    with open('finaluserss.json', 'w+') as d:
        json.dump(users,d)

Microsoft Office Excel was also used to generate the chart.

Proof of Authorship:

I think that the code above is enough proof :)

Sort:  

Hi @mysteemversary

A tricky and misleading topic to delve into, but I'm glad to see a new account delving into this arena.

As stated by other commentators, the active/unique user count is tough to get a definitive answer on, and is likely much lower.

Perhaps filters on the condenser used would give more insight into human/bot posters - if not a standard UI condenser, then likely scripted?

Sadly the contribution lacks in many areas, including depth of analysis and visualizations, and I think more work on slicing and presenting the data could have been added.

Thank you for contributing to @utopian-io, I hope to see further work in the future.

Asher [CM - Analysis]

Your contribution has been evaluated according to Utopian policies and guidelines, as well as a predefined set of questions pertaining to the category (ms20)

Thank you for your review, @abh12345! Keep up the good work!

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

You published your First Post
You got a First Vote

Click here to view your Board
If you no longer want to receive notifications, reply to this comment with the word STOP

Do not miss the last post from @steemitboard:

Christmas Challenge - Send a gift to to your friends

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

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

You received more than 10 upvotes. Your next target is to reach 50 upvotes.

Click here to view your Board
If you no longer want to receive notifications, reply to this comment with the word STOP

Do not miss the last post from @steemitboard:

Christmas Challenge - Send a gift to to your friends

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

Hey, @mysteemversary!

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

Get higher incentives and support Utopian.io!
Simply set @utopian.pay as a 5% (or higher) payout beneficiary on your contribution post (via SteemPlus or Steeditor).

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

Vote for Utopian Witness!

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

You got your First payout

Click here to view your Board
If you no longer want to receive notifications, reply to this comment with the word STOP

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

Thank you so much for sharing this amazing post with us!

Have you heard about Partiko? It’s a really convenient mobile app for Steem! With Partiko, you can easily see what’s going on in the Steem community, make posts and comments (no beneficiary cut forever!), and always stayed connected with your followers via push notification!

Partiko also rewards you with Partiko Points (3000 Partiko Point bonus when you first use it!), and Partiko Points can be converted into Steem tokens. You can earn Partiko Points easily by making posts and comments using Partiko.

We also noticed that your Steem Power is low. We will be very happy to delegate 15 Steem Power to you once you have made a post using Partiko! With more Steem Power, you can make more posts and comments, and earn more rewards!

If that all sounds interesting, you can:

Thank you so much for reading this message!

Congratulations @mysteemversary! You received a personal award!

Happy Birthday! - You are on the Steem blockchain for 1 year!

You can view your badges on your Steem Board and compare to others on the Steem Ranking

Vote for @Steemitboard as a witness to get one more award and increased upvotes!

Coin Marketplace

STEEM 0.16
TRX 0.15
JST 0.029
BTC 57910.39
ETH 2452.33
USDT 1.00
SBD 2.35