10

When using Mist, it always uses the default IPC path to my OS (In this case of OSX this is /Users/me/Library/Ethereum/geth.ipc). Is there a way to configure or specify a non-default IPC path for Mist? This would allow me to separate mainnet and testnet IPC connections.

3

These answers must already be "old" :) ....

On my Mac, Mist version 0.8.2,

/Applications/Mist.app/Contents/MacOS/Mist --rpc /my/path/to/geth.ipc

works fine.

It works with RPC too (and an appropriate warning) i.e.

/Applications/Mist.app/Contents/MacOS/Mist --rpc http://machine:rpcport
| improve this answer | |
3

It's hard coded. So "is there a way" = sure, change the code. :-D

https://github.com/ethereum/mist/blob/v0.3.8/modules/ipc/getIpcPath.js

(For reference because stack exchange hates link only answers:

module.exports = function() {
    var p = require('path');
    var path = global.path.HOME;

    if(process.platform === 'darwin')
        path += '/Library/Ethereum/geth.ipc';

    if(process.platform === 'freebsd' ||
       process.platform === 'linux' ||
       process.platform === 'sunos')
        path += '/.ethereum/geth.ipc';

    if(process.platform === 'win32')
        path = '\\\\.\\pipe\\geth.ipc';

    console.log('CONNECT to IPC PATH: '+ path);
    return path;
};

)

| improve this answer | |
2

There may be a better way, but one simple technique that will certainly work is to run mainnet and testnet under different user accounts.

| improve this answer | |
1

Just wanted to add my 2 cents for setting up an environment where multiple instances can run side-by-side on a Windows box. If you're running this on Linux or a Mac, the instructions should give you a clear idea of how to set this up.

In order to be able to run this configuration, I created a directory on my D: drive for Ethereum related data and created two subdirectories, one for the mainnet and another for the testnet:

D:\Ethereum
    mainnet
    testnet

When running Mist, it automatically spawns a geth process to connect to the blockchain and Mist then connects to that instance. (In my setup, Mist and geth by default connect to the mainnet.) In order to control which blockchain geth connects too, I have created two batch files with the following contents:

Mainnet: C:\Users\Erwin\AppData\Roaming\Mist\binaries\Geth\unpacked\geth.exe --datadir "D:\Ethereum\mainnet"
Testnet: C:\Users\Erwin\AppData\Roaming\Mist\binaries\Geth\unpacked\geth.exe --testnet --datadir "D:\Ethereum\testnet" --port 30313 --rpcport 8555 --wsport 8556 --ipcpath "geth-testnet.ipc"

Make sure the batch file is executed before starting Mist as Mist will automatically attach to a running geth instance. For the mainnet Mist will connect over IPC to \\.\pipe\geth.ipc. For the testnet, I specified an alternative IPC name \\.\pipe\geth-testnet.ipc. In order for Mist to connect to the geth instance connected to the testnet, you need to copy and edit the Mist shortcut as follows:

1. Navigate to the shortcut tab
2. Modify the target field as follows: "C:\Program Files\Mist\Mist.exe" --node-datadir="D:\Ethereum\testnet" --rpc \\.\pipe\geth-testnet.ipc

If you now startup the Mist instance for the testnet, it will automatically connect to your running geth testnet instance. For the mainnet, you can continue to use the default Mist shortcut provided that when you installed Mist, you specified that you wanted to connect to the mainnet by default.

| improve this answer | |

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.