• Forum has been upgraded, all links, images, etc are as they were. Please see Official Announcements for more information

Please Vote !

tungfa

Well-known member
Foundation Member
Masternode Owner/Operator
PjdKmem.png


http://dashvotetracker.com

https://www.dashwhale.org
 

The most important part of this tracker is the history graph. Congratulation for keeping votes' history. This is very very important.

But I have a question here:

HOW DO I KNOW THAT THE SUM OF VOTES IS CALCULATED CORRECTLY?

Is there a vote "blockchain" where all votes are preserved? I would like to see the public keys of the Masternodes, and what each masternode voted in time. Is this information available? Otherwise someone could claim that your sum is not correct, and that you may cheat when summing the votes.
 
Last edited:
Dont you just hate it when people type in caps & bold fonts ? It is like listening to a child shouting to get attention.
Thanks for the reminder to vote by the way tungfa .. all taken care of.
 
Dont you just hate it when people type in caps & bold fonts ? It is like listening to a child shouting to get attention.
Thanks for the reminder to vote by the way tungfa .. all taking care of.


I AM SHOUTING MY FRIEND. I AM SHOUTING. FOR THE DEAF TO HEAR.

HOW DO I KNOW THAT THE SUM OF VOTES IS CALCULATED CORRECTLY?
 
To know, is to know that you know nothing. That is the meaning of true knowledge.
- Socrates

edit : oh darn, quoting Socrates to a child is not very wise... me bad.
 
Source code is right there https://github.com/dashpay/dash
Go find an error and
- create an issue https://github.com/dashpay/dash/issues describing it
- or fix it yourself and create pull request https://github.com/dashpay/dash/pulls

If the calculation and the sum of votes is done in a centralized way, then a cheat may occur. Additionaly, even in case the caclulation is done in a decentralized way, there is still a problem because nοt all masternodes run the same version of code. So the problem is not in the source code as you point. The problem is neither in the protocol (as long as the protocol may also change over time.) The problem is whether a distributed database exists thats keeps all votes that have been casted. Is there a database that keeps all votes?

You have to preserve the votes in a "blockchain" type database, and let everyone, even an independant and not related to the dash community, at every moment to recalculate the vote result and check whether it is ( or whether it was) a fair calculation. A public database that preserves all votes (thus allows the recalculation of the result), is the only way to assure that the calculation of the result is done, was done, and will be done in a fair way.

So the question is this: where is this distributed database that keeps all votes that have been casted, by all mastenodes, in all times? This is what I am asking. If there is such a database, then everything is ok.

P.S.
It is fun that ignorants rate the severe flaws I refer too, as "trolling". It is not trolling to try to preserve (or to increase) the reliability of the voting procedure.
 
Last edited:
If the calculation and the sum of votes is done in a centralized way, then a cheat may occur. Additionaly nοt all masternodes run the same version of code. So the problem is not in the source code as you point. The problem is neither in the protocol , as long as the protocol may also change over time.

The problem is whether a database exists thats keeps all votes that have been casted. Is there a database that keeps all votes?

You have to preserve the votes in a "blockchain" type database, and let everyone, even an independant and not related to the dash community, at every moment to recalculate the vote result and check wheither it is ( or weither it was) a fair calculation. The database that allows the recaclulation of result is the only way to assure that the calculation is done, was done, and will be done in a fair way.

So the question is this: where is the database that keeps all votes that have been casted by all mastenodes, in all times?

This is what I am asking. If there is such a database, then everything is ok.

The votes are not counted centrally. They are counted by the network protocol -- what you see on dashvotetracker.com is merely a representation of the current state of the network.
https://github.com/dashpay/dash/blob/master/src/masternode-budget.cpp
 
The votes are not counted centrally. They are counted by the network protocol -- what you see on dashvotetracker.com is merely a representation of the current state of the network.
https://github.com/dashpay/dash/blob/master/src/masternode-budget.cpp

My main question is not whether the vote result is calculated in a centralized or in a decentralized way. My main question is whether the votes are kept in a database or not.

I am an independant observer, and I would like all votes to be kept in a decentralized database, along with their timestamps. So I could download all votes and check whether your way of calculating the vote result is a correct one or not.

If someone owns the majority of the masternodes, and decides to cheat in the calculation of the vote result, we may are able to discover the cheat, but how can we PROVE the cheat if the votes are not preserved somewhere?

Thanks for the code reference.
I ll check on it whether this database I am asking for, is provided.
 
Last edited:
My main question is not whether the vote result is calculated in a centralized or in a decentralized way. My main question is whether the votes are kept in a database or not.

I am an independant observer, and I would like all votes to be kept in a decentralized database, along with their timestamps. So I could download all votes and check whether your way of calculating the vote result is a correct one or not.

If someone owns the majority of the masternodes, and decides to cheat in the calculation of the vote result, we may are able to discover the cheat, but how can we PROVE the cheat if the votes are not preserved somewhere?

Thanks for the code reference.
I ll check on it whether this database I am asking for, is provided.

Someone please correct me if I am wrong, but from what I understand from the code and the descriptions I have heard previously, I believe all budget proposals *and* all votes are stored in the budget.dat file which is synced across all nodes in the network (the DB demo is looking for). Not sure if there is an easy way to read/parse/query this file though.
 
Someone please correct me if I am wrong, but from what I understand from the code and the descriptions I have heard previously, I believe all budget proposals *and* all votes are stored in the budget.dat file which is synced across all nodes in the network (the DB demo is looking for). Not sure if there is an easy way to read/parse/query this file though.


I also discovered a structure named mapvotes. But unfortunately searching in dash code is not allowed, because dash is a bitcoin fork, and forked repositories are not currently searchable. This is github's fault of course, not dash's fault. Github is a highly protected area (you know by who ;)) They want our code in github, but they dont want us to be able to search other people's forks.

Code:
bool CBudgetProposal::AddOrUpdateVote(CBudgetVote& vote, std::string& strError)
{
LOCK(cs);
uint256 hash = vote.vin.prevout.GetHash();
if(mapVotes.count(hash)){
if(mapVotes[hash].nTime > vote.nTime){
strError = strprintf("new vote older than existing vote - %s\n", vote.GetHash().ToString());
LogPrint("mnbudget", "CBudgetProposal::AddOrUpdateVote - %s\n", strError);
return false;
}
if(vote.nTime - mapVotes[hash].nTime < BUDGET_VOTE_UPDATE_MIN){
strError = strprintf("time between votes is too soon - %s - %lli\n", vote.GetHash().ToString(), vote.nTime - mapVotes[hash].nTime);
LogPrint("mnbudget", "CBudgetProposal::AddOrUpdateVote - %s\n", strError);
return false;
}
}
if(vote.nTime > GetTime() + (60*60)){
strError = strprintf("new vote is too far ahead of current time - %s - nTime %lli - Max Time %lli\n", vote.GetHash().ToString(), vote.nTime, GetTime() + (60*60));
LogPrint("mnbudget", "CBudgetProposal::AddOrUpdateVote - %s\n", strError);
return false;
}
mapVotes[hash] = vote;
return true;
}


What I undestand when reading the code is that only current votes of all masternodes are preserved in budget.dat. But It is not preserved how the vote of a masternode (for a specific proposal) varies in time.

So (if there is a way to read/parse/query budget.dat) you can prove that the vote result is calculated correctly for the budget of this month, but you cannot prove whether the calculation was done correctly 3 months or 1 year before.
 
Last edited:
Someone please correct me if I am wrong, but from what I understand from the code and the descriptions I have heard previously, I believe all budget proposals *and* all votes are stored in the budget.dat file which is synced across all nodes in the network (the DB demo is looking for). Not sure if there is an easy way to read/parse/query this file though.

It is not enough for the budget.dat database to be synced. It has to be signed also by the masternodes, like we do in the blockchain. Is this happening in the code or not? Who knows? Do I?

Unfortunately nobody cares about the important question of the reliability of the voting procedure we just raised. Everyone is busy watching amanda's beautifull monologues (and eyes). Public relations, and public relations again. The important issues are always underestimated, because the majority is a majority of ignorants attracted by advertising rather than virtue or quality.
 
Last edited:
Back
Top