Author Topic: How is delegate voting implemented in the GUI?  (Read 2027 times)

0 Members and 1 Guest are viewing this topic.

Offline mint chocolate chip

I would like to be able to click on "Pay Rate" and have the client filter the list of delegates by their respective pay rates so it is easier to identify - and vote for - delegates who want to contribute > 3%.

Offline xeroc

  • Board Moderator
  • Hero Member
  • *****
  • Posts: 12922
  • ChainSquad GmbH
    • View Profile
    • ChainSquad GmbH
  • BitShares: xeroc
  • GitHub: xeroc
I can try to do write an amendment for the wiki if nobody else volunteers.
What do you think?
Would be awesome if you could help out here .. don't have the time atm .. +5%

jakub

  • Guest
Thank you again, xeroc.

Maybe we should update the bitshares wiki in this subject. As far as I know the information in the wiki does not cover the details we discussed here and these are pretty important details.

I can try to do write an amendment for the wiki if nobody else volunteers.
What do you think?

Offline xeroc

  • Board Moderator
  • Hero Member
  • *****
  • Posts: 12922
  • ChainSquad GmbH
    • View Profile
    • ChainSquad GmbH
  • BitShares: xeroc
  • GitHub: xeroc
Now, if I choose the voting method as "Vote as Delegates Recommended" then whose recommendation (i.e. slate) do I support?
I am guessing that by selecting "Vote as Delegates Recommended" I now vote for the slates that have been published by the delegates which I have upvoted? Is this correct?
Yup .. the slates of all delegates you upvoted are combined ... from this set, your individual downvoted delegates are substracted (they will never get a single vote from you - no matter what delegates recommend)

jakub

  • Guest
I have one more question - this time regarding the voting slates.

I understand the concept as it is described here:
http://wiki.bitshares.org/index.php/DPOS/ApprovalVoting
(in the section "Vote as Delegates Recommended")

And I know we have an API call to publish a slate: "wallet_publish_slate". So anyone can publish a slate if they pay the fee for it.

Now, if I choose the voting method as "Vote as Delegates Recommended" then whose recommendation (i.e. slate) do I support?
I am guessing that by selecting "Vote as Delegates Recommended" I now vote for the slates that have been published by the delegates which I have upvoted? Is this correct?

jakub

  • Guest
Thank you xeroc, now it's beginning to make sense.

The crucial thing I was missing is that I need to transfer all my BTS back to myself to apply the change in my delegate voting.

Hopefully the future version of the GUI will be more comprehensive (maybe some kind of wizard guiding the user through the process). As it is now there is no chance a newcomer could have figured this out on their own.

Offline xeroc

  • Board Moderator
  • Hero Member
  • *****
  • Posts: 12922
  • ChainSquad GmbH
    • View Profile
    • ChainSquad GmbH
  • BitShares: xeroc
  • GitHub: xeroc
Once I thumb up a delegate in the "All Delegates" tab he lands in the "My Votes"
list and he stays there even if later on I remove my approval for him (by
thumbing him down or neutral). Thus "My Votes" list is a history of my
approvals/disapprovals and not necessarily a list of currently approved
delegates.
Is that how it is supposed to work?
Hm, not completely sure but from my understanding the "My Votes" shows your
"actively" voting stake.
In DPOS you can only vote with your BTS(X). if you have 100BTS you can increase
the approval counter for EACH delegate you upvote by 100BTS. But to do so you
need to make a transaction of the 100 BTS.

Every transaction that you perform .. votes with the amount of BTS in that
transaction for some delegates (all, random subset, recommended, .. see wiki)

Once you have made a transaction, your stake becomes "actively voting". And IIRC
the "my Votes" shows exactly those active stakes.

But why is this upvoting happening on an account level? Does it mean I can have
different upvoting structure for each of my accounts?
As each account holds different balances (in BTS) .. your votes may differ. But
your approvals of delegates does not differe from account to account.

Also, your answer still does not explain why this list is empty (even though I have thumbed up some of the delegates) and what needs to be done to have it populated.
To make them active you can either transfer all your BTS back to yourself or
press the "vote" button which would do the same self transfer automatically.

I maintain my question: what needs to be done to make "wallet_account_vote_summary" and  "wallet_check_vote_proportion" return a non-empty result.
As I said before, I have approved 4 or 5 of the delegates (by thumbing them up) but these API calls still return empty results. Clearly I am missing something.
Voting is done ON-CHAIN. so you need to publish your votes and this is done by
transactions that are stored in the blockchain. just thumbs up is not enough.
Click the "vote now" button or send some funds back to you and you will see some
actively voting stake then.

jakub

  • Guest

First fo all, thank you xeroc for an attempt to clarify this issue. I appreciate it.

I have a general understanding of DPOS but I find the GUI implementation of delegate voting quite obscure. I would appreciate help on this subject as after all delegate voting is a major feature of DPOS (and Bitshares) so I think it should be clear to everyone.
For me it is not (and I am not a beginner).

I'm running the latest version 0.4.23.1 on Windows 7.

1. In the GUI in the "Delegates" section there are two tabs: "All Delegates" and
"My Votes" and my question refers to the second tab: What are my votes? How do I
add/remove delegates from the list in "My Votes" tab?
You votes are the "thumbs ups" of delegates .. you can thumb up at the list of
delegates ..

Let me know if I'm guessing it right:
Once I thumb up a delegate in the "All Delegates" tab he lands in the "My Votes" list and he stays there even if later on I remove my approval for him (by thumbing him down or neutral). Thus "My Votes" list is a history of my approvals/disapprovals and not necessarily a list of currently approved delegates.
Is that how it is supposed to work?


2. In the GUI in every account I have the "Vote" tab and there is a table below
which in my case is empty. What do I need to do to populate this table?
You upvote some delegates (thumbs up)
But why is this upvoting happening on an account level? Does it mean I can have different upvoting structure for each of my accounts?
Also, your answer still does not explain why this list is empty (even though I have thumbed up some of the delegates) and what needs to be done to have it populated.


3. In the console, when I run "wallet_account_vote_summary" I get "No votes found". What do I need to do to make "wallet_account_vote_summary" return a non-empty result? Also, "wallet_check_vote_proportion" returns only zeros - What do I need to do to get non-zeros?
:) you can guess the answer already 8)
in the CLI you can upvote with the command "approve <delegatename>"

Nope, I still cannot guess this one.
I maintain my question: what needs to be done to make "wallet_account_vote_summary" and  "wallet_check_vote_proportion" return a non-empty result.
As I said before, I have approved 4 or 5 of the delegates (by thumbing them up) but these API calls still return empty results. Clearly I am missing something.

Offline xeroc

  • Board Moderator
  • Hero Member
  • *****
  • Posts: 12922
  • ChainSquad GmbH
    • View Profile
    • ChainSquad GmbH
  • BitShares: xeroc
  • GitHub: xeroc
1. In the GUI in the "Delegates" section there are two tabs: "All Delegates" and
"My Votes" and my question refers to the second tab: What are my votes? How do I
add/remove delegates from the list in "My Votes" tab?
You votes are the "thumbs ups" of delegates .. you can thumb up at the list of
delegates ..

http://wiki.bitshares.org/index.php/DPOS/ApprovalVoting

2. In the GUI in every account I have the "Vote" tab and there is a table below
which in my case is empty. What do I need to do to populate this table?
You upvote some delegates (thumbs up)

3. In the console, when I run "wallet_account_vote_summary" I get "No votes
found". What do I need to do to make "wallet_account_vote_summary" return a
non-empty result? Also, "wallet_check_vote_proportion" returns only zeros - What
do I need to do to get non-zeros?
:) you can guess the answer already 8)
in the CLI you can upvote with the command "approve <delegatename>"

(I've asked similar questions in the "Stupid questions" thread but got no answer.
https://bitsharestalk.org/index.php?topic=8390.msg146422#msg146422)
Sometimes things get burried over there :(

jakub

  • Guest
I would like to fully understand how the voting mechanism is implemented in the Bitshares GUI.

1. In the GUI in the "Delegates" section there are two tabs: "All Delegates" and "My Votes" and my question refers to the second tab: What are my votes? How do I add/remove delegates from the list in "My Votes" tab?

2. In the GUI in every account I have the "Vote" tab and there is a table below which in my case is empty. What do I need to do to populate this table?

3. In the console, when I run "wallet_account_vote_summary" I get "No votes found". What do I need to do to make "wallet_account_vote_summary" return a non-empty result? Also, "wallet_check_vote_proportion" returns only zeros - What do I need to do to get non-zeros?

(I've asked similar questions in the "Stupid questions" thread but got no answer.
https://bitsharestalk.org/index.php?topic=8390.msg146422#msg146422)