Posts

Proposal: SteemWorld Support

avatar of @steemchiller
25
0 views
·
8 min read

Introduction


As I want to continue my development on SteemWorld and the lack of funds/resources has always been a huge hurdle for me, I think it is a good idea to use the SPS for funding my work in future. To be honest, as many have read in my last post, there is no other way for me to be able to continue on my current path and I may have to shut my services down, if this here should not work out.

How often in the last years did I ask myself something like: 'When will you finally make your next post and earn something for all that, what you have built here over the past weeks?' I can tell you, that has never been a good feeling for me. So, after the work was done (sometimes even in then midst of all), I was on a run to write an article about my work in a language that is not my mother tongue, just to be able to pay my servers and costs of living in general.

I am the only one who is working on SteemWorld (front & back-end) and I hope you can imagine that there cannot have been much time for other things in my life over the years. My wife, family and friends can write a book about this.

Over a year ago I told them that it is just a matter of time until I will be able to make a living of it. Now I am still sitting here in my room, thousands of people use my tools daily and my bank account is still unable to show me a green light.

I love to develop things for Steem, which make our lifes easier, and deeply in my heart I hope that the opportunity given here will be able to change my financial status finally.

Funding


I request 28,105 SBD for 365 days.

Since I am the 'team' and there are no others, who could continue the work on the front-end in case something unforeseeable happens on the server, I cannot always predict when exactly a new feature will be available on the site. The same is true, if I see something in my code that needs my attention.

As a perfectionist, my way of getting things done does not always go straight to the goal without taking care of all that, what is calling for help around me, but in the end, it is always way more pleasurable for me to solve upcoming issues directly. There is no deadline for building SteemWorld, especially not as long as I am on a one-man-mission, but I think the SPS can help me to better organize my planned tasks from now on.

The finished result will always be a stable, high quality product. Additional funding finally can bring it all to a level, on which I really can be satisfied with the results. It enables me to work more freely and at the same time more goal oriented, because it takes away the well known fear of not being able to make it through the next monthly bills.

Did I tell you that searching for transfers by using the "Search Transfer" tool on SteemWorld was way faster, before I removed some huge database indices? The only reason for removing them was the lack of available SSD space on my main server.

The same is true for my coming SDS (Steem Data Service). Until now I could not continue to work on it, just because I don't have enough disk space on that server. I would love to have it on a separate dedicated machine, because this would greatly extend the limits (especially for testing purposes, full blockchain-replays) and the whole development experience would be much more satisfying for me.

I don't want to create multiple proposals over the year and decided to make one for each 365 days, so that I can finally fully focus on getting the planned things done. Of course, I will post updates periodically to inform you about my progress, but I won't take rewards from the pool anymore and will decline the payout on all of my related SteemWorld posts.

Main Goals


SMT & Steem Engine Support

I already prepared my codebase in the past weeks to be able to work with tokens of different types and a big part of what is to come is already done. After finishing the delegations and market orders for SETs (Steem Engine Tokens) in the next few weeks, I will start to prepare SteemWorld for working with SMTs.

As I did not find time yet to fully explore the coming APIs and new possibilities with SMTs, I will update this post later and add more details on what exactly is about to come.

Mobile SteemWorld Version

I know that many users of SteemWorld are waiting for a mobile/responsive version and this will besides SDS (after SMTs) be one of the main points on my list for the coming months.

Separating Page Features

Currently nearly all features on the site are compressed like a swiss knife and are only reachable via the main page. I want to change this in future, so that we can create an account by visiting steemworld.org/tools/create-account or see only the recent account history (operations) directly on steemworld.org/@user/history. It would then also be possible to work with URL parameters, so that for example when someone wants to make a transfer to a specific account, he could open a link like steemworld.org/tools/transfer?to=[target_account] and the given fields in the transfer form would be automatically pre-filled.

Interactive Post Editor

This is a nice to have but not really essential feature for SteemWorld. There are already great platforms like SteemPeak available that enable us to work with templates and all that stuff, therefore (and because a day has only 24 hours) I currently do not see a high priority for spending time on the editor.

In any case, first I need to switch to a responsive layout and wait for the SMT hardfork, because otherwise there would be too many later adaptions to be made. So, it will take a while until I will think about this feature's relevance again.

Here are some previews from my related posts:

Animated GIFs

SDS (Open Source Steem Data Service based on Node.js)

Finishing the SDS is my main goal for the coming year. I did not talk much about it in my recent posts, but a huge part of my available time in the past year went into developing SDS. As long as I am working on its base and full data replays/compression methods are being tested, I will have time for working on the SteemWorld front-end, especially on the features mentioned above.

For most SteemWorld users the SDS is not really important to know, because it is more of a developer/statistics/investigation tool that can be used locally as well as for a public web service. It lays the groundwork for the future and coming SteemWorld features, which I cannot build with my current setup or any other available data service.

SBDS and Hivemind are good solutions for working with the blockchain data in a non-consensus way, but I want to provide a more configurable solution with compression and possibilities for own database structures in mind.

Earlier this year I wrote:

As I mentioned in my last post, I'm currently working on my Open Source Steem Data Service and I've already made great progress with it. The old (current) SteemWorld back-ends both run on PHP (one dedicated machine for serving the account data requests coming from steemworld.org and one simple host for providing the page itself and for acting as kind of a backup storage). The new back-end will use the SDS and it will be based purely on Node.js, which outperforms Apache/PHP with ease as shown in the following diagram:

https://www.hostingadvice.com/blog/comparing-node-js-vs-php-performance

I guess some of you can image that it's kind of an adventure to convert the existing back-end logic from PHP to asynchronous JS, but I already can tell you that it's worth it without any doubt. Future is here and I'm finally working with JavaScript on the client and the server side without the need of switching between different languages anymore.

SDS includes never seen compression techniques, so that the blockchain can be stored in a super compact format. There will be different compression modes available (full/lite), so that each of us can decide which one to use by changing the setting in the SDS config file.

Some of you may know the XZ compressor (based on LZMA), which on a level 9 (extreme mode, param '-e') setting compresses blocks to approximately 1/8 of the original size. With SDS in compression mode 'full' it is possible to compress them to a size that is ~ 0.63 times the size of the best XZ compression result. When the time has come, I will make an additional post about the SDS to explain how it all works.

Some facts:

  • Runs on Linux, Mac and Windows

  • Free to use, will be released under MIT license

  • Can be started locally or as public web service

  • Enables each of us to analyze and work with the Steem blockchain data in a simple and very efficient way (SQL and custom queries can be used too)

  • Syncing can be done via available public instances (very fast) or regular Steem nodes

  • Provides automatic downloading of already parsed data (no need to start from block 1)

  • No need to setup any database services (all file-based -> no layers in between -> lightning fast on SSD)

  • Offers configurable datasets (if you just need a db with all transfers, you can run an instance with only the desired parser module 'transfers' enabled)

  • Also virtual operations can be parsed (or downloaded from one of my servers that will also provide all parsed datasets)

  • JS developers can easily implement own parser modules (just add a custom script in the modules path and the service will call the parseBlock, parseTransaction, parseOperation and parseVirtualOperation methods within your script for each block)

  • Highly compressed data (some crazy stuff and a bit of magic involved here)

  • Can be used as REST API: //[domain or localhost]/sds/get_block/1 => returns block 1 as JSON /sds/get_blocks/1-1000 => returns 1000 blocks (1 to 1000) with one request in second(s)

  • Custom APIs that make use of the parsed data could look like: /sds/get_followers/steemchiller => returns my followers ...

Open Source


Since quite some time already, I am in the process of preparing my code to be published on GitHub. As I want to deliver a clean and secure solution for the whole Steem community, it's hard to say exactly, when SteemWorld will be completely open source, but I am doing my best to get it done until Q2 2020.

Closing Words


Of course, I cannot predict the future and there might come small additions/changes to the planned features in the coming months. I will keep you updated on my progress periodically and, as stated earlier, I will decline payout for my SteemWorld posts as soon as I get enough votes for this proposal.

If you think that I bring value to Steem and you want me to continue my development, please vote for my proposal:

View all proposals on:


https://securityheaders.com/?q=https://steemworld.org

Thank you for supporting my work!