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

Vote: Self-sustainable Decentralized Governance by Blockchain

Anyone can start off a proposal by submitting it from a masternode. The data required consists of ProposalName, ProposalURL, PaymentCount, StartingBlock, PaymentAddress and PaymentAmountUSD. The ProposalURL is a json object with a ShortDescription, LongDescription, PDFURL and any other fields that are required to show users.

What does the StartingBlock property do? Does it determine how long the voting remains open?
 
Hi Evan,

Please correct me if my understanding is flawed:
Since these pass through the Masternode network, would there be anything in place to keep a malicious user from submitting an inordinate amount of proposals or invalid JSON objects that could prove to be a nuisance or tie up resources processing excessive requests?

The JSON object is pretty much ignored by the protocol. It's just used on the website to show more information to the users. If you mess that file up, it wouldn't mess with the network and it will pretty much be ignored.

I suggested an anti-spam fee, eg 1 DASH to submit a proposal.

That's a great idea, that will definitely help
 
I suggested a fee, eg 1 DASH to submit a proposal.
That could be interesting - If the proposal is rejected the collateral could be added to an approved project perhaps? (or returned after some time period, but that defeats the purpose of a fee)

-Second question that may or may not be valid- How would we prevent 'imitation' requests if that's a concern:
(an exact duplicate of an existing vote, or one with a slight change in parameters that may not be immediately noticeable)

The community could police that? May get annoying as utilization shoots up.
 
What does the StartingBlock property do? Does it determine how long the voting remains open?

Using starting block, you can tell the network you would like to start getting paid in 3 months or so. That's also how it calculates when your payments are complete.
 
How The Network Will Pay Proposals

To remove the escrow account and pay exact amounts we can use a spork to send the current USD value of DASH to the network. This process can be decentralized later, but is out of scope for the initial version. After the network has the correct value to use, we can then reduce the blockreward of all blocks by 10% and at the end of the cycle the network can pay the proposals their exact own amounts using very large blocks, which will catch it up with the required block reward.

Here’s an example of what this will look like, let’s say we have this budget and a $3 DASH price:

PropOne, Reward $8000
PropTwo, Reward $8000
PropThree, Reward $5000
PropFour, Reward $4000
PropFive, Reward $900

Total $25900 (Total budget is $25920.00 at 10%, notice there’s $20 left over)

we’ll use a static block reward of 5 for simplicity:

Block 300,000 - Miner reward 2.47, Masternode payee 2.025 (a total reward of 4.5, when the target reward is 5)
… 17280 blocks pass (1 month) ...
Block 317280 - Miner reward 2.47, PropOne payee 2666.66DASH
Block 317281 - Miner reward 2.47, PropTwo payee 2666.66DASH
Block 317282 - Miner reward 2.47, PropThree payee 1666.66DASH
Block 317283 - Miner reward 2.47, PropFour payee 1333.33DASH
Block 317284 - Miner reward 2.47, PropFive payee 300.00DASH

---

I don't think anyone will have an issue with changing to this system, as it's far superior to the existing one. If you do, simply change from vote from Yea to Nay.

Evan, correct me if I am wrong, but according to this new proposal the block reward will be reduced 10%. Then based on MN voting a certain number of projects are funded where the total cost of those projects must be X where 0%<= X <= 10% of the original block reward (in your example 5). Next those funds are paid by some superblocks say at the end of every month. Finally, if the total required funds are less than 10% of the original block reward then the remaining Dash is never generated (in your example the $20 or 6.667 DASH). Is that correct?
 
Last edited by a moderator:
-Second question that may or may not be valid- How would we prevent 'imitation' requests if that's a concern:
(an exact duplicate of an existing vote, or one with a slight change in parameters that may not be immediately noticeable)

The community could police that? May get annoying as utilization shoots up.

Each proposal would obviously have it's own topic on this forum. Enough comments like "Project 12 is just a ripoff of project 7. Don't vote for it!" should be sufficient.
 
I don't think anyone will have an issue with changing to this system, as it's far superior to the existing one. If you do, simply change from vote from Yea to Nay.

Should rebuff user response on the voting system with this aspect. There is no response on success from client side on delivering a vote or write to debug.log. Additionally, the client side should be able to check pmn->lastVote equivalent from masternodeman as well and respond with a message indicating votes cannot be changed within the specified interval rather than just returning.

Masternode handling is obviously more important to govern this system, but if clients don't have an easy way of acknowledging the status of each vote call it complicates the process.
 
Finally, if the total required funds are less than 10% of the original block reward then the remaining Dash is never generated (in your example the $20 or 6.667 DASH). Is that correct?

I don't think it would be 'earmarked' (and thus the block reward modified) in the first place. Not so much a case of never generated as never needed, never taken?

At least that's how I read it - Evan was just demonstrating a within-max-budget scenario.
 
Sorry to bug you all, but Crowning said I could vote via my remote masternodes. I haven't been able to vote via my local (using vote-many shows failed 1) When I vote on my remote, using dashd masternode vote yea I get no feedback, and checking here: http://178.254.18.153/~pub/Dash/masternode_payments_stats.html, the vote count didn't go up. I checked my debug log, and I can't find anything definitive searching for yea or vote or anything. The remotes and the locals were updated to v23. Thanks for any help.

Maybe I just have to load my actual wallet and put it online? I didn't want to do that :(
 
Sorry to bug you all, but Crowning said I could vote via my remote masternodes. I haven't been able to vote via my local (using vote-many shows failed 1) When I vote on my remote, using dashd masternode vote yea I get no feedback, and checking here: http://178.254.18.153/~pub/Dash/masternode_payments_stats.html, the vote count didn't go up. I checked my debug log, and I can't find anything definitive searching for yea or vote or anything. The remotes and the locals were updated to v23. Thanks for any help.

Maybe I just have to load my actual wallet and put it online? I didn't want to do that :(

I voted from my MNs as well. No feedback, but if you do ./dashd masternode list vote | GREP <YOURIP> you will see your vote.
 
I voted from my MNs as well. No feedback, but if you do ./dashd masternode list vote | GREP <YOURIP> you will see your vote.
Same here..
All vote done on hot daemon, because my cold wallet are... really cold ;)
Checking the "masternode list votes" and was moving accordingly what I was voting.. (David "S" on votes)
 
Same here..
All vote done on hot daemon, because my cold wallet are... really cold ;)
Checking the "masternode list votes" and was moving accordingly what I was voting.. (David "S" on votes)

when i do “masternode list votes”
all i see are "ABSTAIN" listings, no nay or yea
incl my own votes ?!
 
I voted from my MNs as well. No feedback, but if you do ./dashd masternode list vote | GREP <YOURIP> you will see your vote.
Hummm, I'm unable to get dashd masternode list vote | GREP ip to work, I get an error
 
when i do “masternode list votes”
all i see are "ABSTAIN" listings, no nay or yea
incl my own votes ?!
You must be on .23 version. And the daemon had to be running since the beginning of the votes.

Mine are OK :
lebubar@108:~$ ./MyMNVote.sh
MN1: YEA
MN2: YEA
MN3: YEA
MN4: YEA
MN5: YEA
MN6: YEA
MN7: YEA
MN8: YEA
MN9: YEA
MN10: YEA
MN11: YEA
MN12: YEA
MN13: YEA

cat MyMNVote.sh
echo "MN1: " `./dashd masternode list votes | grep x.y.w.z | awk -F\" '{print $4}' `
echo "MN2: " `./dashd masternode list votes | grep a.b.c.d | awk -F\" '{ print $4}' `
...
...

(yes I voted yea ;) )
 
Last edited by a moderator:
Ok, so to check my daemon, I had to do dashd masternodelist votes | grep IP

For any other old people out there, or prematurely senile people like myself, LOL.

Also, my vote on remote isn't taking, the one on my local (without actual wallet - only my config files loaded - worked.
 
Back
Top