Reth
Overview
Official Links
Documentation
1. Create service account and data directory
Create a service user for the execution service, create data directory and assign ownership.
sudo adduser --system --no-create-home --group execution
sudo mkdir -p /var/lib/reth
sudo chown -R execution:execution /var/lib/reth
Install dependencies.
sudo apt-get update
sudo apt install -y ccze jq curl
2. Install binaries
Downloading binaries is often faster and more convenient.
Building from source code can offer better compatibility and is more aligned with the spirit of FOSS (free open source software).
3. Setup and configure systemd
Create a systemd unit file to define your execution.service
configuration.
sudo nano /etc/systemd/system/execution.service
Paste the following configuration into the file.
[Unit]
Description=Reth Execution Layer Client service for Hoodi
Wants=network-online.target
After=network-online.target
Documentation=https://www.coincashew.com
[Service]
Type=simple
User=execution
Group=execution
Restart=on-failure
RestartSec=3
KillSignal=SIGINT
TimeoutStopSec=900
Environment=RUST_LOG=info
ExecStart=/usr/local/bin/reth node \
--full \
--chain hoodi \
--datadir=/var/lib/reth \
--metrics 127.0.0.1:6060 \
--port 30303 \
--discovery.port 30303 \
--enable-discv5-discovery \
--discovery.v5.port 30304 \
--http \
--http.port 8545 \
--http.api="rpc,eth,web3,net,debug" \
--log.file.directory=/var/lib/reth/logs \
--max-outbound-peers 25 \
--max-inbound-peers 25 \
--authrpc.jwtsecret=/secrets/jwtsecret
[Install]
WantedBy=multi-user.target
To exit and save, press Ctrl
+ X
, then Y
, then Enter
.
Run the following to enable auto-start at boot time.
sudo systemctl daemon-reload
sudo systemctl enable execution
Finally, start your execution layer client and check it's status.
sudo systemctl start execution
sudo systemctl status execution
Press Ctrl
+ C
to exit the status.
4. Helpful execution client commands
sudo journalctl -fu execution | ccze
A properly functioning Reth execution client will indicate "Block added to canonical chain". For example,
INFO reth::node::events: Forkchoice updated head_block_hash=2317ae..c41107 safe_block_hash=ab173f..33a21b finalized_block_hash=ab173f..33a21b status=Valid
INFO reth::node::events: Block added to canonical chain number=16000 hash=2317ae..c41107
INFO reth::node::events: Canonical chain committed number=16000 hash=2317ae..c41107 elapsed=12.508272ms
Now that your execution client is configured and started, proceed to the next step on setting up your consensus client.
If you're checking the logs and see any warnings or errors, please be patient as these will normally resolve once both your execution and consensus clients are fully synced to the Ethereum network.
Last updated