fix docs (mostly for budgets)

Closes #734
This commit is contained in:
UdjinM6 2016-03-15 03:20:41 +03:00 committed by Holger Schinzel
parent 38f386ae1c
commit ddbeda357e
2 changed files with 78 additions and 55 deletions

View File

@ -133,7 +133,7 @@ If your remote server is not running, start your remote daemon as you normally w
You can confirm that remote server is on the correct block by issuing You can confirm that remote server is on the correct block by issuing
```dashd getinfo``` ```dash-cli getinfo```
and comparing with the official explorer at http://explorer.dash.org/chain/Dash and comparing with the official explorer at http://explorer.dash.org/chain/Dash

View File

@ -4,39 +4,51 @@ Masternode Budget API
Dash now supports full decentralized budgets that are paid directly from the blockchain via superblocks once per month. Dash now supports full decentralized budgets that are paid directly from the blockchain via superblocks once per month.
Budgets go through a series of stages before being paid: Budgets go through a series of stages before being paid:
* prepare - create a special transaction that destroys coins in order to make a proposal * prepare - create a special transaction that destroys coins in order to make a proposal
* submit - propagate transaction to peers on network * submit - propagate transaction to peers on network
* voting - lobby for votes on your proposal * voting - lobby for votes on your proposal
* get enough votes - make it into the budget * get enough votes - make it into the budget
* finalization - at the end of each payment period, proposals are sorted then compiled into a finalized budget * finalization - at the end of each payment period, proposals are sorted then compiled into a finalized budget
* finalized budget voting - masternodes that agree with the finalization will vote on that budget * finalized budget voting - masternodes that agree with the finalization will vote on that budget
* payment - the winning finalized budget is paid * payment - the winning finalized budget is paid
1. Prepare collateral transaction 1. Prepare collateral transaction
-- --
mnbudget prepare proposal-name url payment_count block_start dash_address monthly_payment_dash [use_ix(true|false)] In this transaction we prepare collateral for "_cool-project_". This proposal will pay _1200_ DASH, _12_ times over the course of a year totaling _24000_ DASH.
**Warning: if you change any fields within this command, the collateral transaction will become invalid.**
Format: ```mnbudget prepare proposal-name url payment-count block-start dash-address monthly-payment-dash```
Example: ```mnbudget prepare cool-project http://www.cool-project/one.json 12 100000 y6R9oN12KnB9zydzTLc3LikD9cCjjQzYG7 1200 true``` Example: ```mnbudget prepare cool-project http://www.cool-project/one.json 12 100000 y6R9oN12KnB9zydzTLc3LikD9cCjjQzYG7 1200 true```
Output: ```464a0eb70ea91c94295214df48c47baa72b3876cfb658744aaf863c7b5bf1ff0``` - This is the collateral hash, copy this output for the next step Output: ```464a0eb70ea91c94295214df48c47baa72b3876cfb658744aaf863c7b5bf1ff0```
In this transaction we prepare collateral for "_cool-project_". This proposal will pay _1200_ DASH, _12_ times over the course of a year totaling _24000_ DASH. This is the collateral hash, copy this output for the next step.
**Warning -- if you change any fields within this command, the collateral transaction will become invalid.**
2 Submit proposal to network 2 Submit proposal to network
-- --
```mnbudget submit cool-project http://www.cool-project/one.json 12 100000 y6R9oN12KnB9zydzTLc3LikD9cCjjQzYG7 1200 464a0eb70ea91c94295214df48c47baa72b3876cfb658744aaf863c7b5bf1ff0``` Now we can submit our proposal to the network.
Output : ```a2b29778ae82e45a973a94309ffa6aa2e2388b8f95b39ab3739f0078835f0491``` - This is your proposal hash, which other nodes will use to vote on it Format: ```mnbudget submit proposal-name url payment-count block-start dash-address monthly-payment-dash fee-tx```
Example: ```mnbudget submit cool-project http://www.cool-project/one.json 12 100000 y6R9oN12KnB9zydzTLc3LikD9cCjjQzYG7 1200 464a0eb70ea91c94295214df48c47baa72b3876cfb658744aaf863c7b5bf1ff0```
Output : ```a2b29778ae82e45a973a94309ffa6aa2e2388b8f95b39ab3739f0078835f0491```
This is your proposal hash, which other nodes will use to vote on it.
3. Lobby for votes 3. Lobby for votes
-- --
Double check your information: ```mnbudget getinfo cool-project``` Double check your information.
Format: ```mnbudget getproposal proposal-hash```
Example: ```mnbudget getproposal a2b29778ae82e45a973a94309ffa6aa2e2388b8f95b39ab3739f0078835f0491```
``` ```
{ {
@ -62,34 +74,36 @@ Double check your information: ```mnbudget getinfo cool-project```
If everything looks correct, you can ask for votes from other masternodes. To vote on a proposal, load a wallet with _masternode.conf_ file. You do not need to access your cold wallet to vote for proposals. If everything looks correct, you can ask for votes from other masternodes. To vote on a proposal, load a wallet with _masternode.conf_ file. You do not need to access your cold wallet to vote for proposals.
```mnbudget vote a2b29778ae82e45a973a94309ffa6aa2e2388b8f95b39ab3739f0078835f0491 yes``` Format: ```mnbudget vote proposal-hash [yes|no]```
Example: ```mnbudget vote a2b29778ae82e45a973a94309ffa6aa2e2388b8f95b39ab3739f0078835f0491 yes```
4. Make it into the budget 4. Make it into the budget
-- --
After you get enough votes, execute ```mnbudget projection``` to see if you made it into the budget. If you the budget was finalized at this moment which proposals would be in it. Note: Proposals must be active at least 1 day on the network and receive 10% of the masternode network in yes votes in order to qualify (E.g. if there is 2500 masternodes, you will need 250 yes votes.) After you get enough votes, execute ```mnbudget projection``` to see if you made it into the budget. If you the budget was finalized at this moment which proposals would be in it. Note: Proposals must be active at least 1 day on the network and receive 10% of the masternode network in yes votes in order to qualify (E.g. if there is 3500 masternodes, you will need 350 yes votes.)
```mnbudget projection```: ```mnbudget projection```:
``` ```
{ {
"cool-project" : { "cool-project" : {
"Hash" : "a2b29778ae82e45a973a94309ffa6aa2e2388b8f95b39ab3739f0078835f0491", "Hash" : "a2b29778ae82e45a973a94309ffa6aa2e2388b8f95b39ab3739f0078835f0491",
"FeeHash" : "464a0eb70ea91c94295214df48c47baa72b3876cfb658744aaf863c7b5bf1ff0", "FeeHash" : "464a0eb70ea91c94295214df48c47baa72b3876cfb658744aaf863c7b5bf1ff0",
"URL" : "http://www.cool-project/one.json", "URL" : "http://www.cool-project/one.json",
"BlockStart" : 100000, "BlockStart" : 100000,
"BlockEnd" : 100625, "BlockEnd" : 100625,
"TotalPaymentCount" : 12, "TotalPaymentCount" : 12,
"RemainingPaymentCount" : 12, "RemainingPaymentCount" : 12,
"PaymentAddress" : "y6R9oN12KnB9zydzTLc3LikD9cCjjQzYG7", "PaymentAddress" : "y6R9oN12KnB9zydzTLc3LikD9cCjjQzYG7",
"Ratio" : 1.00000000, "Ratio" : 1.00000000,
"Yeas" : 33, "Yeas" : 33,
"Nays" : 0, "Nays" : 0,
"Abstains" : 0, "Abstains" : 0,
"TotalPayment" : 14400.00000000, "TotalPayment" : 14400.00000000,
"MonthlyPayment" : 1200.00000000, "MonthlyPayment" : 1200.00000000,
"IsValid" : true, "IsValid" : true,
"fValid" : true "fValid" : true
} }
} }
``` ```
@ -111,23 +125,32 @@ After you get enough votes, execute ```mnbudget projection``` to see if you made
6. Get paid 6. Get paid
-- --
When block ```1000000``` is reached you'll receive a payment for ```1200``` DASH. When block ```1000000``` is reached you'll receive a payment for ```1200``` DASH to ```y6R9oN12KnB9zydzTLc3LikD9cCjjQzYG7```.
The following new RPC commands are supported: 7. Command list
- mnbudget "command"... ( "passphrase" ) --
- prepare - Prepare proposal for network by signing and creating tx
- submit - Submit proposal for network The following RPC commands are supported:
- vote-many - Vote on a Dash initiative
- vote-alias - Vote on a Dash initiative - mnbudget "command"... ( "passphrase" )
- vote - Vote on a Dash initiative/budget - check - Scan proposals and remove invalid from proposals list
- getvotes - Show current masternode budgets - prepare - Prepare proposal by signing and creating tx
- getinfo - Show current masternode budgets - submit - Submit proposal to network
- show - Show all budgets - getproposalhash - Get proposal hash(es) by proposal name
- projection - Show the projection of which proposals will be paid the next cycle - getproposal - Show proposal
- check - Scan proposals and remove invalid - getvotes - Show detailed votes list for proposal
- list - List all proposals
- mnfinalbudget "command"... ( "passphrase" ) - nextblock - Get info about next superblock for budget system
- vote-many - Vote on a finalized budget - nextsuperblocksize - Get superblock size for a given blockheight
- vote - Vote on a finalized budget - projection - Show the projection of which proposals will be paid the next cycle
- show - Show existing finalized budgets - vote - Vote on a proposal by single masternode (using dash.conf setup)
- vote-many - Vote on a proposal by all masternodes (using masternode.conf setup)
- vote-alias - Vote on a proposal by alias
- mnfinalbudget "command"... ( "passphrase" )
- vote-many - Vote on a finalized budget
- vote - Vote on a finalized budget
- show - Show existing finalized budgets
- getvotes - Get vote information for each finalized budget
- prepare - Manually prepare a finalized budget
- submit - Manually submit a finalized budget