无法在测试网上使用 Parity 和 Web3 解锁帐户
Posted
技术标签:
【中文标题】无法在测试网上使用 Parity 和 Web3 解锁帐户【英文标题】:Unable to unlock account with Parity and Web3 on the testnet 【发布时间】:2017-10-28 18:50:20 【问题描述】:我正在为 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
[]
但是,当我签入奇偶校验时:
parity account list --chain ropsten
它列出了 3 个帐户。为什么它没有显示在 listAccounts 中?我必须以某种方式使该帐户可用吗?
任何想法都将不胜感激。
【问题讨论】:
您的 /var/log/parity.log 文件中有什么内容? 那里似乎没有 parity.log 文件。 我已经通过 --log-file /var/log/parity.log 启用了日志记录,现在将运行命令 奇偶校验日志文件什么也不显示。只是同步状态。 你见过这个吗? github.com/ethereum/web3.js/issues/388 【参考方案1】:据我了解,当您创建具有奇偶校验的帐户时,它创建了一个以太坊帐户并将该密钥和密码存储在奇偶校验的密钥库文件中。此文件可能不同于 web3 调用正在访问的密钥库文件 geth 密钥库文件。在您的情况下,这似乎是最可能的原因。
尝试定位奇偶校验的密钥库文件和 web3 调用所指向的密钥库文件。
一般parity的keystore会位于~/.local/share/io.parity.ethereum/keys/
以及安装目录或主目录中的 geths。
当您找到它们时,您只需手动复制即可获得 geth 来访问这些密钥。
【讨论】:
以上是关于无法在测试网上使用 Parity 和 Web3 解锁帐户的主要内容,如果未能解决你的问题,请参考以下文章
C解905. Sort Array By Parity——LeetCode刷题