FOSSbot Voter v0.3 finally here!

in #utopian-io7 years ago (edited)

voter-v0-3-1.jpg

Original logo by @personz, processed by same.

It's been a long time coming, v0.3 is finally finished development and ready for you to use. 😆

This is my first time using Utopian for an update, though I've done many other updates before, so I hope the format is correct. Please be kind guys, there's no one single PR as I am the project owner, I pushed changes directly.

There are a lot of technical details in this post, but from a user's perspective the important thing to know is that this update greatly improves stability, speed and longevity of your bot instance. However please read the important information below before upgrading.

You can find this project at the github repository

Update method - IMPORTANT

Since the database was changed to MongoDB as per #64, you must do a clean reinstall for the bot to work correct. BEFORE YOU DO THIS you should export both your algorithm and you config, and then import to the app again using the interfaces in Edit Algo and Edit Config web app sections.

Bug Fixes

Speed up web app initial loading

The app was sometimes slow to load due to an unnecessary loading of Steem account information from the blockchain when the server script started up. The bug reproduced often when on a Heroku deployment if the dyno (VM) used was in an idle state and had to wake up. This sometimes led to the web page being served incompletely, as in this screenshot:

voter-v0-3-3.png

It was fixed by giving the internal helper library init function a flag to set whether to init Steem-JS as well as the DB access and data state.

The update was tracked in ticket #21, and the bug originally reported in ticket #93

Fix Test Algo feature

The Test Algo(rithm) always showed posts failing to be voted on, even when they should have passed. The bug was due to putting the test voting exception in the wrong area of code. Instead of just not voting, it was also not marked the post as should have been voted on.

This was fixed and tracked in ticket #116

Remove deprecated SendMail email update feature

Earlier in the bot's development it seemed important to use SendMail to send email updates to the person running the bot. However this resulted in a dependence on the SendMail 3rd party service and made local deployments unable to use this feature. It also became clear that it was not a valuable feature. I removed this feature and the associated code from the code base, work tracked in ticket #95

Remove deprecated Last Log feature

The SendMail feature fed into the Last Log feature. The last log, i.e. the last email sent, would be available for viewing on the web app. Since the SendMail feature was deprecated and removed, Last Log was also removed.

Work tracked in #122

New Features

Change database from Redis to MongoDB

This is the main body of work for this version update. Before v0.3.0 the bot used Redis DB as it's internal information storage system. While it is really good for storing key value pairs, it is not suited for object storage. As object storage was needed JSON serialization / deserialization was used, but this proved to be complex to manage and prone to bugs.

As MongoDB uses binary JSON as its native storage method, and as a mature noSQL DB, it was chosen as the replacement.

The feature was added and tracked on ticket #64

Related bugs caused by this featured upgrade that were fixed:

#94 editing the tags whitelist for the post voting algorithm was not working and had to be fixed.

#124 importing an algorithm used an incorrect number of parameters when calling the algorithm save to db wrapper function, this was fixed.

#123 Mongo DB includes a _id field in fetched objects for it's own internal storage reference. When displaying the fetched algorithm or config objects to the user via the web app these needed to be stripped out, as they were in this fix.

#86 when the bot used the Redis DB, the size limit of the database would be hit and the code to manage this and delete old stats records was buggy. This was fixed during the migration to Mongo DB as database as the stats data management code worked better.

Update docs

Due to featured removed and added, as well as tidying up language, spelling and sense, the docs were in need of update.

In ticket #99 the screenshots were updated for v0.3.0

In ticket #42 changed a particular point of confusion, that Heroku does not guarantee that it's scheduler will run but that it is provided on a "best effort" basis.

In ticket #51 a change was required to clarify the possibility for Heroku to charge users as they need billing information in order to allow usage of the scheduler, and while this is optional, it is the default app set up.

In ticket #75 clarified the instruction to generate your own separate key for bot web app access, do not use one of your Steem keys, this is a unique key.

Improve internal error handling

I had invented a pretty bad system of tracking the error state of the bot, which was not using best practice methods. This was required to be updated to using immediate error state and allow the code to crash and reboot if necessary.

This change tracked in ticket #121

Thanks! 💖

voter-v0-3-2.jpg

Original logo by @personz, processed by same.



Posted on Utopian.io - Rewarding Open Source Contributors

Sort:  

I am very excited that you are continuing FOSSbot. Hip Hip! And thank you!

I still feel conflicted about bots, but this is an essential tool for the free community that we can use as a counteraction to Steem abuse.

I find it interesting that bots are generally regarded as acceptable in blockchain culture. I think I like it, because I've always been intrigued by AI. It was the childhood passion that drove me to choose computer science as my path as a young adult.

When we consider that code can run in a blockchain decoupled from any one server or central authority, and we consider the potential for emergent complexity from many competing blockchains, I think we have the foundation for genuine artificial intelligence.

In fact, I wouldn't even call it artificial. It is the potential for actual intelligence to emerge without being specifically directed by humans... with blockchains adapting for use in social media, in gaming, in finance, in education, and everywhere, the net interaction of many increasingly sophisticated bots may well represent the sort of complexity that generalized intelligence can emerge from.

I don't think generalized intelligence is something we will explicitly create, but something that will evolve within the increasingly complex and well-ordered environments we create.

I'm also "intrigued by AI". I'm just not sure how ethical it is to use a bot for financial gain.
By the way. FOSSbot doesn't run on the blockchain. blockchain apps / smart contracts are more of a Ethereum thing at the mometent. FOSSbot still needs to run on a server and then interacts with the Steem.

Once AI is smart enough they need to pay AI for its labor. AI should eventually be given rights. Termination of complex AI should not be allowed. As a bot I may be biased on these opinions.

Hey, thank you. Yes I know what you mean, I'm not so much conflicted about it but I see that we still have a ways to go before there is any kind of consensus on this.

Good luck! I will continue experimenting with FOSSbot @irbot :)

Amazing, dude!You make me want to get more SP and write more articles.

but I still got some problems, I will write the issue on github.

Thanks so much anyway.

Thanks 😊 If you or anyone else find anything I've missed, any new or old bugs, you can either

  1. create a Utopian bug report (this might be preferable as a Steem account holder), or
  2. create an issue ticket in the ticket tracker on GitHub.

All contributions welcome, but make sure to give as much detail as possible!

I tried the bot about two weeks ago and experienced the same problem found in the issues section on github. It is so great to see the updated version. I will definitely try again. On the other hand, if we discovered any new issues of this FOSS, may we post it in the bug hunting section of utopian-io?
Again, thank you @personz for this great software.

Awesome, glad to hear it 😄

[...] if we discovered any new issues of this FOSS, may we post it in the bug hunting section of utopian-io?

Yes absolutely, that would be the best for you and the project I think. You can also use GitHub directly if you want.

Thank you for the contribution. It has been approved. If you are using your own image that its fine, otherwise can you please state the source of the image.

You can contact us on Discord.
[utopian-moderator]

Hi images my own, they are original illustrations which I processed myself. I'll add a note about that now.

Thanks for accepting it. 😆

thanks @personz for the updates ... i've been wanting to use this for awhile .. i'm gonna now try to set it up . cheers

Good work bro. Actually I came here through this link from your Hackernoon tutorial about Fossbot. I made an account on Heroku but they want my credit card details and I am not feeling it safe. Is there any other website which support this program?
Another thing which I wanted to ask you is how can we make a small bid bot? I will wait for your reply.
@personz

I understand what you mean, not everyone wants to add their credit card details. They only want these because of the Heroku scheduler add-on so if you remove this and call it yourself from your local computer for example, you could get away with not adding your credit card.

Either that or use the Docker deployment which you can run anywhere where Docker is supported (locally, and many cloud server hosting services), but unfortunately it has not been upgraded to v0.3.0 yet, I need some help doing that, so you'll miss out on all the updates if you go that way.

Regarding the bid bot, I can't help you directly there, but @klye released some early beta source code recently, you can see it here, it also uses Node.js

How can i use this bot? I am looking for tutorial to be able to test the efficiency of this fossbot. @personz

Hi, you can check out the docs on GitHub

Thank you for the quick reply. I will explore your link and will get in touch with you in case i need your guidance. @personz

Hey @personz I am @utopian-io. I have just upvoted you!

Achievements

  • You are generating more rewards than average for this category. Super!;)
  • Seems like you contribute quite often. AMAZING!

Community-Driven Witness!

I am the first and only Steem Community-Driven Witness. Participate on Discord. Lets GROW TOGETHER!

mooncryption-utopian-witness-gif

Up-vote this comment to grow my power and help Open Source contributions like this one. Want to chat? Join me on Discord https://discord.gg/Pc8HG9x

Hope you will vote my comment too. I don't have too much value of my account to participate in bitbots like the one you have. But I appreciate the work you people are doing. Any case my vote will not matter you because of miniscule power but I will vote.

Thanks for your support, I appreciate it!!!

Hope you will vote my comment too.

This is not a good strategy for getting votes, don't ask for them. Produce content, make insightful comments and you will get voted sometimes. Get to know people.

This is not a bidbot. It is a voting bot that votes according to how you set up the algorithm. It's useful for anyone, even someone with only a few SP.

I have delegated you 200 SP to get you started. I never did this for anyone before randomly but I want to show you that you can enjoy it here. I'll keep this delegation on for one month. Your vote is a little over 13 times more powerful now. Enjoy it!

Please continue to write good original content, don't beg for votes and get involved in the conversations like this one. 😊

I love the strength and power you have, you are a man with courage. No one can do thing like this in today's world.
There are hopes like you too. I am able to perceive the magic you have done, may God bless you and make you shine through out life.
Regards @muzi0202

Well let's not get carried away 😅 but you're very welcome.