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.
- 8,941
- 16
- 46
- 77
4 Answers
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;
};
)
- 6,138
- 27
- 32
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
- 656
- 1
- 7
- 19
There may be a better way, but one simple technique that will certainly work is to run mainnet and testnet under different user accounts.
- 22,059
- 17
- 77
- 91
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.
- 11
- 3