En esta página se describe cómo crear un nodo de la cadena de bloques de Ethereum en Blockchain Node Engine mediante la consola o una llamada a la API.
Utilizar la consola
En la Google Cloud consola, ve a la página Blockchain Node Engine.
La página de lista Nodos se muestra de forma predeterminada. Si no se ha creado ningún nodo de cadena de bloques, se te pedirá que crees uno.
Para crear un nodo de cadena de bloques, sigue estos pasos:
Haz clic en Crear. Se abrirá el asistente Crear un nodo de cadena de bloques.
Configurar la información del nodo:
- Nombre del nodo de cadena de bloques: escribe un nombre para el nodo. Usa letras minúsculas (de la a a la z), números y guiones. Por ejemplo,
my-node
. - Tipo de cadena de bloques: selecciona el nombre de la cadena de bloques.
Por ejemplo,
ETHEREUM
. - Haz clic en Continuar.
- Nombre del nodo de cadena de bloques: escribe un nombre para el nodo. Usa letras minúsculas (de la a a la z), números y guiones. Por ejemplo,
Configurar información de la cadena de bloques: configura información específica de la cadena de bloques. Por ejemplo, para configurar un nodo de Ethereum, selecciona las siguientes opciones. Esta información no se puede cambiar más adelante:
- Red: el nombre de la red.
Por ejemplo,
MAINNET
. - Tipo de nodo: el tipo
del nodo de la cadena de bloques. Por ejemplo,
FULL
. - Cliente de ejecución o de consenso: nombre de la capa de ejecución o de consenso del software del cliente. Por ejemplo,
GETH
/LIGHTHOUSE
. Consulta las configuraciones admitidas para ver las combinaciones que se pueden usar. - Habilitar espacios de nombres adicionales: un espacio de nombres JSON-RPC opcional
cuando se usa el cliente de ejecución Geth de Ethereum. Por ejemplo,
debug
. - Haz clic en Continuar.
- Red: el nombre de la red.
Por ejemplo,
Configura la información de la red:
- Selecciona la ubicación geográfica en la que quieres alojar tus recursos. Por ejemplo,
us-central1
. Esta información no se puede cambiar más adelante. Consulta las ubicaciones admitidas. - Configurar endpoints: crea endpoints accesibles públicamente.
- Haz clic en Continuar.
- Selecciona la ubicación geográfica en la que quieres alojar tus recursos. Por ejemplo,
Añadir etiquetas:
- Escriba un par clave-valor. Haz clic en Añadir elemento para añadir más pares clave-valor.
- Haz clic en Continuar.
Haz clic en Crear. Se creará el nodo de cadena de bloques y se mostrará la lista Nodos. El estado indica Creando hasta que el nodo de la cadena de bloques esté listo para usarse. Después, el estado cambia a En ejecución.
Usar una API
Para crear un nodo de cadena de bloques mediante una API, envía una solicitud POST a la API con la especificación del nodo de cadena de bloques. A continuación, se muestra un ejemplo en el que se usa el comando curl
para enviar una solicitud a la 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
Debe sustituir las variables de este ejemplo por valores reales de la siguiente manera:
- BLOCKCHAIN_TYPE: el nombre de la cadena de bloques. Por ejemplo,
ETHEREUM
. - CONSENSUS_CLIENT: nombre de la capa de consenso del software cliente. Por ejemplo,
LIGHTHOUSE
. Consulta las configuraciones admitidas para ver las combinaciones compatibles. - EXECUTION_CLIENT: el nombre de la capa de ejecución del software del cliente. Por ejemplo,
GETH
. Consulta las configuraciones admitidas para ver las combinaciones compatibles. apiEnableAdmin
: un espacio de nombres JSON-RPC opcional cuando se usa el cliente de ejecución de Ethereum Geth. Inhabilitada de forma predeterminada. Pontrue
para habilitar.apiEnableDebug
: un espacio de nombres JSON-RPC opcional cuando se usa el cliente de ejecución de Ethereum Geth. Inhabilitada de forma predeterminada. Pontrue
para habilitar.- NETWORK: nombre de la red. Por ejemplo,
MAINNET
. - NODE_TYPE: el tipo de nodo de la cadena de bloques. Por ejemplo,
FULL
. - PROJECT_ID: tu ID de proyecto Google Cloud . Por ejemplo,
my-project-id
. - LOCATION: la ubicación en la que alojar tus recursos. Esta información no se puede cambiar más adelante. Por ejemplo,
us-central1
. Consulta las ubicaciones admitidas. - NODE_NAME: el nombre que especifiques para tu nodo.
Usa letras minúsculas (a-z), números y guiones. Por ejemplo,
my-node
. labels
: un par clave-valor. En el ejemplo, la clave es LABEL_KEY, por ejemplo,my-label-key
, y el valor es LABEL_VALUE, por ejemplo,my-label-value
.
A continuación se muestra una respuesta de ejemplo al comando anterior:
{
"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
}
Ten en cuenta que se devuelve OPERATION_ID en el ejemplo anterior:
operation-1683664820863-5fb48c391814a-a546e3e6-ddee30ad
Puede usar este valor para obtener el estado de la creación del nodo de la cadena de bloques.
Configuración de Validator
Hay otras opciones disponibles para los clientes que usen clientes de baliza de Blockchain Node Engine con un cliente de validador gestionado por el cliente.
NOTA: Estas opciones solo están disponibles mediante la API.
Para crear un nodo de cadena de bloques con las opciones de validador definidas, usa un comando curl
como el siguiente:
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
Receptor de cuotas de baliza
Se puede definir un destinatario de las comisiones predeterminado en el cliente de baliza, que se usa si el cliente de validador no especifica ningún destinatario. Aunque en la documentación de Lighthouse se hace referencia a este campo como destinatario de la comisión sugerido, como tanto el cliente de ejecución como el cliente de baliza son de confianza, el destinatario siempre se utiliza si se especifica.
Los destinatarios de las comisiones de baliza deben ser direcciones de Ethereum con el prefijo "0x", por ejemplo, "0xb469d8b44a3f559a3386af6273ec4a71da88a15a".
URL de retransmisión de MEV
Los nodos de blockchain incluyen un servicio MEV-boost gestionado. De esta forma, los clientes pueden usar uno o varios servicios externos de creación de bloques, elegir el mejor bloque que ofrezcan esos servicios y proponerlo.
No se recomienda ni se respalda ningún servicio específico, y los clientes son responsables de verificar los servicios que seleccionen aquí.
Las URLs de retransmisión de MEV se especifican como una lista de URLs separadas por comas, por ejemplo, "https://mev1.example.org/,https://mev2.example.org/".
Configuraciones admitidas
Blockchain Node Engine admite varias configuraciones. Puedes crear nodos con cualquiera de las siguientes combinaciones:
nodeType | red | executionClient | consensusClient |
---|---|---|---|
FULL | MAINNET | GETH | LIGHTHOUSE |
FULL | TESTNET_GOERLI_PRATER | GETH | LIGHTHOUSE |
FULL | TESTNET_SEPOLIA | GETH | LIGHTHOUSE |
FULL | TESTNET_HOLESKY | GETH | LIGHTHOUSE |
ARCHIVAR | MAINNET | ERIGON | LIGHTHOUSE |