Change it back to "yes". There are three average types. The mean, the median and the mode. They are all included in the poll question.I have changed my vote from "Yes" to "No". Yes, I think voting with numbers would add a lot of value, but as pointed out by this discussion, average is flawed. Median would be the only acceptable solution for me.
The logic decides what are the bounds. The electorate must be rational. This is the most important prerequisite. Democracy can stand only among rational beeings. You cannot have democracy with monkeys who vote randomly and irrationaly.Look, Amazon evaluations of books is bounded (1 to 5 stars) this does not stop people from trying to manipulate the result by polarising. And they end up voting 1 and 5 stars, more than 2 and 4. You add a bound, now someone must decide what are the bounds of the vote (so more complexity), and you get people all divided between the one that are voting for the max and those that are voting for the min.
The question of the poll says "average". There are 3 types of average the mean , the mode and the median. So I dont need to change anything, unless you are tottaly against the mean average. In that case ask me and I will add a poll option saying, "yes only for the median average"Said that, enough with this discussion. I am leaving this thread. You really should get the hint from what the people have been telling you. Your proposal was voted no by a huge number of people. MAYBE if you change it with the median it might get more yes. Personally I am starting to suspect you are not really interested in finding the best solution, but in just keep the discussion rolling. So I am quitting it.
Average is usually referencing mean. Sure, add an option for median and it will get my vote. Mean and mode are both too flawed for this type of voting.Change it back to "yes". There are three average types. The mean, the median and the mode. They are all included in the poll question.
But if you hate the mean average, I can add you a poll option that says "yes only for the median average" and go vote yes. So tell me if you want a poll option to be added.
<vote history>
Would you like to be able to cast votes using numbers and extract the results as an average?
*yes 5 vote(s) 10.4%
no 39 vote(s) 81.3%
other 4 vote(s) 8.3%
</vote history>
You forgot to mention a very important property of the mean average. In case of polarization, the mean average respects the minorities, the median average does not (because the median average always gives the result to the biggest block, so the median average is a selection process prone towards the tyranny of the majority).So, to summarise:
The median does not have strategic voting.
the average has strategic voting.
Iterative Strategic voting polarises the votes if you use the average but not the median.
If the system is naturally polarised, the median just gives the result to the biggest block (if two poles). In that case, sometimes it is better the average but this case is rare and then you are better off using a different form of voting.
People having multiple votes can make the result less precise.
Partially the fact of having a bigger stake makes this less a problem, but it is still a problem.
This is not a Prediction Market.
I must apologise to @demo as the result ended up being nowhere as trivial as I was expecting. And I am also grateful for what I discovered.
I just run the experiment. 4000 nodes, with random values, with normal (gaussian) distribution of float, taking away 100 of them one by one. And recalculating the median and the average at each step. And then taking the standard distribution of those medians and comparing them with the standard distribution of those averages. If my prediction was correct the std(median)<std(average). Instead on 500 experiments, only 172 resulted the median more stable than the average.
So demo was right in saying the average was more stable... if people voted floats.
But then I run again the experiment taking instead of floats integers between 0 and 10. And now the median was dead fix, and the average was changing all the time. And on 500 experiments all 500 the median was fix and the average changed.
So I run it again taking integers between 0 and 100, and now 333 / 500 had the median more stable. And with integers between 0 and 1000 the result was 173/500. Just one more than with pure float. So it looks like what really makes the mean more or less stable than the median is the range in which the people vote. If people vote chosing among 10 options, then the median is more stable. If they chose among 1000 or more then the mean is more stable.
But people when they vote tend on average all to chose among the same values. At least was my experience in the graph I posted above. So I rest my case that the median would be more stable. Also with the mean average people tend to polarise because they try to influence the result (strategic voting), and then the distribution would not be normal anymore. And the effect on the mean average would be much bigger.
If you want to play with the experiment you can find it here. Something which some of you could try, for example, would be seeing how this is true if we change the distribution type.
And now watch their graph in coinmarketcap.Delegated Proof-of-Stake Consensus
A robust and flexible consensus protocol
Delegated Proof of Stake (DPOS) is the fastest, most efficient, most decentralized, and most flexible consensus model available. DPOS leverages the power of stakeholder approval voting to resolve consensus issues in a fair and democratic way. All network parameters, from fee schedules to block intervals and transaction sizes, can be tuned via elected delegates. Deterministic selection of block producers allows transactions to be confirmed in an average of just 1 second. Perhaps most importantly, the consensus protocol is designed to protect all participants against unwanted regulatory interference.
Hint: change "blob" to "blame" in url to see (some) related commits e.g. https://github.com/dashpay/dash/blame/v0.12.2.x/src/governance-vote.h#L19@UdjinM6 who coded the votes as enumeration? The votes as enumeration first appeared in 12.1 version and they remain as that in 12.2 too. This does not facilitate someone to code the numerical voting functionality for the (non stupid) Masternodes owners to be able to use. Au contraire, this code change raises a huge obstacle (especially for amateurs like me)
...
Old nodes won't recognize new votes with "4", so it's another major update anyway and thus I'd rather go with a bit cleaner/easier to codify structure like...
To solve this I may do this:
enum vote_outcome_enum_t {
VOTE_OUTCOME_NONE = 0,
VOTE_OUTCOME_YES = 1,
VOTE_OUTCOME_NO = 2,
VOTE_OUTCOME_ABSTAIN = 3,
VOTE_OUTCOME_NUMBER =4
};
Whenever a masternode vote outcome is casted (for example) as 15 , I will add 4 to the vote, make it 19, then when calculate the result I will substract 4 and make it 15 again. Or shall I use another code structure different than the enumeration? And how this structure can support the granularity I need? Numerical voting requires real numbers, not integers.
What do you suggest? Could you fix this, could you change this vote_outcome_enum_t to another class that may in the future support numerical voting? Have a look at the old structure (before 12.1). Straightforward isnt it? It was much more easy to get a numerical vote from a masternode that way. Why did you change this structure? Do you think that the spies entered into your mind (or into Evan's mind) and made you change this specific structure , in order to prevent numerical voting?
// Note: keep votes values in sequence from min to max (no void places)
enum vote_outcome_enum_t {
VOTE_OUTCOME_NONE = -9999,
VOTE_OUTCOME_NO_STRONG = -2,
VOTE_OUTCOME_NO_WEAK = -1,
VOTE_OUTCOME_NO = -1,
VOTE_OUTCOME_ABSTAIN = 0,
VOTE_OUTCOME_YES = 1,
VOTE_OUTCOME_YES_WEAK = 1,
VOTE_OUTCOME_YES_STRONG = 2,
// VOTE_OUTCOME_MIN = VOTE_OUTCOME_NO_STRONG,
// VOTE_OUTCOME_MAX = VOTE_OUTCOME_YES_STRONG,
VOTE_OUTCOME_MIN = VOTE_OUTCOME_NO, // adjust this if NO range is extended
VOTE_OUTCOME_MAX = VOTE_OUTCOME_YES, // adjust this if YES range is extended
}
MNOs need to vote with bounded REAL NUMBERS. A limited num-like voting using integers is not very usefull. It does not offer the required granularity.This is a small part of the actual code I proposed in dev channel back then. So, it would start with status quo (yes/no/abstain) and would allow a limited num-like voting in the future. But as you can see from the discussion here on forum, there was not enough support for this kind of feature, so the code was abandoned.
I don't really agree that a lot of granularity is required but anyway... you don't need another structure - int is 4 bytes, you can fit any reasonable granularity there with some additional encoding/decoding.MNOs need to vote with bounded REAL NUMBERS. A limited num-like voting using integers is not very usefull. It does not offer the required granularity.
Do you have any other idea of a c++ structure that may be used for real numbers and at the same time be compatible with the dash code you have already written ?
Come on!!! You know how those things work, dont you? I will hire @amanda_b_johnson to advertise it, and then all stupid masternodes will want to vote the numbers.But as you can see from the discussion here on forum, there was not enough support for this kind of feature, so the code was abandoned.
Code:// Note: keep votes values in sequence from min to max (no void places) enum vote_outcome_enum_t { VOTE_OUTCOME_NONE = -9999, VOTE_OUTCOME_NO_STRONG = -2, VOTE_OUTCOME_NO_WEAK = -1, VOTE_OUTCOME_NO = -1, VOTE_OUTCOME_ABSTAIN = 0, VOTE_OUTCOME_YES = 1, VOTE_OUTCOME_YES_WEAK = 1, VOTE_OUTCOME_YES_STRONG = 2, // VOTE_OUTCOME_MIN = VOTE_OUTCOME_NO_STRONG, // VOTE_OUTCOME_MAX = VOTE_OUTCOME_YES_STRONG, VOTE_OUTCOME_MIN = VOTE_OUTCOME_NO, // adjust this if NO range is extended VOTE_OUTCOME_MAX = VOTE_OUTCOME_YES, // adjust this if YES range is extended }
And where is the full code you proposed in the dev channel, back then?This is a small part of the actual code I proposed in dev channel back then.
Here is what I have https://pastebin.com/jBmA8G5F, it's not enough for migration but it's a start for code cleanup and some basic preparations.Come on!!! You know how those things work, dont you? I will hire @amanda_b_johnson to advertise it, and then all stupid masternodes will want to vote the numbers.
And where is the full code you proposed in the dev channel, back then?
Is it open source or not? Can you give me a url that points to it?
I am planning to enable "vote the numbers" as a spork.Here is what I have https://pastebin.com/jBmA8G5F, it's not enough for migration but it's a start for code cleanup and some basic preparations.
No limits, just pick the next one (15)I am planning to enable "vote the numbers" as a spork.
Is the number of sporks limited?
Am I allowed by the code to assign a new spork number dedicated to the "vote the numbers" functionality?
Off course I am not an alt account. This is my only account in this forum, I have only 2 wallets, their address is in public view, and my whole crypto fortune is 1.5 Dash and 1.6 PIVX. I have not any other crypto, neither bitcoin, nor tezos, nor lightcoin, nor monero, nor decred. Nothing. Although I knew bitcoin and cryptos since the very beginning (2008), I am crypto-poor by choice.
Go ahead and read his "answer" as well as the entire thread before it. In fact, read ALL of his posts. He just said he has a very small stake in Dash, which means he has no real vested interest, and yet spend an inordinate amount of time here. But that time is spent in attempts to create discord and his own immoral policies.Off course I am not an alt account. This is my only account in this forum, I have only 2 wallets, their address is in public view, and my whole crypto fortune is 1.5 Dash and 1.6 PIVX. I have not any other crypto, neither bitcoin, nor tezos, nor lightcoin, nor monero, nor decred. Nothing. Although I knew bitcoin and cryptos since the very beginning (2008), I am crypto-poor by choice.
Here is my answer to your above allegations.