¿Cómo puedo configurar Mist para usar una ruta IPC no predeterminada?

Cuando uso Mist, siempre usa la ruta IPC predeterminada a mi sistema operativo (en este caso, OSX es /Users/me/Library/Ethereum/geth.ipc). ¿Hay alguna forma de configurar o especificar una ruta IPC no predeterminada para Mist? Esto me permitiría separar las conexiones IPC de la red principal y de la red de prueba.

Respuestas (4)

Estas respuestas ya deben ser "viejas" :) ....

En mi Mac, Mist versión 0.8.2,

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

funciona bien.

También funciona con RPC (y una advertencia apropiada), es decir

/Applications/Mist.app/Contents/MacOS/Mist --rpc http://machine:rpcport

Está codificado. Entonces, "hay alguna manera" = seguro, cambia el código. :-D

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

(Como referencia porque el intercambio de pila odia el enlace solo responde:

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;
};

)

Puede haber una mejor manera, pero una técnica simple que sin duda funcionará es ejecutar mainnet y testnet en diferentes cuentas de usuario.

Solo quería agregar mis 2 centavos para configurar un entorno en el que varias instancias puedan ejecutarse una al lado de la otra en una caja de Windows. Si está ejecutando esto en Linux o Mac, las instrucciones deberían darle una idea clara de cómo configurarlo.

Para poder ejecutar esta configuración, creé un directorio en mi unidad D: para datos relacionados con Ethereum y creé dos subdirectorios, uno para la red principal y otro para la red de prueba:

D:\Ethereum
    mainnet
    testnet

Cuando se ejecuta Mist, genera automáticamente un proceso geth para conectarse a la cadena de bloques y luego Mist se conecta a esa instancia. (En mi configuración, Mist y geth se conectan de forma predeterminada a la red principal). Para controlar qué cadena de bloques se conecta geth también, he creado dos archivos por lotes con los siguientes contenidos:

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"

Asegúrese de que el archivo por lotes se ejecute antes de iniciar Mist, ya que Mist se adjuntará automáticamente a una instancia de geth en ejecución. Para la red principal, Mist se conectará a través de IPC a \\.\pipe\geth.ipc. Para la red de prueba, especifiqué un nombre de IPC alternativo \\.\pipe\geth-testnet.ipc. Para que Mist se conecte a la instancia de geth conectada a la red de prueba, debe copiar y editar el acceso directo de Mist de la siguiente manera:

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

Si ahora inicia la instancia de Mist para la red de prueba, se conectará automáticamente a su instancia de red de prueba geth en ejecución. Para la red principal, puede continuar usando el acceso directo predeterminado de Mist siempre que cuando instaló Mist, especificó que deseaba conectarse a la red principal de forma predeterminada.