-
Notifications
You must be signed in to change notification settings - Fork 91
DAO Extension #530
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
DAO Extension #530
Conversation
|
@aguycalled I tried a gitian and cross compile build of this branch and I ran into a similar issue that I did with my #557 branch. I've since solved the issue (Making modifications to how the qt.mk is built) You might wanna take a look at how I did it to get this branch to build in gitian and in travis-ci. |
|
More specifically I think the changes are in this commit: 194ef50 |
|
Same error as the one in travis-ci OSX build |
|
@aguycalled I've pushed a commit to this branch which fixes the gitian and cross compile build for qt |
|
Fixed a failing test |
|
@aguycalled Am getting this error on boot of a node with existing datadir EDIT: Also tried with a bootstrap, and got same error |
This seems to be resolved in the latest test I did with the PR |
nice review! |
|
the one node staking: no proposal was submitted but it changed on itself |
|
did you vote for the consultation? |
|
after creating the consultation, voters vote for the answers and once answers found support, the consultation will enter another around of waiting for support. Is it the intended behavior? if so, what support is it waiting for since answers already were supported? { |
i did |
|
In order to give enough time to a large number of stakers to add new answers to consultations, a consultation will never pass to reflection phase until the cycle defined by CONSENSUS_PARAM_CONSULTATION_MIN_CYCLES=2 is over. |
|
Paid 11,500NAV from dev bounty to NL9jPW75P4kNMdvQmFBpYVkZ3sABQtXfYY |
|
fail to compile locally |
|
14 is not existent on a linux virtual machine. did you fix it with last commit d96d886....? |
|
A new build of dcf494b has completed succesfully! |
|
A new build of 2c72313 has completed succesfully! |
|
A new build of 89d3f56 has completed succesfully! |
|
A new build of 73a5003 has completed succesfully! |
|
A new build of 482939a has completed succesfully! |
|
A new build of 35ce8c7 has completed succesfully! |
|
A new build of 0332bc5 has completed succesfully! |
|
A new build of 72cf43e has completed succesfully! |
|
A new build of 8ae0039 has completed succesfully! |

















This PR includes a serie of Deployment Proposals as described in https://www.reddit.com/r/NavCoin/comments/bs4pvn/proposal_for_the_extension_of_the_community_fund/:
Adds support for abstaining in the votings. (Version Bit 19) - includes functional test
Enables voting state cache, reducing the amount of votes which need to be broadcasted down to 1 per address. (Version Bit 22) - does not include specific functional test, but old fund tests pass having this deployment activated
Enables DAO consultations. (Version Bit 23) - includes functional test
Enables modification of consensus parameters through DAO consultations. (Version Bit 25) - includes functional test
Enables voting delegation and voting from light wallets. (Version bit 27) - includes functional test
Allows fund proposals to have a different address for signing the payment requests and for receiving the payment. This allows to use arbitrary scripts as payment addresses, like multisig addresses. When the payment address differs from the owner address, the first will be specified using the
pparameter on the JSON object embedded on thestrDZeelproperty of the transaction.Includes UI to manage the new DAO features.
Abstention votes
Abstention votes will be added to the yes and no votes from proposals and payment requests to calculate the minimum quorum.
Consultations can also have abstentions.
New op codes and voting
Op codes
Voting
The following assumes the deployment of the voting state cache has been accepted in the network.
Proposal and payment request voting
Consultation support and voting
Vote from light wallets
Wallets can now create a new type of Cold Staking address where the voting rights are delegated to a third address.
Syntax:
getcoldstakingaddress
staking addressspending addressvoting addressCoins sent to this new type of address will be sent to the following script:
The blocks where the coin stake transaction spends one output of this new class, will use the votes stored in the state for the voting key.
Light wallets will be able to modify the voting state by submitting to the network a transaction with the following requirements:
8.CONSENSUS_PARAMS_DAO_VOTE_LIGHT_MIN_FEE=0.1NAVConsultations
Consultations are permission-less open questions submitted to the network.
Once consultations are created they must gather a minimal support (defined by consensus parameter
CONSENSUS_PARAM_CONSULTATION_MIN_SUPPORT=1.5%for range consultations and byCONSENSUS_PARAM_CONSULTATION_ANSWER_MIN_SUPPORT=1.5%for the rest of consultations) in a minimum of 2 answers if a normal consultation or 1 answer if the consultation is about a consensus parameter. Range consultations do not have this requirement. Instead, range consultations must receive support themselves.In order to give enough time to a large number of stakers to add new answers to consultations, a consultation will never pass until the cycle defined by
CONSENSUS_PARAM_CONSULTATION_MIN_CYCLES=2is over. Consultations will be in alooking for supportphase for a maximum ofCONSENSUS_PARAM_CONSULTATION_MAX_SUPPORT_CYCLES=4cycles, and the voting phase will last a fixed amount ofCONSENSUS_PARAM_CONSULTATION_MAX_VOTING_CYCLES=4cycles. An exception will be consultations about consensus parameters, which could end earlier whenever one of the answers have a minimum of 75% affirmative votes at the end of a voting cycle. Between thelooking for supportandvotingphases, there will exist areflectionphase with a lenght ofCONSENSUS_PARAM_CONSULTATION_REFLECTION_LENGTH=1cycle.Consultations are created through the creation of a transaction with version 6, pay at least a fee of
CONSENSUS_PARAM_CONSULTATION_MIN_FEE=100NAVand a JSON object in thestrDZeelparameter with the following structure:The version bits are:
mandnato be empty, otherwise it must have 2 elementsmis used to refer to the id of the consensus parameter,nmust be 1 andacan be empty.Consultations are identified by the hash of the transaction where it was created.
Stakers can submit during the looking for support phase proposals for different answers for every consultation which is set up as such through the creation of a transaction with version 7 and a JSON object in the
strDZeelparameter with the following structure:Answers are identified by the hash of the concatenation of the transaction hash where it was created and the string of the answer.
New RPC commands
createconsultation
Creates a DAO consultation
Syntax:
createconsultation
Questionmax of simultaneous answerscreateconsultation
Questionlower boundhigher boundrange boolCreate a normal consultation
createconsultation "Should we all dance together?" 1
Create a range consultation
createconsultation "What will be NavCoin price in USD at the end of the year?" 1 5 true
proposeanswer
Creates a proposal for a consultation answer.
Syntax:
proposeanswer
hashanswerPropose an answer
proposeanswer d95ea23a22b723dbdf0d095d8e9998fab0576daf8cb9dd48c14f3bbd3df10f2f "Yes"
support
Signals support for a specific answer or consultation.
Syntax:
support
hashboolSupport an answer
support d95ea23a22b723dbdf0d095d8e9998fab0576daf8cb9dd48c14f3bbd3df10f2f true
support d95ea23a22b723dbdf0d095d8e9998fab0576daf8cb9dd48c14f3bbd3df10f2f false
consultationvote
Sets the vote for a range consultation or answer.
Syntax:
consultationvote
hashyes|value|abs|remove(value)Vote yes for an answer
consultationvote d95ea23a22b723dbdf0d095d8e9998fab0576daf8cb9dd48c14f3bbd3df10f2f yes
Vote a value for a range consultation
consultationvote d95ea23a22b723dbdf0d095d8e9998fab0576daf8cb9dd48c14f3bbd3df10f2f value 10000
Vote abstain for a consultation
consultationvote d95ea23a22b723dbdf0d095d8e9998fab0576daf8cb9dd48c14f3bbd3df10f2f abs
Remove a vote
consultationvote d95ea23a22b723dbdf0d095d8e9998fab0576daf8cb9dd48c14f3bbd3df10f2f remove
consultationvotelist
Shows the list of votes for consultations
Syntax:
consultationvotelist
supportlist
Shows the list of support votes.
Syntax:
supportlist
getconsultation
Shows details of a consultation
Syntax:
getconsultation
hashgetconsultation d95ea23a22b723dbdf0d095d8e9998fab0576daf8cb9dd48c14f3bbd3df10f2f
listconsultations
Shows the list of consultations. Possible filters:
not_enough_answers,waiting_for_support,reflection,votingandfinishedSyntax:
listconsultations
filterslistconsultations waiting_for_support finished
getconsultationanswer
Shows details of a consultation
Syntax:
getconsultationanswer
hashgetconsultationanswer d95ea23a22b723dbdf0d095d8e9998fab0576daf8cb9dd48c14f3bbd3df10f2f
getconsensusparameters
Shows a detailed list of the consensus parameters which can be defined by the DAO.
Syntax:
getconsensusparameters
proposeconsensuschange
Creates a proposal to change the value of one of the consensus parameters.
Syntax:
proposeconsensuschange
parameter idvalueproposeconsensuschange 10 10000
Consensus parameters
Type of parameters