我在web3 1.0.0-beta.27
,我运行了一个私有区块链:
geth --identity“node”--nodiscover --maxpeers 0 --datadir path / to / data --networkid 123 --ws --wsport 8546 --wsorigins“*”console
然后在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
的一种personal.unlockAccount(sender, 'password')
对吗?
此外,在geth控制台上,我可以使用
解锁帐户{{1}}
答案 0 :(得分:1)
您向self.assertTrue(password.validate("asdfA1qw"))
添加了personal
,但是通过WS连接。您需要将其添加到rpcapi
。
rpc只是一种ipc正确吗?
3种连接协议是IPC-RPC,JSON-RPC和WS-RPC。 wsapi
配置参数用于JSON-RPC(通过HTTP),而不是IPC / WS。