2

I recently migrated over to EOS v1.0.1 and started nodeos as per usual, specifying my --config-dir which contains my previous config.ini.

nodeos -e -p eosio --config-dir ~/eosio-wallet

Nodeos starts producing blocks normally, but when I try to connect with cleos, I get the following output and error;

"/usr/local/bin/keosd" launched
Unable to connect to keosd, if keosd is running please kill the process and try again.

My config.ini, without comments, is as follows;

http-server-address = 127.0.0.1:8888
access-control-allow-origin = *
access-control-allow-credentials = false
wallet-dir = "."
unlock-timeout = 3600
producer-name = eosio
enable-stale-production = true
plugin = eosio::http_plugin
plugin = eosio::chain_api_plugin
plugin = eosio::history_api_plugin
plugin = eosio::wallet_api_plugin
plugin = eosio::producer_plugin

How can I restart or kill keosd? I've tried killall keosd and pgrep keosd, but the process doesn't seem to be running. Calling keosd itself outputs; 422033ms thread-0 main.cpp:52 main ]

~/contracts/eos/libraries/appbase/application.cpp(304): Throw in function appbase::abstract_plugin &appbase::application::get_plugin(const string &) const
Dynamic exception type: boost::exception_detail::clone_impl<boost::exception_detail::error_info_injector<std::runtime_error> >
std::exception::what: unable to find plugin: eosio::chain_api_plugin

5 Answers 5

3

You can provide both nodeos and keosd urls with
cleos -u http://localhost:8888 --wallet-url http://localhost:8889 your commands

  • -u sets nodeos url
  • --wallet-url is for keosd

To change default keosd port (8889 here), set http-server-address value in wallet config (~/eosio-wallet/config.ini)

1
  • +1 As this worked for me on Ubuntu 18.04 with an EOS early September master build Sep 14, 2018 at 18:17
1

I have experienced the same issue.

you don't use wallet's config.ini

that config file may be keosd's default config file.

And don't use eosio::chain_plugin_api in wallet's config

using nodeos default config file

config.ini can be found at the following locations:

Mac OS: ~/Library/Application Support/eosio/nodeos/config

Linux: ~/.local/share/eosio/nodeos/config

ref. https://developers.eos.io/eosio-nodeos/docs/configuration-file

0

It's clear that you start nodeos and keosd with the same port. Let's specify other port for keosd.

The following is an example for you: ./keosd --http-server-address=localhost:8899

8
  • This didn't work, and returned the same error. I tried with the port you suggested 8899 and with the actual port nodeos is listening on 8888. Jun 6, 2018 at 13:25
  • plz show your command that hits the error. Jun 6, 2018 at 13:51
  • keosd --http-server-address=localhost:8899 1478549ms thread-0 http_plugin.cpp:285 plugin_initialize ] configured http to listen on localhost:8899 1478549ms thread-0 main.cpp:52 main ] ~/contracts/eos/libraries/appbase/application.cpp(304): Throw in function appbase::abstract_plugin &appbase::application::get_plugin(const string &) const Dynamic exception type: boost::exception_detail::clone_impl<boost::exception_detail::error_info_injector<std::runtime_error> > std::exception::what: unable to find plugin: eosio::chain_api_plugin Jun 6, 2018 at 14:00
  • It seems that when start nodeos you missed plug-in eosio::chain_api_plugin. Try to restart EOSIO and add plug-in: --plugin eosio::chain_api_plugin Jun 6, 2018 at 14:21
  • Still the same error... plugin = eosio::chain_api_plugin is in my config.ini, but I added it as a flag --plugin eosio::chain_api_plugin as well. Jun 6, 2018 at 14:28
0

From your config, it looks like you're binding keosd to an IP address 127.0.0.1:8888 (EOS default as well) and trying access that using a hostname localhost. Try accessing using the IP 127.0.0.1 instead. For example, start the node:

$ nodeos -e -p eosio --plugin eosio::chain_api_plugin \
--plugin eosio::history_api_plugin

In a separate terminal session, run:

$ cleos -u http://127.0.0.1:8888 --wallet-url http://127.0.0.1:8889 wallet create

"/usr/local/bin/keosd" launched
Creating wallet: default
Save password to use in the future to unlock this wallet.
Without password imported keys will not be retrievable.
"PW5HtJaAwPQt65dF6mkanXFDC4q4gQh2rdD6wbnv35QPwWiGKJTAR"
0

Try the following steps to kill keosd

Find PID of the running keosd process

ps -ef | grep keosd

Kill it

kill -9 <pid>

//replace <pid> with value returned by the first command

Run keosd in a specified port(8900)

keosd --http-server-address=127.0.0.1:8900

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service and acknowledge that you have read and understand our privacy policy and code of conduct.

Not the answer you're looking for? Browse other questions tagged or ask your own question.