Wie verbinde ich Mist mit einem entfernten privaten Netzwerk? [Duplikat]

Ich habe hier eine Option gesehen, Mist mit einem privaten Netz zu verbinden

geth --networkid 1234 --ipcpath /Users/you/Library/Ethereum/geth.ipc

Sieht so aus, als ob der Pfad irgendwo im Code fest codiert ist.

Wie kann ich Mist mit einem entfernten privaten Netzwerk verbinden?

Diskussion über Meta: Duplizieren oder nicht?

Antworten (1)

Sieht so aus, als ob der Pfad irgendwo im Code fest codiert ist.

Ja. Die Mist-Verbindungen sind fest codiert, um nur IPC und nicht RPC zu verwenden.

user@Kumquat:~/EthereumSource/mist$ find . -iname '*ipc*'
./tests/mocha-in-browser/spec/ipc-spec.js
./modules/ipc
./modules/ipc/ipcProviderBackend.js
./modules/ipc/ipcProviderWrapper.js
./modules/ipc/getIpcPath.js
./modules/ipcCommunicator.js
user@Kumquat:~/EthereumSource/mist$ find . -iname '*rpc*'
./nodes/eth/darwin-x64/libjsonrpccpp-client.0.dylib
./nodes/eth/darwin-x64/libjsonrpccpp-server.0.dylib
./nodes/eth/darwin-x64/libjsonrpccpp-common.0.dylib
./nodes/eth/darwin-x64/libweb3jsonrpc.dylib

Und Ihre IPC-Pfade finden Sie in den Zeilen 7 bis 24 von modules/ipc/getIpcPath.js

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

Vernebeln und gethkommunizieren Sie über IPC, indem Sie einen Dateideskriptor auf dem lokalen Computer öffnen und dann über diesen Dateideskriptor Nachrichten aneinander senden. Also derzeit keine Fernverbindung.



Wie kann ich Mist mit einem entfernten privaten Netzwerk verbinden?

Sie könnten versuchen, Ihre lokale Instanz von über das P2P-Protokoll gethmit Ihrem Remote geth-Knoten zu verbinden und Mist dann gethüber IPC mit Ihrer lokalen Instanz zu verbinden.

Mit anderen Worten, machen Sie Ihren lokalen Computer einfach zu einem weiteren Knoten in Ihrem privaten Netzwerk.

Sie können eine separat installierte Kopie von installieren gethoder das gethmit Mist gepackte verwenden, das in den folgenden Verzeichnissen verfügbar ist:

  • {MISTINSTALLDIRECTORY}/resources/node/geth/gethfür Linux und Mac OS X
  • {MISTINSTALLDIRECTORY}\resources\node\geth\geth.exefür Windows

Wenn Ihr privates Netzwerk über eine --networkid {xyz} und eine benutzerdefinierte Genesis-Datei verfügt, verwenden Sie die --networkid {xyz}und --genesis {custom genesis file}.

Als nächstes müssen Sie Ihren Einheimischen dazu bringen geth, mit Ihren privaten Netzwerkknoten zu sprechen. Dies muss durch Verwenden --bootnodesoder Erstellen der Dateien static-nodes.jsonoder trusted nodesin Ihrem Datenverzeichnis erfolgen. Denken Sie daran, für ein {x} ungleich Null hinzuzufügen --maxpeers {x}, da das Auslassen dieses Symbols in der Befehlszeile das Herstellen von Verbindungen zu verhindern scheint.

> Sie könnten versuchen, Ihre lokale Geth-Instanz über das P2P-Protokoll mit Ihrem entfernten Geth-Knoten zu verbinden, und dann Mist über IPC mit Ihrer lokalen Geth-Instanz verbinden. bitte erklären sie mir das nicht.
Wie ist Ihr entferntes privates Netzwerk konfiguriert? Sie könnten beispielsweise ein privates Netzwerk zwischen zwei separaten Unternehmen erstellen, indem Sie gethmit einem --networkid {uniqueid}und --genesis {custom genesis file}ausführen und sie miteinander kommunizieren lassen, genau wie das Mainnet-Ethereum-Netzwerk über Port 30303 kommuniziert.
Es ist also derzeit nicht möglich, Mist mit einem Remote-Client zu verbinden?
Nicht von dem, was ich mir im Quellcode angesehen habe.
Dann geben Sie es einfach in der Antwort klar an? soll ich editieren?
Ich habe die Antwort überarbeitet. Sie dürfen gerne editieren.