Wie kann ich Mist so konfigurieren, dass ein nicht standardmäßiger IPC-Pfad verwendet wird?

Bei der Verwendung von Mist wird immer der Standard-IPC-Pfad zu meinem Betriebssystem verwendet (in diesem Fall von OSX ist dies /Users/me/Library/Ethereum/geth.ipc). Gibt es eine Möglichkeit, einen nicht standardmäßigen IPC-Pfad für Mist zu konfigurieren oder anzugeben? Dies würde es mir ermöglichen, Mainnet- und Testnet-IPC-Verbindungen zu trennen.

Antworten (4)

Diese Antworten müssen schon "alt" sein :) ....

Auf meinem Mac, Mist-Version 0.8.2,

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

funktioniert gut.

Es funktioniert auch mit RPC (und einer entsprechenden Warnung), dh

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

Es ist fest codiert. Also "gibt es einen Weg" = sicher, ändere den Code. :-D

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

(Als Referenz, weil Stack Exchange nur Link-Antworten hasst:

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

)

Es mag einen besseren Weg geben, aber eine einfache Technik, die sicherlich funktionieren wird, besteht darin, Mainnet und Testnet unter verschiedenen Benutzerkonten auszuführen.

Ich wollte nur meine 2 Cent für die Einrichtung einer Umgebung hinzufügen, in der mehrere Instanzen nebeneinander auf einer Windows-Box ausgeführt werden können. Wenn Sie dies unter Linux oder einem Mac ausführen, sollten Ihnen die Anweisungen eine klare Vorstellung davon geben, wie Sie dies einrichten.

Um diese Konfiguration ausführen zu können, habe ich auf meinem Laufwerk D: ein Verzeichnis für Ethereum-bezogene Daten erstellt und zwei Unterverzeichnisse erstellt, eines für das Hauptnetz und eines für das Testnetz:

D:\Ethereum
    mainnet
    testnet

Wenn Mist ausgeführt wird, erzeugt es automatisch einen Geth-Prozess, um sich mit der Blockchain zu verbinden, und Mist stellt dann eine Verbindung zu dieser Instanz her. (In meinem Setup verbinden sich Mist und Geth standardmäßig mit dem Hauptnetz.) Um zu steuern, welche Blockchain Geth ebenfalls verbindet, habe ich zwei Batch-Dateien mit folgendem Inhalt erstellt:

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"

Stellen Sie sicher, dass die Batch-Datei ausgeführt wird, bevor Sie Mist starten, da Mist automatisch an eine laufende Geth-Instanz angehängt wird. Für das Hauptnetz verbindet sich Mist über IPC mit \\.\pipe\geth.ipc. Für das Testnetz habe ich einen alternativen IPC-Namen \\.\pipe\geth-testnet.ipc angegeben. Damit Mist sich mit der mit dem Testnet verbundenen Geth-Instanz verbinden kann, müssen Sie die Mist-Verknüpfung wie folgt kopieren und bearbeiten:

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

Wenn Sie nun die Mist-Instanz für das Testnet starten, verbindet sie sich automatisch mit Ihrer laufenden geth-Testnet-Instanz. Für das Hauptnetz können Sie weiterhin die standardmäßige Mist-Verknüpfung verwenden, vorausgesetzt, Sie haben bei der Installation von Mist angegeben, dass Sie standardmäßig eine Verbindung zum Hauptnetz herstellen möchten.