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 viene chiesto di crearne uno.
Per creare un nodo blockchain:
Fai clic su Crea. Si apre la procedura guidata Crea un nodo blockchain.
Configura informazioni 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 client. Ad esempio,
GETH
/LIGHTHOUSE
. Per le combinazioni supportate, consulta la sezione Configurazioni supportate. - Abilita spazi dei nomi aggiuntivi: uno
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
posizione 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.
- Fai clic su Continua.
- Seleziona la
posizione 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 indica Creazione in corso finché il nodo blockchain non è pronto per l'uso, dopodiché lo stato cambia in 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
. - CONSENSUS_CLIENT: il nome del livello di consenso del software client. Ad esempio:
LIGHTHOUSE
. Consulta la sezione Configurazioni supportate per le combinazioni supportate. - EXECUTION_CLIENT: il nome del livello di
esecuzione del
software client. Ad esempio:
GETH
. Consulta la sezione Configurazioni supportate per le combinazioni supportate. apiEnableAdmin
: uno spazio dei nomi JSON-RPC facoltativo quando utilizzi il client di esecuzione Ethereum Geth. Disabilitato per impostazione predefinita. Imposta sutrue
per attivare.apiEnableDebug
: uno spazio dei nomi JSON-RPC facoltativo quando utilizzi il client di esecuzione Ethereum Geth. Disabilitato 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 che specifichi 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 esempiomy-label-key
e il valore è LABEL_VALUE, ad esempiomy-label-value
.
Ecco una risposta di esempio 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 client beacon di Blockchain Node Engine con un client di convalida gestito dal cliente.
NOTA: queste opzioni sono disponibili solo tramite l'API.
Per creare un nodo blockchain con le opzioni del validatore 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 beacon
È possibile impostare un destinatario delle commissioni predefinito nel client beacon, che viene utilizzato se un destinatario delle commissioni non è specificato dal client validatore. Sebbene la documentazione di Lighthouse si riferisca a questo come a un destinatario di commissioni suggerito, poiché sia i client di esecuzione che quelli beacon sono attendibili, il destinatario viene sempre utilizzato se specificato.
I destinatari della commissione del beacon devono essere indirizzi Ethereum con il prefisso "0x", ad esempio "0xb469d8b44a3f559a3386af6273ec4a71da88a15a".
URL del relè MEV
I nodi blockchain includono un servizio MEV-boost gestito. In questo modo, i clienti possono utilizzare uno o più servizi esterni di creazione di blocchi, scegliere il blocco migliore offerto da questi servizi e proporlo.
Non vengono consigliati o approvati servizi specifici e i clienti sono responsabili della verifica dei servizi selezionati qui.
Gli URL dei relè MEV sono 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 qualsiasi 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 |