SteemFlagRewards Project Update: Token Distribution + SFR Upvote Bot is now LIVE! 🚩🚩🚩

in #utopian-io2 years ago (edited)

After a few late nights debugging, the SFR token system is now operational!

We now have a couple nodejs bots running in addition to the 3 python bots. It's about time we honed in on a monitoring solution for the many processes we run. We are now distributing tokens daily and users may now claim their tokens for good ol' fashion upvotes. @steemflagrewards is the premiere Steem abuse fighting service that pays users to flag abuse!

Why, Yes! Yes, we are!

Meme Originally Posted on MemeHub, the latest and greatest upcoming Steem Meme community platform!

SFR Project Updates

1. Daily Token Distribution

Upon every approval, the bot now checks if token payments are due. If they are, the bot will identify any flagged posts that are past payout and obtain any votes with negative rshares.

The next step is the bot will try to pay flags until the daily reward pool is exhausted. If the flags paying out do not exceed the daily reward pool, the remainder is paid to delegators.

I really like this system as it provides Steemians a way to earn rewards by doing something that is beneficial to the ecosystem but also a passive return through delegation in a way that serves other stakeholders.

As far as I know, there is nothing else like it on the blockchain.

Not to mention, you don't have to worry about your delegation being used to promote abuse.

2. SFR Upvote Bot

Once you receive SFR credits for delegating or flagging abuse, you may then redeem then for an upvote after being whitelisted.

Fortunately for users, we do not use a bidding base system in which a loss may be incurred for instance if too many bid in a round. Our return in investment is set based on our bots voting power and other factors.


Note: Make sure you check the bot !stats command to ensure your bid is within the appropriate range and our bot's VP is above the minimum or the SFR will be returned.

3. Troubleshooting

I spent a couple days banging my head against the proverbial wall. Much of it pertains to having to acclimate myself very quickly to nodejs.

We had a bit of an issue with the processing of transactions but I eventually figured out how to get the last Steem Engine block. This gave me a way to ensured we were only processing new blocks preventing errors.

Here is an image of the SFR-VotingBot in action


We are using a combination of @harpagon's SSCJS light Javascript library, Axios HTTP client RPC calls against the Steem-Engine contracts API, and @jnordberg's dSteem Steem client. The latter two were already in place thanks to @reazuliqbal and the former was a solution that I had found in order to obtain the last Steem-Engine block.

4. Delegator Incentives

It's about time we implemented delegator incentives! Often I romanticize about the SFR team being likened to a military outfit. One of the most emphasized virtues at least when I did my time was personal sacrifice or "service above self". I think it's important for everyone to put in something so the bot will be able to keep up with the tempo of abuse fighting.

Here's an example of our incentive system works.

Let's say we have one flagged post that pays out. Once the bot token distribution function kicks off, it will then grab all follow on flags from the post for registered SFR users.

Post has the following flags:

  • $4 SBD flag from 1000 SP Delegator
  • $4 SBD flag from a non-delegator
  • $2 SBD flag from 100 SP Delegator
  • $2 SBD flag from 2 SP Delagator
  • $0.50 SBD flag from a 500 SP Delegator

Let's say the SFR bots full-power upvote equals $1 SBD. This means the daily pool will be 10 SFR. In this scenario, the following will happen.

Bot processes delegator flags first

  • 1000 SP Delegator $4 SBD flag is checked against the 10 SFR. Check passes. 4 SFR is subtracted from the pool.
  • 500 SP Delegator $0.50 SBD flag is checked against the 6 SFR remaining. Check passes. 0.50 SFR is subtracted from the pool.
  • 100 SP Delegator $2 SBD flag is checked against the 5.50 SFR remaining. Check passes. 2 SFR is subtracted from the pool.
  • 2 SP Delegator $2 SBD flag is checked against the 3.50 SFR remaining. Check passes. 2 SFR is subtracted from the pool.

Next, the Non-Delegator Flag is Processed

  • Non-Delegator $4 SBD flag is checked against 1.50 SFR remaining. Check fails. Flag will remain in queue for next payment cycle.

Remaining SBD is split up and sent to delegators in proportion to their delegation with a minimum transferred of 0.001 SFR.

This means that with a minimum delegation of 2 SP that you will receive at least 0.001 SFR daily with the exception of the extraordinary circumstance that there is no remainder for the day. I suppose it could happen, in theory, but it is highly unlikely.

I hope with this explanation you now understand that there is now a personal incentive to delegate to our project. Of course, this is aside from the broader incentive of cleaning Steem and improving content discovery.

But I have bad news...

With hard fork 21 around the corner and free downvotes, I don't foresee how we will be able to meet the demand of rewarding flags without a significant delegation, drastically toning done our ROI values or developing a method of rewarding free downvotes less (or alternatively not at all).

I know this has been a contentious topic on the SFR Discord with good arguments posed as to why free downvotes should still be rewarded (primarily due to the frequent retalliation our abuse fighters' experience. I welcome everyone's feedback on the matter but I'll go ahead and share my thoughts.

Do I think SFR should credit free downvotes?

Short answer is no. I would like to encourage users to burn their free downvotes on the most prominent token manipulators on this platform before using the bots limited VP. Most of them can be found on the Trending page.

I understand that many our afraid of retaliation and that's understandable. We can work towards a better solution in the future but, until free downvotes are able to be delegated, my inclination is to not reward them. Don't sweat it, though. We take care of our own so, if you find yourself targeted by abusers, don't hesitate to let us know. I've developed a few tricks to cause these kind to waste their VP.

But don't go picking fights with whales! We are not equipped for that!

We may engage Orcas with community consensus but I don't make that call. Be smart!

Lastly, I wanted to share the SFR Tutorial I created using Snag-It. This explains how to perform the token transactions using KeyChain. Please, keep in mind the bot is still in a alpha release as I there are much functionality and tweaks that we be added as we evolve to the blockchain and the coming changes.

I'm glad to serve the community. Looking forward to us achieving great things together.

Here is the Github Link to the SFR-Token-Bot fork if anybody would like to review.

Check out this sweet logo @overkillcoin created for us!

Would you like to delegate to the Steem Flag Rewards project and promote decentralized moderation?

It's much more fashionable than self-voting.

Here are some handy delegation links!

50 SP 100 SP 500 SP 1000 SP

Also, here is my SteemAuto fanbase link if you would like to be one of my consistent supporters.

Series Backlinks


Ahoy there, @anthonyadavisii!

We have been waiting for this update for some time. I know it took a while for you to bring this online as you had to juggle between work, family, and Steem.

There are some critiques about how the distribution of tokens should work. For one, it has to be sustainable, and I see you have addressed that via limited daily pool of tokens. For another, a fine balance between delegators and downvoters. The delegations make the project possible, and the downvotes are the driving force.

The upvote function works for the most part. I do see some occasional complaints from users where the bot did not respond.

As for HF21 changes, good luck on figuring out the math and incentives. It won't be an easy task. Even current bot owners would have to figure out how to sell their votes with a different curve. We may all have to move to a rshares model.

As for dealing with abusers with large stake, it is an age-old discussion. People need to realize that you need to counter stake for stake. Without more resources, you cannot hope to disincentivize undesirable behavior.

The power of stake is that it is a renewable resource. Unlike the use of bid bots, it is impossible to cut ROI without zeroing the rewards. Unfortunately, many in the community do not seem to grasp that idea.

Anyhow, thank you for your work and time in the #antiabuse community. The landscape would be very different without your contributions.

Your contribution has been evaluated according to Utopian policies and guidelines, as well as a predefined set of questions pertaining to the category.

To view those questions and the relevant answers related to your post, click here.

Need help? Chat with us on Discord.


Hey almost forgot to reply here. 😬
The Utopian comment just reminded me.

On the critiques of the distribution system, totally understand and glad we got things in a better state now. Well it seems that way but I'll keep on it.

As for complaints on the upvote bot, looks like we have addressed that as well so that's a load off my shoulders. Still have a bit of reconciliation of flags during the transition that may have been missed but that work may be tough.. Will require database and blockchain cross referencing.

On HF21, sure you saw my somewhat dramatic comment on @steemitblog's post. It is what it is. I'm not happy about it but gotta roll with the punches.

Thanks for your review!

Posted using Partiko Android

I’m glad to see the issues are mostly resolved.

Thank you for your review, @enforcer48! Keep up the good work!

Also, wanted to give a special mention to @imacryptorick for lighting the 🔥 that helped me get off my butt to finish this. 😅

Posted using Partiko Android

Why you flagging yourself? I'm so confused right now.

Posted using Partiko Android

Front ends may block uploads to their image hosting. That aspect is very much centralized currently.

I actually have a concept in my head to address this using the SiaCoin network and caching technology but not sure if it's viable. But that won't solve your problem now.

Maybe you can try Partiko. Alternatively you can upload to Imgur and just link. It's not convenient but it will work.

As for the comments, it's not possible I'm afraid after the first vote or comment hits them as far as I know. You can edit the comments, though.

Maybe put in [deleted], [redacted] or something to that effect.

If you do not wish to interact with me, there is a mute option.

Best of luck to you.

Posted using Partiko Android

Joo @anthonyadavisii

Really like the project! Going to join the anti abuse alliance finally! Will also delegate 100 SP to the bot and hopefully more in future when I'm able to power up again. :)

do you know tipU?
You could turn SFR in something similar just for downvotes. Like a decentralized downvote market to fight abuse
then there would also be more utility for the token and then more trading on SE
Sadly there is zero trade atm

Hi @anthonyadavisii!

Your post was upvoted by @steem-ua, new Steem dApp, using UserAuthority for algorithmic post curation!
Your UA account score is currently 4.790 which ranks you at #1429 across all Steem accounts.
Your rank has dropped 7 places in the last three days (old rank 1422).

In our last Algorithmic Curation Round, consisting of 181 contributions, your post is ranked at #45.

Evaluation of your UA score:
  • Some people are already following you, keep going!
  • The readers appreciate your great work!
  • Good user engagement!

Feel free to join our @steem-ua Discord server

Congratulations @anthonyadavisii! You have completed the following achievement on the Steem blockchain and have been rewarded with new badge(s) :

You published more than 350 posts. Your next target is to reach 400 posts.

You can view your badges on your Steem Board and compare to others on the Steem Ranking
If you no longer want to receive notifications, reply to this comment with the word STOP

To support your work, I also upvoted your post!

Vote for @Steemitboard as a witness to get one more award and increased upvotes!

This is why he says stuff like that, he is a bidbot abuser and he gets paid by @themarkynark! he is flagged forever now as long as I am, or until he realizes and retracts his comment from my blog, and never bugs me again!


Hi, @anthonyadavisii!

You just got a 13.34% upvote from SteemPlus!
To get higher upvotes, earn more SteemPlus Points (SPP). On your Steemit wallet, check your SPP balance and click on "How to earn SPP?" to find out all the ways to earn.
If you're not using SteemPlus yet, please check our last posts in here to see the many ways in which SteemPlus can improve your Steem experience on Steemit and Busy.

This is why he says stuff like that, he is a bidbot abuser and he gets paid by @themarkynark! he is flagged forever now as long as I am, or until he realizes and retracts his comment from my blog, and never bugs me again!



Hey, @anthonyadavisii!

Thanks for contributing on Utopian.
We’re already looking forward to your next contribution!

Get higher incentives and support!
Simply set as a 5% (or higher) payout beneficiary on your contribution post (via SteemPlus or Steeditor).

Want to chat? Join us on Discord

Vote for Utopian Witness!

Cool :)

Well done on getting this up and running. I appreciate the extra votes I can get with it. I got good responses to a recent post about abuse, so I hope a few more people will join in with tackling it.

This is why he says stuff like that, he is a bidbot abuser and he gets paid by @themarkynark! he is flagged forever now as long as I am, or until he realizes and retracts his comment from my blog, and never bugs me again!


What got into you, who set u up to fucking with me? some nerve, and stupid on you’re part asshole!

Basically, it was my way of responding to your former inquiry. I should have just taken the time to find the thread that you asked my about Marky.

But yeah I was shown some things that you said that I didn't like. Not one bit. But that's you expressing yourself.

We can't change who we were. We can only change who we are. I hope you find what you're looking for in life.

Posted using Partiko Android

While we may not like or approve of his anger and comments I still dont see how placing a permanent mute on his speech will help improve behavior. Many of the words can be viewed from another angle as not direct.

I just want to see why I am botabused. Even if they remove the bots Ill still flag liberally.

Posted using Partiko Android

I concur and absolutely hate flag abuse.

Posted using Partiko Android

I despise group thinking upvote abuse as much if not more. Good talk.

Edit: My power is low so I am going to save some votes.

I’m over here trying to have a fresh start and u come to my blog spreading slander! Fuck you bitch! That is legal to say!

This is why he says stuff like that, he is a bidbot abuser and he gets paid by @themarkynark! he is flagged forever now as long as I am, or until he realizes and retracts his comment from my blog, and never bugs me again!