Steem Flag Rewards Project Update and Milestone
What is Steem Flag Rewards
Steem Flag Rewards Program incentivizes the anti-abuse community. Our project rewards those who are tracking and taking action against abuse.
Let’s make Steem less-friendly to abuse . It is simple. Building abuse fighters equals less abuse.
We have identified a list of abuse categories the program actively pursues. If the post or comment matches the abuse category we take it into our own hands and flag it.
The program is after abuse posts or comments with payout. Flag the post, write a comment identifying the abuse category and mention @steemflagrewards.
Our bot will then upvote our abuse fighters' comments. This is their reward for cleaning the platform and risking possible retaliation.
We are open source!
September Project Updates
We had significant bot developments happening at our steemflagrewards repository. Amidst all the activity with anti-abuse ops and HF20, September is a month to remember.
This post will be somewhat of an amalgamation of technical and operational developments.
Enhancements and New Features for SFR Bot
1 . Clear_Queue Function
This has been a much needed feature for our team at SFR. We needed the ability to clear the voting queue when the bot gets stuck in queue mode.
For whatever reason, the bot was in perpetual queue mode. This causes unintended delays with the program's day to day operations. Some of the reasons may include node issues, which happen a lot of the time. Or possibly a bug in the approval and queuing feature.
Without this command made available, we required manual database updates. Constant baby-sitting of the script is not your ideal scenario.
It's a simple solution to keep our operations going while I'm away. It does require re-approving the flag comments but it got things moving again so it helped.
The long term goal is to do away with this function once we streamline the queue mechanism.
@bot.command() async def clear_queue(ctx): cursor.execute('UPDATE steemflagrewards SET queue = 0 WHERE queue == 1') db.commit() await ctx.send('Queue has been successfully cleared!') return
2 . Successfully migrated bot to themarkymark's host
The bot is no longer living on my mining rig so definitely a good thing!
We're slowly moving to a more streamlined operations. Hosting the bot to a server and giving our devs access will help prevent a single point of failure.
With this migration, a vastly improved bot responsiveness is noticeable. To the extent that it was actually too fast in one regard which I'll explain.
Thanks to @themarkymark for his generous support.
Yes, I can GPU mine my altcoins in peace. And go on vacation...
3 . Queue Voting Adjustment for STEEM_MIN_VOTE_INTERVAL_SEC
This is the only time I'm complaining about response time being fast.
There was a slight issue with the queue voting which did not manifest until the bot migration. There was a decreased communication latency on the dedicated server host to the Discord server, leading to rapid queue voting.
I followed the trail from the console errors. Then implemented a simple break fix to restoring service.
# sleeps to account for STEEM_MIN_VOTE_INTERVAL await asyncio.sleep(STEEM_MIN_VOTE_INTERVAL)
4 . Avoid Early Voting Penalty
We have integrated a check into the code to ensure the bot votes no less than 15 minutes from the comment's created time. This is to optimize rewards for our abuse fighters and curation for the SFR bot.
It did take a bit of manipulating the datetime formats. I specifically removed TZinfo from created and the microseconds from
now to compare the two. Then obtain the number of seconds to wait. This is achieved with the following code:
#gets post created date without timezone info for comparing to now created = comment['created'].replace(tzinfo=None) now=datetime.datetime.utcnow().replace(microsecond=0) dif = now - created ts = round(dif.total_seconds()) difmin=round((ts/60)) if(difmin < 15): await asyncio.sleep(ts)
5 . Edits for PEP8 Guidelines
Edits were made per the recommendations of @amosbastian and @emrebeyler. I reviewed the PEP8 Style Guide and made a few minor adjustments in accordance with those guidelines.
Further beautification of the code will be an ongoing process.
SFR Ops Milestone
Good job, everyone!
Abuse Payout Denied!
Content identified as abuse was tracked via 481 approved SteemFlagRewards flag mentions comments.
SFR and the Steem Community
If we include other outgoing flags from various group collaboration, the value of removed post payout is higher.
Steem Flag Rewards's strategy involves collaborating with those who are aware of the importance of flagging within the Steem ecosystem.
High SP Assist
Higher SP accounts' willingness to assist with flags is pivotal towards the overall efficacy of blockchain moderation. Every flag helps to deter abuse and we are very thankful.
It is a slim minority of users that regularly engage in flagging. That being said, we need all the help we can get.
On behalf of the team at Steem Flag Rewards, we would also like to thank those who are delegating to our program. We are moving towards higher efficiency operations.
Additionally, I would like to highlight @fulltimegeek's quick response to our request. His assistance to help neutralize the retaliatory downvotes of abusers is much appreciated .
The fact that we are able to divert votes from the abuser is a win in my book. It is also a win for the larger Steem community.