Proposal: Dash Foundation Donation

Ryan Taylor

Well-known Member
Foundation Member
Jul 3, 2014
550
1,649
263
Scottsdale, AZ, USA
Just an update for everyone on this proposal. While the proposal had enough net votes at the time the budget finalized, there was room in the budget for it, and some masternode commands were including it (such as the "mnbudget projection" command)... nonetheless it was not included in the final budget. The mnbudget projection command outputted:

},
"found-donate-210608" : {
"URL" : "www.dashwhale.org/p/found-donate-210608",
"Hash" : "10595c5f451bea07df631cf2333e35ce0e6163e6dcc8f1203512b278741601be",
"BlockStart" : 515096,
"BlockEnd" : 540020,
"TotalPaymentCount" : 1,
"RemainingPaymentCount" : 1,
"PaymentAddress" : "XfdeSpyao5RsuXs5aBRH4EayjGjdXHBMP8",
"Ratio" : 0.77146312,
"Yeas" : 637,
"Nays" : 189,
"Abstains" : 0,
"TotalPayment" : 124.17000000,
"MonthlyPayment" : 124.17000000,
"Alloted" : 124.17000000,
"TotalBudgetAlloted" : 7449.79000000,
"IsValid" : true,
"IsValidReason" : "",
"fValid" : true
}

I have spoken with Evan about it and it seems that some error in the code might be checking for the valid list of budgets in one list; while the code checks the list against mnbudget projection (to make sure it is included) it doesn't also check that everything in "projection" is included in the final budget. So there might be a small rounding error in the code that can prevent the last one on the list from paying under special circumstances. That area of the code is very complex, so it may take some time to correct, but given 12.1 is around the corner, we might skip addressing this bug altogether.

In any case, thank you for the support, and for passing the proposal. It is unfortunate it failed to pay as directed by the network. We'll hopefully be able to include more legal funding in the future, so that we can start addressing critical legal questions for our potential business partners.
 

Solarminer

Well-known Member
Apr 4, 2015
762
922
163
@babygiraffe I think you may have assumed that the total budget available on Dashwhale was accurate. Blocks vary in amount so the final budget isn't always going to match the estimate. Leave yourself a few Dash open and it probably won't happen again.
 
  • Like
Reactions: raganius

Ryan Taylor

Well-known Member
Foundation Member
Jul 3, 2014
550
1,649
263
Scottsdale, AZ, USA
@babygiraffe I think you may have assumed that the total budget available on Dashwhale was accurate. Blocks vary in amount so the final budget isn't always going to match the estimate. Leave yourself a few Dash open and it probably won't happen again.
No, it was confirmed to fit and we have gone right up to that exact same value before without issue. I did not use Dashwhale's number (which actually rounds down anyway), but rather calculated it. I think the lesson is correct though, going right up to the line may introduce a bug in 12.0, so next time we might round down to a whole Dash or whatever.
 

UdjinM6

Official Dash Dev
Core Developer
Dash Core Team
May 20, 2014
3,639
3,537
1,183
Just an update for everyone on this proposal. While the proposal had enough net votes at the time the budget finalized, there was room in the budget for it, and some masternode commands were including it (such as the "mnbudget projection" command)... nonetheless it was not included in the final budget. The mnbudget projection command outputted:
.....
I have spoken with Evan about it and it seems that some error in the code might be checking for the valid list of budgets in one list; while the code checks the list against mnbudget projection (to make sure it is included) it doesn't also check that everything in "projection" is included in the final budget. So there might be a small rounding error in the code that can prevent the last one on the list from paying under special circumstances. That area of the code is very complex, so it may take some time to correct, but given 12.1 is around the corner, we might skip addressing this bug altogether.

In any case, thank you for the support, and for passing the proposal. It is unfortunate it failed to pay as directed by the network. We'll hopefully be able to include more legal funding in the future, so that we can start addressing critical legal questions for our potential business partners.
No, it doesn't work that way, there is no rounding error in the code and it doesn't have to make sure that everything from projection is included. At the end of the cycle someone must put finalized budget(s) on the network and usually it's Evan (or a script he runs) but can be really anyone who is willing to pay finalized budget fee. All this means is that finalized budget must include only items from "mnbudget projection" output and if it does then masternodes vote on it. There can be several competing legit finalized budgets however and the one that have most items with most priorities included wins. What caused you proposal not to be included is most likely that finalized budget was formed before your proposal got enough support and no additional finalized budget was submitted after that. iirc finalized budgets are usually created in advance of 2 days before the end of the cycle or smth like that so that votes of all masternodes were clearly submitted to the best finalized budget and not to any other "incomplete" one.
 
  • Like
Reactions: Solarminer

Ryan Taylor

Well-known Member
Foundation Member
Jul 3, 2014
550
1,649
263
Scottsdale, AZ, USA
No, it doesn't work that way, there is no rounding error in the code and it doesn't have to make sure that everything from projection is included. At the end of the cycle someone must put finalized budget(s) on the network and usually it's Evan (or a script he runs) but can be really anyone who is willing to pay finalized budget fee. All this means is that finalized budget must include only items from "mnbudget projection" output and if it does then masternodes vote on it. There can be several competing legit finalized budgets however and the one that have most items with most priorities included wins. What caused you proposal not to be included is most likely that finalized budget was formed before your proposal got enough support and no additional finalized budget was submitted after that. iirc finalized budgets are usually created in advance of 2 days before the end of the cycle or smth like that so that votes of all masternodes were clearly submitted to the best finalized budget and not to any other "incomplete" one.
So all we had to do was run finalize budget one more time and it would have included it? Because we did have 11% support exactly 24 hours before the budget payout.
 

UdjinM6

Official Dash Dev
Core Developer
Dash Core Team
May 20, 2014
3,639
3,537
1,183
So all we had to do was run finalize budget one more time and it would have included it? Because we did have 11% support exactly 24 hours before the budget payout.
If my guess about what actually happened is right then yep, that's all what we had to do.