Membuat node blockchain Ethereum

Halaman ini menjelaskan cara membuat node blockchain Ethereum di Blockchain Node Engine menggunakan panggilan konsol atau API.

Menggunakan konsol

Di konsol Google Cloud, buka halaman Blockchain Node Engine.

Buka Blockchain Node Engine

Halaman daftar Nodes ditampilkan secara default. Jika belum ada node blockchain yang dibuat, Anda akan diminta untuk membuatnya.

Untuk membuat node blockchain:

  1. Klik Buat. Wizard Create a blockchain node akan terbuka.

    Wizard pembuatan node Blockchain Node Engine

  2. Mengonfigurasi info node:

    1. Nama node blockchain: Ketik nama untuk node. Gunakan huruf kecil (a-z), angka, dan tanda hubung. Misalnya, my-node.
    2. Jenis blockchain: Pilih nama blockchain. Misalnya, ETHEREUM.
    3. Klik Lanjutkan.
  3. Mengonfigurasi info blockchain: Mengonfigurasi informasi khusus blockchain. Misalnya, untuk mengonfigurasi node Ethereum, pilih opsi berikut. Informasi ini tidak dapat diubah nanti:

    1. Jaringan: Nama jaringan. Contohnya, MAINNET.
    2. Jenis node: Jenis node blockchain. Misalnya, FULL.
    3. Klien Eksekusi/Konsensus: Nama lapisan eksekusi/konsensus software klien. Misalnya, GETH/LIGHTHOUSE. Lihat Konfigurasi yang didukung untuk mengetahui kombinasi yang didukung.
    4. Aktifkan namespace tambahan: Namespace JSON-RPC opsional saat menggunakan klien eksekusi Ethereum Geth. Misalnya, debug.
    5. Klik Lanjutkan.
  4. Mengonfigurasi info jaringan:

    1. Pilih lokasi geografis tempat Anda akan menghosting resource. Contoh, us-central1. Informasi ini tidak dapat diubah nanti. Lihat Lokasi yang didukung.
    2. Configure Endpoints: Membuat endpoint yang dapat diakses secara publik secara default. Tinjau Private Service Connect untuk mengetahui informasi selengkapnya tentang penggunaan endpoint pribadi.
    3. Klik Lanjutkan.
  5. Menambahkan label:

    1. Ketik pasangan nilai kunci. Klik Tambahkan item untuk menambahkan lebih banyak pasangan nilai kunci.
    2. Klik Lanjutkan.
  6. Klik Create. node blockchain akan dibuat dan daftar Nodes akan ditampilkan. Status menunjukkan Creating hingga node blockchain siap digunakan, lalu statusnya berubah menjadi Running.

Menggunakan API

Untuk membuat node blockchain menggunakan API, kirim permintaan POST ke API dengan spesifikasi node blockchain. Berikut adalah contoh penggunaan perintah curl untuk mengirim permintaan ke API:

curl -X POST \
  -H "Authorization: Bearer $(gcloud auth print-access-token)" \
  -H "Content-Type: application/json" \
  -d '{
    "blockchainType": "BLOCKCHAIN_TYPE",
    "privateServiceConnectEnabled" : false,
    "ethereumDetails": {
      "consensusClient": "CONSENSUS_CLIENT",
      "executionClient": "EXECUTION_CLIENT",
      "apiEnableAdmin": false,
      "apiEnableDebug": false,
      "network": "NETWORK",
      "nodeType": "NODE_TYPE"
    },
    "labels": {
      "LABEL_KEY": "LABEL_VALUE"
    }
  }' \
https://blockchainnodeengine.googleapis.com/v1/projects/PROJECT_ID/\
locations/LOCATION/blockchainNodes?blockchain_node_id=NODE_NAME

Anda harus mengganti variabel dalam contoh di atas dengan nilai sebenarnya sebagai berikut:

  • BLOCKCHAIN_TYPE: Nama blockchain. Contoh, ETHEREUM.
  • privateServiceConnectEnabled: Opsional dan dinonaktifkan secara default. Tetapkan ke true untuk mengaktifkan Private Service Connect.
  • CONSENSUS_CLIENT: Nama lapisan konsensus dari software klien. Misalnya, LIGHTHOUSE. Lihat Konfigurasi yang didukung untuk mengetahui kombinasi yang didukung.
  • EXECUTION_CLIENT: Nama lapisan eksekusi software klien. Misalnya, GETH. Lihat Konfigurasi yang didukung untuk mengetahui kombinasi yang didukung.
  • apiEnableAdmin: Namespace JSON-RPC opsional saat menggunakan klien eksekusi Ethereum Geth. Dinonaktifkan secara default. Tetapkan ke true untuk mengaktifkan.
  • apiEnableDebug: Namespace JSON-RPC opsional saat menggunakan klien eksekusi Ethereum Geth. Dinonaktifkan secara default. Tetapkan ke true untuk mengaktifkan.
  • NETWORK: Nama jaringan. Contoh, MAINNET.
  • NODE_TYPE: Jenis node blockchain. Misalnya, FULL.
  • PROJECT_ID: Google Cloud Project ID Anda. Misalnya, my-project-id.
  • LOCATION: Lokasi tempat menghosting resource Anda. Informasi ini tidak dapat diubah nanti. Contoh, us-central1. Lihat Lokasi yang didukung.
  • NODE_NAME: Nama yang Anda tentukan untuk node. Gunakan huruf kecil (a-z), angka, dan tanda hubung. Contoh, my-node.
  • labels: Pasangan nilai kunci. Pada contoh di atas, kuncinya adalah LABEL_KEY, misalnya my-label-key dan nilainya adalah LABEL_VALUE, misalnya my-label-value.

Berikut adalah contoh respons untuk perintah di atas:

{
  "name": "projects/my-project-id/locations/us-central1/operations/operation-1683664820863-5fb48c391814a-a546e3e6-ddee30ad",
  "metadata": {
    "@type": "type.googleapis.com/google.cloud.blockchainnodeengine.v1.OperationMetadata",
    "createTime": "2023-05-09T20:40:20.979144857Z",
    "target": "projects/my-project-id/locations/us-central1/blockchainNodes/my-node",
    "verb": "create",
    "requestedCancellation": false,
    "apiVersion": "v1"
  },
  "done": false
}

Perhatikan bahwa OPERATION_ID ditampilkan dalam contoh sebelumnya:

operation-1683664820863-5fb48c391814a-a546e3e6-ddee30ad

Anda dapat menggunakan nilai ini untuk mendapatkan status pembuatan node blockchain.

Konfigurasi Validator

Ada opsi tambahan yang tersedia untuk mendukung pelanggan yang menggunakan klien beacon Blockchain Node Engine dengan klien validator yang dikelola pelanggan.

CATATAN: Opsi ini hanya tersedia menggunakan API.

Untuk membuat node blockchain dengan opsi validator yang ditetapkan, gunakan perintah curl seperti:

curl -X POST \
  -H "Authorization: Bearer $(gcloud auth print-access-token)" \
  -H "Content-Type: application/json" \
  -d '{
    "blockchainType": "BLOCKCHAIN_TYPE",
    "ethereumDetails": {
      "consensusClient": "CONSENSUS_CLIENT",
      "executionClient": "EXECUTION_CLIENT",
      "apiEnableAdmin": false,
      "apiEnableDebug": false,
      "network": "NETWORK",
      "nodeType": "NODE_TYPE",
      "validatorConfig": {
        "beaconFeeRecipient": "BEACON_FEE_RECIPIENT",
        "mev_relay_urls": "MEV_RELAY_URL",
      }
    },
  }' \
https://blockchainnodeengine.googleapis.com/v1/projects/PROJECT_ID/\
locations/LOCATION/blockchainNodes?blockchain_node_id=NODE_NAME

Penerima Biaya Beacon

Penerima biaya default dapat ditetapkan di klien beacon, yang digunakan jika penerima biaya tidak ditentukan oleh klien validator. Meskipun dokumentasi Lighthouse merujuk ke ini sebagai penerima biaya yang disarankan, karena klien eksekusi dan beacon tepercaya, penerima selalu digunakan jika ditentukan.

Penerima biaya beacon harus berupa alamat Ethereum dengan awalan "0x", misalnya "0xb469d8b44a3f559a3386af6273ec4a71da88a15a".

URL relay MEV

Node blockchain dilengkapi dengan layanan MEV-boost terkelola. Hal ini memungkinkan pelanggan menggunakan layanan pembuat blok eksternal, mengambil blok terbaik yang ditawarkan oleh layanan tersebut, dan mengusulkan blok tersebut.

Tidak ada layanan tertentu yang direkomendasikan atau didukung, dan pelanggan bertanggung jawab untuk memverifikasi layanan yang mereka pilih di sini.

URL relay MEV ditentukan sebagai daftar URL yang dipisahkan koma, misalnya "https://mev1.example.org/,https://mev2.example.org/".

Konfigurasi yang didukung

Blockchain Node Engine mendukung berbagai konfigurasi. Anda dapat membuat node dengan salah satu kombinasi berikut:

nodeType jaringan executionClient consensusClient
PENUH MAINNET GETH MERCUSUAR
PENUH TESTNET_GOERLI_PRATER GETH MERCUSUAR
PENUH TESTNET_SEPOLIA GETH MERCUSUAR
PENUH TESTNET_HOLESKY GETH MERCUSUAR
ARSIP MAINNET ERIGON MERCUSUAR