Tokens

如何從命令行列出 DAO 提案並投票?

  • June 4, 2016

是否有任何命令行工具可以對 DAO 提案進行投票?

我想:

  • 列出未決提案
  • 檢查我是否已經對這些提案進行了投票
  • 查看我的投票記錄
  • 使用 The DAO 代幣餘額對我的每個帳戶的提案進行投票
  • 檢查我的賬戶餘額,並告訴我哪些賬戶的 DAO 代幣轉移被阻止,由哪個提案和到期時間
  • 從命令行執行此操作

為什麼我要從命令行執行此操作?

  • 我想在不必通過 Internet 發送我的詳細資訊(錢包和密碼)的情況下投票。
  • 我不想等待乙太坊錢包(Mist)解凍,也無法查看 Mist 中的提案列表。
  • 我只想使用geth(使用更簡單的界面)。

是的。這是theDAOVoter

描述

theDAOVoterv1.0000000000000003 是一個小的 Perl 腳本(約 808 行,738 行原始碼),它允許您:

  • 列出 DAO 提案。
  • 列出您的賬戶,顯示 DAO 轉賬是否由於已開票和到期時間而被阻止。
  • 列出 DAO 提案,並列出您的賬戶,顯示哪些賬戶已經對每個提案進行了投票。過去的投票也可以與實際使用的氣體一起列出。
  • 從您的帳戶中對 DAO 提案進行投票。

該腳本將在 Linux 中執行,應該在 Mac OS/X 上執行,並且可以在使用包括 Cygwin 和 Active State Perl 在內的 Perl 發行版之一的 Windows 上執行。

您將需要geth安裝,並且要同步區塊鏈。

我在哪裡可以找到theDAOVoter

theDAOVoter可以在Github - BokkyPooBah/TheDAOVoter上找到。

如何theDAOVoter工作?

該腳本geth使用attach選項呼叫 ,執行 Go Ethereum JavaScript API 以查詢 Ethereum 區塊鏈。

閱讀 Perl腳本——它只有 808 行。--verbose如果您想查看此腳本執行的確切命令,請使用該選項。

當您使用該命令對提案進行投票時,您只需輸入您的geth密鑰庫密碼。--vote

請參閱下面的 Go Ethereum JavaScript API 命令列表和呼叫的 DAO 函式。

樣本

# 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

更常用的命令

說明在首頁上,這裡是更常用的命令:

幫助

theDAOVoter

列出帳戶並顯示該帳戶是否被正在進行的投票阻止

theDAOVoter --listaccounts

列出提案(不包括拆分,僅開放提案)

theDAOVoter --listproposals 

列出提案(不包括拆分,僅開放提案)並檢查您帳戶的投票狀態

theDAOVoter --listproposals --checkvotingstatus

列出提案 #2 並檢查您帳戶的投票狀態

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

列出未決提案並檢查您帳戶的投票狀態和過去的投票

theDAOVoter --listproposals --checkvotingstatus --checkpastvotes

從賬戶 #1 對提案 #2 進行投票,不支持該投票

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

Go Ethereum ( geth) 使用的 JavaScript API 命令和呼叫的 DAO 函式

上市餘額

  • eth.getBalance(賬戶)
  • theDAO.balanceOf(賬戶)
  • theDAO.blocked(賬戶)
  • theDAO.proposals(proposalId)

上市提案

  • DAO.numberOfProposals()
  • theDAO.proposals(proposalId)
  • DAO.minQuorumDivisor()
  • DAO.totalSupply()

檢查投票狀態

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

檢查投票歷史

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

表決

  • 個人.unlockAccount(…)
  • theDAO.vote(…)

警告

當您將投票發送到乙太坊區塊鏈時,此腳本使用與乙太坊錢包 (Mist) 相同的方法來解鎖您在 geth 中的帳戶。確保在 --rpc將此腳本與 geth 一起使用時啟動 geth 時不帶該選項。有關此密鑰庫解鎖方法的安全問題,請參閱以下 URL:如何減少您的乙太坊錢包被黑客入侵的機會?

也可以看看

享受,並投票。BokkyPooBah 2016。

引用自:https://ethereum.stackexchange.com/questions/4618