{"id":17144,"date":"2015-06-02T15:15:08","date_gmt":"2015-06-02T07:15:08","guid":{"rendered":"https:\/\/www2019.dash.org\/2015\/06\/02\/development-update-june-2-2015\/"},"modified":"2021-09-18T11:40:18","modified_gmt":"2021-09-18T11:40:18","slug":"development-update-june-2-2015","status":"publish","type":"post","link":"https:\/\/wp.dash.org\/news\/development-update-june-2-2015\/","title":{"rendered":"Development Update – June 2, 2015"},"content":{"rendered":"
<\/p>\n
Hello Everyone!<\/p>\n
We\u2019re just starting to wind down active development of version 12, which is gearing up to be the largest release we\u2019ve ever done. At this point it includes:<\/p>\n
At this point active development is going to slow down and we\u2019re going to open private testing of the new functionality for the core team. This should last less than 2 weeks, then we\u2019ll open public testing and development soon after. The public phase should be between 2 weeks and a month then we\u2019ll do a full release.<\/p>\n
At this point we\u2019re looking for public comment and evaluation of the new source code for any issues that might be present.<\/p>\n
Are you a skilled developer?<\/p>\n
Feel free to checkout all of the new code and give us feedback via evan@dashpay.io or jump on slack chat and join the #development channel.<\/p>\n
Full v12 source code: Budgeting Code: New Payment Code: Description of Budgeting and Payment process:<\/strong><\/p>\n In the new model, each block a random selection of 10 masternodes are elected to tell the network who should get paid. This is computed using the masternode input hashes for the first payment, then after a last payment is known a valid masternode with the longest wait time is selected.<\/p>\n Selection Algorithm: Masternode Selection and Broadcast: Block Validation: Consensus disagreements are handled by the block validation code. After a period of time, the network should form complete consensus about who is suppose to get paid on which blocks. If there\u2019s a disagreement, multiple payees per block can be valid. After the whole masternode network has been paid, only 1 payee should be valid each block. This gives us a pretty robust system that\u2019s quorum based instead of blockchain based, so we don\u2019t have to keep a complete history, but yet it\u2019s just as secure.<\/p>\n Budget System Implementation<\/strong><\/p>\n We now have a complete implementation of the budget system now in v12. Described Here and Here:<\/p>\n To submit a budget all one has to do is execute the following command:<\/p>\n Any masternode can submit a budget directly through the API. The proposal managing website will simply have access to a masternode ,so it will have the capability of drafting then submitting new budgets to the network. This system is designed to be 100% decentralized and is built around the idea of storing all important budget information on the network itself, so that the proposal websites can run independently of the network, but still interact with it.<\/p>\n After a budget has been submitting to the network, other masternodes can calculate the hash of the budget in order to vote on it. By changing any piece of data associated with the proposal, the hash will be changed. Because of this once a proposal is in the system and being voted on, it can\u2019t be changed without making a completely new proposal and requesting the masternodes vote on that one instead.<\/p>\n Finalized Budget<\/strong><\/p>\n Once each month, a finalized budget will be suggested by the network. This is simply calculated by taking the list of budgets, sorted by \u201cYes Count\u201d, then adding them to the final budget until 10% of the monthly reward is reached.<\/p>\n Masternodes will automatically vote on the finalized budget, which is then read by the network to authorize a super blocks at the end of the month.<\/p>\n https:\/\/github.com\/dashpay\/dash\/blob\/v0.12.0.x\/src\/masternode-payments.cpp#L22<\/a> <\/p>\n Hello Everyone!<\/p>\n We\u2019re just starting to wind down active development of version 12, which is gearing up to be the largest release we\u2019ve ever done. At this point it includes:<\/p>\n At this point active development is going to slow down and we\u2019re going to open private testing of the new functionality for the core team. This should last less than 2 weeks, then we\u2019ll open public testing and development soon after. The public phase should be between 2 weeks and a month then we\u2019ll do a full release.<\/p>\n At this point we\u2019re looking for public comment and evaluation of the new source code for any issues that might be present.<\/p>\n Are you a skilled developer?<\/p>\n Feel free to checkout all of the new code and give us feedback via evan@dashpay.io or jump on slack chat and join the #development channel.<\/p>\n Full v12 source code: Budgeting Code: New Payment Code: Description of Budgeting and Payment process:<\/strong><\/p>\n In the new model, each block a random selection of 10 masternodes are elected to tell the network who should get paid. This is computed using the masternode input hashes for the first payment, then after a last payment is known a valid masternode with the longest wait time is selected.<\/p>\n Selection Algorithm: Masternode Selection and Broadcast: Block Validation: Consensus disagreements are handled by the block validation code. After a period of time, the network should form complete consensus about who is suppose to get paid on which blocks. If there\u2019s a disagreement, multiple payees per block can be valid. After the whole masternode network has been paid, only 1 payee should be valid each block. This gives us a pretty robust system that\u2019s quorum based instead of blockchain based, so we don\u2019t have to keep a complete history, but yet it\u2019s just as secure.<\/p>\n Budget System Implementation<\/strong><\/p>\n We now have a complete implementation of the budget system now in v12. Described Here and Here:<\/p>\n To submit a budget all one has to do is execute the following command:<\/p>\n Any masternode can submit a budget directly through the API. The proposal managing website will simply have access to a masternode ,so it will have the capability of drafting then submitting new budgets to the network. This system is designed to be 100% decentralized and is built around the idea of storing all important budget information on the network itself, so that the proposal websites can run independently of the network, but still interact with it.<\/p>\n After a budget has been submitting to the network, other masternodes can calculate the hash of the budget in order to vote on it. By changing any piece of data associated with the proposal, the hash will be changed. Because of this once a proposal is in the system and being voted on, it can\u2019t be changed without making a completely new proposal and requesting the masternodes vote on that one instead.<\/p>\n Finalized Budget<\/strong><\/p>\n Once each month, a finalized budget will be suggested by the network. This is simply calculated by taking the list of budgets, sorted by \u201cYes Count\u201d, then adding them to the final budget until 10% of the monthly reward is reached.<\/p>\n Masternodes will automatically vote on the finalized budget, which is then read by the network to authorize a super blocks at the end of the month.<\/p>\n https:\/\/github.com\/dashpay\/dash\/blob\/v0.12.0.x\/src\/masternode-payments.cpp#L22<\/a>
\nhttps:\/\/github.com\/dashpay\/dash\/tree\/v0.12.0.x<\/a><\/p>\n
\nhttps:\/\/github.com\/dashpay\/dash\/blob\/v0.12.0.x\/src\/masternode-budget.cpp<\/a>
\nhttps:\/\/github.com\/dashpay\/dash\/blob\/v0.12.0.x\/src\/masternode-budget.h<\/a><\/p>\n
\nhttps:\/\/github.com\/dashpay\/dash\/blob\/v0.12.0.x\/src\/masternode-payments.cpp<\/a>
\nhttps:\/\/github.com\/dashpay\/dash\/blob\/v0.12.0.x\/src\/masternode-payments.h<\/a><\/p>\n
\nhttps:\/\/github.com\/dashpay\/dash\/blob\/v0.12.0.x\/src\/masternodeman.cpp#L368<\/a><\/p>\n
\nhttps:\/\/github.com\/dashpay\/dash\/blob\/v0.12.0.x\/src\/masternode-payments.cpp#L460<\/a><\/p>\n
\nhttps:\/\/github.com\/dashpay\/dash\/blob\/v0.12.0.x\/src\/masternode-payments.cpp#L280<\/a><\/p>\n'mnbudget vote PROPOSAL-NAME URL PAYMENT_COUNT BLOCK_START DASH_ADDRESS DASH_AMOUNT YES|NO|ABSTAIN\u2019
\ndash-cli mnbudget vote proposal-one http:\/\/www.dashpay.io\/one.json 100 58381 y7B3r6SBi1E1RN39DS5WFJpdeS9EifDjMB 1000 yes
\n<\/code><\/span><\/p>\ndash-cli mnbudget show
\n{
\n\"proposal-one\" : {
\n\"URL\" : \"http:\/\/www.dashpay.io\/one.json\",
\n\"Hash\" : \"22a7fab3765b0aca926f71117114b5019ab616dda3d6bae520a27d76912228dd\",
\n\"BlockStart\" : 58381,
\n\"BlockEnd\" : 63375,
\n\"TotalPaymentCount\" : 100,
\n\"RemainingPaymentCount\" : 100,
\n\"PaymentAddress\" : \"y7B3r6SBi1E1RN39DS5WFJpdeS9EifDjMB\",
\n\"Ratio\" : 1.00000000,
\n\"Yeas\" : 1,
\n\"Nays\" : 0,
\n\"Abstains\" : 0,
\n\"Alloted\" : 348214275,
\n\"TotalBudgetAlloted\" : 348214275
\n}
\n}
\n<\/code><\/span><\/p>\n
\nhttps:\/\/github.com\/dashpay\/dash\/blob\/v0.12.0.x\/src\/masternode-payments.cpp#L50<\/a><\/p>\n dash-cli mnfinalbudget show<\/span>
\n {<\/span>
\n \"main\" : {<\/span>
\n \"SubmittedBy\" : \"0000000000000000000000000000000000000000000000000000000000000000-4294967295\",<\/span>
\n \"Hash\" : \"34000e61801cb0df633839a3090c9241461b33e4d031c42632d64a3a109dc132\",<\/span>
\n \"BlockStart\" : 58400,<\/span>
\n \"BlockEnd\" : 58400,<\/span>
\n \"Proposals\" : \",22a7fab3765b0aca926f71117114b5019ab616dda3d6bae520a27d76912228dd\",<\/span>
\n \"VoteCount\" : 1<\/span>
\n }<\/span>
\n }<\/span>
\n<\/code><\/p>\n","protected":false},"excerpt":{"rendered":"\n
\nThere\u2019s a hard fork and sporks that will activate and reduce the blockchain by 10%, after that superblocks will become available for a maximum value of 10% of the monthly reward.<\/li>\n
\nhttps:\/\/github.com\/dashpay\/dash\/tree\/v0.12.0.x<\/a><\/p>\n
\nhttps:\/\/github.com\/dashpay\/dash\/blob\/v0.12.0.x\/src\/masternode-budget.cpp<\/a>
\nhttps:\/\/github.com\/dashpay\/dash\/blob\/v0.12.0.x\/src\/masternode-budget.h<\/a><\/p>\n
\nhttps:\/\/github.com\/dashpay\/dash\/blob\/v0.12.0.x\/src\/masternode-payments.cpp<\/a>
\nhttps:\/\/github.com\/dashpay\/dash\/blob\/v0.12.0.x\/src\/masternode-payments.h<\/a><\/p>\n
\nhttps:\/\/github.com\/dashpay\/dash\/blob\/v0.12.0.x\/src\/masternodeman.cpp#L368<\/a><\/p>\n
\nhttps:\/\/github.com\/dashpay\/dash\/blob\/v0.12.0.x\/src\/masternode-payments.cpp#L460<\/a><\/p>\n
\nhttps:\/\/github.com\/dashpay\/dash\/blob\/v0.12.0.x\/src\/masternode-payments.cpp#L280<\/a><\/p>\n'mnbudget vote PROPOSAL-NAME URL PAYMENT_COUNT BLOCK_START DASH_ADDRESS DASH_AMOUNT YES|NO|ABSTAIN\u2019
\ndash-cli mnbudget vote proposal-one http:\/\/www.dashpay.io\/one.json 100 58381 y7B3r6SBi1E1RN39DS5WFJpdeS9EifDjMB 1000 yes
\n<\/code><\/span><\/p>\ndash-cli mnbudget show
\n{
\n\"proposal-one\" : {
\n\"URL\" : \"http:\/\/www.dashpay.io\/one.json\",
\n\"Hash\" : \"22a7fab3765b0aca926f71117114b5019ab616dda3d6bae520a27d76912228dd\",
\n\"BlockStart\" : 58381,
\n\"BlockEnd\" : 63375,
\n\"TotalPaymentCount\" : 100,
\n\"RemainingPaymentCount\" : 100,
\n\"PaymentAddress\" : \"y7B3r6SBi1E1RN39DS5WFJpdeS9EifDjMB\",
\n\"Ratio\" : 1.00000000,
\n\"Yeas\" : 1,
\n\"Nays\" : 0,
\n\"Abstains\" : 0,
\n\"Alloted\" : 348214275,
\n\"TotalBudgetAlloted\" : 348214275
\n}
\n}
\n<\/code><\/span><\/p>\n
\nhttps:\/\/github.com\/dashpay\/dash\/blob\/v0.12.0.x\/src\/masternode-payments.cpp#L50<\/a><\/p>\n dash-cli mnfinalbudget show<\/span>
\n {<\/span>
\n \"main\" : {<\/span>
\n \"SubmittedBy\" : \"0000000000000000000000000000000000000000000000000000000000000000-4294967295\",<\/span>
\n \"Hash\" : \"34000e61801cb0df633839a3090c9241461b33e4d031c42632d64a3a109dc132\",<\/span>
\n \"BlockStart\" : 58400,<\/span>
\n \"BlockEnd\" : 58400,<\/span>
\n \"Proposals\" : \",22a7fab3765b0aca926f71117114b5019ab616dda3d6bae520a27d76912228dd\",<\/span>
\n \"VoteCount\" : 1<\/span>
\n }<\/span>
\n }<\/span>
\n<\/code><\/p>\n","protected":false},"author":1,"featured_media":0,"comment_status":"closed","ping_status":"closed","sticky":false,"template":"","format":"standard","meta":{"_acf_changed":false,"inline_featured_image":false,"footnotes":"","_links_to":"","_links_to_target":""},"categories":[216],"tags":[],"class_list":["post-17144","post","type-post","status-publish","format-standard","hentry","category-news"],"acf":[],"yoast_head":"\n