Utilizzo di Dash Governance#
L’Organizzazione Autonoma Decentralizzata (DAO) di Dash è una nuova piattaforma di voto e finanziamento. Questa documentazione introduce e descrive in dettaglio la teoria e la pratica per utilizzare il sistema.
Capire il processo#
Introduzione#
La DAO è costituita da tre componenti: proposal, voti e budget
Chiunque può presentare una proposta pagando una piccola imposta
Ogni masternode convalidato può votare pro, contro o astenersi sulle proposte
Le proposte approvate divengono budget
I budget vengono versati dalla blockchain direttamente al proprietario della proposta
Proposte#
Le proposte sono un richiesta per ricevere finanziamenti
Le proposal possono essere presentate da chiunque per una commissione di 1 Dash. La tariffa della proposal viene distrutta irreversibilmente al momento della presentazione.
Le proposte non possono essere modificate una volta presentate
Voti#
I voti vengono espressi utilizzando l’indirizzo di voto registrato
L’indirizzo di voto può essere delegato a terzi
I voti possono essere modificati in qualsiasi momento
I voti vengono conteggiati ogni 16616 blocchi (circa 30,29 giorni)
Budget#
I budget sono proposte che ricevono un totale netto di voti favorevoli pari o superiore al 10% del totale dei voti possibili (ad esempio oltre 448 su 4480)
I budget possono essere annullati in qualsiasi momento se i totali dei voti (espressi o ripetuti) scendono al di sotto della soglia di approvazione
I budget vengono elaborati (pagati) in ordine di voti sì meno no. I budget più popolari ottengono la priorità di pagamento.
Approximately 7919 dash (in 2024) are available for each budget cycle, decreasing by 7.14% every 210240 blocks (approx. 383.25 days).
Struttura dell’oggetto#
Le seguenti informazioni sono necessarie per creare una proposta:
proposal-name: a unique label, 40 characters or less
url: una pagina web creata dal proponente o un post del forum contenente informazioni dettagliate sulla proposta
payment-count: in quanti cicli la proposta richiede il pagamento
block-start: l’inizio richiesto dei pagamenti della proposal
dash-address: l’indirizzo al quale ricevere i pagamenti della proposal
dash-pagamento-mensile: l’importo del pagamento richiesto
Persistenza#
Le proposal diventano attive un giorno dopo l’invio
Le proposal rimarranno visibili sulla rete finché non verranno disapprovate o finché non verrà raggiunto l’ultimo ciclo di pagamento della proposal
L’approvazione avviene quando i voti sì meno i voti no equivalgono al 10% o più del totale dei voti disponibili.
La disapprovazione si verifica quando i voti negativi meno i voti positivi equivalgono al 10% o più del totale dei voti disponibili.
Il totale dei voti disponibili corrisponde al conteggio dei masternode online e di risposta e può essere visualizzato eseguendo il comando «masternode count» nella finestra di debug del portafoglio Dash Core. Un grafico del conteggio totale dei masternode può essere trovato qui
Modelli#
I due modelli Microsoft Word seguenti sono disponibili presso Dash Core Group per facilitare l’invio e gli aggiornamenti di proposal standardizzate. L’utilizzo è consigliato, ma non obbligatorio.
Budget del ciclo#
Quando prepari una proposal, tieni presente quando si verificherà il ciclo successivo e pianifica di conseguenza. Si consiglia di scegliere di bloccare l’inizio del pagamento della proposal almeno un ciclo nel futuro per concedere tempo alla discussione e raccogliere supporto e voti. Tieni presente che i voti non verranno più conteggiati 1662 blocchi (circa 3 giorni) prima del superblocco.
Altezza del blocco |
Data approssimativa |
|---|---|
1212968 |
Gio 30 gennaio 02:38:52 UTC 2020 |
1229584 |
Sab 29 febbraio 09:43:54 UTC 2020 |
1246200 |
Lun 30 marzo 16:48:56 UTC 2020 |
1262816 |
Mer 29 aprile 23:53:58 UTC 2020 |
1279432 |
Sab 30 maggio 06:59:00 UTC 2020 |
1296048 |
Lun 29 giugno 14:04:02 UTC 2020 |
1312664 |
Mer 29 luglio 21:09:04 UTC 2020 |
1329280 |
Sab 29 agosto 04:14:06 UTC 2020 |
1345896 |
Lun 28 settembre 11:19:08 UTC 2020 |
1362512 |
Mer 28 ottobre 18:24:10 UTC 2020 |
1379128 |
Sab 28 novembre 01:29:12 UTC 2020 |
1395744 |
Lun 28 dicembre 08:34:14 UTC 2020 |
Puoi visualizzare il codice sorgente per questo calcolo in questo GitHub gist
Creazione di proposal#
Once you have prepared the text of your proposal and set up a website or forum post, it is time to submit your proposal to the blockchain for voting. While all tasks involved with creating a budget proposal can be executed from the Dash Core wallet (GUI or console) or the Dash Budget Proposal Generator.
Dash Core Wallet#
Dash Core Wallet includes a built-in graphical interface for creating governance proposals directly from the Governance tab. This provides a user-friendly alternative to using external web tools or manual console commands. To use this feature, your wallet must be unlocked and contain sufficient balance to cover the 1 DASH proposal fee plus a small transaction fee.
Accessing the Governance tab#
Open your Dash Core Wallet and click on the Governance tab. This displays a list of existing proposals and provides a Create Proposal button in the upper right corner.
The Governance tab showing existing proposals and the Create Proposal button#
Creating a new proposal#
Click the Create Proposal button to open the proposal creation dialog. Enter your proposal details:
Proposal name: A unique identifier
URL: Link to detailed proposal information (use a URL shortener if needed)
Payment address: The Dash address that will receive payments
Payment amount: Amount requested per payment cycle
First payment date: Select the superblock date for the first payment
# of payments: Number of payment cycles requested
The dialog displays the total amount requested and notes the 1 DASH proposal fee that will be burned. Click Next when all fields are complete.
Entering proposal details in the creation dialog#
Validating the proposal#
The wallet will generate and display your proposal data in JSON format along with the proposal hash. Review the information carefully to ensure accuracy.
Click Validate to check the format of the proposal data. If the data is valid, click Next to proceed to the next step. Otherwise, click Back to adjust your proposal data.
Validating the proposal JSON and hash#
Preparing the proposal fee#
Avvertimento
The following step will create a transaction burning 1 DASH as the proposal submission fee. This transaction is irreversible once broadcast. Verify all proposal details are correct before proceeding.
After validation, you will see a screen prompting you to prepare and burn the 1 DASH proposal fee. This fee is required to prevent spam and is permanently removed from circulation. Click Prepare proposal to create the fee transaction.
Proposal fee burn preparation screen#
Click Yes on the confirmation dialog to broadcast the fee transaction.
Confirmation dialog for burning the proposal fee#
The transaction ID will be generated and displayed in the TxID field.
Transaction ID generated for the proposal fee#
Waiting for confirmations#
The wallet will display the confirmation progress for your fee transaction. One confirmation is required before you can submit the proposal to the network. After the first confirmation, click the Next button to move to the proposal submission screen.
Waiting for confirmations (1 of 6)#
Submitting the proposal#
Click Submit Proposal to broadcast your governance object to the network.
Submitting proposal with 5 of 6 confirmations#
If successful, a message will be displayed with your proposal ID. Click OK to close the message.
Proposal successfully submitted to the network#
The proposal ID will also be shown on the submission screen. The proposal ID can be used to track voting on the proposal.
Proposal submitted with proposal ID shown#
Nota
You can submit your proposal ID to DashCentral to claim ownership and enable simplified voting for masternodes using DashCentral voting services.
Dash Budget Proposal Generator#
Il Dash Budget Proposal Generator supporta la creazione di proposal di budget sia su mainnet che su testnet. Nel primo passaggio, devi inserire un nome breve, chiaro e univoco per la proposal così come apparirà sulla blockchain. I nomi sono limitati a 40 caratteri. Puoi quindi fornire un collegamento al forum o a DashCentral in cui la tua proposal è descritta in modo più dettagliato (utilizza un servizio di abbreviazione URL se necessario), nonché selezionare l’importo del pagamento che stai richiedendo, la frequenza con cui dovrebbe avvenire e la data del superblocco in cui richiedi il pagamento. Ciò ti consente di controllare in quale periodo di budget apparirà la tua proposal e ti dà tempo sufficiente per creare sostegno familiarizzando gli elettori con il tuo progetto. Tieni presente che l’importo del pagamento è fisso e non può essere modificato dopo essere stato inviato alla blockchain.
Passaggi 1 e 2: creazione della proposal e preparazione del comando#
Successivamente, il generatore di proposal ti fornirà un comando da eseguire dalla console del tuo wallet Dash Core per preparare l’oggetto di governance della proposal di budget. L’esecuzione di questo comando ti costerà 1 DASH, che verrà «bruciato», rimosso definitivamente dalla circolazione. Questa tariffa una tantum protegge il sistema di governance dall’essere sopraffatto dallo spam, da proposal mal concepite o da utenti che non agiscono in buona fede. Viene addebitata anche una piccola commissione di transazione, quindi assicurati che nel tuo wallet siano disponibili poco più di 5 DASH. Molte proposal di budget richiedono il rimborso della tariffa 1 DASH.
Per prima cosa sblocca il tuo wallet facendo clic su Impostazioni > Sblocca wallet, quindi apri la console facendo clic su Finestra > Console e incolla il comando generato. Verrà visualizzato l’ID della transazione. Copialo e incollalo nella finestra di risposta del generatore di proposal. Non appena lo fai, il sistema mostrerà una barra di avanzamento mentre attende 6 conferme come segue:
Passaggio 3: creazione della transazione di proposal e attesa di 6 conferme dell’ID della transazione#
Una volta che esistono 6 conferme di blocco, apparirà un altro comando per inviare l’oggetto di governance preparato alla rete per la votazione. Copia e incolla questo comando e l’ID dell’oggetto di governance verrà visualizzato come segue:
Passaggio 4: invio dell’oggetto di governance alla rete#
Puoi utilizzare questo ID per tenere traccia del voto sulla proposal fino alla chiusura del budget e alla ricezione del pagamento. Puoi anche inviare l’ID a DashCentral per rivendicarla e abilitare la votazione semplificata per i masternode utilizzando i servizi di voto di DashCentral.
Dash Core Wallet Console#
La creazione di una proposal utilizzando la console del wallet segue lo stesso processo dell’utilizzo del generatore di proposte di budget Dash, ma richiede diversi passaggi aggiuntivi per costruire manualmente l’oggetto di governance della proposal.
Raccogliere i dati della proposal#
Per preparare una proposal, inserisci i dettagli come nome e indirizzo di pagamento in un oggetto JSON simile all’esempio mostrato di seguito.
{
"name": "Test-proposal_1",
"payment_address": "yd5KMREs3GLMe6mTJYr3YrH1juwNwrFCfB",
"payment_amount": 10,
"url": "https://www.mydashtestproposal.com",
"start_epoch": 1635750000,
"end_epoch": 1636750000,
"type": 1
}
Imposta il campo tipo su 1 per tutte le proposal.
I campi start_epoch e end_epoch sono timestamp dell’epoca Unix che indicano l’intervallo di tempo in cui la proposal può ricevere i pagamenti. Tipicamente si imposterà start_epoch approssimativamente a metà strada tra il superblocco in cui si desidera effettuare il pagamento per primo e quello precedente. Imposta end_epoch a circa 2 settimane dopo il superblocco in cui si desidera il pagamento finale. Puoi utilizzare un sito come https://www.epochconverter.com/ per convertire le date di inizio e fine nei valori epoch per questi campi.
Serializzare i dati della proposal#
Le informazioni sulla proposal devono essere serializzate in formato esadecimale prima di poter essere inviate alla rete. Rimuovi tutti gli spazi dall’oggetto JSON:
{"name":"Test-proposal_1","payment_address":"yd5KMREs3GLMe6mTJYr3YrH1juwNwrFCfB","payment_amount":10,"type":1,"url":"http://test.com","start_epoch":1635750000,"end_epoch":1636750000}
Converti il JSON risultante nel suo equivalente esadecimale. Siti come https://codebeautify.org/string-hex-converter forniscono un modo semplice per farlo:
7b226e616d65223a22546573742d70726f706f73616c5f31222c227061796d656e745f61646472657373223a227964354b4d52457333474c4d65366d544a597233597248316a75774e777246436642222c227061796d656e745f616d6f756e74223a31302c2274797065223a312c2275726c223a22687474703a2f2f746573742e636f6d222c2273746172745f65706f6368223a313633353735303030302c22656e645f65706f6368223a313633363735303030307d
Prepare the fee transaction#
Finally, open your Dash Core wallet console and use the gobject prepare
command to complete the proposal preparation and submit the fee
transaction (a 1 DASH coin burn). See the Core developer documentation for additional details.
Avvertimento
Running this command will create a transaction burning 1 DASH from the wallet as the proposal fee. This burn is irreversible. Only run this command once you have verified all the proposal information. The transaction is not reversible once sent.
gobject prepare <parent-hash> <revision> <time> <data-hex>
parent-hash- impostato su0revision- impostato su1time- imposta l’ora dell’epoca Unix corrente (non deve essere precisa)data-hex- impostato sulla stringa esadecimale del passaggio precedente
Comando di esempio:
gobject prepare 0 1 1636000000 7b226e616d65223a22546573742d70726f706f73616c5f31222c227061796d656e745f61646472657373223a227964354b4d52457333474c4d65366d544a597233597248316a75774e777246436642222c227061796d656e745f616d6f756e74223a31302c2274797065223a312c2275726c223a22687474703a2f2f746573742e636f6d222c2273746172745f65706f6368223a313633353735303030302c22656e645f65706f6368223a313633363735303030307d
The command will execute and respond with a transaction ID for the fee burn:
9192fb57953baba168f685e32378aa6471061301a097598c68ef1a4c136c9ea3
Invia la proposal#
Once the transaction has six confirmations, use the gobject submit command
to submit the prepared governance object to the network for voting. See the
Core developer documentation for additional
details.
gobject submit <parent-hash> <revision> <time> <data-hex> <fee-txid>
parent-hash- utilizza lo stesso valore del comandogobject preparerevision- utilizza lo stesso valore del comandogobject preparetime- utilizza lo stesso valore del comandogobject preparedata-hex- utilizza lo stesso valore del comandogobject preparefee-txid- l’ID della transazione restituito dal comandogobject preparenel passaggio precedente
Comando di esempio:
gobject submit 0 1 1636000000 7b226e616d65223a22546573742d70726f706f73616c5f31222c227061796d656e745f61646472657373223a227964354b4d52457333474c4d65366d544a597233597248316a75774e777246436642222c227061796d656e745f616d6f756e74223a31302c2274797065223a312c2275726c223a22687474703a2f2f746573742e636f6d222c2273746172745f65706f6368223a313633353735303030302c22656e645f65706f6368223a313633363735303030307d 9192fb57953baba168f685e32378aa6471061301a097598c68ef1a4c136c9ea3
Il comando verrà eseguito e risponderà con un ID transazione per la proposal che può essere utilizzato per tenere traccia del voto sulla proposta:
3108b76c8735132a0b6de856b434a40d75924ba0a535c4a61be4dba0bf83263f
Votazione sulle proposal#
Devi votare almeno tre giorni prima della creazione del superblocco altrimenti il tuo voto non verrà conteggiato. La scadenza esatta è 1662 blocchi prima del superblocco.
Votare le proposal nella DAO è una parte importante del funzionamento di un masternode. Poiché i masternode investono pesantemente in Dash, ci si aspetta che valutino criticamente le proposal ogni mese e votino in un modo che ritengono coerente con i migliori interessi della rete. Ogni masternode può votare una volta su ciascuna proposal e il voto può essere modificato in qualsiasi momento prima della scadenza della votazione. Per visualizzare e gestire proposal e votazioni sono disponibili i seguenti siti e strumenti:
Per informazioni su come creare una proposal, vedere qui.
DashCentral#
Molti operatori masternode memorizzano la propria chiave privata masternode protetta da password su DashCentral per consentire una votazione semplice con un’interfaccia user-friendly. La popolarità di questo sito lo ha reso un luogo comune per la discussione delle proposal dopo che sono state sottoposte al sistema di governance. Per votare dall’interfaccia web di DashCentral, aggiungi prima la chiave privata masternode al tuo account seguendo le istruzioni qui. Tieni presente che la chiave privata del masternode non è la stessa chiave privata che controlla la garanzia 1000 DASH, quindi non c’è rischio di perdere la garanzia. È necessaria una password separata per sbloccare la chiave privata masternode per votare, quindi il rischio che l’operatore del sito voti a tuo nome è minimo.
Quando sei pronto per votare, vai alla pagina delle proposal di budget. È sufficiente fare clic per visualizzare le proposal, quindi fare clic su Vota SÌ, Vota ASTENITI o Vota NO.
Interfaccia di voto su DashCentral#
Dash Masternode Tool (DMT)#
Se hai avviato il tuo masternode da un wallet hardware utilizzando DMT, puoi anche utilizzare lo strumento per esprimere voti. Fai clic su Strumenti > Proposal e attendi il caricamento dell’elenco delle proposal. Puoi vedere facilmente lo stato della votazione di ciascuna proposal e selezionandone una vengono visualizzati i dettagli nella scheda Dettagli nella metà inferiore della finestra. Passa alla scheda Vota per Votare Sì, Vota No o Vota Astenersi direttamente da DMT.
Interfaccia di voto in DMT#
Dash Core wallet o masternode#
Se hai avviato il tuo masternode utilizzando Dash Core Wallet (non consigliato), puoi votare manualmente da Finestra > Console o direttamente dal tuo masternode tramite SSH utilizzando dash-cli. Per prima cosa fai clic sulla proposal che desideri votare su DashCentral o Dash Ninja . Vedrai un comando per la votazione manuale sotto la descrizione della proposal. Copia e incolla il comando e modificalo se necessario. Ad esempio, prendi questa proposal da Dash Ninja (o DashCentral). Il codice di voto per Dash Core Wallet è il seguente:
gobject vote-many 6ed7418455e07f4b30b99f0d4a24a2b83282e12b26fe3415673ecbea04ff6c9d funding yes
gobject vote-many 6ed7418455e07f4b30b99f0d4a24a2b83282e12b26fe3415673ecbea04ff6c9d funding no
gobject vote-many 6ed7418455e07f4b30b99f0d4a24a2b83282e12b26fe3415673ecbea04ff6c9d funding abstain
Tieni presente che per votare direttamente dal tuo masternode, devi anteporre al comando dash-cli, che di solito si trova nella cartella .dashcore. Il comando dovrebbe essere simile al seguente:
~/.dashcore/dash-cli gobject vote-many 6ed7418455e07f4b30b99f0d4a24a2b83282e12b26fe3415673ecbea04ff6c9d funding yes
~/.dashcore/dash-cli gobject vote-many 6ed7418455e07f4b30b99f0d4a24a2b83282e12b26fe3415673ecbea04ff6c9d funding no
~/.dashcore/dash-cli gobject vote-many 6ed7418455e07f4b30b99f0d4a24a2b83282e12b26fe3415673ecbea04ff6c9d funding abstain
Nota che questo comando attiverà un voto da tutti i masternode configurati in dash.conf. Se hai più masternode ciascuno con il proprio file .conf, o se vuoi votare solo con alcuni dei tuoi masternode, devi cambiare il comando da vote-many a vote. Se il tuo voto ha avuto successo, dovresti vedere un messaggio di conferma con la scritta Votato con successo.
Votazione dalla console di debug in Dash Core Wallet#
Puoi anche visualizzare un elenco delle proposal in formato JSON dalla console per copiare e incollare l’hash della proposal per votare come segue:
gobject list
Delegare i voti#
I Masternode sono dotati di una chiave destinata esclusivamente al voto, che consente di delegare il proprio voto a un rappresentante. Inserisci semplicemente un indirizzo Dash fornito dal delegato quando registra il tuo masternode, o aggiorna la registrazione del tuo masternode per delegare il voto di un masternode in esecuzione. Il wallet che controlla la chiave privata di questo indirizzo voterà quindi per conto del proprietario di questo masternode semplicemente seguendo la procedura di voto Dash Core descritta sopra. Non è necessaria alcuna ulteriore configurazione.