如何在不影響我硬分叉的乙太坊鏈的情況下將乙太坊錢包和/或 geth 同步到乙太坊經典鏈?
geth
我通常在硬分叉鏈上執行乙太坊錢包。對於DAO ETC提現,我也想同步乙太經典鏈。如何在
geth
不影響我硬分叉的乙太坊鏈的情況下同步乙太坊錢包和/或乙太坊經典鏈?
密鑰庫
對於下面除最後一種之外的所有不同設置方法,將硬分叉鏈數據目錄下的密鑰庫目錄中的內容複製到經典鏈數據目錄。然後,您來自硬分叉鏈的帳戶應該會出現在您的 Ethereum Classic 鏈中。
用於“臨時”安裝的 Geth 執行檔
在Linux和OS/X中,
geth
與 Ethereum Wallet 一起打包在 Ethereum Wallet install 目錄下的子目錄下resources/node/geth/geth
。在Linux中,我使用如下所示的軟連結,這樣我
geth
只需鍵入以下內容即可執行geth
:ln -s /home/user/Ethereum-Wallet-linux64-0.8.1/resources/node/geth/geth /home/user/bin/geth
在Windows中,
geth.exe
執行檔是resources\node\geth\geth.exe
. 所以要開始geth.exe
你必須執行:C:\Ethereum\Ethereum-Wallet-win64-0-8-2\resources\node\geth\geth.exe [parameters]
不同的電腦或同一台電腦上的不同使用者
同步到經典鏈的最簡單方法是執行乙太坊錢包和/或
geth
在與硬分叉鏈不同的電腦上執行,或者在同一台電腦上以不同使用者身份執行。然後,您的鏈數據將保持分離。正如 thedao.slack.com/messages/withdraw_support 上的@usukan提醒我的那樣,如果您在同一台電腦上使用不同的電腦或不同的使用者,您可以啟動乙太坊錢包,它會詢問您想要哪個鏈同步到。由於您在不同的電腦或不同使用者的目錄結構上,因此您不會破壞硬分叉的鏈數據。
geth
使用不同的目錄執行如果要同步
geth
到不同鏈目錄中的 Classic 鏈,只需指定以下參數:geth --oppose-dao-fork --datadir ~/classicchain --fast console
初始同步後,您不必指定
--fast
或--oppose-dao-fork
參數。要確認您在 Classic 鏈上,您應該在啟動時看到以下消息geth
:I0830 18:53:42.598087 cmd/utils/flags.go:843] Geth 目前配置為反對 DAO 硬分叉!
geth
使用不同的目錄執行乙太坊錢包這裡的重要因素是乙太坊錢包
geth
使用 IPC(程序間通信)文件進行通信。Linux
在 Linux 上,您可以
geth
使用不同的鏈目錄執行,但您必須指定geth.ipc
文件的預設位置。geth --oppose-dao-fork --datadir ~/classicchain --fast --ipcpath ~/.ethereum/geth.ipc console
啟動乙太坊錢包。然後它將
geth
通過 IPC 文件進行通信。通過執行確認這一點ps -ef | grep geth
,您應該只看到一次geth
執行實例。作業系統/X
與 Linux 相同,不同之處在於 for 的位置
geth.ipc
在~/Library/Ethereum
視窗
乙太坊錢包
geth
在 Windows 上使用標準路徑進行通信,因此您不必為 IPC 文件指定路徑。
geth.exe
從以下參數開始:geth --oppose-dao-fork --datadir C:\ClassicChain --fast console
然後啟動乙太坊錢包。
重命名您的
chaindata
子目錄在 Linux 中,如果您在硬分叉鏈上執行節點,請將節點切換到經典鏈:
user@Kumquat:~$ cd .ethereum # Running hard-forked chain, syncing to Classic chain the first time user@Kumquat:~/.ethereum$ mv chaindata chaindata_hardforked user@Kumquat:~/.ethereum$ geth --oppose-dao-fork --fast console # Switch back to the hard-forked chain user@Kumquat:~/.ethereum$ mv chaindata chaindata_classic user@Kumquat:~/.ethereum$ mv chaindata_hardforked chaindata user@Kumquat:~/.ethereum$ geth console # Switch to the Classic chain user@Kumquat:~/.ethereum$ mv chaindata chaindata_hardforked user@Kumquat:~/.ethereum$ mv chaindata_classic chaindata user@Kumquat:~/.ethereum$ geth console
在 OS/X 中,您可以使用上面的說明,但乙太坊鏈數據子目錄的位置在
~/Library/Ethereum