Mist
如何將 Mist 連接到遠端專用網路?
我在這裡看到了將 Mist 連接到私人網路的選項
geth --networkid 1234 --ipcpath /Users/you/Library/Ethereum/geth.ipc
看起來路徑在程式碼中的某處被硬編碼。
如何將 Mist 連接到遠端的專用網路?
看起來路徑在程式碼中的某處被硬編碼。
是的。Mist 連接被硬編碼為僅使用 IPC,而不是 RPC。
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
您的 IPC 路徑可以在modules/ipc/getIpcPath.js 第 7 到 24 行中找到
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; };
通過在本地電腦上打開一個文件描述符,通過 IPC 進行Mist 和
geth
通信,然後通過該文件描述符相互發送消息。所以目前沒有遠端連接。如何將 Mist 連接到遠端的專用網路?
您可以嘗試使用 P2P 協議將本地實例連接到
geth
遠端geth
節點,然後geth
使用 IPC 將 Mist 連接到本地實例。換句話說,只需讓您的本地電腦成為您專用網路中的另一個節點。
您可以安裝單獨安裝的 副本
geth
,或使用geth
與 Mist 一起打包的,可在以下目錄中找到:
{MISTINSTALLDIRECTORY}/resources/node/geth/geth
適用於 Linux 和 Mac OS X{MISTINSTALLDIRECTORY}\resources\node\geth\geth.exe
適用於 Windows如果您的專用網路具有 –networkid {xyz} 和自定義創世文件,請使用
--networkid {xyz}
and--genesis {custom genesis file}
。接下來是讓您的本地
geth
節點與您的專用網路節點對話。這必須使用--bootnodes
或創建文件static-nodes.json
或trusted nodes
在您的數據目錄中完成。請記住添加--maxpeers {x}
一個非零 {x},因為從命令行省略它似乎會阻止建立連接。