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:
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! 💖
Original logo by @personz, processed by same.
Posted on Utopian.io - Rewarding Open Source Contributors
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
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 😄
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
Great, check out the installation guide
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
Community-Driven Witness!
I am the first and only Steem Community-Driven Witness. Participate on Discord. Lets GROW TOGETHER!
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!!!
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.
This nice post.. thanks..
You need a logo!
Watchu talkin about?! Don't you see that awesome hand made logo at the top?!
I see. He's original, yes :-)
This is a very exciting development. I'm really looking forward to seeing what this bad boy can do for me..
Hi
I started using your bot as of yesterday, its quite easy and simple, thumbs up for that and good work on it!
Im using it with a small group where we help eachother with upvoting posts, im wondering if in the near future there will be a resteem feature like with the voting (choosing specifik people to auto resteem their posts)
Brother upvote me plis
I tried it and everything works except that it doesnt vote.
-I added 3 users to the whitelist.
-I deleted all minimum requirements to vote
-I got enough points in my account to vote
I did test algorythms but it doesn't work.
-I manually gave it a url to upvote it. didnt work.
-I put the bot on 10 min
The weirdest is that I also don't get any error messages.
https://steemit.com/walkwithme/@hikmahfajar/take-a-closer-look-at-the-city-of-lhokseumawe-with-its-several-monuments-lihatlah-lebih-dekat-kota-lhokseumawe-dengan-beberapa-ec7fa0ed2caf3
I'm just an ordinary guy living in Russia. I write my blog about everything that can be interesting for everyone! Subscribe for my blog))
Self promotion could make your reputation a whale snack!
Your Reputation Could be a Tasty Snack with the Wrong Comment!
Thank You! ⚜
I object to this message. The idea of a "whale snack" is counterproductive here I think. You could just say that self promotion is not a good way to make friends, or a long term strategy.
Yeah, I have to change the comments and probably find someone to do a new post that gives examples and information to the current state of steemit. I probably need to see if I can get some multiple language translations on the same post.
Good idea :)