Consider a base set up consisting of 'n' docker containers (within a VM running on OSX), each running a geth instance. Thanks to the guidance from @BokkyPooBah, in a different thread, I have been able to set up a cluster of 4 containers all added as peers on the network each having an account. Now, I am trying to have the Mist browser interface on the host OSX to interface with the containers to be able to navigate across accounts. Typical instructions and help around using the browser suggest how the browser can be connected to a single geth instance. Is there a way to have the browser, interface across multiple nodes(containers)?
-
Possible duplicate of Running a custom private go-ethereum node cluster using docker– niksmacApr 27, 2016 at 9:31
-
The other post was around running a cluster and this question is interfacing the cluster with a common Mist browser on the host machine to connect to the multiple containers. Edited the original question to clarify where the browser is hosted– skarred14Apr 27, 2016 at 9:34
1 Answer
You should be able to run geth
on your command line with your private network setup parameters IF you have --ipcpath
pointing to the default ~/Library/Ethereum/geth.ipc
file path.
Start Ethereum Wallet and it will use the default IPC path to communicate with geth
that is running to communicate with your local private network.
I have just tested this with geth --dev ...
and I see a "PRIVATE-NET" in red in the top menu bar of Ethereum Wallet, with my --dev
network accounts loaded.
Q: Now, I am trying to have the Mist browser interface on the host OSX to interface with the containers to be able to navigate across accounts.
A: You can navigate across the accounts if you have all the accounts loaded in the geth
instance that the Mist browser is connected to. Just copy the files from your keystores in each Docker node into the keystore of the geth
instance that Ethereum Wallet will connect to.
Q: Is there a way to have the browser, interface across multiple nodes(containers)?
A: From the source code, it seems that the Ethereum Wallet will only communicate with one geth
instance at the one time.
Ethereum Wallet Hardcoded IPC File Paths
From Mist getIpcPath.js - lines 10 to 23, here are the hardcoded IPC file paths:
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';
-
Thanks for the suggestions. With respect to being able to navigate across accounts, I think the container volume can be synced with the ethereum wallet's default keystore directory. For multiple node scenario, the only way I can think of is to sync every node's keystore with the keystore on the host, but that wouldnt solve the identification of nodes on the browser. Probably there are avenues within the source code, to be able to make an extension for multiple nodes. Apr 27, 2016 at 23:58