0

我在web3 1.0.0-beta.27,我运行了一个私有区块链: geth --identity "node" --nodiscover --maxpeers 0 --datadir path/to/data --networkid 123 --ws --wsport 8546 --wsorigins "* “ 安慰

然后在一个app.ts文件中我有:

import * as Web3 from 'web3';

var web3   = new Web3(new Web3.providers.WebsocketProvider('ws://localhost:8546'));

web3.eth.getAccounts().then(accounts => {
    var sender = accounts[0];
    web3.eth.personal.unlockAccount(sender, 'password');
});

但我得到错误:

Unhandled rejection Error: Returned error: The method personal_newAccount does not exist/is not available

在网上搜索这个问题,我应该用 开始这个geth过程--rpcapi="db,eth,net,web3,personal,web3",但是添加这个标志并没有帮助,即使rpc只是一种ipc正确的?

此外,在 geth 控制台上,我可以使用以下命令解锁帐户

personal.unlockAccount(sender, 'password')
4

1 回答 1

1

您添加personalrpcapi,但正在通过 WS 连接。您需要将其添加到wsapi.

rpc只是一种ipc对吗?

三种连接协议是 IPC-RPC、JSON-RPC 和 WS-RPC。配置rpc*参数用于 JSON-RPC(通过 HTTP),而不是 IPC/WS。

于 2018-01-15T17:45:17.950 回答