Wie kann ich die DAO-Vorschläge auflisten und von der Kommandozeile aus abstimmen?

Gibt es Kommandozeilen-Tools, um über die DAO-Vorschläge abzustimmen?

Ich möchte:

  • Listen Sie die offenen Vorschläge auf
  • Überprüfen Sie, ob ich bereits über diese Vorschläge abgestimmt habe
  • Überprüfen Sie meinen Abstimmungsverlauf
  • Stimmen Sie über die Vorschläge für jedes meiner Konten mit den DAO-Token-Guthaben ab
  • Überprüfen Sie meinen Kontostand und zeigen Sie mir, welche Konten die DAO-Token-Übertragungen gesperrt haben, durch welchen Vorschlag und die Ablaufzeit
  • Und tun Sie dies über die Befehlszeile

Warum sollte ich das über die Befehlszeile tun wollen?

  • Ich möchte abstimmen, ohne meine Daten (Geldbörsen und Passwörter) über das Internet senden zu müssen.
  • Ich möchte nicht warten, bis das Ethereum Wallet (Mist) freigegeben wird, und ich kann die Liste der Vorschläge in Mist nicht anzeigen.
  • Und ich möchte nur geth(mit einer einfacheren Schnittstelle) verwenden.

Antworten (1)

Ja. Hier isttheDAOVoter

Beschreibung

theDAOVoterv1.0000000000000003 ist ein kleines Perl-Skript (~808 Zeilen, 738 Quellzeilen), mit dem Sie:

  • Listen Sie die DAO-Vorschläge auf.
  • Listen Sie Ihre Konten auf und zeigen Sie an, ob die DAO-Übertragungen aufgrund geöffneter Abstimmungen und Ablaufzeiten blockiert sind.
  • Listen Sie die DAO-Vorschläge mit einer Auflistung Ihrer Konten auf, die zeigen, welche Konten bereits über jeden Vorschlag abgestimmt haben. Vergangene Stimmen können auch zusammen mit dem tatsächlich verbrauchten Gas aufgelistet werden.
  • Stimmen Sie über die DAO-Vorschläge von Ihren Konten ab.

Das Skript läuft unter Linux, sollte unter Mac OS/X laufen und kann unter Windows mit einer der Perl-Distributionen einschließlich Cygwin und Active State Perl laufen.

Sie müssen gethinstalliert und die Blockchain synchronisiert werden.


Wo kann ich findentheDAOVoter

theDAOVoterfinden Sie auf Github - BokkyPooBah/TheDAOVoter .


Wie funktioniert es theDAOVoter?

Das Skript ruft gethmit der attachOption auf und führt die Go Ethereum JavaScript API aus, um die Ethereum-Blockchain abzufragen.

Lesen Sie das Perl - Skript - es sind nur 808 Zeilen. Und verwenden Sie die --verboseOption, wenn Sie die genauen Befehle sehen möchten, die von diesem Skript ausgeführt werden.

Sie müssen Ihr gethKeystore-Passwort nur eingeben, wenn Sie den --voteBefehl verwenden, um über Vorschläge abzustimmen.

Unten finden Sie eine Liste der verwendeten JavaScript-API-Befehle von Go Ethereum und der aufgerufenen DAO-Funktionen.


Probe

# List all your accounts including the totals
user@Kumquat:~$ theDAOVoter --listaccounts
  # Account                                                            ETH                        DAO The DAO transfer blocked by OPEN proposal?
--- ------------------------------------------ --------------------------- -------------------------- ------------------------------------------
  0 0xaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa      111.111111111111111111       111.0000000000000000 #2 OPEN until Sun Jun 12 03:18:37 2016
  1 0xbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbb      222.222222222222222222       222.0000000000000000
--- ------------------------------------------ --------------------------- --------------------------
  3 Total                                           333.333333333333333333       333.0000000000000000

# List proposal #2 checking the voting status of this proposal from your accounts
user@Kumquat:~$ theDAOVoter --listproposals --id=2 --checkvotingstatus --checkpastvotes
=========================================================================================================================================
Proposal 2. OPEN until Sun Jun 12 03:18:37 2016
Votes       Yea 2473115 (44.20%) Nay 3122385 (55.80%) Quorum 0.48% of 20%
Creator     0x5a8e70f2d75c1468db4a2241fdd70e5a84f028b8
Recipient   0xbb9bc244d798123fde783fcc1c72d3bb8c189413
Deposit     2 ETH
Amount      0 ETH
New curator N
-----------------------------------------------------------------------------------------------------------------------------------------
Do you believe in god?
-----------------------------------------------------------------------------------------------------------------------------------------

  # Account                                                            ETH                        DAO  Est Gas Voting Status
--- ------------------------------------------ --------------------------- -------------------------- -------- -------------
  0 0xaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa      111.111111111111111111       111.0000000000000000    56287 Voted Nay
  1 0xbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbb      222.222222222222222222       222.0000000000000000    70851 Not voted yet
--- ------------------------------------------ --------------------------- -------------------------- -------- -------------
=========================================================================================================================================

# A NO vote on proposal #2 from account #1
user@Kumquat:~$ theDAOVoter --vote --id=2 --account=1 --support=0
Enter password for 0xbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbb to vote: 
Transaction Id 0x5555555555555555555555555555555555555555555555555555555555555555


Die häufiger verwendeten Befehle

Anweisungen finden Sie auf der Hauptseite, und hier sind die am häufigsten verwendeten Befehle:

Hilfe

theDAOVoter

Konten auflisten und anzeigen, ob das Konto durch laufende Abstimmungen gesperrt ist

theDAOVoter --listaccounts

Vorschläge auflisten (außer Splits, nur offene Vorschläge)

theDAOVoter --listproposals 

Listen Sie Vorschläge auf (außer Splits, nur offene Vorschläge) und überprüfen Sie den Abstimmungsstatus für Ihre Konten

theDAOVoter --listproposals --checkvotingstatus

Listen Sie Vorschläge Nr. 2 auf und überprüfen Sie den Abstimmungsstatus für Ihre Konten

theDAOVoter --listproposals --id=2 --checkvotingstatus

Listen Sie offene Vorschläge auf und überprüfen Sie den Abstimmungsstatus und frühere Abstimmungen für Ihre Konten

theDAOVoter --listproposals --checkvotingstatus --checkpastvotes

Stimmen Sie über Vorschlag Nr. 2 von Konto Nr. 1 ab und unterstützen Sie diese Abstimmung nicht

theDAOVoter --vote --id=2 --account=1 --support=0


Verwendete JavaScript-API-Befehle von Go Ethereum ( geth) und die aufgerufenen DAO-Funktionen

Guthaben auflisten

  • eth.getBalance(Konto)
  • theDAO.balanceOf(Konto)
  • theDAO.blocked(Konto)
  • theDAO.proposals (Vorschlags-ID)

Vorschläge auflisten

  • theDAO.numberOfProposals()
  • theDAO.proposals (Vorschlags-ID)
  • theDAO.minQuorumDivisor()
  • theDAO.totalSupply()

Überprüfen Sie den Abstimmungsstatus

  • eth.estimateGas(theDAO.vote(...))

Überprüfen Sie den Abstimmungsverlauf

  • theDAO.Voted.watch(...)
  • eth.getTransactionReceipt(...)

Wählen

  • personal.unlockAccount(...)
  • theDAO.vote(...)


Warnung

Dieses Skript verwendet die gleiche Methode wie das Ethereum Wallet (Mist), um Ihr Konto in Geth zu entsperren, wenn Sie Ihre Stimme an die Ethereum-Blockchain senden. Stellen Sie sicher, dass Sie geth ohne die --rpcOption starten, wenn Sie geth mit diesem Skript verwenden. Sehen Sie sich die folgende URL zu den Sicherheitsproblemen bei dieser Keystore-Entsperrungsmethode an: Wie können Sie die Wahrscheinlichkeit verringern, dass Ihre Ethereum-Brieftasche gehackt wird?


Siehe auch


Genießen Sie, und stimmen Sie gut ab. BokkyPooBah 2016.

Perl-Programmierer sprechen mit sich selbst, ich bin nicht überrascht ;-)
Murmeln, murmeln, aber es ist prägnant (knapp). Nur 780 Zeilen, 711 ohne Kommentar. :-)