Create Infrastructure for the Virtual Machine

Periksa progres saya

/ 30

Create a Swap File on the VM and Mount the Attached Disk on the VM

Periksa progres saya

/ 20

Create a User on the VM and Install the Ethereum software

Periksa progres saya

/ 20

Start Geth as a background process and use the snap sync mode

Periksa progres saya

/ 10

Configure Cloud Operations

Periksa progres saya

/ 20

Lab ini mungkin menggabungkan alat AI untuk mendukung pembelajaran Anda.
Konten ini belum dioptimalkan untuk perangkat seluler.
Untuk pengalaman terbaik, kunjungi kami dengan komputer desktop menggunakan link yang dikirim melalui email.

GSP1116

Lab mandiri Google Cloud

Ringkasan

Menghosting node blockchain Anda sendiri mungkin diperlukan untuk keamanan, kepatuhan, performa, atau privasi. Jaringan yang terdesentralisasi, tangguh, dan berkelanjutan merupakan fondasi penting untuk protokol blockchain apa pun. Developer Web3 dapat menggunakan Blockchain Node Engine Google Cloud, solusi hosting node yang terkelola sepenuhnya untuk pengembangan Web3. Organisasi juga dapat mengonfigurasi dan mengelola node mereka sendiri di Google Cloud. Sebagai partner tepercaya untuk infrastruktur Web3, Google Cloud menawarkan infrastruktur hosting node yang aman, andal, dan skalabel. Untuk mempelajari lebih lanjut cara Menghosting node di Google Cloud, buka postingan blog Introducing Blockchain Node Engine: fully managed node-hosting for Web3 development.

Untuk mempelajari lebih lanjut pertimbangan teknis dan keputusan arsitektur yang perlu Anda ambil saat men-deploy node blockchain yang dikelola sendiri ke cloud, buka postingan blog Google Cloud for Web3.

Diagram hosting node khusus, yang mencakup jaringan blockchain dan dApp's Anda.

Dalam lab ini, Anda akan membuat virtual machine (VM) untuk men-deploy node RPC Ethereum. Node RPC Ethereum mampu menerima update blockchain dari jaringan dan memproses permintaan API RPC. Anda akan menggunakan jenis mesin e2-standard-4 yang dilengkapi boot disk 20 GB, 4 CPU virtual (vCPU), dan RAM 16 GB. Untuk memastikan ketersediaan ruang yang cukup untuk data blockchain, Anda perlu menghubungkan disk SSD 200 GB ke instance. Anda menggunakan Ubuntu 20.04 dan men-deploy dua layanan: Geth, "lapisan eksekusi" dan Lighthouse, "lapisan konsensus". Kedua layanan ini bekerja sama untuk membentuk node RPC Ethereum.

Tujuan

Dalam lab ini, Anda akan mempelajari cara melakukan tugas berikut:

  • Membuat instance Compute Engine dengan persistent disk.
  • Mengonfigurasi alamat IP statis dan aturan firewall jaringan.
  • Menjadwalkan pencadangan rutin.
  • Men-deploy Geth, lapisan eksekusi untuk Ethereum.
  • Men-deploy Lighthouse, lapisan konsensus untuk Ethereum.
  • Melakukan panggilan RPC Ethereum.
  • Mengonfigurasi Cloud Logging.
  • Mengonfigurasi Cloud Monitoring.
  • Mengonfigurasi cek uptime.

Penyiapan dan persyaratan

Sebelum mengklik tombol Start Lab

Baca petunjuk ini. Lab memiliki timer dan Anda tidak dapat menjedanya. Timer yang dimulai saat Anda mengklik Start Lab akan menampilkan durasi ketersediaan resource Google Cloud untuk Anda.

Lab interaktif ini dapat Anda gunakan untuk melakukan aktivitas lab di lingkungan cloud sungguhan, bukan di lingkungan demo atau simulasi. Untuk mengakses lab ini, Anda akan diberi kredensial baru yang bersifat sementara dan dapat digunakan untuk login serta mengakses Google Cloud selama durasi lab.

Untuk menyelesaikan lab ini, Anda memerlukan:

  • Akses ke browser internet standar (disarankan browser Chrome).
Catatan: Gunakan jendela Samaran (direkomendasikan) atau browser pribadi untuk menjalankan lab ini. Hal ini akan mencegah konflik antara akun pribadi Anda dan akun siswa yang dapat menyebabkan tagihan ekstra pada akun pribadi Anda.
  • Waktu untuk menyelesaikan lab. Ingat, setelah dimulai, lab tidak dapat dijeda.
Catatan: Hanya gunakan akun siswa untuk lab ini. Jika Anda menggunakan akun Google Cloud yang berbeda, Anda mungkin akan dikenai tagihan ke akun tersebut.

Cara memulai lab dan login ke Konsol Google Cloud

  1. Klik tombol Start Lab. Jika Anda perlu membayar lab, dialog akan terbuka untuk memilih metode pembayaran. Di sebelah kanan terdapat panel Lab setup and access yang berisi hal-hal berikut:

    • Tombol Open Google Cloud console
    • Kredensial sementara (nama pengguna dan sandi) yang harus Anda gunakan untuk lab ini
    • Informasi lain, jika diperlukan, untuk menyelesaikan lab ini

    Perhatikan bahwa timer lab terletak di dekat bagian atas halaman, yang menampilkan waktu yang tersisa.

  2. Klik Open Google Cloud console (atau klik kanan dan pilih Open Link in Incognito Window jika Anda menjalankan browser Chrome).

    Lab akan menjalankan resource, lalu membuka tab lain yang menampilkan halaman Sign in.

    Tips: Atur tab di jendela terpisah secara berdampingan.

    Catatan: Jika Anda melihat dialog Choose an account, klik Use Another Account.
  3. Jika perlu, salin Username di bawah dan tempel ke dialog Sign in.

    {{{user_0.username | "Username"}}}

    Anda juga dapat menemukan Username di panel Lab setup and access.

  4. Klik Next.

  5. Salin Password di bawah dan tempel ke dialog Welcome.

    {{{user_0.password | "Password"}}}

    Anda juga dapat menemukan Password di panel Lab setup and access.

  6. Klik Next.

    Penting: Anda harus menggunakan kredensial yang diberikan lab. Jangan menggunakan kredensial akun Google Cloud Anda. Catatan: Penggunaan akun Google Cloud sendiri untuk lab ini mungkin dikenai biaya tambahan.
  7. Klik untuk melanjutkan ke halaman berikutnya:

    • Setujui persyaratan dan ketentuan.
    • Jangan tambahkan opsi pemulihan atau autentikasi 2 langkah (karena ini akun sementara).
    • Jangan daftar uji coba gratis.

Setelah beberapa saat, Konsol Google Cloud akan terbuka di tab ini.

Catatan: Untuk mengakses produk dan layanan Google Cloud, klik Navigation menu atau ketik nama layanan atau produk di kolom Search. Ikon Navigation menu dan kolom Search

Dalam lab ini, Anda akan menggunakan alat berikut:

  • Ubuntu 24.04
  • Geth
  • Lighthouse
  • Curl
  • Gcloud

Tugas 1. Membuat infrastruktur untuk Virtual Machine

Buat alamat IP statis publik, aturan firewall, akun layanan, jadwal snapshot, dan virtual machine dengan alamat IP baru. Ini adalah infrastruktur tempat Ethereum di-deploy.

Membuat alamat IP statis publik

Di bagian ini, Anda akan menyiapkan alamat IP publik yang digunakan untuk virtual machine.

  1. Di Konsol Cloud, buka Navigation menu (Ikon Navigation menu) > VPC network > IP Addresses.
  2. Klik Reserve external di kartu IP addresses untuk membuat alamat IP statis.
  3. Untuk konfigurasi alamat statis, gunakan hal berikut:
Properti Nilai (ketik atau pilih)
Name eth-mainnet-rpc-ip
Network Service Tier Premium
IP version IPv4
Type Regional
Region
Attached to None
Halaman konfigurasi alamat statis, yang mencakup kolom yang disebutkan sebelumnya.
  1. Klik RESERVE.

Membuat aturan firewall

Buat aturan Firewall agar VM dapat berkomunikasi di port yang ditentukan.

P2P Geth berkomunikasi di TCP dan UDP pada port 30303. P2P Lighthouse berkomunikasi di TCP dan UDP di port 9000. Geth RPC menggunakan TCP 8545.

  1. Di Konsol Cloud, buka Navigation menu (Ikon Navigation menu) > VPC network > Firewall.
  2. Klik Create firewall rule di panel tindakan untuk membuat aturan firewall.
  3. Untuk konfigurasi firewall, gunakan hal berikut:
Properti Nilai (ketik atau pilih)
Name eth-rpc-node-fw
Log Off
Network default
Priority 1000
Direction of traffic Ingress
Action on match Allow
Targets Specified target tags
Target Tags eth-rpc-node (tekan enter setelah mengetik nilai)
Source Filter IPv4 ranges
Source IPv4 ranges 0.0.0.0/0 (tekan enter setelah mengetik nilai)
Specified protocols and ports: TCP: 30303, 9000, 8545 UDP: 30303, 9000
Halaman Create a firewall rule, yang mencakup kolom yang disebutkan sebelumnya
  1. Klik CREATE.

Membuat akun layanan

Buat akun layanan untuk VM yang akan dioperasikan.

  1. Di Konsol Cloud, buka Navigation menu (Ikon Navigation menu) > IAM & Admin > Service Accounts.
  2. Klik Create service account di panel tindakan untuk membuat akun layanan.
  3. Untuk konfigurasi akun layanan, gunakan hal berikut:
Properti Nilai (ketik atau pilih)
Service account name eth-rpc-node-sa
Service account ID eth-rpc-node-sa
Halaman Create service account, yang mencakup kolom yang disebutkan sebelumnya
  1. Klik CREATE AND CONTINUE.
  2. Tambahkan peran berikut:
Properti Nilai (ketik atau pilih)
Roles Compute OS Login, Service Controller, Logs Writer, Monitoring Metric Writer, Cloud Trace Agent, Compute Network User
Halaman Grant this service account access to project, dengan peran yang disebutkan sebelumnya ditampilkan.
  1. Klik CONTINUE.
  2. Klik DONE.

Membuat jadwal snapshot

Di bagian ini, Anda akan menyiapkan jadwal snapshot yang digunakan untuk disk yang terhubung pada virtual machine, yang berisi data blockchain. Tindakan ini akan mencadangkan data chain.

  1. Di Konsol Cloud, buka Navigation menu (Ikon Navigation menu) > Compute Engine > Snapshots.
  2. Klik Create snapshot schedule untuk membuat jadwal snapshot.
  3. Untuk jadwal snapshot, gunakan hal berikut:
Properti Nilai (ketik atau pilih)
Name eth-mainnet-rpc-node-disk-snapshot
Region
Regional
Schedule Options Schedule frequency: Daily, Start time (UTC): 6:00 PM - 7:00 PM, Autodelete snapshots after: 7
Deletion rule Keep snapshots
  1. Klik CREATE.
Halaman Create a snapshot schedule, yang mencakup kolom yang disebutkan sebelumnya

Membuat Virtual Machine

Di bagian ini, Anda akan menyiapkan virtual machine yang digunakan untuk deployment Ethereum.

  1. Di Konsol Cloud, buka Navigation menu (Ikon Navigation menu) > Compute Engine > VM Instances.

  2. Klik Create Instance untuk membuat VM.

  3. Di Machine configuration

    Masukkan nilai untuk kolom berikut:

    Properti Nilai (ketik atau pilih)
    Name eth-mainnet-rpc-node
    Region
    Zone
    Series E2
    Machine type e2-standard-4
  4. Klik OS and Storage

    Klik Change, lalu pilih nilai berikut:

    Properti Nilai (ketik atau pilih)
    Operating System Ubuntu
    Version Ubuntu 24.04 LTS (x86/64)
    Boot disk type SSD persistent disk
    Size 50GB

    Klik Select.

    Di Additional disks, klik Add New Disk

    Properti Nilai (ketik atau pilih)
    Name eth-mainnet-rpc-node-disk
    Disk source type Blank disk
    Disk Type SSD persistent disk
    Size 200GB (Alternatively 2,000GB for larger installations)

    Klik Save.

  5. Klik Data protection

    Untuk Jadwal snapshot, pilih eth-mainnet-rpc-node-disk-snapshot

  6. Klik Networking

    Properti Nilai (ketik atau pilih)
    Network tags eth-rpc-node (tekan enter setelah mengetik nilai - cocok dengan setelan firewall)
    • Di Network Interfaces, klik default:

    • Di bagian Network interface card, pilih gVNIC

    • Alamat IPv4 eksternal: eth-mainnet-rpc-ip (pilih alamat IP statis yang dibuat sebelumnya)

      Klik DONE.

  7. Klik Security

    • Di bagian Identity and API Access, PILIH akun layanan eth-rpc-node-sa.

    • Klik CREATE.

Klik Periksa progres saya untuk memverifikasi tujuan.

Membuat Infrastruktur untuk Virtual Machine

Tugas 2. Penyiapan dan Penginstalan di Virtual Machine

Sekarang, lakukan ssh ke VM dan jalankan perintah untuk menginstal software.

Gunakan SSH untuk mengakses VM

  1. Di Konsol Cloud, buka Navigation menu (Ikon Navigation menu) > Compute Engine > VM Instances.
  2. Di baris yang sama dengan eth-mainnet-rpc-node, klik SSH untuk membuka jendela ssh.
  3. Jika diminta Allow SSH-in-browser to connect to VMs, klik Authorize.

Membuat File Swap di VM

Untuk memberi proses RAM tambahan, Anda akan membuat file swap. Pembuatan ini dilakukan untuk meningkatkan jumlah RAM yang dapat digunakan VM jika diperlukan.

  1. Untuk membuat file swap 40 GB, jalankan perintah berikut:
sudo dd if=/dev/zero of=/swapfile bs=1MiB count=40KiB

Perhatikan bahwa perintah pertama akan memerlukan waktu sebentar untuk dijalankan.

  1. Perbarui izin pada file swap:
sudo chmod 0600 /swapfile
  1. Tentukan file yang akan digunakan sebagai partisi swap:
sudo mkswap /swapfile
  1. Tambahkan konfigurasi file swap ke /etc/fstab, yang memungkinkan drive yang terpasang dikenali saat reboot:
echo "/swapfile swap swap defaults 0 0" | sudo tee -a /etc/fstab
  1. Aktifkan file swap:
sudo swapon -a
  1. Pastikan swap telah dikenali:
free -g

Anda akan melihat pesan berisi baris yang mirip dengan ini:

Output:

total used free shared buff/cache available Mem: 15 0 0 0 15 15 Swap: 24 0 24

Memasang disk yang terhubung di VM

Selama penyiapan VM, Anda telah membuat disk yang terhubung. VM tidak akan otomatis mengenali disk ini. Disk tersebut perlu diformat dan "dipasang" sebelum dapat digunakan.

  1. Lihat disk yang terhubung. Anda akan melihat entri untuk sdb dengan ukuran 200 GB:
sudo lsblk
  1. Format disk yang terhubung:
sudo mkfs.ext4 -m 0 -E lazy_itable_init=0,lazy_journal_init=0,discard /dev/sdb
  1. Buat folder dan pasang disk yang terhubung:
sudo mkdir -p /mnt/disks/chaindata-disk sudo mount -o discard,defaults /dev/sdb /mnt/disks/chaindata-disk
  1. Perbarui izin untuk folder tersebut agar proses dapat membaca/menulis ke dalamnya:
sudo chmod a+w /mnt/disks/chaindata-disk
  1. Ambil ID disk drive yang terpasang untuk mengonfirmasi bahwa drive telah terpasang:
sudo blkid /dev/sdb

Anda akan melihat pesan yang mirip dengan yang ditampilkan di kotak output di bawah:

Output:

/dev/sdb: UUID="7fa9c421-0054-4555-b0ca-b470a97a3d84" TYPE="ext4"
  1. Ambil ID disk dari disk yang terhubung dan tambahkan ke file /etc/fstab. File ini memastikan bahwa drive akan tetap terhubung jika VM dimulai ulang.
export DISK_UUID=$(findmnt -n -o UUID /dev/sdb) echo "UUID=$DISK_UUID /mnt/disks/chaindata-disk ext4 discard,defaults,nofail 0 2" | sudo tee -a /etc/fstab
  1. Jalankan perintah df untuk mengonfirmasi bahwa disk telah dipasang, diformat, dan ukuran yang tepat telah dialokasikan:
df -h

Anda akan melihat pesan berisi baris yang mirip dengan ini, yang menunjukkan volume baru yang terpasang beserta ukurannya:

Output:

/dev/sdb 196G 28K 196G 1% /mnt/disks/chaindata-disk

Jika Anda perlu mengubah ukuran disk nanti, ikuti petunjuk ini.

Klik Periksa progres saya untuk memverifikasi tujuan.

Membuat File Swap di VM dan Memasang Disk yang Terhubung di VM

Membuat pengguna di VM

Buat pengguna untuk menjalankan proses.

  1. Untuk membuat pengguna bernama ethereum, jalankan perintah berikut:
sudo useradd -m ethereum sudo usermod -aG sudo ethereum sudo usermod -aG google-sudoers ethereum
  1. Beralihlah ke pengguna ethereum:
sudo su ethereum
  1. Mulai command line bash:
bash
  1. Ubah ke folder beranda pengguna ethereum:
cd ~

Menginstal software Ethereum

  1. Update Sistem Operasinya:
sudo apt update -y sudo apt-get update -y
  1. Instal software umum:
sudo apt install -y dstat jq software-properties-common
  1. Instal Agen Operasional Google Cloud:
curl -sSO https://dl.google.com/cloudagents/add-google-cloud-ops-agent-repo.sh sudo bash add-google-cloud-ops-agent-repo.sh --also-install
  1. Hapus file skrip yang telah didownload:
rm add-google-cloud-ops-agent-repo.sh
  1. Buat folder untuk log serta data chain untuk klien Geth dan Lighthouse:
mkdir /mnt/disks/chaindata-disk/ethereum/ mkdir /mnt/disks/chaindata-disk/ethereum/geth mkdir /mnt/disks/chaindata-disk/ethereum/geth/chaindata mkdir /mnt/disks/chaindata-disk/ethereum/geth/logs mkdir /mnt/disks/chaindata-disk/ethereum/lighthouse mkdir /mnt/disks/chaindata-disk/ethereum/lighthouse/chaindata mkdir /mnt/disks/chaindata-disk/ethereum/lighthouse/logs
  1. Instal Geth dari pengelola paket:
sudo add-apt-repository -y ppa:ethereum/ethereum sudo apt-get -y install ethereum
  1. Pastikan Geth tersedia dan merupakan versi terbaru:
geth version

Anda akan melihat pesan berisi baris yang mirip dengan ini:

Output:

Geth Version: 1.14.11-stable Git Commit: ea9e62ca3db5c33aa7438ebf39c189afd53c6bf8 Architecture: amd64 Go Version: go1.23.1 Operating System: linux GOPATH= GOROOT=
  1. Download klien Lighthouse. Skrip ini akan mendownload rilis terbaru dari GitHub.
# Fetch the latest release information from GitHub API RELEASE_URL="https://api.github.com/repos/sigp/lighthouse/releases/latest" LATEST_VERSION=$(curl -s $RELEASE_URL | jq -r '.tag_name') # Download the latest release using curl DOWNLOAD_URL=$(curl -s $RELEASE_URL | jq -r '.assets[] | select(.name | endswith("x86_64-unknown-linux-gnu.tar.gz")) | .browser_download_url') curl -L "$DOWNLOAD_URL" -o "lighthouse-${LATEST_VERSION}-x86_64-unknown-linux-gnu.tar.gz"
  1. Ekstrak file tar lighthouse dan hapus:
# Extract the tar file tar -xvf "lighthouse-${LATEST_VERSION}-x86_64-unknown-linux-gnu.tar.gz" # Remove the tar file rm "lighthouse-${LATEST_VERSION}-x86_64-unknown-linux-gnu.tar.gz"
  1. Pindahkan program biner lighthouse ke folder /usr/bin dan perbarui izinnya:
sudo mv lighthouse /usr/bin
  1. Pastikan lighthouse tersedia dan merupakan versi terbaru:
lighthouse --version

Anda akan melihat pesan berisi baris yang mirip dengan ini. Perhatikan bahwa nomor versinya mungkin berbeda:

Output:

Lighthouse v5.3.0-d6ba8c3 BLS library: blst-portable BLS hardware acceleration: true SHA256 hardware acceleration: false Allocator: jemalloc Profile: maxperf Specs: mainnet (true), minimal (false), gnosis (true)
  1. Buat secret JWT bersama. Secret JWT ini digunakan sebagai mekanisme keamanan yang membatasi siapa saja yang dapat memanggil endpoint RPC klien eksekusi.
cd ~ mkdir ~/.secret openssl rand -hex 32 > ~/.secret/jwtsecret chmod 440 ~/.secret/jwtsecret

Klik Periksa progres saya untuk memverifikasi tujuan.

Membuat Pengguna di VM dan Menginstal software Ethereum

Tugas 3. Memulai Klien Eksekusi dan Konsensus Ethereum

Ethereum memiliki dua klien: Geth - lapisan eksekusi, dan Lighthouse - lapisan konsensus. Keduanya berjalan secara paralel dan saling bekerja sama. Selanjutnya, Geth akan membuat endpoint dan port authrpc yang akan dipanggil Lighthouse. Endpoint ini dilindungi oleh token keamanan umum yang disimpan secara lokal. Lighthouse terhubung ke Geth menggunakan endpoint eksekusi dan token keamanan.

Untuk mengetahui informasi tentang cara Geth terhubung ke klien konsensus, baca dokumentasi Connecting to Consensus Clients. Untuk mengetahui informasi selengkapnya tentang cara Lighthouse terhubung ke klien eksekusi, lihat dokumentasi Merge Migration - Lighthouse Book.

Memulai Geth

Berikut ini adalah langkah untuk memulai klien eksekusi Geth.

  1. Pertama-tama, lakukan autentikasi di gcloud. Di dalam sesi SSH, jalankan:
gcloud auth login

Tekan ENTER ketika Anda melihat prompt Do you want to continue (Y/n)?

  1. Buka link yang ditampilkan di tab baru.

  2. Klik nama pengguna Anda yang aktif (), lalu klik Allow.

  3. Saat Anda melihat prompt Enter the following verification code in gcloud CLI on the machine you want to log into, klik tombol salin lalu kembali ke sesi SSH, dan tempelkan kode ke prompt Enter authorization code:.

  4. Tetapkan variabel lingkungan alamat IP eksternal:

export CHAIN=eth export NETWORK=mainnet export EXT_IP_ADDRESS_NAME=$CHAIN-$NETWORK-rpc-ip export EXT_IP_ADDRESS=$(gcloud compute addresses list --filter=$EXT_IP_ADDRESS_NAME --format="value(address_range())")
  1. Jalankan perintah berikut untuk memulai Geth sebagai proses latar belakang. Dalam lab ini, Anda akan menggunakan mode sinkronisasi "snap", yang merupakan node ringan. Untuk menyinkronkan sebagai node penuh, gunakan "full" sebagai mode sinkronisasi. Anda dapat menjalankannya di command line atau menyimpannya ke file .sh terlebih dahulu, lalu menjalankannya. Anda juga dapat mengonfigurasinya agar berjalan sebagai layanan dengan systemd.
nohup geth --datadir "/mnt/disks/chaindata-disk/ethereum/geth/chaindata" \ --http.corsdomain "*" \ --http \ --http.addr 0.0.0.0 \ --http.port 8545 \ --http.corsdomain "*" \ --http.api admin,debug,web3,eth,txpool,net \ --http.vhosts "*" \ --gcmode full \ --cache 2048 \ --mainnet \ --metrics \ --metrics.addr 127.0.0.1 \ --syncmode snap \ --authrpc.vhosts="localhost" \ --authrpc.port 8551 \ --authrpc.jwtsecret=/home/ethereum/.secret/jwtsecret \ --txpool.accountslots 32 \ --txpool.globalslots 8192 \ --txpool.accountqueue 128 \ --txpool.globalqueue 2048 \ --nat extip:$EXT_IP_ADDRESS \ &> "/mnt/disks/chaindata-disk/ethereum/geth/logs/geth.log" &

Klik Periksa progres saya untuk memverifikasi tujuan.

Memulai Geth sebagai proses latar belakang dan menggunakan mode sinkronisasi snap
  1. Untuk melihat ID proses, jalankan perintah ini:
ps -A | grep geth
  1. Periksa log untuk melihat apakah proses dimulai dengan benar:
tail -f /mnt/disks/chaindata-disk/ethereum/geth/logs/geth.log

Anda akan melihat pesan yang mirip dengan yang ditampilkan di kotak output di bawah. Klien Geth tidak akan melanjutkan hingga dipasangkan dengan klien konsensus.

Output:

Looking for peers peercount=1 tried=27 static=0 Post-merge network, but no beacon client seen. Please launch one to follow the chain!
  1. Tekan Ctrl+C untuk keluar dari pemantauan log.

Memulai Lighthouse

Sekarang, Anda akan memulai klien konsensus lighthouse.

  1. Jalankan perintah berikut untuk meluncurkan Lighthouse sebagai proses latar belakang. Anda dapat menjalankannya di command line atau menyimpannya ke file .sh terlebih dahulu, lalu menjalankannya. Anda juga dapat mengonfigurasinya agar berjalan sebagai layanan dengan systemd.
nohup lighthouse bn \ --network mainnet \ --http \ --metrics \ --datadir /mnt/disks/chaindata-disk/ethereum/lighthouse/chaindata \ --execution-jwt /home/ethereum/.secret/jwtsecret \ --execution-endpoint http://localhost:8551 \ --checkpoint-sync-url https://sync-mainnet.beaconcha.in \ &> "/mnt/disks/chaindata-disk/ethereum/lighthouse/logs/lighthouse.log" &
  1. Untuk melihat ID proses, jalankan perintah berikut:
ps -A | grep lighthouse
  1. Periksa file log untuk melihat apakah proses dimulai dengan benar. Kemunculannya mungkin perlu waktu beberapa menit:
tail -f /mnt/disks/chaindata-disk/ethereum/lighthouse/logs/lighthouse.log

Anda akan melihat pesan yang mirip dengan yang berikut ini:

Output:

INFO Syncing INFO Synced INFO New block received
  1. Tekan Ctrl+C untuk keluar dari pemantauan log.

  2. Periksa kembali log Geth untuk mengonfirmasi bahwa log dibuat dengan benar.

tail -f /mnt/disks/chaindata-disk/ethereum/geth/logs/geth.log

Anda akan melihat pesan yang mirip dengan yang ditampilkan di kotak output di bawah.

Output:

Syncing beacon headers

Memverifikasi bahwa node telah disinkronkan dengan blockchain

Tentukan apakah node masih disinkronkan. Sinkronisasi node memerlukan sedikit waktu. (Perhatikan bahwa Anda tidak perlu menunggu node disinkronkan untuk menyelesaikan lab. Output tersebut diperkirakan akan menampilkan JSON status sinkronisasi, bukan false). Ada dua cara untuk mengetahui status sinkronisasi: Geth dan panggilan RPC.

  1. Jalankan perintah Geth berikut untuk memeriksa apakah node masih disinkronkan. Output "false" berarti node telah disinkronkan sepenuhnya dengan jaringan, tetapi kemungkinan masih akan disinkronkan selama lab ini.
geth attach /mnt/disks/chaindata-disk/ethereum/geth/chaindata/geth.ipc
  1. Di konsol Geth, jalankan:
eth.syncing

Anda akan melihat sesuatu yang mirip dengan berikut ini:

Output:

#If not synced: { currentBlock: 5186007, healedBytecodeBytes: 0, healedBytecodes: 0, healedTrienodeBytes: 0, healedTrienodes: 0, healingBytecode: 0, healingTrienodes: 0, highestBlock: 16193909, startingBlock: 0, syncedAccountBytes: 2338698797, syncedAccounts: 9417189, syncedBytecodeBytes: 302598044, syncedBytecodes: 58012, syncedStorage: 42832820, syncedStorageBytes: 9263550660 } #If synced: false
  1. Ketik exit untuk keluar dari konsol Geth.
  2. Jalankan perintah curl berikut untuk memeriksa apakah node tersebut masih disinkronkan. Alat command line ‘jq' akan memformat output json pada perintah curl. Output "false" berarti node disinkronkan dengan jaringan.
curl -H "Content-Type: application/json" -X POST --data '{"jsonrpc":"2.0","method":"eth_syncing","id":67}' http://localhost:8545 | jq

Output:

#If not synced: { "jsonrpc": "2.0", "id": 67, "result": { "currentBlock": "0x4d70e9", "healedBytecodeBytes": "0x0", "healedBytecodes": "0x0", "healedTrienodeBytes": "0x0", "healedTrienodes": "0x0", "healingBytecode": "0x0", "healingTrienodes": "0x0", "highestBlock": "0xf71975", "startingBlock": "0x0", "syncedAccountBytes": "0x8b65b62d", "syncedAccounts": "0x8fb1e5", "syncedBytecodeBytes": "0x1209479c", "syncedBytecodes": "0xe29c", "syncedStorage": "0x28d93b4", "syncedStorageBytes": "0x2282690c4" } } #If synced: {"jsonrpc":"2.0","id":67,"result":false}
  1. Jalankan perintah curl berikut untuk memeriksa apakah node tersebut dapat diakses melalui alamat IP eksternal:
curl -H "Content-Type: application/json" -X POST --data '{"jsonrpc":"2.0","method":"eth_syncing","id":67}' http://$EXT_IP_ADDRESS:8545 | jq

Output:

#If not synced: { "jsonrpc": "2.0", "id": 67, "result": { "currentBlock": "0x4d70e9", "healedBytecodeBytes": "0x0", "healedBytecodes": "0x0", "healedTrienodeBytes": "0x0", "healedTrienodes": "0x0", "healingBytecode": "0x0", "healingTrienodes": "0x0", "highestBlock": "0xf71975", "startingBlock": "0x0", "syncedAccountBytes": "0x8b65b62d", "syncedAccounts": "0x8fb1e5", "syncedBytecodeBytes": "0x1209479c", "syncedBytecodes": "0xe29c", "syncedStorage": "0x28d93b4", "syncedStorageBytes": "0x2282690c4" } } #If synced: {"jsonrpc":"2.0","id":67,"result":false}

Tugas 4. Mengonfigurasi operasi Cloud

Google Cloud memiliki beberapa layanan operasi untuk mengelola node Ethereum Anda. Bagian ini membahas cara mengonfigurasi Cloud Logging, Managed Prometheus, Cloud Monitoring, dan Pemberitahuan Cloud.

Mengonfigurasi Cloud Logging

Secara default, Geth dan Lighthouse akan mencatat log ke file log yang dideklarasikan. Anda perlu memasukkan data log ke Cloud Logging. Cloud Logging memiliki kemampuan penelusuran yang canggih dan pemberitahuan dapat dibuat untuk pesan log spesifik.

  1. Perbarui izin file konfigurasi Operasional Cloud agar Anda dapat mengupdatenya:
sudo chmod 666 /etc/google-cloud-ops-agent/config.yaml
  1. Konfigurasi agen Operasional Cloud untuk mengirim data log ke Cloud Logging. Update file "/etc/google-cloud-ops-agent/config.yaml" untuk menyertakan konfigurasi Agen Operasional ini. File konfigurasi ini menentukan file log Geth dan Lighthouse untuk diimpor ke Cloud Logging:
sudo cat << EOF >> /etc/google-cloud-ops-agent/config.yaml logging: receivers: syslog: type: files include_paths: - /var/log/messages - /var/log/syslog ethGethLog: type: files include_paths: ["/mnt/disks/chaindata-disk/ethereum/geth/logs/geth.log"] record_log_file_path: true ethLighthouseLog: type: files include_paths: ["/mnt/disks/chaindata-disk/ethereum/lighthouse/logs/lighthouse.log"] record_log_file_path: true journalLog: type: systemd_journald service: pipelines: logging_pipeline: receivers: - syslog - journalLog - ethGethLog - ethLighthouseLog EOF
  1. Setelah disimpan, jalankan perintah ini untuk memulai ulang agen dan menerapkan perubahan:
sudo systemctl stop google-cloud-ops-agent sudo systemctl start google-cloud-ops-agent sudo systemctl status google-cloud-ops-agent
  1. Masukkan Ctrl+C untuk keluar dari layar status.
  2. Jika terjadi error dalam status, gunakan perintah ini untuk melihat detail selengkapnya:
sudo journalctl -xe | grep "google_cloud_ops_agent_engine"
  1. Periksa Cloud Logging untuk mengonfirmasi bahwa pesan log muncul di konsol. Di Konsol Cloud, buka Navigation menu (Ikon Navigation menu), klik View all products, dan di bagian Observability, klik Logging. Di menu kiri, klik Logs Explorer. Anda akan melihat pesan yang mirip dengan berikut ini:
Halaman Query results yang mencantumkan beberapa pesan dan pratinjaunya.

Mengonfigurasi Managed Prometheus

Karena kita memulai klien geth dan lighthouse dengan flag --metrics, kedua klien akan menghasilkan metrik di port http. Metrik ini dapat disimpan dalam database deret waktu seperti Prometheus dan digunakan untuk menyediakan data ke dasbor grafana yang informatif. Biasanya, Anda perlu menginstal Prometheus di VM, tetapi konfigurasi kecil di agen Operasional Cloud dapat mencatat metrik dan menyimpannya di layanan Managed Prometheus di Google Cloud.

  1. Di command line VM, konfirmasi bahwa endpoint metrik Geth aktif.
curl http://localhost:6060/debug/metrics/prometheus

Output:

...... # TYPE vflux_server_clientEvent_deactivated gauge vflux_server_clientEvent_deactivated 0 # TYPE vflux_server_clientEvent_disconnected gauge vflux_server_clientEvent_disconnected 0 # TYPE vflux_server_inactive_count gauge vflux_server_inactive_count 0
  1. Di command line VM, pastikan endpoint metrik Lighthouse aktif.
curl http://localhost:5054/metrics

Output:

...... gossipsub_heartbeat_duration_bucket{le="300.0"} 5679573 gossipsub_heartbeat_duration_bucket{le="350.0"} 5679573 gossipsub_heartbeat_duration_bucket{le="400.0"} 5679573 gossipsub_heartbeat_duration_bucket{le="450.0"} 5679573 gossipsub_heartbeat_duration_bucket{le="+Inf"} 5679573 ......
  1. Mengonfigurasi agen Operasional Cloud untuk mengirim data metrik ke Managed Prometheus. Update file "/etc/google-cloud-ops-agent/config.yaml" untuk menyertakan konfigurasi Agen Operasional ini. File konfigurasi ini menentukan endpoint metrik Geth dan Lighthouse untuk diimpor ke Managed Prometheus:
sudo cat << EOF >> /etc/google-cloud-ops-agent/config.yaml metrics: receivers: prometheus: type: prometheus config: scrape_configs: - job_name: 'geth_exporter' scrape_interval: 10s metrics_path: /debug/metrics/prometheus static_configs: - targets: ['localhost:6060'] - job_name: 'lighthouse_exporter' scrape_interval: 10s metrics_path: /metrics static_configs: - targets: ['localhost:5054'] service: pipelines: prometheus_pipeline: receivers: - prometheus EOF
  1. Setelah disimpan, jalankan perintah ini untuk memulai ulang agen dan menerapkan perubahan:
sudo systemctl stop google-cloud-ops-agent sudo systemctl start google-cloud-ops-agent sudo systemctl status google-cloud-ops-agent
  1. Masukkan Ctrl+C untuk keluar dari layar status.
  2. Jika terjadi error dalam status, gunakan perintah ini untuk melihat detail selengkapnya:
sudo journalctl -xe | grep "google_cloud_ops_agent_engine"
  1. Periksa Cloud Logging untuk mengonfirmasi bahwa metrik muncul di konsol. Di Konsol Cloud, buka Navigation menu (Ikon Navigation menu), klik View all products, dan di bagian Observability, klik Monitoring. Di menu kiri, klik Metrics explorer.

  2. Pilih opsi <> PromQL. Di kotak kueri, masukkan metrik Lighthouse gossipsub_heartbeat_duration_bucket. Klik RUN QUERY. Anda akan melihat hasil yang mirip dengan berikut ini:

Halaman PROMQL query results, yang mencantumkan metrik data yang diminta beserta nilainya.

Anda dapat melakukan hal yang sama untuk metrik Geth (contoh rpc_duration_eth_blockNumber_success_count) untuk mengonfirmasi bahwa metrik Geth ditampilkan.

Melihat Cloud Monitoring

Cloud Monitoring seharusnya sudah aktif untuk virtual machine Anda.

  1. Di Konsol Cloud, buka Navigation menu (Ikon Navigation menu) > Compute Engine > VM Instances.
  2. Klik VM eth-mainnet-rpc-node.
  3. Klik tab OBSERVABILITY.
  4. Semua bagian akan menampilkan grafik metrik yang berbeda dengan VM.
Halaman dengan tab Observability, yang mencakup beberapa grafik untuk metrik, seperti Network Traffic dan CPU Utilization.
  1. Klik berbagai sub-menu dan jangka waktu untuk melihat beragam jenis metrik yang diambil langsung dari VM.

Mengonfigurasi saluran notifikasi

Konfigurasi saluran notifikasi yang akan dikirimi pemberitahuan:

  1. Di Konsol Cloud, buka Navigation menu (Ikon Navigation menu), klik View all products, dan di bagian Observability, klik Monitoring. Di menu sebelah kiri, klik Alerting.
  2. Klik EDIT NOTIFICATION CHANNELS.
  3. Di bagian Email, klik ADD NEW.
  4. Ketik Email address dan Display Name orang yang akan menerima notifikasi.
  5. Klik Save.

Mengonfigurasi pemberitahuan metrik

Mengonfigurasi pemberitahuan berdasarkan metrik VM:

  1. Di menu kiri, di bagian Detect, klik Alerting.
  2. Klik CREATE POLICY.
  3. Klik SELECT A METRIC.
  4. Klik VM Instance > Disk > Disk Utilization, lalu klik Apply.
  5. Tambahkan filter:
Properti Nilai (ketik atau pilih)
device /dev/sdb
state used
Halaman Create Policy, yang mencakup kolom yang disebutkan sebelumnya.
  1. Klik NEXT.
  2. Masukkan nilai Threshold: 90%
Halaman Configure alert trigger, yang mencakup kolom yang disebutkan sebelumnya.
  1. Klik NEXT, lalu pilih nilai berikut:
Properti Nilai
(ketik atau pilih)
Use notification channel select
Notification Channels Select notification channel created previously
Notify on incident closure check
Incident autoclose duration 2 days
Documentation Check the disk space of the VM
Name VM - Disk space alert - 90% utilization
Halaman Configure notifications and finalize alert, yang mencakup kolom yang disebutkan sebelumnya. Kolom teks Documentation dan Name the alert policy serta tombol Next.
  1. Klik NEXT.
  2. Klik CREATE POLICY.

Mengonfigurasi cek Uptime

Konfigurasi cek uptime untuk endpoint HTTP:

  1. Di menu kiri, di bagian Detect, klik Uptime checks.
  2. Klik CREATE UPTIME CHECK.
  3. Konfigurasi cek uptime dengan nilai berikut:
Properti Nilai
(ketik atau pilih)
Protocol HTTP
Resource Type URL
Hostname [External IP of your instance]
Path /
Expand More target options
Request Method GET
Port 8545
Click Continue accept defaults
Click Continue accept defaults
Choose notification channel Select notification channel created previously
Title eth-mainnet-rpc-node-uptime-check
  1. Klik TEST (seharusnya menampilkan keberhasilan 200 OK).
  2. Klik CREATE.

Klik Periksa progres saya untuk memverifikasi tujuan.

Mengonfigurasi Cloud Operations

Selamat!

Dalam lab ini, Anda telah membuat instance Compute Engine dengan persistent disk, mengonfigurasi alamat IP statis, mengonfigurasi aturan firewall jaringan, menjadwalkan pencadangan, men-deploy klien Ethereum Geth dan Lighthouse, menguji penyiapan dengan panggilan RPC Ethereum, mengonfigurasi Cloud Logging dan Monitoring, serta mengonfigurasi cek uptime.

Langkah berikutnya/pelajari lebih lanjut

Lihat referensi berikut untuk melanjutkan perjalanan Ethereum Anda:

  • Untuk mempelajari lebih lanjut klien Ethereum (lapisan eksekusi), lihat Geth.
  • Untuk mempelajari lebih lanjut klien Ethereum (lapisan konsensus), lihat Lighthouse.
  • Untuk mempelajari lebih lanjut Ethereum secara umum, lihat Ethereum.
  • Untuk mempelajari lebih lanjut Google Cloud untuk Web3, lihat situs Google Cloud untuk Web3.
  • Untuk mempelajari lebih lanjut Blockchain Node Engine untuk Google Cloud, lihat halaman Blockchain Node Engine.

Sertifikasi dan pelatihan Google Cloud

...membantu Anda mengoptimalkan teknologi Google Cloud. Kelas kami mencakup keterampilan teknis dan praktik terbaik untuk membantu Anda memahami dengan cepat dan melanjutkan proses pembelajaran. Kami menawarkan pelatihan tingkat dasar hingga lanjutan dengan opsi on demand, live, dan virtual untuk menyesuaikan dengan jadwal Anda yang sibuk. Sertifikasi membantu Anda memvalidasi dan membuktikan keterampilan serta keahlian Anda dalam teknologi Google Cloud.

Manual Terakhir Diperbarui pada 27 Juli 2026

Lab Terakhir Diuji pada 27 Juli 2026

Hak cipta 2026 Google LLC. Semua hak dilindungi undang-undang. Google dan logo Google adalah merek dagang dari Google LLC. Semua nama perusahaan dan produk lain mungkin adalah merek dagang masing-masing perusahaan yang bersangkutan.

Sebelum memulai

  1. Lab membuat project dan resource Google Cloud untuk jangka waktu tertentu
  2. Lab memiliki batas waktu dan tidak memiliki fitur jeda. Jika lab diakhiri, Anda harus memulainya lagi dari awal.
  3. Di kiri atas layar, klik Start lab untuk memulai

Gunakan penjelajahan rahasia

  1. Salin Nama Pengguna dan Sandi yang diberikan untuk lab tersebut
  2. Klik Open console dalam mode pribadi

Login ke Konsol

  1. Login menggunakan kredensial lab Anda. Menggunakan kredensial lain mungkin menyebabkan error atau dikenai biaya.
  2. Setujui persyaratan, dan lewati halaman resource pemulihan
  3. Jangan klik End lab kecuali jika Anda sudah menyelesaikan lab atau ingin mengulanginya, karena tindakan ini akan menghapus pekerjaan Anda dan menghapus project

Konten ini tidak tersedia untuk saat ini

Kami dapat memberi tahu Anda melalui email saat konten tersedia

Bagus!

Kami dapat menghubungi Anda melalui email saat konten tersedia

Satu lab dalam satu waktu

Konfirmasi untuk mengakhiri semua lab yang ada dan memulai lab ini

Gunakan penjelajahan rahasia untuk menjalankan lab

Menggunakan jendela Samaran atau browser pribadi adalah cara terbaik untuk menjalankan lab ini. Langkah ini akan mencegah konflik antara akun pribadi Anda dan akun Siswa, yang dapat menyebabkan tagihan ekstra pada akun pribadi Anda.