Synchronization
乙太坊節點卡住,無法同步
我使用的是 Macbook Pro OS X 版本 10.9.5,無法通過同步階段。“乙太坊節點需要同步,請稍候……”正是提示的內容,但無論我等待多久,它都無法同步。我可以選擇跳過對等搜尋並啟動應用程序,但它不會同步到我的錢包,因此在我的主帳戶中顯示 0 Ether。我在 20 天前下載了該應用程序,現在正四處張貼尋求幫助。任何見解將不勝感激。
這是我要做的:
確保您使用的是最新的乙太坊錢包版本:https ://github.com/ethereum/mist/releases
連接到測試網以驗證一切正常(測試網區塊鏈上的交易應該更少,因此您應該能夠更快地同步)
- 跳過對等搜尋
- 應用欄 -> 開發 -> 網路 -> 測試網(現代)
如果您可以在測試網上同步,您就會知道它正在工作。
您可以嘗試的其他事情:
- 驗證所有依賴項都是最新的。您可能需要重新安裝所有與乙太坊相關的東西。不要忘記備份您的帳戶
- 檢查你的電腦。建構 DAG 是否有問題?
- 嘗試與 Geth 連接(它還會同步您並建構 DAG)
下載最新的錢包並執行打包的 Geth
- 從https://github.com/ethereum/mist/releases下載最新的乙太坊錢包並安裝。
- 您將在乙太坊錢包安裝目錄下的***./resources/node/geth/子目錄中找到一個geth執行檔。這是連接到乙太坊網路中的對等點以同步區塊鏈的軟體。這是乙太坊錢包目錄和geth***子目錄的 Linux 等效列表:
user@Kumquat:~/Ethereum-Wallet-linux64-0-5-1$ ls -al total 99520 drwxr-xr-x 4 user user 4096 Apr 2 00:11 . drwxrwxr-x 10 user user 4096 Apr 8 17:21 .. -rw-r--r-- 1 user user 153 Mar 5 03:33 AUTHORS -rw-r--r-- 1 user user 9215042 Mar 5 03:32 content_shell.pak -rwxr-xr-x 1 user user 59738392 Mar 5 03:32 Ethereum-Wallet -rw-r--r-- 1 user user 10206624 Mar 5 03:32 icudtl.dat -rw-r--r-- 1 user user 2546072 Mar 5 03:32 libffmpeg.so -rw-r--r-- 1 user user 520152 Mar 5 03:32 libgcrypt.so.11 -rwxr-xr-x 1 user user 17367040 Mar 5 03:32 libnode.so -rw-r--r-- 1 user user 32422 Mar 5 03:33 LICENSE -rw-r--r-- 1 user user 1137248 Mar 5 03:32 LICENSES.chromium.html drwxr-xr-x 2 user user 4096 Mar 5 03:32 locales -rw-r--r-- 1 user user 439857 Mar 5 03:32 natives_blob.bin -rw-rw-r-- 1 user user 65 Apr 2 00:11 privatekey.txt -rw-r--r-- 1 user user 1987 Mar 5 03:33 README.txt drwxr-xr-x 3 user user 4096 Mar 5 03:33 resources -rw-r--r-- 1 user user 657164 Mar 5 03:32 snapshot_blob.bin -rw-r--r-- 1 user user 6 Mar 5 03:33 version user@Kumquat:~/Ethereum-Wallet-linux64-0-5-1$ ls -al resources/node/geth/geth -rwxr-xr-x 1 user user 26892984 Mar 5 03:33 resources/node/geth/geth
- 使用以下命令刪除區塊鏈的舊副本:
rm -rf ~/Library/Ethereum/chaindata
- 從您的乙太坊錢包安裝目錄,執行命令:
./resources/node/geth/geth --fast console
- 您應該會看到類似以下消息(我在 Linux 中執行):
I0408 17:21:39.549439 29822 flags.go:425] WARNING: No etherbase set and no accounts found as default I0408 17:21:39.549604 29822 database.go:71] Alloted 16MB cache to /home/user/EthereumWallet/tmp/chaindata I0408 17:21:39.719778 29822 database.go:71] Alloted 16MB cache to /home/user/EthereumWallet/tmp/dapp I0408 17:21:39.721252 29822 backend.go:314] Protocol Versions: [63 62 61], Network Id: 1 I0408 17:21:39.721397 29822 backend.go:362] Blockchain DB Version: 3 I0408 17:21:39.721823 29822 blockchain.go:214] Last header: #0 [d4e56740…] TD=17179869184 I0408 17:21:39.721875 29822 blockchain.go:215] Last block: #0 [d4e56740…] TD=17179869184 I0408 17:21:39.721917 29822 blockchain.go:216] Fast block: #0 [d4e56740…] TD=17179869184 I0408 17:21:39.727628 29822 cmd.go:114] Starting Geth/v1.3.5-34b622a2/linux/go1.6 I0408 17:21:39.727768 29822 server.go:311] Starting Server I0408 17:21:41.677719 29822 udp.go:212] Listening, enode://2b3f690e2c7c398d5782a5a33d47da9965cf08497299d3b232014fc89b0a8cbdc66d789110f0cb5a047d24aa4e1f9987ebdbcf88108aec035629d3af8b5faba4@[::]:30303 I0408 17:21:41.677903 29822 backend.go:526] Server started I0408 17:21:41.678055 29822 server.go:552] Listening on [::]:30303 I0408 17:21:41.678340 29822 ipc.go:112] IPC service started (/home/user/EthereumWallet/tmp/geth.ipc) instance: Geth/v1.3.5-34b622a2/linux/go1.6 datadir: /home/user/EthereumWallet/tmp coinbase: null at block: 0 (Thu, 01 Jan 1970 10:00:00 AEST) modules: admin:1.0 db:1.0 debug:1.0 eth:1.0 miner:1.0 net:1.0 personal:1.0 shh:1.0 txpool:1.0 web3:1.0 > I0408 17:22:01.678243 29822 downloader.go:288] Block synchronisation started I0408 17:22:06.973046 29822 blockchain.go:889] imported 192 header(s) (0 ignored) in 1.274319263s. #192 [88e96d45… / 723899e8…] I0408 17:22:06.982296 29822 blockchain.go:1044] imported 2 receipt(s) (0 ignored) in 711.895µs. #2 [88e96d45… / b495a1d7…] I0408 17:22:09.990297 29822 downloader.go:1102] Rolled back 192 headers (LH: 192->0, FB: 2->0, LB: 0->0) I0408 17:22:11.778867 29822 blockchain.go:1044] imported 190 receipt(s) (0 ignored) in 36.573252ms. #192 [3d612266… / 723899e8…]
上面的最後五行消息表明,geth已成功連接到乙太坊網路上的其他對等點,並且正在下載區塊鏈數據。
仍然無法正常工作 - 連接故障排除
- 如果您仍然無法如上一節所示讓區塊鏈同步,則可能是防火牆問題。geth將嘗試通過 Internet與埠30303上的電腦通信。
- 您是從公司網路還是家庭網路執行它?
- 是否存在阻止與原始 IP 地址通信的防火牆?
- 可以通信的埠有什麼限制嗎?
- 以下是geth最初嘗試與之通信的初始乙太坊引導節點(來自https://github.com/ethereum/go-ethereum/blob/master/eth/backend.go#L71-L78):
defaultBootNodes = []*discover.Node{ // ETH/DEV Go Bootnodes discover.MustParseNode("enode://a979fb57...3331163c@52.16.188.185:30303"), // IE discover.MustParseNode("enode://de471bcc...b723c786@54.94.239.50:30303"), // BR discover.MustParseNode("enode://1118980b...f0855082@52.74.57.123:30303"), // SG // ETH/DEV cpp-ethereum (poc-9.ethdev.com) discover.MustParseNode("enode://979b7fa2...aa3637f9@5.1.83.226:30303"), }
- 讓我們嘗試使用以下命令與第一個 bootnode 伺服器進行通信。在這種情況下,結果顯示連接成功(空回復是因為curl沒有使用與乙太坊 bootnode 伺服器相同的 Discovery 協議進行通信):
user@Kumquat:~/Ethereum-Wallet-linux64-0-5-1$ curl http://52.16.188.185:30303 -o outfile % Total % Received % Xferd Average Speed Time Time Time Current Dload Upload Total Spent Left Speed 0 0 0 0 0 0 0 0 --:--:-- 0:00:05 --:--:-- 0 curl: (52) Empty reply from server
- 如果您的網路不允許與乙太坊引導節點伺服器通信,情況如下。我通過提供不正確的 IP 地址來模擬這種情況。花費的時間值只是不斷點擊。您必須按 Control-C 才能退出curl程序:
user@Kumquat:~/Ethereum-Wallet-linux64-0-5-1$ curl http://52.16.188.188:30303 -o outfile % Total % Received % Xferd Average Speed Time Time Time Current Dload Upload Total Spent Left Speed 0 0 0 0 0 0 0 0 --:--:-- 0:02:03 --:--:-- 0^C user@Kumquat:~/Ethereum-Wallet-linux64-0-5-1$
- 如果您遇到前一點所示的連接問題,如果您想將區塊鏈同步到乙太坊網路,則需要暢通無阻地連接到 Internet 。