Go-Ethereum

如何在 ubuntu 機器上保持 geth 節點同步?

  • October 2, 2019

要求是幾乎總是為 DAPP 保持 geth 節點同步。geth 節點在 ubuntu 機器上執行。用於公開 geth rpc 伺服器的命令是

geth --testnet --rpcapi admin,db,eth,debug,miner,net,shh,txpool,personal,web3 --rpcport 8545 --rpccorsdomain "*" --rpcaddr "127.0.0.1" --rpc

我通常使用 putty 連接到伺服器。但是當我關閉 putty 會話時,geth 程序也會被殺死。我需要避免這種情況。需要的是保持geth持續同步,這樣任何使用DAPP的使用者都可以隨時進行交易。

首先要確保您以快速模式啟動該過程,以便鏈始終保持最新。您可以使用 geth 的 –fast 命令來實現最快的同步。

此外,將記憶體大小增加到 –cache=1024 而不是預設的 128

為了在您的 putty 註銷後保持程序執行,您顯然可以嘗試 screen使用tmux,這是執行此操作的更好方法。

將 geth 設置為服務 - https://github.com/bas-vk/config/blob/master/geth-systemd-service.md

創建一個文件geth.service

[Unit]
Description=Ethereum go client

[Service]
Type=simple
ExecStart=geth 2>%h/.ethereum/geth.log

[Install]
WantedBy=default.target

啟用服務

$ systemctl --user enable geth.service
$ systemctl --user start geth.service

引用自:https://ethereum.stackexchange.com/questions/56480