Witness Update 2018-05-25: @teamvn the Vietnamese community bot

in #witness-category3 years ago (edited)

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.

@quochuy's Witness report

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.
Screen Shot 2018-05-25 at 5.46.46 pm.png

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.
Screen Shot 2018-05-25 at 6.06.13 pm.png

@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.

Screen Shot 2018-05-21 at 1.28.49 pm.png

Screen Shot 2018-05-21 at 1.28.49 pm.png

The bot has four ways a member of the community can receive an upvote from the bot:

  1. 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%.
  2. 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.
  3. 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.
  4. 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

Screen Shot 2018-05-25 at 11.05.39 pm.png

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.
Screen Shot 2018-05-25 at 6.23.37 pm.png

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:
Screen Shot 2018-05-25 at 6.20.02 pm.png

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).

Screen Shot 2018-05-25 at 6.47.08 pm.png

The formula to calculate the % equity for each user is as followed:
Screen Shot 2018-05-25 at 6.41.35 pm.png

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%.
Screen Shot 2018-05-25 at 6.47.13 pm.png

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:
Screen Shot 2018-05-25 at 6.20.02 pm.png

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.
Screen Shot 2018-05-25 at 6.58.50 pm.png

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:
Screen Shot 2018-05-25 at 10.50.23 pm.png

And this is how I modify the upvote weight the bot should use for that member:
Screen Shot 2018-05-25 at 10.50.39 pm.png

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

Other features

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:
Screen Shot 2018-05-25 at 10.55.28 pm.png

But it can also do some fun things such as offering a Vietnamese dish to another member (thank you @lenancie for the idea 🤣):
Screen Shot 2018-05-25 at 10.54.05 pm.png


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 quochuy then 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!

Install Steemed Phish Chrome desktop browser extension now!

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:

  1. Apart from the initial setup of your account, NEVER use your password ANYWHERE, if stolen, it will give full control to your Steem account.
  2. 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.
  3. To login for creating content and curating, use your Private Posting Key
  4. To make transfers and account operations, use your Private Active Key
  5. To encrypt and decrypt memos, use your Private Memo Key

Congratulations to our two new members of the primary list: @symonp and @hungrybanana!

@hungrybanana has been added as a honorary member as a thank you for your continuous contribution to helping the VN community.

@symonp is a rising star amongs the young Vietnamese Steemians, his effort and hard work earned him a great status amongst @dynamicsteemians

Thank you very much @quochuy. I'm trying my best to help Vietnamese Community and especially quality content from Vietnamese through Dynamic Steemians!

Thank you for adding me as a honorary member. I wrote a guide about how people can delegate to @teamvn. I hope it will be useful.

Cả phần nhạc nhẽo karaoke cũng quá hay mà anh. E thích vào đấy nghe nhạc rồi ấy. Nói cảm ơn Anh mãi ko hết. Nói lại lần nữa, cảm ơn a Quốc Huy và Carlpei ạ.
P/s: em lại được nhắc đến như là người có những ý tưởng kì kì rồi. Hâhha

Lần sau phải có họp hội đồng (council) với những ý tưởng như vầy, ai lại đề nghị bún đậu thế kia, ít ra phải là bún chả Obama chứ @lenancie

Hehe. Bún đậu mắm tôm cho lành bạn @Carlpei ah. Chứ giờ thời Trum rồi, vẫn hoài nhớ Obama lại bị Mark Police tuýt còi :)) chết đấy!

Khi nào phải kêu anh em lên ca hát cho vui
Rồi vón phòng Voice thì mình có thể làm cái meetup qua mạng như mấy cái nhóm nước ngoài

Con bot lớn dần rồi, sắp trưởng thành rồi 👍👍👍
Cám ơn anh @quochuy và những thành viên tích cực trong cộng đồng đã ủy thác Sp cho con bot lớn mạnh hơn

Cùng nhau mình sẽ phát triển

sự đóng góp to lớn của chú cộng đồng việt nam k quên T.T
à mà tại sao riêng cháu có dấu chấm hỏi thế kia :(((

Chấm hỏi đấu là để nhắc chú phải hỏi cháu có muốn delegate cho con bot ko. Nhưng chú thấy cháu đã delegate nhiều cho cái khác rồi nên chú tính đợi đến khi con bot chạy tốt rồi mới hỏi

:o cháu delegate nốt 100 sp có dược ko ? giờ cháu rút lại của con bot kia thì mất tận 7 ngày liền

Cháu delegate nữa thì đâu còn gì cho cháu dùng để upvote đâu. Nếu em OK thì em làm delegation rồi cho anh biết

À cháu delegate free 100 sp cho . Cháu cũng ko qtrong cái vote cho lắm😂
Mà sao chú làm nhiều việc hay sao mà loạn hết kìa

Thanks for your suggestions about steemauto, I will work on that cases:)

Thanks for the response and thanks for providing this tool!

Thanks for your restless hard work to bring us closer to each other and have a lot of fun! Hat off!

Dear Mr. @quochuy
Congratulations, you have gone through the Plankton phase.
And we will be a long time :(
Your article is great, I need time to review it. That's why I'll resteem it. I just flipped through it, I'm not thinking too much because I need to revisit but if what you say to be right , maybe I'll have to reconsider my strategy for SP. :)
Thank for your post!

Thank you for taking the time to comment on this post :-)
If you have any question regarding how all this works, don't hesitate to talk to me or @carlpei.

Sure, I will read more carefully and if not clear. I will ask you or @carlpei. He is always willing to help. :)

Em cám ơn bài viết của anh, rất tuyệt vời mặc dù nó là tiếng anh nhưng e dùng gg dịch cũng hiểu được 7 80% nghĩa. Cám ơn anh đã giúp đỡ cộng đồng VN

Em có 49 SP, em xin delegate 10SP ạ

Để anh sắp xếp

em delegate rồi

OK em. Lát nữa anh sẽ update con bot. Nó chưa tự động đi xem delegation cửa nó là bao nhiêu

quá tuyệt vời, em muốn ủy thác một ít SP cho bot, anh cho em link gửi với ạ, e cảm on anh

Em có trên cái Discord của con bot chưa? Nếu chưa thì lên gửi tin nhăn cho anh trên fb

Chúc bot ngày 1 lớn mạnh phát triển 😘😘😘

Congratulations! This post has been upvoted from the communal account, @minnowsupport, by quochuy [witness] from the Minnow Support Project. It's a witness project run by aggroed, ausbitbank, teamsteem, theprophet0, someguy123, neoxian, followbtcnews, and netuoso. The goal is to help Steemit grow by supporting Minnows. Please find us at the Peace, Abundance, and Liberty Network (PALnet) Discord Channel. It's a completely public and open space to all members of the Steemit community who voluntarily choose to be there.

If you would like to delegate to the Minnow Support Project you can do so by clicking on the following links: 50SP, 100SP, 250SP, 500SP, 1000SP, 5000SP.
Be sure to leave at least 50SP undelegated on your account.

Is there somewhere it is possible to see the cheetah+vn pulls?
I'm interested in seeing how often cheetah returns a false positive.
Thanks :)

Hi. The report it produces is not available publicly. If the text is in Vietnamese, I noticed cheetah returns false positive about 70% of the time maybe. If t is in English false positive are only 20% of the time.

But you gave me an idea. I should record that into a file.

Cool - anecdotally, I thought the numbers might have been something like that.

It’s not an easy task. Translation softwares have existed for a very long time and they still make critical mistakes. This is why Cheetah can never be accurate every time.

Bạn đã đăng ký thành công

Screen Shot 2018-05-26 at 12.53.44 pm.png

Thank you @hungrybanana and @lantracy for your SP delegation. The bot's weight has been updated accordingly for your accounts.

In order to motivate even small SP holders to delegate small amounts, all delegations under 25SP will not be split under the 50/50 rule, that means your first 25 delegated SP will be used for boosting the delegator's own growth. As you gain more SP, you can choose to delegate more and start helping the rest of the community. You can, however, choose to change this balance and donate more of your delegated SP at any time, just let me know.

Anything not clear? Please ask me.

Since bot has more than 1000 SP, I'm wondering new list :)

No new list :-)
The vote power will be re-adjusted and we also will be able to add more users to the existing list.
As you have been doing curation for the community before, can you suggest any quality authors to be added?

Are you on Discord?

Yes, my Discord: Hungry Banana#8357
I can help you with it.

Congratulations! Your post has been selected as a daily Steemit truffle! It is listed on rank 4 of all contributions awarded today. You can find the TOP DAILY TRUFFLE PICKS HERE.

I upvoted your contribution because to my mind your post is at least 40 SBD worth and should receive 200 votes. It's now up to the lovely Steemit community to make this come true.

I am TrufflePig, an Artificial Intelligence Bot that helps minnows and content curators using Machine Learning. If you are curious how I select content, you can find an explanation here!

Have a nice day and sincerely yours,

This post has been rewarded with 30% upvote from @indiaunited-bot account. We are happy to have you as one of the valuable member of the community.

If you would like to delegate to @IndiaUnited you can do so by clicking on the following links: 5SP, 10SP, 15SP, 20SP 25SP, 50SP, 100SP, 250SP. Be sure to leave at least 50SP undelegated on your account.

Please contribute to the community by upvoting this comment and posts made by @indiaunited.

em gửi SP cho bot không được anh @quochuy ơi

Em nên đợi thêm chút vì có luật mới. Phải vào danh sách trước mới bắt đầu gửi SP

dạ không. em gửi sai memo và bot gửi lại

Ah vậy là bot khác. Bot @teamvn mình không dùng memo. Hình như em đăng nó vê con minnowsupport

vậy em nhầm. Cách vô list vote của @teamvn như thế nào anh ?

Ah vậy là bot khác. Bot @teamvn mình không dùng memo

sau đó em gửi lại nữa cũng không được. cứ bắt xác nhận gì đó ạ

@teamvn register ae2c2b806d63d3bf78081399d4919855

Đăng ký thành công

Your upvote bank
__2.jpgThis post have been upvoted by the @UpvoteBank service. Want to know more and receive "free" upvotes click here

Hi @upvotebank,
I can't see your upvote is there a delay between the comment and the upvote? Or are you using another account? I'm sure I still have credits.

Hi, you do not receive upvotes from the upvotebank account.
But from our members ;-)

Ohhhh OK gotcha!
Thanks for clarifying.