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.
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:
Fai clic su Crea. Si apre la procedura guidata Crea un nodo blockchain.
Configura le informazioni sul nodo:
- Nome del nodo blockchain:digita un nome per il
nodo. Utilizza lettere minuscole (a-z),
numeri e trattini. Ad esempio:
my-node
. - Tipo di blockchain:seleziona il nome della
blockchain.
Ad esempio:
ETHEREUM
. - Fai clic su Continua.
- Nome del nodo blockchain:digita un nome per il
nodo. Utilizza lettere minuscole (a-z),
numeri e trattini. Ad esempio:
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:
- Rete:il nome della
rete.
Ad esempio
MAINNET
. - Tipo di nodo: il tipo
del nodo blockchain. Ad esempio:
FULL
. - 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. - Abilita spazi dei nomi aggiuntivi: un spazio dei nomi JSON-RPC facoltativo quando utilizzi il client di esecuzione Ethereum Geth. Ad esempio:
debug
. - Fai clic su Continua.
- Rete:il nome della
rete.
Ad esempio
Configura le informazioni di rete:
- 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. - Configura endpoint:crea endpoint accessibili pubblicamente per impostazione predefinita. Consulta Private Service Connect per ulteriori informazioni sull'utilizzo di endpoint privati.
- Fai clic su Continua.
- Seleziona la
località geografica
in cui ospitare le risorse. Ad esempio,
Aggiungere etichette:
- Digita una coppia chiave/valore. Fai clic su Aggiungi elemento per aggiungere altre coppie chiave/valore.
- Fai clic su Continua.
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 sutrue
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 sutrue
per attivare.apiEnableDebug
: un spazio dei nomi JSON-RPC facoltativo quando si utilizza il client di esecuzione Ethereum Geth. Disattivata per impostazione predefinita. Imposta sutrue
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 esempiomy-label-key
, e il valore è LABEL_VALUE, ad esempiomy-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 |