Masternode voting discussion thread

dime

New Member
Mar 23, 2014
19
2
3
I have a question about masternode voting I brought to IRC but it was not answered.

<dimesz> can no one answer this question? what is the voting that the block miner gets to do? it decides which masternode to use?
<eu-Robert> dimesz: google gave me this brief explanation https://darkcointalk.org/threads/darkcoin-update-masternode-requirements-masternode-payments.225/ @ "How will the payments work?"
<dimesz> yeah.. that's the post with such little information that it led me to ask my question in the first place
<dimesz> each block miner only votes for one masternode? so if 20 (pools) control 99% of the hash rate, then about 20 masternodes will get paid?
<dimesz> let me clarify, then by the end of a day, only 20 masternodes will have seen payments
<InternetApe> dimesz, every block a new masternode is selected,
<InternetApe> So even if there are 500 Masternodes they all should get at least one payment a day
<dimesz> but the person who mines the block gets to vote with 1/6 of the decision which masternode gets paid...
<dimesz> so what's to stop the top 20 pools from always voting for their own masternode to get the payment?
<dimesz> if it was in a random fashion, i get that all masternodes would get elected eventually and you can use the formula blockreward*.1*576 / masternodes, etc
<dimesz> but then it says here that the masternode that gets paid is voted on.. by miners.. which will be a pool 99.99% of the time..
<dimesz> why would a pool vote for a random masternode when they can all vote for their own masternode to get the payment
<InternetApe> There is no way for them to SET/HARDCODE who they vote for
<dimesz> ahhh ok.. that's the small bit of information i was looking for
<dimesz> because when you say "vote for" it seems like they have the power to decide
<curious_> dimesz even if they could, they would lose miners for messing with the coin just as pools that approach 51% lose miners. Not worth it for a higher share of the 10% masternodes get
<dimesz> InternetApe: from the wiki, it says "The aim of this mechanism is to make reliable payments to well-behaving masternodes."
<dimesz> if that statement's true, then some masternodes will get preference
<dimesz> in what way do they get this?

Too lazy to stylize so irc logs it is.. Here is all the information I have about it so far:
From Evan:
We're going to extend the blockchain by adding a voting system. Each block that is solved the miner will add the address of the masternode that he believes should get paid and increment a counter. Upon reaching six confirmations an extra transaction will be added to the block paying out that masternode and removing the vote. This means that to cheat the system you'll need 51% of the hashing power.
From wiki:
The aim of this mechanism is to make reliable payments to well-behaving masternodes. The alternative was to make the block payment to the last node which performed a DarkSend, however this would facilitate scripts in the nodes in which there would be a lot of bogus DarkSends just to increase one's chances to get the payment.
The main concern here is that a pool (statistically speaking, there are no miners and only pools..) gets some kind of say on which masternodes will get the payment. How much say do they get? It's important to clarify this point.
 

vertoe

Three of Nine
Mar 28, 2014
2,573
1,652
1,283
Unimatrix Zero One
The answer is already included in your question, isnt it?

<dimesz> why would a pool vote for a random masternode when they can all vote for their own masternode to get the payment
<InternetApe> There is no way for them to SET/HARDCODE who they vote for
 
  • Like
Reactions: DcoinZ

dime

New Member
Mar 23, 2014
19
2
3
The answer is already included in your question, isnt it?

<dimesz> why would a pool vote for a random masternode when they can all vote for their own masternode to get the payment
<InternetApe> There is no way for them to SET/HARDCODE who they vote for
Answered, but then possibly contradicted by "The aim of this mechanism is to make reliable payments to well-behaving masternodes" and "Each block that is solved the miner will add the address of the masternode that he believes should get paid and increment a counter. Upon reaching six confirmations an extra transaction will be added to the block paying out that masternode and removing the vote. This means that to cheat the system you'll need 51% of the hashing power"

What I'm asking for is what mechanism is in place that gives preferential treatment to certain masternodes. What is the voting that is done by the miner of each block. They get to vote for a masternode? Do they get to determine who they vote for? Is it random? What checks are in place to make sure that the block miners don't always just vote for their own masternodes?

Yes, you'd need 51% of the hash power to take over all 6 votes, but imagine a scenario where top 6 pools are all selfish actors that point their votes to their own masternodes. They'd have enough votes to keep one of their 6 masternodes being the payee most of the time.
 

chaeplin

Active Member
Core Developer
Mar 29, 2014
749
356
133
Answered, but then possibly contradicted by "The aim of this mechanism is to make reliable payments to well-behaving masternodes" and "Each block that is solved the miner will add the address of the masternode that he believes should get paid and increment a counter. Upon reaching six confirmations an extra transaction will be added to the block paying out that masternode and removing the vote. This means that to cheat the system you'll need 51% of the hashing power"

What I'm asking for is what mechanism is in place that gives preferential treatment to certain masternodes. What is the voting that is done by the miner of each block. They get to vote for a masternode? Do they get to determine who they vote for? Is it random? What checks are in place to make sure that the block miners don't always just vote for their own masternodes?

Yes, you'd need 51% of the hash power to take over all 6 votes, but imagine a scenario where top 6 pools are all selfish actors that point their votes to their own masternodes. They'd have enough votes to keep one of their 6 masternodes being the payee most of the time.
https://darkcointalk.org/threads/darkcoin-update-masternode-requirements-masternode-payments.225/
https://darkcointalk.org/threads/darkcoin-update-masternode-requirements-masternode-payments.225/

masternode vote is open sourced.
https://github.com/darkcoinproject/darkcoin

http://drk.poolhash.org/graph.html : monitored.

getblocktemplate display payee.


And client check Votes.
Code:
2014-05-26 05:12:49 ERROR: CheckBlock() : Bad vote detected
2014-05-26 05:12:49 ERROR: ProcessBlock() : CheckBlock FAILED
 
Last edited by a moderator:

minersday

Member
Apr 9, 2014
77
19
48
http://www.darkcoin.io/masternodes.txt
whats up with this? same IP, several times over.
"54.187.145.130:9999" : 1,
"54.72.196.78:9999" : 1,
"54.215.250.146:9999" : 1,
"192.99.184.42:9999" : 1,
"192.99.184.42:9999" : 1,
"192.99.184.42:9999" : 1,
"192.99.184.42:9999" : 1,
"192.99.184.42:9999" : 1,
"192.99.184.42:9999" : 1,
"192.99.184.42:9999" : 1,
"192.99.184.42:9999" : 1,
"192.99.184.42:9999" : 1,
"192.99.184.42:9999" : 1,
"192.99.184.42:9999" : 1,
"192.99.184.42:9999" : 1,
"192.99.184.42:9999" : 1,
"192.99.184.42:9999" : 1,
"192.99.184.42:9999" : 1,
"80.38.144.39:9999" : 1,
"54.215.241.121:9999" : 1,
"184.73.179.148:9999" : 1,
 

chaeplin

Active Member
Core Developer
Mar 29, 2014
749
356
133
http://www.darkcoin.io/masternodes.txt
whats up with this? same IP, several times over.
"54.187.145.130:9999" : 1,
"54.72.196.78:9999" : 1,
"54.215.250.146:9999" : 1,
"192.99.184.42:9999" : 1,
"192.99.184.42:9999" : 1,
"192.99.184.42:9999" : 1,
"192.99.184.42:9999" : 1,
"192.99.184.42:9999" : 1,
"192.99.184.42:9999" : 1,
"192.99.184.42:9999" : 1,
"192.99.184.42:9999" : 1,
"192.99.184.42:9999" : 1,
"192.99.184.42:9999" : 1,
"192.99.184.42:9999" : 1,
"192.99.184.42:9999" : 1,
"192.99.184.42:9999" : 1,
"192.99.184.42:9999" : 1,
"192.99.184.42:9999" : 1,
"80.38.144.39:9999" : 1,
"54.215.241.121:9999" : 1,
"184.73.179.148:9999" : 1,
I think it's cosmetic bug.

"192.99.184.42:9999" : 1,
"192.99.184.43:9999" : 1,
"192.99.184.44:9999" : 1,
"192.99.184.45:9999" : 1,
"192.99.184.47:9999" : 1,
"192.99.184.48:9999" : 1,
"192.99.184.49:9999" : 1,
"192.99.184.51:9999" : 1,
"192.99.184.52:9999" : 1,
"192.99.184.53:9999" : 1,
"192.99.184.59:9999" : 1,
"192.99.184.61:9999" : 1,
"192.99.184.62:9999" : 1,
"192.99.184.63:9999" : 1,
"192.99.184.54:9999" : 1,
"192.99.184.55:9999" : 1,
"192.99.184.56:9999" : 1,
"192.99.184.58:9999" : 1,
"192.99.184.60:9999" : 1,
"192.99.184.46:9999" : 1,
"192.99.184.50:9999" : 1,
"192.99.184.57:9999" : 1,
 

chaeplin

Active Member
Core Developer
Mar 29, 2014
749
356
133
would be nice to clarify this.
I don't know well, but ..

each node tx out and masternode number(uniq) is maintained.
as to vote masternode, ip address is irrelevant.

Darksend client are not directely connected to Masternode, rather through connected p2p peer, transfer info.

So Masternode ip list is used to check out. If not used, not redeemed, and ping network eveery 30 min, ip address is not significant item.

Just thought. -
 

fernando

Powered by Dash
Dash Core Team
Moderator
Foundation Member
May 9, 2014
1,528
2,061
283
Not sure about how to check, but I do know that votes are supposed to be random.
 

konadave2004

New Member
May 18, 2014
2
0
1
Everybody take a deep breath and relax. Or panic and sell me your Darks for nickels. Every time the masses doubt Dark I make money off of them. Darkcoin is not just another crypto.
 
May 2, 2014
151
59
88
Im feeling much better having seen $20 Dark, with a chance to buy this low agian, We know its just getting started too! sorta like bitcoin 09!
 

mastermined

Active Member
May 26, 2014
513
387
133
what do y'all think about what this guy said?....
[quote author=phzi link=topic=421615.msg7003757#msg7003757 date=1401323764]
I don't like the masternode idea myself (quasi-centralized anonymous spends seem just plain silly), but here's a possible idea for handling payments:

When a masternode comes online, it broadcasts its pretense to the network, and joins the back of a payment queue.
Miners maintain a list of masternodes, along with the last payment time.
The masternode that hasn't been paid in the longest gets a chunk of the next block.
The masternode that was paid then falls to the bottom of the payment queue.

Checks could be coded into block validation that ensures the right masternode was paid, and if not, nodes reject the block.
[/quote]
 
  • Like
Reactions: vertoe

doopalek

New Member
Jul 21, 2014
17
1
3
Where can I find details about voting process?

There is a sentence in the wiki: "The aim of this mechanism is to make reliable payments to well-behaving masternodes.". What does a well-behaving node do?
How can you maximize the probability of a MN to be chosen? Is there anything more you can do besides running the server 24h/7?
How much does a break in MN uptime decrease the probability of the given MN to be chosen in next votes?
If one MN was down for for example 1 day - how much does it affect future votes? Is it a good idea to destroy this node and setup a new one in such case?
 

vertoe

Three of Nine
Mar 28, 2014
2,573
1,652
1,283
Unimatrix Zero One
Where can I find details about voting process?
This thread may help you: masternode voting

How can you maximize the probability of a MN to be chosen? Is there anything more you can do besides running the server 24h/7?
No. Keep it active 24/7 is all you can do.

How much does a break in MN uptime decrease the probability of the given MN to be chosen in next votes?
If one MN was down for for example 1 day - how much does it affect future votes? Is it a good idea to destroy this node and setup a new one in such case?
Not much. I've created nodes which got paid within 30 minutes and some nodes after 5 days. Random it is. No need to destroy a node after it went down unless you are banned or something.
 

doopalek

New Member
Jul 21, 2014
17
1
3
This thread may help you: masternode voting
https://darkcointalk.org/threads/masternode-voting.863/
This thread does not help much.
What exactly do miners take into account when voting? Is it really a random from all currently active masternodes? Is it a random from nodes active for last hour? Is it really a basic random function from masternodes list?
Not much. I've created nodes which got paid within 30 minutes and some nodes after 5 days. Random it is. No need to destroy a node after it went down unless you are banned or something.
I still get the feeling that some nodes are much more lucky than others. For example in the same period of time (almost a month) one node got 27 payments, other only 14.

Thanks for your reply!
 

Ryan Taylor

Well-known Member
Dash Core Team
Foundation Member
Jul 3, 2014
539
1,631
263
Scottsdale, AZ, USA
This thread does not help much.
What exactly do miners take into account when voting? Is it really a random from all currently active masternodes? Is it a random from nodes active for last hour? Is it really a basic random function from masternodes list?

I still get the feeling that some nodes are much more lucky than others. For example in the same period of time (almost a month) one node got 27 payments, other only 14.

Thanks for your reply!
I would check your payment address at http://drk.poolhash.org/masternode.html. If you see any payments that went to a different payment address whereas yours was the expected payee, it is possible that the pools don't have the same list as the masternodes. If this is the case, creating a new IP and new payment address should correct the issue. I had one MN that was producing fine, then I accidentally sent too much out of the wallet (thus disabling the MN), and even though I restarted it, my MN started getting skipped over. After restarting, I've been getting fairly regular payments again. RC4 will correct this issue, but meantime it is possible that you've been permanently kicked off one or more of the pool lists or something.
By the way, 14 is not that unusual and isn't worrisome. I'd only worry if you were "expected payee" and the payment went to someone else.
 

vertoe

Three of Nine
Mar 28, 2014
2,573
1,652
1,283
Unimatrix Zero One
The payment goes to a random masternode amoung all online.
That way, it is equal and cannot be cheated.
The vote is great. Keep the voting!
I guess the question was how to read this:

15:17:05





masternode votes



15:17:05





{
"122228" : "OP_DUP OP_HASH160 29d3366c27e84419d7c0c9d9fc45b07ec5c9aa45 OP_EQUALVERIFY OP_CHECKSIG",
"122229" : "OP_DUP OP_HASH160 40c4c0b9833dfcaee8bbcd1f27f7c06bd5f36864 OP_EQUALVERIFY OP_CHECKSIG",
"122230" : "OP_DUP OP_HASH160 2d53713c98a343b2a5b8ce1c49fd1e7410cfbe85 OP_EQUALVERIFY OP_CHECKSIG",
"122231" : "OP_DUP OP_HASH160 22ea4dd04098bbf4af2663940bcddd6a4dc520e8 OP_EQUALVERIFY OP_CHECKSIG",
"122232" : "OP_DUP OP_HASH160 e84350717dff9a89f9207d5ba153d7ce59253831 OP_EQUALVERIFY OP_CHECKSIG",
"122233" : "OP_DUP OP_HASH160 8702e1acd03ec0462a7565ed3576200464165d29 OP_EQUALVERIFY OP_CHECKSIG",
"122234" : "OP_DUP OP_HASH160 62bc6ab590be49b81d8675e3c99b3224a8746b28 OP_EQUALVERIFY OP_CHECKSIG",
"122235" : "OP_DUP OP_HASH160 3d4a7997d19200a6cb68aa24f93f93d3eb6c40fe OP_EQUALVERIFY OP_CHECKSIG",
"122236" : "OP_DUP OP_HASH160 61355a7470f061fdbd677ca1e13b9de4a387baa1 OP_EQUALVERIFY OP_CHECKSIG",
"122237" : "OP_DUP OP_HASH160 e0b6ed563caaa54c4c0d07c78b00eb046342b196 OP_EQUALVERIFY OP_CHECKSIG"
}
 

Tesquenure

Member
Mar 23, 2014
110
13
78
Ok thx

Where is a way to see all vote ?

Do there is an other comande line to see if a MN is ban, other than "masternode list | grep IP" ?

Thx
 

vertoe

Three of Nine
Mar 28, 2014
2,573
1,652
1,283
Unimatrix Zero One
Ok thx

Where is a way to see all vote ?

Do there is an other comande line to see if a MN is ban, other than "masternode list | grep IP" ?

Thx
Check out these sites parsing cool stuff
https://drk.mn/masternodes.html shows the voting consesus across different nodes
http://drk.poolhash.org/poolhash.html shows the paid masternode from confirmed block (scroll down a bit)
http://drk.poolhash.org/masternode.html even more cool data

hope that helps.

edit, did you check the block header btw? I think the voting information is included in every block header.
 
  • Like
Reactions: Tesquenure

Tesquenure

Member
Mar 23, 2014
110
13
78
Check out these sites parsing cool stuff
https://drk.mn/masternodes.html shows the voting consesus across different nodes
http://drk.poolhash.org/poolhash.html shows the paid masternode from confirmed block (scroll down a bit)
http://drk.poolhash.org/masternode.html even more cool data

hope that helps.

edit, did you check the block header btw? I think the voting information is included in every block header.
Thx, i already know There 3 webtool.
Block header you said, i have to find that.
Thx
 

booyah

New Member
Apr 18, 2014
15
2
3
if RC4 is meant to make voting more fair i disagree, since updating to latest version of MN my MN has not received one payment in last 9 days, previously it was getting paid every 4/5 days and now there is even less MN than before too.

EDIT:
ok well checking my MN history seems Nicehash nominated me on 20th but no payout "tx_0_vout_1" what does this mean and also another payment to me also on 20th BUT was sent to another MN, what does "innmlist:" mean as this was before the address my payout was sent too, do i need to change my MN ip address and MN drk address as suggested by babygiraffe? Thanks.
 
Last edited by a moderator:

David

Well-known Member
Dash Support Group
Jun 21, 2014
618
628
163
Hi All,

As much as i can understand what "Random" is...
realize that there's a chance that i will never get paid for my running masternode !!!!!

That's sucks !
This thread is nearly a year old. Everything works much differently now. There is a reference node that keeps track of MN payments and ensures that every MN gets paid in a round-robin type fashion.