OffshoreVps
Tutorial18 Okt 20268 menit bacaOleh tim OffshoreVps

Cara Menjalankan Node Ethereum (Geth dan Lighthouse) di VPS

Jalankan sepasang klien eksekusi dan konsensus Ethereum di Linux: rahasia JWT, unit systemd, sinkronisasi checkpoint, port, dan perangkat keras yang dibutuhkan full node.

Sejak The Merge, node Ethereum terdiri dari dua program yang bekerja bersama: klien eksekusi yang menangani transaksi dan state, dan klien konsensus yang mengikuti chain proof-of-stake. Panduan ini menjalankan Geth (eksekusi) dan Lighthouse (konsensus) di VPS Linux. Susunan yang sama berlaku untuk pasangan klien lainnya.

Jendela terminal di VPS yang menampilkan perintah untuk menjalankan node Ethereum dengan Geth dan Lighthouse, diawali dengan “sudo adduser --system --group --no-create-home g”
Jenis perintah yang akan Anda jalankan di server dalam panduan ini.

Apa yang dibutuhkan node penuh

  • Disk. Ini adalah batas utamanya. Node penuh saat ini membutuhkan sekitar 1 hingga 2 TB penyimpanan NVMe yang cepat, dan terus bertambah. Node arsip membutuhkan jauh lebih banyak. Periksa dokumentasi klien terbaru untuk ukuran yang mutakhir sebelum membeli.
  • RAM. 16 GB adalah minimum yang nyaman. 32 GB membantu saat sinkronisasi dan di bawah beban RPC.
  • CPU. 4 inti atau lebih. Kecepatan penyimpanan lebih penting daripada kecepatan clock.
  • Jaringan. Lalu lintas tanpa batas pada port yang cepat. Node memindahkan banyak data.

Karena ukuran disknya, kebanyakan orang menggunakan server dedicated untuk Ethereum. Lihat hosting node Ethereum untuk paket dengan ukuran yang sesuai.

Langkah 1: siapkan server

Gunakan instalasi Ubuntu LTS yang baru dan terapkan langkah-langkah di cara mengamankan VPS baru. Buat pengguna untuk setiap klien agar tidak ada yang berjalan sebagai root.

sudo adduser --system --group --no-create-home geth
sudo adduser --system --group --no-create-home lighthouse
sudo mkdir -p /var/lib/geth /var/lib/lighthouse /etc/ethereum
sudo chown geth:geth /var/lib/geth
sudo chown lighthouse:lighthouse /var/lib/lighthouse

Langkah 2: buat rahasia JWT bersama

Kedua klien saling mengautentikasi dengan file rahasia bersama.

openssl rand -hex 32 | sudo tee /etc/ethereum/jwt.hex
sudo chmod 640 /etc/ethereum/jwt.hex
sudo chgrp geth /etc/ethereum/jwt.hex
sudo usermod -aG geth lighthouse
Langkah-langkah panduan ini secara berurutan: 1. Apa yang dibutuhkan full node; 2. siapkan server; 3. buat rahasia JWT bersama; 4. instal dan jalankan Lighthouse; 5. mulai dan pantau sinkronisasi; 6. Firewall dan port
Langkah-langkah dalam panduan ini, secara berurutan.

Langkah 3: instal dan jalankan Geth

Unduh rilis stabil dari halaman unduhan Geth resmi atau gunakan repositori paket proyeknya, lalu verifikasi. Kemudian buat /etc/systemd/system/geth.service:

[Unit]
Description=Geth
After=network-online.target

[Service]
User=geth
ExecStart=/usr/local/bin/geth \
  --mainnet \
  --datadir /var/lib/geth \
  --authrpc.jwtsecret /etc/ethereum/jwt.hex \
  --http --http.addr 127.0.0.1 --http.api eth,net,web3
Restart=on-failure
TimeoutStopSec=180

[Install]
WantedBy=multi-user.target

Mengikat HTTP ke 127.0.0.1 menjaga RPC tetap privat. Jangan pernah membukanya langsung ke internet.

Langkah 4: instal dan jalankan Lighthouse

[Unit]
Description=Lighthouse beacon node
After=geth.service

[Service]
User=lighthouse
ExecStart=/usr/local/bin/lighthouse bn \
  --network mainnet \
  --datadir /var/lib/lighthouse \
  --execution-endpoint http://127.0.0.1:8551 \
  --execution-jwt /etc/ethereum/jwt.hex \
  --checkpoint-sync-url https://mainnet.checkpoint.sigp.io
Restart=on-failure

[Install]
WantedBy=multi-user.target

Checkpoint sync memungkinkan klien konsensus mulai dari state tepercaya yang baru, sehingga siap dalam hitungan menit, bukan hari. Verifikasi URL checkpoint dengan dokumentasi klien sebelum mengandalkannya.

Langkah 5: mulai dan pantau sinkronisasi

sudo systemctl enable --now geth lighthouse
journalctl -u geth -f
curl -s -X POST -H 'Content-Type: application/json' \
  --data '{"jsonrpc":"2.0","method":"eth_syncing","params":[],"id":1}' http://127.0.0.1:8545

false pada hasilnya berarti node sudah tersinkron sepenuhnya. Sinkronisasi pertama bisa memakan waktu berjam-jam hingga beberapa hari, tergantung kecepatan disk.

Firewall dan port

Izinkan port peer-to-peer (30303 TCP/UDP untuk Geth, 9000 TCP/UDP untuk Lighthouse secara default) agar kamu mendapat jumlah peer yang baik. Biarkan 8545, 8551, dan 5052 tertutup dari internet publik.