Let me start by saying that I'm planning on regularly posting patch notes to steemit to keep the community informed of changes to steemstats.com. Please, if you feel posts are happening regarding the project too often, don't upvote. The primary purpose of these posts is to inform users of new features as they are released, and will soon be syndicated (via the steem blockchain) to an "updates" page within steemstats.com itself.
With that being said, onto the updates!
Revamp of the "Activity" section
The activity section (default section) is slowly morphing into a tool for curation of content. It is probably not the best name for it still, but the site is evolving and will be reorganized in the future.
Currently this section shows you two things:
- Any root level post that you've voted on.
- Any post made by a user you are following.
This allows you to keep tabs on the topics you've upvoted, as well as content by people you follow that you should consider upvoting.
You can also click the "inspect" button on any of these posts, which is the button I've highlighted here in the red box:
Clicking this link brings up the Vote Inspector window:
This window has had a few changes made to it:
- Colors have been added that indicate their relative weight. If you've played a certain MMO in the past, you might recognize the color scheme.
- A legend has been added to the top to explain the highlight colors.
- Any accounts that you are watching will appear in a smaller table above the main table. I found myself scrolling forever to try and find my votes all too often.
- The accounts in the bottom table list all votes, chronologically, including your watched accounts.
The combination of these two screens, "Activity" and the "Vote Inspector" make for a powerful tool. Now not only can you see new posts by the accounts that you follow, but you can see posts that you've already decided to cast your vote on.
Networking rewrite and a load balanced steemd cluster
The largest thing I've been working on over the last few days is how steemstats speaks to the blockchain. It got out of hand quick and was using a massive amount of bandwidth if you were following a lot of people. I've since rewritten the logic and it's consuming much less (but still a lot!). If you're interested in the steps:
- [Page Load] Calls
get_api_by_name follow_api
to retrieve the proper API - [Page Load] Calls
get_followers account_name
to get a list of accounts the account is following. - [Page Load] Calls
get_account_history
with a limit for each account you're following to retrieve recent posts - The
posts
are parsed and displayed on the page, and none of the above calls are ever made again. - When a new block is found, it compares the new
posts
in that block to the cached list of followers on each of the accounts. If it finds a match, it loads the post usingget_content
and displays it on the "Activity" section.
I'm hoping that steemit/steem#192 once complete will alleviate me from having to do any of this in the future. If I knew more about the steem infrastructure, I'd probably take a crack at resolving the issue myself.
Load balanced nodes
The other thing I did over the past few days was follow @xeroc's lead and setup a load balanced steemd cluster. I'd like to thank @xeroc again for letting me use (abuse?) his API servers for a while - until I got my own setup. To accommodate this expansion of services, I've upgraded the infrastructure behind steemstats as well. With the growth of the tool and it's real-time nature, I can only imagine I'll have to upgrade again if steemit keeps growing :)
I'm incredibly thankful that I haven't had to completely pay this cost out of pocket and that the community (via steemit) has helped fund this expansion.
Steem Power Growth Calculations
Thanks to @razvanelulmarin for pointing this out - the way I was calculating/sampling growth of steem power was being influenced by all sources of steem power (including curation and blog rewards). So there is now a large warning at the top stating that the numbers may be inaccurate if you receive a payout. I'd recommend refreshing the page if the numbers get out of whack.
Random parting thoughts & minor updates
- The entire site is now HTTPS only, finally got around to setting up an SSL certificate!
- If you follow or unfollow someone on steemit.com, within 5 seconds the steemstats "Activity" tab should update to reflect it.
- There was a bug where the people you ignored were showing up as people you were following. That's fixed.
- I moved who you are following into a new tab under "Activity". Still needs work!
I know I said this last time, but I'm planning on focusing a lot more on steempress in the coming days. Let's hope that happens, and then expect an update on that end soon!