Crea un nodo blockchain Ethereum

Questa pagina descrive come creare un nodo blockchain Ethereum in Blockchain Node Engine utilizzando la console o una chiamata API.

Utilizzo della console

Nella console Google Cloud, vai alla pagina Blockchain Node Engine.

Vai a Blockchain Node Engine

Per impostazione predefinita, viene visualizzata la pagina dell'elenco Nodi. Se non sono stati creati nodi blockchain, ti verrà chiesto di crearne uno.

Per creare un nodo blockchain:

  1. Fai clic su Crea. Si apre la procedura guidata Crea un nodo blockchain.

    Assistente alla creazione di nodi di Blockchain Node Engine

  2. Configura le informazioni sul nodo:

    1. Nome del nodo blockchain:digita un nome per il nodo. Utilizza lettere minuscole (a-z), numeri e trattini. Ad esempio: my-node.
    2. Tipo di blockchain:seleziona il nome della blockchain. Ad esempio: ETHEREUM.
    3. Fai clic su Continua.
  3. Configura informazioni blockchain:configura le informazioni specifiche della blockchain. Ad esempio, per configurare un nodo Ethereum, seleziona le seguenti opzioni. Queste informazioni non possono essere modificate in un secondo momento:

    1. Rete:il nome della rete. Ad esempio MAINNET.
    2. Tipo di nodo: il tipo del nodo blockchain. Ad esempio: FULL.
    3. Client di esecuzione/consenso: il nome del livello di esecuzione/consenso del software del client. Ad esempio, GETH/LIGHTHOUSE. Consulta Configurazioni supportate per conoscere le combinazioni supportate.
    4. Abilita spazi dei nomi aggiuntivi: un spazio dei nomi JSON-RPC facoltativo quando utilizzi il client di esecuzione Ethereum Geth. Ad esempio: debug.
    5. Fai clic su Continua.
  4. Configura le informazioni di rete:

    1. Seleziona la località geografica in cui ospitare le risorse. Ad esempio, us-central1. Queste informazioni non possono essere modificate in un secondo momento. Consulta Località supportate.
    2. Configura endpoint:crea endpoint accessibili pubblicamente per impostazione predefinita. Consulta Private Service Connect per ulteriori informazioni sull'utilizzo di endpoint privati.
    3. Fai clic su Continua.
  5. Aggiungere etichette:

    1. Digita una coppia chiave/valore. Fai clic su Aggiungi elemento per aggiungere altre coppie chiave/valore.
    2. Fai clic su Continua.
  6. Fai clic su Crea. Il nodo blockchain viene creato e viene visualizzato l'elenco Nodi. Lo stato Stato indica Creazione finché il nodo blockchain non è pronto per l'uso, quindi diventa In esecuzione.

Utilizzo di un'API

Per creare un nodo blockchain utilizzando un'API, invia una richiesta POST all'API con la specifica del nodo blockchain. Di seguito è riportato un esempio che utilizza il comando curl per inviare una richiesta all'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

Devi sostituire le variabili nell'esempio precedente con i valori effettivi come segue:

  • BLOCKCHAIN_TYPE: il nome della blockchain. Ad esempio, ETHEREUM.
  • privateServiceConnectEnabled: facoltativo e disattivato per impostazione predefinita. Imposta su true per attivare Private Service Connect.
  • CONSENSUS_CLIENT: il nome del livello di consenso del software client. Ad esempio: LIGHTHOUSE. Consulta la sezione Configurazioni supportate per informazioni sulle combinazioni supportate.
  • EXECUTION_CLIENT: il nome del livello di esecuzione del software client. Ad esempio: GETH. Consulta la sezione Configurazioni supportate per informazioni sulle combinazioni supportate.
  • apiEnableAdmin: un spazio dei nomi JSON-RPC facoltativo quando si utilizza il client di esecuzione Ethereum Geth. Disattivata per impostazione predefinita. Imposta su true per attivare.
  • apiEnableDebug: un spazio dei nomi JSON-RPC facoltativo quando si utilizza il client di esecuzione Ethereum Geth. Disattivata per impostazione predefinita. Imposta su true per attivare.
  • NETWORK: il nome della rete. Ad esempio, MAINNET.
  • NODE_TYPE: il tipo del nodo blockchain. Ad esempio: FULL.
  • PROJECT_ID: il tuo ID progetto Google Cloud . Ad esempio, my-project-id.
  • LOCATION: la posizione in cui ospitare le risorse. Queste informazioni non possono essere modificate in un secondo momento. Ad esempio, us-central1. Consulta Località supportate.
  • NODE_NAME: un nome specificato per il nodo. Utilizza lettere minuscole (a-z), numeri e trattini. Ad esempio, my-node.
  • labels: una coppia chiave-valore. Nell'esempio riportato sopra, la chiave è LABEL_KEY, ad esempio my-label-key, e il valore è LABEL_VALUE, ad esempio my-label-value.

Ecco un esempio di risposta al comando precedente:

{
  "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
}

Tieni presente che OPERATION_ID viene restituito nell'esempio precedente:

operation-1683664820863-5fb48c391814a-a546e3e6-ddee30ad

Puoi utilizzare questo valore per ottenere lo stato della creazione del nodo blockchain.

Configurazione del validatore

Sono disponibili opzioni aggiuntive per supportare i clienti che utilizzano i client beacon Blockchain Node Engine con un client di convalida gestito dal cliente.

NOTA: queste opzioni sono disponibili solo utilizzando l'API.

Per creare un nodo blockchain con le opzioni di verificatore impostate, utilizza un comando curl come:

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

Destinatario della commissione per i beacon

Sul client beacon è possibile impostare un destinatario della commissione predefinito, che viene utilizzato se un destinatario della commissione non è specificato dal client di convalida. Sebbene la documentazione di Lighthouse lo definisca un destinatario suggerito per le commissioni, poiché sia i client di esecuzione che i client beacon sono attendibili, il destinatario viene sempre utilizzato se specificato.

I destinatari delle commissioni beacon devono essere indirizzi Ethereum con il prefisso "0x", ad esempio "0xb469d8b44a3f559a3386af6273ec4a71da88a15a".

URL del relè MEV

I nodi blockchain sono dotati di un servizio MEV-boost gestito. In questo modo, i clienti possono utilizzare uno o più servizi di creazione di blocchi esterni, scegliere il blocco migliore offerto da questi servizi e proporlo.

Nessun servizio specifico è consigliato o raccomandato e i clienti sono responsabili della verifica dei servizi selezionati qui.

Gli URL di MEV-relay vengono specificati come un elenco di URL separati da virgole, ad esempio "https://mev1.example.org/,https://mev2.example.org/".

Configurazioni supportate

Blockchain Node Engine supporta una serie di configurazioni. Puoi creare nodi con una delle seguenti combinazioni:

nodeType e viceversa executionClient consensusClient
PIENA MAINNET GETH LIGHTHOUSE
PIENA TESTNET_GOERLI_PRATER GETH LIGHTHOUSE
PIENA TESTNET_SEPOLIA GETH LIGHTHOUSE
PIENA TESTNET_HOLESKY GETH LIGHTHOUSE
ARCHIVE MAINNET ERIGON LIGHTHOUSE