无法在testnet上使用Parity和Web3解锁帐户

时间:2017-05-28 09:47:37

标签: python-3.x ethereum web3

我在Debian(Jessie)上为testnet(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
[]

但是,当我签入奇偶校验:

parity account list --chain ropsten

它列出了3个帐户。为什么它没有显示在listAccounts中?我是否必须以某种方式提供帐户?

任何想法都会受到赞赏。

1 个答案:

答案 0 :(得分:1)

据我所知,当您使用奇偶校验创建帐户时,它创建了一个以太坊帐户并将该密钥和密码存储在奇偶校验的密钥库文件中。此文件可以与web3调用正在访问的密钥库文件(geth密钥库文件)不同。这似乎是您案件中最可能的原因。

尝试找到奇偶校验的密钥库文件和web3调用指向的密钥库文件。 通常奇偶校验的密钥库将位于
~/.local/share/io.parity.ethereum/keys/
以及安装目录或主目录中的geths 当您找到它们时,您可以通过手动复制来获取访问这些键的geth。