SteemWorld Update / SteemLogin / Improved Data Caching
In this post I want to inform you about a few recent changes on SteemWorld. There is currently a lot happening in background, but I won't list all things that I have been working on in the past weeks in here and will only talk about the major/visible updates today.
SteemLogin replaces SteemConnect
As SteemConnect will no longer be available in future and Futureshock (@futureshock, @future.witness) filled the gap nicely by providing an improved fork of the project on https://steemlogin.com, SteemWorld is now also using SteemLogin as replacement.
I also added direct links to SteemLogin and Steem KeyChain in
'Settings -> Security', so that newbies can now easier explore these great Steem tools with a click:
By clicking on the
'Steem KeyChain' link it will automatically open the related Extensions Store for your browser (Currently only works on Firefox and Chromium-based browsers like Chrome and Brave).
Caching Account History
A long time ago I planned to implement some kind of caching logic for the retrieved Account Operations, so that clients who run the Dashboard page multiple times a day do not need to request the same data again and again from the connected RPC nodes. Of course, caching the operations themselves would not work for all accounts, because the browsers default storage quota is way to small and 5 MB would be exceeded quite easily for most users.
I now have developed a solution that stores the data grouped by date (hourly) and only caches the required data for building the Monthly Rewards overview. For example, instead of 30 single
curation_reward operations, which happened within the same hour, I group them by type (
1 = curation_reward) and timestamp (without the minutes part), so that the 30 operations will result in just one entry in the cached data. This saves a good amount of storage space and the browser's quota will not be exceeded.
Additionally, I needed to find a way to cache the data for multiple but not an unlimited number of accounts, because otherwise the storage quota would be exceeded when using the Dashboard page for many different accounts. I'm still playing around with it to find the perfect settings, but for now it is set to cache the data for a maximum of 10 accounts per user. When opening the Dashboard, there is an automated clean-up routine being executed, which detects the by the user mostly watched accounts and removes the more irrelevant cached data automatically.
The result for a quite active account looks like this:
|Total Size (MB)||Transferred (MB)|
|Before (without caching)||16.63||1.99|
|After (with caching)||3.64||0,45|
Implementing this was not as easy as one might expect, but I think the result speaks for itself. Imagine how much less data need to be requested from the Steem nodes in a day alone for all SteemWorld users... ;)
As stated before, I'm still working on optimizations and minor bug fixes, so it might still come to some unexpected results in the next few days.
Tools now better reachable from Dashboard
I updated the Tools section on the Dashboard page, so that we can reach all relevant tools directly from there with a click:
Exciting times ahead, more features and tools to come soon... ^^
Hopefully I will find time to finally run my own full Steem RPC node in the coming weeks. Also there is a new fully-decentralized Steem Chat with end-to-end encryption in the pipeline ;)
All rewards from this post go to @knitrias to further support the great Knitrias Project.
Have a refreshing week and Steem on!