Hosting your own execution client on a different machine than where your beacon-chain and validator resides, can allow some extra modularity and flexibility.
On the execution client machine, edit your eth1.service unit file.
Copy sudo nano /etc/systemd/system/eth1.service
Add the following flag to allow remote incoming http and or websocket api requests on the ExecStart
line.
If not using websockets, there's no need to include ws parameters. Only Nimbus requires websockets.
Geth OpenEthereum (Parity) Besu Nethermind
Copy --http.addr 0.0.0.0 --ws.addr 0.0.0.0
# Example
# ExecStart = /usr/bin/geth --http.addr 0.0.0.0 --ws.addr 0.0.0.0 --http --ws
Copy --jsonrpc-interface=all --ws-interface=all
# Example
# ExecStart = <home directory>/openethereum/openethereum --jsonrpc-interface=all --ws-interface=all
Copy --rpc-http-host=0.0.0.0 --rpc-ws-enabled --rpc-ws-host=0.0.0.0
# Example
# ExecStart = <home directory>/besu/bin/besu --rpc-http-host=0.0.0.0 --rpc-ws-enabled --rpc-ws-host=0.0.0.0 --rpc-http-enabled
Copy --JsonRpc.Host 0.0.0.0 --WebSocketsEnabled
# Example
# ExecStart = <home directory>/nethermind/Nethermind.Runner --JsonRpc.Host 0.0.0.0 --WebSocketsEnabled --JsonRpc.Enabled true
Reload the new unit file and restart the execution client.
Copy sudo systemctl daemon-reload
sudo systemctl restart eth1
On the separate machine hosting the beacon-chain, update the beacon-chain unit file with the execution client's IP address.
Lighthouse Nimbus Teku Prysm Lodestar
Copy # edit beacon-chain unit file
nano /etc/systemd/system/beacon-chain.service
# add the --eth1-endpoints parameter
# example
# --eth1-endpoints=http://192.168.10.22
Copy # edit beacon chain unit file
nano /etc/systemd/system/beacon-chain.service
# modify the --web-url parameter
# example
# --web3-url=ws://192.168.10.22
Copy # edit teku.yaml
nano /etc/teku/teku.yaml
# change the eth1-endpoint
# example
# eth1-endpoint: "http://192.168.10.20:8545"
Copy # edit beacon-chain unit file
nano /etc/systemd/system/beacon-chain.service
# add the --http-web3provider parameter
# example
# --http-web3provider=http://192.168.10.20:8545
Copy # edit beacon-chain unit file
nano /etc/systemd/system/beacon-chain.service
# add the --eth1.providerUrl parameter
# example
# --eth1.providerUrl http://192.168.10.20:8545
Reload the updated unit file and restart the beacon-chain.
Copy sudo systemctl daemon-reload
sudo systemctl restart beacon-chain