Go-Ethereum
Truffle Migrations Account Locked Error with –network 命令
我已經使用命令啟動了一個私有區塊鏈,
geth --networkid 1337 --datadir ~/home/xyz/testnet --ipcpath /home/xyz/.ethereum/geth.ipc --rpc --rpcapi eth,web3 --rpcport 8545 --rpcaddr localhost --rpccorsdomain "*";
接下來,在另一個終端控制台中,我啟動礦機並解鎖我的測試帳戶,
> miner.start(1) true > personal.unlockAccount(web3.eth.coinbase) Unlock account 0xSomeAddress Passphrase: true
我的 truffle.js 文件包含以下內容,
module.exports = { build: { "index.html": "index.html", "app.js": [ "javascripts/app.js" ], "app.css": [ "stylesheets/app.css" ], "images/": "images/" }, networks: { "staging": { network_id: 1337, from: "0xAddress" // Unlocked Address } }, rpc: { host: "localhost", port: 8545 } };
最後,在另一個終端中,我使用以下命令執行和編譯 truffle 應用程序,
truffle compile truffle migrate --network staging
我得到如下
Account locked Error
如下所示,Running migration: 1_initial_migration.js Deploying Migrations... Migrations: 0xSomeAddress Saving successful migration to network... Error encountered, bailing. Network state unknown. Review successful transactions manually. Error: account is locked at Object.InvalidResponse (/usr/lib/node_modules/truffle/node_modules/ether-pudding/node_modules/web3/lib/web3/errors.js:35:16) at /usr/lib/node_modules/truffle/node_modules/ether-pudding/node_modules/web3/lib/web3/requestmanager.js:86:36 at request.onreadystatechange (/usr/lib/node_modules/truffle/node_modules/web3/lib/web3/httpprovider.js:114:13) at dispatchEvent (/usr/lib/node_modules/truffle/node_modules/xmlhttprequest/lib/XMLHttpRequest.js:591:25) at setState (/usr/lib/node_modules/truffle/node_modules/xmlhttprequest/lib/XMLHttpRequest.js:610:14) at IncomingMessage.<anonymous> (/usr/lib/node_modules/truffle/node_modules/xmlhttprequest/lib/XMLHttpRequest.js:447:13) at emitNone (events.js:91:20) at IncomingMessage.emit (events.js:185:7) at endReadableNT (_stream_readable.js:974:12) at _combinedTickCallback (internal/process/next_tick.js:74:11) at process._tickDomainCallback (internal/process/next_tick.js:122:9)
我在這裡錯過了哪一部分?我遵循的過程是否正確?相同的程式碼可以在這個私有區塊鏈上執行,
testrpc
但不能在這個私有區塊鏈上執行,我缺少什麼重要的部分?請指教。
可能是解鎖時間不夠長?
web3.personal.unlockAccount(web3.personal.listAccounts[0],"password",15000); // 1st account, pw & time in seconds ...
我遇到了同樣的問題,但您可以嘗試使用
geth
自己檢查您的帳戶狀態,它對我有用。當您在區塊鏈上同步/操作時,
geth
使用一個文件進行程序間通信 (IPC)。檢查您的案例中的該文件是什麼,例如:
INFO [10-02|17:49:23] IPC endpoint opened: /Users/josealves/Library/Ethereum/testnet/geth.ipc
然後,您可以通過鍵入以下內容“附加”
geth
到此:
geth attach /Users/josealves/Library/Ethereum/testnet/geth.ipc
然後,您將看到一個提示,您可以在其中向區塊鏈發送命令並與目前會話進行互動。通過鍵入
personal
命令,您可以找到帳戶“錢包”的目前狀態:{ listAccounts: ["0xcb7fab56b707a54d17c791de41eaa9a399b3efef", "0x3a05b7c9f420f6b7c5f39ae29deab1352750bf26"], listWallets: [{ accounts: [{...}], status: "Locked", url: (..) }, { accounts: [{...}], status: "Locked", url: (...) }],
在那裡,您將獲得您帳戶的目前狀態,並且可能它們都處於“鎖定”狀態。然後,您可以通過鍵入以下內容來解鎖它們:
personal.unlockAccount('0x3a05b7c9f420f6b7c5f39ae29deab1352750bf26')
然後您將被要求輸入您的帳戶密碼,並且該密碼將被解鎖。
之後就可以遷移了。