如何從命令行列出 DAO 提案並投票?
是否有任何命令行工具可以對 DAO 提案進行投票?
我想:
- 列出未決提案
- 檢查我是否已經對這些提案進行了投票
- 查看我的投票記錄
- 使用 The DAO 代幣餘額對我的每個帳戶的提案進行投票
- 檢查我的賬戶餘額,並告訴我哪些賬戶的 DAO 代幣轉移被阻止,由哪個提案和到期時間
- 從命令行執行此操作
為什麼我要從命令行執行此操作?
- 我想在不必通過 Internet 發送我的詳細資訊(錢包和密碼)的情況下投票。
- 我不想等待乙太坊錢包(Mist)解凍,也無法查看 Mist 中的提案列表。
- 我只想使用
geth
(使用更簡單的界面)。
是的。這是
theDAOVoter
描述
theDAOVoter
v1.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:如何減少您的乙太坊錢包被黑客入侵的機會?也可以看看
- 如何從 The DAO 中檢索已投票的事件
- 通過程式碼獲取 TheDAO 提案
- 如何查看包含目前投票狀態的 DAO 提案?
- 我可以對每個 The DAO 提案進行多次投票嗎?
- 如何從 geth 列印我的賬戶餘額和 TheDAO 代幣
- 乙太坊 - Web3 JavaScript Dapp API
- EtherScan.io - DAO 原始碼
享受,並投票。BokkyPooBah 2016。