For synchronization in the Arbitrum mainnet and servicing subgraphs in the ethereum mainnet, it is necessary to have rpc ethereum. My choice to install a full ethereum node, Geth for the executive client and Lighthouse for the consensus client.
Installing Dependencies
sudo apt update -y && apt upgrade -y && apt autoremove -y &&
sudo apt install curl wget jq nano git gcc g++ make cmake pkg-config llvm-dev libclang-dev clang protobuf-compiler -y
install Rust using rustup. The rustup installer provides an easy way to update the Rust compiler, and works on all platforms.
Installing Geth, Build from source
git clone <https://github.com/ethereum/go-ethereum.git>
cd go-ethereum
make geth
Installing Lighthouse, Build from Source
git clone <https://github.com/sigp/lighthouse.git>
cd lighthouse
git checkout stable
make
Run Geth,
/root/go-ethereum/build/bin/geth --mainnet --http --http.api eth,net,engine,admin --authrpc.addr localhost --authrpc.port 8551 --authrpc.vhosts localhost --authrpc.jwtsecret /root/geth/jwtsecret --syncmode full
Lighthouse
lighthouse bn --network mainnet --execution-endpoint <http://localhost:8551> --execution-jwt /root/geth/jwtsecret --checkpoint-sync-url <https://mainnet.checkpoint.sigp.io> --disable-deposit-contract-sync --purge-db
To check the current synchronization status of your node, request the block number from the local Geth node with HTTP port 8545 open:
curl --data '{"method":"eth_blockNumber","params":[],"id":1,"jsonrpc":"2.0"}' -H "Content-Type: application/json" localhost:8545