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 essere utilizzato, 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 in questo esempio 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, 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 come un destinatario della commissione suggerito, 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 rete 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