3

I have run into this issue. The cause is described in that thread, but not explained.

If I run mist and let it launch its own node, then the Accounts>Import menu item is available.

If I run geth myself and then run mist --rpc /home/me/.ethereum/geth.ipc then the menu item is greyed-out.

enter image description here

The tone in the bug report thread seems to indicate that this is normal, expected behaviour. What is the reason for this behaviour?

4
+100

Security reasons. As you drop a file, not the privKey, there would be a file transfer via rpc. Even though it is a very low risk, there is a risk. Furthermore, the import function of geth (e.g. geth account import ./key.prv) works with private Keys, but not with json. mist wants you to drag and drop json files.

Edit: More precise:

The "pure" geth has no import function for json wallet files. It can only import private keys (see https://github.com/ethereum/go-ethereum/wiki/Managing-your-accounts#import-private-key).

The Mist "Import Accounts" functionality accepts wallet files in json format. But they can not be passed via Remote Procedure Calls (RPC) to geth, because geth has not Procedure to process them (it can only import private keys, not json wallet files).

You are doing rpc (mist --rpc), thus it cannot work and is greyed out.

If you are starting Mist without a RPC connection to another geth instance - thus just start Mist without any command line stuff - , then Mist and the node run in one context. That means, the Mist GUI can pass the json file into the key folder of the node (e.g. ~/.ethereum/keystore). But RPC does not allow that (e.g. security reasons), because with RPC, Mist and geth do not run in one context.

And there is obviously no Mist menu entry for "importing private keys". Many (end user focused) Ethereum browsers don't have a "import private key" functionality, because this would bear security risk.

5
  • I don't get why mist would need to send the wallet or keys over RPC. If mist has all the secrets, then why can't it construct and sign a transfer itself and send that over RPC to geth without sending geth any secrets? – spraff Jul 5 '17 at 7:11
  • Mist is not designed like MyEtherWallet, as far as I know. If you run Mist and Geth on one machine, then they share the keystore folder. For example: I have Geth running on my VPS since a couple of weeks. Today, I installed Mist and started it with RPC to the running Geth instance. I saw the same wallet/addresses I once configured in Geth (without Mist) a couple of weeks ago. – Stefan Richter Jul 5 '17 at 8:06
  • I don't get what sharing the keystore folder has to do with sending secrets over RPC. – spraff Jul 5 '17 at 8:10
  • If you start Geth seperately and connect Mist via RPC to the running Geth session, then the Geth session (for the time running) is the "owner" for the keystore folder. Thus all procedures in regards to that are handled by the Geth instance, e.g.: there is a geth command "geth account new"...and Mist offers the menu entry "New Account"... all fine. But: there is NO Geth command "geth import json wallet" or so. Thus, this Mist function is not available. (...to be continued in next comment due to character limitation...) – Stefan Richter Jul 5 '17 at 8:20
  • Why is Geth not having a json import function via RPC? Well, in theory everything is possible. It could be developed, of course. The easiest way would be to get a json file via RPC and put it into the keystore folder. This is exactly the way how I import Ethereum accounts into my running Geth instance: just manually copy files to the keystore folder. But: this is bad design: to have a RPC function that is, quite directly, writing files (from RPC) to the hard drive. This bears a security risk. Thus, the way Geth is designed right now, there is no way to get json directly imported via RPC. – Stefan Richter Jul 5 '17 at 8:27

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service, privacy policy and cookie policy

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