Witness Update 2018-05-25: @teamvn the Vietnamese community bot
View this post on Hive: Witness Update 2018-05-25: @teamvn the Vietnamese community bot
For the last three weeks or so, I've been busy helping the Vietnamese community on Steemit. It all started when one the leaders asked me if I could make a Discord bot that would help them manage their upvote list and find a way to help them find @cheetah commented posts so they could help clean up the #vn tag from low quality content.
I'm not a Plankton anymore!
Before jumping into the core subject of this update, I'd like to share some excitement with all of you. I've recently got up to the rank of Minnow. Yay! I'm not a Plankton anymore!
I have to say big thank you to @curie for giving me my first ever decent payout! It has been a game changer as it has boosted my motivation to continue writing more content about #gardening #homesteading and #vermicomposting which were my main topics when I joined Steemit. However, it had been @utopian-io that has contributed the most to the my growth on the Steem blockchain thanks to their generous support to Open Source projects. Finally, I'd like to, again, say a big thanks to @teamsteem for generously upvoting my introduction post when I joined the platform and also for all the various tutorial you have posted that helped me kick start my journey here. There are many others I'd like to thank but that would fill too many lines of this posts, so I will leave that for another time.
When I joined Steemit, it wasn't my intention to get involved in the Vietnamese community, let alone support them. But as time went by, I discovered more and more members and noticed their effort to try to do it right and grow like all of us. However, there are a lot of obstacles along their way: lack of skills in English, technical knowledge etc... and a lot of them were struggling. So I started to joined the Facebook group they have setup.
I started to make several contributions to the Vietnamese community:
- answer questions regarding how the Steemit and Steem blockchain work
- creating contests where they can win some Steem Basic Income (SBI) shares which is one of many ways they can help support themselves.
- I got an active member of the community, @carlpei, to also translate the SBI documentation so that Vietnamese members can understand the concept better.
- I'm progressively trying to get more of the members to use Discord rather than Facebook so that they could start interacting with Steemians from other countries and expand their knowledge that way.
@teamvn the Vietnamese Community Bot is my most recent projects. Community members needs to work together and join effort in order to help the whole group grow, it can be hard for a lonewolf to succeed on its own. So I had this idea of joining power to help members, joining Steem Power that is. If every member can delegate some SP as much or as little as they can to a central account, then we can bring that account to have a decent voting power that would help the whole community. That central account should not be a human's account but a bot, so that its activities can be predicted.
The bot was first born as a Discord bot to monitor members' activities for a daily report in order to manage an existing upvote list. To make this easy, I paid 10 SBD/month subscription to @steemsql a project by @arcange (witness) that is indexing the Steem blockchain into a SQL Server database. In a second phase, the bot then went and fetch all #vn posts commented on by @cheetah, it will then counter-check Cheetah link to analyse similarities between the two pages. This was a big time saver for the moderators as it reduced the amount of manual tasks by quite a lot.
One of the rules to stay in the upvote list is to comment regularly, this is to promote interaction between members of the community and it's a good thing. In order to achieve this, I decided to fork out 10 SBD per month and subscribed to @steemsql a projet made by @arcange (witness) that indexes the Steem blockchain onto a SQL Server database.
@teamvn then got upgraded to also be a Steem blockchain bot supporting the members of the Vietnamese Steemit Community.
Steem upvote bot for the Vietnamese community
There were discussions on how the Vietnamese users could get help on the platform. I'm lucky to be part of multiple communities: French, Australian and Vietnamese and was benefiting from some of their Minnow support projects. #teamaustralia for example, has a bot called @centerlink (by @austbitbank) which gives the approved member a daily dole in the form of an upvote to their post. Recently, @jackmiller has created @anzub an upvote for the Australia and New Zealand community, it is acting just like @minnowsupport and accepts a
$upvote command from a Discord channel.
The French community has their own bots too including @aidefr. But the Vietnamese community was relying on the support of a single Vietnamese Orca who joined Steemit last year investing a lot into Steem. This is why some of the more experienced members are starting to educate new members on how to use all these bots available out there, to cite a few: @qurator, @steembasicincome, @minnowsupport and recently @dgi. But language is still a barrier, their writing skill is average or low and the lack of translated documentation is very painful.
So I decided to set up a new Discord channel where most will be written in Vietnamese. I also started developing an upvote bot that comments and answers in Vietnamese too, using my very rusty Vietnamese skills. But with the help of the members, bugs are being fixed, features are being added.
The bot has four ways a member of the community can receive an upvote from the bot:
- It has a primary list where members who won a writing contest or have delegated SP to the bot will be upvoted in priority. It is a guaranteed upvote list and the voting weight depends on how much SP members have delegated to the bot. Currently, an upvote from this lists is weighted between 100% and 40%.
- There is a secondary list where members are those who have won a random pick contest. This list gets you a 20% vote if the bot has been idled for over an hour and it has some Vote Power left.
- Members can request a 15% upvote from the Discord channel as seen in the screenshot above. They can request for an upvote on their own post or from someone else. This is especially great for those who are already on the bot's list as they can now request a gift upvote for someone else, or those who don't write often, they can use their upvote allowance to send gift upvotes. I can also see the usefulness of this feature for those whose upvote value is very low, if they want to upvote a great content, they can ask the bot to send a little gift upvote to the author at a value higher than their own upvote. They can request for an upvote on their own post or from someone else. This is especially great for those who are already on the bot's list as they can now request a gift upvote for someone else, or those who don't write often, they can use their upvote allowance to send gift upvotes. I can also see the usefulness of this feature for those whose upvote value is very low, if they want to upvote a great content, they can ask the bot to send a little gift upvote to the author at a value higher than their own upvote.
- The bot will do a single 100% upvote on new members on their introduction post and post a welcome comment to their post linking them to useful Vietnamese guides written by @carlpei
As time goes, these rules will be fine-tuned to the need of the community. Nothing is written in stone and I'm open and will be listening to what the members have to say.
How I calculate the upvote weight for the primary list
In a nutshell, it is considering the bot as a company and its SP as the capital, SP delegations are a way to buy shares and upvotes are the way to distribute the dividend.
Currently, the calculation is done via a Google Spreadsheet. It all starts with getting current upvote value at 100% Vote Power and 100% Vote Weight. I used https://www.steemnow.com/upvotecalc.html to get the upvote value at 1000000 SP.
This value will allow me to calculate the maximum daily upvote value the bot can make with its 10 upvotes at 100% weight.
The external delegation field is for delegators from outside the Vietnamese community who are willing to give their support without claiming upvote from the bot.
Then, I collect the amount of SP delegation of each delegator in order to calculate their % equity:
Every delegation is split into 50/50 investment/donation. What this means is that all delegations don't only benefit the delegators but also all the members of the list. So if a member delegates 100SP, 50SP buy shares for them, 50SP buy shares distributed in equal parts to everyone (including them again).
The formula to calculate the % equity for each user is as followed:
I then calculate the value of each of the 10 daily upvotes one should limit themselves in order keep their VP no lower than 80%. Remember, each upvote at 100% weight takes your vote power down by 2%.
From all those numbers, I now can calculate the amount of vote value each member can claim daily. Knowing the vote value at 100% weight, I can calculate the number of daily upvotes and their weight in order for the members to be able to claim their claimable amount. This is just an estimate and the actual formula will be slightly modified, for example, if a user can claim two upvotes per day, instead of having two upvotes of equal weight, the first weight will be 100%, this will allow a maximum claim in case the member only post once a day. Here is the % equity screenshot again:
As you can see, keeping 100SP for yourself will only give you an upvote valued at about $0.02 (this value changes constantly), but if a member delegates those 100 SP to the bot, he or she will receive an upvote that can reach $0.158 while also increasing the support for all other members whether they are delegating or not. Best of all, no self-upvote involved.
Let see how a delegation of even a small amount can change the upvote value for a user. Let's take @lenancie as an example. She currently has 77 SP in her wallet, so she cannot delegate a lot. However, if she decides to delegate 20 SP to the bot, she will increase the amount she can receive from the bot from $0.065 to $0.085 while still supporting other non-delegating members by a small increase.
Not everyone writes posts every day and currently, the two big delegators (thank you @hoailinhvictoria and @thanhquyen) don't take advantage of their two upvotes per day, they know that and are happy to leave the excedent SP to help the others.
The bot lists are managed via Discord directly, I don't have to stop the software to reconfigure it, here is how I add a member to the primary list:
And this is how I modify the upvote weight the bot should use for that member:
This is where the secondary list comes in:
Members of the secondary list have not won writing contests demonstrating their ability to write quality content, they have however won a secondary prize. As time goes, they might be upgraded to the primary list, how this will be done is to be discussed. Everyone on this list can claim a default upvote value of $0.035. The bot will vote for them if it had been idle for over an hour since the last primary upvote.
The bot still has vote power left on a daily basis, this is why I have introduced a Discord upvote feature just like @minnowsupport from the Peace Abundance Liberty (PAL) group.
The bot curation trail.
I'm still working on ways to increase the bot's power in order to be able to add more members to the lists:
- SP delegation from members who can afford it
- Upvoting the bot's comments and posts
- Ideas on posts the bot could make: post curation, statistics etc...
In order to help members even more without increasing the bot's upvote weight is the use of a curation trail, like what @centerlink and @dgi are doing. The bots can have a low but decent upvote value, but members can follow the bot's trail and upvote for those receiving the bot's support. This benefits everyone: author reward for the author, curation reward for the curators.
So I started experimenting with the settings on https://steemauto.com for my bot to start building a curation trail strategy. This is not yet available as I still need to understand more on the distribution of rewards and it seems like the @dynamicsteemians have it right for their @dgi bot, so I will be checking this with them later on. The only thing with @steemauto (by witness @mahdiyari) is it is lacking curation trail rules. I'd love things like:
- an upper and lower upvote threshold, for example, wait until my VP reaches 95% and keep upvoting trails until VP reaches 80% then go back to sleep.
- a minimum upvote value: when you follow a trail, the default mode is 50% scaled to the weight of the curator. There are cases where your upvote is not even a cent. I'd like to be able to override this and set a minimum value
- ability to include yourself from a curation trail to avoid self-upvotes
The bot is not just hard working all day, upvoting members. Like other bots, it can retrieve various info from the blockchain such as a user profile:
But it can also do some fun things such as offering a Vietnamese dish to another member (thank you @lenancie for the idea 🤣):
I was proud of the work I've done so far, the bot has started to run and members are benefiting from it now. It's not a big upvote each time, but it's definitely helping.
Thank you to all the members who have delegated SP and participated in real-time in the birth of the bot and its development. Also, special thanks to @carlpei for supporting me and this project since the start. You have contributed so much with amazing ideas and translating my funny Vietnamese and you are also a great teacher for the community. Finally, thanks @hanggggbeeeee, @a-alice, @lenancie and @nguyenthanh for helping with organizing and discussing various contests.
The next step for the bot is to automate all the formula and built that into the bot itself to avoid manual calculation. But this is for later as I'm currently working on another bot project I cannot talk into details until it is released.
If you like what I'm doing, you can support my witness:
Vote for me via SteemConnect
Or go to https://steemit.com/~witnesses
then scroll down to the bottom and type my name
quochuythen click on "Vote".
Protect your money against Phishing Scam!
Cryptos accounts are the target of international scammers because they want your hard earned money!
Those people are very clever and in a moment of inattention, you've given them your login and password!
I've created a Chrome extension that can help you detecting scam links!
Password and Private Keys security
You all know that your Steem password is the access to all your STEEM, SBD, posting, transferring, everything... right?
So, please, follow those simple steps and keep yourself safe:
- Apart from the initial setup of your account, NEVER use your password ANYWHERE, if stolen, it will give full control to your Steem account.
- Backup your password and keep it somewhere safe. Use a password manager like Lastpass, print it on paper and put it in a safe (no kidding). If you forget your password, no one can help you out.
- To login for creating content and curating, use your Private Posting Key
- To make transfers and account operations, use your Private Active Key
- To encrypt and decrypt memos, use your Private Memo Key