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 Node ditampilkan secara default. Jika tidak 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. Konfigurasi 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. Konfigurasi info blockchain: Konfigurasi 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 eksekusi/konsensus lapisan software klien. Misalnya, GETH/LIGHTHOUSE. Lihat Konfigurasi yang didukung untuk kombinasi yang didukung.
    4. Aktifkan namespace tambahan: Namespace JSON-RPC opsional saat menggunakan klien eksekusi Ethereum Geth. Misalnya, debug.
    5. Klik Lanjutkan.
  4. Konfigurasi info jaringan:

    1. Pilih lokasi geografis tempat menghosting resource Anda. Contoh, us-central1. Informasi ini tidak dapat diubah nanti. Lihat Lokasi yang didukung.
    2. Mengonfigurasi Endpoint: Membuat endpoint yang dapat diakses secara publik.
    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 Buat. Node blockchain akan dibuat dan daftar Nodes akan ditampilkan. Status menunjukkan Creating hingga node blockchain siap digunakan, dan kemudian status 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 ini dengan nilai aktual sebagai berikut:

  • BLOCKCHAIN_TYPE: Nama blockchain. Contoh, ETHEREUM.
  • 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: Opsional namespace JSON-RPC saat menggunakan klien eksekusi Ethereum Geth. Dinonaktifkan secara default. Setel ke true untuk mengaktifkan.
  • apiEnableDebug: Opsional namespace JSON-RPC saat menggunakan klien eksekusi Ethereum Geth. Dinonaktifkan secara default. Setel ke true untuk mengaktifkan.
  • NETWORK: Nama jaringan. Contoh, MAINNET.
  • NODE_TYPE: Jenis node blockchain. Misalnya, FULL.
  • PROJECT_ID: ID project Google Cloud 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. Dalam contoh, kuncinya adalah LABEL_KEY, misalnya my-label-key dan nilainya adalah LABEL_VALUE, misalnya my-label-value.

Berikut adalah contoh respons terhadap perintah sebelumnya:

{
  "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 suar 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 menyebutnya 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 managed MEV-boost yang disertakan. Hal ini memungkinkan pelanggan menggunakan layanan atau beberapa 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 relai 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 LIGHTHOUSE
PENUH TESTNET_GOERLI_PRATER GETH LIGHTHOUSE
PENUH TESTNET_SEPOLIA GETH LIGHTHOUSE
PENUH TESTNET_HOLESKY GETH LIGHTHOUSE
ARSIP MAINNET ERIGON LIGHTHOUSE