Which masternodes voted and what exactly voted on various proposals.

Status
Not open for further replies.

demo

Well-known Member
Apr 23, 2016
3,113
263
153
Dash Address
XnpT2YQaYpyh7F9twM6EtDMn1TCDCEEgNX
I'm pretty sure vote hash changes every single time they vote.


Sent from my iPhone using Tapatalk Pro
Yes of course it changes, but if you sort the table by votehash, you could see what masternodes have identical votehash.
The more the votes, the more the possibility these masternodes to be operated by the same person.
Thus the person and the number of masternodes he operates, is identified.
 
  • Like
Reactions: xkcd

jeffh

Member
May 8, 2017
108
45
78
Yes of course it changes, but if you sort the table by votehash, you could see what masternodes have identical votehash.
The more the votes, the more the possibility these masternodes to be operated by the same person.
Thus the person and the number of masternodes he operates, is identified.
Ahh good catch. I'm going to have to play with this some more.
 

demo

Well-known Member
Apr 23, 2016
3,113
263
153
Dash Address
XnpT2YQaYpyh7F9twM6EtDMn1TCDCEEgNX
Ahh good catch. I'm going to have to play with this some more.
Furthermore, the vote hash is neither the only nor the best mathematical function that can be used.
Read here.
 

jeffh

Member
May 8, 2017
108
45
78
Furthermore, the vote hash is neither the only nor the best mathematical function that can be used.
Read here.
Yah I'm well aware that this can be done. Just not entirely convinced of the benefits other than because you can.

I disagree with the idea of confiscating funds from people who you disagree with, or who someone decides isn't benefitting the network.


Sent from my iPhone using Tapatalk Pro
 

demo

Well-known Member
Apr 23, 2016
3,113
263
153
Dash Address
XnpT2YQaYpyh7F9twM6EtDMn1TCDCEEgNX
I disagree with the idea of confiscating funds from people who you disagree with, or who someone decides isn't benefitting the network.
I also disagree with the idea of confiscating funds from people who you disagree with, or who someone decides isn't benefitting the network.

Unless this someone who decides is the majority of the individuals that consist the network. And this majority shouldnt decide like the athenian majority did. The majority should vote the numbers, and should decide by using the mean average.
 
Last edited:

demo

Well-known Member
Apr 23, 2016
3,113
263
153
Dash Address
XnpT2YQaYpyh7F9twM6EtDMn1TCDCEEgNX
Last edited:

jeffh

Member
May 8, 2017
108
45
78
And the benefits are obvious.
I want to cause to the cryptocurrencies exactly what they did to the fiat money which in turn did the same thing to the gold standard.
I am here in order to threat the old guard of money and to provide justice to the new generations
.
I am not a social warrior. I am a new generation warrior.
YOLO is #13!
I can all but guarantee that there are enough MNOs that don't want this - that you'll see more and more ways of obfuscation before you can prove who owns what.

Even Dash Masternode Tool has built in vote obfuscation for those with multiple nodes.

Any effort you put into this will be rendered moot by a software update that hides it better. I don't think anything near the majority agrees with you here.


Sent from my iPhone using Tapatalk Pro
 

demo

Well-known Member
Apr 23, 2016
3,113
263
153
Dash Address
XnpT2YQaYpyh7F9twM6EtDMn1TCDCEEgNX
I can all but guarantee that there are enough MNOs that don't want this - that you'll see more and more ways of obfuscation before you can prove who owns what.

Even Dash Masternode Tool has built in vote obfuscation for those with multiple nodes.

Any effort you put into this will be rendered moot by a software update that hides it better. I don't think anything near the majority agrees with you here.


Sent from my iPhone using Tapatalk Pro
Yes I know that the majority of MNOs is brainwashed.
The fact that the 4663 MNOs do not confiscate the richest wallet, although each one of them has $30547 profit from doing it, proves that the DASH-money is a yet another social convention. The MNOs are brainwashed in order to obey to this specific social convention, and not to another alternative one.
Furthermore, confiscating money from the brain washed MNOs will not obviously occur by decision of the MNOs community, but by decision of the wider Dash community, through a hard fork.

Who wants to prepare the hard fork for this? It is not that hard to implement a wallet confiscation, it just requires the majority of the the online (masternode, miners, other) nodes to reject the original blockchain and to upload an alternative hard_forked blockchain which does not contain the richest wallet in it. You can find the latest original blockchain here and you can experiment in order to find out how to confiscate money from wallets. Who wants to propose a confiscation of the richest wallet into the budget system? You should propose this just one day before the monthly budget finalization (in order for the richest wallet not to be able to react).
In bitcoin, they already did this.

The confiscation of the old wallets just begun in Bitcoin, and the first victim is the greedy Satoshi !
Lets destroy all the social conventions of the old greedy generations, also here in Dash.
 
Last edited:

demo

Well-known Member
Apr 23, 2016
3,113
263
153
Dash Address
XnpT2YQaYpyh7F9twM6EtDMn1TCDCEEgNX
Among 4673 IPs I discovered 908 unique voting patterns. There is one operator who has 70 masternodes, and 594 operators who own just one masternode! Note that those who appear to have only 1 masternode may also be the case of an operator who forgot to vote a singe proposal in some of his masternodes (in that case a unique voting pattern is also created). There are also about 2500 IPs who didnt vote at all.
Here you are the statistics:
70 masternodes --> 1 operator
66 masternodes --> 1 operator
53 masternodes --> 1 operator
52 masternodes --> 1 operator
50 masternodes --> 1 operator
43 masternodes --> 2 operators
38 masternodes --> 1 operator
36 masternodes --> 2 operators
30 masternodes --> 2 operators
27 masternodes --> 1 operator
24 masternodes --> 1 operator
23 masternodes --> 2 operators
22 masternodes --> 2 operators
20 masternodes --> 1 operator
19 masternodes --> 3 operators
17 masternodes --> 3 operators
16 masternodes --> 2 operators
15 masternodes --> 1 operator
14 masternodes --> 1 operator
13 masternodes --> 3 operators
12 masternodes --> 5 operators
11 masternodes --> 2 operators
10 masternodes --> 6 operators
09 masternodes --> 7 operators
08 masternodes --> 9 operators
07 masternodes --> 13 operators
06 masternodes --> 15 operators
05 masternodes --> 16 operators
04 masternodes --> 27 operators
03 masternodes --> 53 operators
02 masternodes --> 128 operators
01 masternodes --> 594 operators
I execute the below code
Code:
curl -s https://demodun.github.io/mnowatch/the_results_dashd_31-12-2017.html| cut -f22 -d"<"|cut -f2 -d">"|grep -v [a-z]|grep -v [A-Z]| grep ^[0-9]|grep -v "-"|sort|uniq -c|sed -e s/'^   '/000/g|sed -s s/'000   '/000000/g|sed -e s/'000  '/00000/g|sed -s s/'000 '/0000/g|sort -r|cut -f1 -d" "|uniq -c
And here you are the new statistics. According to the voting pattern, there is one operator who has 119 masternodes, and 645 operators who own just one masternode.

operators- masternodes the operators own
1 0002211 (<--this operator owns 2211 masternodes!! It is the didnt_vote hash)
1 0000119
1 0000070
1 0000060
1 0000052
1 0000050
2 0000035
1 0000033
2 0000032
1 0000027
1 0000024
2 0000022
1 0000021
1 0000020
1 0000019
2 0000018
3 0000017
1 0000015
3 0000014
1 0000013
2 0000012
6 0000011
4 0000010
7 0000009
9 0000008
10 0000007
16 0000006
21 0000005
26 0000004
47 0000003
124 0000002
645 0000001

Obviously the votehash is not enough, in order to spot the operators having multiple masternodes. The R&D continues.
(dandelion?)
 
Last edited:

demo

Well-known Member
Apr 23, 2016
3,113
263
153
Dash Address
XnpT2YQaYpyh7F9twM6EtDMn1TCDCEEgNX
I execute the below code

Obviously the votehash is not enough, in order to spot the operators having multiple masternodes. The R&D continues.
(dandelion?)
Maybe i should use the intersection of set theory.
The intersection in bash can be found with the command comm.

Ex.https://stackoverflow.com/questions/2696055/intersection-of-two-lists-in-bash

I'm trying to write a simple script that will list the contents found in two lists. To simplify, let's use ls as an example. Imagine "one" and "two" are directories.

one=`ls one`
two=`ls two`
intersection $one $two

comm -12 <(ls 1) <(ls 2)

Use the comm command:

ls one | sort > /tmp/one_list
ls two | sort > /tmp/two_list
comm -12 /tmp/one_list /tmp/two_list
"sort" is not really needed but I always include it before using "comm" just in case.
comm is great but indeed need to work with sorted list. And fortunately here we use ls which from ls Bash man page

Sort entries alphabetically if none of -cftuSUX nor --sort.

comm -12 <(ls one) <(ls two)
Alternative with sort

Intersection of two lists:

sort <(ls one) <(ls two) | uniq -d
symmetric difference of two lists:

sort <(ls one) <(ls two) | uniq -u
 
Last edited:

jeffh

Member
May 8, 2017
108
45
78
So while I believe my core client is fully synced, it's still not pulling votes correctly into the Sentinel DB yet.

Code:
2018-01-09 23:46:37 CGovernanceManager::UpdateCachesAndClean -- Governance Objects: 221 (Proposals: 220, Triggers: 0, Watchdogs: 1/1, Other: 0; Erased: 20), Votes: 395474
Going to keep looking into this as there may be more to this than meets the eye.
 

jeffh

Member
May 8, 2017
108
45
78
Just spent a while looking through sentinel code. It would appear that despite having a table called votes, the only ones that it puts in there are votes that the masternode has voted on.

It might be possible to modify it further to pull in all votes though.
 

jeffh

Member
May 8, 2017
108
45
78
UPDATE - It now works and pulls in 179,000 votes+. The problem is that it's not pulling in the vote hash or the masternode IP or anything else especially useful.

Looks like the methods in Sentinel really are designed just to let it do its job.

Going to take some more modifications to get it working and useful. Feel free to contribute in a fork, or if you want, I can add you as a contributor on this repo.
 

demo

Well-known Member
Apr 23, 2016
3,113
263
153
Dash Address
XnpT2YQaYpyh7F9twM6EtDMn1TCDCEEgNX
UPDATE - It now works and pulls in 179,000 votes+. The problem is that it's not pulling in the vote hash or the masternode IP or anything else especially useful.

Looks like the methods in Sentinel really are designed just to let it do its job.

Going to take some more modifications to get it working and useful. Feel free to contribute in a fork, or if you want, I can add you as a contributor on this repo.
Yes add me. I would like to help.
 

jeffh

Member
May 8, 2017
108
45
78
Yes add me. I would like to help.
Just let me know what your Github account name is and I'll make you a collaborator and then I'll point out where I think it needs changes. I'm also wondering if it might just make sense to take Sentinel and condense it down to what we actually need and remove a lot of the stuff we don't, because at the end of the day it really just needs to scan the blockchain and pull out governance objects and their votes and then save that to the SQLite database and it doesn't need half the code it has to do that.
 

demo

Well-known Member
Apr 23, 2016
3,113
263
153
Dash Address
XnpT2YQaYpyh7F9twM6EtDMn1TCDCEEgNX
Just let me know what your Github account name is and I'll make you a collaborator and then I'll point out where I think it needs changes. I'm also wondering if it might just make sense to take Sentinel and condense it down to what we actually need and remove a lot of the stuff we don't, because at the end of the day it really just needs to scan the blockchain and pull out governance objects and their votes and then save that to the SQLite database and it doesn't need half the code it has to do that.
  1. put into the same directory: the script and the javascript code.
  2. run the script.
 

demo

Well-known Member
Apr 23, 2016
3,113
263
153
Dash Address
XnpT2YQaYpyh7F9twM6EtDMn1TCDCEEgNX
Just let me know what your Github account name is and I'll make you a collaborator and then I'll point out where I think it needs changes. I'm also wondering if it might just make sense to take Sentinel and condense it down to what we actually need and remove a lot of the stuff we don't, because at the end of the day it really just needs to scan the blockchain and pull out governance objects and their votes and then save that to the SQLite database and it doesn't need half the code it has to do that.
@jeffh, how someone can install your sentinel version in a dash (non masternode) wallet?
Is there a howto file?
 

jeffh

Member
May 8, 2017
108
45
78
@demo, I'll go ahead and make that small tweak to my github repo. It's basically just changing which repository you're pulling sentinel from since it's all coming from source.
 

demo

Well-known Member
Apr 23, 2016
3,113
263
153
Dash Address
XnpT2YQaYpyh7F9twM6EtDMn1TCDCEEgNX
UPDATE - It now works and pulls in 179,000 votes+. The problem is that it's not pulling in the vote hash or the masternode IP or anything else especially useful.

This is maybe because you defined only gobject getcurrentvotes.
Thats not enough. For our statistics to work we also need to know:

As shown in the script that gets reports from dashd:
./dash-cli masternodelist addr
./dash-cli gobject list


Are these data also imported into the database somehow?
Maybe in our version of sentinel we should also define:
def get_masternodelist_addr
def get_gobject_list
 
Last edited:

jeffh

Member
May 8, 2017
108
45
78
This is maybe because you defined only gobject getcurrentvotes.
Thats not enough. For our statistics to work we also need to know:

As shown in the script that gets reports from dashd:
./dash-cli masternodelist addr
./dash-cli gobject list


Are these data also imported into the database somehow?
Maybe in our version of sentinel we should also define:
def get_masternodelist_addr
def get_gobject_list
Yeah I'm aware that it doesn't get the rest of that info. It's on my To Do list but I'm pretty bogged down right now, so I'm not sure when I'll have time to come back and work on this some more. If you've got some time to throw at making those tweaks to Sentinel, go ahead and I'll merge those changes in.

What I got working was a bare minimum Sentinel install that doesn't care if you run a full node or a masternode and that saves all vote data that's sitting in the blockchain. The additional features we want are going to require some more work in tweaking the code to do what we want, rather than what the developers originally intended.
 

Ftoole

Member
Aug 20, 2017
132
27
78
37
Wouldn’t it be a good idea to put this data in a database then you could cross reference votes and stuff easier?
 

demo

Well-known Member
Apr 23, 2016
3,113
263
153
Dash Address
XnpT2YQaYpyh7F9twM6EtDMn1TCDCEEgNX
Wouldn’t it be a good idea to put this data in a database then you could cross reference votes and stuff easier?
Yes of course, the database approach is much better.

But puting the data that my script produces into a database is awkward as long as my script is also awkward. The better approach is to use a patched sentinel database, that could run in a simple (non masternode) empty wallet that runs 24/7. This is what @jeffh is trying to do (and I am trying to help also)

Of course the database approach requires a dashd and/or/xor a LAMP web server to run 24/7. This is not my case, I have neither a dashd nor a lamp that runs 24/7. In my github site I am only allowed to upload static client side html files, thats why the bash script is still usefull for me. But wait, I think I may find a solution with sqlite and php!
 
Last edited:

jeffh

Member
May 8, 2017
108
45
78
Yes of course, the database approach is much better.

But puting the data that my script produces into a database is awkward as long as my script is also awkward. The better approach is to use a patched sentinel database, that could run in a simple (non masternode) empty wallet that runs 24/7. This is what @jeffh is trying to do (and I am trying to help also)

Of course the database approach requires a dashd and/or/xor a LAMP web server to run 24/7. This is not my case, I have neither a dashd nor a lamp that runs 24/7. In my github site I am only allowed to upload static client side html files, thats why the bash script is still usefull for me. But wait, I think I may find a solution with sqlite and php!
I updated the Github page, haven't made any changes to the code yet but I did adjust the Readme to better clarify that this is what I'm calling, the "Dash Sentinel Data Engine".

Looks like it's going to take some significant changes to the code to get it to do what we want. I'm probably going to end up tossing a lot of it and re-writing it because there are so many methods that just aren't necessary and all we really need are the parts that write to the database and that talk to the dashd instance.
 
  • Like
Reactions: demo

demo

Well-known Member
Apr 23, 2016
3,113
263
153
Dash Address
XnpT2YQaYpyh7F9twM6EtDMn1TCDCEEgNX
I updated the Github page, haven't made any changes to the code yet but I did adjust the Readme to better clarify that this is what I'm calling, the "Dash Sentinel Data Engine".

Looks like it's going to take some significant changes to the code to get it to do what we want. I'm probably going to end up tossing a lot of it and re-writing it because there are so many methods that just aren't necessary and all we really need are the parts that write to the database and that talk to the dashd instance.
Why dont you upgrade to 12.2
Some of the problems you encounter may appear because of the old 12.1 version you refer to.
 
Status
Not open for further replies.