Ethereum web3.eth.accounts.create方法不';我没有实际创建新帐户
我尝试在专用网络中通过RPC创建eth帐户 到目前为止,我所做的是:Ethereum web3.eth.accounts.create方法不';我没有实际创建新帐户,ethereum,web3js,Ethereum,Web3js,我尝试在专用网络中通过RPC创建eth帐户 到目前为止,我所做的是: 启动geth节点并创建专用网络 使用web3 1.0.0,typescript创建简单的javascript程序 按如下所示运行并获取结果,但未创建帐户 代码: const result = await web3.eth.personal.unlockAccount(senderId, senderPassword, duration) if (result === true) { // const newAccoun
const result = await web3.eth.personal.unlockAccount(senderId, senderPassword, duration)
if (result === true) {
// const newAccountResult = await web3.eth.personal.newAccount('password')
const newAccountResult = await web3.eth.accounts.create('user01')
console.log(newAccountResult)
}
结果:
web3.eth.accounts.create
返回以下结果
{ address: '0xf10105f862C1cB10550F4EeB38697308c7A290Fc',
privateKey: '0x5cba6b397fc8a96d006988388553ec17a000f7da9783d906979a2e1c482e7fcb',
signTransaction: [Function: signTransaction],
sign: [Function: sign],
encrypt: [Function: encrypt] }
但是web3.eth.getAccounts
方法只返回一个帐户
[ '0xaf0034c41928Db81E570061c58c249f61CFF57f2' ]
似乎web3.eth.accounts.create
方法已成功,因为结果包括帐户地址和私钥。
但是我不明白为什么web3.eth.getAccounts
方法不包括创建的帐户
我还通过控制台检查了geth,结果是一样的
> eth.accounts
["0xaf0034c41928db81e570061c58c249f61cff57f2"]
和eth.personal.newAccount
不起作用。
我需要在web3.eth.accounts.create之后做些什么吗
非常感谢您的帮助。如果我没弄错的话,web.eth.accounts.create
是一种创建帐户的方法,无需将帐户存储在本地节点上,因此它基本上是一种动态获取有效密钥对的方法,无需在密钥库上存储任何内容)
web3.eth.personal.newAccount()
如果您在geth节点上激活了个人API(这是ganache的默认行为,使用geth
您需要通过geth--dev/testnet--rpc--rpcapi eth,web3,personal
(注意:当然,在允许mainnet上使用个人API时应该非常小心,确保RPC访问受到限制,以便只有您/特权用户才能访问)
我应该给你一些
0xb71DCf0191E2B90efCD2638781DE40797895De66
[
...
'0xb71DCf0191E2B90efCD2638781DE40797895De66' ]
Refs我以前尝试过newAccount
方法,但失败了,但再次尝试后成功了!谢谢!
0xb71DCf0191E2B90efCD2638781DE40797895De66
[
...
'0xb71DCf0191E2B90efCD2638781DE40797895De66' ]