Parity

無法在測試網上使用 Parity 和 Web3 解鎖帳戶

  • March 21, 2018

我正在為 Debian (Jessie) 上的測試網 (Ropsten) 執行本地 Parity 節點。我正在使用 web3.py 連接到該節點並創建事務。

我創建了一個新帳戶:

parity account new --chain ropsten

我正在使用以下選項執行我的奇偶校驗節點

/usr/bin/parity --chain ropsten --no-ui --rpcapi 'eth,web3,personal' --jsonrpc-interface 127.0.0.1 --bootnodes 'enode://20c9ad97c081d63397d7b685a412227a40e23c8bdc6688c6f37e97cfbc22d2b4d1db1510d8f61e6a8866ad7f0e17c02b14182d37ea7c3c8b9c2683aeb6b733a1@52.169.14.227:30303,enode://6ce05930c72abc632c58e2e4324f7c7ea478cec0ed4fa2528982cf34483094e9cbc9216e7aa349691242576d552a2a56aaeae426c5303ded677ce455ba1acd9d@13.84.180.240:30303'

當我測試這個節點時,它執行良好,請參見以下 python shell:

Python 3.4.2 (default, Oct  8 2014, 10:45:20) 
[GCC 4.9.1] on linux
Type "help", "copyright", "credits" or "license" for more information.
>>> from web3 import Web3, KeepAliveRPCProvider, IPCProvider
>>> web3 = Web3(KeepAliveRPCProvider(host='localhost', port='8545'))
>>> web3.eth.blockNumber
1012932

但是,當我嘗試解鎖我的帳戶時,它會返回 False(當然還有正確的帳戶雜湊和密碼)

>>> web3.personal.unlockAccount('my-account-hash', 'some-password')
False

當我檢查它是否真的在我的帳戶列表中時,我得到以下資訊:

>>> web3.personal.listAccounts
[]

任何想法將不勝感激。

下面的 RPC 方法personal_*預設是不暴露的。問題設置正確。(儘管今天,正確的 arg 是--jsonrpc-apis 'eth,web3,personal')。

如果您仍然無法連接,並且您正在使用 IPC,請注意上面的參數僅設置通過 HTTP 的呼叫。如果您使用的是 IPC,則需要改為使用--ipc-apis 'eth,web3,personal'

如果您不想公開個人 API,出於安全原因,您可以使用eth_accountsRPC 呼叫

>>> web3.eth.accounts
['0x...']

我們發現了問題,我們沒有正確定義密鑰目錄。謝謝您的幫助!

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