Web3js

我是否必須在 geth 中解鎖我的帳戶才能在 JavaScript 中呼叫 web3.eth.sign()?

  • November 5, 2017

我有:

  1. 一個geth帳戶
  2. 訪問 web3 API

我想要:

  1. 呼叫函式,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

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