Web3js
我是否必須在 geth 中解鎖我的帳戶才能在 JavaScript 中呼叫 web3.eth.sign()?
我有:
- 一個geth帳戶
- 訪問 web3 API
我想要:
- 呼叫函式,
web3.eth.sign(coinbase, sha)
如果我把它放在一個 javascript 文件
sign.js
中,然後我呼叫 node.js,它會簽署我的消息嗎?還是我的geth帳戶必須解鎖?我可以在 bash 中解鎖它然後呼叫 node.js 嗎?謝謝!
您需要解鎖您的帳戶才能使用它。unlockAccount 的第三個參數是以秒為單位的超時時間。
web3.personal.unlockAccount("0x..", "<passs>", 1000);
但請注意,如果您解鎖您的帳戶,任何其他有權訪問您的節點的程序都可以在超時期間簽名。
請參閱此內容以了解如何保護您的節點並避免出現問題:如何減少您的乙太坊錢包被黑客入侵的機會?.
從web3.js v1.0 開始,您必須通過
eth
才能personal
從 nodejs 訪問:web3.eth.personal.unlockAccount("0x..", "<passs>", 1000);
否則你會得到錯誤
TypeError: Cannot read property 'unlockAccount' of undefined